Version 2.0.0-dev.12.0

Merge commit '8c38a415dead901d369d9c5826c52ef53a395f95' into dev
diff --git a/.packages b/.packages
index a2dd24e..d559cca 100644
--- a/.packages
+++ b/.packages
@@ -29,6 +29,7 @@
 crypto:third_party/pkg/crypto/lib
 csslib:third_party/pkg/csslib/lib
 dart2js_info:third_party/pkg/dart2js_info/lib
+dart_internal:pkg/dart_internal/lib
 dart_messages:pkg/dart_messages/lib
 dart_style:third_party/pkg_tested/dart_style/lib
 dartdoc:third_party/pkg/dartdoc/lib
diff --git a/DEPS b/DEPS
index 7b396d4..1c6c875 100644
--- a/DEPS
+++ b/DEPS
@@ -77,7 +77,7 @@
   # For more details, see https://github.com/dart-lang/sdk/issues/30164
   "dart_style_tag": "@1.0.7",  # Please see the note above before updating.
 
-  "dartdoc_tag" : "@v0.14.1",
+  "dartdoc_tag" : "@v0.15.0+1",
   "fixnum_tag": "@0.10.5",
   "func_rev": "@25eec48146a58967d75330075ab376b3838b18a8",
   "glob_tag": "@1.1.5",
@@ -93,17 +93,17 @@
   "json_rpc_2_tag": "@2.0.4",
   "linter_tag": "@0.1.40",
   "logging_tag": "@0.11.3+1",
-  "markdown_tag": "@0.11.4",
+  "markdown_tag": "@1.0.0",
   "matcher_tag": "@0.12.1+4",
   "mime_tag": "@0.9.4",
   "mockito_tag": "@2.0.2",
-  "mustache4dart_tag" : "@v1.1.0",
+  "mustache4dart_tag" : "@v2.1.0",
   "oauth2_tag": "@1.1.0",
   "observatory_pub_packages_rev": "@4c282bb240b68f407c8c7779a65c68eeb0139dc6",
   "package_config_tag": "@1.0.3",
   "package_resolver_tag": "@1.0.2+1",
   "path_tag": "@1.4.2",
-  "plugin_tag": "@0.2.0",
+  "plugin_tag": "@0.2.0+2",
   "ply_rev": "@604b32590ffad5cbb82e4afef1d305512d06ae93",
   "pool_tag": "@1.3.3",
   "protobuf_tag": "@0.5.4",
@@ -115,8 +115,8 @@
   "scheduled_test_tag": "@0.12.11+1",
   "shelf_static_tag": "@0.2.5",
   "shelf_packages_handler_tag": "@1.0.3",
-  "shelf_tag": "@0.6.8",
-  "shelf_web_socket_tag": "@0.2.1",
+  "shelf_tag": "@0.7.1",
+  "shelf_web_socket_tag": "@0.2.2",
   "source_map_stack_trace_tag": "@1.1.4",
   "source_maps-0.9.4_rev": "@38524",
   "source_maps_tag": "@0.10.4",
@@ -126,7 +126,7 @@
   "string_scanner_tag": "@1.0.2",
   "sunflower_rev": "@879b704933413414679396b129f5dfa96f7a0b1e",
   "term_glyph_tag": "@1.0.0",
-  "test_reflective_loader_tag": "@0.1.0",
+  "test_reflective_loader_tag": "@0.1.3",
   "test_tag": "@0.12.24+6",
   "tuple_tag": "@v1.0.1",
   "typed_data_tag": "@1.1.3",
@@ -135,7 +135,7 @@
   "watcher_tag": "@0.9.7+4",
   "web_socket_channel_tag": "@1.0.6",
   "WebCore_rev": "@3c45690813c112373757bbef53de1602a62af609",
-  "yaml_tag": "@2.1.12",
+  "yaml_tag": "@2.1.13",
   "zlib_rev": "@c3d0a6190f2f8c924a05ab6cc97b8f975bddd33f",
 }
 
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index 52c6c4f..4e65f3e 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -15,6 +15,39 @@
 import subprocess
 import tempfile
 
+
+def _CheckFormat(input_api, identification, extension, windows,
+    hasFormatErrors):
+  local_root = input_api.change.RepositoryRoot()
+  upstream = input_api.change._upstream
+  unformatted_files = []
+  for git_file in input_api.AffectedTextFiles():
+    filename = git_file.AbsoluteLocalPath()
+    if filename.endswith(extension) and hasFormatErrors(filename=filename):
+      old_version_has_errors = False
+      try:
+        path = git_file.LocalPath()
+        if windows:
+          # Git expects a linux style path.
+          path = path.replace(os.sep, '/')
+        old_contents = scm.GIT.Capture(
+          ['show', upstream + ':' + path],
+          cwd=local_root,
+          strip_out=False)
+        if hasFormatErrors(contents=old_contents):
+          old_version_has_errors = True
+      except subprocess.CalledProcessError as e:
+        old_version_has_errors = False
+
+      if old_version_has_errors:
+        print("WARNING: %s has existing and possibly new %s issues" %
+          (git_file.LocalPath(), identification))
+      else:
+        unformatted_files.append(filename)
+
+  return unformatted_files
+
+
 def _CheckBuildStatus(input_api, output_api):
   results = []
   status_check = input_api.canned_checks.CheckTreeIsOpen(
@@ -24,6 +57,7 @@
   results.extend(status_check)
   return results
 
+
 def _CheckDartFormat(input_api, output_api):
   local_root = input_api.change.RepositoryRoot()
   upstream = input_api.change._upstream
@@ -57,33 +91,8 @@
     # parsed and formatted. Don't treat those as errors.
     return process.returncode == 1
 
-  unformatted_files = []
-  for git_file in input_api.AffectedTextFiles():
-    filename = git_file.AbsoluteLocalPath()
-    if filename.endswith('.dart'):
-      if HasFormatErrors(filename=filename):
-        old_version_has_errors = False
-        try:
-          path = git_file.LocalPath()
-          if windows:
-            # Git expects a linux style path.
-            path = path.replace(os.sep, '/')
-          old_contents = scm.GIT.Capture(
-            ['show', upstream + ':' + path],
-            cwd=local_root,
-            strip_out=False)
-          if HasFormatErrors(contents=old_contents):
-            old_version_has_errors = True
-        except subprocess.CalledProcessError as e:
-          # TODO(jacobr): verify that the error really is that the file was
-          # added for this CL.
-          old_version_has_errors = False
-
-        if old_version_has_errors:
-          print("WARNING: %s has existing and possibly new dartfmt issues" %
-            git_file.LocalPath())
-        else:
-          unformatted_files.append(filename)
+  unformatted_files = _CheckFormat(input_api, "dartfmt", ".dart", windows,
+      HasFormatErrors)
 
   if unformatted_files:
     lineSep = " \\\n"
@@ -97,6 +106,7 @@
 
   return []
 
+
 def _CheckNewTests(input_api, output_api):
   testsDirectories = [
       #    Dart 1 tests              Dart 2.0 tests
@@ -167,11 +177,62 @@
 
   return result
 
+
+def _CheckStatusFiles(input_api, output_api):
+  local_root = input_api.change.RepositoryRoot()
+  upstream = input_api.change._upstream
+  utils = imp.load_source('utils',
+      os.path.join(local_root, 'tools', 'utils.py'))
+
+  dart = os.path.join(utils.CheckedInSdkPath(), 'bin', 'dart')
+  lint = os.path.join(local_root, 'pkg', 'status_file', 'bin', 'lint.dart')
+
+  windows = utils.GuessOS() == 'win32'
+  if windows:
+    dart += '.bat'
+
+  if not os.path.isfile(dart):
+    print('WARNING: dart not found: %s' % dart)
+    return []
+
+  if not os.path.isfile(lint):
+    print('WARNING: Status file linter not found: %s' % lint)
+    return []
+
+  def HasFormatErrors(filename=None, contents=None):
+    args = [dart, lint] + (['-t'] if contents else [filename])
+    process = subprocess.Popen(args,
+                               stdout=subprocess.PIPE,
+                               stdin=subprocess.PIPE)
+    process.communicate(input=contents)
+    return process.returncode != 0
+
+  unformatted_files = _CheckFormat(input_api, "status file", ".status",
+      windows, HasFormatErrors)
+
+  if unformatted_files:
+    normalize = os.path.join(local_root, 'pkg', 'status_file', 'bin',
+        'normalize.dart')
+    lineSep = " \\\n"
+    if windows:
+      lineSep = " ^\n";
+    return [output_api.PresubmitError(
+        'Status files are not normalized.\n'
+        'Fix these issues with:\n'
+        '%s %s -w%s%s' % (dart, normalize, lineSep,
+            lineSep.join(unformatted_files)))]
+
+  return []
+
+
 def CheckChangeOnCommit(input_api, output_api):
   return (_CheckBuildStatus(input_api, output_api) +
           _CheckNewTests(input_api, output_api) +
-          _CheckDartFormat(input_api, output_api))
+          _CheckDartFormat(input_api, output_api) +
+          _CheckStatusFiles(input_api, output_api))
+
 
 def CheckChangeOnUpload(input_api, output_api):
   return (_CheckNewTests(input_api, output_api) +
-          _CheckDartFormat(input_api, output_api))
+          _CheckDartFormat(input_api, output_api) +
+          _CheckStatusFiles(input_api, output_api))
diff --git a/docs/language/dartLangSpec.tex b/docs/language/dartLangSpec.tex
index 7203fd1..fb976cf 100644
--- a/docs/language/dartLangSpec.tex
+++ b/docs/language/dartLangSpec.tex
@@ -32,6 +32,7 @@
 % - Constant `==` operations now also allowed if just one operand is null.
 % - Make flatten not be recursive.
 % - Disallow implementing two instantiations of the same generic interface.
+% - Update "FutureOr" specification for Dart 2.0.
 %
 % 1.15
 % - Change how language specification describes control flow.
@@ -8399,28 +8400,47 @@
 The built-in type declaration \code{FutureOr},
 which is declared in the library \code{dart:async},
 defines a generic type with one type parameter (\ref{generics}).
-If the \code{FutureOr} type, optionally followed by type arguments,
-is used as a type, it denotes the \DYNAMIC{} type.
-As such, the \code{FutureOr} type cannot be used where \DYNAMIC{} cannot be
-used as a type.
-If the type arguments applied to \code{FutureOr} would issue static warnings
+
+\LMHash{}
+The \code{FutureOr<$T$>} type is a non-class type with the following
+type relations:
+\begin{itemize}
+    \item{} $T$ <: \code{FutureOr<$T$>}.
+    \item{} \code{Future<$T$>} <: \code{FutureOr<$T$>}.
+    \item{} If $T$ <: $S$ and \code{Future<$T$>} <: $S$
+        then \code{FutureOr<$T$>} <: $S$.
+        \commentary{In particular, \code{FutureOr<$T$>} <: \code{Object}.}
+\end{itemize}.
+\commentary{The last point guarantees that generic type \code{FutureOr} is
+{\em covariant} in its type parameter, just like class types.
+That is, if $S$ <: $T$ then \code{FutureOr<$S$>} <: \code{FutureOr<$T$>}.}
+If the type arguments passed to \code{FutureOr} would issue static warnings
 if applied to a normal generic class with one type parameter,
-the same warnings are issued for \code{FutureOr},
-even though the type arguments are otherwise ignored.
+the same warnings are issued for \code{FutureOr}.
 The name \code{FutureOr} as an expression
-denotes the same \code{Type} object as \DYNAMIC{}.
+denotes a \code{Type} object representing the type \code{FutureOr<dynamic>}.
 
 \rationale{
-The \code{FutureOr} type is reserved for future use,
-for cases where a value can be either an instance of the type \metavar{type}
+The \code{FutureOr<\metavar{type}>} type represents a case where a value can be
+either an instance of the type \metavar{type}
 or the type \code{Future<\metavar{type}>}.
 Such cases occur naturally in asynchronous code.
-Using \code{FutureOr} instead of \DYNAMIC{} will allow some tools
+Using \code{FutureOr} instead of \DYNAMIC{} allows some tools
 to provide a more precise type analysis.
 }
-%\rationale {
-%Type objects reify the run-time types of instances. No instance ever has type \DYNAMIC{}.
-%}
+
+\LMHash{}
+The type \code{FutureOr<$T$>} has an interface that is identical to that
+of \code{Object}.
+\commentary{The only members that can be invoked on a value with static type
+\code{FutureOr<$T$>} are members that are also on \code{Object}.}
+\rationale{We only want to allow invocations of members that are inherited from
+a common supertype of both $T$ and \code{Future<$T$>}.
+In most cases the only common supertype is \code{Object}. The exceptions, like
+\code{FutureOr<Future<Object>>} which has \code{Future<Object>} as common
+supertype, are few and not practically useful, so for now we choose to
+only allow invocations of members inherited from \code{Object}.
+}
 
 
 \subsection{Type Void}
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/arglist_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/arglist_contributor.dart
index 2de2296..0208901 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/arglist_contributor.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/arglist_contributor.dart
@@ -312,7 +312,8 @@
     Token token =
         entity is AstNode ? entity.endToken : entity is Token ? entity : null;
     return (token != containingNode?.endToken) &&
-        token?.next?.type == TokenType.COMMA;
+        token?.next?.type == TokenType.COMMA &&
+        !token.next.isSynthetic;
   }
 
   bool _isInFlutterCreation(DartCompletionRequest request) {
diff --git a/pkg/analysis_server/test/integration/completion/get_suggestions_test.dart b/pkg/analysis_server/test/integration/completion/get_suggestions_test.dart
index 1efd154..f2b5bd3 100644
--- a/pkg/analysis_server/test/integration/completion/get_suggestions_test.dart
+++ b/pkg/analysis_server/test/integration/completion/get_suggestions_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+import 'dart:async';
+
 import 'package:analysis_server/protocol/protocol_generated.dart';
 import 'package:analyzer_plugin/protocol/protocol_common.dart';
 import 'package:test/test.dart';
@@ -12,6 +14,7 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(GetSuggestionsTest);
+    defineReflectiveTests(GetSuggestionsTest_PreviewDart2);
   });
 }
 
@@ -116,3 +119,23 @@
     });
   }
 }
+
+@reflectiveTest
+class GetSuggestionsTest_PreviewDart2 extends GetSuggestionsTest {
+  @override
+  bool get usePreviewDart2 => true;
+
+  @override
+  @failingTest
+  Future test_getSuggestions() => super.test_getSuggestions();
+
+  @override
+  @failingTest
+  Future test_getSuggestions_onlyOverlay() =>
+      super.test_getSuggestions_onlyOverlay();
+
+  @override
+  @failingTest
+  Future test_getSuggestions_onlyOverlay_noWait() =>
+      super.test_getSuggestions_onlyOverlay_noWait();
+}
diff --git a/pkg/analysis_server/test/integration/edit/format_test.dart b/pkg/analysis_server/test/integration/edit/format_test.dart
index 8906109..4380afd 100644
--- a/pkg/analysis_server/test/integration/edit/format_test.dart
+++ b/pkg/analysis_server/test/integration/edit/format_test.dart
@@ -11,6 +11,7 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(FormatTest);
+    defineReflectiveTests(FormatTest_PreviewDart2);
   });
 }
 
@@ -78,3 +79,9 @@
     }
   }
 }
+
+@reflectiveTest
+class FormatTest_PreviewDart2 extends FormatTest {
+  @override
+  bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analysis_server/test/integration/edit/get_assists_test.dart b/pkg/analysis_server/test/integration/edit/get_assists_test.dart
index 69e10f0..0918d7b 100644
--- a/pkg/analysis_server/test/integration/edit/get_assists_test.dart
+++ b/pkg/analysis_server/test/integration/edit/get_assists_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+import 'dart:async';
+
 import 'package:analysis_server/protocol/protocol_generated.dart';
 import 'package:analyzer_plugin/protocol/protocol_common.dart';
 import 'package:test/test.dart';
@@ -12,6 +14,7 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(GetAssistsTest);
+    defineReflectiveTests(GetAssistsTest_PreviewDart2);
   });
 }
 
@@ -48,3 +51,13 @@
     expect(currentAnalysisErrors[pathname], isEmpty);
   }
 }
+
+@reflectiveTest
+class GetAssistsTest_PreviewDart2 extends GetAssistsTest {
+  @override
+  bool get usePreviewDart2 => true;
+
+  @override
+  @failingTest
+  Future test_has_assists() => test_has_assists();
+}
diff --git a/pkg/analysis_server/test/integration/edit/get_available_refactorings_test.dart b/pkg/analysis_server/test/integration/edit/get_available_refactorings_test.dart
index 820b586..0ae9808 100644
--- a/pkg/analysis_server/test/integration/edit/get_available_refactorings_test.dart
+++ b/pkg/analysis_server/test/integration/edit/get_available_refactorings_test.dart
@@ -11,6 +11,7 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(GetAvailableRefactoringsTest);
+    defineReflectiveTests(GetAvailableRefactoringsTest_PreviewDart2);
   });
 }
 
@@ -35,3 +36,10 @@
     expect(result.kinds, isNotEmpty);
   }
 }
+
+@reflectiveTest
+class GetAvailableRefactoringsTest_PreviewDart2
+    extends GetAvailableRefactoringsTest {
+  @override
+  bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analysis_server/test/integration/edit/get_fixes_test.dart b/pkg/analysis_server/test/integration/edit/get_fixes_test.dart
index a76680d..fc111ae 100644
--- a/pkg/analysis_server/test/integration/edit/get_fixes_test.dart
+++ b/pkg/analysis_server/test/integration/edit/get_fixes_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+import 'dart:async';
+
 import 'package:analysis_server/protocol/protocol_generated.dart';
 import 'package:analyzer_plugin/protocol/protocol_common.dart';
 import 'package:test/test.dart';
@@ -12,6 +14,7 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(GetFixesTest);
+    defineReflectiveTests(GetFixesTest_PreviewDart2);
   });
 }
 
@@ -58,3 +61,13 @@
     expect(result.fixes, isEmpty);
   }
 }
+
+@reflectiveTest
+class GetFixesTest_PreviewDart2 extends GetFixesTest {
+  @override
+  bool get usePreviewDart2 => true;
+
+  @override
+  @failingTest
+  Future test_has_fixes() => super.test_has_fixes();
+}
diff --git a/pkg/analysis_server/test/integration/edit/get_postfix_completion_test.dart b/pkg/analysis_server/test/integration/edit/get_postfix_completion_test.dart
index b4b3cd4..69acbdf 100644
--- a/pkg/analysis_server/test/integration/edit/get_postfix_completion_test.dart
+++ b/pkg/analysis_server/test/integration/edit/get_postfix_completion_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+import 'dart:async';
+
 import 'package:analysis_server/protocol/protocol_generated.dart';
 import 'package:analyzer_plugin/protocol/protocol_common.dart';
 import 'package:test/test.dart';
@@ -12,6 +14,7 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(GetPostfixCompletionTest);
+    defineReflectiveTests(GetPostfixCompletionTest_PreviewDart2);
   });
 }
 
@@ -50,3 +53,9 @@
     expect(currentAnalysisErrors[pathname], isEmpty);
   }
 }
+
+@reflectiveTest
+class GetPostfixCompletionTest_PreviewDart2 extends GetPostfixCompletionTest {
+  @override
+  bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analysis_server/test/integration/edit/get_refactoring_test.dart b/pkg/analysis_server/test/integration/edit/get_refactoring_test.dart
index c3e5553..59ac3a5 100644
--- a/pkg/analysis_server/test/integration/edit/get_refactoring_test.dart
+++ b/pkg/analysis_server/test/integration/edit/get_refactoring_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+import 'dart:async';
+
 import 'package:analysis_server/protocol/protocol_generated.dart';
 import 'package:analyzer_plugin/protocol/protocol_common.dart';
 import 'package:test/test.dart';
@@ -12,6 +14,7 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(GetRefactoringTest);
+    defineReflectiveTests(GetRefactoringTest_PreviewDart2);
   });
 }
 
@@ -64,3 +67,13 @@
     expect(currentAnalysisErrors[pathname], isEmpty);
   }
 }
+
+@reflectiveTest
+class GetRefactoringTest_PreviewDart2 extends GetRefactoringTest {
+  @override
+  bool get usePreviewDart2 => true;
+
+  @override
+  @failingTest
+  Future test_rename() => test_rename();
+}
diff --git a/pkg/analysis_server/test/integration/edit/get_statement_completion_test.dart b/pkg/analysis_server/test/integration/edit/get_statement_completion_test.dart
index 1adece6..3019f6e 100644
--- a/pkg/analysis_server/test/integration/edit/get_statement_completion_test.dart
+++ b/pkg/analysis_server/test/integration/edit/get_statement_completion_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+import 'dart:async';
+
 import 'package:analysis_server/protocol/protocol_generated.dart';
 import 'package:analyzer_plugin/protocol/protocol_common.dart';
 import 'package:test/test.dart';
@@ -12,6 +14,7 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(GetStatementCompletionTest);
+    defineReflectiveTests(GetStatementCompletionTest_PreviewDart2);
   });
 }
 
@@ -45,3 +48,14 @@
     expect(currentAnalysisErrors[pathname], isEmpty);
   }
 }
+
+@reflectiveTest
+class GetStatementCompletionTest_PreviewDart2
+    extends GetStatementCompletionTest {
+  @override
+  bool get usePreviewDart2 => true;
+
+  @override
+  @failingTest
+  Future test_statement_completion() => super.test_statement_completion();
+}
diff --git a/pkg/analysis_server/test/integration/edit/import_elements_test.dart b/pkg/analysis_server/test/integration/edit/import_elements_test.dart
index b22fa39..4f3d343 100644
--- a/pkg/analysis_server/test/integration/edit/import_elements_test.dart
+++ b/pkg/analysis_server/test/integration/edit/import_elements_test.dart
@@ -16,6 +16,8 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(AnalysisGetImportElementsIntegrationTest);
+    defineReflectiveTests(
+        AnalysisGetImportElementsIntegrationTest_PreviewDart2);
   });
 }
 
@@ -137,3 +139,10 @@
     ], expectedFile: libName);
   }
 }
+
+@reflectiveTest
+class AnalysisGetImportElementsIntegrationTest_PreviewDart2
+    extends AnalysisGetImportElementsIntegrationTest {
+  @override
+  bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analysis_server/test/integration/edit/is_postfix_completion_applicable_test.dart b/pkg/analysis_server/test/integration/edit/is_postfix_completion_applicable_test.dart
index be1ff11..afda363 100644
--- a/pkg/analysis_server/test/integration/edit/is_postfix_completion_applicable_test.dart
+++ b/pkg/analysis_server/test/integration/edit/is_postfix_completion_applicable_test.dart
@@ -11,6 +11,7 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(IsPostfixCompletionApplicableTest);
+    defineReflectiveTests(IsPostfixCompletionApplicableTest_PreviewDart2);
   });
 }
 
@@ -39,3 +40,10 @@
     expect(result.value, isTrue);
   }
 }
+
+@reflectiveTest
+class IsPostfixCompletionApplicableTest_PreviewDart2
+    extends IsPostfixCompletionApplicableTest {
+  @override
+  bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analysis_server/test/integration/edit/list_postfix_completion_templates_test.dart b/pkg/analysis_server/test/integration/edit/list_postfix_completion_templates_test.dart
index f248e06..b5f52b7 100644
--- a/pkg/analysis_server/test/integration/edit/list_postfix_completion_templates_test.dart
+++ b/pkg/analysis_server/test/integration/edit/list_postfix_completion_templates_test.dart
@@ -11,6 +11,7 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(ListPostfixCompletionTemplatesTest);
+    defineReflectiveTests(ListPostfixCompletionTemplatesTest_PreviewDart2);
   });
 }
 
@@ -39,3 +40,10 @@
     expect(result.templates[0].runtimeType, PostfixTemplateDescriptor);
   }
 }
+
+@reflectiveTest
+class ListPostfixCompletionTemplatesTest_PreviewDart2
+    extends ListPostfixCompletionTemplatesTest {
+  @override
+  bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analysis_server/test/integration/edit/organize_directives_test.dart b/pkg/analysis_server/test/integration/edit/organize_directives_test.dart
index 0e372f4..429c143 100644
--- a/pkg/analysis_server/test/integration/edit/organize_directives_test.dart
+++ b/pkg/analysis_server/test/integration/edit/organize_directives_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+import 'dart:async';
+
 import 'package:analysis_server/protocol/protocol_generated.dart';
 import 'package:analyzer_plugin/protocol/protocol_common.dart';
 import 'package:test/test.dart';
@@ -12,6 +14,7 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(OrganizeDirectivesTest);
+    defineReflectiveTests(OrganizeDirectivesTest_PreviewDart2);
   });
 }
 
@@ -74,3 +77,9 @@
     }
   }
 }
+
+@reflectiveTest
+class OrganizeDirectivesTest_PreviewDart2 extends OrganizeDirectivesTest {
+  @override
+  bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analysis_server/test/integration/edit/sort_members_test.dart b/pkg/analysis_server/test/integration/edit/sort_members_test.dart
index 3ff78a7..277c168 100644
--- a/pkg/analysis_server/test/integration/edit/sort_members_test.dart
+++ b/pkg/analysis_server/test/integration/edit/sort_members_test.dart
@@ -12,6 +12,7 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(SortMembersTest);
+    defineReflectiveTests(SortMembersTest_PreviewDart2);
   });
 }
 
@@ -62,3 +63,9 @@
     }
   }
 }
+
+@reflectiveTest
+class SortMembersTest_PreviewDart2 extends SortMembersTest {
+  @override
+  bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analysis_server/test/integration/search/find_element_references_test.dart b/pkg/analysis_server/test/integration/search/find_element_references_test.dart
index 10bfbfa..823e17f 100644
--- a/pkg/analysis_server/test/integration/search/find_element_references_test.dart
+++ b/pkg/analysis_server/test/integration/search/find_element_references_test.dart
@@ -13,6 +13,7 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(FindElementReferencesTest);
+    defineReflectiveTests(FindElementReferencesTest_PreviewDart2);
   });
 }
 
@@ -70,3 +71,14 @@
     return searchParams.results;
   }
 }
+
+@reflectiveTest
+class FindElementReferencesTest_PreviewDart2 extends FindElementReferencesTest {
+  @override
+  bool get usePreviewDart2 => true;
+
+  @override
+  @failingTest
+  // TODO(devoncarew): 'NoSuchMethodError: The getter 'source' was called on null'
+  Future test_findReferences() => new Future.error('failing test');
+}
diff --git a/pkg/analysis_server/test/integration/search/find_member_declarations_test.dart b/pkg/analysis_server/test/integration/search/find_member_declarations_test.dart
index 81148c0..babe602 100644
--- a/pkg/analysis_server/test/integration/search/find_member_declarations_test.dart
+++ b/pkg/analysis_server/test/integration/search/find_member_declarations_test.dart
@@ -11,6 +11,7 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(FindMemberDeclarationsTest);
+    defineReflectiveTests(FindMemberDeclarationsTest_PreviewDart2);
   });
 }
 
@@ -49,3 +50,10 @@
     expect(result.path.first.name, 'bar');
   }
 }
+
+@reflectiveTest
+class FindMemberDeclarationsTest_PreviewDart2
+    extends FindMemberDeclarationsTest {
+  @override
+  bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analysis_server/test/integration/search/find_member_references_test.dart b/pkg/analysis_server/test/integration/search/find_member_references_test.dart
index 36fccbc..9c9cac3 100644
--- a/pkg/analysis_server/test/integration/search/find_member_references_test.dart
+++ b/pkg/analysis_server/test/integration/search/find_member_references_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+import 'dart:async';
+
 import 'package:analysis_server/protocol/protocol_generated.dart';
 import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -11,6 +13,7 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(FindMemberReferencesTest);
+    defineReflectiveTests(FindMemberReferencesTest_PreviewDart2);
   });
 }
 
@@ -50,3 +53,14 @@
     expect(result.path.first.name, 'baz');
   }
 }
+
+@reflectiveTest
+class FindMemberReferencesTest_PreviewDart2 extends FindMemberReferencesTest {
+  @override
+  bool get usePreviewDart2 => true;
+
+  @override
+  @failingTest
+  // TODO(devoncarew): 'NoSuchMethodError: The getter 'element' was called on null'
+  Future test_findMemberReferences() => new Future.error('failing test');
+}
diff --git a/pkg/analysis_server/test/integration/search/find_top_level_declarations_test.dart b/pkg/analysis_server/test/integration/search/find_top_level_declarations_test.dart
index 66352f8..a422c7a 100644
--- a/pkg/analysis_server/test/integration/search/find_top_level_declarations_test.dart
+++ b/pkg/analysis_server/test/integration/search/find_top_level_declarations_test.dart
@@ -11,6 +11,7 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(FindTopLevelDeclarationsTest);
+    defineReflectiveTests(FindTopLevelDeclarationsTest_PreviewDart2);
   });
 }
 
@@ -54,3 +55,10 @@
     fail('No result for $pathname');
   }
 }
+
+@reflectiveTest
+class FindTopLevelDeclarationsTest_PreviewDart2
+    extends FindTopLevelDeclarationsTest {
+  @override
+  bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analysis_server/test/integration/search/get_type_hierarchy_test.dart b/pkg/analysis_server/test/integration/search/get_type_hierarchy_test.dart
index 0919aa2..2d9a0a2 100644
--- a/pkg/analysis_server/test/integration/search/get_type_hierarchy_test.dart
+++ b/pkg/analysis_server/test/integration/search/get_type_hierarchy_test.dart
@@ -14,6 +14,7 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(GetTypeHierarchyTest);
+    defineReflectiveTests(GetTypeHierarchyTest_PreviewDart2);
   });
 }
 
@@ -273,3 +274,14 @@
     }
   }
 }
+
+@reflectiveTest
+class GetTypeHierarchyTest_PreviewDart2 extends GetTypeHierarchyTest {
+  @override
+  bool get usePreviewDart2 => true;
+
+  @override
+  @failingTest
+  // TODO(devoncarew): 'NoSuchMethodError: The getter 'source' was called on null'
+  Future test_getTypeHierarchy() => new Future.error('failing test');
+}
diff --git a/pkg/analysis_server/test/integration/server/get_version_test.dart b/pkg/analysis_server/test/integration/server/get_version_test.dart
index c3dc407..485b771 100644
--- a/pkg/analysis_server/test/integration/server/get_version_test.dart
+++ b/pkg/analysis_server/test/integration/server/get_version_test.dart
@@ -9,6 +9,7 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(GetVersionTest);
+    defineReflectiveTests(GetVersionTest_PreviewDart2);
   });
 }
 
@@ -18,3 +19,9 @@
     return sendServerGetVersion();
   }
 }
+
+@reflectiveTest
+class GetVersionTest_PreviewDart2 extends GetVersionTest {
+  @override
+  bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analysis_server/test/integration/server/set_subscriptions_invalid_service_test.dart b/pkg/analysis_server/test/integration/server/set_subscriptions_invalid_service_test.dart
index c95e046..d86e9a0 100644
--- a/pkg/analysis_server/test/integration/server/set_subscriptions_invalid_service_test.dart
+++ b/pkg/analysis_server/test/integration/server/set_subscriptions_invalid_service_test.dart
@@ -10,6 +10,7 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(SetSubscriptionsInvalidTest);
+    defineReflectiveTests(SetSubscriptionsInvalidTest_PreviewDart2);
   });
 }
 
@@ -28,3 +29,10 @@
     });
   }
 }
+
+@reflectiveTest
+class SetSubscriptionsInvalidTest_PreviewDart2
+    extends SetSubscriptionsInvalidTest {
+  @override
+  bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analysis_server/test/integration/server/set_subscriptions_test.dart b/pkg/analysis_server/test/integration/server/set_subscriptions_test.dart
index 9cfd81c..c180f9a 100644
--- a/pkg/analysis_server/test/integration/server/set_subscriptions_test.dart
+++ b/pkg/analysis_server/test/integration/server/set_subscriptions_test.dart
@@ -13,6 +13,7 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(SetSubscriptionsTest);
+    defineReflectiveTests(SetSubscriptionsTest_PreviewDart2);
   });
 }
 
@@ -62,3 +63,9 @@
     });
   }
 }
+
+@reflectiveTest
+class SetSubscriptionsTest_PreviewDart2 extends SetSubscriptionsTest {
+  @override
+  bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analysis_server/test/integration/server/shutdown_test.dart b/pkg/analysis_server/test/integration/server/shutdown_test.dart
index 8478d48..8f24bdb 100644
--- a/pkg/analysis_server/test/integration/server/shutdown_test.dart
+++ b/pkg/analysis_server/test/integration/server/shutdown_test.dart
@@ -12,6 +12,7 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(ShutdownTest);
+    defineReflectiveTests(ShutdownTest_PreviewDart2);
   });
 }
 
@@ -29,3 +30,9 @@
     });
   }
 }
+
+@reflectiveTest
+class ShutdownTest_PreviewDart2 extends ShutdownTest {
+  @override
+  bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analysis_server/test/integration/server/status_test.dart b/pkg/analysis_server/test/integration/server/status_test.dart
index 72163c3..1ffa86a 100644
--- a/pkg/analysis_server/test/integration/server/status_test.dart
+++ b/pkg/analysis_server/test/integration/server/status_test.dart
@@ -13,6 +13,7 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(StatusTest);
+    defineReflectiveTests(StatusTest_PreviewDart2);
   });
 }
 
@@ -48,3 +49,9 @@
     });
   }
 }
+
+@reflectiveTest
+class StatusTest_PreviewDart2 extends StatusTest {
+  @override
+  bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analyzer/lib/dart/element/element.dart b/pkg/analyzer/lib/dart/element/element.dart
index 28efaec..555f10d 100644
--- a/pkg/analyzer/lib/dart/element/element.dart
+++ b/pkg/analyzer/lib/dart/element/element.dart
@@ -609,6 +609,12 @@
   int get id;
 
   /**
+   * Return `true` if this element has an annotation of the form
+   * '@alwaysThrows'.
+   */
+  bool get isAlwaysThrows;
+
+  /**
    * Return `true` if this element has an annotation of the form '@deprecated'
    * or '@Deprecated('..')'.
    */
@@ -809,6 +815,12 @@
   Element get element;
 
   /**
+   * Return `true` if this annotation marks the associated function as always
+   * throwing.
+   */
+  bool get isAlwaysThrows;
+
+  /**
    * Return `true` if this annotation marks the associated element as being
    * deprecated.
    */
diff --git a/pkg/analyzer/lib/src/dart/analysis/frontend_resolution.dart b/pkg/analyzer/lib/src/dart/analysis/frontend_resolution.dart
index 09bf570..00dda37 100644
--- a/pkg/analyzer/lib/src/dart/analysis/frontend_resolution.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/frontend_resolution.dart
@@ -92,11 +92,11 @@
 class CollectedResolution {
   /// The list of local declarations stored by body builders while
   /// compiling the library.
-  final List<kernel.Statement> kernelDeclarations = [];
+  final List<kernel.TreeNode> kernelDeclarations = [];
 
   /// The list of references to local or external stored by body builders
   /// while compiling the library.
-  final List<kernel.TreeNode> kernelReferences = [];
+  final List<kernel.Node> kernelReferences = [];
 
   /// The list of types stored by body builders while compiling the library.
   final List<kernel.DartType> kernelTypes = [];
diff --git a/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart b/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
index 49ab5d7..e7a18bb 100644
--- a/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
@@ -206,8 +206,7 @@
       var resolutions = new _ResolutionProvider(analyzerTarget.resolutions);
       units.forEach((file, unit) {
         _resolveFile2(file, unit, resolutions);
-        // TODO(scheglov) Restore.
-//        _computePendingMissingRequiredParameters(file, unit);
+        _computePendingMissingRequiredParameters(file, unit);
       });
 
       _computeConstants();
@@ -219,27 +218,26 @@
 //        });
 //      });
 
-      // TODO(scheglov) Restore.
-//      if (_analysisOptions.hint) {
-//        PerformanceStatistics.hints.makeCurrentWhile(() {
-//          units.forEach((file, unit) {
-//            {
-//              var visitor = new GatherUsedLocalElementsVisitor(_libraryElement);
-//              unit.accept(visitor);
-//              _usedLocalElementsList.add(visitor.usedElements);
-//            }
-//            {
-//              var visitor =
-//              new GatherUsedImportedElementsVisitor(_libraryElement);
-//              unit.accept(visitor);
-//              _usedImportedElementsList.add(visitor.usedElements);
-//            }
-//          });
-//          units.forEach((file, unit) {
-//            _computeHints(file, unit);
-//          });
-//        });
-//      }
+      if (_analysisOptions.hint) {
+        PerformanceStatistics.hints.makeCurrentWhile(() {
+          units.forEach((file, unit) {
+            {
+              var visitor = new GatherUsedLocalElementsVisitor(_libraryElement);
+              unit.accept(visitor);
+              _usedLocalElementsList.add(visitor.usedElements);
+            }
+            {
+              var visitor =
+                  new GatherUsedImportedElementsVisitor(_libraryElement);
+              unit.accept(visitor);
+              _usedImportedElementsList.add(visitor.usedElements);
+            }
+          });
+          units.forEach((file, unit) {
+            _computeHints(file, unit);
+          });
+        });
+      }
 
       if (_analysisOptions.lint) {
         PerformanceStatistics.lints.makeCurrentWhile(() {
@@ -726,21 +724,24 @@
         }
         for (var member in declaration.members) {
           if (member is ConstructorDeclaration) {
-            // TODO(scheglov) Pass in the actual context element.
+            var context = member.element as ElementImpl;
             var resolution = resolutions.next();
-            var applier = _createResolutionApplier(null, resolution);
+            var applier = _createResolutionApplier(context, resolution);
+            member.initializers.accept(applier);
+            member.parameters.accept(applier);
             member.body.accept(applier);
             applier.applyToAnnotations(member);
             applier.checkDone();
           } else if (member is FieldDeclaration) {
-            if (member.fields.variables.length != 1) {
+            List<VariableDeclaration> fields = member.fields.variables;
+            if (fields.length != 1) {
               // TODO(scheglov) Handle this case.
               throw new UnimplementedError('Multiple field');
             }
-            // TODO(scheglov) Pass in the actual context element.
+            var context = fields[0].element as ElementImpl;
             var resolution = resolutions.next();
-            var applier = _createResolutionApplier(null, resolution);
-            member.fields.variables[0].initializer?.accept(applier);
+            var applier = _createResolutionApplier(context, resolution);
+            fields[0].initializer?.accept(applier);
             applier.applyToAnnotations(member);
             applier.checkDone();
           } else if (member is MethodDeclaration) {
@@ -752,10 +753,13 @@
             applier.applyToAnnotations(member);
             applier.checkDone();
           } else {
-            // TODO(scheglov) Handle more cases.
-            throw new UnimplementedError('${member.runtimeType}');
+            throw new StateError('(${declaration.runtimeType}) $declaration');
           }
         }
+      } else if (declaration is ClassTypeAlias) {
+        // No bodies to resolve.
+      } else if (declaration is EnumDeclaration) {
+        // No bodies to resolve.
       } else if (declaration is FunctionDeclaration) {
         var context = declaration.element as ExecutableElementImpl;
         var resolution = resolutions.next();
@@ -764,20 +768,22 @@
         declaration.functionExpression.body.accept(applier);
         applier.applyToAnnotations(declaration);
         applier.checkDone();
+      } else if (declaration is FunctionTypeAlias) {
+        // No bodies to resolve.
       } else if (declaration is TopLevelVariableDeclaration) {
-        if (declaration.variables.variables.length != 1) {
+        List<VariableDeclaration> variables = declaration.variables.variables;
+        if (variables.length != 1) {
           // TODO(scheglov) Handle this case.
           throw new UnimplementedError('Multiple variables');
         }
-        // TODO(scheglov) Pass in the actual context element.
+        var context = variables[0].element as ElementImpl;
         var resolution = resolutions.next();
-        var applier = _createResolutionApplier(null, resolution);
-        declaration.variables.variables[0].initializer?.accept(applier);
+        var applier = _createResolutionApplier(context, resolution);
+        variables[0].initializer?.accept(applier);
         applier.applyToAnnotations(declaration);
         applier.checkDone();
       } else {
-        // TODO(scheglov) Handle more cases.
-        throw new UnimplementedError('${declaration.runtimeType}');
+        throw new StateError('(${declaration.runtimeType}) $declaration');
       }
     }
 
@@ -993,9 +999,8 @@
   ElementImpl context;
 
   List<Element> declaredElements = [];
-  Map<kernel.Statement, Element> declarationToElement = {};
-  Map<FunctionElementImpl, kernel.VariableDeclaration>
-      functionElementToDeclaration = {};
+  Map<kernel.TreeNode, Element> declarationToElement = {};
+  Map<FunctionElementImpl, kernel.TreeNode> functionElementToDeclaration = {};
   Map<ParameterElementImpl, kernel.VariableDeclaration>
       parameterElementToDeclaration = {};
 
@@ -1026,7 +1031,7 @@
         if (parent is kernel.Statement) {
           element = declarationToElement[referencedNode];
         } else {
-          assert(parent is kernel.FunctionNode);
+          assert(parent is kernel.FunctionNode || parent is kernel.Catch);
           // Might be a parameter of a local function.
           element = declarationToElement[referencedNode];
           // If no element, then it is a parameter of the context executable.
@@ -1045,6 +1050,14 @@
         element = resynthesizer
             .getElementFromCanonicalName(referencedNode.canonicalName);
         assert(element != null);
+      } else if (referencedNode is kernel.FunctionType) {
+        element = resynthesizer
+            .getElementFromCanonicalName(referencedNode.typedef.canonicalName);
+        assert(element != null);
+      } else if (referencedNode is kernel.InterfaceType) {
+        element = resynthesizer.getElementFromCanonicalName(
+            referencedNode.classNode.canonicalName);
+        assert(element != null);
       } else if (referencedNode is kernel.MemberGetterNode) {
         var memberElement = resynthesizer
             .getElementFromCanonicalName(referencedNode.member.canonicalName);
@@ -1067,6 +1080,10 @@
         }
       } else if (referencedNode is kernel.NullNode) {
         element = null;
+      } else if (referencedNode == null) {
+        // This will occur if an identifier could not be resolved, such as a
+        // reference to a member when the target has type `dynamic`.
+        element = null;
       } else {
         throw new UnimplementedError(
             'Declaration: (${referencedNode.runtimeType}) $referencedNode');
@@ -1104,7 +1121,16 @@
     context = element;
 
     var declaration = functionElementToDeclaration[element];
-    kernel.FunctionType kernelType = declaration.type;
+
+    // Get the declaration kernel type.
+    kernel.FunctionType kernelType;
+    if (declaration is kernel.VariableDeclaration) {
+      kernelType = declaration.type;
+    } else if (declaration is kernel.FunctionExpression) {
+      kernelType = declaration.function.functionType;
+    } else {
+      throw new StateError('(${declaration.runtimeType}) $declaration');
+    }
 
     element.returnType = resynthesizer.getType(context, kernelType.returnType);
 
@@ -1123,123 +1149,17 @@
     context = contextStack.removeLast();
   }
 
-  /// Given the [executable] element that corresponds to the [kernelNode],
-  /// and the [kernelType] that is the instantiated type of [kernelNode],
-  /// return the instantiated type of the [executable].
-  FunctionType instantiateFunctionType(ExecutableElement executable,
-      kernel.FunctionNode kernelNode, kernel.FunctionType kernelType) {
-    // Prepare all kernel type parameters.
-    var kernelTypeParameters = <kernel.TypeParameter>[];
-    for (kernel.TreeNode node = kernelNode; node != null; node = node.parent) {
-      if (node is kernel.Class) {
-        kernelTypeParameters.addAll(node.typeParameters);
-      } else if (node is kernel.FunctionNode) {
-        kernelTypeParameters.addAll(node.typeParameters);
-      }
-    }
-
-    // If no type parameters, the raw type of the element will do.
-    FunctionTypeImpl rawType = executable.type;
-    if (kernelTypeParameters.isEmpty) {
-      return rawType;
-    }
-
-    // Compute type arguments for kernel type parameters.
-    var kernelMap = kernel.unifyTypes(
-        kernelNode.functionType.withoutTypeParameters,
-        kernelType,
-        kernelTypeParameters.toSet());
-
-    // Prepare Analyzer type parameters, in the same order as kernel ones.
-    var astTypeParameters = <TypeParameterElement>[];
-    for (Element element = executable;
-        element != null;
-        element = element.enclosingElement) {
-      if (element is TypeParameterizedElement) {
-        astTypeParameters.addAll(element.typeParameters);
-      }
-    }
-
-    // Convert kernel type arguments into Analyzer types.
-    int length = astTypeParameters.length;
-    var usedTypeParameters = <TypeParameterElement>[];
-    var usedTypeArguments = <DartType>[];
-    for (var i = 0; i < length; i++) {
-      var kernelParameter = kernelTypeParameters[i];
-      var kernelArgument = kernelMap[kernelParameter];
-      if (kernelArgument != null) {
-        DartType astArgument = resynthesizer.getType(null, kernelArgument);
-        usedTypeParameters.add(astTypeParameters[i]);
-        usedTypeArguments.add(astArgument);
-      }
-    }
-
-    if (usedTypeParameters.isEmpty) {
-      return rawType;
-    }
-
-    // Replace Analyzer type parameters with type arguments.
-    return rawType.substitute4(usedTypeParameters, usedTypeArguments);
-  }
-
   /// Translate the given [declaration].
-  void translateKernelDeclaration(kernel.Statement declaration) {
+  void translateKernelDeclaration(kernel.TreeNode declaration) {
     if (declaration is kernel.VariableDeclaration) {
       kernel.TreeNode functionDeclaration = declaration.parent;
       if (functionDeclaration is kernel.FunctionDeclaration) {
-        var kernelFunction = functionDeclaration.function;
-
         var element =
             new FunctionElementImpl(declaration.name, declaration.fileOffset);
         functionElementToDeclaration[element] = declaration;
-
-        // Set type parameters.
-        {
-          var astParameters = <TypeParameterElement>[];
-          for (var kernelParameter in kernelFunction.typeParameters) {
-            var astParameter = new TypeParameterElementImpl(
-                kernelParameter.name, kernelParameter.fileOffset);
-            astParameter.type = new TypeParameterTypeImpl(astParameter);
-            // TODO(scheglov) remember mapping to set bounds later
-            astParameters.add(astParameter);
-          }
-          element.typeParameters = astParameters;
-        }
-
-        // Set formal parameters.
-        {
-          var astParameters = <ParameterElement>[];
-
-          // Add positional parameters
-          var kernelPositionalParameters = kernelFunction.positionalParameters;
-          for (var i = 0; i < kernelPositionalParameters.length; i++) {
-            var kernelParameter = kernelPositionalParameters[i];
-            var astParameter = new ParameterElementImpl(
-                kernelParameter.name, kernelParameter.fileOffset);
-            astParameter.parameterKind =
-                i < kernelFunction.requiredParameterCount
-                    ? ParameterKind.REQUIRED
-                    : ParameterKind.POSITIONAL;
-            astParameters.add(astParameter);
-            declarationToElement[kernelParameter] = astParameter;
-            parameterElementToDeclaration[astParameter] = kernelParameter;
-          }
-
-          // Add named parameters.
-          for (var kernelParameter in kernelFunction.namedParameters) {
-            var astParameter = new ParameterElementImpl(
-                kernelParameter.name, kernelParameter.fileOffset);
-            astParameter.parameterKind = ParameterKind.NAMED;
-            astParameters.add(astParameter);
-            declarationToElement[kernelParameter] = astParameter;
-            parameterElementToDeclaration[astParameter] = kernelParameter;
-          }
-
-          element.parameters = astParameters;
-
-          declaredElements.add(element);
-          declarationToElement[declaration] = element;
-        }
+        _addFormalParameters(element, functionDeclaration.function);
+        declaredElements.add(element);
+        declarationToElement[declaration] = element;
       } else {
         // TODO(scheglov) Do we need ConstLocalVariableElementImpl?
         var element = new LocalVariableElementImpl(
@@ -1247,6 +1167,12 @@
         declaredElements.add(element);
         declarationToElement[declaration] = element;
       }
+    } else if (declaration is kernel.FunctionExpression) {
+      var element = new FunctionElementImpl('', declaration.fileOffset);
+      functionElementToDeclaration[element] = declaration;
+      _addFormalParameters(element, declaration.function);
+      declaredElements.add(element);
+      declarationToElement[declaration] = element;
     } else {
       throw new UnimplementedError(
           'Declaration: (${declaration.runtimeType}) $declaration');
@@ -1260,16 +1186,72 @@
       FunctionElement element = declarationToElement[variable];
       return element.type;
     } else if (kernelType is kernel.MemberInvocationDartType) {
-      ExecutableElementImpl element = resynthesizer
-          .getElementFromCanonicalName(kernelType.member.canonicalName);
-      return instantiateFunctionType(
-          element, kernelType.member.function, kernelType.type);
+      kernel.Member member = kernelType.member;
+      if (member != null) {
+        ExecutableElementImpl element =
+            resynthesizer.getElementFromCanonicalName(member.canonicalName);
+        return resynthesizer.instantiateFunctionType(
+            context,
+            element,
+            member.function,
+            member.function.functionType.withoutTypeParameters,
+            kernelType.type);
+      }
+      return null;
     } else if (kernelType is kernel.IndexAssignNullFunctionType) {
       return null;
     } else {
       return resynthesizer.getType(context, kernelType);
     }
   }
+
+  /// Add formal parameters defined in the [kernelFunction] to the [element].
+  void _addFormalParameters(
+      FunctionElementImpl element, kernel.FunctionNode kernelFunction) {
+    // Set type parameters.
+    {
+      var astParameters = <TypeParameterElement>[];
+      for (var kernelParameter in kernelFunction.typeParameters) {
+        var astParameter = new TypeParameterElementImpl(
+            kernelParameter.name, kernelParameter.fileOffset);
+        astParameter.type = new TypeParameterTypeImpl(astParameter);
+        // TODO(scheglov) remember mapping to set bounds later
+        astParameters.add(astParameter);
+      }
+      element.typeParameters = astParameters;
+    }
+
+    // Set formal parameters.
+    {
+      var astParameters = <ParameterElement>[];
+
+      // Add positional parameters
+      var kernelPositionalParameters = kernelFunction.positionalParameters;
+      for (var i = 0; i < kernelPositionalParameters.length; i++) {
+        var kernelParameter = kernelPositionalParameters[i];
+        var astParameter = new ParameterElementImpl(
+            kernelParameter.name, kernelParameter.fileOffset);
+        astParameter.parameterKind = i < kernelFunction.requiredParameterCount
+            ? ParameterKind.REQUIRED
+            : ParameterKind.POSITIONAL;
+        astParameters.add(astParameter);
+        declarationToElement[kernelParameter] = astParameter;
+        parameterElementToDeclaration[astParameter] = kernelParameter;
+      }
+
+      // Add named parameters.
+      for (var kernelParameter in kernelFunction.namedParameters) {
+        var astParameter = new ParameterElementImpl(
+            kernelParameter.name, kernelParameter.fileOffset);
+        astParameter.parameterKind = ParameterKind.NAMED;
+        astParameters.add(astParameter);
+        declarationToElement[kernelParameter] = astParameter;
+        parameterElementToDeclaration[astParameter] = kernelParameter;
+      }
+
+      element.parameters = astParameters;
+    }
+  }
 }
 
 /// [Iterator] like object that provides [CollectedResolution]s.
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index 666c570..5c534f9 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -2790,6 +2790,12 @@
  */
 class ElementAnnotationImpl implements ElementAnnotation {
   /**
+   * The name of the top-level variable used to mark that a function always
+   * throws, for dead code purposes.
+   */
+  static String _ALWAYS_THROWS_VARIABLE_NAME = "alwaysThrows";
+
+  /**
    * The name of the top-level variable used to mark a method parameter as
    * covariant.
    */
@@ -2904,6 +2910,12 @@
   @override
   AnalysisContext get context => compilationUnit.library.context;
 
+  @override
+  bool get isAlwaysThrows =>
+      element is PropertyAccessorElement &&
+      element.name == _ALWAYS_THROWS_VARIABLE_NAME &&
+      element.library?.name == _META_LIB_NAME;
+
   /**
    * Return `true` if this annotation marks the associated parameter as being
    * covariant, meaning it is allowed to have a narrower type in an override.
@@ -3157,6 +3169,10 @@
   String get identifier => name;
 
   @override
+  bool get isAlwaysThrows =>
+      metadata.any((ElementAnnotation annotation) => annotation.isAlwaysThrows);
+
+  @override
   bool get isDeprecated {
     for (ElementAnnotation annotation in metadata) {
       if (annotation.isDeprecated) {
@@ -5341,11 +5357,8 @@
   GenericFunctionTypeElementImpl get function {
     if (_function == null) {
       if (_kernel != null) {
-        var context = enclosingUnit._kernelContext;
-        var type = context.getType(this, _kernel.type);
-        if (type is FunctionType) {
-          _function = type.element;
-        }
+        _function =
+            new GenericFunctionTypeElementImpl.forKernel(this, _kernel.type);
       }
       if (_unlinkedTypedef != null) {
         if (_unlinkedTypedef.style == TypedefStyle.genericFunctionType) {
@@ -7416,6 +7429,9 @@
   Element get enclosingElement => null;
 
   @override
+  bool get isAlwaysThrows => false;
+
+  @override
   bool get isDeprecated => false;
 
   @override
diff --git a/pkg/analyzer/lib/src/dart/element/handle.dart b/pkg/analyzer/lib/src/dart/element/handle.dart
index 52ca616..f26e94e 100644
--- a/pkg/analyzer/lib/src/dart/element/handle.dart
+++ b/pkg/analyzer/lib/src/dart/element/handle.dart
@@ -348,6 +348,9 @@
   int get hashCode => _location.hashCode;
 
   @override
+  bool get isAlwaysThrows => actualElement.isAlwaysThrows;
+
+  @override
   bool get isDeprecated => actualElement.isDeprecated;
 
   @override
diff --git a/pkg/analyzer/lib/src/dart/element/member.dart b/pkg/analyzer/lib/src/dart/element/member.dart
index 08041dc..ef78722 100644
--- a/pkg/analyzer/lib/src/dart/element/member.dart
+++ b/pkg/analyzer/lib/src/dart/element/member.dart
@@ -394,6 +394,9 @@
   int get id => _baseElement.id;
 
   @override
+  bool get isAlwaysThrows => _baseElement.isAlwaysThrows;
+
+  @override
   bool get isDeprecated => _baseElement.isDeprecated;
 
   @override
diff --git a/pkg/analyzer/lib/src/fasta/ast_builder.dart b/pkg/analyzer/lib/src/fasta/ast_builder.dart
index 7c01ac3..463735d 100644
--- a/pkg/analyzer/lib/src/fasta/ast_builder.dart
+++ b/pkg/analyzer/lib/src/fasta/ast_builder.dart
@@ -2,11 +2,15 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-import 'package:analyzer/analyzer.dart';
+import 'package:analyzer/dart/ast/ast.dart';
 import 'package:analyzer/dart/ast/ast_factory.dart' show AstFactory;
 import 'package:analyzer/dart/ast/standard_ast_factory.dart' as standard;
 import 'package:analyzer/dart/ast/token.dart' show Token, TokenType;
+import 'package:analyzer/error/listener.dart';
 import 'package:analyzer/src/fasta/error_converter.dart';
+import 'package:analyzer/src/generated/java_core.dart';
+import 'package:analyzer/src/generated/java_engine.dart';
+import 'package:analyzer/src/generated/utilities_dart.dart';
 import 'package:front_end/src/fasta/parser.dart'
     show
         Assert,
@@ -16,8 +20,14 @@
         optional,
         Parser;
 import 'package:front_end/src/fasta/scanner/string_scanner.dart';
+import 'package:front_end/src/fasta/scanner.dart' hide StringToken;
 import 'package:front_end/src/scanner/token.dart'
-    show SyntheticBeginToken, SyntheticToken, CommentToken;
+    show
+        StringToken,
+        SyntheticBeginToken,
+        SyntheticStringToken,
+        SyntheticToken,
+        CommentToken;
 
 import 'package:front_end/src/fasta/problems.dart' show unhandled;
 import 'package:front_end/src/fasta/messages.dart'
@@ -1011,7 +1021,7 @@
     _Modifiers modifiers = pop();
     Token keyword = modifiers?.finalConstOrVarKeyword;
     Token covariantKeyword = modifiers?.covariantKeyword;
-    List<Annotation> metadata = pop(); // TODO(paulberry): Metadata.
+    List<Annotation> metadata = pop();
     Comment comment = _findComment(metadata,
         thisKeyword ?? typeOrFunctionTypedParameter?.beginToken ?? nameToken);
 
@@ -2294,10 +2304,310 @@
     return null;
   }
 
-  /**
-   * Parse a documentation comment. Return the documentation comment that was
-   * parsed, or `null` if there was no comment.
-   */
+  /// Search the given list of [ranges] for a range that contains the given
+  /// [index]. Return the range that was found, or `null` if none of the ranges
+  /// contain the index.
+  List<int> _findRange(List<List<int>> ranges, int index) {
+    int rangeCount = ranges.length;
+    for (int i = 0; i < rangeCount; i++) {
+      List<int> range = ranges[i];
+      if (range[0] <= index && index <= range[1]) {
+        return range;
+      } else if (index < range[0]) {
+        return null;
+      }
+    }
+    return null;
+  }
+
+  /// Return a list of the ranges of characters in the given [comment] that
+  /// should be treated as code blocks.
+  List<List<int>> _getCodeBlockRanges(String comment) {
+    List<List<int>> ranges = <List<int>>[];
+    int length = comment.length;
+    if (length < 3) {
+      return ranges;
+    }
+    int index = 0;
+    int firstChar = comment.codeUnitAt(0);
+    if (firstChar == 0x2F) {
+      int secondChar = comment.codeUnitAt(1);
+      int thirdChar = comment.codeUnitAt(2);
+      if ((secondChar == 0x2A && thirdChar == 0x2A) ||
+          (secondChar == 0x2F && thirdChar == 0x2F)) {
+        index = 3;
+      }
+    }
+    if (comment.startsWith('    ', index)) {
+      int end = index + 4;
+      while (end < length &&
+          comment.codeUnitAt(end) != 0xD &&
+          comment.codeUnitAt(end) != 0xA) {
+        end = end + 1;
+      }
+      ranges.add(<int>[index, end]);
+      index = end;
+    }
+    while (index < length) {
+      int currentChar = comment.codeUnitAt(index);
+      if (currentChar == 0xD || currentChar == 0xA) {
+        index = index + 1;
+        while (index < length &&
+            Character.isWhitespace(comment.codeUnitAt(index))) {
+          index = index + 1;
+        }
+        if (comment.startsWith('      ', index)) {
+          int end = index + 6;
+          while (end < length &&
+              comment.codeUnitAt(end) != 0xD &&
+              comment.codeUnitAt(end) != 0xA) {
+            end = end + 1;
+          }
+          ranges.add(<int>[index, end]);
+          index = end;
+        }
+      } else if (index + 1 < length &&
+          currentChar == 0x5B &&
+          comment.codeUnitAt(index + 1) == 0x3A) {
+        int end = comment.indexOf(':]', index + 2);
+        if (end < 0) {
+          end = length;
+        }
+        ranges.add(<int>[index, end]);
+        index = end + 1;
+      } else {
+        index = index + 1;
+      }
+    }
+    return ranges;
+  }
+
+  ///
+  /// Given that we have just found bracketed text within the given [comment],
+  /// look to see whether that text is (a) followed by a parenthesized link
+  /// address, (b) followed by a colon, or (c) followed by optional whitespace
+  /// and another square bracket. The [rightIndex] is the index of the right
+  /// bracket. Return `true` if the bracketed text is followed by a link
+  /// address.
+  ///
+  /// This method uses the syntax described by the
+  /// <a href="http://daringfireball.net/projects/markdown/syntax">markdown</a>
+  /// project.
+  bool _isLinkText(String comment, int rightIndex) {
+    int length = comment.length;
+    int index = rightIndex + 1;
+    if (index >= length) {
+      return false;
+    }
+    int nextChar = comment.codeUnitAt(index);
+    if (nextChar == 0x28 || nextChar == 0x3A) {
+      return true;
+    }
+    while (Character.isWhitespace(nextChar)) {
+      index = index + 1;
+      if (index >= length) {
+        return false;
+      }
+      nextChar = comment.codeUnitAt(index);
+    }
+    return nextChar == 0x5B;
+  }
+
+  /// Parse a comment reference from the source between square brackets. The
+  /// [referenceSource] is the source occurring between the square brackets
+  /// within a documentation comment. The [sourceOffset] is the offset of the
+  /// first character of the reference source. Return the comment reference that
+  /// was parsed, or `null` if no reference could be found.
+  /// ```
+  /// commentReference ::=
+  ///     'new'? prefixedIdentifier
+  /// ```
+  CommentReference _parseCommentReference(
+      String referenceSource, int sourceOffset) {
+    // TODO(brianwilkerson) The errors are not getting the right offset/length
+    // and are being duplicated.
+    void offsetTokens(Token token) {
+      while (token.type != TokenType.EOF) {
+        token.offset = token.offset + sourceOffset;
+        token = token.next;
+      }
+    }
+
+    try {
+      BooleanErrorListener listener = new BooleanErrorListener();
+      ScannerResult result = scanString(referenceSource);
+      Token firstToken = result.tokens;
+      offsetTokens(firstToken);
+      if (listener.errorReported) {
+        return null;
+      }
+      if (firstToken.type == TokenType.EOF) {
+        Token syntheticToken =
+            new SyntheticStringToken(TokenType.IDENTIFIER, "", sourceOffset);
+        syntheticToken.setNext(firstToken);
+        return ast.commentReference(null, ast.simpleIdentifier(syntheticToken));
+      }
+      Token newKeyword = null;
+      if (_tokenMatchesKeyword(firstToken, Keyword.NEW)) {
+        newKeyword = firstToken;
+        firstToken = firstToken.next;
+      }
+      if (firstToken.isUserDefinableOperator) {
+        if (firstToken.next.type != TokenType.EOF) {
+          return null;
+        }
+        Identifier identifier = ast.simpleIdentifier(firstToken);
+        return ast.commentReference(null, identifier);
+      } else if (_tokenMatchesKeyword(firstToken, Keyword.OPERATOR)) {
+        Token secondToken = firstToken.next;
+        if (secondToken.isUserDefinableOperator) {
+          if (secondToken.next.type != TokenType.EOF) {
+            return null;
+          }
+          Identifier identifier = ast.simpleIdentifier(secondToken);
+          return ast.commentReference(null, identifier);
+        }
+        return null;
+      } else if (_tokenMatchesIdentifier(firstToken)) {
+        Token secondToken = firstToken.next;
+        Token thirdToken = secondToken.next;
+        Token nextToken;
+        Identifier identifier;
+        if (_tokenMatches(secondToken, TokenType.PERIOD)) {
+          if (thirdToken.isUserDefinableOperator) {
+            identifier = ast.prefixedIdentifier(
+                ast.simpleIdentifier(firstToken),
+                secondToken,
+                ast.simpleIdentifier(thirdToken));
+            nextToken = thirdToken.next;
+          } else if (_tokenMatchesKeyword(thirdToken, Keyword.OPERATOR)) {
+            Token fourthToken = thirdToken.next;
+            if (fourthToken.isUserDefinableOperator) {
+              identifier = ast.prefixedIdentifier(
+                  ast.simpleIdentifier(firstToken),
+                  secondToken,
+                  ast.simpleIdentifier(fourthToken));
+              nextToken = fourthToken.next;
+            } else {
+              return null;
+            }
+          } else if (_tokenMatchesIdentifier(thirdToken)) {
+            identifier = ast.prefixedIdentifier(
+                ast.simpleIdentifier(firstToken),
+                secondToken,
+                ast.simpleIdentifier(thirdToken));
+            nextToken = thirdToken.next;
+          }
+        } else {
+          identifier = ast.simpleIdentifier(firstToken);
+          nextToken = firstToken.next;
+        }
+        if (nextToken.type != TokenType.EOF) {
+          return null;
+        }
+        return ast.commentReference(newKeyword, identifier);
+      } else {
+        Keyword keyword = firstToken.keyword;
+        if (keyword == Keyword.THIS ||
+            keyword == Keyword.NULL ||
+            keyword == Keyword.TRUE ||
+            keyword == Keyword.FALSE) {
+          // TODO(brianwilkerson) If we want to support this we will need to
+          // extend the definition of CommentReference to take an expression
+          // rather than an identifier. For now we just ignore it to reduce the
+          // number of errors produced, but that's probably not a valid long
+          // term approach.
+          return null;
+        }
+      }
+    } catch (exception) {
+      // Ignored because we assume that it wasn't a real comment reference.
+    }
+    return null;
+  }
+
+  /// Parse all of the comment references occurring in the given array of
+  /// documentation comments. The [tokens] are the comment tokens representing
+  /// the documentation comments to be parsed. Return the comment references that
+  /// were parsed.
+  /// ```
+  /// commentReference ::=
+  ///     '[' 'new'? qualified ']' libraryReference?
+  ///
+  /// libraryReference ::=
+  ///      '(' stringLiteral ')'
+  /// ```
+  List<CommentReference> _parseCommentReferences(List<Token> tokens) {
+    List<CommentReference> references = <CommentReference>[];
+    bool isInGitHubCodeBlock = false;
+    for (Token token in tokens) {
+      String comment = token.lexeme;
+      // Skip GitHub code blocks.
+      // https://help.github.com/articles/creating-and-highlighting-code-blocks/
+      if (tokens.length != 1) {
+        if (comment.indexOf('```') != -1) {
+          isInGitHubCodeBlock = !isInGitHubCodeBlock;
+        }
+        if (isInGitHubCodeBlock) {
+          continue;
+        }
+      }
+      // Remove GitHub include code.
+      comment = _removeGitHubInlineCode(comment);
+      // Find references.
+      int length = comment.length;
+      List<List<int>> codeBlockRanges = _getCodeBlockRanges(comment);
+      int leftIndex = comment.indexOf('[');
+      while (leftIndex >= 0 && leftIndex + 1 < length) {
+        List<int> range = _findRange(codeBlockRanges, leftIndex);
+        if (range == null) {
+          int nameOffset = token.offset + leftIndex + 1;
+          int rightIndex = comment.indexOf(']', leftIndex);
+          if (rightIndex >= 0) {
+            int firstChar = comment.codeUnitAt(leftIndex + 1);
+            if (firstChar != 0x27 && firstChar != 0x22) {
+              if (_isLinkText(comment, rightIndex)) {
+                // TODO(brianwilkerson) Handle the case where there's a library
+                // URI in the link text.
+              } else {
+                CommentReference reference = _parseCommentReference(
+                    comment.substring(leftIndex + 1, rightIndex), nameOffset);
+                if (reference != null) {
+                  references.add(reference);
+                }
+              }
+            }
+          } else {
+            // terminating ']' is not typed yet
+            int charAfterLeft = comment.codeUnitAt(leftIndex + 1);
+            Token nameToken;
+            if (Character.isLetterOrDigit(charAfterLeft)) {
+              int nameEnd = StringUtilities.indexOfFirstNotLetterDigit(
+                  comment, leftIndex + 1);
+              String name = comment.substring(leftIndex + 1, nameEnd);
+              nameToken =
+                  new StringToken(TokenType.IDENTIFIER, name, nameOffset);
+            } else {
+              nameToken = new SyntheticStringToken(
+                  TokenType.IDENTIFIER, '', nameOffset);
+            }
+            nameToken.setNext(new Token.eof(nameToken.end));
+            references.add(
+                ast.commentReference(null, ast.simpleIdentifier(nameToken)));
+            // next character
+            rightIndex = leftIndex + 1;
+          }
+          leftIndex = comment.indexOf('[', rightIndex);
+        } else {
+          leftIndex = comment.indexOf('[', range[1]);
+        }
+      }
+    }
+    return references;
+  }
+
+  /// Parse a documentation comment. Return the documentation comment that was
+  /// parsed, or `null` if there was no comment.
   Comment _parseDocumentationCommentOpt(CommentToken commentToken) {
     List<Token> tokens = <Token>[];
     while (commentToken != null) {
@@ -2316,12 +2626,48 @@
       }
       commentToken = commentToken.next;
     }
-    // TODO(brianwilkerson) Use the code in analyzer's parser to parse the
-    // references inside the comment.
-    List<CommentReference> references = <CommentReference>[];
+    List<CommentReference> references = _parseCommentReferences(tokens);
     return tokens.isEmpty ? null : ast.documentationComment(tokens, references);
   }
 
+  /// Remove any substrings in the given [comment] that represent in-line code
+  /// in markdown.
+  String _removeGitHubInlineCode(String comment) {
+    int index = 0;
+    while (true) {
+      int beginIndex = comment.indexOf('`', index);
+      if (beginIndex == -1) {
+        break;
+      }
+      int endIndex = comment.indexOf('`', beginIndex + 1);
+      if (endIndex == -1) {
+        break;
+      }
+      comment = comment.substring(0, beginIndex + 1) +
+          ' ' * (endIndex - beginIndex - 1) +
+          comment.substring(endIndex);
+      index = endIndex + 1;
+    }
+    return comment;
+  }
+
+  /// Return `true` if the given [token] has the given [type].
+  bool _tokenMatches(Token token, TokenType type) => token.type == type;
+
+  /// Return `true` if the given [token] is a valid identifier. Valid
+  /// identifiers include built-in identifiers (pseudo-keywords).
+  bool _tokenMatchesIdentifier(Token token) =>
+      _tokenMatches(token, TokenType.IDENTIFIER) ||
+      _tokenMatchesPseudoKeyword(token);
+
+  /// Return `true` if the given [token] matches the given [keyword].
+  bool _tokenMatchesKeyword(Token token, Keyword keyword) =>
+      token.keyword == keyword;
+
+  /// Return `true` if the given [token] matches a pseudo keyword.
+  bool _tokenMatchesPseudoKeyword(Token token) =>
+      token.keyword?.isBuiltInOrPseudo ?? false;
+
   @override
   void debugEvent(String name) {
     // printEvent('AstBuilder: $name');
diff --git a/pkg/analyzer/lib/src/fasta/error_converter.dart b/pkg/analyzer/lib/src/fasta/error_converter.dart
index 0b61844..f93c156 100644
--- a/pkg/analyzer/lib/src/fasta/error_converter.dart
+++ b/pkg/analyzer/lib/src/fasta/error_converter.dart
@@ -271,6 +271,30 @@
             offset,
             length);
         return;
+      case "INVALID_CAST_FUNCTION":
+        errorReporter?.reportErrorForOffset(
+            StrongModeCode.INVALID_CAST_FUNCTION, offset, length);
+        return;
+      case "INVALID_CAST_FUNCTION_EXPR":
+        errorReporter?.reportErrorForOffset(
+            StrongModeCode.INVALID_CAST_FUNCTION_EXPR, offset, length);
+        return;
+      case "INVALID_CAST_LITERAL_LIST":
+        errorReporter?.reportErrorForOffset(
+            StrongModeCode.INVALID_CAST_LITERAL_LIST, offset, length);
+        return;
+      case "INVALID_CAST_LITERAL_MAP":
+        errorReporter?.reportErrorForOffset(
+            StrongModeCode.INVALID_CAST_LITERAL_MAP, offset, length);
+        return;
+      case "INVALID_CAST_METHOD":
+        errorReporter?.reportErrorForOffset(
+            StrongModeCode.INVALID_CAST_METHOD, offset, length);
+        return;
+      case "INVALID_CAST_NEW_EXPR":
+        errorReporter?.reportErrorForOffset(
+            StrongModeCode.INVALID_CAST_NEW_EXPR, offset, length);
+        return;
       case "INVALID_MODIFIER_ON_SETTER":
         errorReporter?.reportErrorForOffset(
             CompileTimeErrorCode.INVALID_MODIFIER_ON_SETTER, offset, length);
diff --git a/pkg/analyzer/lib/src/fasta/resolution_applier.dart b/pkg/analyzer/lib/src/fasta/resolution_applier.dart
index a865cb1..80281aa 100644
--- a/pkg/analyzer/lib/src/fasta/resolution_applier.dart
+++ b/pkg/analyzer/lib/src/fasta/resolution_applier.dart
@@ -121,6 +121,40 @@
   }
 
   @override
+  void visitCascadeExpression(CascadeExpression node) {
+    visitNode(node);
+    node.staticType = node.target.staticType;
+  }
+
+  @override
+  void visitCatchClause(CatchClause node) {
+    DartType guardType = _getTypeFor(node.onKeyword ?? node.catchKeyword);
+    if (node.exceptionType != null) {
+      applyToTypeAnnotation(guardType, node.exceptionType);
+    }
+
+    SimpleIdentifier exception = node.exceptionParameter;
+    if (exception != null) {
+      LocalVariableElementImpl element = _getDeclarationFor(exception);
+      DartType type = _getTypeFor(exception);
+      element.type = type;
+      exception.staticElement = element;
+      exception.staticType = type;
+    }
+
+    SimpleIdentifier stackTrace = node.stackTraceParameter;
+    if (stackTrace != null) {
+      LocalVariableElementImpl element = _getDeclarationFor(stackTrace);
+      DartType type = _getTypeFor(stackTrace);
+      element.type = type;
+      stackTrace.staticElement = element;
+      stackTrace.staticType = type;
+    }
+
+    node.body.accept(this);
+  }
+
+  @override
   void visitConditionalExpression(ConditionalExpression node) {
     node.condition.accept(this);
     node.thenExpression.accept(this);
@@ -129,6 +163,15 @@
   }
 
   @override
+  void visitConstructorFieldInitializer(ConstructorFieldInitializer node) {
+    FieldElement fieldElement = _getReferenceFor(node.equals);
+    node.fieldName.staticElement = fieldElement;
+    node.fieldName.staticType = fieldElement.type;
+
+    node.expression.accept(this);
+  }
+
+  @override
   void visitExpression(Expression node) {
     visitNode(node);
     node.staticType = _getTypeFor(node);
@@ -216,6 +259,27 @@
   }
 
   @override
+  void visitFunctionExpression(FunctionExpression node) {
+    FormalParameterList parameterList = node.parameters;
+
+    FunctionElementImpl element = _getDeclarationFor(node);
+    _typeContext.enterLocalFunction(element);
+
+    // Associate the elements with the nodes.
+    if (element != null) {
+      node.element = element;
+      node.staticType = element.type;
+      _applyParameters(element.parameters, parameterList.parameters);
+    }
+
+    // Apply resolution to default values.
+    parameterList.accept(this);
+
+    node.body.accept(this);
+    _typeContext.exitLocalFunction(element);
+  }
+
+  @override
   void visitFunctionExpressionInvocation(FunctionExpressionInvocation node) {
     node.function.accept(this);
     // TODO(brianwilkerson) Visit node.typeArguments.
@@ -246,8 +310,6 @@
 
   @override
   void visitInstanceCreationExpression(InstanceCreationExpression node) {
-    node.argumentList?.accept(this);
-
     ConstructorName constructorName = node.constructorName;
 
     DartType type = _getTypeFor(constructorName);
@@ -277,6 +339,7 @@
       constructorName.name.staticElement = element;
     }
 
+    node.argumentList?.accept(this);
     _associateArgumentsWithParameters(element?.parameters, node.argumentList);
   }
 
@@ -300,7 +363,7 @@
   @override
   void visitMapLiteral(MapLiteral node) {
     node.entries.accept(this);
-    DartType type = _getTypeFor(node);
+    DartType type = _getTypeFor(node.constKeyword ?? node.leftBracket);
     node.staticType = type;
     if (node.typeArguments != null) {
       _applyTypeArgumentsToList(type, node.typeArguments.arguments);
@@ -445,6 +508,22 @@
   }
 
   @override
+  void visitSuperConstructorInvocation(SuperConstructorInvocation node) {
+    SimpleIdentifier constructorName = node.constructorName;
+    var superElement = _typeContext.enclosingClassElement.supertype.element;
+    if (constructorName == null) {
+      node.staticElement = superElement.unnamedConstructor;
+    } else {
+      String name = constructorName.name;
+      var superConstructor = superElement.getNamedConstructor(name);
+      node.staticElement = superConstructor;
+      constructorName.staticElement = superConstructor;
+    }
+
+    node.argumentList.accept(this);
+  }
+
+  @override
   void visitSuperExpression(SuperExpression node) {
     node.staticType = _typeContext.enclosingClassElement?.type;
   }
@@ -652,7 +731,14 @@
     } else if (typeAnnotation is TypeNameImpl) {
       typeAnnotation.type = type;
       SimpleIdentifier name = nameForElement(typeAnnotation.name);
-      name.staticElement = type.element;
+
+      Element typeElement = type.element;
+      if (typeElement is GenericFunctionTypeElement &&
+          typeElement.enclosingElement is GenericTypeAliasElement) {
+        typeElement = typeElement.enclosingElement;
+      }
+      name.staticElement = typeElement;
+
       name.staticType = type;
     }
     if (typeAnnotation is NamedType) {
diff --git a/pkg/analyzer/lib/src/fasta/resolution_storer.dart b/pkg/analyzer/lib/src/fasta/resolution_storer.dart
index bcacf81..665f407 100644
--- a/pkg/analyzer/lib/src/fasta/resolution_storer.dart
+++ b/pkg/analyzer/lib/src/fasta/resolution_storer.dart
@@ -3,6 +3,8 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:analyzer/src/fasta/resolution_applier.dart';
+import 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart';
+import 'package:front_end/src/fasta/type_inference/interface_resolver.dart';
 import 'package:front_end/src/fasta/type_inference/type_inference_listener.dart';
 import 'package:kernel/ast.dart';
 import 'package:kernel/type_algebra.dart';
@@ -49,7 +51,7 @@
   final List<int> _deferredTypeOffsets = [];
 
   InstrumentedResolutionStorer(
-      List<Statement> declarations,
+      List<TreeNode> declarations,
       List<Node> references,
       List<DartType> types,
       this._declarationOffsets,
@@ -74,8 +76,7 @@
   }
 
   @override
-  void _recordDeclaration(Statement declaration, int offset) {
-    if (_inSynthetic) return;
+  void _recordDeclaration(TreeNode declaration, int offset) {
     if (_debug) {
       print('Recording declaration of $declaration for offset $offset');
     }
@@ -85,7 +86,6 @@
 
   @override
   int _recordReference(Node target, int offset) {
-    if (_inSynthetic) return -1;
     if (_debug) {
       print('Recording reference to $target for offset $offset');
     }
@@ -95,7 +95,6 @@
 
   @override
   int _recordType(DartType type, int offset) {
-    if (_inSynthetic) return -1;
     if (_debug) {
       print('Recording type $type for offset $offset');
     }
@@ -106,7 +105,6 @@
 
   @override
   void _replaceReference(Node reference) {
-    if (_inSynthetic) return;
     if (_debug) {
       int offset = _deferredReferenceOffsets.removeLast();
       print('Replacing reference $reference for offset $offset');
@@ -116,7 +114,6 @@
 
   @override
   void _replaceType(DartType type, [int newOffset = -1]) {
-    if (_inSynthetic) return;
     if (newOffset != -1) {
       _typeOffsets[_deferredTypeSlots.last] = newOffset;
     }
@@ -194,7 +191,7 @@
 /// Type inference listener that records inferred types for later use by
 /// [ResolutionApplier].
 class ResolutionStorer extends TypeInferenceListener {
-  final List<Statement> _declarations;
+  final List<TreeNode> _declarations;
   final List<Node> _references;
   final List<DartType> _types;
 
@@ -204,11 +201,6 @@
   /// Indices into [_types] which need to be filled in later.
   final _deferredTypeSlots = <int>[];
 
-  /// When `true`, we are visiting a synthetic structure, which is not
-  /// present in AST, and not visible to Analyzer, so we should not record
-  /// any resolution information for it.
-  bool _inSynthetic = false;
-
   ResolutionStorer(this._declarations, this._references, this._types);
 
   @override
@@ -218,22 +210,54 @@
   }
 
   @override
+  void cascadeExpressionExit(Let expression, DartType inferredType) {
+    // Overridden so that the type of the expression will not be recorded. We
+    // don't need to record the type because the type is always the same as the
+    // type of the target, and we don't have the appropriate offset so we can't
+    // correctly apply the type even if we recorded it.
+  }
+
+  @override
+  void catchStatementEnter(Catch node) {
+    _recordType(node.guard, node.fileOffset);
+
+    VariableDeclaration exception = node.exception;
+    if (exception != null) {
+      _recordDeclaration(exception, exception.fileOffset);
+      _recordType(exception.type, exception.fileOffset);
+    }
+
+    VariableDeclaration stackTrace = node.stackTrace;
+    if (stackTrace != null) {
+      _recordDeclaration(stackTrace, stackTrace.fileOffset);
+      _recordType(stackTrace.type, stackTrace.fileOffset);
+    }
+  }
+
+  @override
   bool constructorInvocationEnter(
       InvocationExpression expression, DartType typeContext) {
-    return super.constructorInvocationEnter(expression, typeContext);
+    _deferReference(expression.fileOffset);
+    _deferType(expression.fileOffset);
+    return true;
   }
 
   @override
   void constructorInvocationExit(
       InvocationExpression expression, DartType inferredType) {
+    _replaceType(inferredType);
     if (expression is ConstructorInvocation) {
-      _recordReference(expression.target, expression.fileOffset);
+      _replaceReference(expression.target);
     } else if (expression is StaticInvocation) {
-      _recordReference(expression.target, expression.fileOffset);
+      _replaceReference(expression.target);
     } else {
       throw new UnimplementedError('${expression.runtimeType}');
     }
-    super.constructorInvocationExit(expression, inferredType);
+  }
+
+  @override
+  void fieldInitializerEnter(FieldInitializer initializer) {
+    _recordReference(initializer.field, initializer.fileOffset);
   }
 
   /// Verifies that all deferred work has been completed.
@@ -279,6 +303,20 @@
   }
 
   @override
+  bool functionExpressionEnter(
+      FunctionExpression expression, DartType typeContext) {
+    _recordDeclaration(expression, expression.fileOffset);
+    return super.functionExpressionEnter(expression, typeContext);
+  }
+
+  @override
+  void functionExpressionExit(
+      FunctionExpression expression, DartType inferredType) {
+    // We don't need to record the inferred type.
+    // It is already set in the function declaration.
+  }
+
+  @override
   bool genericExpressionEnter(
       String expressionType, Expression expression, DartType typeContext) {
     super.genericExpressionEnter(expressionType, expression, typeContext);
@@ -342,15 +380,6 @@
     _replaceType(inferredType);
   }
 
-  void loopAssignmentStatementEnter(ExpressionStatement statement) {
-    _inSynthetic = true;
-  }
-
-  @override
-  void loopAssignmentStatementExit(ExpressionStatement statement) {
-    _inSynthetic = false;
-  }
-
   @override
   void methodInvocationBeforeArgs(Expression expression, bool isImplicitCall) {
     if (!isImplicitCall) {
@@ -390,6 +419,9 @@
             ? arguments.fileOffset
             : expression.fileOffset);
     if (!isImplicitCall) {
+      if (interfaceMember is ForwardingStub) {
+        interfaceMember = ForwardingStub.getInterfaceTarget(interfaceMember);
+      }
       _replaceReference(interfaceMember);
       FunctionType invokeType = substitution == null
           ? calleeType
@@ -429,6 +461,9 @@
       DartType writeContext,
       Procedure combiner,
       DartType inferredType) {
+    if (writeMember is ForwardingStub) {
+      writeMember = ForwardingStub.getInterfaceTarget(writeMember);
+    }
     _replaceReference(new MemberSetterNode(writeMember));
     _replaceType(writeContext);
     _recordReference(
@@ -480,8 +515,13 @@
   }
 
   @override
-  bool staticInvocationEnter(
-      StaticInvocation expression, DartType typeContext) {
+  bool staticInvocationEnter(StaticInvocation expression, int targetOffset,
+      Class targetClass, DartType typeContext) {
+    // If the static target is explicit (and is a class), record it.
+    if (targetClass != null) {
+      _recordReference(targetClass, targetOffset);
+      _recordType(targetClass.rawType, targetOffset);
+    }
     // When the invocation target is `VariableGet`, we record the target
     // before arguments. To ensure this order for method invocations, we
     // first record `null`, and then replace it on exit.
@@ -499,7 +539,8 @@
     // type later.
     _deferType(expression.fileOffset);
     _deferType(expression.arguments.fileOffset);
-    return super.staticInvocationEnter(expression, typeContext);
+    return super.staticInvocationEnter(
+        expression, targetOffset, targetClass, typeContext);
   }
 
   @override
@@ -554,6 +595,7 @@
 
   @override
   void variableDeclarationEnter(VariableDeclaration statement) {
+    _recordDeclaration(statement, statement.fileOffset);
     _deferType(statement.fileOffset);
     super.variableDeclarationEnter(statement);
   }
@@ -561,14 +603,29 @@
   @override
   void variableDeclarationExit(
       VariableDeclaration statement, DartType inferredType) {
-    _recordDeclaration(statement, statement.fileOffset);
     _replaceType(statement.type);
     super.variableDeclarationExit(statement, inferredType);
   }
 
   @override
   void variableGetExit(VariableGet expression, DartType inferredType) {
+    /// Return `true` if the given [variable] declaration occurs in a let
+    /// expression that is, or is part of, a cascade expression.
+    bool isInCascade(VariableDeclaration variable) {
+      TreeNode ancestor = variable.parent;
+      while (ancestor is Let) {
+        if (ancestor is ShadowCascadeExpression) {
+          return true;
+        }
+        ancestor = ancestor.parent;
+      }
+      return false;
+    }
+
     VariableDeclaration variable = expression.variable;
+    if (isInCascade(variable)) {
+      return;
+    }
     _recordReference(variable, expression.fileOffset);
 
     TreeNode function = variable.parent;
@@ -594,33 +651,28 @@
     _deferredTypeSlots.add(slot);
   }
 
-  void _recordDeclaration(Statement declaration, int offset) {
-    if (_inSynthetic) return;
+  void _recordDeclaration(TreeNode declaration, int offset) {
     _declarations.add(declaration);
   }
 
   int _recordReference(Node target, int offset) {
-    if (_inSynthetic) return -1;
     int slot = _references.length;
     _references.add(target);
     return slot;
   }
 
   int _recordType(DartType type, int offset) {
-    if (_inSynthetic) return -1;
     int slot = _types.length;
     _types.add(type);
     return slot;
   }
 
   void _replaceReference(Node reference) {
-    if (_inSynthetic) return;
     int slot = _deferredReferenceSlots.removeLast();
     _references[slot] = reference;
   }
 
   void _replaceType(DartType type, [int newOffset = -1]) {
-    if (_inSynthetic) return;
     int slot = _deferredTypeSlots.removeLast();
     _types[slot] = type;
   }
diff --git a/pkg/analyzer/lib/src/generated/declaration_resolver.dart b/pkg/analyzer/lib/src/generated/declaration_resolver.dart
index 87cddaa..ae1db7e 100644
--- a/pkg/analyzer/lib/src/generated/declaration_resolver.dart
+++ b/pkg/analyzer/lib/src/generated/declaration_resolver.dart
@@ -106,6 +106,16 @@
     ClassElement element = _match(node.name, _walker.getClass());
     if (_applyKernelTypes) {
       node.name.staticType = _typeProvider.typeType;
+      if (node.extendsClause != null) {
+        ResolutionApplier.applyToTypeAnnotation(
+            element.supertype, node.extendsClause.superclass);
+      }
+      if (node.withClause != null) {
+        _applyTypeList(node.withClause.mixinTypes, element.mixins);
+      }
+      if (node.implementsClause != null) {
+        _applyTypeList(node.implementsClause.interfaces, element.interfaces);
+      }
     }
     _walk(new ElementWalker.forClass(element), () {
       super.visitClassDeclaration(node);
@@ -117,6 +127,17 @@
   @override
   Object visitClassTypeAlias(ClassTypeAlias node) {
     ClassElement element = _match(node.name, _walker.getClass());
+    if (_applyKernelTypes) {
+      node.name.staticType = _typeProvider.typeType;
+      ResolutionApplier.applyToTypeAnnotation(
+          element.supertype, node.superclass);
+      if (node.withClause != null) {
+        _applyTypeList(node.withClause.mixinTypes, element.mixins);
+      }
+      if (node.implementsClause != null) {
+        _applyTypeList(node.implementsClause.interfaces, element.interfaces);
+      }
+    }
     _walk(new ElementWalker.forClass(element), () {
       super.visitClassTypeAlias(node);
     });
@@ -190,6 +211,16 @@
   @override
   Object visitEnumDeclaration(EnumDeclaration node) {
     ClassElement element = _match(node.name, _walker.getEnum());
+    if (_applyKernelTypes) {
+      node.name.staticType = _typeProvider.typeType;
+      for (var constant in node.constants) {
+        SimpleIdentifier name = constant.name;
+        FieldElement field = element.getField(name.name);
+        name.staticElement = field;
+        name.staticType = element.type;
+      }
+      return null;
+    }
     _walk(new ElementWalker.forClass(element), () {
       for (EnumConstantDeclaration constant in node.constants) {
         _match(constant.name, _walker.getVariable());
@@ -231,7 +262,14 @@
   @override
   Object visitFieldDeclaration(FieldDeclaration node) {
     super.visitFieldDeclaration(node);
-    _resolveMetadata(node, node.metadata, node.fields.variables[0].element);
+    FieldElement firstFieldElement = node.fields.variables[0].element;
+    if (_applyKernelTypes) {
+      if (node.fields.type != null) {
+        ResolutionApplier.applyToTypeAnnotation(
+            firstFieldElement.type, node.fields.type);
+      }
+    }
+    _resolveMetadata(node, node.metadata, firstFieldElement);
     return null;
   }
 
@@ -306,6 +344,12 @@
   @override
   Object visitFunctionTypeAlias(FunctionTypeAlias node) {
     FunctionTypeAliasElement element = _match(node.name, _walker.getTypedef());
+    if (_applyKernelTypes) {
+      if (node.returnType != null) {
+        ResolutionApplier.applyToTypeAnnotation(
+            element.returnType, node.returnType);
+      }
+    }
     _walk(new ElementWalker.forTypedef(element), () {
       super.visitFunctionTypeAlias(node);
     });
@@ -501,7 +545,14 @@
   @override
   Object visitTopLevelVariableDeclaration(TopLevelVariableDeclaration node) {
     super.visitTopLevelVariableDeclaration(node);
-    _resolveMetadata(node, node.metadata, node.variables.variables[0].element);
+    VariableElement firstElement = node.variables.variables[0].element;
+    if (_applyKernelTypes) {
+      TypeAnnotation type = node.variables.type;
+      if (type != null) {
+        ResolutionApplier.applyToTypeAnnotation(firstElement.type, type);
+      }
+    }
+    _resolveMetadata(node, node.metadata, firstElement);
     return null;
   }
 
@@ -516,7 +567,13 @@
       node.name?.staticElement = element;
       return null;
     }
-    Element element = _match(node.name, _walker.getTypeParameter());
+    TypeParameterElement element =
+        _match(node.name, _walker.getTypeParameter());
+    if (_applyKernelTypes) {
+      if (node.bound != null) {
+        ResolutionApplier.applyToTypeAnnotation(element.bound, node.bound);
+      }
+    }
     super.visitTypeParameter(node);
     _resolveMetadata(node, node.metadata, element);
     return null;
@@ -676,6 +733,19 @@
     _walker = outerWalker;
   }
 
+  /**
+   * Apply [types] to [nodes].
+   * Both lists must have the same length.
+   */
+  static void _applyTypeList(List<TypeName> nodes, List<InterfaceType> types) {
+    if (nodes.length != types.length) {
+      throw new StateError('$nodes != $types');
+    }
+    for (int i = 0; i < nodes.length; i++) {
+      ResolutionApplier.applyToTypeAnnotation(types[i], nodes[i]);
+    }
+  }
+
   static bool _isBodyToCreateElementsFor(FunctionBody node) {
     AstNode parent = node.parent;
     return parent is ConstructorDeclaration ||
diff --git a/pkg/analyzer/lib/src/generated/parser.dart b/pkg/analyzer/lib/src/generated/parser.dart
index 80c7835..820bb38 100644
--- a/pkg/analyzer/lib/src/generated/parser.dart
+++ b/pkg/analyzer/lib/src/generated/parser.dart
@@ -280,7 +280,7 @@
   factory Parser(Source source, AnalysisErrorListener errorListener,
       {bool useFasta}) {
     if ((useFasta ?? false) || Parser.useFasta) {
-      return new _Parser2(source, errorListener);
+      return new _Parser2(source, errorListener, allowNativeClause: true);
     } else {
       return new Parser.withoutFasta(source, errorListener);
     }
diff --git a/pkg/analyzer/lib/src/generated/parser_fasta.dart b/pkg/analyzer/lib/src/generated/parser_fasta.dart
index 75740fd..abb2e16 100644
--- a/pkg/analyzer/lib/src/generated/parser_fasta.dart
+++ b/pkg/analyzer/lib/src/generated/parser_fasta.dart
@@ -162,6 +162,18 @@
   Expression parseConstExpression() => parseExpression2();
 
   @override
+  CompilationUnit parseDirectives(Token token) {
+    currentToken = token;
+    return parseDirectives2();
+  }
+
+  @override
+  CompilationUnit parseDirectives2() {
+    currentToken = fastaParser.parseDirectives(currentToken);
+    return astBuilder.pop();
+  }
+
+  @override
   DottedName parseDottedName() {
     currentToken = fastaParser
         .parseDottedName(fastaParser.syntheticPreviousToken(currentToken))
@@ -340,17 +352,21 @@
   @override
   bool enableNnbd = false;
 
-  factory _Parser2(Source source, AnalysisErrorListener errorListener) {
+  factory _Parser2(Source source, AnalysisErrorListener errorListener,
+      {bool allowNativeClause: false}) {
     var errorReporter = new ErrorReporter(errorListener, source);
     var library = new _KernelLibraryBuilder(source.uri);
     var member = new _Builder();
     var scope = new Scope.top(isModifiable: true);
-    return new _Parser2._(source, errorReporter, library, member, scope);
+    return new _Parser2._(source, errorReporter, library, member, scope,
+        allowNativeClause: allowNativeClause);
   }
 
   _Parser2._(this._source, ErrorReporter errorReporter,
-      KernelLibraryBuilder library, Builder member, Scope scope)
-      : super(null, errorReporter, library, member, scope);
+      KernelLibraryBuilder library, Builder member, Scope scope,
+      {bool allowNativeClause: false})
+      : super(null, errorReporter, library, member, scope,
+            allowNativeClause: allowNativeClause);
 
   noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
 }
diff --git a/pkg/analyzer/lib/src/generated/resolver.dart b/pkg/analyzer/lib/src/generated/resolver.dart
index 158711e..b524b43 100644
--- a/pkg/analyzer/lib/src/generated/resolver.dart
+++ b/pkg/analyzer/lib/src/generated/resolver.dart
@@ -633,7 +633,6 @@
    *
    * @param element some element to check for deprecated use of
    * @param node the node use for the location of the error
-   * @return `true` if and only if a hint code is generated on the passed node
    * See [HintCode.DEPRECATED_MEMBER_USE].
    */
   void _checkForDeprecatedMemberUse(Element element, AstNode node) {
@@ -3269,6 +3268,10 @@
         return false;
       }
     }
+    Element element = node.methodName.staticElement;
+    if (element != null && element.isAlwaysThrows) {
+      return true;
+    }
     return _nodeExits(node.argumentList);
   }
 
diff --git a/pkg/analyzer/lib/src/kernel/resynthesize.dart b/pkg/analyzer/lib/src/kernel/resynthesize.dart
index 1914e12..0fec400 100644
--- a/pkg/analyzer/lib/src/kernel/resynthesize.dart
+++ b/pkg/analyzer/lib/src/kernel/resynthesize.dart
@@ -20,6 +20,7 @@
 import 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart' as kernel;
 import 'package:front_end/src/fasta/kernel/redirecting_factory_body.dart';
 import 'package:kernel/kernel.dart' as kernel;
+import 'package:kernel/type_algebra.dart' as kernel;
 import 'package:kernel/type_environment.dart' as kernel;
 import 'package:path/path.dart' as pathos;
 
@@ -237,6 +238,15 @@
     }
 
     if (kernelType is kernel.FunctionType) {
+      var typedef = kernelType.typedef;
+      if (typedef != null) {
+        GenericTypeAliasElementImpl typedefElement =
+            getElementFromCanonicalName(typedef.canonicalName);
+        GenericFunctionTypeElementImpl functionElement =
+            typedefElement.function;
+        return instantiateFunctionType(
+            context, functionElement, typedef, typedef.type, kernelType);
+      }
       var typeElement =
           new GenericFunctionTypeElementImpl.forKernel(context, kernelType);
       return typeElement.type;
@@ -246,6 +256,69 @@
     throw new UnimplementedError('For ${kernelType.runtimeType}');
   }
 
+  /// Given the [executable] element that corresponds to the [kernelNode],
+  /// and the [kernelType] that is the instantiated type of [kernelNode],
+  /// return the instantiated type of the [executable].
+  FunctionType instantiateFunctionType(
+      ElementImpl context,
+      FunctionTypedElement executable,
+      kernel.TreeNode kernelNode,
+      kernel.FunctionType kernelRawType,
+      kernel.FunctionType kernelType) {
+    // Prepare all kernel type parameters.
+    var kernelTypeParameters = <kernel.TypeParameter>[];
+    for (kernel.TreeNode node = kernelNode; node != null; node = node.parent) {
+      if (node is kernel.Class) {
+        kernelTypeParameters.addAll(node.typeParameters);
+      } else if (node is kernel.FunctionNode) {
+        kernelTypeParameters.addAll(node.typeParameters);
+      } else if (node is kernel.Typedef) {
+        kernelTypeParameters.addAll(node.typeParameters);
+      }
+    }
+
+    // If no type parameters, the raw type of the element will do.
+    FunctionTypeImpl rawType = executable.type;
+    if (kernelTypeParameters.isEmpty) {
+      return rawType;
+    }
+
+    // Compute type arguments for kernel type parameters.
+    var kernelMap = kernel.unifyTypes(
+        kernelRawType, kernelType, kernelTypeParameters.toSet());
+
+    // Prepare Analyzer type parameters, in the same order as kernel ones.
+    var astTypeParameters = <TypeParameterElement>[];
+    for (Element element = executable;
+        element != null;
+        element = element.enclosingElement) {
+      if (element is TypeParameterizedElement) {
+        astTypeParameters.addAll(element.typeParameters);
+      }
+    }
+
+    // Convert kernel type arguments into Analyzer types.
+    int length = astTypeParameters.length;
+    var usedTypeParameters = <TypeParameterElement>[];
+    var usedTypeArguments = <DartType>[];
+    for (var i = 0; i < length; i++) {
+      var kernelParameter = kernelTypeParameters[i];
+      var kernelArgument = kernelMap[kernelParameter];
+      if (kernelArgument != null) {
+        DartType astArgument = getType(context, kernelArgument);
+        usedTypeParameters.add(astTypeParameters[i]);
+        usedTypeArguments.add(astArgument);
+      }
+    }
+
+    if (usedTypeParameters.isEmpty) {
+      return rawType;
+    }
+
+    // Replace Analyzer type parameters with type arguments.
+    return rawType.substitute4(usedTypeParameters, usedTypeArguments);
+  }
+
   void _buildTypeProvider() {
     var coreLibrary = getLibrary('dart:core');
     var asyncLibrary = getLibrary('dart:async');
diff --git a/pkg/analyzer/test/generated/all_the_rest_test.dart b/pkg/analyzer/test/generated/all_the_rest_test.dart
index ae3c506..23eb3b0 100644
--- a/pkg/analyzer/test/generated/all_the_rest_test.dart
+++ b/pkg/analyzer/test/generated/all_the_rest_test.dart
@@ -1526,7 +1526,8 @@
   }
 
   void _assertHasReturn(bool expectedResult, String source) {
-    Statement statement = parseStatement(source, enableLazyAssignmentOperators);
+    Statement statement = parseStatement(source,
+        enableLazyAssignmentOperators: enableLazyAssignmentOperators);
     expect(ExitDetector.exits(statement), expectedResult);
   }
 
diff --git a/pkg/analyzer/test/generated/hint_code_test.dart b/pkg/analyzer/test/generated/hint_code_test.dart
index 0922af5..5f063e9 100644
--- a/pkg/analyzer/test/generated/hint_code_test.dart
+++ b/pkg/analyzer/test/generated/hint_code_test.dart
@@ -31,6 +31,7 @@
         r'''
 library meta;
 
+const _AlwaysThrows alwaysThrows = const _AlwaysThrows();
 const _Factory factory = const _Factory();
 const Immutable immutable = const Immutable();
 const _Literal literal = const _Literal();
@@ -46,6 +47,9 @@
   final String reason;
   const Immutable([this.reason]);
 }
+class _AlwaysThrows {
+  const _AlwaysThrows();
+}
 class _Factory {
   const _Factory();
 }
@@ -719,6 +723,68 @@
     verify([source]);
   }
 
+  test_deadCode_statementAfterAlwaysThrowsFunction() async {
+    Source source = addSource(r'''
+import 'package:meta/meta.dart';
+
+@alwaysThrows
+void a() {
+  throw 'msg';
+}
+
+f() {
+  var one = 1;
+  a();
+  var two = 2;
+}''');
+    await computeAnalysisResult(source);
+    assertErrors(source, [HintCode.DEAD_CODE]);
+    verify([source]);
+  }
+
+  test_deadCode_statementAfterAlwaysThrowsMethod() async {
+    Source source = addSource(r'''
+import 'package:meta/meta.dart';
+
+class C {
+  @alwaysThrows
+  void a() {
+    throw 'msg';
+  }
+}
+
+f() {
+  var one = 1;
+  new C().a();
+  var two = 2;
+}''');
+    await computeAnalysisResult(source);
+    assertErrors(source, [HintCode.DEAD_CODE]);
+    verify([source]);
+  }
+
+  @failingTest
+  test_deadCode_statementAfterAlwaysThrowsGetter() async {
+    Source source = addSource(r'''
+import 'package:meta/meta.dart';
+
+class C {
+  @alwaysThrows
+  int get a {
+    throw 'msg';
+  }
+}
+
+f() {
+  var one = 1;
+  new C().a;
+  var two = 2;
+}''');
+    await computeAnalysisResult(source);
+    assertErrors(source, [HintCode.DEAD_CODE]);
+    verify([source]);
+  }
+
   test_deprecatedAnnotationUse_assignment() async {
     Source source = addSource(r'''
 class A {
diff --git a/pkg/analyzer/test/generated/non_error_resolver_kernel_test.dart b/pkg/analyzer/test/generated/non_error_resolver_kernel_test.dart
index ea6d775..c10d1c1 100644
--- a/pkg/analyzer/test/generated/non_error_resolver_kernel_test.dart
+++ b/pkg/analyzer/test/generated/non_error_resolver_kernel_test.dart
@@ -2,6 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
 
 import 'non_error_resolver_driver_test.dart';
@@ -27,6 +28,170 @@
   bool get enableKernelDriver => true;
 
   @override
+  bool get previewDart2 => true;
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_abstractSuperMemberReference_superHasNoSuchMethod() async {
+    return super.test_abstractSuperMemberReference_superHasNoSuchMethod();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_ambiguousImport_showCombinator() async {
+    return super.test_ambiguousImport_showCombinator();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_assignmentToFinals_importWithPrefix() async {
+    return super.test_assignmentToFinals_importWithPrefix();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_async_flattened() async {
+    return super.test_async_flattened();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_commentReference_beforeConstructor() async {
+    return super.test_commentReference_beforeConstructor();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_commentReference_beforeEnum() async {
+    return super.test_commentReference_beforeEnum();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_commentReference_beforeFunction_blockBody() async {
+    return super.test_commentReference_beforeFunction_blockBody();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_commentReference_beforeFunction_expressionBody() async {
+    return super.test_commentReference_beforeFunction_expressionBody();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_commentReference_beforeFunctionTypeAlias() async {
+    return super.test_commentReference_beforeFunctionTypeAlias();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_commentReference_beforeGenericTypeAlias() async {
+    return super.test_commentReference_beforeGenericTypeAlias();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_commentReference_beforeGetter() async {
+    return super.test_commentReference_beforeGetter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_commentReference_beforeMethod() async {
+    return super.test_commentReference_beforeMethod();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_commentReference_class() async {
+    return super.test_commentReference_class();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_commentReference_setter() async {
+    return super.test_commentReference_setter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_const_constructor_with_named_generic_parameter() async {
+    return super.test_const_constructor_with_named_generic_parameter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_const_dynamic() async {
+    return super.test_const_dynamic();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_constConstructorWithNonConstSuper_redirectingFactory() async {
+    return super.test_constConstructorWithNonConstSuper_redirectingFactory();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_constConstructorWithNonConstSuper_unresolved() async {
+    return super.test_constConstructorWithNonConstSuper_unresolved();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_constConstructorWithNonFinalField_mixin() async {
+    return super.test_constConstructorWithNonFinalField_mixin();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_constDeferredClass_new() async {
+    return super.test_constDeferredClass_new();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_constEval_propertyExtraction_fieldStatic_targetType() async {
+    return super.test_constEval_propertyExtraction_fieldStatic_targetType();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_constEval_propertyExtraction_methodStatic_targetType() async {
+    return super.test_constEval_propertyExtraction_methodStatic_targetType();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_constRedirectSkipsSupertype() async {
+    return super.test_constRedirectSkipsSupertype();
+  }
+
+  @override
   @failingTest
   @FastaProblem('https://github.com/dart-lang/sdk/issues/28434')
   test_constructorDeclaration_scope_signature() async {
@@ -35,6 +200,55 @@
 
   @override
   @failingTest
+  @potentialAnalyzerProblem
+  test_dynamicIdentifier() async {
+    return super.test_dynamicIdentifier();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_fieldFormalParameter_functionTyped_named() async {
+    return super.test_fieldFormalParameter_functionTyped_named();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_fieldFormalParameter_genericFunctionTyped() async {
+    return super.test_fieldFormalParameter_genericFunctionTyped();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_fieldFormalParameter_genericFunctionTyped_named() async {
+    return super.test_fieldFormalParameter_genericFunctionTyped_named();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_finalNotInitialized_functionTypedFieldFormal() async {
+    return super.test_finalNotInitialized_functionTypedFieldFormal();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_finalNotInitialized_hasNativeClause_hasConstructor() async {
+    return super.test_finalNotInitialized_hasNativeClause_hasConstructor();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_finalNotInitialized_hasNativeClause_noConstructor() async {
+    return super.test_finalNotInitialized_hasNativeClause_noConstructor();
+  }
+
+  @override
+  @failingTest
   @FastaProblem('https://github.com/dart-lang/sdk/issues/28434')
   test_functionDeclaration_scope_signature() async {
     return super.test_functionDeclaration_scope_signature();
@@ -49,6 +263,27 @@
 
   @override
   @failingTest
+  @potentialAnalyzerProblem
+  test_genericTypeAlias_castsAndTypeChecks_hasTypeParameters() async {
+    return super.test_genericTypeAlias_castsAndTypeChecks_hasTypeParameters();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_genericTypeAlias_castsAndTypeChecks_noTypeParameters() async {
+    return super.test_genericTypeAlias_castsAndTypeChecks_noTypeParameters();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_genericTypeAlias_fieldAndReturnType_noTypeParameters() async {
+    return super.test_genericTypeAlias_fieldAndReturnType_noTypeParameters();
+  }
+
+  @override
+  @failingTest
   @FastaProblem('https://github.com/dart-lang/sdk/issues/30838')
   test_genericTypeAlias_fieldAndReturnType_typeParameters_arguments() async {
     return super
@@ -65,6 +300,104 @@
 
   @override
   @failingTest
+  @potentialAnalyzerProblem
+  test_genericTypeAlias_invalidGenericFunctionType() async {
+    return super.test_genericTypeAlias_invalidGenericFunctionType();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_genericTypeAlias_noTypeParameters() async {
+    return super.test_genericTypeAlias_noTypeParameters();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_genericTypeAlias_typeParameters() async {
+    return super.test_genericTypeAlias_typeParameters();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_importPrefixes_withFirstLetterDifference() async {
+    return super.test_importPrefixes_withFirstLetterDifference();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidAnnotation_constantVariable_field() async {
+    return super.test_invalidAnnotation_constantVariable_field();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidAnnotation_constantVariable_field_importWithPrefix() async {
+    return super
+        .test_invalidAnnotation_constantVariable_field_importWithPrefix();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidAnnotation_constantVariable_topLevel_importWithPrefix() async {
+    return super
+        .test_invalidAnnotation_constantVariable_topLevel_importWithPrefix();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidAnnotation_constConstructor_importWithPrefix() async {
+    return super.test_invalidAnnotation_constConstructor_importWithPrefix();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidAnnotation_constConstructor_named_importWithPrefix() async {
+    return super
+        .test_invalidAnnotation_constConstructor_named_importWithPrefix();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invocationOfNonFunction_dynamic() async {
+    // TODO(scheglov) This test fails only in checked mode.
+    fail('This test fails only in checked mode');
+    return super.test_invocationOfNonFunction_dynamic();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invocationOfNonFunction_functionTypeTypeParameter() async {
+    return super.test_invocationOfNonFunction_functionTypeTypeParameter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invocationOfNonFunction_getter() async {
+    // TODO(scheglov) This test fails only in checked mode.
+    fail('This test fails only in checked mode');
+    return super.test_invocationOfNonFunction_getter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_loadLibraryDefined() async {
+    return super.test_loadLibraryDefined();
+  }
+
+  @override
+  @failingTest
   @FastaProblem('https://github.com/dart-lang/sdk/issues/30834')
   test_memberWithClassName_setter() async {
     return super.test_memberWithClassName_setter();
@@ -76,4 +409,186 @@
   test_methodDeclaration_scope_signature() async {
     return super.test_methodDeclaration_scope_signature();
   }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonConstantValueInInitializer_namedArgument() async {
+    return super.test_nonConstantValueInInitializer_namedArgument();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonConstCaseExpression_constField() async {
+    return super.test_nonConstCaseExpression_constField();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonConstMapKey_constField() async {
+    return super.test_nonConstMapKey_constField();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonConstValueInInitializer_binary_dynamic() async {
+    return super.test_nonConstValueInInitializer_binary_dynamic();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonConstValueInInitializer_redirecting() async {
+    return super.test_nonConstValueInInitializer_redirecting();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_null_callMethod() async {
+    return super.test_null_callMethod();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_prefixCollidesWithTopLevelMembers() async {
+    return super.test_prefixCollidesWithTopLevelMembers();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_recursiveConstructorRedirect() async {
+    return super.test_recursiveConstructorRedirect();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_recursiveFactoryRedirect() async {
+    return super.test_recursiveFactoryRedirect();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_redirectToInvalidFunctionType() async {
+    return super.test_redirectToInvalidFunctionType();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_redirectToNonConstConstructor() async {
+    return super.test_redirectToNonConstConstructor();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_referencedBeforeDeclaration_cascade() async {
+    return super.test_referencedBeforeDeclaration_cascade();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_returnOfInvalidType_typeParameter_18468() async {
+    return super.test_returnOfInvalidType_typeParameter_18468();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_sharedDeferredPrefix() async {
+    return super.test_sharedDeferredPrefix();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_staticAccessToInstanceMember_annotation() async {
+    return super.test_staticAccessToInstanceMember_annotation();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_staticAccessToInstanceMember_method() async {
+    return super.test_staticAccessToInstanceMember_method();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_typeType_class_prefixed() async {
+    return super.test_typeType_class_prefixed();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_typeType_functionTypeAlias_prefixed() async {
+    return super.test_typeType_functionTypeAlias_prefixed();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_undefinedConstructorInInitializer_redirecting() async {
+    return super.test_undefinedConstructorInInitializer_redirecting();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_undefinedGetter_static_conditionalAccess() async {
+    return super.test_undefinedGetter_static_conditionalAccess();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_undefinedIdentifier_synthetic_whenExpression() async {
+    return super.test_undefinedIdentifier_synthetic_whenExpression();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_undefinedIdentifier_synthetic_whenMethodName() async {
+    return super.test_undefinedIdentifier_synthetic_whenMethodName();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_undefinedMethod_functionExpression_callMethod() async {
+    return super.test_undefinedMethod_functionExpression_callMethod();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_undefinedMethod_functionExpression_directCall() async {
+    return super.test_undefinedMethod_functionExpression_directCall();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_undefinedSetter_importWithPrefix() async {
+    return super.test_undefinedSetter_importWithPrefix();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_undefinedSetter_static_conditionalAccess() async {
+    return super.test_undefinedSetter_static_conditionalAccess();
+  }
 }
diff --git a/pkg/analyzer/test/generated/non_hint_code_test.dart b/pkg/analyzer/test/generated/non_hint_code_test.dart
index e5af360..40cc6b2 100644
--- a/pkg/analyzer/test/generated/non_hint_code_test.dart
+++ b/pkg/analyzer/test/generated/non_hint_code_test.dart
@@ -20,6 +20,24 @@
 
 @reflectiveTest
 class NonHintCodeTest extends ResolverTestCase {
+  @override
+  void reset() {
+    super.resetWith(packages: [
+      [
+        'meta',
+        r'''
+library meta;
+
+const _AlwaysThrows alwaysThrows = const _AlwaysThrows();
+
+class _AlwaysThrows {
+  const _AlwaysThrows();
+}
+'''
+      ]
+    ]);
+  }
+
   test_async_future_object_without_return() async {
     Source source = addSource('''
 import 'dart:async';
@@ -474,6 +492,23 @@
     verify([source]);
   }
 
+  test_missingReturn_alwaysThrows() async {
+    Source source = addSource(r'''
+import 'package:meta/meta.dart';
+
+@alwaysThrows
+void a() {
+  throw 'msg';
+}
+
+int f() {
+  a();
+}''');
+    await computeAnalysisResult(source);
+    assertNoErrors(source);
+    verify([source]);
+  }
+
   test_nullAwareInCondition_for_noCondition() async {
     Source source = addSource(r'''
 m(x) {
diff --git a/pkg/analyzer/test/generated/parser_fasta_test.dart b/pkg/analyzer/test/generated/parser_fasta_test.dart
index 7b0feb7..929c31b 100644
--- a/pkg/analyzer/test/generated/parser_fasta_test.dart
+++ b/pkg/analyzer/test/generated/parser_fasta_test.dart
@@ -2027,12 +2027,13 @@
   @override
   CompilationUnit parseDirectives(String source,
       [List<ErrorCode> errorCodes = const <ErrorCode>[]]) {
-    // TODO(paulberry,ahe,danrubel): analyzer parser has the ability to
-    // stop parsing as soon as the first non-directive is encountered; this is
-    // useful for quickly traversing an import graph.  Consider adding a similar
-    // ability to Fasta's parser.
-    throw 'fasta parser does not have a method that just parses directives'
-        ' and stops when it finds the first declaration or EOF.';
+    createParser(source);
+    CompilationUnit unit =
+        _parserProxy.parseDirectives(_parserProxy.currentToken);
+    expect(unit, isNotNull);
+    expect(unit.declarations, hasLength(0));
+    listener.assertErrorsWithCodes(errorCodes);
+    return unit;
   }
 
   @override
@@ -2219,8 +2220,8 @@
 
   @override
   Statement parseStatement(String source,
-      [bool enableLazyAssignmentOperators]) {
-    createParser(source);
+      {bool enableLazyAssignmentOperators, int expectedEndOffset}) {
+    createParser(source, expectedEndOffset: expectedEndOffset);
     Statement statement = _parserProxy.parseStatement2();
     assertErrors(codes: NO_ERROR_COMPARISON);
     return statement;
@@ -2720,13 +2721,6 @@
 
   @override
   @failingTest
-  void test_incompleteLocalVariable_atTheEndOfBlock() {
-    // TODO(brianwilkerson) reportUnrecoverableErrorWithToken
-    super.test_incompleteLocalVariable_atTheEndOfBlock();
-  }
-
-  @override
-  @failingTest
   void test_incompleteLocalVariable_beforeIdentifier() {
     // TODO(brianwilkerson) reportUnrecoverableErrorWithToken
     super.test_incompleteLocalVariable_beforeIdentifier();
@@ -2741,20 +2735,6 @@
 
   @override
   @failingTest
-  void test_incompleteLocalVariable_beforeNextBlock() {
-    // TODO(brianwilkerson) reportUnrecoverableErrorWithToken
-    super.test_incompleteLocalVariable_beforeNextBlock();
-  }
-
-  @override
-  @failingTest
-  void test_incompleteLocalVariable_parameterizedType() {
-    // TODO(brianwilkerson) reportUnrecoverableErrorWithToken
-    super.test_incompleteLocalVariable_parameterizedType();
-  }
-
-  @override
-  @failingTest
   void test_incompleteTypeArguments_field() {
     // TODO(brianwilkerson) reportUnrecoverableErrorWithToken
     super.test_incompleteTypeArguments_field();
@@ -2783,13 +2763,6 @@
 
   @override
   @failingTest
-  void test_missingComma_beforeNamedArgument() {
-    // TODO(brianwilkerson) reportUnrecoverableErrorWithToken
-    super.test_missingComma_beforeNamedArgument();
-  }
-
-  @override
-  @failingTest
   void test_missingGet() {
     // TODO(brianwilkerson) exception:
     //   NoSuchMethodError: Class '_KernelLibraryBuilder' has no instance method 'addCompileTimeError'.
@@ -2880,30 +2853,6 @@
     with SimpleParserTestMixin {
   @override
   @failingTest
-  void test_parseDocumentationComment_block() {
-    // TODO(brianwilkerson) exception:
-    // NoSuchMethodError: Class 'ParserProxy' has no instance method 'parseDocumentationCommentTokens'.
-    super.test_parseDocumentationComment_block();
-  }
-
-  @override
-  @failingTest
-  void test_parseDocumentationComment_block_withReference() {
-    // TODO(brianwilkerson) exception:
-    // NoSuchMethodError: Class 'ParserProxy' has no instance method 'parseDocumentationCommentTokens'.
-    super.test_parseDocumentationComment_block_withReference();
-  }
-
-  @override
-  @failingTest
-  void test_parseDocumentationComment_endOfLine() {
-    // TODO(brianwilkerson) exception:
-    // NoSuchMethodError: Class 'ParserProxy' has no instance method 'parseDocumentationCommentTokens'.
-    super.test_parseDocumentationComment_endOfLine();
-  }
-
-  @override
-  @failingTest
   void test_parseTypeParameterList_single() {
     // TODO(brianwilkerson) Does not use all tokens.
     super.test_parseTypeParameterList_single();
diff --git a/pkg/analyzer/test/generated/parser_test.dart b/pkg/analyzer/test/generated/parser_test.dart
index 0520f0b..aec9b4c 100644
--- a/pkg/analyzer/test/generated/parser_test.dart
+++ b/pkg/analyzer/test/generated/parser_test.dart
@@ -220,7 +220,8 @@
 
   SimpleIdentifier parseSimpleIdentifier(String code);
 
-  Statement parseStatement(String source, [bool enableLazyAssignmentOperators]);
+  Statement parseStatement(String source,
+      {bool enableLazyAssignmentOperators, int expectedEndOffset});
 
   Expression parseStringLiteral(String code);
 
@@ -9455,7 +9456,7 @@
    * is `true`, then lazy assignment operators should be enabled.
    */
   Statement parseStatement(String source,
-      [bool enableLazyAssignmentOperators]) {
+      {bool enableLazyAssignmentOperators, int expectedEndOffset}) {
     listener = new GatheringErrorListener();
     Scanner scanner =
         new Scanner(null, new CharSequenceReader(source), listener);
@@ -10349,15 +10350,26 @@
   }
 
   void test_incompleteLocalVariable_atTheEndOfBlock() {
-    Statement statement = parseStatement('String v }');
+    Statement statement = parseStatement('String v }', expectedEndOffset: 9);
     listener
         .assertErrors([expectedError(ParserErrorCode.EXPECTED_TOKEN, 9, 1)]);
     expect(statement, new isInstanceOf<VariableDeclarationStatement>());
     expect(statement.toSource(), 'String v;');
   }
 
+  void test_incompleteLocalVariable_atTheEndOfBlock_modifierOnly() {
+    Statement statement = parseStatement('final }', expectedEndOffset: 6);
+    listener.assertErrors([
+      expectedError(ParserErrorCode.MISSING_IDENTIFIER, 6, 1),
+      expectedError(ParserErrorCode.EXPECTED_TOKEN, 6, 1)
+    ]);
+    expect(statement, new isInstanceOf<VariableDeclarationStatement>());
+    expect(statement.toSource(), 'final ;');
+  }
+
   void test_incompleteLocalVariable_beforeIdentifier() {
-    Statement statement = parseStatement('String v String v2;');
+    Statement statement =
+        parseStatement('String v String v2;', expectedEndOffset: 9);
     listener
         .assertErrors([expectedError(ParserErrorCode.EXPECTED_TOKEN, 9, 6)]);
     expect(statement, new isInstanceOf<VariableDeclarationStatement>());
@@ -10365,7 +10377,8 @@
   }
 
   void test_incompleteLocalVariable_beforeKeyword() {
-    Statement statement = parseStatement('String v if (true) {}');
+    Statement statement =
+        parseStatement('String v if (true) {}', expectedEndOffset: 9);
     listener
         .assertErrors([expectedError(ParserErrorCode.EXPECTED_TOKEN, 9, 2)]);
     expect(statement, new isInstanceOf<VariableDeclarationStatement>());
@@ -10373,7 +10386,7 @@
   }
 
   void test_incompleteLocalVariable_beforeNextBlock() {
-    Statement statement = parseStatement('String v {}');
+    Statement statement = parseStatement('String v {}', expectedEndOffset: 9);
     listener
         .assertErrors([expectedError(ParserErrorCode.EXPECTED_TOKEN, 9, 1)]);
     expect(statement, new isInstanceOf<VariableDeclarationStatement>());
@@ -10381,7 +10394,8 @@
   }
 
   void test_incompleteLocalVariable_parameterizedType() {
-    Statement statement = parseStatement('List<String> v {}');
+    Statement statement =
+        parseStatement('List<String> v {}', expectedEndOffset: 15);
     listener
         .assertErrors([expectedError(ParserErrorCode.EXPECTED_TOKEN, 15, 1)]);
     expect(statement, new isInstanceOf<VariableDeclarationStatement>());
@@ -10573,18 +10587,26 @@
   }
 
   void test_missing_commaInArgumentList() {
-    parseExpression("f(x: 1 y: 2)",
+    MethodInvocation expression = parseExpression("f(x: 1 y: 2)",
         codes: usingFastaParser
             ? [ParserErrorCode.UNEXPECTED_TOKEN]
             : [ParserErrorCode.EXPECTED_TOKEN]);
+    NodeList<Expression> arguments = expression.argumentList.arguments;
+    expect(arguments, hasLength(2));
   }
 
   void test_missingComma_beforeNamedArgument() {
     createParser('(a b: c)');
     ArgumentList argumentList = parser.parseArgumentList();
     expectNotNullIfNoErrors(argumentList);
-    listener
-        .assertErrors([expectedError(ParserErrorCode.EXPECTED_TOKEN, 3, 1)]);
+    listener.assertErrors([
+      expectedError(
+          usingFastaParser
+              ? ParserErrorCode.UNEXPECTED_TOKEN
+              : ParserErrorCode.EXPECTED_TOKEN,
+          3,
+          1)
+    ]);
     expect(argumentList.arguments, hasLength(2));
   }
 
@@ -12611,9 +12633,9 @@
   }
 
   void test_parseDocumentationComment_block() {
-    createParser('/** */ class');
-    Comment comment = parser
-        .parseDocumentationComment(parser.parseDocumentationCommentTokens());
+    createParser('/** */ class C {}');
+    CompilationUnit unit = parser.parseCompilationUnit2();
+    Comment comment = unit.declarations[0].documentationComment;
     expectNotNullIfNoErrors(comment);
     listener.assertNoErrors();
     expect(comment.isBlock, isFalse);
@@ -12622,9 +12644,9 @@
   }
 
   void test_parseDocumentationComment_block_withReference() {
-    createParser('/** [a] */ class');
-    Comment comment = parser
-        .parseDocumentationComment(parser.parseDocumentationCommentTokens());
+    createParser('/** [a] */ class C {}');
+    CompilationUnit unit = parser.parseCompilationUnit2();
+    Comment comment = unit.declarations[0].documentationComment;
     expectNotNullIfNoErrors(comment);
     listener.assertNoErrors();
     expect(comment.isBlock, isFalse);
@@ -12638,9 +12660,9 @@
   }
 
   void test_parseDocumentationComment_endOfLine() {
-    createParser('/// \n/// \n class');
-    Comment comment = parser
-        .parseDocumentationComment(parser.parseDocumentationCommentTokens());
+    createParser('/// \n/// \n class C {}');
+    CompilationUnit unit = parser.parseCompilationUnit2();
+    Comment comment = unit.declarations[0].documentationComment;
     expectNotNullIfNoErrors(comment);
     listener.assertNoErrors();
     expect(comment.isBlock, isFalse);
@@ -14455,51 +14477,7 @@
 }
 
 @reflectiveTest
-class TopLevelParserTest extends ParserTestCase with TopLevelParserTestMixin {
-  void test_parseDirectives_complete() {
-    CompilationUnit unit =
-        parseDirectives("#! /bin/dart\nlibrary l;\nclass A {}");
-    expect(unit.scriptTag, isNotNull);
-    expect(unit.directives, hasLength(1));
-  }
-
-  void test_parseDirectives_empty() {
-    CompilationUnit unit = parseDirectives("");
-    expect(unit.scriptTag, isNull);
-    expect(unit.directives, hasLength(0));
-  }
-
-  void test_parseDirectives_mixed() {
-    CompilationUnit unit =
-        parseDirectives("library l; class A {} part 'foo.dart';");
-    expect(unit.scriptTag, isNull);
-    expect(unit.directives, hasLength(1));
-  }
-
-  void test_parseDirectives_multiple() {
-    CompilationUnit unit = parseDirectives("library l;\npart 'a.dart';");
-    expect(unit.scriptTag, isNull);
-    expect(unit.directives, hasLength(2));
-  }
-
-  void test_parseDirectives_script() {
-    CompilationUnit unit = parseDirectives("#! /bin/dart");
-    expect(unit.scriptTag, isNotNull);
-    expect(unit.directives, hasLength(0));
-  }
-
-  void test_parseDirectives_single() {
-    CompilationUnit unit = parseDirectives("library l;");
-    expect(unit.scriptTag, isNull);
-    expect(unit.directives, hasLength(1));
-  }
-
-  void test_parseDirectives_topLevelDeclaration() {
-    CompilationUnit unit = parseDirectives("class A {}");
-    expect(unit.scriptTag, isNull);
-    expect(unit.directives, hasLength(0));
-  }
-}
+class TopLevelParserTest extends ParserTestCase with TopLevelParserTestMixin {}
 
 /**
  * Tests which exercise the parser using a complete compilation unit or
@@ -15592,6 +15570,50 @@
     expect(partOfDirective.semicolon, isNotNull);
   }
 
+  void test_parseDirectives_complete() {
+    CompilationUnit unit =
+        parseDirectives("#! /bin/dart\nlibrary l;\nclass A {}");
+    expect(unit.scriptTag, isNotNull);
+    expect(unit.directives, hasLength(1));
+  }
+
+  void test_parseDirectives_empty() {
+    CompilationUnit unit = parseDirectives("");
+    expect(unit.scriptTag, isNull);
+    expect(unit.directives, hasLength(0));
+  }
+
+  void test_parseDirectives_mixed() {
+    CompilationUnit unit =
+        parseDirectives("library l; class A {} part 'foo.dart';");
+    expect(unit.scriptTag, isNull);
+    expect(unit.directives, hasLength(1));
+  }
+
+  void test_parseDirectives_multiple() {
+    CompilationUnit unit = parseDirectives("library l;\npart 'a.dart';");
+    expect(unit.scriptTag, isNull);
+    expect(unit.directives, hasLength(2));
+  }
+
+  void test_parseDirectives_script() {
+    CompilationUnit unit = parseDirectives("#! /bin/dart");
+    expect(unit.scriptTag, isNotNull);
+    expect(unit.directives, hasLength(0));
+  }
+
+  void test_parseDirectives_single() {
+    CompilationUnit unit = parseDirectives("library l;");
+    expect(unit.scriptTag, isNull);
+    expect(unit.directives, hasLength(1));
+  }
+
+  void test_parseDirectives_topLevelDeclaration() {
+    CompilationUnit unit = parseDirectives("class A {}");
+    expect(unit.scriptTag, isNull);
+    expect(unit.directives, hasLength(0));
+  }
+
   void test_parseEnumDeclaration_one() {
     createParser("enum E {ONE}");
     EnumDeclaration declaration = parseFullCompilationUnitMember();
diff --git a/pkg/analyzer/test/generated/resolver_test_case.dart b/pkg/analyzer/test/generated/resolver_test_case.dart
index f040574..139df0c 100644
--- a/pkg/analyzer/test/generated/resolver_test_case.dart
+++ b/pkg/analyzer/test/generated/resolver_test_case.dart
@@ -350,6 +350,8 @@
 
   bool get enableNewAnalysisDriver => false;
 
+  bool get previewDart2 => false;
+
   /**
    * Return a type provider that can be used to test the results of resolution.
    *
@@ -664,6 +666,9 @@
     }
     options ??= defaultAnalysisOptions;
     if (enableNewAnalysisDriver) {
+      if (previewDart2) {
+        (options as AnalysisOptionsImpl).useFastaParser = true;
+      }
       DartSdk sdk = new MockSdk(resourceProvider: resourceProvider)
         ..context.analysisOptions = options;
 
diff --git a/pkg/analyzer/test/generated/static_warning_code_kernel_test.dart b/pkg/analyzer/test/generated/static_warning_code_kernel_test.dart
index 9d2129b..0875808 100644
--- a/pkg/analyzer/test/generated/static_warning_code_kernel_test.dart
+++ b/pkg/analyzer/test/generated/static_warning_code_kernel_test.dart
@@ -17,12 +17,17 @@
   const FastaProblem(String issueUri);
 }
 
+const potentialAnalyzerProblem = const Object();
+
 @reflectiveTest
 class StaticWarningCodeTest_Kernel extends StaticWarningCodeTest_Driver {
   @override
   bool get enableKernelDriver => true;
 
   @override
+  bool get previewDart2 => true;
+
+  @override
   @failingTest
   @FastaProblem('https://github.com/dart-lang/sdk/issues/31073')
   test_finalNotInitialized_inConstructor_1() async {
@@ -52,15 +57,1900 @@
 
   @override
   @failingTest
-  @FastaProblem('https://github.com/dart-lang/sdk/issues/31073')
-  test_invalidOverride_nonDefaultOverridesDefault() async {
-    return super.test_invalidOverride_nonDefaultOverridesDefault();
+  @potentialAnalyzerProblem
+  test_ambiguousImport_as() async {
+    return super.test_ambiguousImport_as();
   }
 
   @override
   @failingTest
-  @FastaProblem('https://github.com/dart-lang/sdk/issues/31073')
-  test_invalidOverride_nonDefaultOverridesDefault_named() async {
-    return super.test_invalidOverride_nonDefaultOverridesDefault_named();
+  @potentialAnalyzerProblem
+  test_ambiguousImport_extends() async {
+    return super.test_ambiguousImport_extends();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_ambiguousImport_implements() async {
+    return super.test_ambiguousImport_implements();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_ambiguousImport_inPart() async {
+    return super.test_ambiguousImport_inPart();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_ambiguousImport_instanceCreation() async {
+    return super.test_ambiguousImport_instanceCreation();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_ambiguousImport_is() async {
+    return super.test_ambiguousImport_is();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_ambiguousImport_qualifier() async {
+    return super.test_ambiguousImport_qualifier();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_ambiguousImport_typeAnnotation() async {
+    return super.test_ambiguousImport_typeAnnotation();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_ambiguousImport_typeArgument_annotation() async {
+    return super.test_ambiguousImport_typeArgument_annotation();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_ambiguousImport_typeArgument_instanceCreation() async {
+    return super.test_ambiguousImport_typeArgument_instanceCreation();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_ambiguousImport_varRead() async {
+    return super.test_ambiguousImport_varRead();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_ambiguousImport_varWrite() async {
+    return super.test_ambiguousImport_varWrite();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_ambiguousImport_withPrefix() async {
+    return super.test_ambiguousImport_withPrefix();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_argumentTypeNotAssignable_ambiguousClassName() async {
+    return super.test_argumentTypeNotAssignable_ambiguousClassName();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_argumentTypeNotAssignable_annotation_namedConstructor() async {
+    return super.test_argumentTypeNotAssignable_annotation_namedConstructor();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_argumentTypeNotAssignable_annotation_unnamedConstructor() async {
+    return super.test_argumentTypeNotAssignable_annotation_unnamedConstructor();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_argumentTypeNotAssignable_binary() async {
+    return super.test_argumentTypeNotAssignable_binary();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_argumentTypeNotAssignable_cascadeSecond() async {
+    return super.test_argumentTypeNotAssignable_cascadeSecond();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_argumentTypeNotAssignable_const() async {
+    return super.test_argumentTypeNotAssignable_const();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_argumentTypeNotAssignable_const_super() async {
+    return super.test_argumentTypeNotAssignable_const_super();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_argumentTypeNotAssignable_functionExpressionInvocation_required() async {
+    return super
+        .test_argumentTypeNotAssignable_functionExpressionInvocation_required();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_argumentTypeNotAssignable_index() async {
+    return super.test_argumentTypeNotAssignable_index();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_argumentTypeNotAssignable_invocation_callParameter() async {
+    return super.test_argumentTypeNotAssignable_invocation_callParameter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_argumentTypeNotAssignable_invocation_callVariable() async {
+    return super.test_argumentTypeNotAssignable_invocation_callVariable();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_argumentTypeNotAssignable_invocation_functionParameter() async {
+    return super.test_argumentTypeNotAssignable_invocation_functionParameter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_argumentTypeNotAssignable_invocation_functionParameter_generic() async {
+    return super
+        .test_argumentTypeNotAssignable_invocation_functionParameter_generic();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_argumentTypeNotAssignable_invocation_functionTypes_optional() async {
+    return super
+        .test_argumentTypeNotAssignable_invocation_functionTypes_optional();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_argumentTypeNotAssignable_invocation_generic() async {
+    return super.test_argumentTypeNotAssignable_invocation_generic();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_argumentTypeNotAssignable_invocation_named() async {
+    return super.test_argumentTypeNotAssignable_invocation_named();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_argumentTypeNotAssignable_invocation_optional() async {
+    return super.test_argumentTypeNotAssignable_invocation_optional();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_argumentTypeNotAssignable_invocation_required() async {
+    return super.test_argumentTypeNotAssignable_invocation_required();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_argumentTypeNotAssignable_invocation_typedef_generic() async {
+    return super.test_argumentTypeNotAssignable_invocation_typedef_generic();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_argumentTypeNotAssignable_invocation_typedef_local() async {
+    return super.test_argumentTypeNotAssignable_invocation_typedef_local();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_argumentTypeNotAssignable_invocation_typedef_parameter() async {
+    return super.test_argumentTypeNotAssignable_invocation_typedef_parameter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_argumentTypeNotAssignable_new_generic() async {
+    return super.test_argumentTypeNotAssignable_new_generic();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_argumentTypeNotAssignable_new_optional() async {
+    return super.test_argumentTypeNotAssignable_new_optional();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_argumentTypeNotAssignable_new_required() async {
+    return super.test_argumentTypeNotAssignable_new_required();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_assignmentToClass() async {
+    return super.test_assignmentToClass();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_assignmentToConst_instanceVariable() async {
+    return super.test_assignmentToConst_instanceVariable();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_assignmentToConst_instanceVariable_plusEq() async {
+    return super.test_assignmentToConst_instanceVariable_plusEq();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_assignmentToConst_localVariable() async {
+    return super.test_assignmentToConst_localVariable();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_assignmentToConst_localVariable_plusEq() async {
+    return super.test_assignmentToConst_localVariable_plusEq();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_assignmentToEnumType() async {
+    return super.test_assignmentToEnumType();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_assignmentToFinal_instanceVariable() async {
+    return super.test_assignmentToFinal_instanceVariable();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_assignmentToFinal_instanceVariable_plusEq() async {
+    return super.test_assignmentToFinal_instanceVariable_plusEq();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_assignmentToFinal_localVariable() async {
+    return super.test_assignmentToFinal_localVariable();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_assignmentToFinal_localVariable_plusEq() async {
+    return super.test_assignmentToFinal_localVariable_plusEq();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_assignmentToFinal_parameter() async {
+    return super.test_assignmentToFinal_parameter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_assignmentToFinal_postfixMinusMinus() async {
+    return super.test_assignmentToFinal_postfixMinusMinus();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_assignmentToFinal_postfixPlusPlus() async {
+    return super.test_assignmentToFinal_postfixPlusPlus();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_assignmentToFinal_prefixMinusMinus() async {
+    return super.test_assignmentToFinal_prefixMinusMinus();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_assignmentToFinal_prefixPlusPlus() async {
+    return super.test_assignmentToFinal_prefixPlusPlus();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_assignmentToFinal_suffixMinusMinus() async {
+    return super.test_assignmentToFinal_suffixMinusMinus();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_assignmentToFinal_suffixPlusPlus() async {
+    return super.test_assignmentToFinal_suffixPlusPlus();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_assignmentToFinal_topLevelVariable() async {
+    return super.test_assignmentToFinal_topLevelVariable();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_assignmentToFinalNoSetter_prefixedIdentifier() async {
+    return super.test_assignmentToFinalNoSetter_prefixedIdentifier();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_assignmentToFinalNoSetter_propertyAccess() async {
+    return super.test_assignmentToFinalNoSetter_propertyAccess();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_assignmentToFunction() async {
+    return super.test_assignmentToFunction();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_assignmentToMethod() async {
+    return super.test_assignmentToMethod();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_assignmentToTypedef() async {
+    return super.test_assignmentToTypedef();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_assignmentToTypeParameter() async {
+    return super.test_assignmentToTypeParameter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_caseBlockNotTerminated() async {
+    return super.test_caseBlockNotTerminated();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_castToNonType() async {
+    return super.test_castToNonType();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_concreteClassWithAbstractMember() async {
+    return super.test_concreteClassWithAbstractMember();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_concreteClassWithAbstractMember_noSuchMethod_interface() async {
+    return super.test_concreteClassWithAbstractMember_noSuchMethod_interface();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_conflictingDartImport() async {
+    return super.test_conflictingDartImport();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_conflictingInstanceGetterAndSuperclassMember_declField_direct_setter() async {
+    return super
+        .test_conflictingInstanceGetterAndSuperclassMember_declField_direct_setter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_conflictingInstanceGetterAndSuperclassMember_declGetter_direct_getter() async {
+    return super
+        .test_conflictingInstanceGetterAndSuperclassMember_declGetter_direct_getter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_conflictingInstanceGetterAndSuperclassMember_declGetter_direct_method() async {
+    return super
+        .test_conflictingInstanceGetterAndSuperclassMember_declGetter_direct_method();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_conflictingInstanceGetterAndSuperclassMember_declGetter_direct_setter() async {
+    return super
+        .test_conflictingInstanceGetterAndSuperclassMember_declGetter_direct_setter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_conflictingInstanceGetterAndSuperclassMember_declGetter_indirect() async {
+    return super
+        .test_conflictingInstanceGetterAndSuperclassMember_declGetter_indirect();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_conflictingInstanceGetterAndSuperclassMember_declGetter_mixin() async {
+    return super
+        .test_conflictingInstanceGetterAndSuperclassMember_declGetter_mixin();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_conflictingInstanceGetterAndSuperclassMember_direct_field() async {
+    return super
+        .test_conflictingInstanceGetterAndSuperclassMember_direct_field();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_conflictingInstanceMethodSetter2() async {
+    return super.test_conflictingInstanceMethodSetter2();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_conflictingInstanceMethodSetter_sameClass() async {
+    return super.test_conflictingInstanceMethodSetter_sameClass();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_conflictingInstanceMethodSetter_setterInInterface() async {
+    return super.test_conflictingInstanceMethodSetter_setterInInterface();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_conflictingInstanceMethodSetter_setterInSuper() async {
+    return super.test_conflictingInstanceMethodSetter_setterInSuper();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_conflictingInstanceSetterAndSuperclassMember() async {
+    return super.test_conflictingInstanceSetterAndSuperclassMember();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_conflictingStaticGetterAndInstanceSetter_mixin() async {
+    return super.test_conflictingStaticGetterAndInstanceSetter_mixin();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_conflictingStaticGetterAndInstanceSetter_superClass() async {
+    return super.test_conflictingStaticGetterAndInstanceSetter_superClass();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_conflictingStaticGetterAndInstanceSetter_thisClass() async {
+    return super.test_conflictingStaticGetterAndInstanceSetter_thisClass();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_conflictingStaticSetterAndInstanceMember_thisClass_getter() async {
+    return super
+        .test_conflictingStaticSetterAndInstanceMember_thisClass_getter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_conflictingStaticSetterAndInstanceMember_thisClass_method() async {
+    return super
+        .test_conflictingStaticSetterAndInstanceMember_thisClass_method();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_constWithAbstractClass() async {
+    return super.test_constWithAbstractClass();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_equalKeysInMap() async {
+    return super.test_equalKeysInMap();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_equalKeysInMap_withEqualTypeParams() async {
+    return super.test_equalKeysInMap_withEqualTypeParams();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_exportDuplicatedLibraryNamed() async {
+    return super.test_exportDuplicatedLibraryNamed();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_extraPositionalArguments() async {
+    return super.test_extraPositionalArguments();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_extraPositionalArguments_functionExpression() async {
+    return super.test_extraPositionalArguments_functionExpression();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_extraPositionalArgumentsCouldBeNamed() async {
+    return super.test_extraPositionalArgumentsCouldBeNamed();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_extraPositionalArgumentsCouldBeNamed_functionExpression() async {
+    return super.test_extraPositionalArgumentsCouldBeNamed_functionExpression();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_fieldInitializedInInitializerAndDeclaration_final() async {
+    return super.test_fieldInitializedInInitializerAndDeclaration_final();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_fieldInitializerNotAssignable() async {
+    return super.test_fieldInitializerNotAssignable();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_fieldInitializingFormalNotAssignable() async {
+    return super.test_fieldInitializingFormalNotAssignable();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_finalInitializedInDeclarationAndConstructor_initializers() async {
+    return super
+        .test_finalInitializedInDeclarationAndConstructor_initializers();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_finalInitializedInDeclarationAndConstructor_initializingFormal() async {
+    return super
+        .test_finalInitializedInDeclarationAndConstructor_initializingFormal();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_finalNotInitialized_instanceField_final() async {
+    return super.test_finalNotInitialized_instanceField_final();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_finalNotInitialized_instanceField_final_static() async {
+    return super.test_finalNotInitialized_instanceField_final_static();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_finalNotInitialized_local_final() async {
+    return super.test_finalNotInitialized_local_final();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_functionWithoutCall_direct() async {
+    return super.test_functionWithoutCall_direct();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_functionWithoutCall_direct_typeAlias() async {
+    return super.test_functionWithoutCall_direct_typeAlias();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_functionWithoutCall_indirect_extends() async {
+    return super.test_functionWithoutCall_indirect_extends();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_functionWithoutCall_indirect_extends_typeAlias() async {
+    return super.test_functionWithoutCall_indirect_extends_typeAlias();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_functionWithoutCall_indirect_implements() async {
+    return super.test_functionWithoutCall_indirect_implements();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_functionWithoutCall_indirect_implements_typeAlias() async {
+    return super.test_functionWithoutCall_indirect_implements_typeAlias();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_functionWithoutCall_mixin_implements() async {
+    return super.test_functionWithoutCall_mixin_implements();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_functionWithoutCall_mixin_implements_typeAlias() async {
+    return super.test_functionWithoutCall_mixin_implements_typeAlias();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_importDuplicatedLibraryNamed() async {
+    return super.test_importDuplicatedLibraryNamed();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_inconsistentMethodInheritanceGetterAndMethod() async {
+    return super.test_inconsistentMethodInheritanceGetterAndMethod();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_instanceMethodNameCollidesWithSuperclassStatic_field() async {
+    return super.test_instanceMethodNameCollidesWithSuperclassStatic_field();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_instanceMethodNameCollidesWithSuperclassStatic_field2() async {
+    return super.test_instanceMethodNameCollidesWithSuperclassStatic_field2();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_instanceMethodNameCollidesWithSuperclassStatic_getter() async {
+    return super.test_instanceMethodNameCollidesWithSuperclassStatic_getter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_instanceMethodNameCollidesWithSuperclassStatic_getter2() async {
+    return super.test_instanceMethodNameCollidesWithSuperclassStatic_getter2();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_instanceMethodNameCollidesWithSuperclassStatic_interface() async {
+    return super
+        .test_instanceMethodNameCollidesWithSuperclassStatic_interface();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_instanceMethodNameCollidesWithSuperclassStatic_method() async {
+    return super.test_instanceMethodNameCollidesWithSuperclassStatic_method();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_instanceMethodNameCollidesWithSuperclassStatic_method2() async {
+    return super.test_instanceMethodNameCollidesWithSuperclassStatic_method2();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_instanceMethodNameCollidesWithSuperclassStatic_setter() async {
+    return super.test_instanceMethodNameCollidesWithSuperclassStatic_setter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_instanceMethodNameCollidesWithSuperclassStatic_setter2() async {
+    return super.test_instanceMethodNameCollidesWithSuperclassStatic_setter2();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidGetterOverrideReturnType() async {
+    return super.test_invalidGetterOverrideReturnType();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidGetterOverrideReturnType_implicit() async {
+    return super.test_invalidGetterOverrideReturnType_implicit();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidGetterOverrideReturnType_twoInterfaces() async {
+    return super.test_invalidGetterOverrideReturnType_twoInterfaces();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidGetterOverrideReturnType_twoInterfaces_conflicting() async {
+    return super
+        .test_invalidGetterOverrideReturnType_twoInterfaces_conflicting();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidMethodOverrideNamedParamType() async {
+    return super.test_invalidMethodOverrideNamedParamType();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidMethodOverrideNormalParamType_interface() async {
+    return super.test_invalidMethodOverrideNormalParamType_interface();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidMethodOverrideNormalParamType_superclass() async {
+    return super.test_invalidMethodOverrideNormalParamType_superclass();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidMethodOverrideNormalParamType_superclass_interface() async {
+    return super
+        .test_invalidMethodOverrideNormalParamType_superclass_interface();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidMethodOverrideNormalParamType_twoInterfaces() async {
+    return super.test_invalidMethodOverrideNormalParamType_twoInterfaces();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidMethodOverrideNormalParamType_twoInterfaces_conflicting() async {
+    return super
+        .test_invalidMethodOverrideNormalParamType_twoInterfaces_conflicting();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidMethodOverrideOptionalParamType() async {
+    return super.test_invalidMethodOverrideOptionalParamType();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidMethodOverrideOptionalParamType_twoInterfaces() async {
+    return super.test_invalidMethodOverrideOptionalParamType_twoInterfaces();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidMethodOverrideReturnType_interface() async {
+    return super.test_invalidMethodOverrideReturnType_interface();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidMethodOverrideReturnType_interface_grandparent() async {
+    return super.test_invalidMethodOverrideReturnType_interface_grandparent();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidMethodOverrideReturnType_mixin() async {
+    return super.test_invalidMethodOverrideReturnType_mixin();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidMethodOverrideReturnType_superclass() async {
+    return super.test_invalidMethodOverrideReturnType_superclass();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidMethodOverrideReturnType_superclass_grandparent() async {
+    return super.test_invalidMethodOverrideReturnType_superclass_grandparent();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidMethodOverrideReturnType_twoInterfaces() async {
+    return super.test_invalidMethodOverrideReturnType_twoInterfaces();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidMethodOverrideReturnType_void() async {
+    return super.test_invalidMethodOverrideReturnType_void();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidOverride_defaultOverridesNonDefault() async {
+    return super.test_invalidOverride_defaultOverridesNonDefault();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidOverride_defaultOverridesNonDefault_named() async {
+    return super.test_invalidOverride_defaultOverridesNonDefault_named();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidOverrideDifferentDefaultValues_named() async {
+    return super.test_invalidOverrideDifferentDefaultValues_named();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidOverrideDifferentDefaultValues_positional() async {
+    return super.test_invalidOverrideDifferentDefaultValues_positional();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidOverrideNamed_fewerNamedParameters() async {
+    return super.test_invalidOverrideNamed_fewerNamedParameters();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidOverrideNamed_missingNamedParameter() async {
+    return super.test_invalidOverrideNamed_missingNamedParameter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidOverridePositional_optional() async {
+    return super.test_invalidOverridePositional_optional();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidOverridePositional_optionalAndRequired() async {
+    return super.test_invalidOverridePositional_optionalAndRequired();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidOverridePositional_optionalAndRequired2() async {
+    return super.test_invalidOverridePositional_optionalAndRequired2();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidOverrideRequired() async {
+    return super.test_invalidOverrideRequired();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidSetterOverrideNormalParamType() async {
+    return super.test_invalidSetterOverrideNormalParamType();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidSetterOverrideNormalParamType_superclass_interface() async {
+    return super
+        .test_invalidSetterOverrideNormalParamType_superclass_interface();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidSetterOverrideNormalParamType_twoInterfaces() async {
+    return super.test_invalidSetterOverrideNormalParamType_twoInterfaces();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_invalidSetterOverrideNormalParamType_twoInterfaces_conflicting() async {
+    return super
+        .test_invalidSetterOverrideNormalParamType_twoInterfaces_conflicting();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_listElementTypeNotAssignable() async {
+    return super.test_listElementTypeNotAssignable();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_mapKeyTypeNotAssignable() async {
+    return super.test_mapKeyTypeNotAssignable();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_mapValueTypeNotAssignable() async {
+    return super.test_mapValueTypeNotAssignable();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_mismatchedAccessorTypes_class() async {
+    return super.test_mismatchedAccessorTypes_class();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_mismatchedAccessorTypes_getterAndSuperSetter() async {
+    return super.test_mismatchedAccessorTypes_getterAndSuperSetter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_mismatchedAccessorTypes_setterAndSuperGetter() async {
+    return super.test_mismatchedAccessorTypes_setterAndSuperGetter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_mismatchedAccessorTypes_topLevel() async {
+    return super.test_mismatchedAccessorTypes_topLevel();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_missingEnumConstantInSwitch() async {
+    return super.test_missingEnumConstantInSwitch();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_mixedReturnTypes_localFunction() async {
+    return super.test_mixedReturnTypes_localFunction();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_mixedReturnTypes_method() async {
+    return super.test_mixedReturnTypes_method();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_mixedReturnTypes_topLevelFunction() async {
+    return super.test_mixedReturnTypes_topLevelFunction();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_newWithAbstractClass() async {
+    return super.test_newWithAbstractClass();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_newWithInvalidTypeParameters() async {
+    return super.test_newWithInvalidTypeParameters();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_newWithInvalidTypeParameters_tooFew() async {
+    return super.test_newWithInvalidTypeParameters_tooFew();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_newWithInvalidTypeParameters_tooMany() async {
+    return super.test_newWithInvalidTypeParameters_tooMany();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_newWithNonType() async {
+    return super.test_newWithNonType();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_newWithNonType_fromLibrary() async {
+    return super.test_newWithNonType_fromLibrary();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_newWithUndefinedConstructor() async {
+    return super.test_newWithUndefinedConstructor();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_newWithUndefinedConstructorDefault() async {
+    return super.test_newWithUndefinedConstructorDefault();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonAbstractClassInheritsAbstractMemberFivePlus() async {
+    return super.test_nonAbstractClassInheritsAbstractMemberFivePlus();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonAbstractClassInheritsAbstractMemberFour() async {
+    return super.test_nonAbstractClassInheritsAbstractMemberFour();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonAbstractClassInheritsAbstractMemberOne_classTypeAlias_interface() async {
+    return super
+        .test_nonAbstractClassInheritsAbstractMemberOne_classTypeAlias_interface();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonAbstractClassInheritsAbstractMemberOne_classTypeAlias_mixin() async {
+    return super
+        .test_nonAbstractClassInheritsAbstractMemberOne_classTypeAlias_mixin();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonAbstractClassInheritsAbstractMemberOne_classTypeAlias_superclass() async {
+    return super
+        .test_nonAbstractClassInheritsAbstractMemberOne_classTypeAlias_superclass();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonAbstractClassInheritsAbstractMemberOne_ensureCorrectFunctionSubtypeIsUsedInImplementation() async {
+    return super
+        .test_nonAbstractClassInheritsAbstractMemberOne_ensureCorrectFunctionSubtypeIsUsedInImplementation();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonAbstractClassInheritsAbstractMemberOne_getter_fromInterface() async {
+    return super
+        .test_nonAbstractClassInheritsAbstractMemberOne_getter_fromInterface();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonAbstractClassInheritsAbstractMemberOne_getter_fromSuperclass() async {
+    return super
+        .test_nonAbstractClassInheritsAbstractMemberOne_getter_fromSuperclass();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonAbstractClassInheritsAbstractMemberOne_method_fromInterface() async {
+    return super
+        .test_nonAbstractClassInheritsAbstractMemberOne_method_fromInterface();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonAbstractClassInheritsAbstractMemberOne_method_fromSuperclass() async {
+    return super
+        .test_nonAbstractClassInheritsAbstractMemberOne_method_fromSuperclass();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonAbstractClassInheritsAbstractMemberOne_method_optionalParamCount() async {
+    return super
+        .test_nonAbstractClassInheritsAbstractMemberOne_method_optionalParamCount();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonAbstractClassInheritsAbstractMemberOne_mixinInherits_getter() async {
+    return super
+        .test_nonAbstractClassInheritsAbstractMemberOne_mixinInherits_getter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonAbstractClassInheritsAbstractMemberOne_mixinInherits_method() async {
+    return super
+        .test_nonAbstractClassInheritsAbstractMemberOne_mixinInherits_method();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonAbstractClassInheritsAbstractMemberOne_mixinInherits_setter() async {
+    return super
+        .test_nonAbstractClassInheritsAbstractMemberOne_mixinInherits_setter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonAbstractClassInheritsAbstractMemberOne_noSuchMethod_interface() async {
+    return super
+        .test_nonAbstractClassInheritsAbstractMemberOne_noSuchMethod_interface();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonAbstractClassInheritsAbstractMemberOne_setter_and_implicitSetter() async {
+    return super
+        .test_nonAbstractClassInheritsAbstractMemberOne_setter_and_implicitSetter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonAbstractClassInheritsAbstractMemberOne_setter_fromInterface() async {
+    return super
+        .test_nonAbstractClassInheritsAbstractMemberOne_setter_fromInterface();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonAbstractClassInheritsAbstractMemberOne_setter_fromSuperclass() async {
+    return super
+        .test_nonAbstractClassInheritsAbstractMemberOne_setter_fromSuperclass();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonAbstractClassInheritsAbstractMemberOne_superclasses_interface() async {
+    return super
+        .test_nonAbstractClassInheritsAbstractMemberOne_superclasses_interface();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonAbstractClassInheritsAbstractMemberOne_variable_fromInterface_missingGetter() async {
+    return super
+        .test_nonAbstractClassInheritsAbstractMemberOne_variable_fromInterface_missingGetter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonAbstractClassInheritsAbstractMemberOne_variable_fromInterface_missingSetter() async {
+    return super
+        .test_nonAbstractClassInheritsAbstractMemberOne_variable_fromInterface_missingSetter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonAbstractClassInheritsAbstractMemberThree() async {
+    return super.test_nonAbstractClassInheritsAbstractMemberThree();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonAbstractClassInheritsAbstractMemberTwo() async {
+    return super.test_nonAbstractClassInheritsAbstractMemberTwo();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonAbstractClassInheritsAbstractMemberTwo_variable_fromInterface_missingBoth() async {
+    return super
+        .test_nonAbstractClassInheritsAbstractMemberTwo_variable_fromInterface_missingBoth();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonAbstractClassInheritsAbstractMemberTwo_variable_fromMixin_missingBoth() async {
+    return super
+        .test_nonAbstractClassInheritsAbstractMemberTwo_variable_fromMixin_missingBoth();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonTypeInCatchClause_noElement() async {
+    return super.test_nonTypeInCatchClause_noElement();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonTypeInCatchClause_notType() async {
+    return super.test_nonTypeInCatchClause_notType();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonVoidReturnForOperator() async {
+    return super.test_nonVoidReturnForOperator();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonVoidReturnForSetter_function() async {
+    return super.test_nonVoidReturnForSetter_function();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_nonVoidReturnForSetter_method() async {
+    return super.test_nonVoidReturnForSetter_method();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_notAType() async {
+    return super.test_notAType();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_notEnoughRequiredArguments() async {
+    return super.test_notEnoughRequiredArguments();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_notEnoughRequiredArguments_functionExpression() async {
+    return super.test_notEnoughRequiredArguments_functionExpression();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_notEnoughRequiredArguments_getterReturningFunction() async {
+    return super.test_notEnoughRequiredArguments_getterReturningFunction();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_redirectToInvalidFunctionType() async {
+    return super.test_redirectToInvalidFunctionType();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_redirectToInvalidReturnType() async {
+    return super.test_redirectToInvalidReturnType();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_redirectToMissingConstructor_named() async {
+    return super.test_redirectToMissingConstructor_named();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_redirectToMissingConstructor_unnamed() async {
+    return super.test_redirectToMissingConstructor_unnamed();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_redirectToNonClass_notAType() async {
+    return super.test_redirectToNonClass_notAType();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_redirectToNonClass_undefinedIdentifier() async {
+    return super.test_redirectToNonClass_undefinedIdentifier();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_returnWithoutValue_async() async {
+    return super.test_returnWithoutValue_async();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_returnWithoutValue_factoryConstructor() async {
+    return super.test_returnWithoutValue_factoryConstructor();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_returnWithoutValue_function() async {
+    return super.test_returnWithoutValue_function();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_returnWithoutValue_method() async {
+    return super.test_returnWithoutValue_method();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_returnWithoutValue_mixedReturnTypes_function() async {
+    return super.test_returnWithoutValue_mixedReturnTypes_function();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_returnWithoutValue_Null() async {
+    return super.test_returnWithoutValue_Null();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_staticAccessToInstanceMember_method_invocation() async {
+    return super.test_staticAccessToInstanceMember_method_invocation();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_staticAccessToInstanceMember_method_reference() async {
+    return super.test_staticAccessToInstanceMember_method_reference();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_staticAccessToInstanceMember_propertyAccess_field() async {
+    return super.test_staticAccessToInstanceMember_propertyAccess_field();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_staticAccessToInstanceMember_propertyAccess_getter() async {
+    return super.test_staticAccessToInstanceMember_propertyAccess_getter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_staticAccessToInstanceMember_propertyAccess_setter() async {
+    return super.test_staticAccessToInstanceMember_propertyAccess_setter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_switchExpressionNotAssignable() async {
+    return super.test_switchExpressionNotAssignable();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_typeAnnotationDeferredClass_asExpression() async {
+    return super.test_typeAnnotationDeferredClass_asExpression();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_typeAnnotationDeferredClass_catchClause() async {
+    return super.test_typeAnnotationDeferredClass_catchClause();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_typeAnnotationDeferredClass_fieldFormalParameter() async {
+    return super.test_typeAnnotationDeferredClass_fieldFormalParameter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_typeAnnotationDeferredClass_functionDeclaration_returnType() async {
+    return super
+        .test_typeAnnotationDeferredClass_functionDeclaration_returnType();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_typeAnnotationDeferredClass_functionTypedFormalParameter_returnType() async {
+    return super
+        .test_typeAnnotationDeferredClass_functionTypedFormalParameter_returnType();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_typeAnnotationDeferredClass_isExpression() async {
+    return super.test_typeAnnotationDeferredClass_isExpression();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_typeAnnotationDeferredClass_methodDeclaration_returnType() async {
+    return super
+        .test_typeAnnotationDeferredClass_methodDeclaration_returnType();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_typeAnnotationDeferredClass_simpleFormalParameter() async {
+    return super.test_typeAnnotationDeferredClass_simpleFormalParameter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_typeAnnotationDeferredClass_typeArgumentList() async {
+    return super.test_typeAnnotationDeferredClass_typeArgumentList();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_typeAnnotationDeferredClass_typeArgumentList2() async {
+    return super.test_typeAnnotationDeferredClass_typeArgumentList2();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_typeAnnotationDeferredClass_typeParameter_bound() async {
+    return super.test_typeAnnotationDeferredClass_typeParameter_bound();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_typeAnnotationDeferredClass_variableDeclarationList() async {
+    return super.test_typeAnnotationDeferredClass_variableDeclarationList();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_typeAnnotationGenericFunctionParameter_localFunction() async {
+    return super.test_typeAnnotationGenericFunctionParameter_localFunction();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_typeAnnotationGenericFunctionParameter_method() async {
+    return super.test_typeAnnotationGenericFunctionParameter_method();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_typeAnnotationGenericFunctionParameter_topLevelFunction() async {
+    return super.test_typeAnnotationGenericFunctionParameter_topLevelFunction();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_typeParameterReferencedByStatic_field() async {
+    return super.test_typeParameterReferencedByStatic_field();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_typeParameterReferencedByStatic_getter() async {
+    return super.test_typeParameterReferencedByStatic_getter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_typeParameterReferencedByStatic_methodBodyReference() async {
+    return super.test_typeParameterReferencedByStatic_methodBodyReference();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_typeParameterReferencedByStatic_methodParameter() async {
+    return super.test_typeParameterReferencedByStatic_methodParameter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_typeParameterReferencedByStatic_methodReturn() async {
+    return super.test_typeParameterReferencedByStatic_methodReturn();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_typeParameterReferencedByStatic_setter() async {
+    return super.test_typeParameterReferencedByStatic_setter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_typePromotion_functionType_arg_InterToDyn() async {
+    return super.test_typePromotion_functionType_arg_InterToDyn();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_typeTestNonType() async {
+    return super.test_typeTestNonType();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_typeTestWithUndefinedName() async {
+    return super.test_typeTestWithUndefinedName();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_undefinedClass_instanceCreation() async {
+    return super.test_undefinedClass_instanceCreation();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_undefinedClass_variableDeclaration() async {
+    return super.test_undefinedClass_variableDeclaration();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_undefinedClassBoolean_variableDeclaration() async {
+    return super.test_undefinedClassBoolean_variableDeclaration();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_undefinedGetter_fromLibrary() async {
+    return super.test_undefinedGetter_fromLibrary();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_undefinedIdentifier_for() async {
+    return super.test_undefinedIdentifier_for();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_undefinedIdentifier_function() async {
+    return super.test_undefinedIdentifier_function();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_undefinedIdentifier_importCore_withShow() async {
+    return super.test_undefinedIdentifier_importCore_withShow();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_undefinedIdentifier_initializer() async {
+    return super.test_undefinedIdentifier_initializer();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_undefinedIdentifier_methodInvocation() async {
+    return super.test_undefinedIdentifier_methodInvocation();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_undefinedIdentifier_private_getter() async {
+    return super.test_undefinedIdentifier_private_getter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_undefinedIdentifier_private_setter() async {
+    return super.test_undefinedIdentifier_private_setter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_undefinedIdentifierAwait_function() async {
+    return super.test_undefinedIdentifierAwait_function();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_undefinedNamedParameter() async {
+    return super.test_undefinedNamedParameter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_undefinedSetter() async {
+    return super.test_undefinedSetter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_undefinedStaticMethodOrGetter_getter() async {
+    return super.test_undefinedStaticMethodOrGetter_getter();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_undefinedStaticMethodOrGetter_getter_inSuperclass() async {
+    return super.test_undefinedStaticMethodOrGetter_getter_inSuperclass();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_undefinedStaticMethodOrGetter_method() async {
+    return super.test_undefinedStaticMethodOrGetter_method();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_undefinedStaticMethodOrGetter_method_inSuperclass() async {
+    return super.test_undefinedStaticMethodOrGetter_method_inSuperclass();
+  }
+
+  @override
+  @failingTest
+  @potentialAnalyzerProblem
+  test_undefinedStaticMethodOrGetter_setter_inSuperclass() async {
+    return super.test_undefinedStaticMethodOrGetter_setter_inSuperclass();
   }
 }
diff --git a/pkg/analyzer/test/src/dart/analysis/driver_kernel_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_kernel_test.dart
index bfda882..17ccb8b 100644
--- a/pkg/analyzer/test/src/dart/analysis/driver_kernel_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/driver_kernel_test.dart
@@ -22,6 +22,18 @@
 class AnalysisDriverResolutionTest_Kernel extends AnalysisDriverResolutionTest {
   @override
   bool get previewDart2 => true;
+
+  @failingTest
+  @potentialAnalyzerProblem
+  @override
+  test_annotation_constructor_withNestedConstructorInvocation() async {
+    // This test is failing because analyzer and kernel disagree about how to
+    // resolve annotations and constructors. Kernel is consistent between
+    // annotations that invoke a constructor and other constructor invocations,
+    // while analyzer treats them differently. They also differ in terms of the
+    // resolution of the constructor name's element.
+    await super.test_annotation_constructor_withNestedConstructorInvocation();
+  }
 }
 
 @reflectiveTest
@@ -29,13 +41,6 @@
   @override
   bool get previewDart2 => true;
 
-  @failingTest
-  @potentialAnalyzerProblem
-  @override
-  test_addFile_shouldRefresh() async {
-    await super.test_addFile_shouldRefresh();
-  }
-
 //  @failingTest
 //  @potentialAnalyzerProblem
   @override
@@ -134,20 +139,6 @@
     await super.test_getErrors();
   }
 
-  @potentialAnalyzerProblem
-  @override
-  test_getIndex() async {
-    // TODO(scheglov) This test fails even with @failingTest
-//    await super.test_getIndex();
-  }
-
-  @failingTest
-  @potentialAnalyzerProblem
-  @override
-  test_getResult_errors() async {
-    await super.test_getResult_errors();
-  }
-
   @failingTest
   @potentialAnalyzerProblem
   @override
diff --git a/pkg/analyzer/test/src/dart/analysis/driver_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_test.dart
index 84e174d..c2c3313 100644
--- a/pkg/analyzer/test/src/dart/analysis/driver_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/driver_test.dart
@@ -166,6 +166,34 @@
     }
   }
 
+  test_annotation_constructor_withNestedConstructorInvocation() async {
+    addTestFile('''
+class C {
+  const C();
+}
+class D {
+  final C c;
+  const D(this.c);
+}
+@D(const C())
+f() {}
+''');
+    var result = await driver.getResult(testFile);
+    var elementC = AstFinder.getClass(result.unit, 'C').element;
+    var constructorC = elementC.constructors[0];
+    var elementD = AstFinder.getClass(result.unit, 'D').element;
+    var constructorD = elementD.constructors[0];
+    var atD = AstFinder.getTopLevelFunction(result.unit, 'f').metadata[0];
+    InstanceCreationExpression constC = atD.arguments.arguments[0];
+
+    expect(atD.name.staticElement, elementD);
+    expect(atD.element, constructorD);
+
+    expect(constC.staticElement, constructorC);
+    expect(constC.staticType, elementC.type);
+    expect(constC.constructorName.staticElement, constructorC);
+  }
+
   test_annotation_kind_reference() async {
     String content = r'''
 const annotation_1 = 1;
@@ -474,6 +502,51 @@
     }
   }
 
+  test_assignmentExpression_propertyAccess_forwardingStub() async {
+    String content = r'''
+class A {
+  int f;
+}
+abstract class I<T> {
+  T f;
+}
+class B extends A implements I<int> {}
+main() {
+  new B().f = 1;
+}
+''';
+    addTestFile(content);
+
+    AnalysisResult result = await driver.getResult(testFile);
+    CompilationUnit unit = result.unit;
+    var typeProvider = unit.element.context.typeProvider;
+
+    ClassDeclaration aNode = unit.declarations[0];
+    ClassElement aElement = aNode.element;
+    FieldElement fElement = aElement.getField('f');
+
+    ClassDeclaration bNode = unit.declarations[2];
+    ClassElement bElement = bNode.element;
+
+    List<Statement> mainStatements = _getMainStatements(result);
+    ExpressionStatement statement = mainStatements[0];
+
+    AssignmentExpression assignment = statement.expression;
+    expect(assignment.staticType, typeProvider.intType);
+
+    PropertyAccess left = assignment.leftHandSide;
+    expect(left.staticType, typeProvider.intType);
+
+    InstanceCreationExpression newB = left.target;
+    expect(newB.staticElement, bElement.unnamedConstructor);
+
+    expect(left.propertyName.staticElement, same(fElement.setter));
+    expect(left.propertyName.staticType, typeProvider.intType);
+
+    Expression right = assignment.rightHandSide;
+    expect(right.staticType, typeProvider.intType);
+  }
+
   test_assignmentExpression_simple_indexExpression() async {
     String content = r'''
 main() {
@@ -1013,6 +1086,87 @@
     expect(expression.staticType, typeProvider.boolType);
   }
 
+  test_cascadeExpression() async {
+    String content = r'''
+void main() {
+  new A()..a()..b();
+}
+class A {
+  void a() {}
+  void b() {}
+}
+''';
+    addTestFile(content);
+    AnalysisResult result = await driver.getResult(testFile);
+
+    List<Statement> statements = _getMainStatements(result);
+
+    ExpressionStatement statement = statements[0];
+    CascadeExpression expression = statement.expression;
+    expect(expression.target.staticType, isNotNull);
+    NodeList<Expression> sections = expression.cascadeSections;
+
+    MethodInvocation a = sections[0];
+    expect(a.methodName.staticElement, isNotNull);
+    expect(a.staticType, isNotNull);
+
+    MethodInvocation b = sections[1];
+    expect(b.methodName.staticElement, isNotNull);
+    expect(b.staticType, isNotNull);
+  }
+
+  test_closure() async {
+    addTestFile(r'''
+main() {
+  var items = <int>[1, 2, 3];
+  items.forEach((item) {
+    item;
+  });
+}
+''');
+    AnalysisResult result = await driver.getResult(testFile);
+    var typeProvider = result.unit.element.context.typeProvider;
+
+    List<Statement> mainStatements = _getMainStatements(result);
+
+    VariableDeclarationStatement itemsStatement = mainStatements[0];
+    var itemsElement = itemsStatement.variables.variables[0].element;
+
+    ExpressionStatement forStatement = mainStatements[1];
+    MethodInvocation forInvocation = forStatement.expression;
+
+    SimpleIdentifier forTarget = forInvocation.target;
+    expect(forTarget.staticElement, itemsElement);
+
+    var closureTypeStr = '(int) → Null';
+    FunctionExpression closure = forInvocation.argumentList.arguments[0];
+    FunctionElement closureElement = closure.element;
+    ParameterElement itemElement = closureElement.parameters[0];
+
+    expect(closureElement.returnType, typeProvider.nullType);
+    expect(closureElement.type.element, same(closureElement));
+    expect(closureElement.type.toString(), closureTypeStr);
+    expect(closure.staticType, same(closureElement.type));
+
+    List<FormalParameter> closureParameters = closure.parameters.parameters;
+    expect(closureParameters, hasLength(1));
+
+    SimpleFormalParameter itemNode = closureParameters[0];
+    _assertSimpleParameter(itemNode, itemElement,
+        name: 'item',
+        offset: 56,
+        kind: ParameterKind.REQUIRED,
+        type: typeProvider.intType);
+
+    BlockFunctionBody closureBody = closure.body;
+    List<Statement> closureStatements = closureBody.block.statements;
+
+    ExpressionStatement itemStatement = closureStatements[0];
+    SimpleIdentifier itemIdentifier = itemStatement.expression;
+    expect(itemIdentifier.staticElement, itemElement);
+    expect(itemIdentifier.staticType, typeProvider.intType);
+  }
+
   test_conditionalExpression() async {
     String content = r'''
 void main() {
@@ -1033,6 +1187,95 @@
     expect(expression.elseExpression.staticType, typeProvider.doubleType);
   }
 
+  test_constructor_context() async {
+    addTestFile(r'''
+class C {
+  C(int p) {
+    p;
+  }
+}
+''');
+    AnalysisResult result = await driver.getResult(testFile);
+    var typeProvider = result.unit.element.context.typeProvider;
+
+    ClassDeclaration cNode = result.unit.declarations[0];
+
+    ConstructorDeclaration constructorNode = cNode.members[0];
+    ParameterElement pElement = constructorNode.element.parameters[0];
+
+    BlockFunctionBody constructorBody = constructorNode.body;
+    ExpressionStatement pStatement = constructorBody.block.statements[0];
+
+    SimpleIdentifier pIdentifier = pStatement.expression;
+    expect(pIdentifier.staticElement, same(pElement));
+    expect(pIdentifier.staticType, typeProvider.intType);
+  }
+
+  test_constructor_initializer_field() async {
+    addTestFile(r'''
+class C {
+  int f;
+  C(int p) : f = p {
+    f;
+  }
+}
+''');
+    AnalysisResult result = await driver.getResult(testFile);
+
+    ClassDeclaration cNode = result.unit.declarations[0];
+    ClassElement cElement = cNode.element;
+    FieldElement fElement = cElement.getField('f');
+
+    ConstructorDeclaration constructorNode = cNode.members[1];
+    ParameterElement pParameterElement = constructorNode.element.parameters[0];
+
+    {
+      ConstructorFieldInitializer initializer = constructorNode.initializers[0];
+      expect(initializer.fieldName.staticElement, same(fElement));
+
+      SimpleIdentifier expression = initializer.expression;
+      expect(expression.staticElement, same(pParameterElement));
+    }
+  }
+
+  test_constructor_initializer_super() async {
+    addTestFile(r'''
+class A {
+  A(int a);
+  A.named(int a);
+}
+class B extends A {
+  B.one(int b) : super(b + 1);
+  B.two(int b) : super.named(b + 1);
+}
+''');
+    AnalysisResult result = await driver.getResult(testFile);
+
+    ClassDeclaration aNode = result.unit.declarations[0];
+    ClassElement aElement = aNode.element;
+
+    ClassDeclaration bNode = result.unit.declarations[1];
+
+    {
+      ConstructorDeclaration constructor = bNode.members[0];
+      SuperConstructorInvocation initializer = constructor.initializers[0];
+      expect(initializer.staticElement, same(aElement.unnamedConstructor));
+      expect(initializer.constructorName, isNull);
+    }
+
+    {
+      var namedConstructor = aElement.getNamedConstructor('named');
+
+      ConstructorDeclaration constructor = bNode.members[1];
+      SuperConstructorInvocation initializer = constructor.initializers[0];
+      expect(initializer.staticElement, same(namedConstructor));
+
+      var constructorName = initializer.constructorName;
+      expect(constructorName.staticElement, same(namedConstructor));
+      expect(constructorName.staticType, isNull);
+    }
+  }
+
   test_error_unresolvedTypeAnnotation() async {
     String content = r'''
 main() {
@@ -1060,6 +1303,24 @@
     expect(vNode.element.type, isUndefinedType);
   }
 
+  test_field_context() async {
+    addTestFile(r'''
+class C<T> {
+  var f = <T>[];
+}
+''');
+    AnalysisResult result = await driver.getResult(testFile);
+    var typeProvider = result.unit.element.context.typeProvider;
+
+    ClassDeclaration cNode = result.unit.declarations[0];
+    var tElement = cNode.element.typeParameters[0];
+
+    FieldDeclaration fDeclaration = cNode.members[0];
+    VariableDeclaration fNode = fDeclaration.fields.variables[0];
+    FieldElement fElement = fNode.element;
+    expect(fElement.type, typeProvider.listType.instantiate([tElement.type]));
+  }
+
   test_indexExpression() async {
     String content = r'''
 main() {
@@ -2097,6 +2358,37 @@
     }
   }
 
+  test_mapLiteral() async {
+    addTestFile(r'''
+void main() {
+  <int, double>{};
+  const <bool, String>{};
+}
+''');
+    AnalysisResult result = await driver.getResult(testFile);
+    var typeProvider = result.unit.element.context.typeProvider;
+
+    var statements = _getMainStatements(result);
+
+    {
+      ExpressionStatement statement = statements[0];
+      MapLiteral mapLiteral = statement.expression;
+      expect(
+          mapLiteral.staticType,
+          typeProvider.mapType
+              .instantiate([typeProvider.intType, typeProvider.doubleType]));
+    }
+
+    {
+      ExpressionStatement statement = statements[1];
+      MapLiteral mapLiteral = statement.expression;
+      expect(
+          mapLiteral.staticType,
+          typeProvider.mapType
+              .instantiate([typeProvider.boolType, typeProvider.stringType]));
+    }
+  }
+
   test_method_namedParameters() async {
     addTestFile(r'''
 class C {
@@ -2175,6 +2467,35 @@
     expect(cArgument.staticParameterElement, same(cElement));
   }
 
+  test_methodInvocation_instanceMethod_forwardingStub() async {
+    addTestFile(r'''
+class A {
+  void foo(int x) {}
+}
+abstract class I<T> {
+  void foo(T x);
+}
+class B extends A implements I<int> {}
+main(B b) {
+  b.foo(1);
+}
+''');
+    AnalysisResult result = await driver.getResult(testFile);
+
+    ClassDeclaration aNode = result.unit.declarations[0];
+    MethodDeclaration fooNode = aNode.members[0];
+    MethodElement fooElement = fooNode.element;
+
+    List<Statement> mainStatements = _getMainStatements(result);
+    ExpressionStatement statement = mainStatements[0];
+    MethodInvocation invocation = statement.expression;
+    expect(invocation.methodName.staticElement, same(fooElement));
+
+    var invokeTypeStr = '(int) → void';
+    expect(invocation.staticType.toString(), 'void');
+    expect(invocation.staticInvokeType.toString(), invokeTypeStr);
+  }
+
   test_methodInvocation_instanceMethod_genericClass() async {
     addTestFile(r'''
 main() {
@@ -2257,6 +2578,92 @@
     }
   }
 
+  test_methodInvocation_staticMethod() async {
+    addTestFile(r'''
+main() {
+  C.m(1);
+}
+class C {
+  static void m(int p) {}
+  void foo() {
+    m(2);
+  }
+}
+''');
+    AnalysisResult result = await driver.getResult(testFile);
+    List<Statement> mainStatements = _getMainStatements(result);
+
+    ClassDeclaration cNode = result.unit.declarations[1];
+    ClassElement cElement = cNode.element;
+    MethodDeclaration mNode = cNode.members[0];
+    MethodElement mElement = mNode.element;
+
+    {
+      ExpressionStatement statement = mainStatements[0];
+      MethodInvocation invocation = statement.expression;
+      List<Expression> arguments = invocation.argumentList.arguments;
+
+      SimpleIdentifier target = invocation.target;
+      expect(target.staticElement, same(cElement));
+      expect(target.staticType, same(cElement.type));
+
+      var invokeTypeStr = '(int) → void';
+      expect(invocation.staticType.toString(), 'void');
+      expect(invocation.staticInvokeType.toString(), invokeTypeStr);
+      expect(invocation.staticInvokeType.element, same(mElement));
+      expect(invocation.methodName.staticElement, same(mElement));
+      expect(invocation.methodName.staticType.toString(), invokeTypeStr);
+
+      Expression argument = arguments[0];
+      expect(argument.staticParameterElement, mElement.parameters[0]);
+    }
+
+    {
+      MethodDeclaration fooNode = cNode.members[1];
+      BlockFunctionBody fooBody = fooNode.body;
+      List<Statement> statements = fooBody.block.statements;
+
+      ExpressionStatement statement = statements[0];
+      MethodInvocation invocation = statement.expression;
+      List<Expression> arguments = invocation.argumentList.arguments;
+
+      expect(invocation.target, isNull);
+
+      var invokeTypeStr = '(int) → void';
+      expect(invocation.staticType.toString(), 'void');
+      expect(invocation.staticInvokeType.toString(), invokeTypeStr);
+      expect(invocation.staticInvokeType.element, same(mElement));
+      expect(invocation.methodName.staticElement, same(mElement));
+      expect(invocation.methodName.staticType.toString(), invokeTypeStr);
+
+      Expression argument = arguments[0];
+      expect(argument.staticParameterElement, mElement.parameters[0]);
+    }
+  }
+
+  test_methodInvocation_staticMethod_contextTypeParameter() async {
+    addTestFile(r'''
+class C<T> {
+  static E foo<E>(C<E> c) => null;
+  void bar() {
+    foo(this);
+  }
+}
+''');
+    AnalysisResult result = await driver.getResult(testFile);
+
+    ClassDeclaration cNode = result.unit.declarations[0];
+    TypeParameterElement tElement = cNode.element.typeParameters[0];
+
+    MethodDeclaration barNode = cNode.members[1];
+    BlockFunctionBody barBody = barNode.body;
+    ExpressionStatement fooStatement = barBody.block.statements[0];
+    MethodInvocation fooInvocation = fooStatement.expression;
+    expect(fooInvocation.staticInvokeType.toString(), '(C<T>) → T');
+    expect(fooInvocation.staticType.toString(), 'T');
+    expect(fooInvocation.staticType.element, same(tElement));
+  }
+
   test_methodInvocation_topLevelFunction() async {
     addTestFile(r'''
 void main() {
@@ -3070,6 +3477,200 @@
     }
   }
 
+  test_top_class() async {
+    String content = r'''
+class A<T> {}
+class B<T> {}
+class C<T> {}
+class D extends A<bool> with B<int> implements C<double> {}
+''';
+    addTestFile(content);
+    AnalysisResult result = await driver.getResult(testFile);
+    var typeProvider = result.unit.element.context.typeProvider;
+
+    ClassDeclaration aNode = result.unit.declarations[0];
+    ClassElement aElement = aNode.element;
+
+    ClassDeclaration bNode = result.unit.declarations[1];
+    ClassElement bElement = bNode.element;
+
+    ClassDeclaration cNode = result.unit.declarations[2];
+    ClassElement cElement = cNode.element;
+
+    ClassDeclaration dNode = result.unit.declarations[3];
+    Element dElement = dNode.element;
+
+    SimpleIdentifier dName = dNode.name;
+    expect(dName.staticElement, same(dElement));
+    expect(dName.staticType, typeProvider.typeType);
+
+    {
+      var aRawType = aElement.type;
+      var expectedType = aRawType.instantiate([typeProvider.boolType]);
+
+      TypeName superClass = dNode.extendsClause.superclass;
+      expect(superClass.type, expectedType);
+
+      SimpleIdentifier identifier = superClass.name;
+      expect(identifier.staticElement, aElement);
+      expect(identifier.staticType, expectedType);
+    }
+
+    {
+      var bRawType = bElement.type;
+      var expectedType = bRawType.instantiate([typeProvider.intType]);
+
+      TypeName mixinType = dNode.withClause.mixinTypes[0];
+      expect(mixinType.type, expectedType);
+
+      SimpleIdentifier identifier = mixinType.name;
+      expect(identifier.staticElement, bElement);
+      expect(identifier.staticType, expectedType);
+    }
+
+    {
+      var cRawType = cElement.type;
+      var expectedType = cRawType.instantiate([typeProvider.doubleType]);
+
+      TypeName implementedType = dNode.implementsClause.interfaces[0];
+      expect(implementedType.type, expectedType);
+
+      SimpleIdentifier identifier = implementedType.name;
+      expect(identifier.staticElement, cElement);
+      expect(identifier.staticType, expectedType);
+    }
+  }
+
+  test_top_class_constructor_parameter_defaultValue() async {
+    String content = r'''
+class C {
+  double f;
+  C([int a: 1 + 2]) : f = 3.4;
+}
+''';
+    addTestFile(content);
+    AnalysisResult result = await driver.getResult(testFile);
+    var typeProvider = result.unit.element.context.typeProvider;
+
+    ClassDeclaration cNode = result.unit.declarations[0];
+    ClassElement cElement = cNode.element;
+
+    ConstructorDeclaration constructorNode = cNode.members[1];
+
+    DefaultFormalParameter aNode = constructorNode.parameters.parameters[0];
+    _assertDefaultParameter(aNode, cElement.unnamedConstructor.parameters[0],
+        name: 'a',
+        offset: 31,
+        kind: ParameterKind.POSITIONAL,
+        type: typeProvider.intType);
+
+    BinaryExpression binary = aNode.defaultValue;
+    expect(binary.staticElement, isNotNull);
+    expect(binary.staticType, typeProvider.intType);
+    expect(binary.leftOperand.staticType, typeProvider.intType);
+    expect(binary.rightOperand.staticType, typeProvider.intType);
+  }
+
+  test_top_classTypeAlias() async {
+    String content = r'''
+class A<T> {}
+class B<T> {}
+class C<T> {}
+class D = A<bool> with B<int> implements C<double>;
+''';
+    addTestFile(content);
+    AnalysisResult result = await driver.getResult(testFile);
+    var typeProvider = result.unit.element.context.typeProvider;
+
+    ClassDeclaration aNode = result.unit.declarations[0];
+    ClassElement aElement = aNode.element;
+
+    ClassDeclaration bNode = result.unit.declarations[1];
+    ClassElement bElement = bNode.element;
+
+    ClassDeclaration cNode = result.unit.declarations[2];
+    ClassElement cElement = cNode.element;
+
+    ClassTypeAlias dNode = result.unit.declarations[3];
+    Element dElement = dNode.element;
+
+    SimpleIdentifier dName = dNode.name;
+    expect(dName.staticElement, same(dElement));
+    expect(dName.staticType, typeProvider.typeType);
+
+    {
+      var aRawType = aElement.type;
+      var expectedType = aRawType.instantiate([typeProvider.boolType]);
+
+      TypeName superClass = dNode.superclass;
+      expect(superClass.type, expectedType);
+
+      SimpleIdentifier identifier = superClass.name;
+      expect(identifier.staticElement, same(aElement));
+      expect(identifier.staticType, expectedType);
+    }
+
+    {
+      var bRawType = bElement.type;
+      var expectedType = bRawType.instantiate([typeProvider.intType]);
+
+      TypeName mixinType = dNode.withClause.mixinTypes[0];
+      expect(mixinType.type, expectedType);
+
+      SimpleIdentifier identifier = mixinType.name;
+      expect(identifier.staticElement, same(bElement));
+      expect(identifier.staticType, expectedType);
+    }
+
+    {
+      var cRawType = cElement.type;
+      var expectedType = cRawType.instantiate([typeProvider.doubleType]);
+
+      TypeName interfaceType = dNode.implementsClause.interfaces[0];
+      expect(interfaceType.type, expectedType);
+
+      SimpleIdentifier identifier = interfaceType.name;
+      expect(identifier.staticElement, same(cElement));
+      expect(identifier.staticType, expectedType);
+    }
+  }
+
+  test_top_enum() async {
+    String content = r'''
+enum MyEnum {
+  A, B
+}
+''';
+    addTestFile(content);
+    AnalysisResult result = await driver.getResult(testFile);
+    var typeProvider = result.unit.element.context.typeProvider;
+
+    EnumDeclaration enumNode = result.unit.declarations[0];
+    ClassElement enumElement = enumNode.element;
+
+    SimpleIdentifier dName = enumNode.name;
+    expect(dName.staticElement, same(enumElement));
+    if (previewDart2) {
+      expect(dName.staticType, typeProvider.typeType);
+    }
+
+    {
+      var aElement = enumElement.getField('A');
+      var aNode = enumNode.constants[0];
+      expect(aNode.element, same(aElement));
+      expect(aNode.name.staticElement, same(aElement));
+      expect(aNode.name.staticType, same(enumElement.type));
+    }
+
+    {
+      var bElement = enumElement.getField('B');
+      var bNode = enumNode.constants[1];
+      expect(bNode.element, same(bElement));
+      expect(bNode.name.staticElement, same(bElement));
+      expect(bNode.name.staticType, same(enumElement.type));
+    }
+  }
+
   test_top_executables_class() async {
     String content = r'''
 class C {
@@ -3308,8 +3909,9 @@
 
   test_top_field_class() async {
     String content = r'''
-class C {
+class C<T> {
   var a = 1;
+  T b;
 }
 ''';
     addTestFile(content);
@@ -3321,23 +3923,43 @@
 
     ClassDeclaration cNode = unit.declarations[0];
     ClassElement cElement = cNode.element;
+    TypeParameterElement tElement = cElement.typeParameters[0];
     expect(cElement, same(unitElement.types[0]));
 
-    FieldDeclaration aDeclaration = cNode.members[0];
-    VariableDeclaration aNode = aDeclaration.fields.variables[0];
-    FieldElement aElement = aNode.element;
-    expect(aElement, cElement.fields[0]);
-    expect(aElement.type, typeProvider.intType);
-    expect(aNode.name.staticElement, same(aElement));
-    expect(aNode.name.staticType, same(aElement.type));
+    {
+      FieldElement aElement = cElement.getField('a');
+      FieldDeclaration aDeclaration = cNode.members[0];
+      VariableDeclaration aNode = aDeclaration.fields.variables[0];
+      expect(aNode.element, same(aElement));
+      expect(aElement.type, typeProvider.intType);
+      expect(aNode.name.staticElement, same(aElement));
+      expect(aNode.name.staticType, same(aElement.type));
 
-    Expression aValue = aNode.initializer;
-    expect(aValue.staticType, typeProvider.intType);
+      Expression aValue = aNode.initializer;
+      expect(aValue.staticType, typeProvider.intType);
+    }
+
+    {
+      FieldElement bElement = cElement.getField('b');
+      FieldDeclaration bDeclaration = cNode.members[1];
+
+      TypeName typeName = bDeclaration.fields.type;
+      SimpleIdentifier typeIdentifier = typeName.name;
+      expect(typeIdentifier.staticElement, same(tElement));
+      expect(typeIdentifier.staticType, same(tElement.type));
+
+      VariableDeclaration bNode = bDeclaration.fields.variables[0];
+      expect(bNode.element, same(bElement));
+      expect(bElement.type, tElement.type);
+      expect(bNode.name.staticElement, same(bElement));
+      expect(bNode.name.staticType, same(bElement.type));
+    }
   }
 
   test_top_field_top() async {
     String content = r'''
 var a = 1;
+double b = 2.3;
 ''';
     addTestFile(content);
 
@@ -3346,16 +3968,36 @@
     CompilationUnitElement unitElement = unit.element;
     var typeProvider = unitElement.context.typeProvider;
 
-    TopLevelVariableDeclaration aDeclaration = unit.declarations[0];
-    VariableDeclaration aNode = aDeclaration.variables.variables[0];
-    TopLevelVariableElement aElement = aNode.element;
-    expect(aElement, same(unitElement.topLevelVariables[0]));
-    expect(aElement.type, typeProvider.intType);
-    expect(aNode.name.staticElement, same(aElement));
-    expect(aNode.name.staticType, same(aElement.type));
+    {
+      TopLevelVariableDeclaration aDeclaration = unit.declarations[0];
+      VariableDeclaration aNode = aDeclaration.variables.variables[0];
+      TopLevelVariableElement aElement = aNode.element;
+      expect(aElement, same(unitElement.topLevelVariables[0]));
+      expect(aElement.type, typeProvider.intType);
+      expect(aNode.name.staticElement, same(aElement));
+      expect(aNode.name.staticType, same(aElement.type));
 
-    Expression aValue = aNode.initializer;
-    expect(aValue.staticType, typeProvider.intType);
+      Expression aValue = aNode.initializer;
+      expect(aValue.staticType, typeProvider.intType);
+    }
+
+    {
+      TopLevelVariableDeclaration bDeclaration = unit.declarations[1];
+
+      VariableDeclaration bNode = bDeclaration.variables.variables[0];
+      TopLevelVariableElement bElement = bNode.element;
+      expect(bElement, same(unitElement.topLevelVariables[1]));
+      expect(bElement.type, typeProvider.doubleType);
+
+      TypeName typeName = bDeclaration.variables.type;
+      _assertTypeNameSimple(typeName, typeProvider.doubleType);
+
+      expect(bNode.name.staticElement, same(bElement));
+      expect(bNode.name.staticType, same(bElement.type));
+
+      Expression aValue = bNode.initializer;
+      expect(aValue.staticType, typeProvider.doubleType);
+    }
   }
 
   test_top_function_namedParameters() async {
@@ -3443,6 +4085,280 @@
     expect(cArgument.staticParameterElement, same(cElement));
   }
 
+  test_top_functionTypeAlias() async {
+    String content = r'''
+typedef int F<T>(bool a, T b);
+''';
+    addTestFile(content);
+
+    AnalysisResult result = await driver.getResult(testFile);
+    CompilationUnit unit = result.unit;
+    CompilationUnitElement unitElement = unit.element;
+    var typeProvider = unitElement.context.typeProvider;
+
+    FunctionTypeAlias alias = unit.declarations[0];
+    FunctionTypeAliasElement aliasElement = alias.element;
+    expect(aliasElement, same(unitElement.functionTypeAliases[0]));
+    expect(aliasElement.returnType, typeProvider.intType);
+
+    _assertTypeNameSimple(alias.returnType, typeProvider.intType);
+
+    _assertSimpleParameter(
+        alias.parameters.parameters[0], aliasElement.parameters[0],
+        name: 'a',
+        offset: 22,
+        kind: ParameterKind.REQUIRED,
+        type: typeProvider.boolType);
+
+    _assertSimpleParameter(
+        alias.parameters.parameters[1], aliasElement.parameters[1],
+        name: 'b',
+        offset: 27,
+        kind: ParameterKind.REQUIRED,
+        type: aliasElement.typeParameters[0].type);
+  }
+
+  test_top_typeParameter() async {
+    String content = r'''
+class A {}
+class C<T extends A, U extends List<A>, V> {}
+''';
+    addTestFile(content);
+    AnalysisResult result = await driver.getResult(testFile);
+    CompilationUnit unit = result.unit;
+    CompilationUnitElement unitElement = unit.element;
+    var typeProvider = unitElement.context.typeProvider;
+
+    ClassDeclaration aNode = unit.declarations[0];
+    ClassElement aElement = aNode.element;
+    expect(aElement, same(unitElement.types[0]));
+
+    ClassDeclaration cNode = unit.declarations[1];
+    ClassElement cElement = cNode.element;
+    expect(cElement, same(unitElement.types[1]));
+
+    {
+      TypeParameter tNode = cNode.typeParameters.typeParameters[0];
+      expect(tNode.element, same(cElement.typeParameters[0]));
+
+      TypeName bound = tNode.bound;
+      expect(bound.type, aElement.type);
+
+      SimpleIdentifier boundIdentifier = bound.name;
+      expect(boundIdentifier.staticElement, same(aElement));
+      expect(boundIdentifier.staticType, aElement.type);
+    }
+
+    {
+      var listElement = typeProvider.listType.element;
+      var listOfA = typeProvider.listType.instantiate([aElement.type]);
+
+      TypeParameter uNode = cNode.typeParameters.typeParameters[1];
+      expect(uNode.element, same(cElement.typeParameters[1]));
+
+      TypeName bound = uNode.bound;
+      expect(bound.type, listOfA);
+
+      SimpleIdentifier listIdentifier = bound.name;
+      expect(listIdentifier.staticElement, same(listElement));
+      expect(listIdentifier.staticType, listOfA);
+
+      TypeName aTypeName = bound.typeArguments.arguments[0];
+      expect(aTypeName.type, aElement.type);
+
+      SimpleIdentifier aIdentifier = aTypeName.name;
+      expect(aIdentifier.staticElement, same(aElement));
+      expect(aIdentifier.staticType, aElement.type);
+    }
+
+    {
+      TypeParameter vNode = cNode.typeParameters.typeParameters[2];
+      expect(vNode.element, same(cElement.typeParameters[2]));
+      expect(vNode.bound, isNull);
+    }
+  }
+
+  test_tryCatch() async {
+    addTestFile(r'''
+void main() {
+  try {} catch (e, st) {
+    e;
+    st;
+  }
+  try {} on int catch (e, st) {
+    e;
+    st;
+  }
+  try {} catch (e) {
+    e;
+  }
+  try {} on int catch (e) {
+    e;
+  }
+  try {} on int {}
+}
+''');
+    AnalysisResult result = await driver.getResult(testFile);
+    CompilationUnit unit = result.unit;
+    var typeProvider = unit.element.context.typeProvider;
+
+    List<Statement> statements = _getMainStatements(result);
+
+    // catch (e, st)
+    {
+      TryStatement statement = statements[0];
+      CatchClause catchClause = statement.catchClauses[0];
+      expect(catchClause.exceptionType, isNull);
+
+      SimpleIdentifier exceptionNode = catchClause.exceptionParameter;
+      LocalVariableElement exceptionElement = exceptionNode.staticElement;
+      expect(exceptionElement.type, DynamicTypeImpl.instance);
+
+      SimpleIdentifier stackNode = catchClause.stackTraceParameter;
+      LocalVariableElement stackElement = stackNode.staticElement;
+      expect(stackElement.type, typeProvider.stackTraceType);
+
+      List<Statement> catchStatements = catchClause.body.statements;
+
+      ExpressionStatement exceptionStatement = catchStatements[0];
+      SimpleIdentifier exceptionIdentifier = exceptionStatement.expression;
+      expect(exceptionIdentifier.staticElement, same(exceptionElement));
+      expect(exceptionIdentifier.staticType, DynamicTypeImpl.instance);
+
+      ExpressionStatement stackStatement = catchStatements[1];
+      SimpleIdentifier stackIdentifier = stackStatement.expression;
+      expect(stackIdentifier.staticElement, same(stackElement));
+      expect(stackIdentifier.staticType, typeProvider.stackTraceType);
+    }
+
+    // on int catch (e, st)
+    {
+      TryStatement statement = statements[1];
+      CatchClause catchClause = statement.catchClauses[0];
+      _assertTypeNameSimple(catchClause.exceptionType, typeProvider.intType);
+
+      SimpleIdentifier exceptionNode = catchClause.exceptionParameter;
+      LocalVariableElement exceptionElement = exceptionNode.staticElement;
+      expect(exceptionElement.type, typeProvider.intType);
+
+      SimpleIdentifier stackNode = catchClause.stackTraceParameter;
+      LocalVariableElement stackElement = stackNode.staticElement;
+      expect(stackElement.type, typeProvider.stackTraceType);
+
+      List<Statement> catchStatements = catchClause.body.statements;
+
+      ExpressionStatement exceptionStatement = catchStatements[0];
+      SimpleIdentifier exceptionIdentifier = exceptionStatement.expression;
+      expect(exceptionIdentifier.staticElement, same(exceptionElement));
+      expect(exceptionIdentifier.staticType, typeProvider.intType);
+
+      ExpressionStatement stackStatement = catchStatements[1];
+      SimpleIdentifier stackIdentifier = stackStatement.expression;
+      expect(stackIdentifier.staticElement, same(stackElement));
+      expect(stackIdentifier.staticType, typeProvider.stackTraceType);
+    }
+
+    // catch (e)
+    {
+      TryStatement statement = statements[2];
+      CatchClause catchClause = statement.catchClauses[0];
+      expect(catchClause.exceptionType, isNull);
+      expect(catchClause.stackTraceParameter, isNull);
+
+      SimpleIdentifier exceptionNode = catchClause.exceptionParameter;
+      LocalVariableElement exceptionElement = exceptionNode.staticElement;
+      expect(exceptionElement.type, DynamicTypeImpl.instance);
+    }
+
+    // on int catch (e)
+    {
+      TryStatement statement = statements[3];
+      CatchClause catchClause = statement.catchClauses[0];
+      _assertTypeNameSimple(catchClause.exceptionType, typeProvider.intType);
+      expect(catchClause.stackTraceParameter, isNull);
+
+      SimpleIdentifier exceptionNode = catchClause.exceptionParameter;
+      LocalVariableElement exceptionElement = exceptionNode.staticElement;
+      expect(exceptionElement.type, typeProvider.intType);
+    }
+
+    // on int catch (e)
+    {
+      TryStatement statement = statements[4];
+      CatchClause catchClause = statement.catchClauses[0];
+      _assertTypeNameSimple(catchClause.exceptionType, typeProvider.intType);
+      expect(catchClause.exceptionParameter, isNull);
+      expect(catchClause.stackTraceParameter, isNull);
+    }
+  }
+
+  test_type_functionTypeAlias() async {
+    addTestFile(r'''
+typedef T F<T>(bool a);
+class C {
+  F<int> f;
+}
+''');
+
+    AnalysisResult result = await driver.getResult(testFile);
+    CompilationUnit unit = result.unit;
+    CompilationUnitElement unitElement = unit.element;
+    var typeProvider = unitElement.context.typeProvider;
+
+    FunctionTypeAlias alias = unit.declarations[0];
+    GenericTypeAliasElement aliasElement = alias.element;
+    FunctionType aliasType = aliasElement.type;
+
+    ClassDeclaration cNode = unit.declarations[1];
+
+    FieldDeclaration fDeclaration = cNode.members[0];
+    FunctionType instantiatedAliasType =
+        aliasType.instantiate([typeProvider.intType]);
+
+    TypeName typeName = fDeclaration.fields.type;
+    expect(typeName.type, instantiatedAliasType);
+
+    SimpleIdentifier typeIdentifier = typeName.name;
+    expect(typeIdentifier.staticElement, same(aliasElement));
+    expect(typeIdentifier.staticType, instantiatedAliasType);
+
+    List<TypeAnnotation> typeArguments = typeName.typeArguments.arguments;
+    expect(typeArguments, hasLength(1));
+    _assertTypeNameSimple(typeArguments[0], typeProvider.intType);
+  }
+
+  test_typeLiteral() async {
+    addTestFile(r'''
+void main() {
+  int;
+  F;
+}
+typedef void F(int p);
+''');
+    AnalysisResult result = await driver.getResult(testFile);
+    CompilationUnit unit = result.unit;
+    var typeProvider = unit.element.context.typeProvider;
+
+    FunctionTypeAlias fNode = unit.declarations[1];
+    FunctionTypeAliasElement fElement = fNode.element;
+
+    var statements = _getMainStatements(result);
+
+    {
+      ExpressionStatement statement = statements[0];
+      SimpleIdentifier identifier = statement.expression;
+      expect(identifier.staticElement, same(typeProvider.intType.element));
+      expect(identifier.staticType, typeProvider.typeType);
+    }
+
+    {
+      ExpressionStatement statement = statements[1];
+      SimpleIdentifier identifier = statement.expression;
+      expect(identifier.staticElement, same(fElement));
+      expect(identifier.staticType, typeProvider.typeType);
+    }
+  }
+
   void _assertDefaultParameter(
       DefaultFormalParameter node, ParameterElement element,
       {String name, int offset, ParameterKind kind, DartType type}) {
@@ -3462,7 +4378,7 @@
     expect(element.name, name);
     expect(element.nameOffset, offset);
     expect(element.parameterKind, kind);
-    expect(element.type, same(type));
+    expect(element.type, type);
   }
 
   void _assertSimpleParameter(
@@ -3476,15 +4392,30 @@
     expect(node.identifier.staticElement, same(element));
 
     TypeName typeName = node.type;
-    expect(typeName.type, same(type));
-    expect(typeName.name.staticElement, same(type.element));
+    if (typeName != null) {
+      expect(typeName.type, same(type));
+      expect(typeName.name.staticElement, same(type.element));
+    }
+  }
+
+  void _assertTypeNameSimple(TypeName typeName, DartType type) {
+    expect(typeName.type, type);
+
+    SimpleIdentifier identifier = typeName.name;
+    expect(identifier.staticElement, same(type.element));
+    expect(identifier.staticType, type);
   }
 
   List<Statement> _getMainStatements(AnalysisResult result) {
-    FunctionDeclaration main = result.unit.declarations[0];
-    expect(main.name.name, 'main');
-    BlockFunctionBody body = main.functionExpression.body;
-    return body.block.statements;
+    for (var declaration in result.unit.declarations) {
+      if (declaration is FunctionDeclaration &&
+          declaration.name.name == 'main') {
+        BlockFunctionBody body = declaration.functionExpression.body;
+        return body.block.statements;
+      }
+    }
+    fail('Not found main() in ${result.unit}');
+    return null;
   }
 }
 
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/local_variable_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/local_variable_test.dart
index cdadb08..ff970df 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/local_variable_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/local_variable_test.dart
@@ -43,10 +43,40 @@
               allFailing: true),
           new TestDescriptor('constName', 'const a',
               [ParserErrorCode.EXPECTED_TOKEN], "const a;",
-              allFailing: true),
+              failing: <String>[
+                'assert',
+                'break',
+                'continue',
+                'do',
+                'if',
+                'for',
+                'labeled',
+                'localFunctionNonVoid',
+                'localFunctionVoid',
+                'localVariable',
+                'switch',
+                'try',
+                'return',
+                'while'
+              ]),
           new TestDescriptor('constTypeName', 'const int a',
               [ParserErrorCode.EXPECTED_TOKEN], "const int a;",
-              allFailing: true),
+              failing: <String>[
+                'assert',
+                'break',
+                'continue',
+                'do',
+                'if',
+                'for',
+                'labeled',
+                'localFunctionNonVoid',
+                'localFunctionVoid',
+                'localVariable',
+                'switch',
+                'try',
+                'return',
+                'while'
+              ]),
           new TestDescriptor(
               'constNameComma',
               'const a,',
@@ -56,7 +86,6 @@
               ],
               "const a, _s_;",
               failing: <String>[
-                'eof',
                 'assert',
                 'block',
                 'break',
@@ -76,7 +105,6 @@
               ],
               "const int a, _s_;",
               failing: [
-                'eof',
                 'assert',
                 'block',
                 'break',
@@ -100,7 +128,6 @@
               ],
               "final _s_;",
               failing: [
-                'eof',
                 'assert',
                 'block',
                 'break',
@@ -131,7 +158,22 @@
               allFailing: true),
           new TestDescriptor(
               'typeName', 'int a', [ParserErrorCode.EXPECTED_TOKEN], "int a;",
-              allFailing: true),
+              failing: [
+                'assert',
+                'break',
+                'continue',
+                'do',
+                'if',
+                'for',
+                'labeled',
+                'localFunctionNonVoid',
+                'localFunctionVoid',
+                'localVariable',
+                'switch',
+                'try',
+                'return',
+                'while'
+              ]),
           new TestDescriptor(
               'var',
               'var',
@@ -141,7 +183,6 @@
               ],
               "var _s_;",
               failing: [
-                'eof',
                 'assert',
                 'block',
                 'break',
diff --git a/pkg/analyzer/test/src/fasta/resolution_applier_test.dart b/pkg/analyzer/test/src/fasta/resolution_applier_test.dart
index 3b84c9e..a327082 100644
--- a/pkg/analyzer/test/src/fasta/resolution_applier_test.dart
+++ b/pkg/analyzer/test/src/fasta/resolution_applier_test.dart
@@ -310,7 +310,7 @@
       38,
       41,
       47,
-      9
+      22
     ]);
   }
 
diff --git a/pkg/analyzer/test/src/task/strong/front_end_runtime_check_test.dart b/pkg/analyzer/test/src/task/strong/front_end_runtime_check_test.dart
deleted file mode 100644
index 54f9624..0000000
--- a/pkg/analyzer/test/src/task/strong/front_end_runtime_check_test.dart
+++ /dev/null
@@ -1,500 +0,0 @@
-// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'package:analyzer/dart/ast/ast.dart';
-import 'package:analyzer/dart/ast/visitor.dart';
-import 'package:analyzer/dart/element/element.dart';
-import 'package:analyzer/dart/element/type.dart';
-import 'package:analyzer/src/dart/element/type.dart';
-import 'package:analyzer/src/generated/resolver.dart';
-import 'package:analyzer/src/generated/type_system.dart';
-import 'package:analyzer/src/generated/utilities_dart.dart';
-import 'package:analyzer/src/task/strong/ast_properties.dart';
-import 'package:front_end/src/base/instrumentation.dart' as fasta;
-import 'package:front_end/src/fasta/compiler_context.dart' as fasta;
-import 'package:front_end/src/fasta/testing/validating_instrumentation.dart'
-    as fasta;
-import 'package:kernel/kernel.dart' as fasta;
-import 'package:test/test.dart';
-import 'package:test_reflective_loader/test_reflective_loader.dart';
-
-import 'front_end_test_common.dart';
-
-main() {
-  // Use a group() wrapper to specify the timeout.
-  group('front_end_runtime_check_test', () {
-    defineReflectiveSuite(() {
-      defineReflectiveTests(RunFrontEndRuntimeCheckTest);
-    });
-  }, timeout: new Timeout(const Duration(seconds: 120)));
-}
-
-@reflectiveTest
-class RunFrontEndRuntimeCheckTest extends RunFrontEndTest {
-  @override
-  get testSubdir => 'runtime_checks';
-
-  @override
-  void visitUnit(TypeProvider typeProvider, CompilationUnit unit,
-      fasta.ValidatingInstrumentation validation, Uri uri) {
-    unit.accept(new _InstrumentationVisitor(
-        new StrongTypeSystemImpl(typeProvider), validation, uri));
-  }
-}
-
-/// Visitor for ASTs that reports instrumentation for strong mode runtime
-/// checks.
-///
-/// Note: this visitor doesn't attempt to report all runtime checks inserted by
-/// analyzer; just the ones necessary to validate the front end tests.  This
-/// visitor might need to be updated as more front end tests are added.
-class _InstrumentationVisitor extends GeneralizingAstVisitor<Null> {
-  final fasta.Instrumentation _instrumentation;
-  final Uri uri;
-  final StrongTypeSystemImpl _typeSystem;
-  final _elementNamer = new ElementNamer(null);
-
-  _InstrumentationVisitor(this._typeSystem, this._instrumentation, this.uri);
-
-  @override
-  visitAssignmentExpression(AssignmentExpression node) {
-    super.visitAssignmentExpression(node);
-    var leftHandSide = node.leftHandSide;
-    if (leftHandSide is PrefixedIdentifier) {
-      var staticElement = leftHandSide.identifier.staticElement;
-      if (staticElement is PropertyAccessorElement && staticElement.isSetter) {
-        var target = leftHandSide.prefix;
-        _annotateCallKind(
-            staticElement,
-            target is ThisExpression,
-            isDynamicInvoke(leftHandSide.identifier),
-            target.staticType,
-            null,
-            leftHandSide.identifier.offset);
-      }
-    }
-  }
-
-  @override
-  visitClassDeclaration(ClassDeclaration node) {
-    super.visitClassDeclaration(node);
-    _emitForwardingStubs(node, node.typeParameters, node.name.offset);
-  }
-
-  @override
-  visitClassTypeAlias(ClassTypeAlias node) {
-    super.visitClassTypeAlias(node);
-    _emitForwardingStubs(node, node.typeParameters, node.name.offset);
-  }
-
-  @override
-  visitFormalParameter(FormalParameter node) {
-    super.visitFormalParameter(node);
-    if (node is DefaultFormalParameter) {
-      // Already handled via the contained parameter ast object
-      return;
-    }
-    if (node.element.enclosingElement.enclosingElement is ClassElement) {
-      _annotateFormalParameter(node.element, node.identifier.offset,
-          node.getAncestor((n) => n is ClassDeclaration));
-    }
-  }
-
-  @override
-  visitMethodDeclaration(MethodDeclaration node) {
-    super.visitMethodDeclaration(node);
-    _annotateContravariant(node.element, node.name.offset, node.parent);
-  }
-
-  @override
-  visitMethodInvocation(MethodInvocation node) {
-    super.visitMethodInvocation(node);
-    var staticElement = node.methodName.staticElement;
-    var target = node.target;
-    var isThis = target is ThisExpression || target == null;
-    if (staticElement is PropertyAccessorElement) {
-      // Method invocation resolves to a getter; treat it as a get followed by a
-      // function invocation.
-      _annotateCheckGetterReturn(
-          getImplicitOperationCast(node), node.argumentList.offset);
-      _annotateCallKind(null, isThis, isDynamicInvoke(node.methodName), null,
-          null, node.argumentList.offset);
-    } else {
-      _annotateCheckReturn(getImplicitCast(node), node.argumentList.offset);
-      _annotateCallKind(
-          staticElement,
-          isThis,
-          isDynamicInvoke(node.methodName),
-          target?.staticType,
-          node.methodName.staticType,
-          node.argumentList.offset);
-    }
-  }
-
-  @override
-  visitPrefixedIdentifier(PrefixedIdentifier node) {
-    super.visitPrefixedIdentifier(node);
-    _handlePropertyAccess(node, node.prefix, node.identifier);
-  }
-
-  @override
-  visitPropertyAccess(PropertyAccess node) {
-    super.visitPropertyAccess(node);
-    _handlePropertyAccess(node, node.target, node.propertyName);
-  }
-
-  @override
-  visitSimpleIdentifier(SimpleIdentifier node) {
-    super.visitSimpleIdentifier(node);
-    var staticElement = node.staticElement;
-    var parent = node.parent;
-    if (parent is! MethodInvocation &&
-        parent is! PrefixedIdentifier &&
-        parent is! PropertyAccess &&
-        !node.inDeclarationContext() &&
-        node.inGetterContext() &&
-        staticElement is PropertyAccessorElement &&
-        staticElement.isGetter) {
-      _annotateCallKind(staticElement, true, false, null, null, node.offset);
-    }
-  }
-
-  @override
-  visitTypeParameter(TypeParameter node) {
-    super.visitTypeParameter(node);
-    if (node.parent.parent is MethodDeclaration) {
-      _annotateFormalParameter(node.element, node.name.offset,
-          node.getAncestor((n) => n is ClassDeclaration));
-    }
-  }
-
-  @override
-  visitVariableDeclaration(VariableDeclaration node) {
-    super.visitVariableDeclaration(node);
-    if (node.parent.parent is FieldDeclaration) {
-      FieldElement element = node.element;
-      var cls = node.getAncestor((n) => n is ClassDeclaration);
-      var offset = node.name.offset;
-      _annotateContravariant(element, offset, cls);
-      if (!element.isFinal) {
-        var setter = element.setter;
-        _annotateFormalParameter(setter.parameters[0], offset, cls);
-      }
-    }
-  }
-
-  /// Generates the appropriate `@callKind` annotation (if any) for a call site.
-  ///
-  /// An annotation of `@callKind=dynamic` indicates that the call is dynamic
-  /// (so it will have to be fully type checked).  An annotation of
-  /// `@callKind=closure` indicates that the receiver of the call is a function
-  /// object (so any formals marked as "semiSafe" will have to be type checked).
-  /// An annotation of `@callKind=this` indicates that the call goes through
-  /// `super` or `this` (so formals marked as "semiSafe" don't need to be type
-  /// checked).  No annotation indicates that either the call is static, in
-  /// which case no parameters need to be type checked, or it goes through an
-  /// interface, in which case the set of arguments that have to be type checked
-  /// depends on the `@checkInterface` annotations on the static target of the
-  /// call.
-  void _annotateCallKind(Element staticElement, bool isThis, bool isDynamic,
-      DartType targetType, DartType methodType, int offset) {
-    if (staticElement is FunctionElement &&
-        staticElement.enclosingElement is CompilationUnitElement) {
-      // Invocation of a top level function; no annotation needed.
-      return;
-    }
-    if (isDynamic) {
-      if (targetType == null &&
-          staticElement != null &&
-          staticElement is! MethodElement &&
-          methodType is FunctionType) {
-        // Sometimes analyzer annotates invocations of function objects as
-        // dynamic (presumably due to "dynamic is bottom" behavior).  Ignore
-        // this.
-        _recordCallKind(offset, 'closure');
-      } else {
-        _recordCallKind(offset, 'dynamic');
-        return;
-      }
-    }
-    if (staticElement is MethodElement && !staticElement.isStatic ||
-        staticElement is PropertyAccessorElement && !staticElement.isStatic) {
-      if (isThis) {
-        _recordCallKind(offset, 'this');
-        return;
-      } else {
-        // Interface call; no annotation needed
-        return;
-      }
-    }
-    _recordCallKind(offset, 'closure');
-  }
-
-  /// Generates the appropriate `@checkGetterReturn` annotation (if any) for a
-  /// call site.
-  ///
-  /// An annotation of `@checkGetterReturn=type` indicates that a method call
-  /// desugars to a getter invocation followed by a function invocation; the
-  /// value returned by the getter will have to be checked to make sure it is an
-  /// instance of the given type.
-  void _annotateCheckGetterReturn(DartType castType, int offset) {
-    if (castType != null) {
-      _recordCheckGetterReturn(offset, castType);
-    }
-  }
-
-  /// Generates the appropriate `@checkReturn` annotation (if any) for a call
-  /// site.
-  ///
-  /// An annotation of `@checkReturn=type` indicates that the value returned by
-  /// the call will have to be checked to make sure it is an instance of the
-  /// given type.
-  void _annotateCheckReturn(DartType castType, int offset) {
-    if (castType != null) {
-      _recordCheckReturn(offset, castType);
-    }
-  }
-
-  /// Generates the appropriate `@genericContravariant=true` annotation (if needed)
-  /// for a method or field declaration.
-  void _annotateContravariant(
-      Element element, int offset, ClassDeclaration cls) {
-    bool isContravariant = false;
-    if (cls?.typeParameters != null) {
-      if (element is ExecutableElement) {
-        if (_usesTypeParametersCovariantly(
-            cls.typeParameters.typeParameters, element.returnType,
-            flipVariance: true)) {
-          isContravariant = true;
-        }
-      } else if (element is FieldElement) {
-        if (_usesTypeParametersCovariantly(
-            cls.typeParameters.typeParameters, element.type,
-            flipVariance: true)) {
-          isContravariant = true;
-        }
-      }
-    }
-    if (isContravariant) {
-      _recordContravariance(offset);
-    }
-  }
-
-  /// Generates the appropriate `@covariance` annotation (if any) for a method
-  /// formal parameter, method type parameter, or field declaration.
-  ///
-  /// When these annotations are generated for a field declaration, they
-  /// implicitly refer to the value parameter of the synthetic setter.
-  ///
-  /// An annotation of `@covariance=explicit` indicates that the parameter needs
-  /// to be type checked regardless of the call site.
-  ///
-  /// An annotation of `@covariance=genericImpl` indicates that the parameter
-  /// needs to be type checked when the call site is annotated
-  /// `@callKind=dynamic` or `@callKind=closure`, or the call site is
-  /// unannotated and the corresponding parameter in the interface target is
-  /// annotated `@covariance=genericInterface`.
-  ///
-  /// No `@covariance` annotation indicates that the parameter only needs to be
-  /// type checked if the call site is annotated `@callKind=dynamic`.
-  void _annotateFormalParameter(
-      Element element, int offset, ClassDeclaration cls) {
-    bool isExplicit = false;
-    bool isGenericImpl = false;
-    if (element is ParameterElement && element.isCovariant) {
-      isExplicit = true;
-    } else if (cls != null) {
-      var covariantParams = getClassCovariantParameters(cls);
-      if (covariantParams != null && covariantParams.contains(element) ||
-          cls?.typeParameters != null &&
-              element is ParameterElement &&
-              _usesTypeParametersCovariantly(
-                  cls.typeParameters.typeParameters, element.type)) {
-        isGenericImpl = true;
-      }
-    }
-    bool isGenericInterface = false;
-    if (cls?.typeParameters != null) {
-      if (element is ParameterElement) {
-        if (_usesTypeParametersCovariantly(
-            cls.typeParameters.typeParameters, element.type)) {
-          isGenericInterface = true;
-        }
-      } else if (element is TypeParameterElement && element.bound != null) {
-        if (_usesTypeParametersCovariantly(
-            cls.typeParameters.typeParameters, element.bound)) {
-          isGenericInterface = true;
-        }
-      }
-    }
-    var covariance = <String>[];
-    if (isExplicit) covariance.add('explicit');
-    if (isGenericInterface) covariance.add('genericInterface');
-    if (isGenericImpl) covariance.add('genericImpl');
-    if (covariance.isNotEmpty) {
-      _recordCovariance(offset, covariance.join(', '));
-    }
-  }
-
-  /// Generates the appropriate `@forwardingStub` annotation (if any) for a
-  /// class declaration or mixin application.
-  ///
-  /// An annotation of `@forwardingStub=rettype name(args)` indicates that a
-  /// forwarding stub must be inserted into the class having the given name and
-  /// return type.  Each argument is listed in `args` as
-  /// `covariance=(...) type name`, where the words between the parentheses are
-  /// the same as for the `@covariance=` annotation.
-  void _emitForwardingStubs(
-      Declaration node, TypeParameterList typeParameters, int offset) {
-    var covariantParams = getSuperclassCovariantParameters(node);
-    void emitStubFor(DartType returnType, String name,
-        List<ParameterElement> parameters, String accessorType) {
-      String closer = '';
-      var previousParameterKind = ParameterKind.REQUIRED;
-      var paramDescrs = <String>[];
-      for (var param in parameters) {
-        var covariances = <String>[];
-        if (_usesTypeParametersCovariantly(
-            typeParameters?.typeParameters, param.type)) {
-          covariances.add('genericInterface');
-        }
-        if (covariantParams.contains(param)) {
-          if (param.isCovariant) {
-            covariances.add('explicit');
-          } else {
-            covariances.add('genericImpl');
-          }
-        }
-        var covariance = 'covariance=(${covariances.join(', ')})';
-        var typeDescr = _typeToString(param.type);
-        var paramName = accessorType == 'set' ? '_' : param.name;
-        var paramDescr = '$covariance $typeDescr $paramName';
-        if (param.parameterKind != previousParameterKind) {
-          String opener;
-          if (param.parameterKind == ParameterKind.POSITIONAL) {
-            opener = '[';
-            closer = ']';
-          } else {
-            opener = '{';
-            closer = '}';
-          }
-          paramDescr = opener + paramDescr;
-          previousParameterKind = param.parameterKind;
-        }
-        paramDescrs.add(paramDescr);
-      }
-      if (closer.isNotEmpty) {
-        paramDescrs[paramDescrs.length - 1] += closer;
-      }
-      var returnTypeDescr = _typeToString(returnType);
-      var stubParts = <String>[];
-      if (_usesTypeParametersCovariantly(
-          typeParameters?.typeParameters, returnType)) {
-        stubParts.add('genericContravariant');
-      }
-      stubParts.add(returnTypeDescr);
-      if (accessorType != null) stubParts.add(accessorType);
-      stubParts.add('$name(${paramDescrs.join(', ')})');
-      _recordForwardingStub(offset, stubParts.join(' '));
-    }
-
-    if (covariantParams != null && covariantParams.isNotEmpty) {
-      for (var member
-          in covariantParams.map((p) => p.enclosingElement).toSet()) {
-        var memberName = member.name;
-        if (member is PropertyAccessorElement) {
-          if (member.isSetter) {
-            emitStubFor(
-                member.returnType,
-                memberName.substring(0, memberName.length - 1),
-                member.parameters,
-                'set');
-          } else {
-            emitStubFor(
-                member.returnType, memberName, member.parameters, 'get');
-          }
-        } else if (member is MethodElement) {
-          emitStubFor(member.returnType, memberName, member.parameters, null);
-        } else {
-          throw new StateError('Unexpected covariant member $member');
-        }
-      }
-    }
-  }
-
-  /// Generates the appropriate annotations for a property access, whether it
-  /// arises from a [PrefixedIdentifier] or a [PropertyAccess].
-  void _handlePropertyAccess(
-      Expression node, Expression target, SimpleIdentifier propertyName) {
-    var staticElement = propertyName.staticElement;
-    if (propertyName.inGetterContext()) {
-      var isThis = target is ThisExpression || target == null;
-      _annotateCheckReturn(getImplicitCast(node), propertyName.offset);
-      _annotateCallKind(
-          staticElement,
-          isThis,
-          target.staticType is DynamicTypeImpl,
-          target.staticType,
-          null,
-          propertyName.offset);
-    }
-  }
-
-  void _recordCallKind(int offset, String kind) {
-    _instrumentation.record(
-        uri, offset, 'callKind', new fasta.InstrumentationValueLiteral(kind));
-  }
-
-  void _recordCheckGetterReturn(int offset, DartType castType) {
-    _instrumentation.record(uri, offset, 'checkGetterReturn',
-        new InstrumentationValueForType(castType, _elementNamer));
-  }
-
-  void _recordCheckReturn(int offset, DartType castType) {
-    _instrumentation.record(uri, offset, 'checkReturn',
-        new InstrumentationValueForType(castType, _elementNamer));
-  }
-
-  void _recordContravariance(int offset) {
-    _instrumentation.record(uri, offset, 'genericContravariant',
-        new fasta.InstrumentationValueLiteral('true'));
-  }
-
-  void _recordCovariance(int offset, String covariance) {
-    _instrumentation.record(uri, offset, 'covariance',
-        new fasta.InstrumentationValueLiteral(covariance));
-  }
-
-  void _recordForwardingStub(int offset, String descr) {
-    _instrumentation.record(uri, offset, 'forwardingStub',
-        new fasta.InstrumentationValueLiteral(descr));
-  }
-
-  String _typeToString(DartType type) {
-    return new InstrumentationValueForType(type, _elementNamer).toString();
-  }
-
-  /// Determines whether the given type makes covariant use of type parameters.
-  bool _usesTypeParametersCovariantly(
-      List<TypeParameter> typeParameters, DartType formalType,
-      {bool flipVariance: false}) {
-    if (typeParameters == null) return false;
-    // To see if this parameter needs to be semi-typed, we try substituting
-    // bottom for all the active type parameters.  If the resulting parameter
-    // static type is a supertype of its current static type, then that means
-    // that regardless of what we pass in, it won't fail a type check.
-    var substitutedType = formalType.substitute2(
-        new List<DartType>.filled(
-            typeParameters.length, BottomTypeImpl.instance),
-        typeParameters
-            .map((p) => new TypeParameterTypeImpl(p.element))
-            .toList());
-    // To test contravariance, we flip the subtype check.
-    if (flipVariance) {
-      return !_typeSystem.isSubtypeOf(substitutedType, formalType);
-    } else {
-      return !_typeSystem.isSubtypeOf(formalType, substitutedType);
-    }
-  }
-}
diff --git a/pkg/analyzer/test/src/task/strong/front_end_test_common.dart b/pkg/analyzer/test/src/task/strong/front_end_test_common.dart
deleted file mode 100644
index 7bb563b..0000000
--- a/pkg/analyzer/test/src/task/strong/front_end_test_common.dart
+++ /dev/null
@@ -1,327 +0,0 @@
-// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'dart:async';
-import 'dart:convert';
-import 'dart:io';
-
-import 'package:analyzer/dart/ast/ast.dart';
-import 'package:analyzer/dart/element/element.dart';
-import 'package:analyzer/dart/element/type.dart';
-import 'package:analyzer/src/dart/analysis/driver.dart';
-import 'package:analyzer/src/dart/element/member.dart';
-import 'package:analyzer/src/dart/scanner/reader.dart';
-import 'package:analyzer/src/dart/scanner/scanner.dart';
-import 'package:analyzer/src/generated/engine.dart' show AnalysisOptionsImpl;
-import 'package:analyzer/src/generated/parser.dart';
-import 'package:analyzer/src/generated/resolver.dart';
-import 'package:analyzer/src/generated/source.dart';
-import 'package:analyzer/src/generated/utilities_dart.dart';
-import 'package:front_end/src/base/instrumentation.dart' as fasta;
-import 'package:front_end/src/fasta/compiler_context.dart' as fasta;
-import 'package:front_end/src/fasta/testing/validating_instrumentation.dart'
-    as fasta;
-import 'package:front_end/src/testing/package_root.dart' as package_root;
-import 'package:kernel/kernel.dart' as fasta;
-import 'package:path/path.dart' as pathos;
-import 'package:test/test.dart';
-
-import '../../dart/analysis/base.dart';
-
-/// Set this to `true` to cause expectation comments to be updated.
-const bool fixProblems = false;
-
-class ElementNamer {
-  final ConstructorElement currentFactoryConstructor;
-
-  ElementNamer(this.currentFactoryConstructor);
-
-  void appendElementName(StringBuffer buffer, Element element) {
-    // Synthetic FunctionElement(s) don't have a name or enclosing library.
-    if (element.isSynthetic && element is FunctionElement) {
-      return;
-    }
-
-    var enclosing = element.enclosingElement;
-    if (enclosing is CompilationUnitElement) {
-      enclosing = enclosing.enclosingElement;
-    } else if (enclosing is ClassElement &&
-        currentFactoryConstructor != null &&
-        identical(enclosing, currentFactoryConstructor.enclosingElement) &&
-        element is TypeParameterElement) {
-      enclosing = currentFactoryConstructor;
-    }
-    if (enclosing != null) {
-      if (enclosing is LibraryElement &&
-          (enclosing.name == 'dart.core' ||
-              enclosing.name == 'dart.async' ||
-              enclosing.name == 'test')) {
-        // For brevity, omit library name
-      } else {
-        appendElementName(buffer, enclosing);
-        buffer.write('::');
-      }
-    }
-
-    String name = element.name ?? '';
-    if (element is ConstructorElement && name == '') {
-      name = '•';
-    } else if (name.endsWith('=') &&
-        element is PropertyAccessorElement &&
-        element.isSetter) {
-      name = name.substring(0, name.length - 1);
-    }
-    buffer.write(name);
-  }
-}
-
-/// Instance of [InstrumentationValue] describing an [ExecutableElement].
-class InstrumentationValueForExecutableElement
-    extends fasta.InstrumentationValue {
-  final ExecutableElement element;
-  final ElementNamer elementNamer;
-
-  InstrumentationValueForExecutableElement(this.element, this.elementNamer);
-
-  @override
-  String toString() {
-    StringBuffer buffer = new StringBuffer();
-    elementNamer.appendElementName(buffer, element);
-    return buffer.toString();
-  }
-}
-
-/**
- * Instance of [InstrumentationValue] describing a [DartType].
- */
-class InstrumentationValueForType extends fasta.InstrumentationValue {
-  final DartType type;
-  final ElementNamer elementNamer;
-
-  InstrumentationValueForType(this.type, this.elementNamer);
-
-  @override
-  String toString() {
-    StringBuffer buffer = new StringBuffer();
-    _appendType(buffer, type);
-    return buffer.toString();
-  }
-
-  void _appendList<T>(StringBuffer buffer, String open, String close,
-      List<T> items, String separator, writeItem(T item),
-      {bool includeEmpty: false}) {
-    if (!includeEmpty && items.isEmpty) {
-      return;
-    }
-    buffer.write(open);
-    bool first = true;
-    for (T item in items) {
-      if (!first) {
-        buffer.write(separator);
-      }
-      writeItem(item);
-      first = false;
-    }
-    buffer.write(close);
-  }
-
-  void _appendParameters(
-      StringBuffer buffer, List<ParameterElement> parameters) {
-    buffer.write('(');
-    bool first = true;
-    ParameterKind lastKind = ParameterKind.REQUIRED;
-    for (var parameter in parameters) {
-      if (!first) {
-        buffer.write(', ');
-      }
-      if (lastKind != parameter.parameterKind) {
-        if (parameter.parameterKind == ParameterKind.POSITIONAL) {
-          buffer.write('[');
-        } else if (parameter.parameterKind == ParameterKind.NAMED) {
-          buffer.write('{');
-        }
-      }
-      if (parameter.parameterKind == ParameterKind.NAMED) {
-        buffer.write(parameter.name);
-        buffer.write(': ');
-      }
-      _appendType(buffer, parameter.type);
-      lastKind = parameter.parameterKind;
-      first = false;
-    }
-    if (lastKind == ParameterKind.POSITIONAL) {
-      buffer.write(']');
-    } else if (lastKind == ParameterKind.NAMED) {
-      buffer.write('}');
-    }
-    buffer.write(')');
-  }
-
-  void _appendType(StringBuffer buffer, DartType type) {
-    if (type is FunctionType) {
-      if (type.typeFormals.isNotEmpty) {
-        _appendTypeFormals(buffer, type.typeFormals);
-      }
-      _appendParameters(buffer, type.parameters);
-      buffer.write(' -> ');
-      _appendType(buffer, type.returnType);
-    } else if (type is InterfaceType) {
-      ClassElement element = type.element;
-      elementNamer.appendElementName(buffer, element);
-      _appendTypeArguments(buffer, type.typeArguments);
-    } else if (type.isBottom) {
-      buffer.write('<BottomType>');
-    } else if (type is TypeParameterType) {
-      elementNamer.appendElementName(buffer, type.element);
-      if (type.element is TypeParameterMember) {
-        buffer.write(' extends ');
-        _appendType(buffer, type.bound);
-      }
-    } else {
-      buffer.write(type.toString());
-    }
-  }
-
-  void _appendTypeArguments(StringBuffer buffer, List<DartType> typeArguments) {
-    _appendList<DartType>(buffer, '<', '>', typeArguments, ', ',
-        (type) => _appendType(buffer, type));
-  }
-
-  void _appendTypeFormals(
-      StringBuffer buffer, List<TypeParameterElement> typeFormals) {
-    _appendList<TypeParameterElement>(buffer, '<', '>', typeFormals, ', ',
-        (formal) {
-      buffer.write(formal.name);
-      buffer.write(' extends ');
-      if (formal.bound == null) {
-        buffer.write('Object');
-      } else {
-        _appendType(buffer, formal.bound);
-      }
-    });
-  }
-}
-
-/**
- * Instance of [InstrumentationValue] describing a list of [DartType]s.
- */
-class InstrumentationValueForTypeArgs extends fasta.InstrumentationValue {
-  final List<DartType> types;
-  final ElementNamer elementNamer;
-
-  const InstrumentationValueForTypeArgs(this.types, this.elementNamer);
-
-  @override
-  String toString() => types
-      .map((type) =>
-          new InstrumentationValueForType(type, elementNamer).toString())
-      .join(', ');
-}
-
-abstract class RunFrontEndTest {
-  String get testSubdir;
-
-  test_run() async {
-    String pkgPath = package_root.packageRoot;
-    String fePath = pathos.join(pkgPath, 'front_end', 'testcases', testSubdir);
-    List<File> dartFiles = new Directory(fePath)
-        .listSync()
-        .where((entry) => entry is File && entry.path.endsWith('.dart'))
-        .map((entry) => entry as File)
-        .toList();
-
-    var allProblems = new StringBuffer();
-    for (File file in dartFiles) {
-      var test = new _FrontEndInferenceTest(this);
-      await test.setUp();
-      try {
-        String code = file.readAsStringSync();
-        String problems = await test.runTest(file.path, code);
-        if (problems != null) {
-          allProblems.writeln(problems);
-        }
-      } finally {
-        await test.tearDown();
-      }
-    }
-    if (allProblems.isNotEmpty) {
-      fail(allProblems.toString());
-    }
-  }
-
-  void visitUnit(TypeProvider typeProvider, CompilationUnit unit,
-      fasta.ValidatingInstrumentation validation, Uri uri);
-}
-
-class _FrontEndInferenceTest extends BaseAnalysisDriverTest {
-  final RunFrontEndTest _frontEndTestRunner;
-
-  _FrontEndInferenceTest(this._frontEndTestRunner);
-
-  @override
-  AnalysisOptionsImpl createAnalysisOptions() => super.createAnalysisOptions();
-
-  Future<String> runTest(String path, String code) {
-    return fasta.CompilerContext.runWithDefaultOptions((_) async {
-      Uri uri = provider.pathContext.toUri(path);
-
-      List<int> lineStarts = new LineInfo.fromContent(code).lineStarts;
-      fasta.CompilerContext.current.uriToSource[uri] =
-          new fasta.Source(lineStarts, UTF8.encode(code));
-
-      var validation = new fasta.ValidatingInstrumentation();
-      await validation.loadExpectations(uri);
-
-      _addFileAndImports(path, code);
-
-      AnalysisResult result = await driver.getResult(path);
-      _frontEndTestRunner.visitUnit(
-          result.typeProvider, result.unit, validation, uri);
-
-      validation.finish();
-
-      if (validation.hasProblems) {
-        if (fixProblems) {
-          validation.fixSource(uri, true);
-          return null;
-        } else {
-          return validation.problemsAsString;
-        }
-      } else {
-        return null;
-      }
-    });
-  }
-
-  void _addFileAndImports(String path, String code) {
-    provider.newFile(path, code);
-    var source = null;
-    var analysisErrorListener = null;
-    var scanner = new Scanner(
-        source, new CharSequenceReader(code), analysisErrorListener);
-    var token = scanner.tokenize();
-    var compilationUnit =
-        new Parser(source, analysisErrorListener).parseDirectives(token);
-    for (var directive in compilationUnit.directives) {
-      if (directive is UriBasedDirective) {
-        Uri uri = Uri.parse(directive.uri.stringValue);
-        if (uri.scheme == 'dart') {
-          // Ignore these--they should be in the mock SDK.
-        } else if (uri.scheme == '') {
-          var pathSegments = uri.pathSegments;
-          // For these tests we don't support any directory traversal; we just
-          // assume the URI is the name of a file in the same directory as all
-          // the other tests.
-          if (pathSegments.length != 1) fail('URI too complex: $uri');
-          var referencedPath =
-              pathos.join(pathos.dirname(path), pathSegments[0]);
-          if (!provider.getFile(referencedPath).exists) {
-            var referencedCode = new File(referencedPath).readAsStringSync();
-            _addFileAndImports(referencedPath, referencedCode);
-          }
-        }
-      }
-    }
-  }
-}
diff --git a/pkg/analyzer/test/src/task/strong/test_all.dart b/pkg/analyzer/test/src/task/strong/test_all.dart
index 3798be4..28393b8 100644
--- a/pkg/analyzer/test/src/task/strong/test_all.dart
+++ b/pkg/analyzer/test/src/task/strong/test_all.dart
@@ -5,14 +5,12 @@
 import 'package:test_reflective_loader/test_reflective_loader.dart';
 
 import 'checker_test.dart' as checker_test;
-import 'front_end_runtime_check_test.dart' as front_end_runtime_check_test;
 import 'inferred_type_test.dart' as inferred_type_test;
 import 'non_null_checker_test.dart' as non_null_checker_test;
 
 main() {
   defineReflectiveSuite(() {
     checker_test.main();
-    front_end_runtime_check_test.main();
     inferred_type_test.main();
     non_null_checker_test.main();
   }, name: 'strong');
diff --git a/pkg/analyzer/tool/fasta_migration_progress.sh b/pkg/analyzer/tool/fasta_migration_progress.sh
index 4011ce0..042e0db 100644
--- a/pkg/analyzer/tool/fasta_migration_progress.sh
+++ b/pkg/analyzer/tool/fasta_migration_progress.sh
@@ -9,16 +9,23 @@
 
 # Run the suite to extract the total number of tests from the runner output.
 # TODO(sigmund): don't require `dart` to be on the path.
-total=$(dart pkg/analyzer/test/generated/parser_fasta_test.dart | \
-  tail -1 | \
-  sed -e "s/.*+\([0-9]*\)[^0-9].*All tests passed.*$/\1/")
+total=$(find pkg/analyzer/test -name parser_fasta_test.dart -exec dart {} \; \
+    -or -name *_kernel_test.dart -exec dart {} \; 2>/dev/null | \
+  egrep '(All tests passed|Some tests failed)' | \
+  sed -e "s/.*+\([0-9]*\)[^0-9].*All tests passed.*$/\1/" | \
+  # For failures, parse +10 -1 into 10+1 so we can call bc
+  sed -e "s/.*+\([0-9]*\)[^0-9].*-\([0-9]*\)[^0-9].*Some tests failed.*$/\1+\2/" | \
+  # concatenate with + and call bc to add up failures
+  paste -sd+ | \
+  bc)
 
 # Count tests marked with the @failingTest annotation.
-fail=$(cat pkg/analyzer/test/generated/parser_fasta_test.dart | \
+fail=$(cat pkg/analyzer/test/generated/parser_fasta_test.dart \
+    $(find pkg/analyzer/test -name *_kernel_test.dart) | \
   grep failingTest | wc -l)
 
 pass_rate=$(bc <<< "scale=1; 100*($total-$fail)/$total")
-echo "Parser-fasta tests:         $(($total - $fail))/$total ($pass_rate%)"
+echo "CFE enabled tests:          $(($total - $fail))/$total ($pass_rate%)"
 
 # Metric 2: analyzer tests with fasta enabled.
 
@@ -26,7 +33,7 @@
 # count the number of individual tests (a single test case in a test file) that
 # are passing or failing.
 
-echo "Analyzer tests files:"
+echo "Analyzer tests files (with fasta enabled):"
 logfile=$1
 delete=0
 
@@ -39,8 +46,9 @@
   # delete=1
   python tools/test.py -m release --checked --use-sdk \
      --vm-options="-DuseFastaParser=true" \
+     --print_passing_stdout \
      pkg/analy > $logfile
-fi;
+fi
 
 pass=$(tail -1 $logfile | sed -e "s/.*+\s*\([0-9]*\) |.*$/\1/")
 fail=$(tail -1 $logfile | sed -e "s/.* -\s*\([0-9]*\)\].*$/\1/")
@@ -49,18 +57,35 @@
 echo "  Test files passing:       $pass/$(($pass + $fail)) ($pass_rate%)"
 
 # Tests use package:test, which contains a summary line saying how many tests
-# passed and failed. The line has this form:
+# passed and failed.
+#
+# Files in which all tests pass end in:
+#
+#    MM:SS  +pp: All tests passed
+#
+# with some extra crap for color highlighting. Count those tests up:
+passing_tests_temp=$(cat $logfile | \
+  grep "All tests passed" | \
+  sed -e "s/.*+\([0-9]*\).*All tests passed.*/\1/" |
+  paste -sd+ | # concatenate with +
+  bc) # sum
+
+# Test files which had at least one failure end in:
 #
 #    MM:SS  +pp -ff: Some tests failed
 #
 # but also contains some escape sequences for color highlighting. The code below
-# extracts the passing (pp) and failing (ff) numbers and tallies them up:
+# extracts the passing (pp) and failing (ff) numbers, plus the all-tests-passed
+# counts, and prints the results:
 cat $logfile | \
   grep "Some tests failed" | \
   sed -e "s/.*+\([0-9]*\).* -\([0-9]*\).*/\1 \2/" | \
-   awk '{
+   awk '
+  {
     pass += $1
     total += $1 + $2
+  } BEGIN {
+    total = pass = '$passing_tests_temp'
   } END {
     printf ("  Individual tests passing: %d/%d (%.1f%)\n", \
       pass/2, total/2,(100 * pass / total))
diff --git a/pkg/async_helper/lib/async_helper.dart b/pkg/async_helper/lib/async_helper.dart
index 965385e..1c9c10e 100644
--- a/pkg/async_helper/lib/async_helper.dart
+++ b/pkg/async_helper/lib/async_helper.dart
@@ -38,7 +38,10 @@
 }
 
 /// Call this method before an asynchronous test is created.
-void asyncStart() {
+///
+/// If [count] is provided, expect [count] [asyncEnd] calls instead of just one.
+void asyncStart([int count = 1]) {
+  if (count <= 0) return;
   if (_initialized && _asyncLevel == 0) {
     throw _buildException('asyncStart() was called even though we are done '
         'with testing.');
@@ -48,7 +51,7 @@
     _initialized = true;
     _port = new ReceivePort();
   }
-  _asyncLevel++;
+  _asyncLevel += count;
 }
 
 /// Call this after an asynchronous test has ended successfully.
diff --git a/pkg/compiler/lib/src/compiler.dart b/pkg/compiler/lib/src/compiler.dart
index a88db74..853811c 100644
--- a/pkg/compiler/lib/src/compiler.dart
+++ b/pkg/compiler/lib/src/compiler.dart
@@ -184,23 +184,24 @@
       this.environment: const _EmptyEnvironment(),
       MakeReporterFunction makeReporter})
       : this.options = options {
+    CompilerTask kernelFrontEndTask;
+    selfTask = new GenericTask('self', measurer);
     _outputProvider = new _CompilerOutput(this, outputProvider);
     if (makeReporter != null) {
       _reporter = makeReporter(this, options);
     } else {
       _reporter = new CompilerDiagnosticReporter(this, options);
     }
-    frontendStrategy = options.useKernel
-        ? new KernelFrontEndStrategy(options, reporter, environment,
-            options.kernelInitializedCompilerState)
-        : new ResolutionFrontEndStrategy(this);
-    backendStrategy = options.useKernel
-        ? new KernelBackendStrategy(this)
-        : new ElementBackendStrategy(this);
     if (options.useKernel) {
+      kernelFrontEndTask = new GenericTask('Front end', measurer);
+      frontendStrategy = new KernelFrontEndStrategy(kernelFrontEndTask, options,
+          reporter, environment, options.kernelInitializedCompilerState);
+      backendStrategy = new KernelBackendStrategy(this);
       _impactCache = <Entity, WorldImpact>{};
       _impactCacheDeleter = new _MapImpactCacheDeleter(_impactCache);
     } else {
+      frontendStrategy = new ResolutionFrontEndStrategy(this);
+      backendStrategy = new ElementBackendStrategy(this);
       _resolution = createResolution();
       _impactCache = _resolution._worldImpactCache;
       _impactCacheDeleter = _resolution;
@@ -242,8 +243,9 @@
       // objects needed by other tasks.
       enqueuer,
       dumpInfoTask = new DumpInfoTask(this),
-      selfTask = new GenericTask('self', measurer),
+      selfTask,
     ];
+    if (options.useKernel) tasks.add(kernelFrontEndTask);
     if (options.resolveOnly) {
       serialization.supportSerialization = true;
     }
@@ -677,10 +679,10 @@
   }
 
   /// Compute the [WorldImpact] for accessing all elements in [library].
-  WorldImpact computeImpactForLibrary(LibraryElement library) {
+  WorldImpact computeImpactForLibrary(LibraryEntity library) {
     WorldImpactBuilderImpl impactBuilder = new WorldImpactBuilderImpl();
 
-    void registerStaticUse(Element element) {
+    void registerStaticUse(Entity element) {
       impactBuilder.registerStaticUse(new StaticUse.directUse(element));
     }
 
@@ -698,33 +700,45 @@
       }
     }
 
-    library.implementation.forEachLocalMember(registerElement);
+    if (library is LibraryElement) {
+      library.implementation.forEachLocalMember(registerElement);
 
-    library.imports.forEach((ImportElement import) {
-      if (import.isDeferred) {
-        // `import.prefix` and `loadLibrary` may be `null` when the deferred
-        // import has compile-time errors.
-        GetterElement loadLibrary = import.prefix?.loadLibrary;
-        if (loadLibrary != null) {
-          registerStaticUse(loadLibrary);
+      library.imports.forEach((ImportElement import) {
+        if (import.isDeferred) {
+          // `import.prefix` and `loadLibrary` may be `null` when the deferred
+          // import has compile-time errors.
+          GetterElement loadLibrary = import.prefix?.loadLibrary;
+          if (loadLibrary != null) {
+            registerStaticUse(loadLibrary);
+          }
         }
-      }
-      if (serialization.supportSerialization) {
-        for (MetadataAnnotation metadata in import.metadata) {
-          metadata.ensureResolved(resolution);
-        }
-      }
-    });
-    if (serialization.supportSerialization) {
-      library.exports.forEach((ExportElement export) {
-        for (MetadataAnnotation metadata in export.metadata) {
-          metadata.ensureResolved(resolution);
+        if (serialization.supportSerialization) {
+          for (MetadataAnnotation metadata in import.metadata) {
+            metadata.ensureResolved(resolution);
+          }
         }
       });
-      library.compilationUnits.forEach((CompilationUnitElement unit) {
-        for (MetadataAnnotation metadata in unit.metadata) {
-          metadata.ensureResolved(resolution);
-        }
+      if (serialization.supportSerialization) {
+        library.exports.forEach((ExportElement export) {
+          for (MetadataAnnotation metadata in export.metadata) {
+            metadata.ensureResolved(resolution);
+          }
+        });
+        library.compilationUnits.forEach((CompilationUnitElement unit) {
+          for (MetadataAnnotation metadata in unit.metadata) {
+            metadata.ensureResolved(resolution);
+          }
+        });
+      }
+    } else {
+      ElementEnvironment elementEnvironment =
+          frontendStrategy.elementEnvironment;
+
+      elementEnvironment.forEachLibraryMember(library, registerStaticUse);
+      elementEnvironment.forEachClass(library, (ClassEntity cls) {
+        impactBuilder.registerTypeUse(
+            new TypeUse.instantiation(elementEnvironment.getRawType(cls)));
+        elementEnvironment.forEachLocalClassMember(cls, registerStaticUse);
       });
     }
     return impactBuilder;
diff --git a/pkg/compiler/lib/src/deferred_load.dart b/pkg/compiler/lib/src/deferred_load.dart
index 5c49dbf..cbe47ff 100644
--- a/pkg/compiler/lib/src/deferred_load.dart
+++ b/pkg/compiler/lib/src/deferred_load.dart
@@ -211,14 +211,7 @@
       collectConstantsInBody(analyzableElement, constants);
     }
 
-    // TODO(sigurdm): How is metadata on a patch-class handled?
-    if (element is ClassEntity) {
-      constants.addAll(elementEnvironment.getClassMetadata(element));
-    } else if (element is MemberEntity) {
-      constants.addAll(elementEnvironment.getMemberMetadata(element));
-    } else if (element is TypedefEntity) {
-      constants.addAll(elementEnvironment.getTypedefMetadata(element));
-    }
+    collectConstantsFromMetadata(element, constants);
 
     if (element is FunctionEntity) {
       _collectTypeDependencies(
@@ -264,6 +257,13 @@
     // they are processed as part of the class.
   }
 
+  /// Extract the set of constants that are used in annotations of [element].
+  ///
+  /// If the underlying system doesn't support mirrors, then no constants are
+  /// added.
+  void collectConstantsFromMetadata(
+      Entity element, Set<ConstantValue> constants);
+
   /// Extract the set of constants that are used in the body of [element].
   void collectConstantsInBody(Entity element, Set<ConstantValue> constants);
 
@@ -688,10 +688,14 @@
 
     _elementToSet = null;
     _constantToSet = null;
+    cleanup();
     return new OutputUnitData(this.isProgramSplit, this.mainOutputUnit,
         entityMap, constantMap, importSets);
   }
 
+  /// Frees up strategy-specific temporary data.
+  void cleanup() {}
+
   void beforeResolution(LibraryEntity mainLibrary) {
     if (mainLibrary == null) return;
     for (LibraryEntity library in compiler.libraryLoader.libraries) {
diff --git a/pkg/compiler/lib/src/elements/common.dart b/pkg/compiler/lib/src/elements/common.dart
index f2ec630..6990e6a 100644
--- a/pkg/compiler/lib/src/elements/common.dart
+++ b/pkg/compiler/lib/src/elements/common.dart
@@ -572,7 +572,7 @@
         positionalParameters = requiredParameters + optionalParameterCount;
       }
       _parameterStructure = new ParameterStructure(
-          requiredParameters, positionalParameters, namedParameters);
+          requiredParameters, positionalParameters, namedParameters, 0);
     }
     return _parameterStructure;
   }
diff --git a/pkg/compiler/lib/src/elements/entities.dart b/pkg/compiler/lib/src/elements/entities.dart
index ad76577..1e6207e 100644
--- a/pkg/compiler/lib/src/elements/entities.dart
+++ b/pkg/compiler/lib/src/elements/entities.dart
@@ -257,12 +257,15 @@
   /// The named parameters sorted alphabetically.
   final List<String> namedParameters;
 
-  const ParameterStructure(
-      this.requiredParameters, this.positionalParameters, this.namedParameters);
+  /// The number of type parameters.
+  final int typeParameters;
 
-  const ParameterStructure.getter() : this(0, 0, const <String>[]);
+  const ParameterStructure(this.requiredParameters, this.positionalParameters,
+      this.namedParameters, this.typeParameters);
 
-  const ParameterStructure.setter() : this(1, 1, const <String>[]);
+  const ParameterStructure.getter() : this(0, 0, const <String>[], 0);
+
+  const ParameterStructure.setter() : this(1, 1, const <String>[], 0);
 
   /// The number of optional parameters (positional or named).
   int get optionalParameters =>
@@ -274,20 +277,23 @@
   /// Returns the [CallStructure] corresponding to a call site passing all
   /// parameters both required and optional.
   CallStructure get callStructure {
-    return new CallStructure(
-        positionalParameters + namedParameters.length, namedParameters);
+    return new CallStructure(positionalParameters + namedParameters.length,
+        namedParameters, typeParameters);
   }
 
   int get hashCode => Hashing.listHash(
       namedParameters,
       Hashing.objectHash(
-          positionalParameters, Hashing.objectHash(requiredParameters)));
+          positionalParameters,
+          Hashing.objectHash(
+              requiredParameters, Hashing.objectHash(typeParameters))));
 
   bool operator ==(other) {
     if (identical(this, other)) return true;
     if (other is! ParameterStructure) return false;
     if (requiredParameters != other.requiredParameters ||
         positionalParameters != other.positionalParameters ||
+        typeParameters != other.typeParameters ||
         namedParameters.length != other.namedParameters.length) {
       return false;
     }
@@ -304,7 +310,8 @@
     sb.write('ParameterStructure(');
     sb.write('requiredParameters=$requiredParameters,');
     sb.write('positionalParameters=$positionalParameters,');
-    sb.write('namedParameters={${namedParameters.join(',')}})');
+    sb.write('namedParameters={${namedParameters.join(',')}},');
+    sb.write('typeParameters=$typeParameters)');
     return sb.toString();
   }
 }
diff --git a/pkg/compiler/lib/src/elements/resolution_types.dart b/pkg/compiler/lib/src/elements/resolution_types.dart
index 9058e47..8df0252 100644
--- a/pkg/compiler/lib/src/elements/resolution_types.dart
+++ b/pkg/compiler/lib/src/elements/resolution_types.dart
@@ -129,6 +129,9 @@
   /// Is [: true :] if this type is a type variable.
   bool get isTypeVariable => kind == ResolutionTypeKind.TYPE_VARIABLE;
 
+  @override
+  bool get isFunctionTypeVariable => false;
+
   /// Is [: true :] if this type is a malformed type.
   bool get isMalformed => false;
 
@@ -690,6 +693,14 @@
     assert(namedParameters.length == namedParameterTypes.length);
   }
 
+  @override
+  final List<FunctionTypeVariable> typeVariables =
+      const <FunctionTypeVariable>[];
+
+  FunctionType instantiate(List<DartType> arguments) {
+    throw new UnsupportedError("ResolutionFunctionType.instantiate");
+  }
+
   ResolutionTypeKind get kind => ResolutionTypeKind.FUNCTION;
 
   ResolutionDartType getNamedParameterType(String name) {
diff --git a/pkg/compiler/lib/src/elements/types.dart b/pkg/compiler/lib/src/elements/types.dart
index 5deca06..d0d7896 100644
--- a/pkg/compiler/lib/src/elements/types.dart
+++ b/pkg/compiler/lib/src/elements/types.dart
@@ -58,6 +58,12 @@
   /// Is `true` if this type is a type variable.
   bool get isTypeVariable => false;
 
+  /// Is `true` if this type is a type variable declared on a function type
+  ///
+  /// For instance `T` in
+  ///     void Function<T>(T t)
+  bool get isFunctionTypeVariable => false;
+
   /// Is `true` if this type is a malformed type.
   bool get isMalformed => false;
 
@@ -81,6 +87,39 @@
 
   /// Calls the visit method on [visitor] corresponding to this type.
   R accept<R, A>(DartTypeVisitor<R, A> visitor, A argument);
+
+  bool _equals(DartType other, _Assumptions assumptions);
+}
+
+/// Pairs of [FunctionTypeVariable]s that are currently assumed to be equivalent.
+///
+/// This is used to compute the equivalence relation on types coinductively.
+class _Assumptions {
+  Map<FunctionTypeVariable, Set<FunctionTypeVariable>> _assumptionMap =
+      <FunctionTypeVariable, Set<FunctionTypeVariable>>{};
+
+  /// Assume that [a] and [b] are equivalent.
+  void assume(FunctionTypeVariable a, FunctionTypeVariable b) {
+    _assumptionMap
+        .putIfAbsent(a, () => new Set<FunctionTypeVariable>.identity())
+        .add(b);
+  }
+
+  /// Remove the assumption that [a] and [b] are equivalent.
+  void forget(FunctionTypeVariable a, FunctionTypeVariable b) {
+    Set<FunctionTypeVariable> set = _assumptionMap[a];
+    if (set != null) {
+      set.remove(b);
+      if (set.isEmpty) {
+        _assumptionMap.remove(a);
+      }
+    }
+  }
+
+  /// Returns `true` if [a] and [b] are assumed to be equivalent.
+  bool isAssumed(FunctionTypeVariable a, FunctionTypeVariable b) {
+    return _assumptionMap[a].contains(b);
+  }
 }
 
 class InterfaceType extends DartType {
@@ -138,9 +177,20 @@
   }
 
   bool operator ==(other) {
+    if (identical(this, other)) return true;
     if (other is! InterfaceType) return false;
+    return _equals(other, null);
+  }
+
+  bool _equals(DartType other, _Assumptions assumptions) {
+    if (identical(this, other)) return true;
+    if (other is! InterfaceType) return false;
+    return _equalsInternal(other, assumptions);
+  }
+
+  bool _equalsInternal(InterfaceType other, _Assumptions assumptions) {
     return identical(element, other.element) &&
-        equalElements(typeArguments, other.typeArguments);
+        _equalTypes(typeArguments, other.typeArguments, assumptions);
   }
 
   String toString() {
@@ -217,9 +267,20 @@
   }
 
   bool operator ==(other) {
+    if (identical(this, other)) return true;
     if (other is! TypedefType) return false;
+    return _equalsInternal(other, null);
+  }
+
+  bool _equals(DartType other, _Assumptions assumptions) {
+    if (identical(this, other)) return true;
+    if (other is! TypedefType) return false;
+    return _equalsInternal(other, assumptions);
+  }
+
+  bool _equalsInternal(TypedefType other, _Assumptions assumptions) {
     return identical(element, other.element) &&
-        equalElements(typeArguments, other.typeArguments);
+        _equalTypes(typeArguments, other.typeArguments, assumptions);
   }
 
   String toString() {
@@ -293,9 +354,76 @@
     return identical(other.element, element);
   }
 
+  @override
+  bool _equals(DartType other, _Assumptions assumptions) {
+    if (other is TypeVariableType) {
+      return identical(other.element, element);
+    }
+    return false;
+  }
+
   String toString() => '${element.typeDeclaration.name}.${element.name}';
 }
 
+/// A type variable declared on a function type.
+///
+/// For instance `T` in
+///     void Function<T>(T t)
+///
+/// Such a type variable is different from a [TypeVariableType] because it
+/// doesn't have a unique identity; is is equal to any other
+/// [FunctionTypeVariable] used similarly in another structurally equivalent
+/// function type.
+class FunctionTypeVariable extends DartType {
+  /// The index of this type within the type variables of the declaring function
+  /// type.
+  final int index;
+
+  /// The bound of this existential type.
+  final DartType bound;
+
+  FunctionTypeVariable(this.index, this.bound);
+
+  @override
+  bool get isFunctionTypeVariable => true;
+
+  DartType subst(List<DartType> arguments, List<DartType> parameters) {
+    assert(arguments.length == parameters.length);
+    if (parameters.isEmpty) {
+      // Return fast on empty substitutions.
+      return this;
+    }
+    int index = parameters.indexOf(this);
+    if (index != -1) {
+      return arguments[index];
+    }
+    // The existential type was not substituted.
+    return this;
+  }
+
+  int get hashCode => index.hashCode * 19;
+
+  bool operator ==(other) {
+    if (identical(this, other)) return true;
+    if (other is! FunctionTypeVariable) return false;
+    return _equals(other, null);
+  }
+
+  @override
+  bool _equals(DartType other, _Assumptions assumptions) {
+    if (identical(this, other)) return true;
+    if (other is! FunctionTypeVariable) return false;
+    if (assumptions != null) return assumptions.isAssumed(this, other);
+    return false;
+  }
+
+  @override
+  R accept<R, A>(DartTypeVisitor<R, A> visitor, A argument) =>
+      visitor.visitFunctionTypeVariable(this, argument);
+
+  String toString() => '#${new String.fromCharCode(0x41 + index)}';
+}
+
 class VoidType extends DartType {
   const VoidType();
 
@@ -312,6 +440,11 @@
 
   int get hashCode => 6007;
 
+  @override
+  bool _equals(DartType other, _Assumptions assumptions) {
+    return identical(this, other);
+  }
+
   String toString() => 'void';
 }
 
@@ -335,6 +468,11 @@
 
   int get hashCode => 91;
 
+  @override
+  bool _equals(DartType other, _Assumptions assumptions) {
+    return identical(this, other);
+  }
+
   String toString() => 'dynamic';
 }
 
@@ -350,12 +488,15 @@
   /// [namedParameters].
   final List<DartType> namedParameterTypes;
 
+  final List<FunctionTypeVariable> typeVariables;
+
   FunctionType(
       this.returnType,
       this.parameterTypes,
       this.optionalParameterTypes,
       this.namedParameters,
-      this.namedParameterTypes);
+      this.namedParameterTypes,
+      this.typeVariables);
 
   bool get containsTypeVariables {
     return returnType.containsTypeVariables ||
@@ -393,14 +534,45 @@
             !identical(namedParameterTypes, newNamedParameterTypes))) {
       changed = true;
     }
+    List<FunctionTypeVariable> newTypeVariables;
+    if (typeVariables.isNotEmpty) {
+      if (parameters == typeVariables) {
+        newTypeVariables = const <FunctionTypeVariable>[];
+        changed = true;
+      } else {
+        int index = 0;
+        for (FunctionTypeVariable typeVariable in typeVariables) {
+          DartType newBound = typeVariable.bound.subst(arguments, parameters);
+          if (!identical(typeVariable.bound, newBound)) {
+            newTypeVariables ??= typeVariables.sublist(0, index);
+            changed = true;
+          } else {
+            newTypeVariables?.add(typeVariable);
+          }
+          index++;
+        }
+        newTypeVariables ??= typeVariables;
+      }
+    } else {
+      newTypeVariables = typeVariables;
+    }
     if (changed) {
       // Create a new type only if necessary.
-      return new FunctionType(newReturnType, newParameterTypes,
-          newOptionalParameterTypes, namedParameters, newNamedParameterTypes);
+      return new FunctionType(
+          newReturnType,
+          newParameterTypes,
+          newOptionalParameterTypes,
+          namedParameters,
+          newNamedParameterTypes,
+          newTypeVariables);
     }
     return this;
   }
 
+  FunctionType instantiate(List<DartType> arguments) {
+    return subst(arguments, typeVariables);
+  }
+
   @override
   R accept<R, A>(DartTypeVisitor<R, A> visitor, A argument) =>
       visitor.visitFunctionType(this, argument);
@@ -423,18 +595,58 @@
   }
 
   bool operator ==(other) {
+    if (identical(this, other)) return true;
     if (other is! FunctionType) return false;
-    return returnType == other.returnType &&
-        equalElements(parameterTypes, other.parameterTypes) &&
-        equalElements(optionalParameterTypes, other.optionalParameterTypes) &&
+    return _equalsInternal(other, null);
+  }
+
+  bool _equals(DartType other, _Assumptions assumptions) {
+    if (identical(this, other)) return true;
+    if (other is! FunctionType) return false;
+    return _equalsInternal(other, assumptions);
+  }
+
+  bool _equalsInternal(FunctionType other, _Assumptions assumptions) {
+    if (typeVariables.isNotEmpty) {
+      if (typeVariables.length != other.typeVariables.length) return false;
+      assumptions ??= new _Assumptions();
+      for (int index = 0; index < typeVariables.length; index++) {
+        assumptions.assume(typeVariables[index], other.typeVariables[index]);
+      }
+    }
+    bool result = returnType == other.returnType &&
+        _equalTypes(parameterTypes, other.parameterTypes, assumptions) &&
+        _equalTypes(optionalParameterTypes, other.optionalParameterTypes,
+            assumptions) &&
         equalElements(namedParameters, other.namedParameters) &&
-        equalElements(namedParameterTypes, other.namedParameterTypes);
+        _equalTypes(
+            namedParameterTypes, other.namedParameterTypes, assumptions);
+    if (typeVariables.isNotEmpty) {
+      for (int index = 0; index < typeVariables.length; index++) {
+        assumptions.forget(typeVariables[index], other.typeVariables[index]);
+      }
+    }
+    return result;
   }
 
   String toString() {
     StringBuffer sb = new StringBuffer();
     sb.write(returnType);
-    sb.write(' Function(');
+    sb.write(' Function');
+    if (typeVariables.isNotEmpty) {
+      sb.write('<');
+      bool needsComma = false;
+      // TODO(johnniwinther): Include bounds.
+      for (FunctionTypeVariable typeVariable in typeVariables) {
+        if (needsComma) {
+          sb.write(',');
+        }
+        sb.write(typeVariable);
+        needsComma = true;
+      }
+      sb.write('>');
+    }
+    sb.write('(');
     bool needsComma = false;
     for (DartType parameterType in parameterTypes) {
       if (needsComma) {
@@ -501,6 +713,16 @@
   return changed ? result : types;
 }
 
+bool _equalTypes(List<DartType> a, List<DartType> b, _Assumptions assumptions) {
+  if (a.length != b.length) return false;
+  for (int index = 0; index < a.length; index++) {
+    if (!a[index]._equals(b[index], assumptions)) {
+      return false;
+    }
+  }
+  return true;
+}
+
 abstract class DartTypeVisitor<R, A> {
   const DartTypeVisitor();
 
@@ -510,6 +732,10 @@
 
   R visitTypeVariableType(covariant TypeVariableType type, A argument) => null;
 
+  R visitFunctionTypeVariable(
+          covariant FunctionTypeVariable type, A argument) =>
+      null;
+
   R visitFunctionType(covariant FunctionType type, A argument) => null;
 
   R visitInterfaceType(covariant InterfaceType type, A argument) => null;
@@ -533,6 +759,11 @@
       visitType(type, argument);
 
   @override
+  R visitFunctionTypeVariable(
+          covariant FunctionTypeVariable type, A argument) =>
+      visitType(type, argument);
+
+  @override
   R visitFunctionType(covariant FunctionType type, A argument) =>
       visitType(type, argument);
 
@@ -862,7 +1093,7 @@
   /// Returns [type] as an instance of [cls] or `null` if [type] is not a
   /// subtype of [cls].
   ///
-  /// For instance `asInstanceOf(List<String>, Iterable) = Iterable<String>`.
+  /// For example: `asInstanceOf(List<String>, Iterable) = Iterable<String>`.
   InterfaceType asInstanceOf(InterfaceType type, ClassEntity cls);
 
   /// Return [base] where the type variable of `context.element` are replaced
diff --git a/pkg/compiler/lib/src/js_backend/backend.dart b/pkg/compiler/lib/src/js_backend/backend.dart
index a901494..35913d3 100644
--- a/pkg/compiler/lib/src/js_backend/backend.dart
+++ b/pkg/compiler/lib/src/js_backend/backend.dart
@@ -324,8 +324,9 @@
 
   FrontendStrategy get frontendStrategy => compiler.frontendStrategy;
 
-  /// Returns true if the backend supports reflection.
-  bool get supportsReflection => emitter.supportsReflection;
+  /// Returns true if the backend supports reflection and this isn't Dart 2.
+  bool get supportsReflection =>
+      emitter.supportsReflection && !compiler.options.useKernel;
 
   FunctionCompiler functionCompiler;
 
diff --git a/pkg/compiler/lib/src/js_backend/runtime_types.dart b/pkg/compiler/lib/src/js_backend/runtime_types.dart
index 72d0a4f..5f1be34 100644
--- a/pkg/compiler/lib/src/js_backend/runtime_types.dart
+++ b/pkg/compiler/lib/src/js_backend/runtime_types.dart
@@ -1014,6 +1014,13 @@
     return onVariable(type);
   }
 
+  jsAst.Expression visitFunctionTypeVariable(
+      FunctionTypeVariable type, Emitter emitter) {
+    // TODO(johnniwinther): Create a runtime representation for existential
+    // types.
+    return getDynamicValue();
+  }
+
   jsAst.Expression visitDynamicType(DynamicType type, Emitter emitter) {
     return getDynamicValue();
   }
diff --git a/pkg/compiler/lib/src/js_model/elements.dart b/pkg/compiler/lib/src/js_model/elements.dart
index 14d77cb..4229b83 100644
--- a/pkg/compiler/lib/src/js_model/elements.dart
+++ b/pkg/compiler/lib/src/js_model/elements.dart
@@ -261,7 +261,8 @@
         visitList(type.parameterTypes, converter),
         visitList(type.optionalParameterTypes, converter),
         type.namedParameters,
-        visitList(type.namedParameterTypes, converter));
+        visitList(type.namedParameterTypes, converter),
+        type.typeVariables);
   }
 
   @override
@@ -271,6 +272,12 @@
   }
 
   @override
+  DartType visitFunctionTypeVariable(
+      FunctionTypeVariable type, EntityConverter converter) {
+    return type;
+  }
+
+  @override
   DartType visitVoidType(VoidType type, EntityConverter converter) {
     return const VoidType();
   }
diff --git a/pkg/compiler/lib/src/js_model/js_strategy.dart b/pkg/compiler/lib/src/js_model/js_strategy.dart
index 1eba154..4d56126 100644
--- a/pkg/compiler/lib/src/js_model/js_strategy.dart
+++ b/pkg/compiler/lib/src/js_model/js_strategy.dart
@@ -84,30 +84,42 @@
   OutputUnitData convertOutputUnitData(OutputUnitData data) {
     JsToFrontendMapImpl map = new JsToFrontendMapImpl(_elementMap);
 
-    // TODO(sigmund): make this more flexible to support scenarios where we have
-    // a 1-n mapping (a k-entity that maps to multiple j-entities).
     Entity toBackendEntity(Entity entity) {
       if (entity is ClassEntity) return map.toBackendClass(entity);
       if (entity is MemberEntity) return map.toBackendMember(entity);
       if (entity is TypeVariableEntity) {
         return map.toBackendTypeVariable(entity);
       }
-      if (entity is Local) {
-        // TODO(sigmund): ensure we don't store locals in OuputUnitData
-        return entity;
-      }
       assert(
           entity is LibraryEntity, 'unexpected entity ${entity.runtimeType}');
       return map.toBackendLibrary(entity);
     }
 
+    // Convert a front-end map containing K-entities keys to a backend map using
+    // J-entities as keys.
+    Map<Entity, OutputUnit> convertEntityMap(Map<Entity, OutputUnit> input) {
+      var result = <Entity, OutputUnit>{};
+      input.forEach((Entity entity, OutputUnit unit) {
+        // Closures have both a class and a call-method, we ensure both are
+        // included in the corresponding output unit.
+        if (entity is KLocalFunction) {
+          var closureInfo = _closureDataLookup.getClosureInfo(entity.node);
+          result[closureInfo.closureClassEntity] = unit;
+          result[closureInfo.callMethod] = unit;
+        } else {
+          result[toBackendEntity(entity)] = unit;
+        }
+      });
+      return result;
+    }
+
     ConstantValue toBackendConstant(ConstantValue constant) {
       return constant.accept(new ConstantConverter(toBackendEntity), null);
     }
 
     return new OutputUnitData.from(
         data,
-        (m) => convertMap<Entity, OutputUnit>(m, toBackendEntity, (v) => v),
+        convertEntityMap,
         (m) => convertMap<ConstantValue, OutputUnit>(
             m, toBackendConstant, (v) => v));
   }
diff --git a/pkg/compiler/lib/src/kernel/deferred_load.dart b/pkg/compiler/lib/src/kernel/deferred_load.dart
index 3111172..5fc4f97 100644
--- a/pkg/compiler/lib/src/kernel/deferred_load.dart
+++ b/pkg/compiler/lib/src/kernel/deferred_load.dart
@@ -15,6 +15,8 @@
 
 class KernelDeferredLoadTask extends DeferredLoadTask {
   KernelToElementMapForImpact _elementMap;
+  Map<ir.Library, Set<ir.Member>> _additionalExportsSets =
+      <ir.Library, Set<ir.Member>>{};
 
   KernelDeferredLoadTask(Compiler compiler, this._elementMap) : super(compiler);
 
@@ -28,8 +30,7 @@
       if (dependency.isExport) continue;
       if (!_isVisible(dependency.combinators, member.name.name)) continue;
       if (member.enclosingLibrary == dependency.targetLibrary ||
-          dependency.targetLibrary.additionalExports
-              .any((ir.Reference ref) => ref.node == member)) {
+          additionalExports(dependency.targetLibrary).contains(member)) {
         imports.add(_elementMap.getImport(dependency));
       }
     }
@@ -42,10 +43,30 @@
   }
 
   @override
+  void collectConstantsFromMetadata(
+      Entity element, Set<ConstantValue> constants) {
+    // Nothing to do. Kernel-pipeline doesn't support mirrors, so we don't need
+    // to track any constants from meta-data.
+  }
+
+  @override
   void collectConstantsInBody(
       covariant MemberEntity element, Set<ConstantValue> constants) {
     ir.Member node = _elementMap.getMemberDefinition(element).node;
-    node.accept(new ConstantCollector(_elementMap, constants));
+
+    // Fetch the internal node in order to skip annotations on the member.
+    // TODO(sigmund): replace this pattern when the kernel-ast provides a better
+    // way to skip annotations (issue 31565).
+    var visitor = new ConstantCollector(_elementMap, constants);
+    if (node is ir.Field) {
+      node.initializer?.accept(visitor);
+      return;
+    }
+
+    if (node is ir.Constructor) {
+      node.initializers.forEach((i) => i.accept(visitor));
+    }
+    node.function?.accept(visitor);
   }
 
   /// Adds extra dependencies coming from mirror usage.
@@ -63,6 +84,16 @@
     throw new UnsupportedError(
         "KernelDeferredLoadTask.addMirrorElementsForLibrary");
   }
+
+  Set<ir.Member> additionalExports(ir.Library library) {
+    return _additionalExportsSets[library] ??= new Set<ir.Member>.from(
+        library.additionalExports.map((ir.Reference ref) => ref.node));
+  }
+
+  @override
+  void cleanup() {
+    _additionalExportsSets = null;
+  }
 }
 
 /// Returns whether [name] would be visible according to the given list of
diff --git a/pkg/compiler/lib/src/kernel/element_map_impl.dart b/pkg/compiler/lib/src/kernel/element_map_impl.dart
index 9088db4..951c0da 100644
--- a/pkg/compiler/lib/src/kernel/element_map_impl.dart
+++ b/pkg/compiler/lib/src/kernel/element_map_impl.dart
@@ -87,8 +87,8 @@
       new EntityDataEnvMap<IndexedClass, ClassData, ClassEnv>();
   final EntityDataMap<IndexedMember, MemberData> _members =
       new EntityDataMap<IndexedMember, MemberData>();
-  final EntityMap<IndexedTypeVariable> _typeVariables =
-      new EntityMap<IndexedTypeVariable>();
+  final EntityDataMap<IndexedTypeVariable, TypeVariableData> _typeVariables =
+      new EntityDataMap<IndexedTypeVariable, TypeVariableData>();
   final EntityDataMap<IndexedTypedef, TypedefData> _typedefs =
       new EntityDataMap<IndexedTypedef, TypedefData>();
 
@@ -437,8 +437,32 @@
       namedParameters.add(variable.name);
       namedParameterTypes.add(getDartType(variable.type));
     }
+    List<FunctionTypeVariable> typeVariables;
+    if (node.typeParameters.isNotEmpty &&
+        DartTypeConverter.enableFunctionTypeVariables) {
+      List<DartType> typeParameters = <DartType>[];
+      for (ir.TypeParameter typeParameter in node.typeParameters) {
+        typeParameters
+            .add(getDartType(new ir.TypeParameterType(typeParameter)));
+      }
+      // TODO(johnniwinther): Support bounds.
+      typeVariables = new List<FunctionTypeVariable>.generate(
+          node.typeParameters.length,
+          (int index) => new FunctionTypeVariable(index, const DynamicType()));
+
+      DartType subst(DartType type) {
+        return type.subst(typeVariables, typeParameters);
+      }
+
+      parameterTypes = parameterTypes.map(subst).toList();
+      optionalParameterTypes = optionalParameterTypes.map(subst).toList();
+      namedParameterTypes = namedParameterTypes.map(subst).toList();
+    } else {
+      typeVariables = const <FunctionTypeVariable>[];
+    }
+
     return new FunctionType(returnType, parameterTypes, optionalParameterTypes,
-        namedParameters, namedParameterTypes);
+        namedParameters, namedParameterTypes, typeVariables);
   }
 
   @override
@@ -569,7 +593,9 @@
           List<DartType> namedParameterTypes =
               new List.filled(namedParameters.length, dynamic);
           data.callType = new FunctionType(dynamic, requiredParameterTypes,
-              optionalParameterTypes, namedParameters, namedParameterTypes);
+              optionalParameterTypes, namedParameters, namedParameterTypes,
+              // TODO(johnniwinther): Generate existential types here.
+              const <FunctionTypeVariable>[]);
         } else {
           // The function type is not valid.
           data.callType = const DynamicType();
@@ -620,6 +646,12 @@
     return data.getFieldType(this);
   }
 
+  DartType _getTypeVariableBound(IndexedTypeVariable typeVariable) {
+    assert(checkFamily(typeVariable));
+    TypeVariableData data = _typeVariables.getData(typeVariable);
+    return data.getBound(this);
+  }
+
   ClassEntity _getAppliedMixin(IndexedClass cls) {
     assert(checkFamily(cls));
     ClassData data = _classes.getData(cls);
@@ -763,7 +795,7 @@
   EntityDataEnvMap<IndexedLibrary, LibraryData, LibraryEnv> get _libraries;
   EntityDataEnvMap<IndexedClass, ClassData, ClassEnv> get _classes;
   EntityDataMap<IndexedMember, MemberData> get _members;
-  EntityMap<IndexedTypeVariable> get _typeVariables;
+  EntityDataMap<IndexedTypeVariable, TypeVariableData> get _typeVariables;
   EntityDataMap<IndexedTypedef, TypedefData> get _typedefs;
 
   Map<ir.Library, IndexedLibrary> _libraryMap = <ir.Library, IndexedLibrary>{};
@@ -838,8 +870,9 @@
       if (node.parent is ir.Class) {
         ir.Class cls = node.parent;
         int index = cls.typeParameters.indexOf(node);
-        return _typeVariables
-            .register(createTypeVariable(_getClass(cls), node.name, index));
+        return _typeVariables.register(
+            createTypeVariable(_getClass(cls), node.name, index),
+            new TypeVariableData(node));
       }
       if (node.parent is ir.FunctionNode) {
         ir.FunctionNode func = node.parent;
@@ -856,7 +889,8 @@
             return _getTypeVariable(cls.typeParameters[index]);
           } else {
             return _typeVariables.register(
-                createTypeVariable(_getMethod(procedure), node.name, index));
+                createTypeVariable(_getMethod(procedure), node.name, index),
+                new TypeVariableData(node));
           }
         }
       }
@@ -975,10 +1009,14 @@
     // TODO(johnniwinther): Cache the computed function type.
     int requiredParameters = node.requiredParameterCount;
     int positionalParameters = node.positionalParameters.length;
+    int typeParameters = node.typeParameters.length;
     List<String> namedParameters =
         node.namedParameters.map((p) => p.name).toList()..sort();
     return new ParameterStructure(
-        requiredParameters, positionalParameters, namedParameters);
+        requiredParameters,
+        positionalParameters,
+        namedParameters,
+        DartTypeConverter.enableFunctionTypeVariables ? typeParameters : 0);
   }
 
   IndexedLibrary createLibrary(String name, Uri canonicalUri);
@@ -1277,8 +1315,7 @@
 
   @override
   DartType getTypeVariableBound(TypeVariableEntity typeVariable) {
-    throw new UnimplementedError(
-        'KernelElementEnvironment.getTypeVariableBound');
+    return elementMap._getTypeVariableBound(typeVariable);
   }
 
   @override
@@ -1497,9 +1534,11 @@
 
 /// Visitor that converts kernel dart types into [DartType].
 class DartTypeConverter extends ir.DartTypeVisitor<DartType> {
+  static bool enableFunctionTypeVariables = false;
+
   final KernelToElementMapBase elementMap;
-  final Set<ir.TypeParameter> currentFunctionTypeParameters =
-      new Set<ir.TypeParameter>();
+  final Map<ir.TypeParameter, DartType> currentFunctionTypeParameters =
+      <ir.TypeParameter, DartType>{};
   bool topLevel = true;
 
   DartTypeConverter(this.elementMap);
@@ -1528,10 +1567,9 @@
 
   @override
   DartType visitTypeParameterType(ir.TypeParameterType node) {
-    if (currentFunctionTypeParameters.contains(node.parameter)) {
-      // TODO(johnniwinther): Map function type parameters to a new
-      // [FunctionTypeParameter] type.
-      return const DynamicType();
+    DartType typeParameter = currentFunctionTypeParameters[node.parameter];
+    if (typeParameter != null) {
+      return typeParameter;
     }
     if (node.parameter.parent is ir.FunctionNode &&
         node.parameter.parent.parent is ir.Procedure) {
@@ -1547,7 +1585,21 @@
 
   @override
   DartType visitFunctionType(ir.FunctionType node) {
-    currentFunctionTypeParameters.addAll(node.typeParameters);
+    int index = 0;
+    List<FunctionTypeVariable> typeVariables;
+    for (ir.TypeParameter typeParameter in node.typeParameters) {
+      if (enableFunctionTypeVariables) {
+        // TODO(johnniwinther): Support bounds.
+        FunctionTypeVariable typeVariable =
+            new FunctionTypeVariable(index, const DynamicType());
+        currentFunctionTypeParameters[typeParameter] = typeVariable;
+        typeVariables ??= <FunctionTypeVariable>[];
+        typeVariables.add(typeVariable);
+      } else {
+        currentFunctionTypeParameters[typeParameter] = const DynamicType();
+      }
+      index++;
+    }
     FunctionType type = new FunctionType(
         visitType(node.returnType),
         visitTypes(node.positionalParameters
@@ -1557,8 +1609,11 @@
             .skip(node.requiredParameterCount)
             .toList()),
         node.namedParameters.map((n) => n.name).toList(),
-        node.namedParameters.map((n) => visitType(n.type)).toList());
-    currentFunctionTypeParameters.removeAll(node.typeParameters);
+        node.namedParameters.map((n) => visitType(n.type)).toList(),
+        typeVariables ?? const <FunctionTypeVariable>[]);
+    for (ir.TypeParameter typeParameter in node.typeParameters) {
+      currentFunctionTypeParameters.remove(typeParameter);
+    }
     return type;
   }
 
@@ -2046,6 +2101,8 @@
         typeVariableIndex++) {
       IndexedTypeVariable oldTypeVariable =
           _elementMap._typeVariables.getEntity(typeVariableIndex);
+      TypeVariableData oldTypeVariableData =
+          _elementMap._typeVariables.getData(oldTypeVariable);
       Entity newTypeDeclaration;
       if (oldTypeVariable.typeDeclaration is ClassEntity) {
         IndexedClass cls = oldTypeVariable.typeDeclaration;
@@ -2056,7 +2113,8 @@
       }
       IndexedTypeVariable newTypeVariable = createTypeVariable(
           newTypeDeclaration, oldTypeVariable.name, oldTypeVariable.index);
-      _typeVariables.register<IndexedTypeVariable>(newTypeVariable);
+      _typeVariables.register<IndexedTypeVariable, TypeVariableData>(
+          newTypeVariable, oldTypeVariableData.copy());
       assert(newTypeVariable.typeVariableIndex ==
           oldTypeVariable.typeVariableIndex);
     }
diff --git a/pkg/compiler/lib/src/kernel/element_map_mixins.dart b/pkg/compiler/lib/src/kernel/element_map_mixins.dart
index 9954ca1..aa25d5e 100644
--- a/pkg/compiler/lib/src/kernel/element_map_mixins.dart
+++ b/pkg/compiler/lib/src/kernel/element_map_mixins.dart
@@ -23,6 +23,7 @@
 import '../universe/call_structure.dart';
 import '../universe/selector.dart';
 import 'element_map.dart';
+import 'element_map_impl.dart';
 import 'kernel_debug.dart';
 
 abstract class KernelToElementMapBaseMixin implements KernelToElementMap {
@@ -43,7 +44,12 @@
   CallStructure getCallStructure(ir.Arguments arguments) {
     int argumentCount = arguments.positional.length + arguments.named.length;
     List<String> namedArguments = arguments.named.map((e) => e.name).toList();
-    return new CallStructure(argumentCount, namedArguments);
+    return new CallStructure(
+        argumentCount,
+        namedArguments,
+        DartTypeConverter.enableFunctionTypeVariables
+            ? arguments.types.length
+            : 0);
   }
 
   @override
diff --git a/pkg/compiler/lib/src/kernel/env.dart b/pkg/compiler/lib/src/kernel/env.dart
index cf03332..c987acc 100644
--- a/pkg/compiler/lib/src/kernel/env.dart
+++ b/pkg/compiler/lib/src/kernel/env.dart
@@ -751,3 +751,18 @@
 
   TypedefData(this.node, this.element, this.rawType);
 }
+
+class TypeVariableData {
+  final ir.TypeParameter node;
+  DartType _bound;
+
+  TypeVariableData(this.node);
+
+  DartType getBound(KernelToElementMap elementMap) {
+    return _bound ??= elementMap.getDartType(node.bound);
+  }
+
+  TypeVariableData copy() {
+    return new TypeVariableData(node);
+  }
+}
diff --git a/pkg/compiler/lib/src/kernel/kernel_strategy.dart b/pkg/compiler/lib/src/kernel/kernel_strategy.dart
index e18148c..76b19b4 100644
--- a/pkg/compiler/lib/src/kernel/kernel_strategy.dart
+++ b/pkg/compiler/lib/src/kernel/kernel_strategy.dart
@@ -49,6 +49,7 @@
 /// model from kernel IR nodes.
 class KernelFrontEndStrategy extends FrontendStrategyBase {
   CompilerOptions _options;
+  CompilerTask _compilerTask;
   KernelToElementMapForImpactImpl _elementMap;
 
   KernelAnnotationProcessor _annotationProcesser;
@@ -58,8 +59,13 @@
 
   fe.InitializedCompilerState initializedCompilerState;
 
-  KernelFrontEndStrategy(this._options, DiagnosticReporter reporter,
-      env.Environment environment, this.initializedCompilerState) {
+  KernelFrontEndStrategy(
+      this._compilerTask,
+      this._options,
+      DiagnosticReporter reporter,
+      env.Environment environment,
+      this.initializedCompilerState) {
+    assert(_compilerTask != null);
     _elementMap = new KernelToElementMapForImpactImpl(
         reporter, environment, this, _options);
   }
@@ -163,7 +169,7 @@
       NativeDataBuilder nativeDataBuilder,
       ImpactTransformer impactTransformer,
       Map<Entity, WorldImpact> impactCache) {
-    return new KernelWorkItemBuilder(elementMap, nativeBasicData,
+    return new KernelWorkItemBuilder(_compilerTask, elementMap, nativeBasicData,
         nativeDataBuilder, impactTransformer, closureModels, impactCache);
   }
 
@@ -178,6 +184,7 @@
 }
 
 class KernelWorkItemBuilder implements WorkItemBuilder {
+  final CompilerTask _compilerTask;
   final KernelToElementMapForImpactImpl _elementMap;
   final ImpactTransformer _impactTransformer;
   final NativeMemberResolver _nativeMemberResolver;
@@ -185,6 +192,7 @@
   final Map<Entity, WorldImpact> impactCache;
 
   KernelWorkItemBuilder(
+      this._compilerTask,
       this._elementMap,
       NativeBasicData nativeBasicData,
       NativeDataBuilder nativeDataBuilder,
@@ -196,12 +204,13 @@
 
   @override
   WorkItem createWorkItem(MemberEntity entity) {
-    return new KernelWorkItem(_elementMap, _impactTransformer,
+    return new KernelWorkItem(_compilerTask, _elementMap, _impactTransformer,
         _nativeMemberResolver, entity, closureModels, impactCache);
   }
 }
 
 class KernelWorkItem implements ResolutionWorkItem {
+  final CompilerTask _compilerTask;
   final KernelToElementMapForImpactImpl _elementMap;
   final ImpactTransformer _impactTransformer;
   final NativeMemberResolver _nativeMemberResolver;
@@ -210,6 +219,7 @@
   final Map<Entity, WorldImpact> impactCache;
 
   KernelWorkItem(
+      this._compilerTask,
       this._elementMap,
       this._impactTransformer,
       this._nativeMemberResolver,
@@ -219,18 +229,24 @@
 
   @override
   WorldImpact run() {
-    _nativeMemberResolver.resolveNativeMember(element);
-    ResolutionImpact impact = _elementMap.computeWorldImpact(element);
-    ScopeModel closureModel = _elementMap.computeScopeModel(element);
-    if (closureModel != null) {
-      closureModels[element] = closureModel;
-    }
-    WorldImpact worldImpact =
-        _impactTransformer.transformResolutionImpact(impact);
-    if (impactCache != null) {
-      impactCache[element] = impact;
-    }
-    return worldImpact;
+    return _compilerTask.measure(() {
+      _nativeMemberResolver.resolveNativeMember(element);
+      _compilerTask.measureSubtask('closures', () {
+        ScopeModel closureModel = _elementMap.computeScopeModel(element);
+        if (closureModel != null) {
+          closureModels[element] = closureModel;
+        }
+      });
+      return _compilerTask.measureSubtask('worldImpact', () {
+        ResolutionImpact impact = _elementMap.computeWorldImpact(element);
+        WorldImpact worldImpact =
+            _impactTransformer.transformResolutionImpact(impact);
+        if (impactCache != null) {
+          impactCache[element] = impact;
+        }
+        return worldImpact;
+      });
+    });
   }
 }
 
diff --git a/pkg/compiler/lib/src/kernel/types.dart b/pkg/compiler/lib/src/kernel/types.dart
index 8a46be3..d6ea085 100644
--- a/pkg/compiler/lib/src/kernel/types.dart
+++ b/pkg/compiler/lib/src/kernel/types.dart
@@ -68,10 +68,23 @@
 
   @override
   void checkTypeVariableBounds(
-      InterfaceType type,
+      InterfaceType instantiatedType,
       void checkTypeVariableBound(InterfaceType type, DartType typeArgument,
           TypeVariableType typeVariable, DartType bound)) {
-    throw new UnimplementedError('_KernelDartTypes.checkTypeVariableBounds');
+    InterfaceType declaredType = getThisType(instantiatedType.element);
+    List<DartType> typeArguments = instantiatedType.typeArguments;
+    List<DartType> typeVariables = declaredType.typeArguments;
+    assert(typeVariables.length == typeArguments.length);
+    for (int index = 0; index < typeArguments.length; index++) {
+      DartType typeArgument = typeArguments[index];
+      TypeVariableType typeVariable = typeVariables[index];
+      DartType bound = substByContext(
+          elementMap.elementEnvironment
+              .getTypeVariableBound(typeVariable.element),
+          instantiatedType);
+      checkTypeVariableBound(
+          instantiatedType, typeArgument, typeVariable, bound);
+    }
   }
 
   @override
@@ -112,13 +125,11 @@
 
   @override
   DartType getTypeVariableBound(TypeVariableEntity element) {
-    // TODO(redemption): Compute the bound.
-    return commonElements.objectType;
+    return elementMap.elementEnvironment.getTypeVariableBound(element);
   }
 
   @override
   FunctionType getCallType(InterfaceType type) {
-    // TODO(redemption): Compute the call type.
     return elementMap._getCallType(type);
   }
 
diff --git a/pkg/compiler/lib/src/resolution/deferred_load.dart b/pkg/compiler/lib/src/resolution/deferred_load.dart
index 86744d7..04e4fbf 100644
--- a/pkg/compiler/lib/src/resolution/deferred_load.dart
+++ b/pkg/compiler/lib/src/resolution/deferred_load.dart
@@ -127,6 +127,17 @@
     }
   }
 
+  @override
+  void collectConstantsFromMetadata(
+      covariant AstElement element, Set<ConstantValue> constants) {
+    for (MetadataAnnotation metadata in element.metadata) {
+      ConstantValue constant =
+          backend.constants.getConstantValueForMetadata(metadata);
+      if (constant != null) constants.add(constant);
+    }
+  }
+
+  @override
   void collectConstantsInBody(
       covariant AstElement element, Set<ConstantValue> constants) {
     if (element.resolvedAst.kind != ResolvedAstKind.PARSED) return;
diff --git a/pkg/compiler/lib/src/resolution/resolution_strategy.dart b/pkg/compiler/lib/src/resolution/resolution_strategy.dart
index 910773f..b47e1c6 100644
--- a/pkg/compiler/lib/src/resolution/resolution_strategy.dart
+++ b/pkg/compiler/lib/src/resolution/resolution_strategy.dart
@@ -629,6 +629,9 @@
             "${setter ? 'setter' : 'getter'}: '$name'.");
       }
     }
+    if (member is! MemberElement) {
+      member = null;
+    }
     if (member == null && required) {
       failedAt(
           member,
@@ -652,7 +655,10 @@
   @override
   ClassElement lookupClass(covariant LibraryElement library, String name,
       {bool required: false}) {
-    ClassElement cls = library.implementation.findLocal(name);
+    Element cls = library.implementation.findLocal(name);
+    if (cls is! ClassElement) {
+      cls = null;
+    }
     if (cls == null && required) {
       failedAt(
           library,
diff --git a/pkg/compiler/lib/src/serialization/equivalence.dart b/pkg/compiler/lib/src/serialization/equivalence.dart
index f30f7d9..bb7a800 100644
--- a/pkg/compiler/lib/src/serialization/equivalence.dart
+++ b/pkg/compiler/lib/src/serialization/equivalence.dart
@@ -717,6 +717,12 @@
       covariant ResolutionTypedefType other) {
     return visitGenericType(type, other);
   }
+
+  @override
+  bool visitFunctionTypeVariable(
+      FunctionTypeVariable type, ResolutionDartType other) {
+    throw new UnsupportedError("Function type variables are not supported.");
+  }
 }
 
 /// Visitor that checks for structural equivalence of [ConstantExpression]s.
diff --git a/pkg/compiler/lib/src/ssa/builder.dart b/pkg/compiler/lib/src/ssa/builder.dart
index 4ac1aa3..559e4fb 100644
--- a/pkg/compiler/lib/src/ssa/builder.dart
+++ b/pkg/compiler/lib/src/ssa/builder.dart
@@ -584,7 +584,8 @@
     }
 
     void doInlining() {
-      registry.registerStaticUse(new StaticUse.inlining(declaration));
+      registry
+          .registerStaticUse(new StaticUse.inlining(declaration, instanceType));
 
       // Add an explicit null check on the receiver before doing the
       // inlining. We use [element] to get the same name in the
@@ -6806,7 +6807,7 @@
   static const INLINING_NODES_INSIDE_LOOP_ARG_FACTOR = 4;
 
   bool seenReturn = false;
-  bool tooDifficult = false;
+  String tooDifficultReason;
   int nodeCount = 0;
   final int maxInliningNodes; // `null` for unbounded.
   final bool allowLoops;
@@ -6816,10 +6817,21 @@
   InlineWeeder._(this.elements, this.maxInliningNodes, this.allowLoops,
       this.enableUserAssertions);
 
+  bool get tooDifficult => tooDifficultReason != null;
+
   static bool canBeInlined(ResolvedAst resolvedAst, int maxInliningNodes,
       {bool allowLoops: false, bool enableUserAssertions: null}) {
+    return cannotBeInlinedReason(resolvedAst, maxInliningNodes,
+            allowLoops: allowLoops,
+            enableUserAssertions: enableUserAssertions) ==
+        null;
+  }
+
+  static String cannotBeInlinedReason(
+      ResolvedAst resolvedAst, int maxInliningNodes,
+      {bool allowLoops: false, bool enableUserAssertions: null}) {
     assert(enableUserAssertions is bool); // Ensure we passed it.
-    if (resolvedAst.elements.containsTryStatement) return false;
+    if (resolvedAst.elements.containsTryStatement) return 'try';
 
     InlineWeeder weeder = new InlineWeeder._(resolvedAst.elements,
         maxInliningNodes, allowLoops, enableUserAssertions);
@@ -6828,13 +6840,13 @@
     weeder.visit(functionExpression.initializers);
     weeder.visit(functionExpression.body);
     weeder.visit(functionExpression.asyncModifier);
-    return !weeder.tooDifficult;
+    return weeder.tooDifficultReason;
   }
 
   bool registerNode() {
     if (maxInliningNodes == null) return true;
     if (nodeCount++ > maxInliningNodes) {
-      tooDifficult = true;
+      tooDifficultReason = 'too many nodes';
       return false;
     } else {
       return true;
@@ -6848,7 +6860,7 @@
   void visitNode(ast.Node node) {
     if (!registerNode()) return;
     if (seenReturn) {
-      tooDifficult = true;
+      tooDifficultReason = 'code after return';
     } else {
       node.visitChildren(this);
     }
@@ -6864,18 +6876,18 @@
   @override
   void visitAsyncModifier(ast.AsyncModifier node) {
     if (node.isYielding || node.isAsynchronous) {
-      tooDifficult = true;
+      tooDifficultReason = 'async/await';
     }
   }
 
   void visitFunctionExpression(ast.Node node) {
     if (!registerNode()) return;
-    tooDifficult = true;
+    tooDifficultReason = 'closure';
   }
 
   void visitFunctionDeclaration(ast.Node node) {
     if (!registerNode()) return;
-    tooDifficult = true;
+    tooDifficultReason = 'closure';
   }
 
   void visitSend(ast.Send node) {
@@ -6896,12 +6908,14 @@
     // It's actually not difficult to inline a method with a loop, but
     // our measurements show that it's currently better to not inline a
     // method that contains a loop.
-    if (!allowLoops) tooDifficult = true;
+    if (!allowLoops) {
+      tooDifficultReason = 'loop';
+    }
   }
 
   void visitRedirectingFactoryBody(ast.RedirectingFactoryBody node) {
     if (!registerNode()) return;
-    tooDifficult = true;
+    tooDifficultReason = 'redirecting factory';
   }
 
   void visitConditional(ast.Conditional node) {
@@ -6934,13 +6948,13 @@
 
   void visitRethrow(ast.Rethrow node) {
     if (!registerNode()) return;
-    tooDifficult = true;
+    tooDifficultReason = 'rethrow';
   }
 
   void visitReturn(ast.Return node) {
     if (!registerNode()) return;
     if (seenReturn || identical(node.beginToken.stringValue, 'native')) {
-      tooDifficult = true;
+      tooDifficultReason = 'code after return';
       return;
     }
     node.visitChildren(this);
@@ -6952,7 +6966,7 @@
     // For now, we don't want to handle throw after a return even if
     // it is in an "if".
     if (seenReturn) {
-      tooDifficult = true;
+      tooDifficultReason = 'code after return';
     } else {
       node.visitChildren(this);
     }
diff --git a/pkg/compiler/lib/src/ssa/builder_kernel.dart b/pkg/compiler/lib/src/ssa/builder_kernel.dart
index 22975c1..8d4c2d4 100644
--- a/pkg/compiler/lib/src/ssa/builder_kernel.dart
+++ b/pkg/compiler/lib/src/ssa/builder_kernel.dart
@@ -402,8 +402,6 @@
     _addClassTypeVariablesIfNeeded(constructor);
     _potentiallyAddFunctionParameterTypeChecks(constructor.function);
 
-    // TODO(sra): Type parameter constraint checks.
-
     // [fieldValues] accumulates the field initializer values, which may be
     // overwritten by initializer-list initializers.
     Map<FieldEntity, HInstruction> fieldValues = <FieldEntity, HInstruction>{};
@@ -533,12 +531,19 @@
           }
         }
 
-        // TODO(redemption): Try to inline [body].
-        _invokeConstructorBody(
-            body,
-            bodyCallInputs,
-            _sourceInformationBuilder
-                .buildDeclaration(_elementMap.getMember(constructor)));
+        ConstructorBodyEntity constructorBody =
+            _elementMap.getConstructorBody(body);
+        if (!isCustomElement && // TODO(13836): Fix inlining.
+            _tryInlineMethod(constructorBody, null, null, bodyCallInputs,
+                constructor, sourceInformation)) {
+          pop();
+        } else {
+          _invokeConstructorBody(
+              body,
+              bodyCallInputs,
+              _sourceInformationBuilder
+                  .buildDeclaration(_elementMap.getMember(constructor)));
+        }
       });
     }
 
@@ -2925,11 +2930,29 @@
       isFixedList = isFixedListConstructorCall;
     }
 
+    InterfaceType instanceType = _elementMap.createInterfaceType(
+        invocation.target.enclosingClass, invocation.arguments.types);
+    if (_checkAllTypeVariableBounds(
+        function, instanceType, sourceInformation)) {
+      return;
+    }
+
     TypeMask resultType = typeMask;
 
     bool isJSArrayTypedConstructor =
         function == commonElements.jsArrayTypedConstructor;
 
+    _inferredTypeOfNewList(ir.StaticInvocation node) {
+      MemberEntity element = sourceElement is ConstructorBodyEntity
+          ? (sourceElement as ConstructorBodyEntity).constructor
+          : sourceElement;
+      ;
+      return globalInferenceResults
+              .resultOfMember(element)
+              .typeOfNewList(node) ??
+          commonMasks.dynamicType;
+    }
+
     if (isFixedListConstructorCall) {
       assert(arguments.length == 1);
       HInstruction lengthInput = arguments.first;
@@ -2945,10 +2968,9 @@
       }
       js.Template code = js.js.parseForeignJS('new Array(#)');
       var behavior = new native.NativeBehavior();
-      // TODO(redemption): Find the full type being created here,
-      // e.g. JSArray<Set<T>>, via 'computeEffectiveTargetType'.
-      var expectedType = closedWorld.elementEnvironment
-          .getRawType(_commonElements.jsArrayClass);
+
+      var expectedType =
+          _elementMap.getDartType(invocation.getStaticType(null));
       behavior.typesInstantiated.add(expectedType);
       behavior.typesReturned.add(expectedType);
 
@@ -2961,9 +2983,10 @@
         canThrow = false;
       }
 
-      // TODO(redemption): Pick up site-specific type inference type, which
-      // might be more precise, e.g. a container type.
-      resultType = commonMasks.fixedListType;
+      var inferredType = _inferredTypeOfNewList(invocation);
+      resultType = inferredType.containsAll(closedWorld)
+          ? commonMasks.fixedListType
+          : inferredType;
       HForeignCode foreign = new HForeignCode(code, resultType, arguments,
           nativeBehavior: behavior,
           throwBehavior: canThrow
@@ -2983,9 +3006,10 @@
       }
     } else if (isGrowableListConstructorCall) {
       push(buildLiteralList(<HInstruction>[]));
-      // TODO(sra): Pick up type inference type, which might be more precise,
-      // e.g. a container type.
-      resultType = commonMasks.growableListType;
+      var inferredType = _inferredTypeOfNewList(invocation);
+      resultType = inferredType.containsAll(closedWorld)
+          ? commonMasks.growableListType
+          : inferredType;
       stack.last.instructionType = resultType;
     } else if (isJSArrayTypedConstructor) {
       // TODO(sra): Instead of calling the identity-like factory constructor,
@@ -3001,11 +3025,10 @@
       if (closedWorld.rtiNeed.classNeedsRti(function.enclosingClass)) {
         _addTypeArguments(arguments, invocation.arguments, sourceInformation);
       }
-      InterfaceType type = _elementMap.createInterfaceType(
-          invocation.target.enclosingClass, invocation.arguments.types);
-      addImplicitInstantiation(type);
+      instanceType = localsHandler.substInContext(instanceType);
+      addImplicitInstantiation(instanceType);
       _pushStaticInvocation(function, arguments, typeMask,
-          sourceInformation: sourceInformation);
+          sourceInformation: sourceInformation, instanceType: instanceType);
     }
 
     HInstruction newInstance = stack.last;
@@ -3027,9 +3050,6 @@
       stack
           .add(_setListRuntimeTypeInfoIfNeeded(pop(), type, sourceInformation));
     }
-
-    // TODO(redemption): For redirecting factory constructors, check or trust
-    // the type.
   }
 
   void handleInvokeStaticForeign(
@@ -3510,9 +3530,7 @@
 
   void _pushStaticInvocation(
       MemberEntity target, List<HInstruction> arguments, TypeMask typeMask,
-      {SourceInformation sourceInformation,
-      // TODO(redemption): Pass instance type.
-      InterfaceType instanceType}) {
+      {SourceInformation sourceInformation, InterfaceType instanceType}) {
     // TODO(redemption): Pass current node if needed.
     if (_tryInlineMethod(target, null, null, arguments, null, sourceInformation,
         instanceType: instanceType)) {
@@ -3898,6 +3916,89 @@
         sourceInformation);
   }
 
+  /// In checked mode checks the [type] of [node] to be well-bounded.
+  /// Returns `true` if an error can be statically determined.
+  ///
+  /// We do this at the call site rather that in the constructor body so that we
+  /// can perform *static* analysis errors/warnings rather than only dynamic
+  /// ones from the type pararameters passed in to the constructors. This also
+  /// performs all checks for the instantiated class and all of its supertypes
+  /// (extended and inherited) at this single call site because interface type
+  /// variable constraints (when applicable) need to be checked but will not
+  /// have a constructor body that gets inlined to execute.
+  bool _checkAllTypeVariableBounds(ConstructorEntity constructor,
+      InterfaceType type, SourceInformation sourceInformation) {
+    if (!options.enableTypeAssertions) return false;
+
+    // This map keeps track of what checks we perform as we walk up the
+    // inheritance chain so that we don't check the same thing more than once.
+    Map<DartType, Set<DartType>> seenChecksMap =
+        new Map<DartType, Set<DartType>>();
+    bool knownInvalidBounds = false;
+
+    void _addTypeVariableBoundCheck(InterfaceType instance,
+        DartType typeArgument, TypeVariableType typeVariable, DartType bound) {
+      if (knownInvalidBounds) return;
+
+      int subtypeRelation = types.computeSubtypeRelation(typeArgument, bound);
+      if (subtypeRelation == DartTypes.IS_SUBTYPE) return;
+
+      String message = "Can't create an instance of malbounded type '$type': "
+          "'${typeArgument}' is not a subtype of bound '${bound}' for "
+          "type variable '${typeVariable}' of type "
+          "${type == instance
+              ? "'${types.getThisType(type.element)}'"
+              : "'${types.getThisType(instance.element)}' on the supertype "
+                "'${instance}' of '${type}'"
+            }.";
+      if (subtypeRelation == DartTypes.NOT_SUBTYPE) {
+        generateTypeError(message, sourceInformation);
+        knownInvalidBounds = true;
+        return;
+      } else if (subtypeRelation == DartTypes.MAYBE_SUBTYPE) {
+        Set<DartType> seenChecks =
+            seenChecksMap.putIfAbsent(typeArgument, () => new Set<DartType>());
+        if (!seenChecks.contains(bound)) {
+          seenChecks.add(bound);
+          _assertIsSubtype(typeArgument, bound, message);
+        }
+      }
+    }
+
+    types.checkTypeVariableBounds(type, _addTypeVariableBoundCheck);
+    if (knownInvalidBounds) {
+      return true;
+    }
+    for (InterfaceType supertype
+        in types.getSupertypes(constructor.enclosingClass)) {
+      InterfaceType instance = types.asInstanceOf(type, supertype.element);
+      types.checkTypeVariableBounds(instance, _addTypeVariableBoundCheck);
+      if (knownInvalidBounds) {
+        return true;
+      }
+    }
+    return false;
+  }
+
+  void _assertIsSubtype(DartType subtype, DartType supertype, String message) {
+    HInstruction subtypeInstruction = typeBuilder.analyzeTypeArgument(
+        localsHandler.substInContext(subtype), sourceElement);
+    HInstruction supertypeInstruction = typeBuilder.analyzeTypeArgument(
+        localsHandler.substInContext(supertype), sourceElement);
+    HInstruction messageInstruction =
+        graph.addConstantString(message, closedWorld);
+    FunctionEntity element = commonElements.assertIsSubtype;
+    var inputs = <HInstruction>[
+      subtypeInstruction,
+      supertypeInstruction,
+      messageInstruction
+    ];
+    HInstruction assertIsSubtype =
+        new HInvokeStatic(element, inputs, subtypeInstruction.instructionType);
+    registry?.registerTypeVariableBoundsSubtypeCheck(subtype, supertype);
+    add(assertIsSubtype);
+  }
+
   @override
   void visitConstructorInvocation(ir.ConstructorInvocation node) {
     SourceInformation sourceInformation =
@@ -3911,6 +4012,15 @@
     }
 
     ConstructorEntity constructor = _elementMap.getConstructor(target);
+    ClassEntity cls = constructor.enclosingClass;
+    TypeMask typeMask = new TypeMask.nonNullExact(cls, closedWorld);
+    InterfaceType instanceType = _elementMap.createInterfaceType(
+        target.enclosingClass, node.arguments.types);
+
+    if (_checkAllTypeVariableBounds(
+        constructor, instanceType, sourceInformation)) {
+      return;
+    }
 
     // TODO(sra): For JS-interop targets, process arguments differently.
     List<HInstruction> arguments = <HInstruction>[];
@@ -3925,17 +4035,14 @@
     if (commonElements.isSymbolConstructor(constructor)) {
       constructor = commonElements.symbolValidatedConstructor;
     }
-    ClassEntity cls = constructor.enclosingClass;
     if (closedWorld.rtiNeed.classNeedsRti(cls)) {
       _addTypeArguments(arguments, node.arguments, sourceInformation);
     }
-    TypeMask typeMask = new TypeMask.nonNullExact(cls, closedWorld);
-    InterfaceType type = _elementMap.createInterfaceType(
-        target.enclosingClass, node.arguments.types);
-    addImplicitInstantiation(type);
+    instanceType = localsHandler.substInContext(instanceType);
+    addImplicitInstantiation(instanceType);
     _pushStaticInvocation(constructor, arguments, typeMask,
-        sourceInformation: sourceInformation);
-    removeImplicitInstantiation(type);
+        sourceInformation: sourceInformation, instanceType: instanceType);
+    removeImplicitInstantiation(instanceType);
   }
 
   @override
@@ -4325,7 +4432,8 @@
     }
 
     void doInlining() {
-      registry.registerStaticUse(new StaticUse.inlining(function));
+      registry
+          .registerStaticUse(new StaticUse.inlining(function, instanceType));
 
       // Add an explicit null check on the receiver before doing the
       // inlining. We use [element] to get the same name in the
@@ -4415,7 +4523,7 @@
     _worldBuilder.forEachParameter(function,
         (DartType type, String name, ConstantValue defaultValue) {
       if (index <= parameterStructure.positionalParameters) {
-        if (index <= providedArguments.length) {
+        if (index < providedArguments.length) {
           compiledArguments[index] = providedArguments[index];
         } else {
           assert(defaultValue != null,
@@ -4578,6 +4686,10 @@
       case MemberKind.constructor:
         buildConstructor(definition.node);
         return;
+      case MemberKind.constructorBody:
+        ir.Constructor constructor = definition.node;
+        constructor.function.body.accept(this);
+        return;
       case MemberKind.regular:
         ir.Node node = definition.node;
         if (node is ir.Constructor) {
@@ -4665,7 +4777,7 @@
 
 class InlineWeeder extends ir.Visitor {
   // Invariant: *INSIDE_LOOP* > *OUTSIDE_LOOP*
-  static const INLINING_NODES_OUTSIDE_LOOP = 18;
+  static const INLINING_NODES_OUTSIDE_LOOP = 15;
   static const INLINING_NODES_OUTSIDE_LOOP_ARG_FACTOR = 3;
   static const INLINING_NODES_INSIDE_LOOP = 42;
   static const INLINING_NODES_INSIDE_LOOP_ARG_FACTOR = 4;
@@ -4683,19 +4795,34 @@
       FunctionEntity function, int maxInliningNodes,
       {bool allowLoops: false, bool enableUserAssertions: null}) {
     // TODO(redemption): Implement inlining heuristic.
-    MemberDefinition memberDefinition =
-        elementMap.getMemberDefinition(function);
-    InlineWeeder visitor = new InlineWeeder();
-    memberDefinition.node.accept(visitor);
+    InlineWeeder visitor = new InlineWeeder(maxInliningNodes, allowLoops);
+    ir.FunctionNode node = getFunctionNode(elementMap, function);
+    node.accept(visitor);
     return visitor.tooDifficultReason;
   }
 
+  final int maxInliningNodes; // `null` for unbounded.
+  final bool allowLoops;
+
   bool seenReturn = false;
+  int nodeCount = 0;
   String tooDifficultReason;
   bool get tooDifficult => tooDifficultReason != null;
 
+  InlineWeeder(this.maxInliningNodes, this.allowLoops);
+
+  bool registerNode() {
+    if (maxInliningNodes == null) return true;
+    if (nodeCount++ > maxInliningNodes) {
+      tooDifficultReason = 'too many nodes';
+      return false;
+    }
+    return true;
+  }
+
   defaultNode(ir.Node node) {
     if (tooDifficult) return;
+    if (!registerNode()) return;
     if (seenReturn) {
       tooDifficultReason = 'code after return';
       return;
@@ -4705,7 +4832,7 @@
 
   visitReturnStatement(ir.ReturnStatement node) {
     if (seenReturn) {
-      tooDifficultReason = 'multiple returns';
+      tooDifficultReason = 'code after return';
     } else {
       seenReturn = true;
     }
@@ -4713,20 +4840,61 @@
 
   visitThrow(ir.Throw node) {
     if (seenReturn) {
-      tooDifficultReason = 'multiple returns';
-    } else {
-      seenReturn = true;
+      tooDifficultReason = 'code after return';
     }
   }
 
+  _handleLoop() {
+    // It's actually not difficult to inline a method with a loop, but
+    // our measurements show that it's currently better to not inline a
+    // method that contains a loop.
+    if (!allowLoops) tooDifficultReason = 'loop';
+    // TODO(johnniwinther): Shouldn't the loop body have been counted here? It
+    // isn't in the AST based inline weeder.
+  }
+
+  visitForStatement(ir.ForStatement node) {
+    _handleLoop();
+  }
+
+  visitForInStatement(ir.ForInStatement node) {
+    _handleLoop();
+  }
+
+  visitWhileStatement(ir.WhileStatement node) {
+    _handleLoop();
+  }
+
+  visitDoStatement(ir.DoStatement node) {
+    _handleLoop();
+  }
+
   visitTryCatch(ir.TryCatch node) {
     if (tooDifficult) return;
-    tooDifficultReason = 'try/catch';
+    tooDifficultReason = 'try';
   }
 
   visitTryFinally(ir.TryFinally node) {
     if (tooDifficult) return;
-    tooDifficultReason = 'try/finally';
+    tooDifficultReason = 'try';
+  }
+
+  visitFunctionExpression(ir.FunctionExpression node) {
+    if (!registerNode()) return;
+    tooDifficultReason = 'closure';
+  }
+
+  visitFunctionDeclaration(ir.FunctionDeclaration node) {
+    if (!registerNode()) return;
+    tooDifficultReason = 'closure';
+  }
+
+  visitFunctionNode(ir.FunctionNode node) {
+    if (node.asyncMarker != ir.AsyncMarker.Sync) {
+      tooDifficultReason = 'async/await';
+      return;
+    }
+    node.visitChildren(this);
   }
 }
 
diff --git a/pkg/compiler/lib/src/ssa/optimize.dart b/pkg/compiler/lib/src/ssa/optimize.dart
index f122851..fdc4754 100644
--- a/pkg/compiler/lib/src/ssa/optimize.dart
+++ b/pkg/compiler/lib/src/ssa/optimize.dart
@@ -2668,6 +2668,7 @@
 
   // Pure operations that do not escape their inputs.
   void visitBinaryArithmetic(HBinaryArithmetic instruction) {}
+  void visitBoundsCheck(HBoundsCheck instruction) {}
   void visitConstant(HConstant instruction) {}
   void visitIf(HIf instruction) {}
   void visitInterceptor(HInterceptor instruction) {}
@@ -2918,21 +2919,25 @@
       // Don't always create phis for HGetLength. The phi confuses array bounds
       // check elimination and the resulting variable-heavy code probably is
       // confusing for JavaScript VMs. In practice, this mostly affects the
-      // expansion of for-in loops on Arrays, so we partially match the
-      // expression
+      // expansion of for-in loops on Arrays, so we match the expression
       //
       //     checkConcurrentModificationError(array.length == _end, array)
       //
-      // starting with the HGetLength of the array.length.
+      // starting with the HGetLength of the `array.length`, in the case where
+      // `array.length` is not used elsewhere (i.e. not already optimized to use
+      // a previous use, in the loop condition).
       //
       // TODO(sra): Figure out a better way ensure 'nice' loop code.
       // TODO(22407): The phi would not be so bad if it did not confuse bounds
       // check elimination.
       // TODO(25437): We could add a phi if we undid the harmful cases.
-      for (var user in second.usedBy) {
+      if (second.usedBy.length == 1) {
+        var user = second.usedBy.single;
         if (user is HIdentity && user.usedBy.length == 1) {
           HInstruction user2 = user.usedBy.single;
-          if (user2 is HInvokeStatic) {
+          if (user2 is HInvokeStatic &&
+              user2.element ==
+                  closedWorld.commonElements.checkConcurrentModificationError) {
             return null;
           }
         }
@@ -2976,12 +2981,31 @@
         bool isNonEscapingUse(HInstruction use) {
           if (use is HReturn) return true; // Escapes, but so does control.
           if (use is HFieldGet) return true;
-          if (use is HFieldSet &&
-              use.receiver.nonCheck() == instruction &&
-              use.value.nonCheck() != instruction) {
-            return true;
+          if (use is HFieldSet) {
+            return use.value.nonCheck() != instruction;
           }
           if (use is HTypeInfoReadVariable) return true;
+          if (use is HGetLength) return true;
+          if (use is HBoundsCheck) return true;
+          if (use is HIndex) return true;
+          if (use is HIndexAssign) {
+            return use.value.nonCheck() != instruction;
+          }
+          if (use is HInterceptor) return true;
+          if (use is HInvokeDynamicMethod) {
+            MemberEntity element = use.element;
+            if (element != null) {
+              if (element == closedWorld.commonElements.jsArrayAdd) {
+                return use.inputs.last != instruction;
+              }
+            }
+          }
+          if (use is HInvokeStatic) {
+            if (use.element ==
+                closedWorld.commonElements.checkConcurrentModificationError)
+              return true;
+          }
+
           return false;
         }
 
diff --git a/pkg/compiler/lib/src/universe/call_structure.dart b/pkg/compiler/lib/src/universe/call_structure.dart
index e40ceab..b05f853 100644
--- a/pkg/compiler/lib/src/universe/call_structure.dart
+++ b/pkg/compiler/lib/src/universe/call_structure.dart
@@ -28,13 +28,18 @@
   /// The number of positional argument of the call.
   int get positionalArgumentCount => argumentCount;
 
-  const CallStructure.unnamed(this.argumentCount);
+  /// The number of type argument of the call.
+  final int typeArgumentCount;
 
-  factory CallStructure(int argumentCount, [List<String> namedArguments]) {
+  const CallStructure.unnamed(this.argumentCount, [this.typeArgumentCount = 0]);
+
+  factory CallStructure(int argumentCount,
+      [List<String> namedArguments, int typeArgumentCount = 0]) {
     if (namedArguments == null || namedArguments.isEmpty) {
-      return new CallStructure.unnamed(argumentCount);
+      return new CallStructure.unnamed(argumentCount, typeArgumentCount);
     }
-    return new NamedCallStructure(argumentCount, namedArguments);
+    return new NamedCallStructure(
+        argumentCount, namedArguments, typeArgumentCount);
   }
 
   /// `true` if this call has named arguments.
@@ -50,7 +55,14 @@
   List<String> getOrderedNamedArguments() => const <String>[];
 
   /// A description of the argument structure.
-  String structureToString() => 'arity=$argumentCount';
+  String structureToString() {
+    StringBuffer sb = new StringBuffer();
+    sb.write('arity=$argumentCount');
+    if (typeArgumentCount != 0) {
+      sb.write(', types=$typeArgumentCount');
+    }
+    return sb.toString();
+  }
 
   String toString() => 'CallStructure(${structureToString()})';
 
@@ -60,13 +72,16 @@
     if (identical(this, other)) return true;
     return this.argumentCount == other.argumentCount &&
         this.namedArgumentCount == other.namedArgumentCount &&
+        this.typeArgumentCount == other.typeArgumentCount &&
         sameNames(this.namedArguments, other.namedArguments);
   }
 
   // TODO(johnniwinther): Cache hash code?
   int get hashCode {
-    return Hashing.listHash(namedArguments,
-        Hashing.objectHash(argumentCount, namedArguments.length));
+    return Hashing.listHash(
+        namedArguments,
+        Hashing.objectHash(argumentCount,
+            Hashing.objectHash(typeArgumentCount, namedArguments.length)));
   }
 
   bool operator ==(other) {
@@ -80,6 +95,9 @@
     int parameterCount = requiredParameterCount + optionalParameterCount;
     if (argumentCount > parameterCount) return false;
     if (positionalArgumentCount < requiredParameterCount) return false;
+    if (typeArgumentCount != 0) {
+      if (typeArgumentCount != parameters.typeParameters) return false;
+    }
 
     if (parameters.namedParameters.isEmpty) {
       // We have already checked that the number of arguments are
@@ -124,8 +142,9 @@
   final List<String> namedArguments;
   final List<String> _orderedNamedArguments = <String>[];
 
-  NamedCallStructure(int argumentCount, this.namedArguments)
-      : super.unnamed(argumentCount) {
+  NamedCallStructure(
+      int argumentCount, this.namedArguments, int typeArgumentCount)
+      : super.unnamed(argumentCount, typeArgumentCount) {
     assert(namedArguments.isNotEmpty);
   }
 
@@ -154,6 +173,11 @@
 
   @override
   String structureToString() {
-    return 'arity=$argumentCount, named=[${namedArguments.join(', ')}]';
+    StringBuffer sb = new StringBuffer();
+    sb.write('arity=$argumentCount, named=[${namedArguments.join(', ')}]');
+    if (typeArgumentCount != 0) {
+      sb.write(', types=$typeArgumentCount');
+    }
+    return sb.toString();
   }
 }
diff --git a/pkg/compiler/lib/src/universe/use.dart b/pkg/compiler/lib/src/universe/use.dart
index b1bb0d1..e172133 100644
--- a/pkg/compiler/lib/src/universe/use.dart
+++ b/pkg/compiler/lib/src/universe/use.dart
@@ -405,8 +405,10 @@
   }
 
   /// Inlining of [element].
-  factory StaticUse.inlining(FunctionEntity element) {
-    return new StaticUse.internal(element, StaticUseKind.INLINING);
+  factory StaticUse.inlining(
+      FunctionEntity element, InterfaceType instanceType) {
+    return new StaticUse.internal(
+        element, StaticUseKind.INLINING, instanceType);
   }
 
   bool operator ==(other) {
diff --git a/pkg/compiler/tool/status_files/update_from_log.dart b/pkg/compiler/tool/status_files/update_from_log.dart
index 9f875fa..c2fc283 100644
--- a/pkg/compiler/tool/status_files/update_from_log.dart
+++ b/pkg/compiler/tool/status_files/update_from_log.dart
@@ -21,7 +21,7 @@
 ///
 /// and:
 ///
-///     [ $compiler == dart2js && $dart2js_with_kernel && $checked ]
+///     [ $compiler == dart2js && $checked && $dart2js_with_kernel ]
 library compiler.status_files.update_from_log;
 
 import 'dart:io';
@@ -36,7 +36,7 @@
   'fast-startup':
       r'[ $compiler == dart2js && $dart2js_with_kernel && $fast_startup ]',
   'checked-mode':
-      r'[ $compiler == dart2js && $dart2js_with_kernel && $checked ]',
+      r'[ $compiler == dart2js && $checked && $dart2js_with_kernel ]',
 };
 
 final dart2jsStatusFiles = {
diff --git a/pkg/dart_internal/LICENSE b/pkg/dart_internal/LICENSE
new file mode 100644
index 0000000..389ce98
--- /dev/null
+++ b/pkg/dart_internal/LICENSE
@@ -0,0 +1,26 @@
+Copyright 2017, the Dart project authors. All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided
+      with the distribution.
+    * Neither the name of Google Inc. nor the names of its
+      contributors may be used to endorse or promote products derived
+      from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/pkg/dart_internal/analysis_options.yaml b/pkg/dart_internal/analysis_options.yaml
new file mode 100644
index 0000000..1a46de2
--- /dev/null
+++ b/pkg/dart_internal/analysis_options.yaml
@@ -0,0 +1,3 @@
+analyzer:
+  strong-mode:
+    implicit-casts: false
diff --git a/pkg/dart_internal/lib/extract_type_arguments.dart b/pkg/dart_internal/lib/extract_type_arguments.dart
new file mode 100644
index 0000000..7c93e5f
--- /dev/null
+++ b/pkg/dart_internal/lib/extract_type_arguments.dart
@@ -0,0 +1,43 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// The actual functionality exposed by this package is implemented in
+// "dart:_internal" since it is specific to each platform's runtime
+// implementation. This package exists as a shell to expose that internal API
+// to outside code.
+//
+// Only this exact special file is allowed to import "dart:_internal" without
+// causing a compile error.
+import 'dart:_internal' as internal;
+
+/// Given an [Iterable], invokes [extract], passing the [iterable]'s type
+/// argument as the type argument to the generic function.
+///
+/// Example:
+///
+/// ```dart
+/// Object iterable = <int>[];
+/// print(extractIterableTypeArgument(iterable, <T>() => new Set<T>());
+/// // Prints "Instance of 'Set<int>'".
+/// ```
+Object extractIterableTypeArgument(
+        Iterable iterable, Object Function<T>() extract) =>
+    internal.extractTypeArguments<Iterable>(iterable, extract);
+
+/// Given a [Map], invokes [extract], passing the [map]'s key and value type
+/// arguments as the type arguments to the generic function.
+///
+/// Example:
+///
+/// ```dart
+/// class Two<A, B> {}
+///
+/// main() {
+///   Object map = <String, int>{};
+///   print(extractMapTypeArguments(map, <K, V>() => new Two<K, V>());
+///   // Prints "Instance of 'Two<String, int>'".
+/// }
+/// ```
+Object extractMapTypeArguments(Map map, Object Function<K, V>() extract) =>
+    internal.extractTypeArguments<Map>(map, extract);
diff --git a/pkg/dart_internal/pubspec.yaml b/pkg/dart_internal/pubspec.yaml
new file mode 100644
index 0000000..49cb8dac
--- /dev/null
+++ b/pkg/dart_internal/pubspec.yaml
@@ -0,0 +1,18 @@
+name: dart_internal
+version: 0.1.0-dev
+author: "Dart Team <misc@dartlang.org>"
+homepage: http://www.dartlang.org
+description: >
+  This package is not intended for any external use. Basically, if you don't
+  personally know exactly what it's for, you're probably not the intended user.
+
+  It contains functionality to enable some internal Google code to transition
+  to strong mode before some anticipated language features are in place. In
+  particular, it provides an API to solve the problem: "Given an object some
+  generic type A, how do I construct an instance of generic type B with the
+  same type argument(s)?"
+publish_to:
+  # This package is not intended to be used externally (or, at least, not yet).
+  none
+environment:
+  sdk: ">=2.0.0 <2.0.0"
diff --git a/pkg/dev_compiler/bin/dartdevk.dart b/pkg/dev_compiler/bin/dartdevk.dart
index 5f5f86c..7a212de 100755
--- a/pkg/dev_compiler/bin/dartdevk.dart
+++ b/pkg/dev_compiler/bin/dartdevk.dart
@@ -33,7 +33,7 @@
   String line;
   fe.InitializedCompilerState compilerState;
 
-  while ((line = stdin.readLineSync(encoding: UTF8)).isNotEmpty) {
+  while ((line = stdin.readLineSync(encoding: UTF8))?.isNotEmpty == true) {
     tests++;
     var args = batchArgs.toList()..addAll(line.split(new RegExp(r'\s+')));
 
diff --git a/pkg/dev_compiler/lib/src/analyzer/code_generator.dart b/pkg/dev_compiler/lib/src/analyzer/code_generator.dart
index 1b60aec..c9bd25e 100644
--- a/pkg/dev_compiler/lib/src/analyzer/code_generator.dart
+++ b/pkg/dev_compiler/lib/src/analyzer/code_generator.dart
@@ -423,7 +423,8 @@
       // TODO(jacobr): we could specify a short library name instead of the
       // full library uri if we wanted to save space.
       properties.add(new JS.Property(
-          js.string(jsLibraryDebuggerName(_libraryRoot, library)), value));
+          js.escapedString(jsLibraryDebuggerName(_libraryRoot, library)),
+          value));
     });
 
     // Track the module name for each library in the module.
diff --git a/pkg/dev_compiler/lib/src/kernel/command.dart b/pkg/dev_compiler/lib/src/kernel/command.dart
index ea92956..7c2f441 100644
--- a/pkg/dev_compiler/lib/src/kernel/command.dart
+++ b/pkg/dev_compiler/lib/src/kernel/command.dart
@@ -51,6 +51,20 @@
     'Usage: $_binaryName [options...] <sources...>\n\n'
     '${ddcArgParser.usage}';
 
+Uri stringToUri(String s, {bool windows}) {
+  windows ??= Platform.isWindows;
+  if (windows) {
+    s = s.replaceAll("\\", "/");
+  }
+
+  Uri result = Uri.base.resolve(s);
+  if (windows && result.scheme.length == 1) {
+    // Assume c: or similar --- interpret as file path.
+    return new Uri.file(s, windows: true);
+  }
+  return result;
+}
+
 class CompilerResult {
   final fe.InitializedCompilerState compilerState;
   final bool result;
@@ -87,7 +101,7 @@
   var ddcPath = path.dirname(path.dirname(path.fromUri(Platform.script)));
 
   var summaryUris =
-      (argResults['summary'] as List<String>).map(Uri.parse).toList();
+      (argResults['summary'] as List<String>).map(stringToUri).toList();
 
   var sdkSummaryPath = argResults['dart-sdk-summary'] ??
       path.absolute(ddcPath, 'gen', 'sdk', 'ddc_sdk.dill');
@@ -95,7 +109,7 @@
   var packageFile =
       argResults['packages'] ?? path.absolute(ddcPath, '..', '..', '.packages');
 
-  var inputs = argResults.rest.map(Uri.base.resolve).toList();
+  var inputs = argResults.rest.map(stringToUri).toList();
 
   var succeeded = true;
   void errorHandler(fe.CompilationMessage error) {
diff --git a/pkg/dev_compiler/lib/src/kernel/source_map_printer.dart b/pkg/dev_compiler/lib/src/kernel/source_map_printer.dart
index 2a9c957..dafae50 100644
--- a/pkg/dev_compiler/lib/src/kernel/source_map_printer.dart
+++ b/pkg/dev_compiler/lib/src/kernel/source_map_printer.dart
@@ -112,7 +112,7 @@
 
     FileUriNode fileParent = parentsStack.last;
     Program p = fileParent.enclosingProgram;
-    String fileUri = fileParent.fileUri;
+    Uri fileUri = fileParent.fileUri;
 
     var loc = p.getLocation(fileUri, offset);
     _previousLine = _line;
diff --git a/pkg/dev_compiler/test/codegen/async_helper.dart b/pkg/dev_compiler/test/codegen/async_helper.dart
index bfde1a4..49e33ca 100644
--- a/pkg/dev_compiler/test/codegen/async_helper.dart
+++ b/pkg/dev_compiler/test/codegen/async_helper.dart
@@ -35,7 +35,7 @@
 }
 
 /// Implementation method called from language_tests.js.
-/// Registers the callback that will be used complete the test.
+/// Registers the callback that will be used to complete the test.
 void asyncTestInitialize(_Action0 callback) {
   _asyncLevel = 0;
   _initialized = false;
@@ -47,7 +47,10 @@
 bool get asyncTestStarted => _initialized;
 
 /// Call this method before an asynchronous test is created.
-void asyncStart() {
+///
+/// If [count] is provided, expect [count] [asyncEnd] calls instead of just one.
+void asyncStart([int count = 1]) {
+  if (count <= 0) return;
   if (_initialized && _asyncLevel == 0) {
     throw _buildException('asyncStart() was called even though we are done '
         'with testing.');
@@ -61,7 +64,7 @@
     print('unittest-suite-wait-for-done');
     _initialized = true;
   }
-  _asyncLevel++;
+  _asyncLevel += count;
 }
 
 /// Call this after an asynchronous test has ended successfully.
diff --git a/pkg/dev_compiler/test/sourcemap/common.dart b/pkg/dev_compiler/test/sourcemap/common.dart
index 967c7ad..4945d20 100644
--- a/pkg/dev_compiler/test/sourcemap/common.dart
+++ b/pkg/dev_compiler/test/sourcemap/common.dart
@@ -64,10 +64,9 @@
   String get name => "step";
 
   Future<Result<Data>> run(Data data, ChainContext context) async {
-    var outWrapperPathRelative =
-        path.relative(path.join(data.outDir.path, "wrapper.js"));
-    ProcessResult runResult = runD8AndStep(
-        data.outDir.path, data.code, ['--module', outWrapperPathRelative]);
+    var outWrapperPath = path.join(data.outDir.path, "wrapper.js");
+    ProcessResult runResult =
+        runD8AndStep(data.outDir.path, data.code, ['--module', outWrapperPath]);
     data.d8Output = runResult.stdout.split("\n");
     return pass(data);
   }
@@ -99,3 +98,7 @@
 String get dartExecutable {
   return Platform.resolvedExecutable;
 }
+
+String uriPathForwardSlashed(Uri uri) {
+  return uri.toFilePath().replaceAll("\\", "/");
+}
diff --git a/pkg/dev_compiler/test/sourcemap/ddc_common.dart b/pkg/dev_compiler/test/sourcemap/ddc_common.dart
index aa14d54..6207547 100644
--- a/pkg/dev_compiler/test/sourcemap/ddc_common.dart
+++ b/pkg/dev_compiler/test/sourcemap/ddc_common.dart
@@ -8,12 +8,12 @@
 import 'package:sourcemap_testing/src/annotated_code_helper.dart';
 import 'package:sourcemap_testing/src/stacktrace_helper.dart';
 import 'package:testing/testing.dart';
+import 'package:sourcemap_testing/src/stepping_helper.dart';
 
 import 'common.dart';
 
 abstract class DdcRunner {
-  ProcessResult runDDC(String ddcDir, String inputFile, String outputFile,
-      String outWrapperPath);
+  ProcessResult runDDC(Uri inputFile, Uri outputFile, Uri outWrapperPath);
 }
 
 class Compile extends Step<Data, Data, ChainContext> {
@@ -30,14 +30,14 @@
     data.outDir = await Directory.systemTemp.createTemp("ddc_step_test");
     data.code = new AnnotatedCode.fromText(
         new File(inputFile).readAsStringSync(), commentStart, commentEnd);
-    var testFile = "${data.outDir.path}/test.dart";
-    new File(testFile).writeAsStringSync(data.code.sourceCode);
-    var outputPath = data.outDir.path;
+    var outDirUri = data.outDir.uri;
+    var testFile = outDirUri.resolve("test.dart");
+    new File.fromUri(testFile).writeAsStringSync(data.code.sourceCode);
     var outputFilename = "js.js";
-    var outputFile = path.join(outputPath, outputFilename);
-    var outWrapperPath = path.join(outputPath, "wrapper.js");
+    var outputFile = outDirUri.resolve(outputFilename);
+    var outWrapperPath = outDirUri.resolve("wrapper.js");
 
-    ddcRunner.runDDC(getDdcDir().path, testFile, outputFile, outWrapperPath);
+    ddcRunner.runDDC(testFile, outputFile, outWrapperPath);
 
     return pass(data);
   }
@@ -65,17 +65,21 @@
   }
 
   Future<bool> _compile(String input, String output) async {
-    var outWrapperPath = _getWrapperPathFromDirectoryFile(input);
-    ddcRunner.runDDC(getDdcDir().path, input, output, outWrapperPath);
+    var outWrapperPath = _getWrapperPathFromDirectoryFile(new Uri.file(input));
+    ddcRunner.runDDC(new Uri.file(input), new Uri.file(output), outWrapperPath);
     return true;
   }
 
-  List<String> _getPreambles(input, output) {
-    return ['--module', _getWrapperPathFromDirectoryFile(input), '--'];
+  List<String> _getPreambles(String input, String output) {
+    return [
+      '--module',
+      _getWrapperPathFromDirectoryFile(new Uri.file(input)).toFilePath(),
+      '--'
+    ];
   }
 
-  String _getWrapperPathFromDirectoryFile(input) {
-    return new File.fromUri(new File(input).uri.resolve("wrapper.js")).path;
+  Uri _getWrapperPathFromDirectoryFile(Uri input) {
+    return input.resolve("wrapper.js");
   }
 
   String _convertName(String name) {
@@ -111,13 +115,13 @@
   return _cachedDdcDir ??= search();
 }
 
-String getWrapperContent(Uri jsSdkPath, String inputFileName, Uri outputFile) {
-  assert(!jsSdkPath.isAbsolute);
-  assert(!outputFile.isAbsolute);
+String getWrapperContent(
+    Uri jsSdkPath, String inputFileNameNoExt, String outputFilename) {
+  assert(jsSdkPath.isAbsolute);
   return """
-    import { dart, _isolate_helper } from '$jsSdkPath';
-    import { $inputFileName } from '$outputFile';
-    let main = $inputFileName.main;
+    import { dart, _isolate_helper } from '${uriPathForwardSlashed(jsSdkPath)}';
+    import { $inputFileNameNoExt } from '$outputFilename';
+    let main = $inputFileNameNoExt.main;
     dart.ignoreWhitelistedErrors(false);
     try {
       _isolate_helper.startRootIsolate(main, []);
@@ -127,24 +131,26 @@
     """;
 }
 
-void createHtmlWrapper(String ddcDir, File sdkJsFile, String outputFile,
-    String jsContent, Uri outFileRelative, String outDir) {
+void createHtmlWrapper(File sdkJsFile, Uri outputFile, String jsContent,
+    String outputFilename, Uri outDir) {
   // For debugging via HTML, Chrome and ./tools/testing/dart/http_server.dart.
-  String sdkPath = new File(ddcDir).parent.parent.path;
+  Directory sdkPath = sdkRoot;
   String jsRootDart =
-      "/root_dart/${new File(path.relative(sdkJsFile.path, from: sdkPath))
+      "/root_dart/${new File(path.relative(sdkJsFile.path, from: sdkPath.path))
       .uri}";
-  new File(outputFile + ".html.js").writeAsStringSync(
-      jsContent.replaceFirst("from 'dart_sdk'", "from '$jsRootDart'"));
-  new File(outputFile + ".html.html").writeAsStringSync(getWrapperHtmlContent(
-      jsRootDart, "/root_build/$outFileRelative.html.js"));
+  new File.fromUri(outputFile.resolve("$outputFilename.html.js"))
+      .writeAsStringSync(
+          jsContent.replaceFirst("from 'dart_sdk'", "from '$jsRootDart'"));
+  new File.fromUri(outputFile.resolve("$outputFilename.html.html"))
+      .writeAsStringSync(getWrapperHtmlContent(
+          jsRootDart, "/root_build/$outputFilename.html.js"));
 
   print("You should now be able to run\n\n"
-      "dart $sdkPath/tools/testing/dart/http_server.dart -p 39550 "
-      "--network 127.0.0.1"
-      "--build-directory=$outDir"
+      "dart ${sdkRoot.path}/tools/testing/dart/http_server.dart -p 39550 "
+      "--network 127.0.0.1 "
+      "--build-directory=${outDir.toFilePath()}"
       "\n\nand go to\n\n"
-      "http://127.0.0.1:39550/root_build/$outFileRelative.html.html"
+      "http://127.0.0.1:39550/root_build/$outputFilename.html.html"
       "\n\nto step through via the browser.");
 }
 
diff --git a/pkg/dev_compiler/test/sourcemap/sourcemaps_ddc_suite.dart b/pkg/dev_compiler/test/sourcemap/sourcemaps_ddc_suite.dart
index da81603..513b64b 100644
--- a/pkg/dev_compiler/test/sourcemap/sourcemaps_ddc_suite.dart
+++ b/pkg/dev_compiler/test/sourcemap/sourcemaps_ddc_suite.dart
@@ -4,7 +4,6 @@
 
 import 'dart:io';
 
-import 'package:path/path.dart' as path;
 import 'package:testing/testing.dart';
 
 import 'common.dart';
@@ -38,30 +37,30 @@
 
   const RunDdc([this.debugging = false]);
 
-  ProcessResult runDDC(String ddcDir, String inputFile, String outputFile,
-      String outWrapperPath) {
-    var outDir = path.dirname(outWrapperPath);
-    var outFileRelative = new File(path.relative(outputFile, from: outDir)).uri;
+  ProcessResult runDDC(Uri inputFile, Uri outputFile, Uri outWrapperFile) {
+    Uri outDir = outputFile.resolve(".");
+    String outputFilename = outputFile.pathSegments.last;
 
     File sdkJsFile = findInOutDir("gen/utils/dartdevc/js/es6/dart_sdk.js");
-    var jsSdkPath = new File(path.relative(sdkJsFile.path, from: outDir)).uri;
+    var jsSdkPath = sdkJsFile.uri;
 
     File ddcSdkSummary = findInOutDir("gen/utils/dartdevc/ddc_sdk.sum");
 
-    var ddc = path.join(ddcDir, "bin/dartdevc.dart");
-    if (!new File(ddc).existsSync()) throw "Couldn't find 'bin/dartdevc.dart'";
+    var ddc = getDdcDir().uri.resolve("bin/dartdevc.dart");
+    if (!new File.fromUri(ddc).existsSync())
+      throw "Couldn't find 'bin/dartdevc.dart'";
 
-    var args = [
-      ddc,
+    List<String> args = <String>[
+      ddc.toFilePath(),
       "--modules=es6",
       "--dart-sdk-summary=${ddcSdkSummary.path}",
       "--library-root",
-      "$outDir",
+      outDir.toFilePath(),
       "--module-root",
-      "$outDir",
+      outDir.toFilePath(),
       "-o",
-      "$outputFile",
-      "$inputFile"
+      outputFile.toFilePath(),
+      inputFile.toFilePath()
     ];
     ProcessResult runResult = Process.runSync(dartExecutable, args);
     if (runResult.exitCode != 0) {
@@ -72,18 +71,20 @@
           "${args.reduce((value, element) => '$value "$element"')}";
     }
 
-    var jsContent = new File(outputFile).readAsStringSync();
-    new File(outputFile).writeAsStringSync(
-        jsContent.replaceFirst("from 'dart_sdk'", "from '$jsSdkPath'"));
+    var jsContent = new File.fromUri(outputFile).readAsStringSync();
+    new File.fromUri(outputFile).writeAsStringSync(jsContent.replaceFirst(
+        "from 'dart_sdk'", "from '${uriPathForwardSlashed(jsSdkPath)}'"));
 
     if (debugging) {
       createHtmlWrapper(
-          ddcDir, sdkJsFile, outputFile, jsContent, outFileRelative, outDir);
+          sdkJsFile, outputFile, jsContent, outputFilename, outDir);
     }
 
-    var inputFileName = path.basenameWithoutExtension(inputFile);
-    new File(outWrapperPath).writeAsStringSync(
-        getWrapperContent(jsSdkPath, inputFileName, outFileRelative));
+    var inputFileName = inputFile.pathSegments.last;
+    var inputFileNameNoExt =
+        inputFileName.substring(0, inputFileName.lastIndexOf("."));
+    new File.fromUri(outWrapperFile).writeAsStringSync(
+        getWrapperContent(jsSdkPath, inputFileNameNoExt, outputFilename));
 
     return runResult;
   }
diff --git a/pkg/dev_compiler/test/sourcemap/sourcemaps_ddk_suite.dart b/pkg/dev_compiler/test/sourcemap/sourcemaps_ddk_suite.dart
index ae6d770..7bc4e79 100644
--- a/pkg/dev_compiler/test/sourcemap/sourcemaps_ddk_suite.dart
+++ b/pkg/dev_compiler/test/sourcemap/sourcemaps_ddk_suite.dart
@@ -4,7 +4,6 @@
 
 import 'dart:io';
 
-import 'package:path/path.dart' as path;
 import 'package:testing/testing.dart';
 
 import 'common.dart';
@@ -38,26 +37,26 @@
 
   const RunDdc([this.debugging = false]);
 
-  ProcessResult runDDC(String ddcDir, String inputFile, String outputFile,
-      String outWrapperPath) {
-    var outDir = path.dirname(outWrapperPath);
-    var outFileRelative = new File(path.relative(outputFile, from: outDir)).uri;
+  ProcessResult runDDC(Uri inputFile, Uri outputFile, Uri outWrapperFile) {
+    Uri outDir = outputFile.resolve(".");
+    String outputFilename = outputFile.pathSegments.last;
 
     File sdkJsFile = findInOutDir("gen/utils/dartdevc/js/es6/dart_sdk.js");
-    var jsSdkPath = new File(path.relative(sdkJsFile.path, from: outDir)).uri;
+    var jsSdkPath = sdkJsFile.uri;
 
     File ddcSdkSummary = findInOutDir("gen/utils/dartdevc/ddc_sdk.dill");
 
-    var ddc = path.join(ddcDir, "bin/dartdevk.dart");
-    if (!new File(ddc).existsSync()) throw "Couldn't find 'bin/dartdevk.dart'";
+    var ddc = getDdcDir().uri.resolve("bin/dartdevk.dart");
+    if (!new File.fromUri(ddc).existsSync())
+      throw "Couldn't find 'bin/dartdevk.dart'";
 
-    var args = [
-      ddc,
+    List<String> args = <String>[
+      ddc.toFilePath(),
       "--modules=es6",
       "--dart-sdk-summary=${ddcSdkSummary.path}",
       "-o",
-      "$outputFile",
-      "$inputFile"
+      outputFile.toFilePath(),
+      inputFile.toFilePath()
     ];
     ProcessResult runResult = Process.runSync(dartExecutable, args);
     if (runResult.exitCode != 0) {
@@ -68,18 +67,20 @@
           "${args.reduce((value, element) => '$value "$element"')}";
     }
 
-    var jsContent = new File(outputFile).readAsStringSync();
-    new File(outputFile).writeAsStringSync(
-        jsContent.replaceFirst("from 'dart_sdk'", "from '$jsSdkPath'"));
+    var jsContent = new File.fromUri(outputFile).readAsStringSync();
+    new File.fromUri(outputFile).writeAsStringSync(jsContent.replaceFirst(
+        "from 'dart_sdk'", "from '${uriPathForwardSlashed(jsSdkPath)}'"));
 
     if (debugging) {
       createHtmlWrapper(
-          ddcDir, sdkJsFile, outputFile, jsContent, outFileRelative, outDir);
+          sdkJsFile, outputFile, jsContent, outputFilename, outDir);
     }
 
-    var inputFileName = path.basenameWithoutExtension(inputFile);
-    new File(outWrapperPath).writeAsStringSync(
-        getWrapperContent(jsSdkPath, inputFileName, outFileRelative));
+    var inputFileName = inputFile.pathSegments.last;
+    var inputFileNameNoExt =
+        inputFileName.substring(0, inputFileName.lastIndexOf("."));
+    new File.fromUri(outWrapperFile).writeAsStringSync(
+        getWrapperContent(jsSdkPath, inputFileNameNoExt, outputFilename));
 
     return runResult;
   }
diff --git a/pkg/dev_compiler/test/sourcemap/testfiles/next_through_is_and_as_test.dart b/pkg/dev_compiler/test/sourcemap/testfiles/next_through_is_and_as_test.dart
index 2af352e..361e1f9 100644
--- a/pkg/dev_compiler/test/sourcemap/testfiles/next_through_is_and_as_test.dart
+++ b/pkg/dev_compiler/test/sourcemap/testfiles/next_through_is_and_as_test.dart
@@ -19,6 +19,7 @@
   }
   if (hex /*bc:9*/ is int) {
     /*bc:10*/ print("hex is int");
+    // ignore: unnecessary_cast
     int x = hex /*bc:11*/ as int;
     if (x. /*bc:12*/ isEven) {
       /*bc:13*/ print("it's even even!");
diff --git a/pkg/dev_compiler/test/sourcemap/testfiles/no_mapping_on_class_constructor_line.dart b/pkg/dev_compiler/test/sourcemap/testfiles/no_mapping_on_class_constructor_line.dart
index f262fe1..c06c0a5 100644
--- a/pkg/dev_compiler/test/sourcemap/testfiles/no_mapping_on_class_constructor_line.dart
+++ b/pkg/dev_compiler/test/sourcemap/testfiles/no_mapping_on_class_constructor_line.dart
@@ -3,6 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 
 main() {
+  // ignore: unused_local_variable
   Foo foo = new Foo();
 }
 
diff --git a/pkg/dev_compiler/test/sourcemap/testfiles/no_mapping_on_class_named_constructor_line.dart b/pkg/dev_compiler/test/sourcemap/testfiles/no_mapping_on_class_named_constructor_line.dart
index a020110..1ee465e 100644
--- a/pkg/dev_compiler/test/sourcemap/testfiles/no_mapping_on_class_named_constructor_line.dart
+++ b/pkg/dev_compiler/test/sourcemap/testfiles/no_mapping_on_class_named_constructor_line.dart
@@ -3,6 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 
 main() {
+  // ignore: unused_local_variable
   Foo foo = new Foo.named();
 }
 
diff --git a/pkg/dev_compiler/test/string_to_uri_test.dart b/pkg/dev_compiler/test/string_to_uri_test.dart
new file mode 100755
index 0000000..b27303f
--- /dev/null
+++ b/pkg/dev_compiler/test/string_to_uri_test.dart
@@ -0,0 +1,29 @@
+import 'dart:io';
+import 'package:expect/minitest.dart';
+import 'package:dev_compiler/src/kernel/command.dart';
+
+main(List<String> args) {
+  // Various URL schemes
+  expect(stringToUri("dart:io").toString(), "dart:io");
+  expect(stringToUri("package:expect/minitest.dart").toString(),
+      "package:expect/minitest.dart");
+  expect(stringToUri("foobar:whatnot").toString(), "foobar:whatnot");
+
+  // Full Windows path
+  expect(stringToUri("C:\\full\\windows\\path.foo", windows: true).toString(),
+      "file:///C:/full/windows/path.foo");
+  expect(stringToUri("C:/full/windows/path.foo", windows: true).toString(),
+      "file:///C:/full/windows/path.foo");
+
+  // Relative Windows path
+  expect(stringToUri("partial\\windows\\path.foo", windows: true).toString(),
+      "file://${Directory.current.path}/partial/windows/path.foo");
+
+  // Full Unix path
+  expect(stringToUri("/full/path/to/foo.bar", windows: false).toString(),
+      "file:///full/path/to/foo.bar");
+
+  // Relative Unix path
+  expect(stringToUri("partial/path/to/foo.bar", windows: false).toString(),
+      "file://${Directory.current.path}/partial/path/to/foo.bar");
+}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/html/dart2js/html_dart2js.dart b/pkg/dev_compiler/tool/input_sdk/lib/html/dart2js/html_dart2js.dart
deleted file mode 100644
index 8f5a4f5..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/html/dart2js/html_dart2js.dart
+++ /dev/null
@@ -1,46713 +0,0 @@
-/**
- * HTML elements and other resources for web-based applications that need to
- * interact with the browser and the DOM (Document Object Model).
- *
- * This library includes DOM element types, CSS styling, local storage,
- * media, speech, events, and more.
- * To get started,
- * check out the [Element] class, the base class for many of the HTML
- * DOM types.
- *
- * ## Other resources
- *
- * * If you've never written a web app before, try our
- * tutorials&mdash;[A Game of Darts](http://dartlang.org/docs/tutorials).
- *
- * * To see some web-based Dart apps in action and to play with the code,
- * download
- * [Dart Editor](http://www.dartlang.org/#get-started)
- * and run its built-in examples.
- *
- * * For even more examples, see
- * [Dart HTML5 Samples](https://github.com/dart-lang/dart-html5-samples)
- * on Github.
- */
-library dart.dom.html;
-
-import 'dart:async';
-import 'dart:collection';
-import 'dart:_internal' hide Symbol;
-import 'dart:html_common';
-import 'dart:indexed_db';
-import 'dart:isolate';
-import "dart:convert";
-import 'dart:math';
-import 'dart:_native_typed_data';
-import 'dart:typed_data';
-import 'dart:svg' as svg;
-import 'dart:svg' show Matrix;
-import 'dart:svg' show SvgSvgElement;
-import 'dart:web_audio' as web_audio;
-import 'dart:web_gl' as gl;
-import 'dart:web_gl' show RenderingContext, RenderingContext2;
-import 'dart:web_sql';
-import 'dart:_isolate_helper' show IsolateNatives;
-import 'dart:_foreign_helper' show JS, JS_INTERCEPTOR_CONSTANT;
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// DO NOT EDIT - unless you are editing documentation as per:
-// https://code.google.com/p/dart/wiki/ContributingHTMLDocumentation
-// Auto-generated dart:html library.
-
-// Not actually used, but imported since dart:html can generate these objects.
-import 'dart:_js_helper'
-    show
-        convertDartClosureToJS,
-        Creates,
-        JavaScriptIndexingBehavior,
-        JSName,
-        Native,
-        Returns,
-        ForceInline,
-        findDispatchTagForInterceptorClass,
-        setNativeSubclassDispatchRecord,
-        makeLeafDispatchRecord,
-        registerGlobalObject;
-import 'dart:_interceptors'
-    show
-        Interceptor,
-        JSExtendableArray,
-        JSUInt31,
-        findInterceptorConstructorForType,
-        findConstructorForNativeSubclassType,
-        getNativeInterceptor,
-        setDispatchProperty;
-
-export 'dart:math' show Rectangle, Point;
-
-/**
- * Top-level container for a web page, which is usually a browser tab or window.
- *
- * Each web page loaded in the browser has its own [Window], which is a
- * container for the web page.
- *
- * If the web page has any `<iframe>` elements, then each `<iframe>` has its own
- * [Window] object, which is accessible only to that `<iframe>`.
- *
- * See also:
- *
- *   * [Window](https://developer.mozilla.org/en-US/docs/Web/API/window) from MDN.
- */
-Window get window => JS('Window', 'window');
-
-/**
- * Root node for all content in a web page.
- */
-HtmlDocument get document =>
-    JS('returns:HtmlDocument;depends:none;effects:none;gvn:true', 'document');
-
-// Workaround for tags like <cite> that lack their own Element subclass --
-// Dart issue 1990.
-@Native("HTMLElement")
-class HtmlElement extends Element {
-  factory HtmlElement() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  HtmlElement.created() : super.created();
-}
-
-/**
- * Spawn a DOM isolate using the given URI in the same window.
- * This isolate is not concurrent.  It runs on the browser thread
- * with full access to the DOM.
- * Note: this API is still evolving and may move to dart:isolate.
- */
-@Experimental()
-Future<Isolate> spawnDomUri(Uri uri, List<String> args, message) {
-  // TODO(17738): Implement this.
-  throw new UnimplementedError();
-}
-
-createCustomUpgrader(Type customElementClass, $this) => $this;
-
-/**
- * Emitted for any setlike IDL entry needs a callback signature.
- * Today there is only one.
- */
-@DomName('FontFaceSetForEachCallback')
-@Experimental() // untriaged
-typedef void FontFaceSetForEachCallback(
-    FontFace fontFace, FontFace fontFaceAgain, FontFaceSet set);
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('AbstractWorker')
-abstract class AbstractWorker extends Interceptor implements EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory AbstractWorker._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `error` events to event
-   * handlers that are not necessarily instances of [AbstractWorker].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('AbstractWorker.errorEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> errorEvent =
-      const EventStreamProvider<Event>('error');
-
-  /// Stream of `error` events handled by this [AbstractWorker].
-  @DomName('AbstractWorker.onerror')
-  @DocsEditable()
-  Stream<Event> get onError => errorEvent.forTarget(this);
-}
-// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLAnchorElement')
-@Native("HTMLAnchorElement")
-class AnchorElement extends HtmlElement implements UrlUtils {
-  // To suppress missing implicit constructor warnings.
-  factory AnchorElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLAnchorElement.HTMLAnchorElement')
-  @DocsEditable()
-  factory AnchorElement({String href}) {
-    AnchorElement e = JS('returns:AnchorElement;creates:AnchorElement;new:true',
-        '#.createElement(#)', document, "a");
-    if (href != null) e.href = href;
-    return e;
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  AnchorElement.created() : super.created();
-
-  @DomName('HTMLAnchorElement.download')
-  @DocsEditable()
-  String download;
-
-  @DomName('HTMLAnchorElement.hreflang')
-  @DocsEditable()
-  String hreflang;
-
-  @DomName('HTMLAnchorElement.referrerpolicy')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String referrerpolicy;
-
-  @DomName('HTMLAnchorElement.rel')
-  @DocsEditable()
-  String rel;
-
-  @DomName('HTMLAnchorElement.target')
-  @DocsEditable()
-  String target;
-
-  @DomName('HTMLAnchorElement.type')
-  @DocsEditable()
-  String type;
-
-  // From URLUtils
-
-  @DomName('HTMLAnchorElement.hash')
-  @DocsEditable()
-  String hash;
-
-  @DomName('HTMLAnchorElement.host')
-  @DocsEditable()
-  String host;
-
-  @DomName('HTMLAnchorElement.hostname')
-  @DocsEditable()
-  String hostname;
-
-  @DomName('HTMLAnchorElement.href')
-  @DocsEditable()
-  String href;
-
-  @DomName('HTMLAnchorElement.origin')
-  @DocsEditable()
-  // WebKit only
-  @Experimental() // non-standard
-  final String origin;
-
-  @DomName('HTMLAnchorElement.password')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String password;
-
-  @DomName('HTMLAnchorElement.pathname')
-  @DocsEditable()
-  String pathname;
-
-  @DomName('HTMLAnchorElement.port')
-  @DocsEditable()
-  String port;
-
-  @DomName('HTMLAnchorElement.protocol')
-  @DocsEditable()
-  String protocol;
-
-  @DomName('HTMLAnchorElement.search')
-  @DocsEditable()
-  String search;
-
-  @DomName('HTMLAnchorElement.username')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String username;
-
-  @DomName('HTMLAnchorElement.toString')
-  @DocsEditable()
-  String toString() => JS('String', 'String(#)', this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Animation')
-@Experimental() // untriaged
-@Native("Animation")
-class Animation extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory Animation._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported => JS('bool', '!!(document.body.animate)');
-
-  @DomName('Animation.currentTime')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num currentTime;
-
-  @DomName('Animation.effect')
-  @DocsEditable()
-  @Experimental() // untriaged
-  AnimationEffectReadOnly effect;
-
-  @DomName('Animation.finished')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Future finished;
-
-  @DomName('Animation.id')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String id;
-
-  @DomName('Animation.playState')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String playState;
-
-  @DomName('Animation.playbackRate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num playbackRate;
-
-  @DomName('Animation.ready')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Future ready;
-
-  @DomName('Animation.startTime')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num startTime;
-
-  @DomName('Animation.cancel')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void cancel() native;
-
-  @DomName('Animation.finish')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void finish() native;
-
-  @DomName('Animation.pause')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void pause() native;
-
-  @DomName('Animation.play')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void play() native;
-
-  @DomName('Animation.reverse')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void reverse() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('AnimationEffectReadOnly')
-@Experimental() // untriaged
-@Native("AnimationEffectReadOnly")
-class AnimationEffectReadOnly extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory AnimationEffectReadOnly._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('AnimationEffectReadOnly.computedTiming')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Map get computedTiming =>
-      convertNativeToDart_Dictionary(this._get_computedTiming);
-  @JSName('computedTiming')
-  @DomName('AnimationEffectReadOnly.computedTiming')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final dynamic _get_computedTiming;
-
-  @DomName('AnimationEffectReadOnly.timing')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final AnimationEffectTiming timing;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('AnimationEffectTiming')
-@Experimental() // untriaged
-@Native("AnimationEffectTiming")
-class AnimationEffectTiming extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory AnimationEffectTiming._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('AnimationEffectTiming.delay')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num delay;
-
-  @DomName('AnimationEffectTiming.direction')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String direction;
-
-  @DomName('AnimationEffectTiming.duration')
-  @DocsEditable()
-  @Experimental() // untriaged
-  @Creates('Null')
-  @Returns('num|String')
-  Object duration;
-
-  @DomName('AnimationEffectTiming.easing')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String easing;
-
-  @DomName('AnimationEffectTiming.endDelay')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num endDelay;
-
-  @DomName('AnimationEffectTiming.fill')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String fill;
-
-  @DomName('AnimationEffectTiming.iterationStart')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num iterationStart;
-
-  @DomName('AnimationEffectTiming.iterations')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num iterations;
-
-  @DomName('AnimationEffectTiming.playbackRate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num playbackRate;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('AnimationEvent')
-@Experimental() // untriaged
-@Native("AnimationEvent")
-class AnimationEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory AnimationEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('AnimationEvent.AnimationEvent')
-  @DocsEditable()
-  factory AnimationEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return AnimationEvent._create_1(type, eventInitDict_1);
-    }
-    return AnimationEvent._create_2(type);
-  }
-  static AnimationEvent _create_1(type, eventInitDict) =>
-      JS('AnimationEvent', 'new AnimationEvent(#,#)', type, eventInitDict);
-  static AnimationEvent _create_2(type) =>
-      JS('AnimationEvent', 'new AnimationEvent(#)', type);
-
-  @DomName('AnimationEvent.animationName')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String animationName;
-
-  @DomName('AnimationEvent.elapsedTime')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double elapsedTime;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('AnimationPlayerEvent')
-@Experimental() // untriaged
-@Native("AnimationPlayerEvent")
-class AnimationPlayerEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory AnimationPlayerEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('AnimationPlayerEvent.AnimationPlayerEvent')
-  @DocsEditable()
-  factory AnimationPlayerEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return AnimationPlayerEvent._create_1(type, eventInitDict_1);
-    }
-    return AnimationPlayerEvent._create_2(type);
-  }
-  static AnimationPlayerEvent _create_1(type, eventInitDict) => JS(
-      'AnimationPlayerEvent',
-      'new AnimationPlayerEvent(#,#)',
-      type,
-      eventInitDict);
-  static AnimationPlayerEvent _create_2(type) =>
-      JS('AnimationPlayerEvent', 'new AnimationPlayerEvent(#)', type);
-
-  @DomName('AnimationPlayerEvent.currentTime')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double currentTime;
-
-  @DomName('AnimationPlayerEvent.timelineTime')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double timelineTime;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('AnimationTimeline')
-@Experimental() // untriaged
-@Native("AnimationTimeline")
-class AnimationTimeline extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory AnimationTimeline._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('AnimationTimeline.currentTime')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num currentTime;
-
-  @DomName('AnimationTimeline.playbackRate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num playbackRate;
-
-  @DomName('AnimationTimeline.getAnimations')
-  @DocsEditable()
-  @Experimental() // untriaged
-  List<Animation> getAnimations() native;
-
-  @DomName('AnimationTimeline.play')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Animation play(AnimationEffectReadOnly source) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('AppBannerPromptResult')
-@Experimental() // untriaged
-@Native("AppBannerPromptResult")
-class AppBannerPromptResult extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory AppBannerPromptResult._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('AppBannerPromptResult.outcome')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String outcome;
-
-  @DomName('AppBannerPromptResult.platform')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String platform;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-/**
- * ApplicationCache is accessed via [Window.applicationCache].
- */
-@DomName('ApplicationCache')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.OPERA)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("ApplicationCache,DOMApplicationCache,OfflineResourceList")
-class ApplicationCache extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory ApplicationCache._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `cached` events to event
-   * handlers that are not necessarily instances of [ApplicationCache].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('ApplicationCache.cachedEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> cachedEvent =
-      const EventStreamProvider<Event>('cached');
-
-  /**
-   * Static factory designed to expose `checking` events to event
-   * handlers that are not necessarily instances of [ApplicationCache].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('ApplicationCache.checkingEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> checkingEvent =
-      const EventStreamProvider<Event>('checking');
-
-  /**
-   * Static factory designed to expose `downloading` events to event
-   * handlers that are not necessarily instances of [ApplicationCache].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('ApplicationCache.downloadingEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> downloadingEvent =
-      const EventStreamProvider<Event>('downloading');
-
-  /**
-   * Static factory designed to expose `error` events to event
-   * handlers that are not necessarily instances of [ApplicationCache].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('ApplicationCache.errorEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> errorEvent =
-      const EventStreamProvider<Event>('error');
-
-  /**
-   * Static factory designed to expose `noupdate` events to event
-   * handlers that are not necessarily instances of [ApplicationCache].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('ApplicationCache.noupdateEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> noUpdateEvent =
-      const EventStreamProvider<Event>('noupdate');
-
-  /**
-   * Static factory designed to expose `obsolete` events to event
-   * handlers that are not necessarily instances of [ApplicationCache].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('ApplicationCache.obsoleteEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> obsoleteEvent =
-      const EventStreamProvider<Event>('obsolete');
-
-  /**
-   * Static factory designed to expose `progress` events to event
-   * handlers that are not necessarily instances of [ApplicationCache].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('ApplicationCache.progressEvent')
-  @DocsEditable()
-  static const EventStreamProvider<ProgressEvent> progressEvent =
-      const EventStreamProvider<ProgressEvent>('progress');
-
-  /**
-   * Static factory designed to expose `updateready` events to event
-   * handlers that are not necessarily instances of [ApplicationCache].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('ApplicationCache.updatereadyEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> updateReadyEvent =
-      const EventStreamProvider<Event>('updateready');
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported => JS('bool', '!!(window.applicationCache)');
-
-  @DomName('ApplicationCache.CHECKING')
-  @DocsEditable()
-  static const int CHECKING = 2;
-
-  @DomName('ApplicationCache.DOWNLOADING')
-  @DocsEditable()
-  static const int DOWNLOADING = 3;
-
-  @DomName('ApplicationCache.IDLE')
-  @DocsEditable()
-  static const int IDLE = 1;
-
-  @DomName('ApplicationCache.OBSOLETE')
-  @DocsEditable()
-  static const int OBSOLETE = 5;
-
-  @DomName('ApplicationCache.UNCACHED')
-  @DocsEditable()
-  static const int UNCACHED = 0;
-
-  @DomName('ApplicationCache.UPDATEREADY')
-  @DocsEditable()
-  static const int UPDATEREADY = 4;
-
-  @DomName('ApplicationCache.status')
-  @DocsEditable()
-  final int status;
-
-  @DomName('ApplicationCache.abort')
-  @DocsEditable()
-  void abort() native;
-
-  @DomName('ApplicationCache.swapCache')
-  @DocsEditable()
-  void swapCache() native;
-
-  @DomName('ApplicationCache.update')
-  @DocsEditable()
-  void update() native;
-
-  /// Stream of `cached` events handled by this [ApplicationCache].
-  @DomName('ApplicationCache.oncached')
-  @DocsEditable()
-  Stream<Event> get onCached => cachedEvent.forTarget(this);
-
-  /// Stream of `checking` events handled by this [ApplicationCache].
-  @DomName('ApplicationCache.onchecking')
-  @DocsEditable()
-  Stream<Event> get onChecking => checkingEvent.forTarget(this);
-
-  /// Stream of `downloading` events handled by this [ApplicationCache].
-  @DomName('ApplicationCache.ondownloading')
-  @DocsEditable()
-  Stream<Event> get onDownloading => downloadingEvent.forTarget(this);
-
-  /// Stream of `error` events handled by this [ApplicationCache].
-  @DomName('ApplicationCache.onerror')
-  @DocsEditable()
-  Stream<Event> get onError => errorEvent.forTarget(this);
-
-  /// Stream of `noupdate` events handled by this [ApplicationCache].
-  @DomName('ApplicationCache.onnoupdate')
-  @DocsEditable()
-  Stream<Event> get onNoUpdate => noUpdateEvent.forTarget(this);
-
-  /// Stream of `obsolete` events handled by this [ApplicationCache].
-  @DomName('ApplicationCache.onobsolete')
-  @DocsEditable()
-  Stream<Event> get onObsolete => obsoleteEvent.forTarget(this);
-
-  /// Stream of `progress` events handled by this [ApplicationCache].
-  @DomName('ApplicationCache.onprogress')
-  @DocsEditable()
-  Stream<ProgressEvent> get onProgress => progressEvent.forTarget(this);
-
-  /// Stream of `updateready` events handled by this [ApplicationCache].
-  @DomName('ApplicationCache.onupdateready')
-  @DocsEditable()
-  Stream<Event> get onUpdateReady => updateReadyEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ApplicationCacheErrorEvent')
-@Experimental() // untriaged
-@Native("ApplicationCacheErrorEvent")
-class ApplicationCacheErrorEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory ApplicationCacheErrorEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('ApplicationCacheErrorEvent.ApplicationCacheErrorEvent')
-  @DocsEditable()
-  factory ApplicationCacheErrorEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return ApplicationCacheErrorEvent._create_1(type, eventInitDict_1);
-    }
-    return ApplicationCacheErrorEvent._create_2(type);
-  }
-  static ApplicationCacheErrorEvent _create_1(type, eventInitDict) => JS(
-      'ApplicationCacheErrorEvent',
-      'new ApplicationCacheErrorEvent(#,#)',
-      type,
-      eventInitDict);
-  static ApplicationCacheErrorEvent _create_2(type) => JS(
-      'ApplicationCacheErrorEvent', 'new ApplicationCacheErrorEvent(#)', type);
-
-  @DomName('ApplicationCacheErrorEvent.message')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String message;
-
-  @DomName('ApplicationCacheErrorEvent.reason')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String reason;
-
-  @DomName('ApplicationCacheErrorEvent.status')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int status;
-
-  @DomName('ApplicationCacheErrorEvent.url')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String url;
-}
-// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-/**
- * DOM Area Element, which links regions of an image map with a hyperlink.
- *
- * The element can also define an uninteractive region of the map.
- *
- * See also:
- *
- * * [`<area>`](https://developer.mozilla.org/en-US/docs/HTML/Element/area)
- * on MDN.
- */
-@DomName('HTMLAreaElement')
-@Native("HTMLAreaElement")
-class AreaElement extends HtmlElement implements UrlUtils {
-  // To suppress missing implicit constructor warnings.
-  factory AreaElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLAreaElement.HTMLAreaElement')
-  @DocsEditable()
-  factory AreaElement() => JS(
-      'returns:AreaElement;creates:AreaElement;new:true',
-      '#.createElement(#)',
-      document,
-      "area");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  AreaElement.created() : super.created();
-
-  @DomName('HTMLAreaElement.alt')
-  @DocsEditable()
-  String alt;
-
-  @DomName('HTMLAreaElement.coords')
-  @DocsEditable()
-  String coords;
-
-  @DomName('HTMLAreaElement.referrerpolicy')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String referrerpolicy;
-
-  @DomName('HTMLAreaElement.shape')
-  @DocsEditable()
-  String shape;
-
-  @DomName('HTMLAreaElement.target')
-  @DocsEditable()
-  String target;
-
-  // From URLUtils
-
-  @DomName('HTMLAreaElement.hash')
-  @DocsEditable()
-  String hash;
-
-  @DomName('HTMLAreaElement.host')
-  @DocsEditable()
-  String host;
-
-  @DomName('HTMLAreaElement.hostname')
-  @DocsEditable()
-  String hostname;
-
-  @DomName('HTMLAreaElement.href')
-  @DocsEditable()
-  String href;
-
-  @DomName('HTMLAreaElement.origin')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String origin;
-
-  @DomName('HTMLAreaElement.password')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String password;
-
-  @DomName('HTMLAreaElement.pathname')
-  @DocsEditable()
-  String pathname;
-
-  @DomName('HTMLAreaElement.port')
-  @DocsEditable()
-  String port;
-
-  @DomName('HTMLAreaElement.protocol')
-  @DocsEditable()
-  String protocol;
-
-  @DomName('HTMLAreaElement.search')
-  @DocsEditable()
-  String search;
-
-  @DomName('HTMLAreaElement.username')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String username;
-
-  @DomName('HTMLAreaElement.toString')
-  @DocsEditable()
-  String toString() => JS('String', 'String(#)', this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLAudioElement')
-@Native("HTMLAudioElement")
-class AudioElement extends MediaElement {
-  @DomName('HTMLAudioElement.HTMLAudioElement')
-  @DocsEditable()
-  factory AudioElement._([String src]) {
-    if (src != null) {
-      return AudioElement._create_1(src);
-    }
-    return AudioElement._create_2();
-  }
-  static AudioElement _create_1(src) => JS('AudioElement', 'new Audio(#)', src);
-  static AudioElement _create_2() => JS('AudioElement', 'new Audio()');
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  AudioElement.created() : super.created();
-
-  factory AudioElement([String src]) => new AudioElement._(src);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('AudioTrack')
-@Experimental() // untriaged
-@Native("AudioTrack")
-class AudioTrack extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory AudioTrack._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('AudioTrack.enabled')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool enabled;
-
-  @DomName('AudioTrack.id')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String id;
-
-  @DomName('AudioTrack.kind')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String kind;
-
-  @DomName('AudioTrack.label')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String label;
-
-  @DomName('AudioTrack.language')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String language;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('AudioTrackList')
-@Experimental() // untriaged
-@Native("AudioTrackList")
-class AudioTrackList extends EventTarget
-    with ListMixin<AudioTrack>, ImmutableListMixin<AudioTrack>
-    implements JavaScriptIndexingBehavior<AudioTrack>, List<AudioTrack> {
-  // To suppress missing implicit constructor warnings.
-  factory AudioTrackList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('AudioTrackList.changeEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> changeEvent =
-      const EventStreamProvider<Event>('change');
-
-  @DomName('AudioTrackList.length')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int get length => JS("int", "#.length", this);
-
-  AudioTrack operator [](int index) {
-    if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
-      throw new RangeError.index(index, this);
-    return JS("AudioTrack", "#[#]", this, index);
-  }
-
-  void operator []=(int index, AudioTrack value) {
-    throw new UnsupportedError("Cannot assign element of immutable List.");
-  }
-  // -- start List<AudioTrack> mixins.
-  // AudioTrack is the element type.
-
-  set length(int value) {
-    throw new UnsupportedError("Cannot resize immutable List.");
-  }
-
-  AudioTrack get first {
-    if (this.length > 0) {
-      return JS('AudioTrack', '#[0]', this);
-    }
-    throw new StateError("No elements");
-  }
-
-  AudioTrack get last {
-    int len = this.length;
-    if (len > 0) {
-      return JS('AudioTrack', '#[#]', this, len - 1);
-    }
-    throw new StateError("No elements");
-  }
-
-  AudioTrack get single {
-    int len = this.length;
-    if (len == 1) {
-      return JS('AudioTrack', '#[0]', this);
-    }
-    if (len == 0) throw new StateError("No elements");
-    throw new StateError("More than one element");
-  }
-
-  AudioTrack elementAt(int index) => this[index];
-  // -- end List<AudioTrack> mixins.
-
-  @DomName('AudioTrackList.__getter__')
-  @DocsEditable()
-  @Experimental() // untriaged
-  AudioTrack __getter__(int index) native;
-
-  @DomName('AudioTrackList.getTrackById')
-  @DocsEditable()
-  @Experimental() // untriaged
-  AudioTrack getTrackById(String id) native;
-
-  @DomName('AudioTrackList.onchange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onChange => changeEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('AutocompleteErrorEvent')
-// http://wiki.whatwg.org/wiki/RequestAutocomplete
-@Experimental()
-@Native("AutocompleteErrorEvent")
-class AutocompleteErrorEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory AutocompleteErrorEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('AutocompleteErrorEvent.AutocompleteErrorEvent')
-  @DocsEditable()
-  factory AutocompleteErrorEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return AutocompleteErrorEvent._create_1(type, eventInitDict_1);
-    }
-    return AutocompleteErrorEvent._create_2(type);
-  }
-  static AutocompleteErrorEvent _create_1(type, eventInitDict) => JS(
-      'AutocompleteErrorEvent',
-      'new AutocompleteErrorEvent(#,#)',
-      type,
-      eventInitDict);
-  static AutocompleteErrorEvent _create_2(type) =>
-      JS('AutocompleteErrorEvent', 'new AutocompleteErrorEvent(#)', type);
-
-  @DomName('AutocompleteErrorEvent.reason')
-  @DocsEditable()
-  final String reason;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLBRElement')
-@Native("HTMLBRElement")
-class BRElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory BRElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLBRElement.HTMLBRElement')
-  @DocsEditable()
-  factory BRElement() => JS('returns:BRElement;creates:BRElement;new:true',
-      '#.createElement(#)', document, "br");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  BRElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('BarProp')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#barprop
-@deprecated // standard
-@Native("BarProp")
-class BarProp extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory BarProp._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('BarProp.visible')
-  @DocsEditable()
-  final bool visible;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLBaseElement')
-@Native("HTMLBaseElement")
-class BaseElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory BaseElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLBaseElement.HTMLBaseElement')
-  @DocsEditable()
-  factory BaseElement() => JS(
-      'returns:BaseElement;creates:BaseElement;new:true',
-      '#.createElement(#)',
-      document,
-      "base");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  BaseElement.created() : super.created();
-
-  @DomName('HTMLBaseElement.href')
-  @DocsEditable()
-  String href;
-
-  @DomName('HTMLBaseElement.target')
-  @DocsEditable()
-  String target;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('BatteryManager')
-// https://dvcs.w3.org/hg/dap/raw-file/default/battery/Overview.html#batterymanager-interface
-@Experimental() // stable
-@Native("BatteryManager")
-class BatteryManager extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory BatteryManager._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('BatteryManager.charging')
-  @DocsEditable()
-  final bool charging;
-
-  @DomName('BatteryManager.chargingTime')
-  @DocsEditable()
-  final double chargingTime;
-
-  @DomName('BatteryManager.dischargingTime')
-  @DocsEditable()
-  final double dischargingTime;
-
-  @DomName('BatteryManager.level')
-  @DocsEditable()
-  final double level;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('BeforeInstallPromptEvent')
-@Experimental() // untriaged
-@Native("BeforeInstallPromptEvent")
-class BeforeInstallPromptEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory BeforeInstallPromptEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('BeforeInstallPromptEvent.BeforeInstallPromptEvent')
-  @DocsEditable()
-  factory BeforeInstallPromptEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return BeforeInstallPromptEvent._create_1(type, eventInitDict_1);
-    }
-    return BeforeInstallPromptEvent._create_2(type);
-  }
-  static BeforeInstallPromptEvent _create_1(type, eventInitDict) => JS(
-      'BeforeInstallPromptEvent',
-      'new BeforeInstallPromptEvent(#,#)',
-      type,
-      eventInitDict);
-  static BeforeInstallPromptEvent _create_2(type) =>
-      JS('BeforeInstallPromptEvent', 'new BeforeInstallPromptEvent(#)', type);
-
-  List<String> get platforms => JS("List<String>", "#.platforms", this);
-
-  @DomName('BeforeInstallPromptEvent.userChoice')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Future userChoice;
-
-  @DomName('BeforeInstallPromptEvent.prompt')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future prompt() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('BeforeUnloadEvent')
-@Native("BeforeUnloadEvent")
-class BeforeUnloadEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory BeforeUnloadEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  // Shadowing definition.
-  String get returnValue => JS("String", "#.returnValue", this);
-
-  set returnValue(String value) {
-    JS("void", "#.returnValue = #", this, value);
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('Blob')
-@Native("Blob")
-class Blob extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Blob._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Blob.size')
-  @DocsEditable()
-  final int size;
-
-  @DomName('Blob.type')
-  @DocsEditable()
-  final String type;
-
-  @DomName('Blob.close')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void close() native;
-
-  @DomName('Blob.slice')
-  @DocsEditable()
-  Blob slice([int start, int end, String contentType]) native;
-
-  factory Blob(List blobParts, [String type, String endings]) {
-    // TODO: validate that blobParts is a JS Array and convert if not.
-    // TODO: any coercions on the elements of blobParts, e.g. coerce a typed
-    // array to ArrayBuffer if it is a total view.
-    if (type == null && endings == null) {
-      return _create_1(blobParts);
-    }
-    var bag = _create_bag();
-    if (type != null) _bag_set(bag, 'type', type);
-    if (endings != null) _bag_set(bag, 'endings', endings);
-    return _create_2(blobParts, bag);
-  }
-
-  static _create_1(parts) => JS('Blob', 'new self.Blob(#)', parts);
-  static _create_2(parts, bag) => JS('Blob', 'new self.Blob(#, #)', parts, bag);
-
-  static _create_bag() => JS('var', '{}');
-  static _bag_set(bag, key, value) {
-    JS('void', '#[#] = #', bag, key, value);
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('BlobCallback')
-@Experimental() // untriaged
-typedef void BlobCallback(Blob blob);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('BlobEvent')
-@Experimental() // untriaged
-@Native("BlobEvent")
-class BlobEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory BlobEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('BlobEvent.BlobEvent')
-  @DocsEditable()
-  factory BlobEvent(String type, Map eventInitDict) {
-    var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-    return BlobEvent._create_1(type, eventInitDict_1);
-  }
-  static BlobEvent _create_1(type, eventInitDict) =>
-      JS('BlobEvent', 'new BlobEvent(#,#)', type, eventInitDict);
-
-  @DomName('BlobEvent.data')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Blob data;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Body')
-@Experimental() // untriaged
-@Native("Body")
-class Body extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Body._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Body.bodyUsed')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool bodyUsed;
-
-  @DomName('Body.arrayBuffer')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future arrayBuffer() native;
-
-  @DomName('Body.blob')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future blob() native;
-
-  @DomName('Body.json')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future json() native;
-
-  @DomName('Body.text')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future text() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLBodyElement')
-@Native("HTMLBodyElement")
-class BodyElement extends HtmlElement implements WindowEventHandlers {
-  // To suppress missing implicit constructor warnings.
-  factory BodyElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `blur` events to event
-   * handlers that are not necessarily instances of [BodyElement].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('HTMLBodyElement.blurEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> blurEvent =
-      const EventStreamProvider<Event>('blur');
-
-  /**
-   * Static factory designed to expose `error` events to event
-   * handlers that are not necessarily instances of [BodyElement].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('HTMLBodyElement.errorEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> errorEvent =
-      const EventStreamProvider<Event>('error');
-
-  /**
-   * Static factory designed to expose `focus` events to event
-   * handlers that are not necessarily instances of [BodyElement].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('HTMLBodyElement.focusEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> focusEvent =
-      const EventStreamProvider<Event>('focus');
-
-  /**
-   * Static factory designed to expose `hashchange` events to event
-   * handlers that are not necessarily instances of [BodyElement].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('HTMLBodyElement.hashchangeEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> hashChangeEvent =
-      const EventStreamProvider<Event>('hashchange');
-
-  /**
-   * Static factory designed to expose `load` events to event
-   * handlers that are not necessarily instances of [BodyElement].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('HTMLBodyElement.loadEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> loadEvent =
-      const EventStreamProvider<Event>('load');
-
-  /**
-   * Static factory designed to expose `message` events to event
-   * handlers that are not necessarily instances of [BodyElement].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('HTMLBodyElement.messageEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MessageEvent> messageEvent =
-      const EventStreamProvider<MessageEvent>('message');
-
-  /**
-   * Static factory designed to expose `offline` events to event
-   * handlers that are not necessarily instances of [BodyElement].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('HTMLBodyElement.offlineEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> offlineEvent =
-      const EventStreamProvider<Event>('offline');
-
-  /**
-   * Static factory designed to expose `online` events to event
-   * handlers that are not necessarily instances of [BodyElement].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('HTMLBodyElement.onlineEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> onlineEvent =
-      const EventStreamProvider<Event>('online');
-
-  /**
-   * Static factory designed to expose `popstate` events to event
-   * handlers that are not necessarily instances of [BodyElement].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('HTMLBodyElement.popstateEvent')
-  @DocsEditable()
-  static const EventStreamProvider<PopStateEvent> popStateEvent =
-      const EventStreamProvider<PopStateEvent>('popstate');
-
-  /**
-   * Static factory designed to expose `resize` events to event
-   * handlers that are not necessarily instances of [BodyElement].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('HTMLBodyElement.resizeEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> resizeEvent =
-      const EventStreamProvider<Event>('resize');
-
-  @DomName('HTMLBodyElement.scrollEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> scrollEvent =
-      const EventStreamProvider<Event>('scroll');
-
-  /**
-   * Static factory designed to expose `storage` events to event
-   * handlers that are not necessarily instances of [BodyElement].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('HTMLBodyElement.storageEvent')
-  @DocsEditable()
-  static const EventStreamProvider<StorageEvent> storageEvent =
-      const EventStreamProvider<StorageEvent>('storage');
-
-  /**
-   * Static factory designed to expose `unload` events to event
-   * handlers that are not necessarily instances of [BodyElement].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('HTMLBodyElement.unloadEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> unloadEvent =
-      const EventStreamProvider<Event>('unload');
-
-  @DomName('HTMLBodyElement.HTMLBodyElement')
-  @DocsEditable()
-  factory BodyElement() => JS(
-      'returns:BodyElement;creates:BodyElement;new:true',
-      '#.createElement(#)',
-      document,
-      "body");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  BodyElement.created() : super.created();
-
-  /// Stream of `blur` events handled by this [BodyElement].
-  @DomName('HTMLBodyElement.onblur')
-  @DocsEditable()
-  ElementStream<Event> get onBlur => blurEvent.forElement(this);
-
-  /// Stream of `error` events handled by this [BodyElement].
-  @DomName('HTMLBodyElement.onerror')
-  @DocsEditable()
-  ElementStream<Event> get onError => errorEvent.forElement(this);
-
-  /// Stream of `focus` events handled by this [BodyElement].
-  @DomName('HTMLBodyElement.onfocus')
-  @DocsEditable()
-  ElementStream<Event> get onFocus => focusEvent.forElement(this);
-
-  /// Stream of `hashchange` events handled by this [BodyElement].
-  @DomName('HTMLBodyElement.onhashchange')
-  @DocsEditable()
-  ElementStream<Event> get onHashChange => hashChangeEvent.forElement(this);
-
-  /// Stream of `load` events handled by this [BodyElement].
-  @DomName('HTMLBodyElement.onload')
-  @DocsEditable()
-  ElementStream<Event> get onLoad => loadEvent.forElement(this);
-
-  /// Stream of `message` events handled by this [BodyElement].
-  @DomName('HTMLBodyElement.onmessage')
-  @DocsEditable()
-  ElementStream<MessageEvent> get onMessage => messageEvent.forElement(this);
-
-  /// Stream of `offline` events handled by this [BodyElement].
-  @DomName('HTMLBodyElement.onoffline')
-  @DocsEditable()
-  ElementStream<Event> get onOffline => offlineEvent.forElement(this);
-
-  /// Stream of `online` events handled by this [BodyElement].
-  @DomName('HTMLBodyElement.ononline')
-  @DocsEditable()
-  ElementStream<Event> get onOnline => onlineEvent.forElement(this);
-
-  /// Stream of `popstate` events handled by this [BodyElement].
-  @DomName('HTMLBodyElement.onpopstate')
-  @DocsEditable()
-  ElementStream<PopStateEvent> get onPopState => popStateEvent.forElement(this);
-
-  /// Stream of `resize` events handled by this [BodyElement].
-  @DomName('HTMLBodyElement.onresize')
-  @DocsEditable()
-  ElementStream<Event> get onResize => resizeEvent.forElement(this);
-
-  @DomName('HTMLBodyElement.onscroll')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onScroll => scrollEvent.forElement(this);
-
-  /// Stream of `storage` events handled by this [BodyElement].
-  @DomName('HTMLBodyElement.onstorage')
-  @DocsEditable()
-  ElementStream<StorageEvent> get onStorage => storageEvent.forElement(this);
-
-  /// Stream of `unload` events handled by this [BodyElement].
-  @DomName('HTMLBodyElement.onunload')
-  @DocsEditable()
-  ElementStream<Event> get onUnload => unloadEvent.forElement(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLButtonElement')
-@Native("HTMLButtonElement")
-class ButtonElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory ButtonElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLButtonElement.HTMLButtonElement')
-  @DocsEditable()
-  factory ButtonElement() => JS(
-      'returns:ButtonElement;creates:ButtonElement;new:true',
-      '#.createElement(#)',
-      document,
-      "button");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  ButtonElement.created() : super.created();
-
-  @DomName('HTMLButtonElement.autofocus')
-  @DocsEditable()
-  bool autofocus;
-
-  @DomName('HTMLButtonElement.disabled')
-  @DocsEditable()
-  bool disabled;
-
-  @DomName('HTMLButtonElement.form')
-  @DocsEditable()
-  final FormElement form;
-
-  @DomName('HTMLButtonElement.formAction')
-  @DocsEditable()
-  String formAction;
-
-  @DomName('HTMLButtonElement.formEnctype')
-  @DocsEditable()
-  String formEnctype;
-
-  @DomName('HTMLButtonElement.formMethod')
-  @DocsEditable()
-  String formMethod;
-
-  @DomName('HTMLButtonElement.formNoValidate')
-  @DocsEditable()
-  bool formNoValidate;
-
-  @DomName('HTMLButtonElement.formTarget')
-  @DocsEditable()
-  String formTarget;
-
-  @DomName('HTMLButtonElement.labels')
-  @DocsEditable()
-  @Unstable()
-  @Returns('NodeList|Null')
-  @Creates('NodeList')
-  final List<Node> labels;
-
-  @DomName('HTMLButtonElement.name')
-  @DocsEditable()
-  String name;
-
-  @DomName('HTMLButtonElement.type')
-  @DocsEditable()
-  String type;
-
-  @DomName('HTMLButtonElement.validationMessage')
-  @DocsEditable()
-  final String validationMessage;
-
-  @DomName('HTMLButtonElement.validity')
-  @DocsEditable()
-  final ValidityState validity;
-
-  @DomName('HTMLButtonElement.value')
-  @DocsEditable()
-  String value;
-
-  @DomName('HTMLButtonElement.willValidate')
-  @DocsEditable()
-  final bool willValidate;
-
-  @DomName('HTMLButtonElement.checkValidity')
-  @DocsEditable()
-  bool checkValidity() native;
-
-  @DomName('HTMLButtonElement.reportValidity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool reportValidity() native;
-
-  @DomName('HTMLButtonElement.setCustomValidity')
-  @DocsEditable()
-  void setCustomValidity(String error) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CDATASection')
-// http://dom.spec.whatwg.org/#cdatasection
-@deprecated // deprecated
-@Native("CDATASection")
-class CDataSection extends Text {
-  // To suppress missing implicit constructor warnings.
-  factory CDataSection._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CacheStorage')
-@Experimental() // untriaged
-@Native("CacheStorage")
-class CacheStorage extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory CacheStorage._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CacheStorage.delete')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future delete(String cacheName) native;
-
-  @DomName('CacheStorage.has')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future has(String cacheName) native;
-
-  @DomName('CacheStorage.keys')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future keys() native;
-
-  @DomName('CacheStorage.match')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future match(/*RequestInfo*/ request, [Map options]) {
-    if (options != null) {
-      var options_1 = convertDartToNative_Dictionary(options);
-      return _match_1(request, options_1);
-    }
-    return _match_2(request);
-  }
-
-  @JSName('match')
-  @DomName('CacheStorage.match')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _match_1(request, options) native;
-  @JSName('match')
-  @DomName('CacheStorage.match')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _match_2(request) native;
-
-  @DomName('CacheStorage.open')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future open(String cacheName) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CalcLength')
-@Experimental() // untriaged
-@Native("CalcLength")
-class CalcLength extends LengthValue {
-  // To suppress missing implicit constructor warnings.
-  factory CalcLength._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CalcLength.CalcLength')
-  @DocsEditable()
-  factory CalcLength(calcDictionary_OR_length) {
-    if ((calcDictionary_OR_length is LengthValue)) {
-      return CalcLength._create_1(calcDictionary_OR_length);
-    }
-    if ((calcDictionary_OR_length is Map)) {
-      var calcDictionary_1 =
-          convertDartToNative_Dictionary(calcDictionary_OR_length);
-      return CalcLength._create_2(calcDictionary_1);
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-  static CalcLength _create_1(calcDictionary_OR_length) =>
-      JS('CalcLength', 'new CalcLength(#)', calcDictionary_OR_length);
-  static CalcLength _create_2(calcDictionary_OR_length) =>
-      JS('CalcLength', 'new CalcLength(#)', calcDictionary_OR_length);
-
-  @DomName('CalcLength.ch')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double ch;
-
-  @DomName('CalcLength.cm')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double cm;
-
-  @DomName('CalcLength.em')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double em;
-
-  @DomName('CalcLength.ex')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double ex;
-
-  @JSName('in')
-  @DomName('CalcLength.in')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double inch;
-
-  @DomName('CalcLength.mm')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double mm;
-
-  @DomName('CalcLength.pc')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double pc;
-
-  @DomName('CalcLength.percent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double percent;
-
-  @DomName('CalcLength.pt')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double pt;
-
-  @DomName('CalcLength.px')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double px;
-
-  @DomName('CalcLength.rem')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double rem;
-
-  @DomName('CalcLength.vh')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double vh;
-
-  @DomName('CalcLength.vmax')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double vmax;
-
-  @DomName('CalcLength.vmin')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double vmin;
-
-  @DomName('CalcLength.vw')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double vw;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CanvasCaptureMediaStreamTrack')
-@Experimental() // untriaged
-@Native("CanvasCaptureMediaStreamTrack")
-class CanvasCaptureMediaStreamTrack extends MediaStreamTrack {
-  // To suppress missing implicit constructor warnings.
-  factory CanvasCaptureMediaStreamTrack._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CanvasCaptureMediaStreamTrack.canvas')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final CanvasElement canvas;
-
-  @DomName('CanvasCaptureMediaStreamTrack.requestFrame')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void requestFrame() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('HTMLCanvasElement')
-@Native("HTMLCanvasElement")
-class CanvasElement extends HtmlElement implements CanvasImageSource {
-  // To suppress missing implicit constructor warnings.
-  factory CanvasElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `webglcontextlost` events to event
-   * handlers that are not necessarily instances of [CanvasElement].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('HTMLCanvasElement.webglcontextlostEvent')
-  @DocsEditable()
-  static const EventStreamProvider<gl.ContextEvent> webGlContextLostEvent =
-      const EventStreamProvider<gl.ContextEvent>('webglcontextlost');
-
-  /**
-   * Static factory designed to expose `webglcontextrestored` events to event
-   * handlers that are not necessarily instances of [CanvasElement].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('HTMLCanvasElement.webglcontextrestoredEvent')
-  @DocsEditable()
-  static const EventStreamProvider<gl.ContextEvent> webGlContextRestoredEvent =
-      const EventStreamProvider<gl.ContextEvent>('webglcontextrestored');
-
-  @DomName('HTMLCanvasElement.HTMLCanvasElement')
-  @DocsEditable()
-  factory CanvasElement({int width, int height}) {
-    CanvasElement e = JS('returns:CanvasElement;creates:CanvasElement;new:true',
-        '#.createElement(#)', document, "canvas");
-    if (width != null) e.width = width;
-    if (height != null) e.height = height;
-    return e;
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  CanvasElement.created() : super.created();
-
-  /// The height of this canvas element in CSS pixels.
-  @DomName('HTMLCanvasElement.height')
-  @DocsEditable()
-  int height;
-
-  /// The width of this canvas element in CSS pixels.
-  @DomName('HTMLCanvasElement.width')
-  @DocsEditable()
-  int width;
-
-  @DomName('HTMLCanvasElement.captureStream')
-  @DocsEditable()
-  @Experimental() // untriaged
-  MediaStream captureStream([num frameRate]) native;
-
-  @DomName('HTMLCanvasElement.getContext')
-  @DocsEditable()
-  @Creates('CanvasRenderingContext2D|RenderingContext|RenderingContext2')
-  @Returns('CanvasRenderingContext2D|RenderingContext|RenderingContext2|Null')
-  Object getContext(String contextId, [Map attributes]) {
-    if (attributes != null) {
-      var attributes_1 = convertDartToNative_Dictionary(attributes);
-      return _getContext_1(contextId, attributes_1);
-    }
-    return _getContext_2(contextId);
-  }
-
-  @JSName('getContext')
-  @DomName('HTMLCanvasElement.getContext')
-  @DocsEditable()
-  @Creates('CanvasRenderingContext2D|RenderingContext|RenderingContext2')
-  @Returns('CanvasRenderingContext2D|RenderingContext|RenderingContext2|Null')
-  Object _getContext_1(contextId, attributes) native;
-  @JSName('getContext')
-  @DomName('HTMLCanvasElement.getContext')
-  @DocsEditable()
-  @Creates('CanvasRenderingContext2D|RenderingContext|RenderingContext2')
-  @Returns('CanvasRenderingContext2D|RenderingContext|RenderingContext2|Null')
-  Object _getContext_2(contextId) native;
-
-  @DomName('HTMLCanvasElement.toBlob')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void toBlob(BlobCallback callback, String type, [Object arguments]) native;
-
-  @JSName('toDataURL')
-  @DomName('HTMLCanvasElement.toDataURL')
-  @DocsEditable()
-  String _toDataUrl(String type, [arguments_OR_quality]) native;
-
-  /// Stream of `webglcontextlost` events handled by this [CanvasElement].
-  @DomName('HTMLCanvasElement.onwebglcontextlost')
-  @DocsEditable()
-  ElementStream<gl.ContextEvent> get onWebGlContextLost =>
-      webGlContextLostEvent.forElement(this);
-
-  /// Stream of `webglcontextrestored` events handled by this [CanvasElement].
-  @DomName('HTMLCanvasElement.onwebglcontextrestored')
-  @DocsEditable()
-  ElementStream<gl.ContextEvent> get onWebGlContextRestored =>
-      webGlContextRestoredEvent.forElement(this);
-
-  /** An API for drawing on this canvas. */
-  CanvasRenderingContext2D get context2D =>
-      JS('Null|CanvasRenderingContext2D', '#.getContext(#)', this, '2d');
-
-  /**
-   * Returns a new Web GL context for this canvas.
-   *
-   * ## Other resources
-   *
-   * * [WebGL fundamentals](http://www.html5rocks.com/en/tutorials/webgl/webgl_fundamentals/)
-   *   from HTML5Rocks.
-   * * [WebGL homepage](http://get.webgl.org/).
-   */
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.FIREFOX)
-  @Experimental()
-  gl.RenderingContext getContext3d(
-      {alpha: true,
-      depth: true,
-      stencil: false,
-      antialias: true,
-      premultipliedAlpha: true,
-      preserveDrawingBuffer: false}) {
-    var options = {
-      'alpha': alpha,
-      'depth': depth,
-      'stencil': stencil,
-      'antialias': antialias,
-      'premultipliedAlpha': premultipliedAlpha,
-      'preserveDrawingBuffer': preserveDrawingBuffer,
-    };
-    var context = getContext('webgl', options);
-    if (context == null) {
-      context = getContext('experimental-webgl', options);
-    }
-    return context;
-  }
-
-  /**
-   * Returns a data URI containing a representation of the image in the
-   * format specified by type (defaults to 'image/png').
-   *
-   * Data Uri format is as follow
-   * `data:[<MIME-type>][;charset=<encoding>][;base64],<data>`
-   *
-   * Optional parameter [quality] in the range of 0.0 and 1.0 can be used when
-   * requesting [type] 'image/jpeg' or 'image/webp'. If [quality] is not passed
-   * the default value is used. Note: the default value varies by browser.
-   *
-   * If the height or width of this canvas element is 0, then 'data:' is
-   * returned, representing no data.
-   *
-   * If the type requested is not 'image/png', and the returned value is
-   * 'data:image/png', then the requested type is not supported.
-   *
-   * Example usage:
-   *
-   *     CanvasElement canvas = new CanvasElement();
-   *     var ctx = canvas.context2D
-   *     ..fillStyle = "rgb(200,0,0)"
-   *     ..fillRect(10, 10, 55, 50);
-   *     var dataUrl = canvas.toDataUrl("image/jpeg", 0.95);
-   *     // The Data Uri would look similar to
-   *     // 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
-   *     // AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
-   *     // 9TXL0Y4OHwAAAABJRU5ErkJggg=='
-   *     //Create a new image element from the data URI.
-   *     var img = new ImageElement();
-   *     img.src = dataUrl;
-   *     document.body.children.add(img);
-   *
-   * See also:
-   *
-   * * [Data URI Scheme](http://en.wikipedia.org/wiki/Data_URI_scheme) from Wikipedia.
-   *
-   * * [HTMLCanvasElement](https://developer.mozilla.org/en-US/docs/DOM/HTMLCanvasElement) from MDN.
-   *
-   * * [toDataUrl](http://dev.w3.org/html5/spec/the-canvas-element.html#dom-canvas-todataurl) from W3C.
-   */
-  String toDataUrl([String type = 'image/png', num quality]) =>
-      _toDataUrl(type, quality);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-/**
- * An opaque canvas object representing a gradient.
- *
- * Created by calling [createLinearGradient] or [createRadialGradient] on a
- * [CanvasRenderingContext2D] object.
- *
- * Example usage:
- *
- *     var canvas = new CanvasElement(width: 600, height: 600);
- *     var ctx = canvas.context2D;
- *     ctx.clearRect(0, 0, 600, 600);
- *     ctx.save();
- *     // Create radial gradient.
- *     CanvasGradient gradient = ctx.createRadialGradient(0, 0, 0, 0, 0, 600);
- *     gradient.addColorStop(0, '#000');
- *     gradient.addColorStop(1, 'rgb(255, 255, 255)');
- *     // Assign gradients to fill.
- *     ctx.fillStyle = gradient;
- *     // Draw a rectangle with a gradient fill.
- *     ctx.fillRect(0, 0, 600, 600);
- *     ctx.save();
- *     document.body.children.add(canvas);
- *
- * See also:
- *
- * * [CanvasGradient](https://developer.mozilla.org/en-US/docs/DOM/CanvasGradient) from MDN.
- * * [CanvasGradient](https://html.spec.whatwg.org/multipage/scripting.html#canvasgradient)
- *   from WHATWG.
- * * [CanvasGradient](http://www.w3.org/TR/2010/WD-2dcontext-20100304/#canvasgradient) from W3C.
- */
-@DomName('CanvasGradient')
-@Native("CanvasGradient")
-class CanvasGradient extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory CanvasGradient._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Adds a color stop to this gradient at the offset.
-   *
-   * The [offset] can range between 0.0 and 1.0.
-   *
-   * See also:
-   *
-   * * [Multiple Color Stops](https://developer.mozilla.org/en-US/docs/CSS/linear-gradient#Gradient_with_multiple_color_stops) from MDN.
-   */
-  @DomName('CanvasGradient.addColorStop')
-  @DocsEditable()
-  void addColorStop(num offset, String color) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-/**
- * An opaque object representing a pattern of image, canvas, or video.
- *
- * Created by calling [createPattern] on a [CanvasRenderingContext2D] object.
- *
- * Example usage:
- *
- *     var canvas = new CanvasElement(width: 600, height: 600);
- *     var ctx = canvas.context2D;
- *     var img = new ImageElement();
- *     // Image src needs to be loaded before pattern is applied.
- *     img.onLoad.listen((event) {
- *       // When the image is loaded, create a pattern
- *       // from the ImageElement.
- *       CanvasPattern pattern = ctx.createPattern(img, 'repeat');
- *       ctx.rect(0, 0, canvas.width, canvas.height);
- *       ctx.fillStyle = pattern;
- *       ctx.fill();
- *     });
- *     img.src = "images/foo.jpg";
- *     document.body.children.add(canvas);
- *
- * See also:
- * * [CanvasPattern](https://developer.mozilla.org/en-US/docs/DOM/CanvasPattern) from MDN.
- * * [CanvasPattern](https://html.spec.whatwg.org/multipage/scripting.html#canvaspattern)
- *   from WHATWG.
- * * [CanvasPattern](http://www.w3.org/TR/2010/WD-2dcontext-20100304/#canvaspattern) from W3C.
- */
-@DomName('CanvasPattern')
-@Native("CanvasPattern")
-class CanvasPattern extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory CanvasPattern._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CanvasPattern.setTransform')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void setTransform(Matrix transform) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-abstract class CanvasRenderingContext {
-  CanvasElement get canvas;
-}
-
-@DomName('CanvasRenderingContext2D')
-@Native("CanvasRenderingContext2D")
-class CanvasRenderingContext2D extends Interceptor
-    implements CanvasRenderingContext {
-  // To suppress missing implicit constructor warnings.
-  factory CanvasRenderingContext2D._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CanvasRenderingContext2D.canvas')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final CanvasElement canvas;
-
-  @DomName('CanvasRenderingContext2D.currentTransform')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Matrix currentTransform;
-
-  @DomName('CanvasRenderingContext2D.direction')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String direction;
-
-  @DomName('CanvasRenderingContext2D.fillStyle')
-  @DocsEditable()
-  @Creates('String|CanvasGradient|CanvasPattern')
-  @Returns('String|CanvasGradient|CanvasPattern')
-  Object fillStyle;
-
-  @DomName('CanvasRenderingContext2D.filter')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String filter;
-
-  @DomName('CanvasRenderingContext2D.font')
-  @DocsEditable()
-  String font;
-
-  @DomName('CanvasRenderingContext2D.globalAlpha')
-  @DocsEditable()
-  num globalAlpha;
-
-  @DomName('CanvasRenderingContext2D.globalCompositeOperation')
-  @DocsEditable()
-  String globalCompositeOperation;
-
-  /**
-   * Whether images and patterns on this canvas will be smoothed when this
-   * canvas is scaled.
-   *
-   * ## Other resources
-   *
-   * * [Image
-   *   smoothing](https://html.spec.whatwg.org/multipage/scripting.html#image-smoothing)
-   *   from WHATWG.
-   */
-  @DomName('CanvasRenderingContext2D.imageSmoothingEnabled')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool imageSmoothingEnabled;
-
-  @DomName('CanvasRenderingContext2D.imageSmoothingQuality')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String imageSmoothingQuality;
-
-  @DomName('CanvasRenderingContext2D.lineCap')
-  @DocsEditable()
-  String lineCap;
-
-  @DomName('CanvasRenderingContext2D.lineJoin')
-  @DocsEditable()
-  String lineJoin;
-
-  @DomName('CanvasRenderingContext2D.lineWidth')
-  @DocsEditable()
-  num lineWidth;
-
-  @DomName('CanvasRenderingContext2D.miterLimit')
-  @DocsEditable()
-  num miterLimit;
-
-  @DomName('CanvasRenderingContext2D.shadowBlur')
-  @DocsEditable()
-  num shadowBlur;
-
-  @DomName('CanvasRenderingContext2D.shadowColor')
-  @DocsEditable()
-  String shadowColor;
-
-  @DomName('CanvasRenderingContext2D.shadowOffsetX')
-  @DocsEditable()
-  num shadowOffsetX;
-
-  @DomName('CanvasRenderingContext2D.shadowOffsetY')
-  @DocsEditable()
-  num shadowOffsetY;
-
-  @DomName('CanvasRenderingContext2D.strokeStyle')
-  @DocsEditable()
-  @Creates('String|CanvasGradient|CanvasPattern')
-  @Returns('String|CanvasGradient|CanvasPattern')
-  Object strokeStyle;
-
-  @DomName('CanvasRenderingContext2D.textAlign')
-  @DocsEditable()
-  String textAlign;
-
-  @DomName('CanvasRenderingContext2D.textBaseline')
-  @DocsEditable()
-  String textBaseline;
-
-  @DomName('CanvasRenderingContext2D.addHitRegion')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void addHitRegion([Map options]) {
-    if (options != null) {
-      var options_1 = convertDartToNative_Dictionary(options);
-      _addHitRegion_1(options_1);
-      return;
-    }
-    _addHitRegion_2();
-    return;
-  }
-
-  @JSName('addHitRegion')
-  @DomName('CanvasRenderingContext2D.addHitRegion')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _addHitRegion_1(options) native;
-  @JSName('addHitRegion')
-  @DomName('CanvasRenderingContext2D.addHitRegion')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _addHitRegion_2() native;
-
-  @DomName('CanvasRenderingContext2D.beginPath')
-  @DocsEditable()
-  void beginPath() native;
-
-  @DomName('CanvasRenderingContext2D.clearHitRegions')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void clearHitRegions() native;
-
-  @DomName('CanvasRenderingContext2D.clearRect')
-  @DocsEditable()
-  void clearRect(num x, num y, num width, num height) native;
-
-  @DomName('CanvasRenderingContext2D.clip')
-  @DocsEditable()
-  void clip([path_OR_winding, String winding]) native;
-
-  @DomName('CanvasRenderingContext2D.createImageData')
-  @DocsEditable()
-  @Creates('ImageData|=Object')
-  ImageData createImageData(imagedata_OR_sw, [num sh]) {
-    if ((imagedata_OR_sw is ImageData) && sh == null) {
-      var imagedata_1 = convertDartToNative_ImageData(imagedata_OR_sw);
-      return convertNativeToDart_ImageData(_createImageData_1(imagedata_1));
-    }
-    if (sh != null && (imagedata_OR_sw is num)) {
-      return convertNativeToDart_ImageData(
-          _createImageData_2(imagedata_OR_sw, sh));
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-
-  @JSName('createImageData')
-  @DomName('CanvasRenderingContext2D.createImageData')
-  @DocsEditable()
-  @Creates('ImageData|=Object')
-  _createImageData_1(imagedata) native;
-  @JSName('createImageData')
-  @DomName('CanvasRenderingContext2D.createImageData')
-  @DocsEditable()
-  @Creates('ImageData|=Object')
-  _createImageData_2(num sw, sh) native;
-
-  @DomName('CanvasRenderingContext2D.createLinearGradient')
-  @DocsEditable()
-  CanvasGradient createLinearGradient(num x0, num y0, num x1, num y1) native;
-
-  @DomName('CanvasRenderingContext2D.createPattern')
-  @DocsEditable()
-  CanvasPattern createPattern(Object image, String repetitionType) native;
-
-  @DomName('CanvasRenderingContext2D.createRadialGradient')
-  @DocsEditable()
-  CanvasGradient createRadialGradient(
-      num x0, num y0, num r0, num x1, num y1, num r1) native;
-
-  @DomName('CanvasRenderingContext2D.drawFocusIfNeeded')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void drawFocusIfNeeded(element_OR_path, [Element element]) native;
-
-  @DomName('CanvasRenderingContext2D.fillRect')
-  @DocsEditable()
-  void fillRect(num x, num y, num width, num height) native;
-
-  @DomName('CanvasRenderingContext2D.getContextAttributes')
-  @DocsEditable()
-  // http://wiki.whatwg.org/wiki/CanvasOpaque#Suggested_IDL
-  @Experimental()
-  Map getContextAttributes() {
-    return convertNativeToDart_Dictionary(_getContextAttributes_1());
-  }
-
-  @JSName('getContextAttributes')
-  @DomName('CanvasRenderingContext2D.getContextAttributes')
-  @DocsEditable()
-  // http://wiki.whatwg.org/wiki/CanvasOpaque#Suggested_IDL
-  @Experimental()
-  _getContextAttributes_1() native;
-
-  @DomName('CanvasRenderingContext2D.getImageData')
-  @DocsEditable()
-  @Creates('ImageData|=Object')
-  ImageData getImageData(num sx, num sy, num sw, num sh) {
-    return convertNativeToDart_ImageData(_getImageData_1(sx, sy, sw, sh));
-  }
-
-  @JSName('getImageData')
-  @DomName('CanvasRenderingContext2D.getImageData')
-  @DocsEditable()
-  @Creates('ImageData|=Object')
-  _getImageData_1(sx, sy, sw, sh) native;
-
-  @JSName('getLineDash')
-  @DomName('CanvasRenderingContext2D.getLineDash')
-  @DocsEditable()
-  List<num> _getLineDash() native;
-
-  @DomName('CanvasRenderingContext2D.isContextLost')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool isContextLost() native;
-
-  @DomName('CanvasRenderingContext2D.isPointInPath')
-  @DocsEditable()
-  bool isPointInPath(path_OR_x, num x_OR_y, [winding_OR_y, String winding])
-      native;
-
-  @DomName('CanvasRenderingContext2D.isPointInStroke')
-  @DocsEditable()
-  bool isPointInStroke(path_OR_x, num x_OR_y, [num y]) native;
-
-  @DomName('CanvasRenderingContext2D.measureText')
-  @DocsEditable()
-  TextMetrics measureText(String text) native;
-
-  @DomName('CanvasRenderingContext2D.putImageData')
-  @DocsEditable()
-  void putImageData(ImageData imagedata, num dx, num dy,
-      [num dirtyX, num dirtyY, num dirtyWidth, num dirtyHeight]) {
-    if (dirtyX == null &&
-        dirtyY == null &&
-        dirtyWidth == null &&
-        dirtyHeight == null) {
-      var imagedata_1 = convertDartToNative_ImageData(imagedata);
-      _putImageData_1(imagedata_1, dx, dy);
-      return;
-    }
-    if (dirtyHeight != null &&
-        dirtyWidth != null &&
-        dirtyY != null &&
-        dirtyX != null) {
-      var imagedata_1 = convertDartToNative_ImageData(imagedata);
-      _putImageData_2(
-          imagedata_1, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight);
-      return;
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-
-  @JSName('putImageData')
-  @DomName('CanvasRenderingContext2D.putImageData')
-  @DocsEditable()
-  void _putImageData_1(imagedata, dx, dy) native;
-  @JSName('putImageData')
-  @DomName('CanvasRenderingContext2D.putImageData')
-  @DocsEditable()
-  void _putImageData_2(
-      imagedata, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight) native;
-
-  @DomName('CanvasRenderingContext2D.removeHitRegion')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void removeHitRegion(String id) native;
-
-  @DomName('CanvasRenderingContext2D.resetTransform')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void resetTransform() native;
-
-  @DomName('CanvasRenderingContext2D.restore')
-  @DocsEditable()
-  void restore() native;
-
-  @DomName('CanvasRenderingContext2D.rotate')
-  @DocsEditable()
-  void rotate(num angle) native;
-
-  @DomName('CanvasRenderingContext2D.save')
-  @DocsEditable()
-  void save() native;
-
-  @DomName('CanvasRenderingContext2D.scale')
-  @DocsEditable()
-  void scale(num x, num y) native;
-
-  @DomName('CanvasRenderingContext2D.scrollPathIntoView')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void scrollPathIntoView([Path2D path]) native;
-
-  @DomName('CanvasRenderingContext2D.setTransform')
-  @DocsEditable()
-  void setTransform(num a, num b, num c, num d, num e, num f) native;
-
-  @DomName('CanvasRenderingContext2D.stroke')
-  @DocsEditable()
-  void stroke([Path2D path]) native;
-
-  @DomName('CanvasRenderingContext2D.strokeRect')
-  @DocsEditable()
-  void strokeRect(num x, num y, num width, num height) native;
-
-  @DomName('CanvasRenderingContext2D.strokeText')
-  @DocsEditable()
-  void strokeText(String text, num x, num y, [num maxWidth]) native;
-
-  @DomName('CanvasRenderingContext2D.transform')
-  @DocsEditable()
-  void transform(num a, num b, num c, num d, num e, num f) native;
-
-  @DomName('CanvasRenderingContext2D.translate')
-  @DocsEditable()
-  void translate(num x, num y) native;
-
-  // From CanvasPathMethods
-
-  @JSName('arc')
-  @DomName('CanvasRenderingContext2D.arc')
-  @DocsEditable()
-  void _arc(num x, num y, num radius, num startAngle, num endAngle,
-      bool anticlockwise) native;
-
-  @DomName('CanvasRenderingContext2D.arcTo')
-  @DocsEditable()
-  void arcTo(num x1, num y1, num x2, num y2, num radius) native;
-
-  @DomName('CanvasRenderingContext2D.bezierCurveTo')
-  @DocsEditable()
-  void bezierCurveTo(num cp1x, num cp1y, num cp2x, num cp2y, num x, num y)
-      native;
-
-  @DomName('CanvasRenderingContext2D.closePath')
-  @DocsEditable()
-  void closePath() native;
-
-  @DomName('CanvasRenderingContext2D.ellipse')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void ellipse(num x, num y, num radiusX, num radiusY, num rotation,
-      num startAngle, num endAngle, bool anticlockwise) native;
-
-  @DomName('CanvasRenderingContext2D.lineTo')
-  @DocsEditable()
-  void lineTo(num x, num y) native;
-
-  @DomName('CanvasRenderingContext2D.moveTo')
-  @DocsEditable()
-  void moveTo(num x, num y) native;
-
-  @DomName('CanvasRenderingContext2D.quadraticCurveTo')
-  @DocsEditable()
-  void quadraticCurveTo(num cpx, num cpy, num x, num y) native;
-
-  @DomName('CanvasRenderingContext2D.rect')
-  @DocsEditable()
-  void rect(num x, num y, num width, num height) native;
-
-  @DomName('CanvasRenderingContext2D.createImageDataFromImageData')
-  @DocsEditable()
-  ImageData createImageDataFromImageData(ImageData imagedata) =>
-      JS('ImageData', '#.createImageData(#)', this, imagedata);
-
-  /**
-   * Sets the color used inside shapes.
-   * [r], [g], [b] are 0-255, [a] is 0-1.
-   */
-  void setFillColorRgb(int r, int g, int b, [num a = 1]) {
-    this.fillStyle = 'rgba($r, $g, $b, $a)';
-  }
-
-  /**
-   * Sets the color used inside shapes.
-   * [h] is in degrees, 0-360.
-   * [s], [l] are in percent, 0-100.
-   * [a] is 0-1.
-   */
-  void setFillColorHsl(int h, num s, num l, [num a = 1]) {
-    this.fillStyle = 'hsla($h, $s%, $l%, $a)';
-  }
-
-  /**
-   * Sets the color used for stroking shapes.
-   * [r], [g], [b] are 0-255, [a] is 0-1.
-   */
-  void setStrokeColorRgb(int r, int g, int b, [num a = 1]) {
-    this.strokeStyle = 'rgba($r, $g, $b, $a)';
-  }
-
-  /**
-   * Sets the color used for stroking shapes.
-   * [h] is in degrees, 0-360.
-   * [s], [l] are in percent, 0-100.
-   * [a] is 0-1.
-   */
-  void setStrokeColorHsl(int h, num s, num l, [num a = 1]) {
-    this.strokeStyle = 'hsla($h, $s%, $l%, $a)';
-  }
-
-  @DomName('CanvasRenderingContext2D.arc')
-  void arc(num x, num y, num radius, num startAngle, num endAngle,
-      [bool anticlockwise = false]) {
-    // TODO(terry): This should not be needed: dartbug.com/20939.
-    JS('void', '#.arc(#, #, #, #, #, #)', this, x, y, radius, startAngle,
-        endAngle, anticlockwise);
-  }
-
-  @DomName('CanvasRenderingContext2D.createPatternFromImage')
-  CanvasPattern createPatternFromImage(
-          ImageElement image, String repetitionType) =>
-      JS('CanvasPattern', '#.createPattern(#, #)', this, image, repetitionType);
-
-  /**
-   * Draws an image from a CanvasImageSource to an area of this canvas.
-   *
-   * The image will be drawn to an area of this canvas defined by
-   * [destRect]. [sourceRect] defines the region of the source image that is
-   * drawn.
-   * If [sourceRect] is not provided, then
-   * the entire rectangular image from [source] will be drawn to this context.
-   *
-   * If the image is larger than canvas
-   * will allow, the image will be clipped to fit the available space.
-   *
-   *     CanvasElement canvas = new CanvasElement(width: 600, height: 600);
-   *     CanvasRenderingContext2D ctx = canvas.context2D;
-   *     ImageElement img = document.query('img');
-   *     img.width = 100;
-   *     img.height = 100;
-   *
-   *     // Scale the image to 20x20.
-   *     ctx.drawImageToRect(img, new Rectangle(50, 50, 20, 20));
-   *
-   *     VideoElement video = document.query('video');
-   *     video.width = 100;
-   *     video.height = 100;
-   *     // Take the middle 20x20 pixels from the video and stretch them.
-   *     ctx.drawImageToRect(video, new Rectangle(50, 50, 100, 100),
-   *         sourceRect: new Rectangle(40, 40, 20, 20));
-   *
-   *     // Draw the top 100x20 pixels from the otherCanvas.
-   *     CanvasElement otherCanvas = document.query('canvas');
-   *     ctx.drawImageToRect(otherCanvas, new Rectangle(0, 0, 100, 20),
-   *         sourceRect: new Rectangle(0, 0, 100, 20));
-   *
-   * See also:
-   *
-   *   * [CanvasImageSource] for more information on what data is retrieved
-   * from [source].
-   *   * [drawImage](http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#dom-context-2d-drawimage)
-   * from the WHATWG.
-   */
-  @DomName('CanvasRenderingContext2D.drawImage')
-  void drawImageToRect(CanvasImageSource source, Rectangle destRect,
-      {Rectangle sourceRect}) {
-    if (sourceRect == null) {
-      drawImageScaled(
-          source, destRect.left, destRect.top, destRect.width, destRect.height);
-    } else {
-      drawImageScaledFromSource(
-          source,
-          sourceRect.left,
-          sourceRect.top,
-          sourceRect.width,
-          sourceRect.height,
-          destRect.left,
-          destRect.top,
-          destRect.width,
-          destRect.height);
-    }
-  }
-
-  /**
-   * Draws an image from a CanvasImageSource to this canvas.
-   *
-   * The entire image from [source] will be drawn to this context with its top
-   * left corner at the point ([destX], [destY]). If the image is
-   * larger than canvas will allow, the image will be clipped to fit the
-   * available space.
-   *
-   *     CanvasElement canvas = new CanvasElement(width: 600, height: 600);
-   *     CanvasRenderingContext2D ctx = canvas.context2D;
-   *     ImageElement img = document.query('img');
-   *
-   *     ctx.drawImage(img, 100, 100);
-   *
-   *     VideoElement video = document.query('video');
-   *     ctx.drawImage(video, 0, 0);
-   *
-   *     CanvasElement otherCanvas = document.query('canvas');
-   *     otherCanvas.width = 100;
-   *     otherCanvas.height = 100;
-   *     ctx.drawImage(otherCanvas, 590, 590); // will get clipped
-   *
-   * See also:
-   *
-   *   * [CanvasImageSource] for more information on what data is retrieved
-   * from [source].
-   *   * [drawImage](http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#dom-context-2d-drawimage)
-   * from the WHATWG.
-   */
-  @DomName('CanvasRenderingContext2D.drawImage')
-  @JSName('drawImage')
-  void drawImage(CanvasImageSource source, num destX, num destY) native;
-
-  /**
-   * Draws an image from a CanvasImageSource to an area of this canvas.
-   *
-   * The image will be drawn to this context with its top left corner at the
-   * point ([destX], [destY]) and will be scaled to be [destWidth] wide and
-   * [destHeight] tall.
-   *
-   * If the image is larger than canvas
-   * will allow, the image will be clipped to fit the available space.
-   *
-   *     CanvasElement canvas = new CanvasElement(width: 600, height: 600);
-   *     CanvasRenderingContext2D ctx = canvas.context2D;
-   *     ImageElement img = document.query('img');
-   *     img.width = 100;
-   *     img.height = 100;
-   *
-   *     // Scale the image to 300x50 at the point (20, 20)
-   *     ctx.drawImageScaled(img, 20, 20, 300, 50);
-   *
-   * See also:
-   *
-   *   * [CanvasImageSource] for more information on what data is retrieved
-   * from [source].
-   *   * [drawImage](http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#dom-context-2d-drawimage)
-   * from the WHATWG.
-   */
-  @DomName('CanvasRenderingContext2D.drawImage')
-  @JSName('drawImage')
-  void drawImageScaled(CanvasImageSource source, num destX, num destY,
-      num destWidth, num destHeight) native;
-
-  /**
-   * Draws an image from a CanvasImageSource to an area of this canvas.
-   *
-   * The image is a region of [source] that is [sourceWidth] wide and
-   * [destHeight] tall with top left corner at ([sourceX], [sourceY]).
-   * The image will be drawn to this context with its top left corner at the
-   * point ([destX], [destY]) and will be scaled to be [destWidth] wide and
-   * [destHeight] tall.
-   *
-   * If the image is larger than canvas
-   * will allow, the image will be clipped to fit the available space.
-   *
-   *     VideoElement video = document.query('video');
-   *     video.width = 100;
-   *     video.height = 100;
-   *     // Take the middle 20x20 pixels from the video and stretch them.
-   *     ctx.drawImageScaledFromSource(video, 40, 40, 20, 20, 50, 50, 100, 100);
-   *
-   *     // Draw the top 100x20 pixels from the otherCanvas to this one.
-   *     CanvasElement otherCanvas = document.query('canvas');
-   *     ctx.drawImageScaledFromSource(otherCanvas, 0, 0, 100, 20, 0, 0, 100, 20);
-   *
-   * See also:
-   *
-   *   * [CanvasImageSource] for more information on what data is retrieved
-   * from [source].
-   *   * [drawImage](http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#dom-context-2d-drawimage)
-   * from the WHATWG.
-   */
-  @DomName('CanvasRenderingContext2D.drawImage')
-  @JSName('drawImage')
-  void drawImageScaledFromSource(
-      CanvasImageSource source,
-      num sourceX,
-      num sourceY,
-      num sourceWidth,
-      num sourceHeight,
-      num destX,
-      num destY,
-      num destWidth,
-      num destHeight) native;
-
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @SupportedBrowser(SupportedBrowser.IE, '11')
-  @Unstable()
-  @DomName('CanvasRenderingContext2D.lineDashOffset')
-  // TODO(14316): Firefox has this functionality with mozDashOffset, but it
-  // needs to be polyfilled.
-  num get lineDashOffset =>
-      JS('num', '#.lineDashOffset || #.webkitLineDashOffset', this, this);
-
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @SupportedBrowser(SupportedBrowser.IE, '11')
-  @Unstable()
-  @DomName('CanvasRenderingContext2D.lineDashOffset')
-  // TODO(14316): Firefox has this functionality with mozDashOffset, but it
-  // needs to be polyfilled.
-  set lineDashOffset(num value) {
-    JS(
-        'void',
-        'typeof #.lineDashOffset != "undefined" ? #.lineDashOffset = # : '
-        '#.webkitLineDashOffset = #',
-        this,
-        this,
-        value,
-        this,
-        value);
-  }
-
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @SupportedBrowser(SupportedBrowser.IE, '11')
-  @Unstable()
-  @DomName('CanvasRenderingContext2D.getLineDash')
-  List<num> getLineDash() {
-    // TODO(14316): Firefox has this functionality with mozDash, but it's a bit
-    // different.
-    if (JS('bool', '!!#.getLineDash', this)) {
-      return JS('List<num>', '#.getLineDash()', this);
-    } else if (JS('bool', '!!#.webkitLineDash', this)) {
-      return JS('List<num>', '#.webkitLineDash', this);
-    }
-  }
-
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @SupportedBrowser(SupportedBrowser.IE, '11')
-  @Unstable()
-  @DomName('CanvasRenderingContext2D.setLineDash')
-  void setLineDash(List<num> dash) {
-    // TODO(14316): Firefox has this functionality with mozDash, but it's a bit
-    // different.
-    if (JS('bool', '!!#.setLineDash', this)) {
-      JS('void', '#.setLineDash(#)', this, dash);
-    } else if (JS('bool', '!!#.webkitLineDash', this)) {
-      JS('void', '#.webkitLineDash = #', this, dash);
-    }
-  }
-
-  /**
-   * Draws text to the canvas.
-   *
-   * The text is drawn starting at coordinates ([x], [y]).
-   * If [maxWidth] is provided and the [text] is computed to be wider than
-   * [maxWidth], then the drawn text is scaled down horizontally to fit.
-   *
-   * The text uses the current [CanvasRenderingContext2D.font] property for font
-   * options, such as typeface and size, and the current
-   * [CanvasRenderingContext2D.fillStyle] for style options such as color.
-   * The current [CanvasRenderingContext2D.textAlign] and
-   * [CanvasRenderingContext2D.textBaseLine] properties are also applied to the
-   * drawn text.
-   */
-  @DomName('CanvasRenderingContext2D.fillText')
-  void fillText(String text, num x, num y, [num maxWidth]) {
-    if (maxWidth != null) {
-      JS('void', '#.fillText(#, #, #, #)', this, text, x, y, maxWidth);
-    } else {
-      JS('void', '#.fillText(#, #, #)', this, text, x, y);
-    }
-  }
-
-  @DomName('CanvasRenderingContext2D.fill')
-  void fill([String winding = 'nonzero']) {
-    JS('void', '#.fill(#)', this, winding);
-  }
-
-  /** Deprecated always returns 1.0 */
-  @DomName('CanvasRenderingContext2D.webkitBackingStorePixelRation')
-  @Experimental()
-  @deprecated
-  double get backingStorePixelRatio => 1.0;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CharacterData')
-@Native("CharacterData")
-class CharacterData extends Node
-    implements NonDocumentTypeChildNode, ChildNode {
-  // To suppress missing implicit constructor warnings.
-  factory CharacterData._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CharacterData.data')
-  @DocsEditable()
-  String data;
-
-  @DomName('CharacterData.length')
-  @DocsEditable()
-  final int length;
-
-  @DomName('CharacterData.appendData')
-  @DocsEditable()
-  void appendData(String data) native;
-
-  @DomName('CharacterData.deleteData')
-  @DocsEditable()
-  void deleteData(int offset, int count) native;
-
-  @DomName('CharacterData.insertData')
-  @DocsEditable()
-  void insertData(int offset, String data) native;
-
-  @DomName('CharacterData.replaceData')
-  @DocsEditable()
-  void replaceData(int offset, int count, String data) native;
-
-  @DomName('CharacterData.substringData')
-  @DocsEditable()
-  String substringData(int offset, int count) native;
-
-  // From ChildNode
-
-  // From NonDocumentTypeChildNode
-
-  @DomName('CharacterData.nextElementSibling')
-  @DocsEditable()
-  final Element nextElementSibling;
-
-  @DomName('CharacterData.previousElementSibling')
-  @DocsEditable()
-  final Element previousElementSibling;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ChildNode')
-@Experimental() // untriaged
-abstract class ChildNode extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory ChildNode._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  void remove();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CHROMIUMValuebuffer')
-@Experimental() // untriaged
-@Native("CHROMIUMValuebuffer")
-class ChromiumValuebuffer extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory ChromiumValuebuffer._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CircularGeofencingRegion')
-@Experimental() // untriaged
-@Native("CircularGeofencingRegion")
-class CircularGeofencingRegion extends GeofencingRegion {
-  // To suppress missing implicit constructor warnings.
-  factory CircularGeofencingRegion._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CircularGeofencingRegion.CircularGeofencingRegion')
-  @DocsEditable()
-  factory CircularGeofencingRegion(Map init) {
-    var init_1 = convertDartToNative_Dictionary(init);
-    return CircularGeofencingRegion._create_1(init_1);
-  }
-  static CircularGeofencingRegion _create_1(init) =>
-      JS('CircularGeofencingRegion', 'new CircularGeofencingRegion(#)', init);
-
-  @DomName('CircularGeofencingRegion.MAX_RADIUS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const num MAX_RADIUS = 100.0;
-
-  @DomName('CircularGeofencingRegion.MIN_RADIUS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const num MIN_RADIUS = 1.0;
-
-  @DomName('CircularGeofencingRegion.latitude')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double latitude;
-
-  @DomName('CircularGeofencingRegion.longitude')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double longitude;
-
-  @DomName('CircularGeofencingRegion.radius')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double radius;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Client')
-@Experimental() // untriaged
-@Native("Client")
-class Client extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Client._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Client.frameType')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String frameType;
-
-  @DomName('Client.id')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String id;
-
-  @DomName('Client.url')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String url;
-
-  @DomName('Client.postMessage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void postMessage(/*SerializedScriptValue*/ message,
-      [List<MessagePort> transfer]) {
-    if (transfer != null) {
-      var message_1 = convertDartToNative_SerializedScriptValue(message);
-      _postMessage_1(message_1, transfer);
-      return;
-    }
-    var message_1 = convertDartToNative_SerializedScriptValue(message);
-    _postMessage_2(message_1);
-    return;
-  }
-
-  @JSName('postMessage')
-  @DomName('Client.postMessage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _postMessage_1(message, List<MessagePort> transfer) native;
-  @JSName('postMessage')
-  @DomName('Client.postMessage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _postMessage_2(message) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Clients')
-@Experimental() // untriaged
-@Native("Clients")
-class Clients extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Clients._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Clients.claim')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future claim() native;
-
-  @DomName('Clients.get')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future get(String id) native;
-
-  @DomName('Clients.matchAll')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future matchAll([Map options]) {
-    if (options != null) {
-      var options_1 = convertDartToNative_Dictionary(options);
-      return _matchAll_1(options_1);
-    }
-    return _matchAll_2();
-  }
-
-  @JSName('matchAll')
-  @DomName('Clients.matchAll')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _matchAll_1(options) native;
-  @JSName('matchAll')
-  @DomName('Clients.matchAll')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _matchAll_2() native;
-
-  @DomName('Clients.openWindow')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future openWindow(String url) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ClipboardEvent')
-@Experimental() // untriaged
-@Native("ClipboardEvent")
-class ClipboardEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory ClipboardEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('ClipboardEvent.clipboardData')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final DataTransfer clipboardData;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CloseEvent')
-@Native("CloseEvent")
-class CloseEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory CloseEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CloseEvent.CloseEvent')
-  @DocsEditable()
-  factory CloseEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return CloseEvent._create_1(type, eventInitDict_1);
-    }
-    return CloseEvent._create_2(type);
-  }
-  static CloseEvent _create_1(type, eventInitDict) =>
-      JS('CloseEvent', 'new CloseEvent(#,#)', type, eventInitDict);
-  static CloseEvent _create_2(type) =>
-      JS('CloseEvent', 'new CloseEvent(#)', type);
-
-  @DomName('CloseEvent.code')
-  @DocsEditable()
-  final int code;
-
-  @DomName('CloseEvent.reason')
-  @DocsEditable()
-  final String reason;
-
-  @DomName('CloseEvent.wasClean')
-  @DocsEditable()
-  final bool wasClean;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Comment')
-@Native("Comment")
-class Comment extends CharacterData {
-  factory Comment([String data]) {
-    return JS('returns:Comment;depends:none;effects:none;new:true',
-        '#.createComment(#)', document, data == null ? "" : data);
-  }
-  // To suppress missing implicit constructor warnings.
-  factory Comment._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('CompositionEvent')
-@Native("CompositionEvent")
-class CompositionEvent extends UIEvent {
-  factory CompositionEvent(String type,
-      {bool canBubble: false,
-      bool cancelable: false,
-      Window view,
-      String data,
-      String locale}) {
-    if (view == null) {
-      view = window;
-    }
-    CompositionEvent e = document._createEvent("CompositionEvent");
-
-    if (Device.isFirefox) {
-      // Firefox requires the locale parameter that isn't supported elsewhere.
-      JS('void', '#.initCompositionEvent(#, #, #, #, #, #)', e, type, canBubble,
-          cancelable, view, data, locale);
-    } else {
-      e._initCompositionEvent(type, canBubble, cancelable, view, data);
-    }
-
-    return e;
-  }
-
-  @DomName('CompositionEvent.CompositionEvent')
-  @DocsEditable()
-  factory CompositionEvent._(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return CompositionEvent._create_1(type, eventInitDict_1);
-    }
-    return CompositionEvent._create_2(type);
-  }
-  static CompositionEvent _create_1(type, eventInitDict) =>
-      JS('CompositionEvent', 'new CompositionEvent(#,#)', type, eventInitDict);
-  static CompositionEvent _create_2(type) =>
-      JS('CompositionEvent', 'new CompositionEvent(#)', type);
-
-  @DomName('CompositionEvent.data')
-  @DocsEditable()
-  final String data;
-
-  @JSName('initCompositionEvent')
-  @DomName('CompositionEvent.initCompositionEvent')
-  @DocsEditable()
-  void _initCompositionEvent(String type, bool bubbles, bool cancelable,
-      Window view, String data) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CompositorProxy')
-@Experimental() // untriaged
-@Native("CompositorProxy")
-class CompositorProxy extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory CompositorProxy._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CompositorProxy.CompositorProxy')
-  @DocsEditable()
-  factory CompositorProxy(Element element, List<String> attributeArray) {
-    return CompositorProxy._create_1(element, attributeArray);
-  }
-  static CompositorProxy _create_1(element, attributeArray) => JS(
-      'CompositorProxy', 'new CompositorProxy(#,#)', element, attributeArray);
-
-  @DomName('CompositorProxy.opacity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num opacity;
-
-  @DomName('CompositorProxy.scrollLeft')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num scrollLeft;
-
-  @DomName('CompositorProxy.scrollTop')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num scrollTop;
-
-  @DomName('CompositorProxy.transform')
-  @DocsEditable()
-  @Experimental() // untriaged
-  DomMatrix transform;
-
-  @DomName('CompositorProxy.disconnect')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void disconnect() native;
-
-  @DomName('CompositorProxy.supports')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool supports(String attribute) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CompositorWorker')
-@Experimental() // untriaged
-@Native("CompositorWorker")
-class CompositorWorker extends EventTarget implements AbstractWorker {
-  // To suppress missing implicit constructor warnings.
-  factory CompositorWorker._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CompositorWorker.errorEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> errorEvent =
-      const EventStreamProvider<Event>('error');
-
-  @DomName('CompositorWorker.messageEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MessageEvent> messageEvent =
-      const EventStreamProvider<MessageEvent>('message');
-
-  @DomName('CompositorWorker.CompositorWorker')
-  @DocsEditable()
-  factory CompositorWorker(String scriptUrl) {
-    return CompositorWorker._create_1(scriptUrl);
-  }
-  static CompositorWorker _create_1(scriptUrl) =>
-      JS('CompositorWorker', 'new CompositorWorker(#)', scriptUrl);
-
-  @DomName('CompositorWorker.postMessage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void postMessage(/*SerializedScriptValue*/ message,
-      [List<MessagePort> transfer]) {
-    if (transfer != null) {
-      var message_1 = convertDartToNative_SerializedScriptValue(message);
-      _postMessage_1(message_1, transfer);
-      return;
-    }
-    var message_1 = convertDartToNative_SerializedScriptValue(message);
-    _postMessage_2(message_1);
-    return;
-  }
-
-  @JSName('postMessage')
-  @DomName('CompositorWorker.postMessage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _postMessage_1(message, List<MessagePort> transfer) native;
-  @JSName('postMessage')
-  @DomName('CompositorWorker.postMessage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _postMessage_2(message) native;
-
-  @DomName('CompositorWorker.terminate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void terminate() native;
-
-  @DomName('CompositorWorker.onerror')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onError => errorEvent.forTarget(this);
-
-  @DomName('CompositorWorker.onmessage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CompositorWorkerGlobalScope')
-@Experimental() // untriaged
-@Native("CompositorWorkerGlobalScope")
-class CompositorWorkerGlobalScope extends WorkerGlobalScope {
-  // To suppress missing implicit constructor warnings.
-  factory CompositorWorkerGlobalScope._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CompositorWorkerGlobalScope.messageEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MessageEvent> messageEvent =
-      const EventStreamProvider<MessageEvent>('message');
-
-  @DomName('CompositorWorkerGlobalScope.cancelAnimationFrame')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void cancelAnimationFrame(int handle) native;
-
-  @DomName('CompositorWorkerGlobalScope.postMessage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void postMessage(/*any*/ message, [List<MessagePort> transfer]) {
-    if (transfer != null) {
-      var message_1 = convertDartToNative_SerializedScriptValue(message);
-      _postMessage_1(message_1, transfer);
-      return;
-    }
-    var message_1 = convertDartToNative_SerializedScriptValue(message);
-    _postMessage_2(message_1);
-    return;
-  }
-
-  @JSName('postMessage')
-  @DomName('CompositorWorkerGlobalScope.postMessage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _postMessage_1(message, List<MessagePort> transfer) native;
-  @JSName('postMessage')
-  @DomName('CompositorWorkerGlobalScope.postMessage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _postMessage_2(message) native;
-
-  @DomName('CompositorWorkerGlobalScope.requestAnimationFrame')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int requestAnimationFrame(FrameRequestCallback callback) native;
-
-  @DomName('CompositorWorkerGlobalScope.onmessage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('Console')
-class Console {
-  const Console._safe();
-
-  static const Console _safeConsole = const Console._safe();
-
-  bool get _isConsoleDefined => JS('bool', 'typeof console != "undefined"');
-
-  @DomName('Console.memory')
-  MemoryInfo get memory =>
-      _isConsoleDefined ? JS('MemoryInfo', 'console.memory') : null;
-
-  @DomName('Console.assertCondition')
-  void assertCondition(bool condition, Object arg) => _isConsoleDefined
-      ? JS('void', 'console.assertCondition(#, #)', condition, arg)
-      : null;
-
-  @DomName('Console.clear')
-  void clear(Object arg) =>
-      _isConsoleDefined ? JS('void', 'console.clear(#)', arg) : null;
-
-  @DomName('Console.count')
-  void count(Object arg) =>
-      _isConsoleDefined ? JS('void', 'console.count(#)', arg) : null;
-
-  @DomName('Console.debug')
-  void debug(Object arg) =>
-      _isConsoleDefined ? JS('void', 'console.debug(#)', arg) : null;
-
-  @DomName('Console.dir')
-  void dir(Object arg) =>
-      _isConsoleDefined ? JS('void', 'console.dir(#)', arg) : null;
-
-  @DomName('Console.dirxml')
-  void dirxml(Object arg) =>
-      _isConsoleDefined ? JS('void', 'console.dirxml(#)', arg) : null;
-
-  @DomName('Console.error')
-  void error(Object arg) =>
-      _isConsoleDefined ? JS('void', 'console.error(#)', arg) : null;
-
-  @DomName('Console.group')
-  void group(Object arg) =>
-      _isConsoleDefined ? JS('void', 'console.group(#)', arg) : null;
-
-  @DomName('Console.groupCollapsed')
-  void groupCollapsed(Object arg) =>
-      _isConsoleDefined ? JS('void', 'console.groupCollapsed(#)', arg) : null;
-
-  @DomName('Console.groupEnd')
-  void groupEnd() =>
-      _isConsoleDefined ? JS('void', 'console.groupEnd()') : null;
-
-  @DomName('Console.info')
-  void info(Object arg) =>
-      _isConsoleDefined ? JS('void', 'console.info(#)', arg) : null;
-
-  @DomName('Console.log')
-  void log(Object arg) =>
-      _isConsoleDefined ? JS('void', 'console.log(#)', arg) : null;
-
-  @DomName('Console.markTimeline')
-  void markTimeline(Object arg) =>
-      _isConsoleDefined ? JS('void', 'console.markTimeline(#)', arg) : null;
-
-  @DomName('Console.profile')
-  void profile(String title) =>
-      _isConsoleDefined ? JS('void', 'console.profile(#)', title) : null;
-
-  @DomName('Console.profileEnd')
-  void profileEnd(String title) =>
-      _isConsoleDefined ? JS('void', 'console.profileEnd(#)', title) : null;
-
-  @DomName('Console.table')
-  void table(Object arg) =>
-      _isConsoleDefined ? JS('void', 'console.table(#)', arg) : null;
-
-  @DomName('Console.time')
-  void time(String title) =>
-      _isConsoleDefined ? JS('void', 'console.time(#)', title) : null;
-
-  @DomName('Console.timeEnd')
-  void timeEnd(String title) =>
-      _isConsoleDefined ? JS('void', 'console.timeEnd(#)', title) : null;
-
-  @DomName('Console.timeStamp')
-  void timeStamp(Object arg) =>
-      _isConsoleDefined ? JS('void', 'console.timeStamp(#)', arg) : null;
-
-  @DomName('Console.trace')
-  void trace(Object arg) =>
-      _isConsoleDefined ? JS('void', 'console.trace(#)', arg) : null;
-
-  @DomName('Console.warn')
-  void warn(Object arg) =>
-      _isConsoleDefined ? JS('void', 'console.warn(#)', arg) : null;
-  // To suppress missing implicit constructor warnings.
-  factory Console._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ConsoleBase')
-@Experimental() // untriaged
-@Native("ConsoleBase")
-class ConsoleBase extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory ConsoleBase._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @JSName('assert')
-  @DomName('ConsoleBase.assert')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void assertCondition(bool condition, Object arg) native;
-
-  @DomName('ConsoleBase.timeline')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void timeline(String title) native;
-
-  @DomName('ConsoleBase.timelineEnd')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void timelineEnd(String title) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLContentElement')
-@SupportedBrowser(SupportedBrowser.CHROME, '26')
-@Experimental()
-// https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#content-element
-@Native("HTMLContentElement")
-class ContentElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory ContentElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLContentElement.HTMLContentElement')
-  @DocsEditable()
-  factory ContentElement() => document.createElement("content");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  ContentElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported => Element.isTagSupported('content');
-
-  @DomName('HTMLContentElement.select')
-  @DocsEditable()
-  String select;
-
-  @DomName('HTMLContentElement.getDistributedNodes')
-  @DocsEditable()
-  @Returns('NodeList|Null')
-  @Creates('NodeList')
-  List<Node> getDistributedNodes() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Coordinates')
-@Native("Coordinates")
-class Coordinates extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Coordinates._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Coordinates.accuracy')
-  @DocsEditable()
-  final double accuracy;
-
-  @DomName('Coordinates.altitude')
-  @DocsEditable()
-  final double altitude;
-
-  @DomName('Coordinates.altitudeAccuracy')
-  @DocsEditable()
-  final double altitudeAccuracy;
-
-  @DomName('Coordinates.heading')
-  @DocsEditable()
-  final double heading;
-
-  @DomName('Coordinates.latitude')
-  @DocsEditable()
-  final double latitude;
-
-  @DomName('Coordinates.longitude')
-  @DocsEditable()
-  final double longitude;
-
-  @DomName('Coordinates.speed')
-  @DocsEditable()
-  final double speed;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Credential')
-@Experimental() // untriaged
-@Native("Credential")
-class Credential extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Credential._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @JSName('iconURL')
-  @DomName('Credential.iconURL')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String iconUrl;
-
-  @DomName('Credential.id')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String id;
-
-  @DomName('Credential.name')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String name;
-
-  @DomName('Credential.type')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String type;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CredentialsContainer')
-@Experimental() // untriaged
-@Native("CredentialsContainer")
-class CredentialsContainer extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory CredentialsContainer._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CredentialsContainer.get')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future get([Map options]) {
-    if (options != null) {
-      var options_1 = convertDartToNative_Dictionary(options);
-      return _get_1(options_1);
-    }
-    return _get_2();
-  }
-
-  @JSName('get')
-  @DomName('CredentialsContainer.get')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _get_1(options) native;
-  @JSName('get')
-  @DomName('CredentialsContainer.get')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _get_2() native;
-
-  @DomName('CredentialsContainer.requireUserMediation')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future requireUserMediation() native;
-
-  @DomName('CredentialsContainer.store')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future store(Credential credential) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CrossOriginServiceWorkerClient')
-@Experimental() // untriaged
-@Native("CrossOriginServiceWorkerClient")
-class CrossOriginServiceWorkerClient extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory CrossOriginServiceWorkerClient._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CrossOriginServiceWorkerClient.origin')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String origin;
-
-  @DomName('CrossOriginServiceWorkerClient.targetUrl')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String targetUrl;
-
-  @DomName('CrossOriginServiceWorkerClient.postMessage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void postMessage(/*SerializedScriptValue*/ message,
-      [List<MessagePort> transfer]) {
-    if (transfer != null) {
-      var message_1 = convertDartToNative_SerializedScriptValue(message);
-      _postMessage_1(message_1, transfer);
-      return;
-    }
-    var message_1 = convertDartToNative_SerializedScriptValue(message);
-    _postMessage_2(message_1);
-    return;
-  }
-
-  @JSName('postMessage')
-  @DomName('CrossOriginServiceWorkerClient.postMessage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _postMessage_1(message, List<MessagePort> transfer) native;
-  @JSName('postMessage')
-  @DomName('CrossOriginServiceWorkerClient.postMessage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _postMessage_2(message) native;
-}
-// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('Crypto')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Experimental()
-// http://www.w3.org/TR/WebCryptoAPI/
-@Native("Crypto")
-class Crypto extends Interceptor {
-  TypedData getRandomValues(TypedData array) {
-    return _getRandomValues(array);
-  }
-
-  // To suppress missing implicit constructor warnings.
-  factory Crypto._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      JS('bool', '!!(window.crypto && window.crypto.getRandomValues)');
-
-  @DomName('Crypto.subtle')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final _SubtleCrypto subtle;
-
-  @JSName('getRandomValues')
-  @DomName('Crypto.getRandomValues')
-  @DocsEditable()
-  @Creates('TypedData')
-  @Returns('TypedData|Null')
-  TypedData _getRandomValues(TypedData array) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CryptoKey')
-@Experimental() // untriaged
-@Native("CryptoKey")
-class CryptoKey extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory CryptoKey._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CryptoKey.algorithm')
-  @DocsEditable()
-  @Experimental() // untriaged
-  @Creates('Null')
-  final Object algorithm;
-
-  @DomName('CryptoKey.extractable')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool extractable;
-
-  @DomName('CryptoKey.type')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String type;
-
-  @DomName('CryptoKey.usages')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final List<String> usages;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CSS')
-// http://www.w3.org/TR/css3-conditional/#the-css-interface
-@Experimental() // None
-@Native("CSS")
-class Css extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Css._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CSS.escape')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static String escape(String ident) native;
-
-  @DomName('CSS.supports')
-  @DocsEditable()
-  static bool supports(String property, String value) native;
-
-  @JSName('supports')
-  @DomName('CSS.supports')
-  @DocsEditable()
-  static bool supportsCondition(String conditionText) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CSSCharsetRule')
-// http://dev.w3.org/csswg/cssom/#the-csscharsetrule-interface
-@Experimental()
-@Native("CSSCharsetRule")
-class CssCharsetRule extends CssRule {
-  // To suppress missing implicit constructor warnings.
-  factory CssCharsetRule._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CSSCharsetRule.encoding')
-  @DocsEditable()
-  String encoding;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CSSFontFaceRule')
-@Native("CSSFontFaceRule")
-class CssFontFaceRule extends CssRule {
-  // To suppress missing implicit constructor warnings.
-  factory CssFontFaceRule._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CSSFontFaceRule.style')
-  @DocsEditable()
-  final CssStyleDeclaration style;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CSSGroupingRule')
-@Experimental() // untriaged
-@Native("CSSGroupingRule")
-class CssGroupingRule extends CssRule {
-  // To suppress missing implicit constructor warnings.
-  factory CssGroupingRule._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CSSGroupingRule.cssRules')
-  @DocsEditable()
-  @Experimental() // untriaged
-  @Returns('_CssRuleList|Null')
-  @Creates('_CssRuleList')
-  final List<CssRule> cssRules;
-
-  @DomName('CSSGroupingRule.deleteRule')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void deleteRule(int index) native;
-
-  @DomName('CSSGroupingRule.insertRule')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int insertRule(String rule, int index) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CSSImportRule')
-@Native("CSSImportRule")
-class CssImportRule extends CssRule {
-  // To suppress missing implicit constructor warnings.
-  factory CssImportRule._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CSSImportRule.href')
-  @DocsEditable()
-  final String href;
-
-  @DomName('CSSImportRule.media')
-  @DocsEditable()
-  final MediaList media;
-
-  @DomName('CSSImportRule.styleSheet')
-  @DocsEditable()
-  final CssStyleSheet styleSheet;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CSSKeyframeRule')
-@Experimental() // untriaged
-@Native("CSSKeyframeRule,MozCSSKeyframeRule,WebKitCSSKeyframeRule")
-class CssKeyframeRule extends CssRule {
-  // To suppress missing implicit constructor warnings.
-  factory CssKeyframeRule._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CSSKeyframeRule.keyText')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String keyText;
-
-  @DomName('CSSKeyframeRule.style')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final CssStyleDeclaration style;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CSSKeyframesRule')
-@Experimental() // untriaged
-@Native("CSSKeyframesRule,MozCSSKeyframesRule,WebKitCSSKeyframesRule")
-class CssKeyframesRule extends CssRule {
-  // To suppress missing implicit constructor warnings.
-  factory CssKeyframesRule._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CSSKeyframesRule.cssRules')
-  @DocsEditable()
-  @Experimental() // untriaged
-  @Returns('_CssRuleList|Null')
-  @Creates('_CssRuleList')
-  final List<CssRule> cssRules;
-
-  @DomName('CSSKeyframesRule.name')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String name;
-
-  @DomName('CSSKeyframesRule.__getter__')
-  @DocsEditable()
-  @Experimental() // untriaged
-  CssKeyframeRule __getter__(int index) native;
-
-  @DomName('CSSKeyframesRule.appendRule')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void appendRule(String rule) native;
-
-  @DomName('CSSKeyframesRule.deleteRule')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void deleteRule(String select) native;
-
-  @DomName('CSSKeyframesRule.findRule')
-  @DocsEditable()
-  @Experimental() // untriaged
-  CssKeyframeRule findRule(String select) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CSSMediaRule')
-@Native("CSSMediaRule")
-class CssMediaRule extends CssGroupingRule {
-  // To suppress missing implicit constructor warnings.
-  factory CssMediaRule._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CSSMediaRule.media')
-  @DocsEditable()
-  final MediaList media;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CSSNamespaceRule')
-@Experimental() // untriaged
-@Native("CSSNamespaceRule")
-class CssNamespaceRule extends CssRule {
-  // To suppress missing implicit constructor warnings.
-  factory CssNamespaceRule._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @JSName('namespaceURI')
-  @DomName('CSSNamespaceRule.namespaceURI')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String namespaceUri;
-
-  @DomName('CSSNamespaceRule.prefix')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String prefix;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CSSPageRule')
-@Native("CSSPageRule")
-class CssPageRule extends CssRule {
-  // To suppress missing implicit constructor warnings.
-  factory CssPageRule._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CSSPageRule.selectorText')
-  @DocsEditable()
-  String selectorText;
-
-  @DomName('CSSPageRule.style')
-  @DocsEditable()
-  final CssStyleDeclaration style;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CSSRule')
-@Native("CSSRule")
-class CssRule extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory CssRule._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CSSRule.CHARSET_RULE')
-  @DocsEditable()
-  static const int CHARSET_RULE = 2;
-
-  @DomName('CSSRule.FONT_FACE_RULE')
-  @DocsEditable()
-  static const int FONT_FACE_RULE = 5;
-
-  @DomName('CSSRule.IMPORT_RULE')
-  @DocsEditable()
-  static const int IMPORT_RULE = 3;
-
-  @DomName('CSSRule.KEYFRAMES_RULE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int KEYFRAMES_RULE = 7;
-
-  @DomName('CSSRule.KEYFRAME_RULE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int KEYFRAME_RULE = 8;
-
-  @DomName('CSSRule.MEDIA_RULE')
-  @DocsEditable()
-  static const int MEDIA_RULE = 4;
-
-  @DomName('CSSRule.NAMESPACE_RULE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int NAMESPACE_RULE = 10;
-
-  @DomName('CSSRule.PAGE_RULE')
-  @DocsEditable()
-  static const int PAGE_RULE = 6;
-
-  @DomName('CSSRule.STYLE_RULE')
-  @DocsEditable()
-  static const int STYLE_RULE = 1;
-
-  @DomName('CSSRule.SUPPORTS_RULE')
-  @DocsEditable()
-  static const int SUPPORTS_RULE = 12;
-
-  @DomName('CSSRule.VIEWPORT_RULE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int VIEWPORT_RULE = 15;
-
-  @DomName('CSSRule.WEBKIT_KEYFRAMES_RULE')
-  @DocsEditable()
-  // http://www.w3.org/TR/css3-animations/#cssrule
-  @Experimental()
-  static const int WEBKIT_KEYFRAMES_RULE = 7;
-
-  @DomName('CSSRule.WEBKIT_KEYFRAME_RULE')
-  @DocsEditable()
-  // http://www.w3.org/TR/css3-animations/#cssrule
-  @Experimental()
-  static const int WEBKIT_KEYFRAME_RULE = 8;
-
-  @DomName('CSSRule.cssText')
-  @DocsEditable()
-  String cssText;
-
-  @DomName('CSSRule.parentRule')
-  @DocsEditable()
-  final CssRule parentRule;
-
-  @DomName('CSSRule.parentStyleSheet')
-  @DocsEditable()
-  final CssStyleSheet parentStyleSheet;
-
-  @DomName('CSSRule.type')
-  @DocsEditable()
-  final int type;
-}
-
-// Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: DO NOT EDIT THIS TEMPLATE FILE.
-// The template file was generated by scripts/css_code_generator.py
-
-// Source of CSS properties:
-//   CSSPropertyNames.in
-
-@DomName('CSSStyleDeclaration')
-@Native("CSSStyleDeclaration,MSStyleCSSProperties,CSS2Properties")
-class CssStyleDeclaration extends Interceptor with CssStyleDeclarationBase {
-  factory CssStyleDeclaration() => new CssStyleDeclaration.css('');
-
-  factory CssStyleDeclaration.css(String css) {
-    final style = new DivElement().style;
-    style.cssText = css;
-    return style;
-  }
-
-  /// Returns the value of the property if the provided *CSS* property
-  /// name is supported on this element and if the value is set. Otherwise
-  /// returns an empty string.
-  ///
-  /// Please note the property name uses camelCase, not-hyphens.
-  String getPropertyValue(String propertyName) {
-    var propValue = _getPropertyValueHelper(propertyName);
-    return propValue ?? '';
-  }
-
-  String _getPropertyValueHelper(String propertyName) {
-    return _getPropertyValue(_browserPropertyName(propertyName));
-  }
-
-  /**
-   * Returns true if the provided *CSS* property name is supported on this
-   * element.
-   *
-   * Please note the property name camelCase, not-hyphens. This
-   * method returns true if the property is accessible via an unprefixed _or_
-   * prefixed property.
-   */
-  bool supportsProperty(String propertyName) {
-    return _supportsProperty(propertyName) ||
-        _supportsProperty(_camelCase("${Device.cssPrefix}$propertyName"));
-  }
-
-  bool _supportsProperty(String propertyName) {
-    return JS('bool', '# in #', propertyName, this);
-  }
-
-  @DomName('CSSStyleDeclaration.setProperty')
-  void setProperty(String propertyName, String value, [String priority]) {
-    return _setPropertyHelper(
-        _browserPropertyName(propertyName), value, priority);
-  }
-
-  String _browserPropertyName(String propertyName) {
-    String name = _readCache(propertyName);
-    if (name is String) return name;
-    name = _supportedBrowserPropertyName(propertyName);
-    _writeCache(propertyName, name);
-    return name;
-  }
-
-  String _supportedBrowserPropertyName(String propertyName) {
-    if (_supportsProperty(_camelCase(propertyName))) {
-      return propertyName;
-    }
-    var prefixed = "${Device.cssPrefix}$propertyName";
-    if (_supportsProperty(prefixed)) {
-      return prefixed;
-    }
-    // May be a CSS variable, just use it as provided.
-    return propertyName;
-  }
-
-  static final _propertyCache = JS('', '{}');
-  static String _readCache(String key) =>
-      JS('String|Null', '#[#]', _propertyCache, key);
-  static void _writeCache(String key, String value) {
-    JS('void', '#[#] = #', _propertyCache, key, value);
-  }
-
-  static String _camelCase(String hyphenated) {
-    var replacedMs = JS('String', r'#.replace(/^-ms-/, "ms-")', hyphenated);
-    return JS(
-        'String',
-        r'#.replace(/-([\da-z])/ig,'
-        r'function(_, letter) { return letter.toUpperCase();})',
-        replacedMs);
-  }
-
-  void _setPropertyHelper(String propertyName, String value,
-      [String priority]) {
-    if (value == null) value = '';
-    if (priority == null) priority = '';
-    JS('void', '#.setProperty(#, #, #)', this, propertyName, value, priority);
-  }
-
-  /**
-   * Checks to see if CSS Transitions are supported.
-   */
-  static bool get supportsTransitions {
-    return document.body.style.supportsProperty('transition');
-  }
-
-  // To suppress missing implicit constructor warnings.
-  factory CssStyleDeclaration._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CSSStyleDeclaration.cssFloat')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String cssFloat;
-
-  @DomName('CSSStyleDeclaration.cssText')
-  @DocsEditable()
-  String cssText;
-
-  @DomName('CSSStyleDeclaration.length')
-  @DocsEditable()
-  final int length;
-
-  @DomName('CSSStyleDeclaration.parentRule')
-  @DocsEditable()
-  final CssRule parentRule;
-
-  @DomName('CSSStyleDeclaration.getPropertyPriority')
-  @DocsEditable()
-  String getPropertyPriority(String property) native;
-
-  @JSName('getPropertyValue')
-  @DomName('CSSStyleDeclaration.getPropertyValue')
-  @DocsEditable()
-  String _getPropertyValue(String property) native;
-
-  @DomName('CSSStyleDeclaration.item')
-  @DocsEditable()
-  String item(int index) native;
-
-  @DomName('CSSStyleDeclaration.removeProperty')
-  @DocsEditable()
-  String removeProperty(String property) native;
-
-  /** Gets the value of "background" */
-  String get background => this._background;
-
-  /** Sets the value of "background" */
-  set background(String value) {
-    _background = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('background')
-  String _background;
-
-  /** Gets the value of "background-attachment" */
-  String get backgroundAttachment => this._backgroundAttachment;
-
-  /** Sets the value of "background-attachment" */
-  set backgroundAttachment(String value) {
-    _backgroundAttachment = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('backgroundAttachment')
-  String _backgroundAttachment;
-
-  /** Gets the value of "background-color" */
-  String get backgroundColor => this._backgroundColor;
-
-  /** Sets the value of "background-color" */
-  set backgroundColor(String value) {
-    _backgroundColor = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('backgroundColor')
-  String _backgroundColor;
-
-  /** Gets the value of "background-image" */
-  String get backgroundImage => this._backgroundImage;
-
-  /** Sets the value of "background-image" */
-  set backgroundImage(String value) {
-    _backgroundImage = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('backgroundImage')
-  String _backgroundImage;
-
-  /** Gets the value of "background-position" */
-  String get backgroundPosition => this._backgroundPosition;
-
-  /** Sets the value of "background-position" */
-  set backgroundPosition(String value) {
-    _backgroundPosition = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('backgroundPosition')
-  String _backgroundPosition;
-
-  /** Gets the value of "background-repeat" */
-  String get backgroundRepeat => this._backgroundRepeat;
-
-  /** Sets the value of "background-repeat" */
-  set backgroundRepeat(String value) {
-    _backgroundRepeat = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('backgroundRepeat')
-  String _backgroundRepeat;
-
-  /** Gets the value of "border" */
-  String get border => this._border;
-
-  /** Sets the value of "border" */
-  set border(String value) {
-    _border = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('border')
-  String _border;
-
-  /** Gets the value of "border-bottom" */
-  String get borderBottom => this._borderBottom;
-
-  /** Sets the value of "border-bottom" */
-  set borderBottom(String value) {
-    _borderBottom = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('borderBottom')
-  String _borderBottom;
-
-  /** Gets the value of "border-bottom-color" */
-  String get borderBottomColor => this._borderBottomColor;
-
-  /** Sets the value of "border-bottom-color" */
-  set borderBottomColor(String value) {
-    _borderBottomColor = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('borderBottomColor')
-  String _borderBottomColor;
-
-  /** Gets the value of "border-bottom-style" */
-  String get borderBottomStyle => this._borderBottomStyle;
-
-  /** Sets the value of "border-bottom-style" */
-  set borderBottomStyle(String value) {
-    _borderBottomStyle = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('borderBottomStyle')
-  String _borderBottomStyle;
-
-  /** Gets the value of "border-bottom-width" */
-  String get borderBottomWidth => this._borderBottomWidth;
-
-  /** Sets the value of "border-bottom-width" */
-  set borderBottomWidth(String value) {
-    _borderBottomWidth = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('borderBottomWidth')
-  String _borderBottomWidth;
-
-  /** Gets the value of "border-collapse" */
-  String get borderCollapse => this._borderCollapse;
-
-  /** Sets the value of "border-collapse" */
-  set borderCollapse(String value) {
-    _borderCollapse = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('borderCollapse')
-  String _borderCollapse;
-
-  /** Gets the value of "border-color" */
-  String get borderColor => this._borderColor;
-
-  /** Sets the value of "border-color" */
-  set borderColor(String value) {
-    _borderColor = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('borderColor')
-  String _borderColor;
-
-  /** Gets the value of "border-left" */
-  String get borderLeft => this._borderLeft;
-
-  /** Sets the value of "border-left" */
-  set borderLeft(String value) {
-    _borderLeft = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('borderLeft')
-  String _borderLeft;
-
-  /** Gets the value of "border-left-color" */
-  String get borderLeftColor => this._borderLeftColor;
-
-  /** Sets the value of "border-left-color" */
-  set borderLeftColor(String value) {
-    _borderLeftColor = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('borderLeftColor')
-  String _borderLeftColor;
-
-  /** Gets the value of "border-left-style" */
-  String get borderLeftStyle => this._borderLeftStyle;
-
-  /** Sets the value of "border-left-style" */
-  set borderLeftStyle(String value) {
-    _borderLeftStyle = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('borderLeftStyle')
-  String _borderLeftStyle;
-
-  /** Gets the value of "border-left-width" */
-  String get borderLeftWidth => this._borderLeftWidth;
-
-  /** Sets the value of "border-left-width" */
-  set borderLeftWidth(String value) {
-    _borderLeftWidth = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('borderLeftWidth')
-  String _borderLeftWidth;
-
-  /** Gets the value of "border-right" */
-  String get borderRight => this._borderRight;
-
-  /** Sets the value of "border-right" */
-  set borderRight(String value) {
-    _borderRight = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('borderRight')
-  String _borderRight;
-
-  /** Gets the value of "border-right-color" */
-  String get borderRightColor => this._borderRightColor;
-
-  /** Sets the value of "border-right-color" */
-  set borderRightColor(String value) {
-    _borderRightColor = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('borderRightColor')
-  String _borderRightColor;
-
-  /** Gets the value of "border-right-style" */
-  String get borderRightStyle => this._borderRightStyle;
-
-  /** Sets the value of "border-right-style" */
-  set borderRightStyle(String value) {
-    _borderRightStyle = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('borderRightStyle')
-  String _borderRightStyle;
-
-  /** Gets the value of "border-right-width" */
-  String get borderRightWidth => this._borderRightWidth;
-
-  /** Sets the value of "border-right-width" */
-  set borderRightWidth(String value) {
-    _borderRightWidth = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('borderRightWidth')
-  String _borderRightWidth;
-
-  /** Gets the value of "border-spacing" */
-  String get borderSpacing => this._borderSpacing;
-
-  /** Sets the value of "border-spacing" */
-  set borderSpacing(String value) {
-    _borderSpacing = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('borderSpacing')
-  String _borderSpacing;
-
-  /** Gets the value of "border-style" */
-  String get borderStyle => this._borderStyle;
-
-  /** Sets the value of "border-style" */
-  set borderStyle(String value) {
-    _borderStyle = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('borderStyle')
-  String _borderStyle;
-
-  /** Gets the value of "border-top" */
-  String get borderTop => this._borderTop;
-
-  /** Sets the value of "border-top" */
-  set borderTop(String value) {
-    _borderTop = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('borderTop')
-  String _borderTop;
-
-  /** Gets the value of "border-top-color" */
-  String get borderTopColor => this._borderTopColor;
-
-  /** Sets the value of "border-top-color" */
-  set borderTopColor(String value) {
-    _borderTopColor = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('borderTopColor')
-  String _borderTopColor;
-
-  /** Gets the value of "border-top-style" */
-  String get borderTopStyle => this._borderTopStyle;
-
-  /** Sets the value of "border-top-style" */
-  set borderTopStyle(String value) {
-    _borderTopStyle = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('borderTopStyle')
-  String _borderTopStyle;
-
-  /** Gets the value of "border-top-width" */
-  String get borderTopWidth => this._borderTopWidth;
-
-  /** Sets the value of "border-top-width" */
-  set borderTopWidth(String value) {
-    _borderTopWidth = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('borderTopWidth')
-  String _borderTopWidth;
-
-  /** Gets the value of "border-width" */
-  String get borderWidth => this._borderWidth;
-
-  /** Sets the value of "border-width" */
-  set borderWidth(String value) {
-    _borderWidth = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('borderWidth')
-  String _borderWidth;
-
-  /** Gets the value of "bottom" */
-  String get bottom => this._bottom;
-
-  /** Sets the value of "bottom" */
-  set bottom(String value) {
-    _bottom = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('bottom')
-  String _bottom;
-
-  /** Gets the value of "caption-side" */
-  String get captionSide => this._captionSide;
-
-  /** Sets the value of "caption-side" */
-  set captionSide(String value) {
-    _captionSide = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('captionSide')
-  String _captionSide;
-
-  /** Gets the value of "clear" */
-  String get clear => this._clear;
-
-  /** Sets the value of "clear" */
-  set clear(String value) {
-    _clear = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('clear')
-  String _clear;
-
-  /** Gets the value of "clip" */
-  String get clip => this._clip;
-
-  /** Sets the value of "clip" */
-  set clip(String value) {
-    _clip = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('clip')
-  String _clip;
-
-  /** Gets the value of "color" */
-  String get color => this._color;
-
-  /** Sets the value of "color" */
-  set color(String value) {
-    _color = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('color')
-  String _color;
-
-  /** Gets the value of "content" */
-  String get content => this._content;
-
-  /** Sets the value of "content" */
-  set content(String value) {
-    _content = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('content')
-  String _content;
-
-  /** Gets the value of "cursor" */
-  String get cursor => this._cursor;
-
-  /** Sets the value of "cursor" */
-  set cursor(String value) {
-    _cursor = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('cursor')
-  String _cursor;
-
-  /** Gets the value of "direction" */
-  String get direction => this._direction;
-
-  /** Sets the value of "direction" */
-  set direction(String value) {
-    _direction = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('direction')
-  String _direction;
-
-  /** Gets the value of "display" */
-  String get display => this._display;
-
-  /** Sets the value of "display" */
-  set display(String value) {
-    _display = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('display')
-  String _display;
-
-  /** Gets the value of "empty-cells" */
-  String get emptyCells => this._emptyCells;
-
-  /** Sets the value of "empty-cells" */
-  set emptyCells(String value) {
-    _emptyCells = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('emptyCells')
-  String _emptyCells;
-
-  /** Gets the value of "font" */
-  String get font => this._font;
-
-  /** Sets the value of "font" */
-  set font(String value) {
-    _font = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('font')
-  String _font;
-
-  /** Gets the value of "font-family" */
-  String get fontFamily => this._fontFamily;
-
-  /** Sets the value of "font-family" */
-  set fontFamily(String value) {
-    _fontFamily = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('fontFamily')
-  String _fontFamily;
-
-  /** Gets the value of "font-size" */
-  String get fontSize => this._fontSize;
-
-  /** Sets the value of "font-size" */
-  set fontSize(String value) {
-    _fontSize = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('fontSize')
-  String _fontSize;
-
-  /** Gets the value of "font-style" */
-  String get fontStyle => this._fontStyle;
-
-  /** Sets the value of "font-style" */
-  set fontStyle(String value) {
-    _fontStyle = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('fontStyle')
-  String _fontStyle;
-
-  /** Gets the value of "font-variant" */
-  String get fontVariant => this._fontVariant;
-
-  /** Sets the value of "font-variant" */
-  set fontVariant(String value) {
-    _fontVariant = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('fontVariant')
-  String _fontVariant;
-
-  /** Gets the value of "font-weight" */
-  String get fontWeight => this._fontWeight;
-
-  /** Sets the value of "font-weight" */
-  set fontWeight(String value) {
-    _fontWeight = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('fontWeight')
-  String _fontWeight;
-
-  /** Gets the value of "height" */
-  String get height => this._height;
-
-  /** Sets the value of "height" */
-  set height(String value) {
-    _height = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('height')
-  String _height;
-
-  /** Gets the value of "left" */
-  String get left => this._left;
-
-  /** Sets the value of "left" */
-  set left(String value) {
-    _left = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('left')
-  String _left;
-
-  /** Gets the value of "letter-spacing" */
-  String get letterSpacing => this._letterSpacing;
-
-  /** Sets the value of "letter-spacing" */
-  set letterSpacing(String value) {
-    _letterSpacing = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('letterSpacing')
-  String _letterSpacing;
-
-  /** Gets the value of "line-height" */
-  String get lineHeight => this._lineHeight;
-
-  /** Sets the value of "line-height" */
-  set lineHeight(String value) {
-    _lineHeight = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('lineHeight')
-  String _lineHeight;
-
-  /** Gets the value of "list-style" */
-  String get listStyle => this._listStyle;
-
-  /** Sets the value of "list-style" */
-  set listStyle(String value) {
-    _listStyle = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('listStyle')
-  String _listStyle;
-
-  /** Gets the value of "list-style-image" */
-  String get listStyleImage => this._listStyleImage;
-
-  /** Sets the value of "list-style-image" */
-  set listStyleImage(String value) {
-    _listStyleImage = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('listStyleImage')
-  String _listStyleImage;
-
-  /** Gets the value of "list-style-position" */
-  String get listStylePosition => this._listStylePosition;
-
-  /** Sets the value of "list-style-position" */
-  set listStylePosition(String value) {
-    _listStylePosition = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('listStylePosition')
-  String _listStylePosition;
-
-  /** Gets the value of "list-style-type" */
-  String get listStyleType => this._listStyleType;
-
-  /** Sets the value of "list-style-type" */
-  set listStyleType(String value) {
-    _listStyleType = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('listStyleType')
-  String _listStyleType;
-
-  /** Gets the value of "margin" */
-  String get margin => this._margin;
-
-  /** Sets the value of "margin" */
-  set margin(String value) {
-    _margin = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('margin')
-  String _margin;
-
-  /** Gets the value of "margin-bottom" */
-  String get marginBottom => this._marginBottom;
-
-  /** Sets the value of "margin-bottom" */
-  set marginBottom(String value) {
-    _marginBottom = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('marginBottom')
-  String _marginBottom;
-
-  /** Gets the value of "margin-left" */
-  String get marginLeft => this._marginLeft;
-
-  /** Sets the value of "margin-left" */
-  set marginLeft(String value) {
-    _marginLeft = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('marginLeft')
-  String _marginLeft;
-
-  /** Gets the value of "margin-right" */
-  String get marginRight => this._marginRight;
-
-  /** Sets the value of "margin-right" */
-  set marginRight(String value) {
-    _marginRight = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('marginRight')
-  String _marginRight;
-
-  /** Gets the value of "margin-top" */
-  String get marginTop => this._marginTop;
-
-  /** Sets the value of "margin-top" */
-  set marginTop(String value) {
-    _marginTop = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('marginTop')
-  String _marginTop;
-
-  /** Gets the value of "max-height" */
-  String get maxHeight => this._maxHeight;
-
-  /** Sets the value of "max-height" */
-  set maxHeight(String value) {
-    _maxHeight = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('maxHeight')
-  String _maxHeight;
-
-  /** Gets the value of "max-width" */
-  String get maxWidth => this._maxWidth;
-
-  /** Sets the value of "max-width" */
-  set maxWidth(String value) {
-    _maxWidth = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('maxWidth')
-  String _maxWidth;
-
-  /** Gets the value of "min-height" */
-  String get minHeight => this._minHeight;
-
-  /** Sets the value of "min-height" */
-  set minHeight(String value) {
-    _minHeight = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('minHeight')
-  String _minHeight;
-
-  /** Gets the value of "min-width" */
-  String get minWidth => this._minWidth;
-
-  /** Sets the value of "min-width" */
-  set minWidth(String value) {
-    _minWidth = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('minWidth')
-  String _minWidth;
-
-  /** Gets the value of "outline" */
-  String get outline => this._outline;
-
-  /** Sets the value of "outline" */
-  set outline(String value) {
-    _outline = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('outline')
-  String _outline;
-
-  /** Gets the value of "outline-color" */
-  String get outlineColor => this._outlineColor;
-
-  /** Sets the value of "outline-color" */
-  set outlineColor(String value) {
-    _outlineColor = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('outlineColor')
-  String _outlineColor;
-
-  /** Gets the value of "outline-style" */
-  String get outlineStyle => this._outlineStyle;
-
-  /** Sets the value of "outline-style" */
-  set outlineStyle(String value) {
-    _outlineStyle = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('outlineStyle')
-  String _outlineStyle;
-
-  /** Gets the value of "outline-width" */
-  String get outlineWidth => this._outlineWidth;
-
-  /** Sets the value of "outline-width" */
-  set outlineWidth(String value) {
-    _outlineWidth = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('outlineWidth')
-  String _outlineWidth;
-
-  /** Gets the value of "overflow" */
-  String get overflow => this._overflow;
-
-  /** Sets the value of "overflow" */
-  set overflow(String value) {
-    _overflow = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('overflow')
-  String _overflow;
-
-  /** Gets the value of "padding" */
-  String get padding => this._padding;
-
-  /** Sets the value of "padding" */
-  set padding(String value) {
-    _padding = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('padding')
-  String _padding;
-
-  /** Gets the value of "padding-bottom" */
-  String get paddingBottom => this._paddingBottom;
-
-  /** Sets the value of "padding-bottom" */
-  set paddingBottom(String value) {
-    _paddingBottom = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('paddingBottom')
-  String _paddingBottom;
-
-  /** Gets the value of "padding-left" */
-  String get paddingLeft => this._paddingLeft;
-
-  /** Sets the value of "padding-left" */
-  set paddingLeft(String value) {
-    _paddingLeft = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('paddingLeft')
-  String _paddingLeft;
-
-  /** Gets the value of "padding-right" */
-  String get paddingRight => this._paddingRight;
-
-  /** Sets the value of "padding-right" */
-  set paddingRight(String value) {
-    _paddingRight = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('paddingRight')
-  String _paddingRight;
-
-  /** Gets the value of "padding-top" */
-  String get paddingTop => this._paddingTop;
-
-  /** Sets the value of "padding-top" */
-  set paddingTop(String value) {
-    _paddingTop = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('paddingTop')
-  String _paddingTop;
-
-  /** Gets the value of "page-break-after" */
-  String get pageBreakAfter => this._pageBreakAfter;
-
-  /** Sets the value of "page-break-after" */
-  set pageBreakAfter(String value) {
-    _pageBreakAfter = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('pageBreakAfter')
-  String _pageBreakAfter;
-
-  /** Gets the value of "page-break-before" */
-  String get pageBreakBefore => this._pageBreakBefore;
-
-  /** Sets the value of "page-break-before" */
-  set pageBreakBefore(String value) {
-    _pageBreakBefore = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('pageBreakBefore')
-  String _pageBreakBefore;
-
-  /** Gets the value of "page-break-inside" */
-  String get pageBreakInside => this._pageBreakInside;
-
-  /** Sets the value of "page-break-inside" */
-  set pageBreakInside(String value) {
-    _pageBreakInside = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('pageBreakInside')
-  String _pageBreakInside;
-
-  /** Gets the value of "position" */
-  String get position => this._position;
-
-  /** Sets the value of "position" */
-  set position(String value) {
-    _position = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('position')
-  String _position;
-
-  /** Gets the value of "quotes" */
-  String get quotes => this._quotes;
-
-  /** Sets the value of "quotes" */
-  set quotes(String value) {
-    _quotes = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('quotes')
-  String _quotes;
-
-  /** Gets the value of "right" */
-  String get right => this._right;
-
-  /** Sets the value of "right" */
-  set right(String value) {
-    _right = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('right')
-  String _right;
-
-  /** Gets the value of "table-layout" */
-  String get tableLayout => this._tableLayout;
-
-  /** Sets the value of "table-layout" */
-  set tableLayout(String value) {
-    _tableLayout = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('tableLayout')
-  String _tableLayout;
-
-  /** Gets the value of "text-align" */
-  String get textAlign => this._textAlign;
-
-  /** Sets the value of "text-align" */
-  set textAlign(String value) {
-    _textAlign = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('textAlign')
-  String _textAlign;
-
-  /** Gets the value of "text-decoration" */
-  String get textDecoration => this._textDecoration;
-
-  /** Sets the value of "text-decoration" */
-  set textDecoration(String value) {
-    _textDecoration = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('textDecoration')
-  String _textDecoration;
-
-  /** Gets the value of "text-indent" */
-  String get textIndent => this._textIndent;
-
-  /** Sets the value of "text-indent" */
-  set textIndent(String value) {
-    _textIndent = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('textIndent')
-  String _textIndent;
-
-  /** Gets the value of "text-transform" */
-  String get textTransform => this._textTransform;
-
-  /** Sets the value of "text-transform" */
-  set textTransform(String value) {
-    _textTransform = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('textTransform')
-  String _textTransform;
-
-  /** Gets the value of "top" */
-  String get top => this._top;
-
-  /** Sets the value of "top" */
-  set top(String value) {
-    _top = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('top')
-  String _top;
-
-  /** Gets the value of "unicode-bidi" */
-  String get unicodeBidi => this._unicodeBidi;
-
-  /** Sets the value of "unicode-bidi" */
-  set unicodeBidi(String value) {
-    _unicodeBidi = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('unicodeBidi')
-  String _unicodeBidi;
-
-  /** Gets the value of "vertical-align" */
-  String get verticalAlign => this._verticalAlign;
-
-  /** Sets the value of "vertical-align" */
-  set verticalAlign(String value) {
-    _verticalAlign = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('verticalAlign')
-  String _verticalAlign;
-
-  /** Gets the value of "visibility" */
-  String get visibility => this._visibility;
-
-  /** Sets the value of "visibility" */
-  set visibility(String value) {
-    _visibility = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('visibility')
-  String _visibility;
-
-  /** Gets the value of "white-space" */
-  String get whiteSpace => this._whiteSpace;
-
-  /** Sets the value of "white-space" */
-  set whiteSpace(String value) {
-    _whiteSpace = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('whiteSpace')
-  String _whiteSpace;
-
-  /** Gets the value of "width" */
-  String get width => this._width;
-
-  /** Sets the value of "width" */
-  set width(String value) {
-    _width = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('width')
-  String _width;
-
-  /** Gets the value of "word-spacing" */
-  String get wordSpacing => this._wordSpacing;
-
-  /** Sets the value of "word-spacing" */
-  set wordSpacing(String value) {
-    _wordSpacing = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('wordSpacing')
-  String _wordSpacing;
-
-  /** Gets the value of "z-index" */
-  String get zIndex => this._zIndex;
-
-  /** Sets the value of "z-index" */
-  set zIndex(String value) {
-    _zIndex = value == null ? '' : value;
-  }
-
-  @Returns('String')
-  @JSName('zIndex')
-  String _zIndex;
-}
-
-class _CssStyleDeclarationSet extends Object with CssStyleDeclarationBase {
-  final Iterable<Element> _elementIterable;
-  Iterable<CssStyleDeclaration> _elementCssStyleDeclarationSetIterable;
-
-  _CssStyleDeclarationSet(this._elementIterable) {
-    _elementCssStyleDeclarationSetIterable =
-        new List.from(_elementIterable).map((e) => e.style);
-  }
-
-  String getPropertyValue(String propertyName) =>
-      _elementCssStyleDeclarationSetIterable.first
-          .getPropertyValue(propertyName);
-
-  void setProperty(String propertyName, String value, [String priority]) {
-    _elementCssStyleDeclarationSetIterable
-        .forEach((e) => e.setProperty(propertyName, value, priority));
-  }
-
-  void _setAll(String propertyName, String value) {
-    value = value == null ? '' : value;
-    for (Element element in _elementIterable) {
-      JS('void', '#.style[#] = #', element, propertyName, value);
-    }
-  }
-
-  /** Sets the value of "background" */
-  set background(String value) {
-    _setAll('background', value);
-  }
-
-  /** Sets the value of "background-attachment" */
-  set backgroundAttachment(String value) {
-    _setAll('backgroundAttachment', value);
-  }
-
-  /** Sets the value of "background-color" */
-  set backgroundColor(String value) {
-    _setAll('backgroundColor', value);
-  }
-
-  /** Sets the value of "background-image" */
-  set backgroundImage(String value) {
-    _setAll('backgroundImage', value);
-  }
-
-  /** Sets the value of "background-position" */
-  set backgroundPosition(String value) {
-    _setAll('backgroundPosition', value);
-  }
-
-  /** Sets the value of "background-repeat" */
-  set backgroundRepeat(String value) {
-    _setAll('backgroundRepeat', value);
-  }
-
-  /** Sets the value of "border" */
-  set border(String value) {
-    _setAll('border', value);
-  }
-
-  /** Sets the value of "border-bottom" */
-  set borderBottom(String value) {
-    _setAll('borderBottom', value);
-  }
-
-  /** Sets the value of "border-bottom-color" */
-  set borderBottomColor(String value) {
-    _setAll('borderBottomColor', value);
-  }
-
-  /** Sets the value of "border-bottom-style" */
-  set borderBottomStyle(String value) {
-    _setAll('borderBottomStyle', value);
-  }
-
-  /** Sets the value of "border-bottom-width" */
-  set borderBottomWidth(String value) {
-    _setAll('borderBottomWidth', value);
-  }
-
-  /** Sets the value of "border-collapse" */
-  set borderCollapse(String value) {
-    _setAll('borderCollapse', value);
-  }
-
-  /** Sets the value of "border-color" */
-  set borderColor(String value) {
-    _setAll('borderColor', value);
-  }
-
-  /** Sets the value of "border-left" */
-  set borderLeft(String value) {
-    _setAll('borderLeft', value);
-  }
-
-  /** Sets the value of "border-left-color" */
-  set borderLeftColor(String value) {
-    _setAll('borderLeftColor', value);
-  }
-
-  /** Sets the value of "border-left-style" */
-  set borderLeftStyle(String value) {
-    _setAll('borderLeftStyle', value);
-  }
-
-  /** Sets the value of "border-left-width" */
-  set borderLeftWidth(String value) {
-    _setAll('borderLeftWidth', value);
-  }
-
-  /** Sets the value of "border-right" */
-  set borderRight(String value) {
-    _setAll('borderRight', value);
-  }
-
-  /** Sets the value of "border-right-color" */
-  set borderRightColor(String value) {
-    _setAll('borderRightColor', value);
-  }
-
-  /** Sets the value of "border-right-style" */
-  set borderRightStyle(String value) {
-    _setAll('borderRightStyle', value);
-  }
-
-  /** Sets the value of "border-right-width" */
-  set borderRightWidth(String value) {
-    _setAll('borderRightWidth', value);
-  }
-
-  /** Sets the value of "border-spacing" */
-  set borderSpacing(String value) {
-    _setAll('borderSpacing', value);
-  }
-
-  /** Sets the value of "border-style" */
-  set borderStyle(String value) {
-    _setAll('borderStyle', value);
-  }
-
-  /** Sets the value of "border-top" */
-  set borderTop(String value) {
-    _setAll('borderTop', value);
-  }
-
-  /** Sets the value of "border-top-color" */
-  set borderTopColor(String value) {
-    _setAll('borderTopColor', value);
-  }
-
-  /** Sets the value of "border-top-style" */
-  set borderTopStyle(String value) {
-    _setAll('borderTopStyle', value);
-  }
-
-  /** Sets the value of "border-top-width" */
-  set borderTopWidth(String value) {
-    _setAll('borderTopWidth', value);
-  }
-
-  /** Sets the value of "border-width" */
-  set borderWidth(String value) {
-    _setAll('borderWidth', value);
-  }
-
-  /** Sets the value of "bottom" */
-  set bottom(String value) {
-    _setAll('bottom', value);
-  }
-
-  /** Sets the value of "caption-side" */
-  set captionSide(String value) {
-    _setAll('captionSide', value);
-  }
-
-  /** Sets the value of "clear" */
-  set clear(String value) {
-    _setAll('clear', value);
-  }
-
-  /** Sets the value of "clip" */
-  set clip(String value) {
-    _setAll('clip', value);
-  }
-
-  /** Sets the value of "color" */
-  set color(String value) {
-    _setAll('color', value);
-  }
-
-  /** Sets the value of "content" */
-  set content(String value) {
-    _setAll('content', value);
-  }
-
-  /** Sets the value of "cursor" */
-  set cursor(String value) {
-    _setAll('cursor', value);
-  }
-
-  /** Sets the value of "direction" */
-  set direction(String value) {
-    _setAll('direction', value);
-  }
-
-  /** Sets the value of "display" */
-  set display(String value) {
-    _setAll('display', value);
-  }
-
-  /** Sets the value of "empty-cells" */
-  set emptyCells(String value) {
-    _setAll('emptyCells', value);
-  }
-
-  /** Sets the value of "font" */
-  set font(String value) {
-    _setAll('font', value);
-  }
-
-  /** Sets the value of "font-family" */
-  set fontFamily(String value) {
-    _setAll('fontFamily', value);
-  }
-
-  /** Sets the value of "font-size" */
-  set fontSize(String value) {
-    _setAll('fontSize', value);
-  }
-
-  /** Sets the value of "font-style" */
-  set fontStyle(String value) {
-    _setAll('fontStyle', value);
-  }
-
-  /** Sets the value of "font-variant" */
-  set fontVariant(String value) {
-    _setAll('fontVariant', value);
-  }
-
-  /** Sets the value of "font-weight" */
-  set fontWeight(String value) {
-    _setAll('fontWeight', value);
-  }
-
-  /** Sets the value of "height" */
-  set height(String value) {
-    _setAll('height', value);
-  }
-
-  /** Sets the value of "left" */
-  set left(String value) {
-    _setAll('left', value);
-  }
-
-  /** Sets the value of "letter-spacing" */
-  set letterSpacing(String value) {
-    _setAll('letterSpacing', value);
-  }
-
-  /** Sets the value of "line-height" */
-  set lineHeight(String value) {
-    _setAll('lineHeight', value);
-  }
-
-  /** Sets the value of "list-style" */
-  set listStyle(String value) {
-    _setAll('listStyle', value);
-  }
-
-  /** Sets the value of "list-style-image" */
-  set listStyleImage(String value) {
-    _setAll('listStyleImage', value);
-  }
-
-  /** Sets the value of "list-style-position" */
-  set listStylePosition(String value) {
-    _setAll('listStylePosition', value);
-  }
-
-  /** Sets the value of "list-style-type" */
-  set listStyleType(String value) {
-    _setAll('listStyleType', value);
-  }
-
-  /** Sets the value of "margin" */
-  set margin(String value) {
-    _setAll('margin', value);
-  }
-
-  /** Sets the value of "margin-bottom" */
-  set marginBottom(String value) {
-    _setAll('marginBottom', value);
-  }
-
-  /** Sets the value of "margin-left" */
-  set marginLeft(String value) {
-    _setAll('marginLeft', value);
-  }
-
-  /** Sets the value of "margin-right" */
-  set marginRight(String value) {
-    _setAll('marginRight', value);
-  }
-
-  /** Sets the value of "margin-top" */
-  set marginTop(String value) {
-    _setAll('marginTop', value);
-  }
-
-  /** Sets the value of "max-height" */
-  set maxHeight(String value) {
-    _setAll('maxHeight', value);
-  }
-
-  /** Sets the value of "max-width" */
-  set maxWidth(String value) {
-    _setAll('maxWidth', value);
-  }
-
-  /** Sets the value of "min-height" */
-  set minHeight(String value) {
-    _setAll('minHeight', value);
-  }
-
-  /** Sets the value of "min-width" */
-  set minWidth(String value) {
-    _setAll('minWidth', value);
-  }
-
-  /** Sets the value of "outline" */
-  set outline(String value) {
-    _setAll('outline', value);
-  }
-
-  /** Sets the value of "outline-color" */
-  set outlineColor(String value) {
-    _setAll('outlineColor', value);
-  }
-
-  /** Sets the value of "outline-style" */
-  set outlineStyle(String value) {
-    _setAll('outlineStyle', value);
-  }
-
-  /** Sets the value of "outline-width" */
-  set outlineWidth(String value) {
-    _setAll('outlineWidth', value);
-  }
-
-  /** Sets the value of "overflow" */
-  set overflow(String value) {
-    _setAll('overflow', value);
-  }
-
-  /** Sets the value of "padding" */
-  set padding(String value) {
-    _setAll('padding', value);
-  }
-
-  /** Sets the value of "padding-bottom" */
-  set paddingBottom(String value) {
-    _setAll('paddingBottom', value);
-  }
-
-  /** Sets the value of "padding-left" */
-  set paddingLeft(String value) {
-    _setAll('paddingLeft', value);
-  }
-
-  /** Sets the value of "padding-right" */
-  set paddingRight(String value) {
-    _setAll('paddingRight', value);
-  }
-
-  /** Sets the value of "padding-top" */
-  set paddingTop(String value) {
-    _setAll('paddingTop', value);
-  }
-
-  /** Sets the value of "page-break-after" */
-  set pageBreakAfter(String value) {
-    _setAll('pageBreakAfter', value);
-  }
-
-  /** Sets the value of "page-break-before" */
-  set pageBreakBefore(String value) {
-    _setAll('pageBreakBefore', value);
-  }
-
-  /** Sets the value of "page-break-inside" */
-  set pageBreakInside(String value) {
-    _setAll('pageBreakInside', value);
-  }
-
-  /** Sets the value of "position" */
-  set position(String value) {
-    _setAll('position', value);
-  }
-
-  /** Sets the value of "quotes" */
-  set quotes(String value) {
-    _setAll('quotes', value);
-  }
-
-  /** Sets the value of "right" */
-  set right(String value) {
-    _setAll('right', value);
-  }
-
-  /** Sets the value of "table-layout" */
-  set tableLayout(String value) {
-    _setAll('tableLayout', value);
-  }
-
-  /** Sets the value of "text-align" */
-  set textAlign(String value) {
-    _setAll('textAlign', value);
-  }
-
-  /** Sets the value of "text-decoration" */
-  set textDecoration(String value) {
-    _setAll('textDecoration', value);
-  }
-
-  /** Sets the value of "text-indent" */
-  set textIndent(String value) {
-    _setAll('textIndent', value);
-  }
-
-  /** Sets the value of "text-transform" */
-  set textTransform(String value) {
-    _setAll('textTransform', value);
-  }
-
-  /** Sets the value of "top" */
-  set top(String value) {
-    _setAll('top', value);
-  }
-
-  /** Sets the value of "unicode-bidi" */
-  set unicodeBidi(String value) {
-    _setAll('unicodeBidi', value);
-  }
-
-  /** Sets the value of "vertical-align" */
-  set verticalAlign(String value) {
-    _setAll('verticalAlign', value);
-  }
-
-  /** Sets the value of "visibility" */
-  set visibility(String value) {
-    _setAll('visibility', value);
-  }
-
-  /** Sets the value of "white-space" */
-  set whiteSpace(String value) {
-    _setAll('whiteSpace', value);
-  }
-
-  /** Sets the value of "width" */
-  set width(String value) {
-    _setAll('width', value);
-  }
-
-  /** Sets the value of "word-spacing" */
-  set wordSpacing(String value) {
-    _setAll('wordSpacing', value);
-  }
-
-  /** Sets the value of "z-index" */
-  set zIndex(String value) {
-    _setAll('zIndex', value);
-  }
-
-  // Important note: CssStyleDeclarationSet does NOT implement every method
-  // available in CssStyleDeclaration. Some of the methods don't make so much
-  // sense in terms of having a resonable value to return when you're
-  // considering a list of Elements. You will need to manually add any of the
-  // items in the MEMBERS set if you want that functionality.
-}
-
-abstract class CssStyleDeclarationBase {
-  String getPropertyValue(String propertyName);
-  void setProperty(String propertyName, String value, [String priority]);
-
-  /** Gets the value of "align-content" */
-  String get alignContent => getPropertyValue('align-content');
-
-  /** Sets the value of "align-content" */
-  set alignContent(String value) {
-    setProperty('align-content', value, '');
-  }
-
-  /** Gets the value of "align-items" */
-  String get alignItems => getPropertyValue('align-items');
-
-  /** Sets the value of "align-items" */
-  set alignItems(String value) {
-    setProperty('align-items', value, '');
-  }
-
-  /** Gets the value of "align-self" */
-  String get alignSelf => getPropertyValue('align-self');
-
-  /** Sets the value of "align-self" */
-  set alignSelf(String value) {
-    setProperty('align-self', value, '');
-  }
-
-  /** Gets the value of "animation" */
-  String get animation => getPropertyValue('animation');
-
-  /** Sets the value of "animation" */
-  set animation(String value) {
-    setProperty('animation', value, '');
-  }
-
-  /** Gets the value of "animation-delay" */
-  String get animationDelay => getPropertyValue('animation-delay');
-
-  /** Sets the value of "animation-delay" */
-  set animationDelay(String value) {
-    setProperty('animation-delay', value, '');
-  }
-
-  /** Gets the value of "animation-direction" */
-  String get animationDirection => getPropertyValue('animation-direction');
-
-  /** Sets the value of "animation-direction" */
-  set animationDirection(String value) {
-    setProperty('animation-direction', value, '');
-  }
-
-  /** Gets the value of "animation-duration" */
-  String get animationDuration => getPropertyValue('animation-duration');
-
-  /** Sets the value of "animation-duration" */
-  set animationDuration(String value) {
-    setProperty('animation-duration', value, '');
-  }
-
-  /** Gets the value of "animation-fill-mode" */
-  String get animationFillMode => getPropertyValue('animation-fill-mode');
-
-  /** Sets the value of "animation-fill-mode" */
-  set animationFillMode(String value) {
-    setProperty('animation-fill-mode', value, '');
-  }
-
-  /** Gets the value of "animation-iteration-count" */
-  String get animationIterationCount =>
-      getPropertyValue('animation-iteration-count');
-
-  /** Sets the value of "animation-iteration-count" */
-  set animationIterationCount(String value) {
-    setProperty('animation-iteration-count', value, '');
-  }
-
-  /** Gets the value of "animation-name" */
-  String get animationName => getPropertyValue('animation-name');
-
-  /** Sets the value of "animation-name" */
-  set animationName(String value) {
-    setProperty('animation-name', value, '');
-  }
-
-  /** Gets the value of "animation-play-state" */
-  String get animationPlayState => getPropertyValue('animation-play-state');
-
-  /** Sets the value of "animation-play-state" */
-  set animationPlayState(String value) {
-    setProperty('animation-play-state', value, '');
-  }
-
-  /** Gets the value of "animation-timing-function" */
-  String get animationTimingFunction =>
-      getPropertyValue('animation-timing-function');
-
-  /** Sets the value of "animation-timing-function" */
-  set animationTimingFunction(String value) {
-    setProperty('animation-timing-function', value, '');
-  }
-
-  /** Gets the value of "app-region" */
-  String get appRegion => getPropertyValue('app-region');
-
-  /** Sets the value of "app-region" */
-  set appRegion(String value) {
-    setProperty('app-region', value, '');
-  }
-
-  /** Gets the value of "appearance" */
-  String get appearance => getPropertyValue('appearance');
-
-  /** Sets the value of "appearance" */
-  set appearance(String value) {
-    setProperty('appearance', value, '');
-  }
-
-  /** Gets the value of "aspect-ratio" */
-  String get aspectRatio => getPropertyValue('aspect-ratio');
-
-  /** Sets the value of "aspect-ratio" */
-  set aspectRatio(String value) {
-    setProperty('aspect-ratio', value, '');
-  }
-
-  /** Gets the value of "backface-visibility" */
-  String get backfaceVisibility => getPropertyValue('backface-visibility');
-
-  /** Sets the value of "backface-visibility" */
-  set backfaceVisibility(String value) {
-    setProperty('backface-visibility', value, '');
-  }
-
-  /** Gets the value of "background" */
-  String get background => getPropertyValue('background');
-
-  /** Sets the value of "background" */
-  set background(String value) {
-    setProperty('background', value, '');
-  }
-
-  /** Gets the value of "background-attachment" */
-  String get backgroundAttachment => getPropertyValue('background-attachment');
-
-  /** Sets the value of "background-attachment" */
-  set backgroundAttachment(String value) {
-    setProperty('background-attachment', value, '');
-  }
-
-  /** Gets the value of "background-blend-mode" */
-  String get backgroundBlendMode => getPropertyValue('background-blend-mode');
-
-  /** Sets the value of "background-blend-mode" */
-  set backgroundBlendMode(String value) {
-    setProperty('background-blend-mode', value, '');
-  }
-
-  /** Gets the value of "background-clip" */
-  String get backgroundClip => getPropertyValue('background-clip');
-
-  /** Sets the value of "background-clip" */
-  set backgroundClip(String value) {
-    setProperty('background-clip', value, '');
-  }
-
-  /** Gets the value of "background-color" */
-  String get backgroundColor => getPropertyValue('background-color');
-
-  /** Sets the value of "background-color" */
-  set backgroundColor(String value) {
-    setProperty('background-color', value, '');
-  }
-
-  /** Gets the value of "background-composite" */
-  String get backgroundComposite => getPropertyValue('background-composite');
-
-  /** Sets the value of "background-composite" */
-  set backgroundComposite(String value) {
-    setProperty('background-composite', value, '');
-  }
-
-  /** Gets the value of "background-image" */
-  String get backgroundImage => getPropertyValue('background-image');
-
-  /** Sets the value of "background-image" */
-  set backgroundImage(String value) {
-    setProperty('background-image', value, '');
-  }
-
-  /** Gets the value of "background-origin" */
-  String get backgroundOrigin => getPropertyValue('background-origin');
-
-  /** Sets the value of "background-origin" */
-  set backgroundOrigin(String value) {
-    setProperty('background-origin', value, '');
-  }
-
-  /** Gets the value of "background-position" */
-  String get backgroundPosition => getPropertyValue('background-position');
-
-  /** Sets the value of "background-position" */
-  set backgroundPosition(String value) {
-    setProperty('background-position', value, '');
-  }
-
-  /** Gets the value of "background-position-x" */
-  String get backgroundPositionX => getPropertyValue('background-position-x');
-
-  /** Sets the value of "background-position-x" */
-  set backgroundPositionX(String value) {
-    setProperty('background-position-x', value, '');
-  }
-
-  /** Gets the value of "background-position-y" */
-  String get backgroundPositionY => getPropertyValue('background-position-y');
-
-  /** Sets the value of "background-position-y" */
-  set backgroundPositionY(String value) {
-    setProperty('background-position-y', value, '');
-  }
-
-  /** Gets the value of "background-repeat" */
-  String get backgroundRepeat => getPropertyValue('background-repeat');
-
-  /** Sets the value of "background-repeat" */
-  set backgroundRepeat(String value) {
-    setProperty('background-repeat', value, '');
-  }
-
-  /** Gets the value of "background-repeat-x" */
-  String get backgroundRepeatX => getPropertyValue('background-repeat-x');
-
-  /** Sets the value of "background-repeat-x" */
-  set backgroundRepeatX(String value) {
-    setProperty('background-repeat-x', value, '');
-  }
-
-  /** Gets the value of "background-repeat-y" */
-  String get backgroundRepeatY => getPropertyValue('background-repeat-y');
-
-  /** Sets the value of "background-repeat-y" */
-  set backgroundRepeatY(String value) {
-    setProperty('background-repeat-y', value, '');
-  }
-
-  /** Gets the value of "background-size" */
-  String get backgroundSize => getPropertyValue('background-size');
-
-  /** Sets the value of "background-size" */
-  set backgroundSize(String value) {
-    setProperty('background-size', value, '');
-  }
-
-  /** Gets the value of "border" */
-  String get border => getPropertyValue('border');
-
-  /** Sets the value of "border" */
-  set border(String value) {
-    setProperty('border', value, '');
-  }
-
-  /** Gets the value of "border-after" */
-  String get borderAfter => getPropertyValue('border-after');
-
-  /** Sets the value of "border-after" */
-  set borderAfter(String value) {
-    setProperty('border-after', value, '');
-  }
-
-  /** Gets the value of "border-after-color" */
-  String get borderAfterColor => getPropertyValue('border-after-color');
-
-  /** Sets the value of "border-after-color" */
-  set borderAfterColor(String value) {
-    setProperty('border-after-color', value, '');
-  }
-
-  /** Gets the value of "border-after-style" */
-  String get borderAfterStyle => getPropertyValue('border-after-style');
-
-  /** Sets the value of "border-after-style" */
-  set borderAfterStyle(String value) {
-    setProperty('border-after-style', value, '');
-  }
-
-  /** Gets the value of "border-after-width" */
-  String get borderAfterWidth => getPropertyValue('border-after-width');
-
-  /** Sets the value of "border-after-width" */
-  set borderAfterWidth(String value) {
-    setProperty('border-after-width', value, '');
-  }
-
-  /** Gets the value of "border-before" */
-  String get borderBefore => getPropertyValue('border-before');
-
-  /** Sets the value of "border-before" */
-  set borderBefore(String value) {
-    setProperty('border-before', value, '');
-  }
-
-  /** Gets the value of "border-before-color" */
-  String get borderBeforeColor => getPropertyValue('border-before-color');
-
-  /** Sets the value of "border-before-color" */
-  set borderBeforeColor(String value) {
-    setProperty('border-before-color', value, '');
-  }
-
-  /** Gets the value of "border-before-style" */
-  String get borderBeforeStyle => getPropertyValue('border-before-style');
-
-  /** Sets the value of "border-before-style" */
-  set borderBeforeStyle(String value) {
-    setProperty('border-before-style', value, '');
-  }
-
-  /** Gets the value of "border-before-width" */
-  String get borderBeforeWidth => getPropertyValue('border-before-width');
-
-  /** Sets the value of "border-before-width" */
-  set borderBeforeWidth(String value) {
-    setProperty('border-before-width', value, '');
-  }
-
-  /** Gets the value of "border-bottom" */
-  String get borderBottom => getPropertyValue('border-bottom');
-
-  /** Sets the value of "border-bottom" */
-  set borderBottom(String value) {
-    setProperty('border-bottom', value, '');
-  }
-
-  /** Gets the value of "border-bottom-color" */
-  String get borderBottomColor => getPropertyValue('border-bottom-color');
-
-  /** Sets the value of "border-bottom-color" */
-  set borderBottomColor(String value) {
-    setProperty('border-bottom-color', value, '');
-  }
-
-  /** Gets the value of "border-bottom-left-radius" */
-  String get borderBottomLeftRadius =>
-      getPropertyValue('border-bottom-left-radius');
-
-  /** Sets the value of "border-bottom-left-radius" */
-  set borderBottomLeftRadius(String value) {
-    setProperty('border-bottom-left-radius', value, '');
-  }
-
-  /** Gets the value of "border-bottom-right-radius" */
-  String get borderBottomRightRadius =>
-      getPropertyValue('border-bottom-right-radius');
-
-  /** Sets the value of "border-bottom-right-radius" */
-  set borderBottomRightRadius(String value) {
-    setProperty('border-bottom-right-radius', value, '');
-  }
-
-  /** Gets the value of "border-bottom-style" */
-  String get borderBottomStyle => getPropertyValue('border-bottom-style');
-
-  /** Sets the value of "border-bottom-style" */
-  set borderBottomStyle(String value) {
-    setProperty('border-bottom-style', value, '');
-  }
-
-  /** Gets the value of "border-bottom-width" */
-  String get borderBottomWidth => getPropertyValue('border-bottom-width');
-
-  /** Sets the value of "border-bottom-width" */
-  set borderBottomWidth(String value) {
-    setProperty('border-bottom-width', value, '');
-  }
-
-  /** Gets the value of "border-collapse" */
-  String get borderCollapse => getPropertyValue('border-collapse');
-
-  /** Sets the value of "border-collapse" */
-  set borderCollapse(String value) {
-    setProperty('border-collapse', value, '');
-  }
-
-  /** Gets the value of "border-color" */
-  String get borderColor => getPropertyValue('border-color');
-
-  /** Sets the value of "border-color" */
-  set borderColor(String value) {
-    setProperty('border-color', value, '');
-  }
-
-  /** Gets the value of "border-end" */
-  String get borderEnd => getPropertyValue('border-end');
-
-  /** Sets the value of "border-end" */
-  set borderEnd(String value) {
-    setProperty('border-end', value, '');
-  }
-
-  /** Gets the value of "border-end-color" */
-  String get borderEndColor => getPropertyValue('border-end-color');
-
-  /** Sets the value of "border-end-color" */
-  set borderEndColor(String value) {
-    setProperty('border-end-color', value, '');
-  }
-
-  /** Gets the value of "border-end-style" */
-  String get borderEndStyle => getPropertyValue('border-end-style');
-
-  /** Sets the value of "border-end-style" */
-  set borderEndStyle(String value) {
-    setProperty('border-end-style', value, '');
-  }
-
-  /** Gets the value of "border-end-width" */
-  String get borderEndWidth => getPropertyValue('border-end-width');
-
-  /** Sets the value of "border-end-width" */
-  set borderEndWidth(String value) {
-    setProperty('border-end-width', value, '');
-  }
-
-  /** Gets the value of "border-fit" */
-  String get borderFit => getPropertyValue('border-fit');
-
-  /** Sets the value of "border-fit" */
-  set borderFit(String value) {
-    setProperty('border-fit', value, '');
-  }
-
-  /** Gets the value of "border-horizontal-spacing" */
-  String get borderHorizontalSpacing =>
-      getPropertyValue('border-horizontal-spacing');
-
-  /** Sets the value of "border-horizontal-spacing" */
-  set borderHorizontalSpacing(String value) {
-    setProperty('border-horizontal-spacing', value, '');
-  }
-
-  /** Gets the value of "border-image" */
-  String get borderImage => getPropertyValue('border-image');
-
-  /** Sets the value of "border-image" */
-  set borderImage(String value) {
-    setProperty('border-image', value, '');
-  }
-
-  /** Gets the value of "border-image-outset" */
-  String get borderImageOutset => getPropertyValue('border-image-outset');
-
-  /** Sets the value of "border-image-outset" */
-  set borderImageOutset(String value) {
-    setProperty('border-image-outset', value, '');
-  }
-
-  /** Gets the value of "border-image-repeat" */
-  String get borderImageRepeat => getPropertyValue('border-image-repeat');
-
-  /** Sets the value of "border-image-repeat" */
-  set borderImageRepeat(String value) {
-    setProperty('border-image-repeat', value, '');
-  }
-
-  /** Gets the value of "border-image-slice" */
-  String get borderImageSlice => getPropertyValue('border-image-slice');
-
-  /** Sets the value of "border-image-slice" */
-  set borderImageSlice(String value) {
-    setProperty('border-image-slice', value, '');
-  }
-
-  /** Gets the value of "border-image-source" */
-  String get borderImageSource => getPropertyValue('border-image-source');
-
-  /** Sets the value of "border-image-source" */
-  set borderImageSource(String value) {
-    setProperty('border-image-source', value, '');
-  }
-
-  /** Gets the value of "border-image-width" */
-  String get borderImageWidth => getPropertyValue('border-image-width');
-
-  /** Sets the value of "border-image-width" */
-  set borderImageWidth(String value) {
-    setProperty('border-image-width', value, '');
-  }
-
-  /** Gets the value of "border-left" */
-  String get borderLeft => getPropertyValue('border-left');
-
-  /** Sets the value of "border-left" */
-  set borderLeft(String value) {
-    setProperty('border-left', value, '');
-  }
-
-  /** Gets the value of "border-left-color" */
-  String get borderLeftColor => getPropertyValue('border-left-color');
-
-  /** Sets the value of "border-left-color" */
-  set borderLeftColor(String value) {
-    setProperty('border-left-color', value, '');
-  }
-
-  /** Gets the value of "border-left-style" */
-  String get borderLeftStyle => getPropertyValue('border-left-style');
-
-  /** Sets the value of "border-left-style" */
-  set borderLeftStyle(String value) {
-    setProperty('border-left-style', value, '');
-  }
-
-  /** Gets the value of "border-left-width" */
-  String get borderLeftWidth => getPropertyValue('border-left-width');
-
-  /** Sets the value of "border-left-width" */
-  set borderLeftWidth(String value) {
-    setProperty('border-left-width', value, '');
-  }
-
-  /** Gets the value of "border-radius" */
-  String get borderRadius => getPropertyValue('border-radius');
-
-  /** Sets the value of "border-radius" */
-  set borderRadius(String value) {
-    setProperty('border-radius', value, '');
-  }
-
-  /** Gets the value of "border-right" */
-  String get borderRight => getPropertyValue('border-right');
-
-  /** Sets the value of "border-right" */
-  set borderRight(String value) {
-    setProperty('border-right', value, '');
-  }
-
-  /** Gets the value of "border-right-color" */
-  String get borderRightColor => getPropertyValue('border-right-color');
-
-  /** Sets the value of "border-right-color" */
-  set borderRightColor(String value) {
-    setProperty('border-right-color', value, '');
-  }
-
-  /** Gets the value of "border-right-style" */
-  String get borderRightStyle => getPropertyValue('border-right-style');
-
-  /** Sets the value of "border-right-style" */
-  set borderRightStyle(String value) {
-    setProperty('border-right-style', value, '');
-  }
-
-  /** Gets the value of "border-right-width" */
-  String get borderRightWidth => getPropertyValue('border-right-width');
-
-  /** Sets the value of "border-right-width" */
-  set borderRightWidth(String value) {
-    setProperty('border-right-width', value, '');
-  }
-
-  /** Gets the value of "border-spacing" */
-  String get borderSpacing => getPropertyValue('border-spacing');
-
-  /** Sets the value of "border-spacing" */
-  set borderSpacing(String value) {
-    setProperty('border-spacing', value, '');
-  }
-
-  /** Gets the value of "border-start" */
-  String get borderStart => getPropertyValue('border-start');
-
-  /** Sets the value of "border-start" */
-  set borderStart(String value) {
-    setProperty('border-start', value, '');
-  }
-
-  /** Gets the value of "border-start-color" */
-  String get borderStartColor => getPropertyValue('border-start-color');
-
-  /** Sets the value of "border-start-color" */
-  set borderStartColor(String value) {
-    setProperty('border-start-color', value, '');
-  }
-
-  /** Gets the value of "border-start-style" */
-  String get borderStartStyle => getPropertyValue('border-start-style');
-
-  /** Sets the value of "border-start-style" */
-  set borderStartStyle(String value) {
-    setProperty('border-start-style', value, '');
-  }
-
-  /** Gets the value of "border-start-width" */
-  String get borderStartWidth => getPropertyValue('border-start-width');
-
-  /** Sets the value of "border-start-width" */
-  set borderStartWidth(String value) {
-    setProperty('border-start-width', value, '');
-  }
-
-  /** Gets the value of "border-style" */
-  String get borderStyle => getPropertyValue('border-style');
-
-  /** Sets the value of "border-style" */
-  set borderStyle(String value) {
-    setProperty('border-style', value, '');
-  }
-
-  /** Gets the value of "border-top" */
-  String get borderTop => getPropertyValue('border-top');
-
-  /** Sets the value of "border-top" */
-  set borderTop(String value) {
-    setProperty('border-top', value, '');
-  }
-
-  /** Gets the value of "border-top-color" */
-  String get borderTopColor => getPropertyValue('border-top-color');
-
-  /** Sets the value of "border-top-color" */
-  set borderTopColor(String value) {
-    setProperty('border-top-color', value, '');
-  }
-
-  /** Gets the value of "border-top-left-radius" */
-  String get borderTopLeftRadius => getPropertyValue('border-top-left-radius');
-
-  /** Sets the value of "border-top-left-radius" */
-  set borderTopLeftRadius(String value) {
-    setProperty('border-top-left-radius', value, '');
-  }
-
-  /** Gets the value of "border-top-right-radius" */
-  String get borderTopRightRadius =>
-      getPropertyValue('border-top-right-radius');
-
-  /** Sets the value of "border-top-right-radius" */
-  set borderTopRightRadius(String value) {
-    setProperty('border-top-right-radius', value, '');
-  }
-
-  /** Gets the value of "border-top-style" */
-  String get borderTopStyle => getPropertyValue('border-top-style');
-
-  /** Sets the value of "border-top-style" */
-  set borderTopStyle(String value) {
-    setProperty('border-top-style', value, '');
-  }
-
-  /** Gets the value of "border-top-width" */
-  String get borderTopWidth => getPropertyValue('border-top-width');
-
-  /** Sets the value of "border-top-width" */
-  set borderTopWidth(String value) {
-    setProperty('border-top-width', value, '');
-  }
-
-  /** Gets the value of "border-vertical-spacing" */
-  String get borderVerticalSpacing =>
-      getPropertyValue('border-vertical-spacing');
-
-  /** Sets the value of "border-vertical-spacing" */
-  set borderVerticalSpacing(String value) {
-    setProperty('border-vertical-spacing', value, '');
-  }
-
-  /** Gets the value of "border-width" */
-  String get borderWidth => getPropertyValue('border-width');
-
-  /** Sets the value of "border-width" */
-  set borderWidth(String value) {
-    setProperty('border-width', value, '');
-  }
-
-  /** Gets the value of "bottom" */
-  String get bottom => getPropertyValue('bottom');
-
-  /** Sets the value of "bottom" */
-  set bottom(String value) {
-    setProperty('bottom', value, '');
-  }
-
-  /** Gets the value of "box-align" */
-  String get boxAlign => getPropertyValue('box-align');
-
-  /** Sets the value of "box-align" */
-  set boxAlign(String value) {
-    setProperty('box-align', value, '');
-  }
-
-  /** Gets the value of "box-decoration-break" */
-  String get boxDecorationBreak => getPropertyValue('box-decoration-break');
-
-  /** Sets the value of "box-decoration-break" */
-  set boxDecorationBreak(String value) {
-    setProperty('box-decoration-break', value, '');
-  }
-
-  /** Gets the value of "box-direction" */
-  String get boxDirection => getPropertyValue('box-direction');
-
-  /** Sets the value of "box-direction" */
-  set boxDirection(String value) {
-    setProperty('box-direction', value, '');
-  }
-
-  /** Gets the value of "box-flex" */
-  String get boxFlex => getPropertyValue('box-flex');
-
-  /** Sets the value of "box-flex" */
-  set boxFlex(String value) {
-    setProperty('box-flex', value, '');
-  }
-
-  /** Gets the value of "box-flex-group" */
-  String get boxFlexGroup => getPropertyValue('box-flex-group');
-
-  /** Sets the value of "box-flex-group" */
-  set boxFlexGroup(String value) {
-    setProperty('box-flex-group', value, '');
-  }
-
-  /** Gets the value of "box-lines" */
-  String get boxLines => getPropertyValue('box-lines');
-
-  /** Sets the value of "box-lines" */
-  set boxLines(String value) {
-    setProperty('box-lines', value, '');
-  }
-
-  /** Gets the value of "box-ordinal-group" */
-  String get boxOrdinalGroup => getPropertyValue('box-ordinal-group');
-
-  /** Sets the value of "box-ordinal-group" */
-  set boxOrdinalGroup(String value) {
-    setProperty('box-ordinal-group', value, '');
-  }
-
-  /** Gets the value of "box-orient" */
-  String get boxOrient => getPropertyValue('box-orient');
-
-  /** Sets the value of "box-orient" */
-  set boxOrient(String value) {
-    setProperty('box-orient', value, '');
-  }
-
-  /** Gets the value of "box-pack" */
-  String get boxPack => getPropertyValue('box-pack');
-
-  /** Sets the value of "box-pack" */
-  set boxPack(String value) {
-    setProperty('box-pack', value, '');
-  }
-
-  /** Gets the value of "box-reflect" */
-  String get boxReflect => getPropertyValue('box-reflect');
-
-  /** Sets the value of "box-reflect" */
-  set boxReflect(String value) {
-    setProperty('box-reflect', value, '');
-  }
-
-  /** Gets the value of "box-shadow" */
-  String get boxShadow => getPropertyValue('box-shadow');
-
-  /** Sets the value of "box-shadow" */
-  set boxShadow(String value) {
-    setProperty('box-shadow', value, '');
-  }
-
-  /** Gets the value of "box-sizing" */
-  String get boxSizing => getPropertyValue('box-sizing');
-
-  /** Sets the value of "box-sizing" */
-  set boxSizing(String value) {
-    setProperty('box-sizing', value, '');
-  }
-
-  /** Gets the value of "caption-side" */
-  String get captionSide => getPropertyValue('caption-side');
-
-  /** Sets the value of "caption-side" */
-  set captionSide(String value) {
-    setProperty('caption-side', value, '');
-  }
-
-  /** Gets the value of "clear" */
-  String get clear => getPropertyValue('clear');
-
-  /** Sets the value of "clear" */
-  set clear(String value) {
-    setProperty('clear', value, '');
-  }
-
-  /** Gets the value of "clip" */
-  String get clip => getPropertyValue('clip');
-
-  /** Sets the value of "clip" */
-  set clip(String value) {
-    setProperty('clip', value, '');
-  }
-
-  /** Gets the value of "clip-path" */
-  String get clipPath => getPropertyValue('clip-path');
-
-  /** Sets the value of "clip-path" */
-  set clipPath(String value) {
-    setProperty('clip-path', value, '');
-  }
-
-  /** Gets the value of "color" */
-  String get color => getPropertyValue('color');
-
-  /** Sets the value of "color" */
-  set color(String value) {
-    setProperty('color', value, '');
-  }
-
-  /** Gets the value of "column-break-after" */
-  String get columnBreakAfter => getPropertyValue('column-break-after');
-
-  /** Sets the value of "column-break-after" */
-  set columnBreakAfter(String value) {
-    setProperty('column-break-after', value, '');
-  }
-
-  /** Gets the value of "column-break-before" */
-  String get columnBreakBefore => getPropertyValue('column-break-before');
-
-  /** Sets the value of "column-break-before" */
-  set columnBreakBefore(String value) {
-    setProperty('column-break-before', value, '');
-  }
-
-  /** Gets the value of "column-break-inside" */
-  String get columnBreakInside => getPropertyValue('column-break-inside');
-
-  /** Sets the value of "column-break-inside" */
-  set columnBreakInside(String value) {
-    setProperty('column-break-inside', value, '');
-  }
-
-  /** Gets the value of "column-count" */
-  String get columnCount => getPropertyValue('column-count');
-
-  /** Sets the value of "column-count" */
-  set columnCount(String value) {
-    setProperty('column-count', value, '');
-  }
-
-  /** Gets the value of "column-fill" */
-  String get columnFill => getPropertyValue('column-fill');
-
-  /** Sets the value of "column-fill" */
-  set columnFill(String value) {
-    setProperty('column-fill', value, '');
-  }
-
-  /** Gets the value of "column-gap" */
-  String get columnGap => getPropertyValue('column-gap');
-
-  /** Sets the value of "column-gap" */
-  set columnGap(String value) {
-    setProperty('column-gap', value, '');
-  }
-
-  /** Gets the value of "column-rule" */
-  String get columnRule => getPropertyValue('column-rule');
-
-  /** Sets the value of "column-rule" */
-  set columnRule(String value) {
-    setProperty('column-rule', value, '');
-  }
-
-  /** Gets the value of "column-rule-color" */
-  String get columnRuleColor => getPropertyValue('column-rule-color');
-
-  /** Sets the value of "column-rule-color" */
-  set columnRuleColor(String value) {
-    setProperty('column-rule-color', value, '');
-  }
-
-  /** Gets the value of "column-rule-style" */
-  String get columnRuleStyle => getPropertyValue('column-rule-style');
-
-  /** Sets the value of "column-rule-style" */
-  set columnRuleStyle(String value) {
-    setProperty('column-rule-style', value, '');
-  }
-
-  /** Gets the value of "column-rule-width" */
-  String get columnRuleWidth => getPropertyValue('column-rule-width');
-
-  /** Sets the value of "column-rule-width" */
-  set columnRuleWidth(String value) {
-    setProperty('column-rule-width', value, '');
-  }
-
-  /** Gets the value of "column-span" */
-  String get columnSpan => getPropertyValue('column-span');
-
-  /** Sets the value of "column-span" */
-  set columnSpan(String value) {
-    setProperty('column-span', value, '');
-  }
-
-  /** Gets the value of "column-width" */
-  String get columnWidth => getPropertyValue('column-width');
-
-  /** Sets the value of "column-width" */
-  set columnWidth(String value) {
-    setProperty('column-width', value, '');
-  }
-
-  /** Gets the value of "columns" */
-  String get columns => getPropertyValue('columns');
-
-  /** Sets the value of "columns" */
-  set columns(String value) {
-    setProperty('columns', value, '');
-  }
-
-  /** Gets the value of "content" */
-  String get content => getPropertyValue('content');
-
-  /** Sets the value of "content" */
-  set content(String value) {
-    setProperty('content', value, '');
-  }
-
-  /** Gets the value of "counter-increment" */
-  String get counterIncrement => getPropertyValue('counter-increment');
-
-  /** Sets the value of "counter-increment" */
-  set counterIncrement(String value) {
-    setProperty('counter-increment', value, '');
-  }
-
-  /** Gets the value of "counter-reset" */
-  String get counterReset => getPropertyValue('counter-reset');
-
-  /** Sets the value of "counter-reset" */
-  set counterReset(String value) {
-    setProperty('counter-reset', value, '');
-  }
-
-  /** Gets the value of "cursor" */
-  String get cursor => getPropertyValue('cursor');
-
-  /** Sets the value of "cursor" */
-  set cursor(String value) {
-    setProperty('cursor', value, '');
-  }
-
-  /** Gets the value of "direction" */
-  String get direction => getPropertyValue('direction');
-
-  /** Sets the value of "direction" */
-  set direction(String value) {
-    setProperty('direction', value, '');
-  }
-
-  /** Gets the value of "display" */
-  String get display => getPropertyValue('display');
-
-  /** Sets the value of "display" */
-  set display(String value) {
-    setProperty('display', value, '');
-  }
-
-  /** Gets the value of "empty-cells" */
-  String get emptyCells => getPropertyValue('empty-cells');
-
-  /** Sets the value of "empty-cells" */
-  set emptyCells(String value) {
-    setProperty('empty-cells', value, '');
-  }
-
-  /** Gets the value of "filter" */
-  String get filter => getPropertyValue('filter');
-
-  /** Sets the value of "filter" */
-  set filter(String value) {
-    setProperty('filter', value, '');
-  }
-
-  /** Gets the value of "flex" */
-  String get flex => getPropertyValue('flex');
-
-  /** Sets the value of "flex" */
-  set flex(String value) {
-    setProperty('flex', value, '');
-  }
-
-  /** Gets the value of "flex-basis" */
-  String get flexBasis => getPropertyValue('flex-basis');
-
-  /** Sets the value of "flex-basis" */
-  set flexBasis(String value) {
-    setProperty('flex-basis', value, '');
-  }
-
-  /** Gets the value of "flex-direction" */
-  String get flexDirection => getPropertyValue('flex-direction');
-
-  /** Sets the value of "flex-direction" */
-  set flexDirection(String value) {
-    setProperty('flex-direction', value, '');
-  }
-
-  /** Gets the value of "flex-flow" */
-  String get flexFlow => getPropertyValue('flex-flow');
-
-  /** Sets the value of "flex-flow" */
-  set flexFlow(String value) {
-    setProperty('flex-flow', value, '');
-  }
-
-  /** Gets the value of "flex-grow" */
-  String get flexGrow => getPropertyValue('flex-grow');
-
-  /** Sets the value of "flex-grow" */
-  set flexGrow(String value) {
-    setProperty('flex-grow', value, '');
-  }
-
-  /** Gets the value of "flex-shrink" */
-  String get flexShrink => getPropertyValue('flex-shrink');
-
-  /** Sets the value of "flex-shrink" */
-  set flexShrink(String value) {
-    setProperty('flex-shrink', value, '');
-  }
-
-  /** Gets the value of "flex-wrap" */
-  String get flexWrap => getPropertyValue('flex-wrap');
-
-  /** Sets the value of "flex-wrap" */
-  set flexWrap(String value) {
-    setProperty('flex-wrap', value, '');
-  }
-
-  /** Gets the value of "float" */
-  String get float => getPropertyValue('float');
-
-  /** Sets the value of "float" */
-  set float(String value) {
-    setProperty('float', value, '');
-  }
-
-  /** Gets the value of "font" */
-  String get font => getPropertyValue('font');
-
-  /** Sets the value of "font" */
-  set font(String value) {
-    setProperty('font', value, '');
-  }
-
-  /** Gets the value of "font-family" */
-  String get fontFamily => getPropertyValue('font-family');
-
-  /** Sets the value of "font-family" */
-  set fontFamily(String value) {
-    setProperty('font-family', value, '');
-  }
-
-  /** Gets the value of "font-feature-settings" */
-  String get fontFeatureSettings => getPropertyValue('font-feature-settings');
-
-  /** Sets the value of "font-feature-settings" */
-  set fontFeatureSettings(String value) {
-    setProperty('font-feature-settings', value, '');
-  }
-
-  /** Gets the value of "font-kerning" */
-  String get fontKerning => getPropertyValue('font-kerning');
-
-  /** Sets the value of "font-kerning" */
-  set fontKerning(String value) {
-    setProperty('font-kerning', value, '');
-  }
-
-  /** Gets the value of "font-size" */
-  String get fontSize => getPropertyValue('font-size');
-
-  /** Sets the value of "font-size" */
-  set fontSize(String value) {
-    setProperty('font-size', value, '');
-  }
-
-  /** Gets the value of "font-size-delta" */
-  String get fontSizeDelta => getPropertyValue('font-size-delta');
-
-  /** Sets the value of "font-size-delta" */
-  set fontSizeDelta(String value) {
-    setProperty('font-size-delta', value, '');
-  }
-
-  /** Gets the value of "font-smoothing" */
-  String get fontSmoothing => getPropertyValue('font-smoothing');
-
-  /** Sets the value of "font-smoothing" */
-  set fontSmoothing(String value) {
-    setProperty('font-smoothing', value, '');
-  }
-
-  /** Gets the value of "font-stretch" */
-  String get fontStretch => getPropertyValue('font-stretch');
-
-  /** Sets the value of "font-stretch" */
-  set fontStretch(String value) {
-    setProperty('font-stretch', value, '');
-  }
-
-  /** Gets the value of "font-style" */
-  String get fontStyle => getPropertyValue('font-style');
-
-  /** Sets the value of "font-style" */
-  set fontStyle(String value) {
-    setProperty('font-style', value, '');
-  }
-
-  /** Gets the value of "font-variant" */
-  String get fontVariant => getPropertyValue('font-variant');
-
-  /** Sets the value of "font-variant" */
-  set fontVariant(String value) {
-    setProperty('font-variant', value, '');
-  }
-
-  /** Gets the value of "font-variant-ligatures" */
-  String get fontVariantLigatures => getPropertyValue('font-variant-ligatures');
-
-  /** Sets the value of "font-variant-ligatures" */
-  set fontVariantLigatures(String value) {
-    setProperty('font-variant-ligatures', value, '');
-  }
-
-  /** Gets the value of "font-weight" */
-  String get fontWeight => getPropertyValue('font-weight');
-
-  /** Sets the value of "font-weight" */
-  set fontWeight(String value) {
-    setProperty('font-weight', value, '');
-  }
-
-  /** Gets the value of "grid" */
-  String get grid => getPropertyValue('grid');
-
-  /** Sets the value of "grid" */
-  set grid(String value) {
-    setProperty('grid', value, '');
-  }
-
-  /** Gets the value of "grid-area" */
-  String get gridArea => getPropertyValue('grid-area');
-
-  /** Sets the value of "grid-area" */
-  set gridArea(String value) {
-    setProperty('grid-area', value, '');
-  }
-
-  /** Gets the value of "grid-auto-columns" */
-  String get gridAutoColumns => getPropertyValue('grid-auto-columns');
-
-  /** Sets the value of "grid-auto-columns" */
-  set gridAutoColumns(String value) {
-    setProperty('grid-auto-columns', value, '');
-  }
-
-  /** Gets the value of "grid-auto-flow" */
-  String get gridAutoFlow => getPropertyValue('grid-auto-flow');
-
-  /** Sets the value of "grid-auto-flow" */
-  set gridAutoFlow(String value) {
-    setProperty('grid-auto-flow', value, '');
-  }
-
-  /** Gets the value of "grid-auto-rows" */
-  String get gridAutoRows => getPropertyValue('grid-auto-rows');
-
-  /** Sets the value of "grid-auto-rows" */
-  set gridAutoRows(String value) {
-    setProperty('grid-auto-rows', value, '');
-  }
-
-  /** Gets the value of "grid-column" */
-  String get gridColumn => getPropertyValue('grid-column');
-
-  /** Sets the value of "grid-column" */
-  set gridColumn(String value) {
-    setProperty('grid-column', value, '');
-  }
-
-  /** Gets the value of "grid-column-end" */
-  String get gridColumnEnd => getPropertyValue('grid-column-end');
-
-  /** Sets the value of "grid-column-end" */
-  set gridColumnEnd(String value) {
-    setProperty('grid-column-end', value, '');
-  }
-
-  /** Gets the value of "grid-column-start" */
-  String get gridColumnStart => getPropertyValue('grid-column-start');
-
-  /** Sets the value of "grid-column-start" */
-  set gridColumnStart(String value) {
-    setProperty('grid-column-start', value, '');
-  }
-
-  /** Gets the value of "grid-row" */
-  String get gridRow => getPropertyValue('grid-row');
-
-  /** Sets the value of "grid-row" */
-  set gridRow(String value) {
-    setProperty('grid-row', value, '');
-  }
-
-  /** Gets the value of "grid-row-end" */
-  String get gridRowEnd => getPropertyValue('grid-row-end');
-
-  /** Sets the value of "grid-row-end" */
-  set gridRowEnd(String value) {
-    setProperty('grid-row-end', value, '');
-  }
-
-  /** Gets the value of "grid-row-start" */
-  String get gridRowStart => getPropertyValue('grid-row-start');
-
-  /** Sets the value of "grid-row-start" */
-  set gridRowStart(String value) {
-    setProperty('grid-row-start', value, '');
-  }
-
-  /** Gets the value of "grid-template" */
-  String get gridTemplate => getPropertyValue('grid-template');
-
-  /** Sets the value of "grid-template" */
-  set gridTemplate(String value) {
-    setProperty('grid-template', value, '');
-  }
-
-  /** Gets the value of "grid-template-areas" */
-  String get gridTemplateAreas => getPropertyValue('grid-template-areas');
-
-  /** Sets the value of "grid-template-areas" */
-  set gridTemplateAreas(String value) {
-    setProperty('grid-template-areas', value, '');
-  }
-
-  /** Gets the value of "grid-template-columns" */
-  String get gridTemplateColumns => getPropertyValue('grid-template-columns');
-
-  /** Sets the value of "grid-template-columns" */
-  set gridTemplateColumns(String value) {
-    setProperty('grid-template-columns', value, '');
-  }
-
-  /** Gets the value of "grid-template-rows" */
-  String get gridTemplateRows => getPropertyValue('grid-template-rows');
-
-  /** Sets the value of "grid-template-rows" */
-  set gridTemplateRows(String value) {
-    setProperty('grid-template-rows', value, '');
-  }
-
-  /** Gets the value of "height" */
-  String get height => getPropertyValue('height');
-
-  /** Sets the value of "height" */
-  set height(String value) {
-    setProperty('height', value, '');
-  }
-
-  /** Gets the value of "highlight" */
-  String get highlight => getPropertyValue('highlight');
-
-  /** Sets the value of "highlight" */
-  set highlight(String value) {
-    setProperty('highlight', value, '');
-  }
-
-  /** Gets the value of "hyphenate-character" */
-  String get hyphenateCharacter => getPropertyValue('hyphenate-character');
-
-  /** Sets the value of "hyphenate-character" */
-  set hyphenateCharacter(String value) {
-    setProperty('hyphenate-character', value, '');
-  }
-
-  /** Gets the value of "image-rendering" */
-  String get imageRendering => getPropertyValue('image-rendering');
-
-  /** Sets the value of "image-rendering" */
-  set imageRendering(String value) {
-    setProperty('image-rendering', value, '');
-  }
-
-  /** Gets the value of "isolation" */
-  String get isolation => getPropertyValue('isolation');
-
-  /** Sets the value of "isolation" */
-  set isolation(String value) {
-    setProperty('isolation', value, '');
-  }
-
-  /** Gets the value of "justify-content" */
-  String get justifyContent => getPropertyValue('justify-content');
-
-  /** Sets the value of "justify-content" */
-  set justifyContent(String value) {
-    setProperty('justify-content', value, '');
-  }
-
-  /** Gets the value of "justify-self" */
-  String get justifySelf => getPropertyValue('justify-self');
-
-  /** Sets the value of "justify-self" */
-  set justifySelf(String value) {
-    setProperty('justify-self', value, '');
-  }
-
-  /** Gets the value of "left" */
-  String get left => getPropertyValue('left');
-
-  /** Sets the value of "left" */
-  set left(String value) {
-    setProperty('left', value, '');
-  }
-
-  /** Gets the value of "letter-spacing" */
-  String get letterSpacing => getPropertyValue('letter-spacing');
-
-  /** Sets the value of "letter-spacing" */
-  set letterSpacing(String value) {
-    setProperty('letter-spacing', value, '');
-  }
-
-  /** Gets the value of "line-box-contain" */
-  String get lineBoxContain => getPropertyValue('line-box-contain');
-
-  /** Sets the value of "line-box-contain" */
-  set lineBoxContain(String value) {
-    setProperty('line-box-contain', value, '');
-  }
-
-  /** Gets the value of "line-break" */
-  String get lineBreak => getPropertyValue('line-break');
-
-  /** Sets the value of "line-break" */
-  set lineBreak(String value) {
-    setProperty('line-break', value, '');
-  }
-
-  /** Gets the value of "line-clamp" */
-  String get lineClamp => getPropertyValue('line-clamp');
-
-  /** Sets the value of "line-clamp" */
-  set lineClamp(String value) {
-    setProperty('line-clamp', value, '');
-  }
-
-  /** Gets the value of "line-height" */
-  String get lineHeight => getPropertyValue('line-height');
-
-  /** Sets the value of "line-height" */
-  set lineHeight(String value) {
-    setProperty('line-height', value, '');
-  }
-
-  /** Gets the value of "list-style" */
-  String get listStyle => getPropertyValue('list-style');
-
-  /** Sets the value of "list-style" */
-  set listStyle(String value) {
-    setProperty('list-style', value, '');
-  }
-
-  /** Gets the value of "list-style-image" */
-  String get listStyleImage => getPropertyValue('list-style-image');
-
-  /** Sets the value of "list-style-image" */
-  set listStyleImage(String value) {
-    setProperty('list-style-image', value, '');
-  }
-
-  /** Gets the value of "list-style-position" */
-  String get listStylePosition => getPropertyValue('list-style-position');
-
-  /** Sets the value of "list-style-position" */
-  set listStylePosition(String value) {
-    setProperty('list-style-position', value, '');
-  }
-
-  /** Gets the value of "list-style-type" */
-  String get listStyleType => getPropertyValue('list-style-type');
-
-  /** Sets the value of "list-style-type" */
-  set listStyleType(String value) {
-    setProperty('list-style-type', value, '');
-  }
-
-  /** Gets the value of "locale" */
-  String get locale => getPropertyValue('locale');
-
-  /** Sets the value of "locale" */
-  set locale(String value) {
-    setProperty('locale', value, '');
-  }
-
-  /** Gets the value of "logical-height" */
-  String get logicalHeight => getPropertyValue('logical-height');
-
-  /** Sets the value of "logical-height" */
-  set logicalHeight(String value) {
-    setProperty('logical-height', value, '');
-  }
-
-  /** Gets the value of "logical-width" */
-  String get logicalWidth => getPropertyValue('logical-width');
-
-  /** Sets the value of "logical-width" */
-  set logicalWidth(String value) {
-    setProperty('logical-width', value, '');
-  }
-
-  /** Gets the value of "margin" */
-  String get margin => getPropertyValue('margin');
-
-  /** Sets the value of "margin" */
-  set margin(String value) {
-    setProperty('margin', value, '');
-  }
-
-  /** Gets the value of "margin-after" */
-  String get marginAfter => getPropertyValue('margin-after');
-
-  /** Sets the value of "margin-after" */
-  set marginAfter(String value) {
-    setProperty('margin-after', value, '');
-  }
-
-  /** Gets the value of "margin-after-collapse" */
-  String get marginAfterCollapse => getPropertyValue('margin-after-collapse');
-
-  /** Sets the value of "margin-after-collapse" */
-  set marginAfterCollapse(String value) {
-    setProperty('margin-after-collapse', value, '');
-  }
-
-  /** Gets the value of "margin-before" */
-  String get marginBefore => getPropertyValue('margin-before');
-
-  /** Sets the value of "margin-before" */
-  set marginBefore(String value) {
-    setProperty('margin-before', value, '');
-  }
-
-  /** Gets the value of "margin-before-collapse" */
-  String get marginBeforeCollapse => getPropertyValue('margin-before-collapse');
-
-  /** Sets the value of "margin-before-collapse" */
-  set marginBeforeCollapse(String value) {
-    setProperty('margin-before-collapse', value, '');
-  }
-
-  /** Gets the value of "margin-bottom" */
-  String get marginBottom => getPropertyValue('margin-bottom');
-
-  /** Sets the value of "margin-bottom" */
-  set marginBottom(String value) {
-    setProperty('margin-bottom', value, '');
-  }
-
-  /** Gets the value of "margin-bottom-collapse" */
-  String get marginBottomCollapse => getPropertyValue('margin-bottom-collapse');
-
-  /** Sets the value of "margin-bottom-collapse" */
-  set marginBottomCollapse(String value) {
-    setProperty('margin-bottom-collapse', value, '');
-  }
-
-  /** Gets the value of "margin-collapse" */
-  String get marginCollapse => getPropertyValue('margin-collapse');
-
-  /** Sets the value of "margin-collapse" */
-  set marginCollapse(String value) {
-    setProperty('margin-collapse', value, '');
-  }
-
-  /** Gets the value of "margin-end" */
-  String get marginEnd => getPropertyValue('margin-end');
-
-  /** Sets the value of "margin-end" */
-  set marginEnd(String value) {
-    setProperty('margin-end', value, '');
-  }
-
-  /** Gets the value of "margin-left" */
-  String get marginLeft => getPropertyValue('margin-left');
-
-  /** Sets the value of "margin-left" */
-  set marginLeft(String value) {
-    setProperty('margin-left', value, '');
-  }
-
-  /** Gets the value of "margin-right" */
-  String get marginRight => getPropertyValue('margin-right');
-
-  /** Sets the value of "margin-right" */
-  set marginRight(String value) {
-    setProperty('margin-right', value, '');
-  }
-
-  /** Gets the value of "margin-start" */
-  String get marginStart => getPropertyValue('margin-start');
-
-  /** Sets the value of "margin-start" */
-  set marginStart(String value) {
-    setProperty('margin-start', value, '');
-  }
-
-  /** Gets the value of "margin-top" */
-  String get marginTop => getPropertyValue('margin-top');
-
-  /** Sets the value of "margin-top" */
-  set marginTop(String value) {
-    setProperty('margin-top', value, '');
-  }
-
-  /** Gets the value of "margin-top-collapse" */
-  String get marginTopCollapse => getPropertyValue('margin-top-collapse');
-
-  /** Sets the value of "margin-top-collapse" */
-  set marginTopCollapse(String value) {
-    setProperty('margin-top-collapse', value, '');
-  }
-
-  /** Gets the value of "mask" */
-  String get mask => getPropertyValue('mask');
-
-  /** Sets the value of "mask" */
-  set mask(String value) {
-    setProperty('mask', value, '');
-  }
-
-  /** Gets the value of "mask-box-image" */
-  String get maskBoxImage => getPropertyValue('mask-box-image');
-
-  /** Sets the value of "mask-box-image" */
-  set maskBoxImage(String value) {
-    setProperty('mask-box-image', value, '');
-  }
-
-  /** Gets the value of "mask-box-image-outset" */
-  String get maskBoxImageOutset => getPropertyValue('mask-box-image-outset');
-
-  /** Sets the value of "mask-box-image-outset" */
-  set maskBoxImageOutset(String value) {
-    setProperty('mask-box-image-outset', value, '');
-  }
-
-  /** Gets the value of "mask-box-image-repeat" */
-  String get maskBoxImageRepeat => getPropertyValue('mask-box-image-repeat');
-
-  /** Sets the value of "mask-box-image-repeat" */
-  set maskBoxImageRepeat(String value) {
-    setProperty('mask-box-image-repeat', value, '');
-  }
-
-  /** Gets the value of "mask-box-image-slice" */
-  String get maskBoxImageSlice => getPropertyValue('mask-box-image-slice');
-
-  /** Sets the value of "mask-box-image-slice" */
-  set maskBoxImageSlice(String value) {
-    setProperty('mask-box-image-slice', value, '');
-  }
-
-  /** Gets the value of "mask-box-image-source" */
-  String get maskBoxImageSource => getPropertyValue('mask-box-image-source');
-
-  /** Sets the value of "mask-box-image-source" */
-  set maskBoxImageSource(String value) {
-    setProperty('mask-box-image-source', value, '');
-  }
-
-  /** Gets the value of "mask-box-image-width" */
-  String get maskBoxImageWidth => getPropertyValue('mask-box-image-width');
-
-  /** Sets the value of "mask-box-image-width" */
-  set maskBoxImageWidth(String value) {
-    setProperty('mask-box-image-width', value, '');
-  }
-
-  /** Gets the value of "mask-clip" */
-  String get maskClip => getPropertyValue('mask-clip');
-
-  /** Sets the value of "mask-clip" */
-  set maskClip(String value) {
-    setProperty('mask-clip', value, '');
-  }
-
-  /** Gets the value of "mask-composite" */
-  String get maskComposite => getPropertyValue('mask-composite');
-
-  /** Sets the value of "mask-composite" */
-  set maskComposite(String value) {
-    setProperty('mask-composite', value, '');
-  }
-
-  /** Gets the value of "mask-image" */
-  String get maskImage => getPropertyValue('mask-image');
-
-  /** Sets the value of "mask-image" */
-  set maskImage(String value) {
-    setProperty('mask-image', value, '');
-  }
-
-  /** Gets the value of "mask-origin" */
-  String get maskOrigin => getPropertyValue('mask-origin');
-
-  /** Sets the value of "mask-origin" */
-  set maskOrigin(String value) {
-    setProperty('mask-origin', value, '');
-  }
-
-  /** Gets the value of "mask-position" */
-  String get maskPosition => getPropertyValue('mask-position');
-
-  /** Sets the value of "mask-position" */
-  set maskPosition(String value) {
-    setProperty('mask-position', value, '');
-  }
-
-  /** Gets the value of "mask-position-x" */
-  String get maskPositionX => getPropertyValue('mask-position-x');
-
-  /** Sets the value of "mask-position-x" */
-  set maskPositionX(String value) {
-    setProperty('mask-position-x', value, '');
-  }
-
-  /** Gets the value of "mask-position-y" */
-  String get maskPositionY => getPropertyValue('mask-position-y');
-
-  /** Sets the value of "mask-position-y" */
-  set maskPositionY(String value) {
-    setProperty('mask-position-y', value, '');
-  }
-
-  /** Gets the value of "mask-repeat" */
-  String get maskRepeat => getPropertyValue('mask-repeat');
-
-  /** Sets the value of "mask-repeat" */
-  set maskRepeat(String value) {
-    setProperty('mask-repeat', value, '');
-  }
-
-  /** Gets the value of "mask-repeat-x" */
-  String get maskRepeatX => getPropertyValue('mask-repeat-x');
-
-  /** Sets the value of "mask-repeat-x" */
-  set maskRepeatX(String value) {
-    setProperty('mask-repeat-x', value, '');
-  }
-
-  /** Gets the value of "mask-repeat-y" */
-  String get maskRepeatY => getPropertyValue('mask-repeat-y');
-
-  /** Sets the value of "mask-repeat-y" */
-  set maskRepeatY(String value) {
-    setProperty('mask-repeat-y', value, '');
-  }
-
-  /** Gets the value of "mask-size" */
-  String get maskSize => getPropertyValue('mask-size');
-
-  /** Sets the value of "mask-size" */
-  set maskSize(String value) {
-    setProperty('mask-size', value, '');
-  }
-
-  /** Gets the value of "mask-source-type" */
-  String get maskSourceType => getPropertyValue('mask-source-type');
-
-  /** Sets the value of "mask-source-type" */
-  set maskSourceType(String value) {
-    setProperty('mask-source-type', value, '');
-  }
-
-  /** Gets the value of "max-height" */
-  String get maxHeight => getPropertyValue('max-height');
-
-  /** Sets the value of "max-height" */
-  set maxHeight(String value) {
-    setProperty('max-height', value, '');
-  }
-
-  /** Gets the value of "max-logical-height" */
-  String get maxLogicalHeight => getPropertyValue('max-logical-height');
-
-  /** Sets the value of "max-logical-height" */
-  set maxLogicalHeight(String value) {
-    setProperty('max-logical-height', value, '');
-  }
-
-  /** Gets the value of "max-logical-width" */
-  String get maxLogicalWidth => getPropertyValue('max-logical-width');
-
-  /** Sets the value of "max-logical-width" */
-  set maxLogicalWidth(String value) {
-    setProperty('max-logical-width', value, '');
-  }
-
-  /** Gets the value of "max-width" */
-  String get maxWidth => getPropertyValue('max-width');
-
-  /** Sets the value of "max-width" */
-  set maxWidth(String value) {
-    setProperty('max-width', value, '');
-  }
-
-  /** Gets the value of "max-zoom" */
-  String get maxZoom => getPropertyValue('max-zoom');
-
-  /** Sets the value of "max-zoom" */
-  set maxZoom(String value) {
-    setProperty('max-zoom', value, '');
-  }
-
-  /** Gets the value of "min-height" */
-  String get minHeight => getPropertyValue('min-height');
-
-  /** Sets the value of "min-height" */
-  set minHeight(String value) {
-    setProperty('min-height', value, '');
-  }
-
-  /** Gets the value of "min-logical-height" */
-  String get minLogicalHeight => getPropertyValue('min-logical-height');
-
-  /** Sets the value of "min-logical-height" */
-  set minLogicalHeight(String value) {
-    setProperty('min-logical-height', value, '');
-  }
-
-  /** Gets the value of "min-logical-width" */
-  String get minLogicalWidth => getPropertyValue('min-logical-width');
-
-  /** Sets the value of "min-logical-width" */
-  set minLogicalWidth(String value) {
-    setProperty('min-logical-width', value, '');
-  }
-
-  /** Gets the value of "min-width" */
-  String get minWidth => getPropertyValue('min-width');
-
-  /** Sets the value of "min-width" */
-  set minWidth(String value) {
-    setProperty('min-width', value, '');
-  }
-
-  /** Gets the value of "min-zoom" */
-  String get minZoom => getPropertyValue('min-zoom');
-
-  /** Sets the value of "min-zoom" */
-  set minZoom(String value) {
-    setProperty('min-zoom', value, '');
-  }
-
-  /** Gets the value of "mix-blend-mode" */
-  String get mixBlendMode => getPropertyValue('mix-blend-mode');
-
-  /** Sets the value of "mix-blend-mode" */
-  set mixBlendMode(String value) {
-    setProperty('mix-blend-mode', value, '');
-  }
-
-  /** Gets the value of "object-fit" */
-  String get objectFit => getPropertyValue('object-fit');
-
-  /** Sets the value of "object-fit" */
-  set objectFit(String value) {
-    setProperty('object-fit', value, '');
-  }
-
-  /** Gets the value of "object-position" */
-  String get objectPosition => getPropertyValue('object-position');
-
-  /** Sets the value of "object-position" */
-  set objectPosition(String value) {
-    setProperty('object-position', value, '');
-  }
-
-  /** Gets the value of "opacity" */
-  String get opacity => getPropertyValue('opacity');
-
-  /** Sets the value of "opacity" */
-  set opacity(String value) {
-    setProperty('opacity', value, '');
-  }
-
-  /** Gets the value of "order" */
-  String get order => getPropertyValue('order');
-
-  /** Sets the value of "order" */
-  set order(String value) {
-    setProperty('order', value, '');
-  }
-
-  /** Gets the value of "orientation" */
-  String get orientation => getPropertyValue('orientation');
-
-  /** Sets the value of "orientation" */
-  set orientation(String value) {
-    setProperty('orientation', value, '');
-  }
-
-  /** Gets the value of "orphans" */
-  String get orphans => getPropertyValue('orphans');
-
-  /** Sets the value of "orphans" */
-  set orphans(String value) {
-    setProperty('orphans', value, '');
-  }
-
-  /** Gets the value of "outline" */
-  String get outline => getPropertyValue('outline');
-
-  /** Sets the value of "outline" */
-  set outline(String value) {
-    setProperty('outline', value, '');
-  }
-
-  /** Gets the value of "outline-color" */
-  String get outlineColor => getPropertyValue('outline-color');
-
-  /** Sets the value of "outline-color" */
-  set outlineColor(String value) {
-    setProperty('outline-color', value, '');
-  }
-
-  /** Gets the value of "outline-offset" */
-  String get outlineOffset => getPropertyValue('outline-offset');
-
-  /** Sets the value of "outline-offset" */
-  set outlineOffset(String value) {
-    setProperty('outline-offset', value, '');
-  }
-
-  /** Gets the value of "outline-style" */
-  String get outlineStyle => getPropertyValue('outline-style');
-
-  /** Sets the value of "outline-style" */
-  set outlineStyle(String value) {
-    setProperty('outline-style', value, '');
-  }
-
-  /** Gets the value of "outline-width" */
-  String get outlineWidth => getPropertyValue('outline-width');
-
-  /** Sets the value of "outline-width" */
-  set outlineWidth(String value) {
-    setProperty('outline-width', value, '');
-  }
-
-  /** Gets the value of "overflow" */
-  String get overflow => getPropertyValue('overflow');
-
-  /** Sets the value of "overflow" */
-  set overflow(String value) {
-    setProperty('overflow', value, '');
-  }
-
-  /** Gets the value of "overflow-wrap" */
-  String get overflowWrap => getPropertyValue('overflow-wrap');
-
-  /** Sets the value of "overflow-wrap" */
-  set overflowWrap(String value) {
-    setProperty('overflow-wrap', value, '');
-  }
-
-  /** Gets the value of "overflow-x" */
-  String get overflowX => getPropertyValue('overflow-x');
-
-  /** Sets the value of "overflow-x" */
-  set overflowX(String value) {
-    setProperty('overflow-x', value, '');
-  }
-
-  /** Gets the value of "overflow-y" */
-  String get overflowY => getPropertyValue('overflow-y');
-
-  /** Sets the value of "overflow-y" */
-  set overflowY(String value) {
-    setProperty('overflow-y', value, '');
-  }
-
-  /** Gets the value of "padding" */
-  String get padding => getPropertyValue('padding');
-
-  /** Sets the value of "padding" */
-  set padding(String value) {
-    setProperty('padding', value, '');
-  }
-
-  /** Gets the value of "padding-after" */
-  String get paddingAfter => getPropertyValue('padding-after');
-
-  /** Sets the value of "padding-after" */
-  set paddingAfter(String value) {
-    setProperty('padding-after', value, '');
-  }
-
-  /** Gets the value of "padding-before" */
-  String get paddingBefore => getPropertyValue('padding-before');
-
-  /** Sets the value of "padding-before" */
-  set paddingBefore(String value) {
-    setProperty('padding-before', value, '');
-  }
-
-  /** Gets the value of "padding-bottom" */
-  String get paddingBottom => getPropertyValue('padding-bottom');
-
-  /** Sets the value of "padding-bottom" */
-  set paddingBottom(String value) {
-    setProperty('padding-bottom', value, '');
-  }
-
-  /** Gets the value of "padding-end" */
-  String get paddingEnd => getPropertyValue('padding-end');
-
-  /** Sets the value of "padding-end" */
-  set paddingEnd(String value) {
-    setProperty('padding-end', value, '');
-  }
-
-  /** Gets the value of "padding-left" */
-  String get paddingLeft => getPropertyValue('padding-left');
-
-  /** Sets the value of "padding-left" */
-  set paddingLeft(String value) {
-    setProperty('padding-left', value, '');
-  }
-
-  /** Gets the value of "padding-right" */
-  String get paddingRight => getPropertyValue('padding-right');
-
-  /** Sets the value of "padding-right" */
-  set paddingRight(String value) {
-    setProperty('padding-right', value, '');
-  }
-
-  /** Gets the value of "padding-start" */
-  String get paddingStart => getPropertyValue('padding-start');
-
-  /** Sets the value of "padding-start" */
-  set paddingStart(String value) {
-    setProperty('padding-start', value, '');
-  }
-
-  /** Gets the value of "padding-top" */
-  String get paddingTop => getPropertyValue('padding-top');
-
-  /** Sets the value of "padding-top" */
-  set paddingTop(String value) {
-    setProperty('padding-top', value, '');
-  }
-
-  /** Gets the value of "page" */
-  String get page => getPropertyValue('page');
-
-  /** Sets the value of "page" */
-  set page(String value) {
-    setProperty('page', value, '');
-  }
-
-  /** Gets the value of "page-break-after" */
-  String get pageBreakAfter => getPropertyValue('page-break-after');
-
-  /** Sets the value of "page-break-after" */
-  set pageBreakAfter(String value) {
-    setProperty('page-break-after', value, '');
-  }
-
-  /** Gets the value of "page-break-before" */
-  String get pageBreakBefore => getPropertyValue('page-break-before');
-
-  /** Sets the value of "page-break-before" */
-  set pageBreakBefore(String value) {
-    setProperty('page-break-before', value, '');
-  }
-
-  /** Gets the value of "page-break-inside" */
-  String get pageBreakInside => getPropertyValue('page-break-inside');
-
-  /** Sets the value of "page-break-inside" */
-  set pageBreakInside(String value) {
-    setProperty('page-break-inside', value, '');
-  }
-
-  /** Gets the value of "perspective" */
-  String get perspective => getPropertyValue('perspective');
-
-  /** Sets the value of "perspective" */
-  set perspective(String value) {
-    setProperty('perspective', value, '');
-  }
-
-  /** Gets the value of "perspective-origin" */
-  String get perspectiveOrigin => getPropertyValue('perspective-origin');
-
-  /** Sets the value of "perspective-origin" */
-  set perspectiveOrigin(String value) {
-    setProperty('perspective-origin', value, '');
-  }
-
-  /** Gets the value of "perspective-origin-x" */
-  String get perspectiveOriginX => getPropertyValue('perspective-origin-x');
-
-  /** Sets the value of "perspective-origin-x" */
-  set perspectiveOriginX(String value) {
-    setProperty('perspective-origin-x', value, '');
-  }
-
-  /** Gets the value of "perspective-origin-y" */
-  String get perspectiveOriginY => getPropertyValue('perspective-origin-y');
-
-  /** Sets the value of "perspective-origin-y" */
-  set perspectiveOriginY(String value) {
-    setProperty('perspective-origin-y', value, '');
-  }
-
-  /** Gets the value of "pointer-events" */
-  String get pointerEvents => getPropertyValue('pointer-events');
-
-  /** Sets the value of "pointer-events" */
-  set pointerEvents(String value) {
-    setProperty('pointer-events', value, '');
-  }
-
-  /** Gets the value of "position" */
-  String get position => getPropertyValue('position');
-
-  /** Sets the value of "position" */
-  set position(String value) {
-    setProperty('position', value, '');
-  }
-
-  /** Gets the value of "print-color-adjust" */
-  String get printColorAdjust => getPropertyValue('print-color-adjust');
-
-  /** Sets the value of "print-color-adjust" */
-  set printColorAdjust(String value) {
-    setProperty('print-color-adjust', value, '');
-  }
-
-  /** Gets the value of "quotes" */
-  String get quotes => getPropertyValue('quotes');
-
-  /** Sets the value of "quotes" */
-  set quotes(String value) {
-    setProperty('quotes', value, '');
-  }
-
-  /** Gets the value of "resize" */
-  String get resize => getPropertyValue('resize');
-
-  /** Sets the value of "resize" */
-  set resize(String value) {
-    setProperty('resize', value, '');
-  }
-
-  /** Gets the value of "right" */
-  String get right => getPropertyValue('right');
-
-  /** Sets the value of "right" */
-  set right(String value) {
-    setProperty('right', value, '');
-  }
-
-  /** Gets the value of "rtl-ordering" */
-  String get rtlOrdering => getPropertyValue('rtl-ordering');
-
-  /** Sets the value of "rtl-ordering" */
-  set rtlOrdering(String value) {
-    setProperty('rtl-ordering', value, '');
-  }
-
-  /** Gets the value of "ruby-position" */
-  String get rubyPosition => getPropertyValue('ruby-position');
-
-  /** Sets the value of "ruby-position" */
-  set rubyPosition(String value) {
-    setProperty('ruby-position', value, '');
-  }
-
-  /** Gets the value of "scroll-behavior" */
-  String get scrollBehavior => getPropertyValue('scroll-behavior');
-
-  /** Sets the value of "scroll-behavior" */
-  set scrollBehavior(String value) {
-    setProperty('scroll-behavior', value, '');
-  }
-
-  /** Gets the value of "shape-image-threshold" */
-  String get shapeImageThreshold => getPropertyValue('shape-image-threshold');
-
-  /** Sets the value of "shape-image-threshold" */
-  set shapeImageThreshold(String value) {
-    setProperty('shape-image-threshold', value, '');
-  }
-
-  /** Gets the value of "shape-margin" */
-  String get shapeMargin => getPropertyValue('shape-margin');
-
-  /** Sets the value of "shape-margin" */
-  set shapeMargin(String value) {
-    setProperty('shape-margin', value, '');
-  }
-
-  /** Gets the value of "shape-outside" */
-  String get shapeOutside => getPropertyValue('shape-outside');
-
-  /** Sets the value of "shape-outside" */
-  set shapeOutside(String value) {
-    setProperty('shape-outside', value, '');
-  }
-
-  /** Gets the value of "size" */
-  String get size => getPropertyValue('size');
-
-  /** Sets the value of "size" */
-  set size(String value) {
-    setProperty('size', value, '');
-  }
-
-  /** Gets the value of "speak" */
-  String get speak => getPropertyValue('speak');
-
-  /** Sets the value of "speak" */
-  set speak(String value) {
-    setProperty('speak', value, '');
-  }
-
-  /** Gets the value of "src" */
-  String get src => getPropertyValue('src');
-
-  /** Sets the value of "src" */
-  set src(String value) {
-    setProperty('src', value, '');
-  }
-
-  /** Gets the value of "tab-size" */
-  String get tabSize => getPropertyValue('tab-size');
-
-  /** Sets the value of "tab-size" */
-  set tabSize(String value) {
-    setProperty('tab-size', value, '');
-  }
-
-  /** Gets the value of "table-layout" */
-  String get tableLayout => getPropertyValue('table-layout');
-
-  /** Sets the value of "table-layout" */
-  set tableLayout(String value) {
-    setProperty('table-layout', value, '');
-  }
-
-  /** Gets the value of "tap-highlight-color" */
-  String get tapHighlightColor => getPropertyValue('tap-highlight-color');
-
-  /** Sets the value of "tap-highlight-color" */
-  set tapHighlightColor(String value) {
-    setProperty('tap-highlight-color', value, '');
-  }
-
-  /** Gets the value of "text-align" */
-  String get textAlign => getPropertyValue('text-align');
-
-  /** Sets the value of "text-align" */
-  set textAlign(String value) {
-    setProperty('text-align', value, '');
-  }
-
-  /** Gets the value of "text-align-last" */
-  String get textAlignLast => getPropertyValue('text-align-last');
-
-  /** Sets the value of "text-align-last" */
-  set textAlignLast(String value) {
-    setProperty('text-align-last', value, '');
-  }
-
-  /** Gets the value of "text-combine" */
-  String get textCombine => getPropertyValue('text-combine');
-
-  /** Sets the value of "text-combine" */
-  set textCombine(String value) {
-    setProperty('text-combine', value, '');
-  }
-
-  /** Gets the value of "text-decoration" */
-  String get textDecoration => getPropertyValue('text-decoration');
-
-  /** Sets the value of "text-decoration" */
-  set textDecoration(String value) {
-    setProperty('text-decoration', value, '');
-  }
-
-  /** Gets the value of "text-decoration-color" */
-  String get textDecorationColor => getPropertyValue('text-decoration-color');
-
-  /** Sets the value of "text-decoration-color" */
-  set textDecorationColor(String value) {
-    setProperty('text-decoration-color', value, '');
-  }
-
-  /** Gets the value of "text-decoration-line" */
-  String get textDecorationLine => getPropertyValue('text-decoration-line');
-
-  /** Sets the value of "text-decoration-line" */
-  set textDecorationLine(String value) {
-    setProperty('text-decoration-line', value, '');
-  }
-
-  /** Gets the value of "text-decoration-style" */
-  String get textDecorationStyle => getPropertyValue('text-decoration-style');
-
-  /** Sets the value of "text-decoration-style" */
-  set textDecorationStyle(String value) {
-    setProperty('text-decoration-style', value, '');
-  }
-
-  /** Gets the value of "text-decorations-in-effect" */
-  String get textDecorationsInEffect =>
-      getPropertyValue('text-decorations-in-effect');
-
-  /** Sets the value of "text-decorations-in-effect" */
-  set textDecorationsInEffect(String value) {
-    setProperty('text-decorations-in-effect', value, '');
-  }
-
-  /** Gets the value of "text-emphasis" */
-  String get textEmphasis => getPropertyValue('text-emphasis');
-
-  /** Sets the value of "text-emphasis" */
-  set textEmphasis(String value) {
-    setProperty('text-emphasis', value, '');
-  }
-
-  /** Gets the value of "text-emphasis-color" */
-  String get textEmphasisColor => getPropertyValue('text-emphasis-color');
-
-  /** Sets the value of "text-emphasis-color" */
-  set textEmphasisColor(String value) {
-    setProperty('text-emphasis-color', value, '');
-  }
-
-  /** Gets the value of "text-emphasis-position" */
-  String get textEmphasisPosition => getPropertyValue('text-emphasis-position');
-
-  /** Sets the value of "text-emphasis-position" */
-  set textEmphasisPosition(String value) {
-    setProperty('text-emphasis-position', value, '');
-  }
-
-  /** Gets the value of "text-emphasis-style" */
-  String get textEmphasisStyle => getPropertyValue('text-emphasis-style');
-
-  /** Sets the value of "text-emphasis-style" */
-  set textEmphasisStyle(String value) {
-    setProperty('text-emphasis-style', value, '');
-  }
-
-  /** Gets the value of "text-fill-color" */
-  String get textFillColor => getPropertyValue('text-fill-color');
-
-  /** Sets the value of "text-fill-color" */
-  set textFillColor(String value) {
-    setProperty('text-fill-color', value, '');
-  }
-
-  /** Gets the value of "text-indent" */
-  String get textIndent => getPropertyValue('text-indent');
-
-  /** Sets the value of "text-indent" */
-  set textIndent(String value) {
-    setProperty('text-indent', value, '');
-  }
-
-  /** Gets the value of "text-justify" */
-  String get textJustify => getPropertyValue('text-justify');
-
-  /** Sets the value of "text-justify" */
-  set textJustify(String value) {
-    setProperty('text-justify', value, '');
-  }
-
-  /** Gets the value of "text-line-through-color" */
-  String get textLineThroughColor =>
-      getPropertyValue('text-line-through-color');
-
-  /** Sets the value of "text-line-through-color" */
-  set textLineThroughColor(String value) {
-    setProperty('text-line-through-color', value, '');
-  }
-
-  /** Gets the value of "text-line-through-mode" */
-  String get textLineThroughMode => getPropertyValue('text-line-through-mode');
-
-  /** Sets the value of "text-line-through-mode" */
-  set textLineThroughMode(String value) {
-    setProperty('text-line-through-mode', value, '');
-  }
-
-  /** Gets the value of "text-line-through-style" */
-  String get textLineThroughStyle =>
-      getPropertyValue('text-line-through-style');
-
-  /** Sets the value of "text-line-through-style" */
-  set textLineThroughStyle(String value) {
-    setProperty('text-line-through-style', value, '');
-  }
-
-  /** Gets the value of "text-line-through-width" */
-  String get textLineThroughWidth =>
-      getPropertyValue('text-line-through-width');
-
-  /** Sets the value of "text-line-through-width" */
-  set textLineThroughWidth(String value) {
-    setProperty('text-line-through-width', value, '');
-  }
-
-  /** Gets the value of "text-orientation" */
-  String get textOrientation => getPropertyValue('text-orientation');
-
-  /** Sets the value of "text-orientation" */
-  set textOrientation(String value) {
-    setProperty('text-orientation', value, '');
-  }
-
-  /** Gets the value of "text-overflow" */
-  String get textOverflow => getPropertyValue('text-overflow');
-
-  /** Sets the value of "text-overflow" */
-  set textOverflow(String value) {
-    setProperty('text-overflow', value, '');
-  }
-
-  /** Gets the value of "text-overline-color" */
-  String get textOverlineColor => getPropertyValue('text-overline-color');
-
-  /** Sets the value of "text-overline-color" */
-  set textOverlineColor(String value) {
-    setProperty('text-overline-color', value, '');
-  }
-
-  /** Gets the value of "text-overline-mode" */
-  String get textOverlineMode => getPropertyValue('text-overline-mode');
-
-  /** Sets the value of "text-overline-mode" */
-  set textOverlineMode(String value) {
-    setProperty('text-overline-mode', value, '');
-  }
-
-  /** Gets the value of "text-overline-style" */
-  String get textOverlineStyle => getPropertyValue('text-overline-style');
-
-  /** Sets the value of "text-overline-style" */
-  set textOverlineStyle(String value) {
-    setProperty('text-overline-style', value, '');
-  }
-
-  /** Gets the value of "text-overline-width" */
-  String get textOverlineWidth => getPropertyValue('text-overline-width');
-
-  /** Sets the value of "text-overline-width" */
-  set textOverlineWidth(String value) {
-    setProperty('text-overline-width', value, '');
-  }
-
-  /** Gets the value of "text-rendering" */
-  String get textRendering => getPropertyValue('text-rendering');
-
-  /** Sets the value of "text-rendering" */
-  set textRendering(String value) {
-    setProperty('text-rendering', value, '');
-  }
-
-  /** Gets the value of "text-security" */
-  String get textSecurity => getPropertyValue('text-security');
-
-  /** Sets the value of "text-security" */
-  set textSecurity(String value) {
-    setProperty('text-security', value, '');
-  }
-
-  /** Gets the value of "text-shadow" */
-  String get textShadow => getPropertyValue('text-shadow');
-
-  /** Sets the value of "text-shadow" */
-  set textShadow(String value) {
-    setProperty('text-shadow', value, '');
-  }
-
-  /** Gets the value of "text-stroke" */
-  String get textStroke => getPropertyValue('text-stroke');
-
-  /** Sets the value of "text-stroke" */
-  set textStroke(String value) {
-    setProperty('text-stroke', value, '');
-  }
-
-  /** Gets the value of "text-stroke-color" */
-  String get textStrokeColor => getPropertyValue('text-stroke-color');
-
-  /** Sets the value of "text-stroke-color" */
-  set textStrokeColor(String value) {
-    setProperty('text-stroke-color', value, '');
-  }
-
-  /** Gets the value of "text-stroke-width" */
-  String get textStrokeWidth => getPropertyValue('text-stroke-width');
-
-  /** Sets the value of "text-stroke-width" */
-  set textStrokeWidth(String value) {
-    setProperty('text-stroke-width', value, '');
-  }
-
-  /** Gets the value of "text-transform" */
-  String get textTransform => getPropertyValue('text-transform');
-
-  /** Sets the value of "text-transform" */
-  set textTransform(String value) {
-    setProperty('text-transform', value, '');
-  }
-
-  /** Gets the value of "text-underline-color" */
-  String get textUnderlineColor => getPropertyValue('text-underline-color');
-
-  /** Sets the value of "text-underline-color" */
-  set textUnderlineColor(String value) {
-    setProperty('text-underline-color', value, '');
-  }
-
-  /** Gets the value of "text-underline-mode" */
-  String get textUnderlineMode => getPropertyValue('text-underline-mode');
-
-  /** Sets the value of "text-underline-mode" */
-  set textUnderlineMode(String value) {
-    setProperty('text-underline-mode', value, '');
-  }
-
-  /** Gets the value of "text-underline-position" */
-  String get textUnderlinePosition =>
-      getPropertyValue('text-underline-position');
-
-  /** Sets the value of "text-underline-position" */
-  set textUnderlinePosition(String value) {
-    setProperty('text-underline-position', value, '');
-  }
-
-  /** Gets the value of "text-underline-style" */
-  String get textUnderlineStyle => getPropertyValue('text-underline-style');
-
-  /** Sets the value of "text-underline-style" */
-  set textUnderlineStyle(String value) {
-    setProperty('text-underline-style', value, '');
-  }
-
-  /** Gets the value of "text-underline-width" */
-  String get textUnderlineWidth => getPropertyValue('text-underline-width');
-
-  /** Sets the value of "text-underline-width" */
-  set textUnderlineWidth(String value) {
-    setProperty('text-underline-width', value, '');
-  }
-
-  /** Gets the value of "top" */
-  String get top => getPropertyValue('top');
-
-  /** Sets the value of "top" */
-  set top(String value) {
-    setProperty('top', value, '');
-  }
-
-  /** Gets the value of "touch-action" */
-  String get touchAction => getPropertyValue('touch-action');
-
-  /** Sets the value of "touch-action" */
-  set touchAction(String value) {
-    setProperty('touch-action', value, '');
-  }
-
-  /** Gets the value of "touch-action-delay" */
-  String get touchActionDelay => getPropertyValue('touch-action-delay');
-
-  /** Sets the value of "touch-action-delay" */
-  set touchActionDelay(String value) {
-    setProperty('touch-action-delay', value, '');
-  }
-
-  /** Gets the value of "transform" */
-  String get transform => getPropertyValue('transform');
-
-  /** Sets the value of "transform" */
-  set transform(String value) {
-    setProperty('transform', value, '');
-  }
-
-  /** Gets the value of "transform-origin" */
-  String get transformOrigin => getPropertyValue('transform-origin');
-
-  /** Sets the value of "transform-origin" */
-  set transformOrigin(String value) {
-    setProperty('transform-origin', value, '');
-  }
-
-  /** Gets the value of "transform-origin-x" */
-  String get transformOriginX => getPropertyValue('transform-origin-x');
-
-  /** Sets the value of "transform-origin-x" */
-  set transformOriginX(String value) {
-    setProperty('transform-origin-x', value, '');
-  }
-
-  /** Gets the value of "transform-origin-y" */
-  String get transformOriginY => getPropertyValue('transform-origin-y');
-
-  /** Sets the value of "transform-origin-y" */
-  set transformOriginY(String value) {
-    setProperty('transform-origin-y', value, '');
-  }
-
-  /** Gets the value of "transform-origin-z" */
-  String get transformOriginZ => getPropertyValue('transform-origin-z');
-
-  /** Sets the value of "transform-origin-z" */
-  set transformOriginZ(String value) {
-    setProperty('transform-origin-z', value, '');
-  }
-
-  /** Gets the value of "transform-style" */
-  String get transformStyle => getPropertyValue('transform-style');
-
-  /** Sets the value of "transform-style" */
-  set transformStyle(String value) {
-    setProperty('transform-style', value, '');
-  }
-
-  /** Gets the value of "transition" */ @SupportedBrowser(
-      SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.FIREFOX)
-  @SupportedBrowser(SupportedBrowser.IE, '10')
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  String get transition => getPropertyValue('transition');
-
-  /** Sets the value of "transition" */ @SupportedBrowser(
-      SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.FIREFOX)
-  @SupportedBrowser(SupportedBrowser.IE, '10')
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  set transition(String value) {
-    setProperty('transition', value, '');
-  }
-
-  /** Gets the value of "transition-delay" */
-  String get transitionDelay => getPropertyValue('transition-delay');
-
-  /** Sets the value of "transition-delay" */
-  set transitionDelay(String value) {
-    setProperty('transition-delay', value, '');
-  }
-
-  /** Gets the value of "transition-duration" */
-  String get transitionDuration => getPropertyValue('transition-duration');
-
-  /** Sets the value of "transition-duration" */
-  set transitionDuration(String value) {
-    setProperty('transition-duration', value, '');
-  }
-
-  /** Gets the value of "transition-property" */
-  String get transitionProperty => getPropertyValue('transition-property');
-
-  /** Sets the value of "transition-property" */
-  set transitionProperty(String value) {
-    setProperty('transition-property', value, '');
-  }
-
-  /** Gets the value of "transition-timing-function" */
-  String get transitionTimingFunction =>
-      getPropertyValue('transition-timing-function');
-
-  /** Sets the value of "transition-timing-function" */
-  set transitionTimingFunction(String value) {
-    setProperty('transition-timing-function', value, '');
-  }
-
-  /** Gets the value of "unicode-bidi" */
-  String get unicodeBidi => getPropertyValue('unicode-bidi');
-
-  /** Sets the value of "unicode-bidi" */
-  set unicodeBidi(String value) {
-    setProperty('unicode-bidi', value, '');
-  }
-
-  /** Gets the value of "unicode-range" */
-  String get unicodeRange => getPropertyValue('unicode-range');
-
-  /** Sets the value of "unicode-range" */
-  set unicodeRange(String value) {
-    setProperty('unicode-range', value, '');
-  }
-
-  /** Gets the value of "user-drag" */
-  String get userDrag => getPropertyValue('user-drag');
-
-  /** Sets the value of "user-drag" */
-  set userDrag(String value) {
-    setProperty('user-drag', value, '');
-  }
-
-  /** Gets the value of "user-modify" */
-  String get userModify => getPropertyValue('user-modify');
-
-  /** Sets the value of "user-modify" */
-  set userModify(String value) {
-    setProperty('user-modify', value, '');
-  }
-
-  /** Gets the value of "user-select" */
-  String get userSelect => getPropertyValue('user-select');
-
-  /** Sets the value of "user-select" */
-  set userSelect(String value) {
-    setProperty('user-select', value, '');
-  }
-
-  /** Gets the value of "user-zoom" */
-  String get userZoom => getPropertyValue('user-zoom');
-
-  /** Sets the value of "user-zoom" */
-  set userZoom(String value) {
-    setProperty('user-zoom', value, '');
-  }
-
-  /** Gets the value of "vertical-align" */
-  String get verticalAlign => getPropertyValue('vertical-align');
-
-  /** Sets the value of "vertical-align" */
-  set verticalAlign(String value) {
-    setProperty('vertical-align', value, '');
-  }
-
-  /** Gets the value of "visibility" */
-  String get visibility => getPropertyValue('visibility');
-
-  /** Sets the value of "visibility" */
-  set visibility(String value) {
-    setProperty('visibility', value, '');
-  }
-
-  /** Gets the value of "white-space" */
-  String get whiteSpace => getPropertyValue('white-space');
-
-  /** Sets the value of "white-space" */
-  set whiteSpace(String value) {
-    setProperty('white-space', value, '');
-  }
-
-  /** Gets the value of "widows" */
-  String get widows => getPropertyValue('widows');
-
-  /** Sets the value of "widows" */
-  set widows(String value) {
-    setProperty('widows', value, '');
-  }
-
-  /** Gets the value of "width" */
-  String get width => getPropertyValue('width');
-
-  /** Sets the value of "width" */
-  set width(String value) {
-    setProperty('width', value, '');
-  }
-
-  /** Gets the value of "will-change" */
-  String get willChange => getPropertyValue('will-change');
-
-  /** Sets the value of "will-change" */
-  set willChange(String value) {
-    setProperty('will-change', value, '');
-  }
-
-  /** Gets the value of "word-break" */
-  String get wordBreak => getPropertyValue('word-break');
-
-  /** Sets the value of "word-break" */
-  set wordBreak(String value) {
-    setProperty('word-break', value, '');
-  }
-
-  /** Gets the value of "word-spacing" */
-  String get wordSpacing => getPropertyValue('word-spacing');
-
-  /** Sets the value of "word-spacing" */
-  set wordSpacing(String value) {
-    setProperty('word-spacing', value, '');
-  }
-
-  /** Gets the value of "word-wrap" */
-  String get wordWrap => getPropertyValue('word-wrap');
-
-  /** Sets the value of "word-wrap" */
-  set wordWrap(String value) {
-    setProperty('word-wrap', value, '');
-  }
-
-  /** Gets the value of "wrap-flow" */
-  String get wrapFlow => getPropertyValue('wrap-flow');
-
-  /** Sets the value of "wrap-flow" */
-  set wrapFlow(String value) {
-    setProperty('wrap-flow', value, '');
-  }
-
-  /** Gets the value of "wrap-through" */
-  String get wrapThrough => getPropertyValue('wrap-through');
-
-  /** Sets the value of "wrap-through" */
-  set wrapThrough(String value) {
-    setProperty('wrap-through', value, '');
-  }
-
-  /** Gets the value of "writing-mode" */
-  String get writingMode => getPropertyValue('writing-mode');
-
-  /** Sets the value of "writing-mode" */
-  set writingMode(String value) {
-    setProperty('writing-mode', value, '');
-  }
-
-  /** Gets the value of "z-index" */
-  String get zIndex => getPropertyValue('z-index');
-
-  /** Sets the value of "z-index" */
-  set zIndex(String value) {
-    setProperty('z-index', value, '');
-  }
-
-  /** Gets the value of "zoom" */
-  String get zoom => getPropertyValue('zoom');
-
-  /** Sets the value of "zoom" */
-  set zoom(String value) {
-    setProperty('zoom', value, '');
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CSSStyleRule')
-@Native("CSSStyleRule")
-class CssStyleRule extends CssRule {
-  // To suppress missing implicit constructor warnings.
-  factory CssStyleRule._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CSSStyleRule.selectorText')
-  @DocsEditable()
-  String selectorText;
-
-  @DomName('CSSStyleRule.style')
-  @DocsEditable()
-  final CssStyleDeclaration style;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CSSStyleSheet')
-@Native("CSSStyleSheet")
-class CssStyleSheet extends StyleSheet {
-  // To suppress missing implicit constructor warnings.
-  factory CssStyleSheet._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CSSStyleSheet.cssRules')
-  @DocsEditable()
-  @Returns('_CssRuleList|Null')
-  @Creates('_CssRuleList')
-  final List<CssRule> cssRules;
-
-  @DomName('CSSStyleSheet.ownerRule')
-  @DocsEditable()
-  final CssRule ownerRule;
-
-  @DomName('CSSStyleSheet.rules')
-  @DocsEditable()
-  @Experimental() // non-standard
-  @Returns('_CssRuleList|Null')
-  @Creates('_CssRuleList')
-  final List<CssRule> rules;
-
-  @DomName('CSSStyleSheet.addRule')
-  @DocsEditable()
-  @Experimental() // non-standard
-  int addRule(String selector, String style, [int index]) native;
-
-  @DomName('CSSStyleSheet.deleteRule')
-  @DocsEditable()
-  void deleteRule(int index) native;
-
-  @DomName('CSSStyleSheet.insertRule')
-  @DocsEditable()
-  int insertRule(String rule, [int index]) native;
-
-  @DomName('CSSStyleSheet.removeRule')
-  @DocsEditable()
-  @Experimental() // non-standard
-  void removeRule(int index) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CSSSupportsRule')
-@Native("CSSSupportsRule")
-class CssSupportsRule extends CssRule {
-  // To suppress missing implicit constructor warnings.
-  factory CssSupportsRule._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CSSSupportsRule.conditionText')
-  @DocsEditable()
-  final String conditionText;
-
-  @DomName('CSSSupportsRule.cssRules')
-  @DocsEditable()
-  @Returns('_CssRuleList|Null')
-  @Creates('_CssRuleList')
-  final List<CssRule> cssRules;
-
-  @DomName('CSSSupportsRule.deleteRule')
-  @DocsEditable()
-  void deleteRule(int index) native;
-
-  @DomName('CSSSupportsRule.insertRule')
-  @DocsEditable()
-  int insertRule(String rule, int index) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CSSViewportRule')
-@Experimental() // untriaged
-@Native("CSSViewportRule")
-class CssViewportRule extends CssRule {
-  // To suppress missing implicit constructor warnings.
-  factory CssViewportRule._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CSSViewportRule.style')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final CssStyleDeclaration style;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('CustomEvent')
-@Native("CustomEvent")
-class CustomEvent extends Event {
-  @Creates('Null') // Set from Dart code; does not instantiate a native type.
-  var _dartDetail;
-
-  factory CustomEvent(String type,
-      {bool canBubble: true, bool cancelable: true, Object detail}) {
-    final CustomEvent e = document._createEvent('CustomEvent');
-
-    e._dartDetail = detail;
-
-    // Only try setting the detail if it's one of these types to avoid
-    // first-chance exceptions. Can expand this list in the future as needed.
-    if (detail is List || detail is Map || detail is String || detail is num) {
-      try {
-        detail = convertDartToNative_SerializedScriptValue(detail);
-        e._initCustomEvent(type, canBubble, cancelable, detail);
-      } catch (_) {
-        e._initCustomEvent(type, canBubble, cancelable, null);
-      }
-    } else {
-      e._initCustomEvent(type, canBubble, cancelable, null);
-    }
-
-    return e;
-  }
-
-  @DomName('CustomEvent.detail')
-  get detail {
-    if (_dartDetail != null) {
-      return _dartDetail;
-    }
-    return _detail;
-  }
-
-  @DomName('CustomEvent._detail')
-  @DocsEditable()
-  @Experimental() // untriaged
-  dynamic get _detail =>
-      convertNativeToDart_SerializedScriptValue(this._get__detail);
-  @JSName('detail')
-  @DomName('CustomEvent._detail')
-  @DocsEditable()
-  @Experimental() // untriaged
-  @Creates('Null')
-  final dynamic _get__detail;
-
-  @JSName('initCustomEvent')
-  @DomName('CustomEvent.initCustomEvent')
-  @DocsEditable()
-  void _initCustomEvent(
-      String type, bool bubbles, bool cancelable, Object detail) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLDListElement')
-@Native("HTMLDListElement")
-class DListElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory DListElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLDListElement.HTMLDListElement')
-  @DocsEditable()
-  factory DListElement() => JS(
-      'returns:DListElement;creates:DListElement;new:true',
-      '#.createElement(#)',
-      document,
-      "dl");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  DListElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLDataListElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Native("HTMLDataListElement")
-class DataListElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory DataListElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLDataListElement.HTMLDataListElement')
-  @DocsEditable()
-  factory DataListElement() => document.createElement("datalist");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  DataListElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported => Element.isTagSupported('datalist');
-
-  @DomName('HTMLDataListElement.options')
-  @DocsEditable()
-  @Returns('HtmlCollection|Null')
-  @Creates('HtmlCollection')
-  final List<Node> options;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DataTransfer')
-@Experimental() // untriaged
-@Native("DataTransfer")
-class DataTransfer extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory DataTransfer._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('DataTransfer.dropEffect')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String dropEffect;
-
-  @DomName('DataTransfer.effectAllowed')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String effectAllowed;
-
-  @DomName('DataTransfer.files')
-  @DocsEditable()
-  @Experimental() // untriaged
-  @Returns('FileList|Null')
-  @Creates('FileList')
-  final List<File> files;
-
-  @DomName('DataTransfer.items')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final DataTransferItemList items;
-
-  @DomName('DataTransfer.types')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final List<String> types;
-
-  @DomName('DataTransfer.clearData')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void clearData([String format]) native;
-
-  @DomName('DataTransfer.getData')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String getData(String format) native;
-
-  @DomName('DataTransfer.setData')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void setData(String format, String data) native;
-
-  @DomName('DataTransfer.setDragImage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void setDragImage(Element image, int x, int y) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DataTransferItem')
-// http://www.w3.org/TR/2011/WD-html5-20110113/dnd.html#the-datatransferitem-interface
-@Experimental()
-@Native("DataTransferItem")
-class DataTransferItem extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory DataTransferItem._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('DataTransferItem.kind')
-  @DocsEditable()
-  final String kind;
-
-  @DomName('DataTransferItem.type')
-  @DocsEditable()
-  final String type;
-
-  @DomName('DataTransferItem.getAsFile')
-  @DocsEditable()
-  Blob getAsFile() native;
-
-  @JSName('getAsString')
-  @DomName('DataTransferItem.getAsString')
-  @DocsEditable()
-  void _getAsString(_StringCallback callback) native;
-
-  @JSName('getAsString')
-  @DomName('DataTransferItem.getAsString')
-  @DocsEditable()
-  Future<String> getAsString() {
-    var completer = new Completer<String>();
-    _getAsString((value) {
-      completer.complete(value);
-    });
-    return completer.future;
-  }
-
-  @JSName('webkitGetAsEntry')
-  @DomName('DataTransferItem.webkitGetAsEntry')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  Entry getAsEntry() native;
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DataTransferItemList')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#the-datatransferitemlist-interface
-@Experimental()
-@Native("DataTransferItemList")
-class DataTransferItemList extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory DataTransferItemList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('DataTransferItemList.length')
-  @DocsEditable()
-  final int length;
-
-  @DomName('DataTransferItemList.add')
-  @DocsEditable()
-  DataTransferItem add(data_OR_file, [String type]) native;
-
-  @JSName('add')
-  @DomName('DataTransferItemList.add')
-  @DocsEditable()
-  DataTransferItem addData(String data, String type) native;
-
-  @JSName('add')
-  @DomName('DataTransferItemList.add')
-  @DocsEditable()
-  DataTransferItem addFile(File file) native;
-
-  @DomName('DataTransferItemList.clear')
-  @DocsEditable()
-  void clear() native;
-
-  @DomName('DataTransferItemList.item')
-  @DocsEditable()
-  DataTransferItem item(int index) native;
-
-  @DomName('DataTransferItemList.remove')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void remove(int index) native;
-
-  DataTransferItem operator [](int index) {
-    return JS('DataTransferItem', '#[#]', this, index);
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('DatabaseCallback')
-// http://www.w3.org/TR/webdatabase/#databasecallback
-@Experimental() // deprecated
-typedef void DatabaseCallback(SqlDatabase database);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DedicatedWorkerGlobalScope')
-@Experimental() // untriaged
-@Native("DedicatedWorkerGlobalScope")
-class DedicatedWorkerGlobalScope extends WorkerGlobalScope {
-  // To suppress missing implicit constructor warnings.
-  factory DedicatedWorkerGlobalScope._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `message` events to event
-   * handlers that are not necessarily instances of [DedicatedWorkerGlobalScope].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('DedicatedWorkerGlobalScope.messageEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MessageEvent> messageEvent =
-      const EventStreamProvider<MessageEvent>('message');
-
-  @DomName('DedicatedWorkerGlobalScope.PERSISTENT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int PERSISTENT = 1;
-
-  @DomName('DedicatedWorkerGlobalScope.TEMPORARY')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEMPORARY = 0;
-
-  @DomName('DedicatedWorkerGlobalScope.postMessage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void postMessage(/*any*/ message, [List<MessagePort> transfer]) {
-    if (transfer != null) {
-      var message_1 = convertDartToNative_SerializedScriptValue(message);
-      _postMessage_1(message_1, transfer);
-      return;
-    }
-    var message_1 = convertDartToNative_SerializedScriptValue(message);
-    _postMessage_2(message_1);
-    return;
-  }
-
-  @JSName('postMessage')
-  @DomName('DedicatedWorkerGlobalScope.postMessage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _postMessage_1(message, List<MessagePort> transfer) native;
-  @JSName('postMessage')
-  @DomName('DedicatedWorkerGlobalScope.postMessage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _postMessage_2(message) native;
-
-  @JSName('webkitRequestFileSystem')
-  @DomName('DedicatedWorkerGlobalScope.webkitRequestFileSystem')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  @Experimental() // untriaged
-  void _webkitRequestFileSystem(int type, int size,
-      [_FileSystemCallback successCallback,
-      _ErrorCallback errorCallback]) native;
-
-  @JSName('webkitRequestFileSystemSync')
-  @DomName('DedicatedWorkerGlobalScope.webkitRequestFileSystemSync')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  @Experimental() // untriaged
-  _DOMFileSystemSync requestFileSystemSync(int type, int size) native;
-
-  @JSName('webkitResolveLocalFileSystemSyncURL')
-  @DomName('DedicatedWorkerGlobalScope.webkitResolveLocalFileSystemSyncURL')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  @Experimental() // untriaged
-  _EntrySync resolveLocalFileSystemSyncUrl(String url) native;
-
-  @JSName('webkitResolveLocalFileSystemURL')
-  @DomName('DedicatedWorkerGlobalScope.webkitResolveLocalFileSystemURL')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  @Experimental() // untriaged
-  void _webkitResolveLocalFileSystemUrl(
-      String url, _EntryCallback successCallback,
-      [_ErrorCallback errorCallback]) native;
-
-  /// Stream of `message` events handled by this [DedicatedWorkerGlobalScope].
-  @DomName('DedicatedWorkerGlobalScope.onmessage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DeprecatedStorageInfo')
-@Experimental() // untriaged
-@Native("DeprecatedStorageInfo")
-class DeprecatedStorageInfo extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory DeprecatedStorageInfo._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('DeprecatedStorageInfo.PERSISTENT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int PERSISTENT = 1;
-
-  @DomName('DeprecatedStorageInfo.TEMPORARY')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEMPORARY = 0;
-
-  @DomName('DeprecatedStorageInfo.queryUsageAndQuota')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void queryUsageAndQuota(int storageType,
-      [StorageUsageCallback usageCallback,
-      StorageErrorCallback errorCallback]) native;
-
-  @DomName('DeprecatedStorageInfo.requestQuota')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void requestQuota(int storageType, int newQuotaInBytes,
-      [StorageQuotaCallback quotaCallback,
-      StorageErrorCallback errorCallback]) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DeprecatedStorageQuota')
-@Experimental() // untriaged
-@Native("DeprecatedStorageQuota")
-class DeprecatedStorageQuota extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory DeprecatedStorageQuota._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('DeprecatedStorageQuota.queryUsageAndQuota')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void queryUsageAndQuota(StorageUsageCallback usageCallback,
-      [StorageErrorCallback errorCallback]) native;
-
-  @DomName('DeprecatedStorageQuota.requestQuota')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void requestQuota(int newQuotaInBytes,
-      [StorageQuotaCallback quotaCallback,
-      StorageErrorCallback errorCallback]) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLDetailsElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Experimental()
-@Native("HTMLDetailsElement")
-class DetailsElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory DetailsElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLDetailsElement.HTMLDetailsElement')
-  @DocsEditable()
-  factory DetailsElement() => document.createElement("details");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  DetailsElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported => Element.isTagSupported('details');
-
-  @DomName('HTMLDetailsElement.open')
-  @DocsEditable()
-  bool open;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DeviceAcceleration')
-// http://dev.w3.org/geo/api/spec-source-orientation.html#devicemotion
-@Experimental()
-@Native("DeviceAcceleration")
-class DeviceAcceleration extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory DeviceAcceleration._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('DeviceAcceleration.x')
-  @DocsEditable()
-  final double x;
-
-  @DomName('DeviceAcceleration.y')
-  @DocsEditable()
-  final double y;
-
-  @DomName('DeviceAcceleration.z')
-  @DocsEditable()
-  final double z;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DeviceLightEvent')
-@Experimental() // untriaged
-@Native("DeviceLightEvent")
-class DeviceLightEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory DeviceLightEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('DeviceLightEvent.DeviceLightEvent')
-  @DocsEditable()
-  factory DeviceLightEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return DeviceLightEvent._create_1(type, eventInitDict_1);
-    }
-    return DeviceLightEvent._create_2(type);
-  }
-  static DeviceLightEvent _create_1(type, eventInitDict) =>
-      JS('DeviceLightEvent', 'new DeviceLightEvent(#,#)', type, eventInitDict);
-  static DeviceLightEvent _create_2(type) =>
-      JS('DeviceLightEvent', 'new DeviceLightEvent(#)', type);
-
-  @DomName('DeviceLightEvent.value')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double value;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DeviceMotionEvent')
-// http://dev.w3.org/geo/api/spec-source-orientation.html#devicemotion
-@Experimental()
-@Native("DeviceMotionEvent")
-class DeviceMotionEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory DeviceMotionEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('DeviceMotionEvent.acceleration')
-  @DocsEditable()
-  final DeviceAcceleration acceleration;
-
-  @DomName('DeviceMotionEvent.accelerationIncludingGravity')
-  @DocsEditable()
-  final DeviceAcceleration accelerationIncludingGravity;
-
-  @DomName('DeviceMotionEvent.interval')
-  @DocsEditable()
-  final double interval;
-
-  @DomName('DeviceMotionEvent.rotationRate')
-  @DocsEditable()
-  final DeviceRotationRate rotationRate;
-
-  @DomName('DeviceMotionEvent.initDeviceMotionEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void initDeviceMotionEvent(
-      String type,
-      bool bubbles,
-      bool cancelable,
-      DeviceAcceleration acceleration,
-      DeviceAcceleration accelerationIncludingGravity,
-      DeviceRotationRate rotationRate,
-      num interval) native;
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('DeviceOrientationEvent')
-// http://dev.w3.org/geo/api/spec-source-orientation.html#devicemotion
-@Experimental()
-@Native("DeviceOrientationEvent")
-class DeviceOrientationEvent extends Event {
-  factory DeviceOrientationEvent(String type,
-      {bool canBubble: true,
-      bool cancelable: true,
-      num alpha: 0,
-      num beta: 0,
-      num gamma: 0,
-      bool absolute: false}) {
-    DeviceOrientationEvent e = document._createEvent("DeviceOrientationEvent");
-    e._initDeviceOrientationEvent(
-        type, canBubble, cancelable, alpha, beta, gamma, absolute);
-    return e;
-  }
-  // To suppress missing implicit constructor warnings.
-  factory DeviceOrientationEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('DeviceOrientationEvent.absolute')
-  @DocsEditable()
-  final bool absolute;
-
-  @DomName('DeviceOrientationEvent.alpha')
-  @DocsEditable()
-  final double alpha;
-
-  @DomName('DeviceOrientationEvent.beta')
-  @DocsEditable()
-  final double beta;
-
-  @DomName('DeviceOrientationEvent.gamma')
-  @DocsEditable()
-  final double gamma;
-
-  @JSName('initDeviceOrientationEvent')
-  @DomName('DeviceOrientationEvent.initDeviceOrientationEvent')
-  @DocsEditable()
-  void _initDeviceOrientationEvent(String type, bool bubbles, bool cancelable,
-      num alpha, num beta, num gamma, bool absolute) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DeviceRotationRate')
-// http://dev.w3.org/geo/api/spec-source-orientation.html#devicemotion
-@Experimental()
-@Native("DeviceRotationRate")
-class DeviceRotationRate extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory DeviceRotationRate._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('DeviceRotationRate.alpha')
-  @DocsEditable()
-  final double alpha;
-
-  @DomName('DeviceRotationRate.beta')
-  @DocsEditable()
-  final double beta;
-
-  @DomName('DeviceRotationRate.gamma')
-  @DocsEditable()
-  final double gamma;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLDialogElement')
-@Unstable()
-@Native("HTMLDialogElement")
-class DialogElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory DialogElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  DialogElement.created() : super.created();
-
-  @DomName('HTMLDialogElement.open')
-  @DocsEditable()
-  bool open;
-
-  @DomName('HTMLDialogElement.returnValue')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String returnValue;
-
-  @DomName('HTMLDialogElement.close')
-  @DocsEditable()
-  void close(String returnValue) native;
-
-  @DomName('HTMLDialogElement.show')
-  @DocsEditable()
-  void show() native;
-
-  @DomName('HTMLDialogElement.showModal')
-  @DocsEditable()
-  void showModal() native;
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('DirectoryEntry')
-// http://www.w3.org/TR/file-system-api/#the-directoryentry-interface
-@Experimental()
-@Native("DirectoryEntry")
-class DirectoryEntry extends Entry {
-  /**
-   * Create a new directory with the specified `path`. If `exclusive` is true,
-   * the returned Future will complete with an error if a directory already
-   * exists with the specified `path`.
-   */
-  Future<Entry> createDirectory(String path, {bool exclusive: false}) {
-    return _getDirectory(path,
-        options: {'create': true, 'exclusive': exclusive});
-  }
-
-  /**
-   * Retrieve an already existing directory entry. The returned future will
-   * result in an error if a directory at `path` does not exist or if the item
-   * at `path` is not a directory.
-   */
-  Future<Entry> getDirectory(String path) {
-    return _getDirectory(path);
-  }
-
-  /**
-   * Create a new file with the specified `path`. If `exclusive` is true,
-   * the returned Future will complete with an error if a file already
-   * exists at the specified `path`.
-   */
-  Future<Entry> createFile(String path, {bool exclusive: false}) {
-    return _getFile(path, options: {'create': true, 'exclusive': exclusive});
-  }
-
-  /**
-   * Retrieve an already existing file entry. The returned future will
-   * result in an error if a file at `path` does not exist or if the item at
-   * `path` is not a file.
-   */
-  Future<Entry> getFile(String path) {
-    return _getFile(path);
-  }
-
-  // To suppress missing implicit constructor warnings.
-  factory DirectoryEntry._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('DirectoryEntry.createReader')
-  @DocsEditable()
-  DirectoryReader createReader() native;
-
-  @DomName('DirectoryEntry.getDirectory')
-  @DocsEditable()
-  void __getDirectory(String path,
-      {Map options,
-      _EntryCallback successCallback,
-      _ErrorCallback errorCallback}) {
-    if (errorCallback != null) {
-      var options_1 = convertDartToNative_Dictionary(options);
-      __getDirectory_1(path, options_1, successCallback, errorCallback);
-      return;
-    }
-    if (successCallback != null) {
-      var options_1 = convertDartToNative_Dictionary(options);
-      __getDirectory_2(path, options_1, successCallback);
-      return;
-    }
-    if (options != null) {
-      var options_1 = convertDartToNative_Dictionary(options);
-      __getDirectory_3(path, options_1);
-      return;
-    }
-    __getDirectory_4(path);
-    return;
-  }
-
-  @JSName('getDirectory')
-  @DomName('DirectoryEntry.getDirectory')
-  @DocsEditable()
-  void __getDirectory_1(path, options, _EntryCallback successCallback,
-      _ErrorCallback errorCallback) native;
-  @JSName('getDirectory')
-  @DomName('DirectoryEntry.getDirectory')
-  @DocsEditable()
-  void __getDirectory_2(path, options, _EntryCallback successCallback) native;
-  @JSName('getDirectory')
-  @DomName('DirectoryEntry.getDirectory')
-  @DocsEditable()
-  void __getDirectory_3(path, options) native;
-  @JSName('getDirectory')
-  @DomName('DirectoryEntry.getDirectory')
-  @DocsEditable()
-  void __getDirectory_4(path) native;
-
-  @JSName('getDirectory')
-  @DomName('DirectoryEntry.getDirectory')
-  @DocsEditable()
-  Future<Entry> _getDirectory(String path, {Map options}) {
-    var completer = new Completer<Entry>();
-    __getDirectory(path, options: options, successCallback: (value) {
-      completer.complete(value);
-    }, errorCallback: (error) {
-      completer.completeError(error);
-    });
-    return completer.future;
-  }
-
-  @DomName('DirectoryEntry.getFile')
-  @DocsEditable()
-  void __getFile(String path,
-      {Map options,
-      _EntryCallback successCallback,
-      _ErrorCallback errorCallback}) {
-    if (errorCallback != null) {
-      var options_1 = convertDartToNative_Dictionary(options);
-      __getFile_1(path, options_1, successCallback, errorCallback);
-      return;
-    }
-    if (successCallback != null) {
-      var options_1 = convertDartToNative_Dictionary(options);
-      __getFile_2(path, options_1, successCallback);
-      return;
-    }
-    if (options != null) {
-      var options_1 = convertDartToNative_Dictionary(options);
-      __getFile_3(path, options_1);
-      return;
-    }
-    __getFile_4(path);
-    return;
-  }
-
-  @JSName('getFile')
-  @DomName('DirectoryEntry.getFile')
-  @DocsEditable()
-  void __getFile_1(path, options, _EntryCallback successCallback,
-      _ErrorCallback errorCallback) native;
-  @JSName('getFile')
-  @DomName('DirectoryEntry.getFile')
-  @DocsEditable()
-  void __getFile_2(path, options, _EntryCallback successCallback) native;
-  @JSName('getFile')
-  @DomName('DirectoryEntry.getFile')
-  @DocsEditable()
-  void __getFile_3(path, options) native;
-  @JSName('getFile')
-  @DomName('DirectoryEntry.getFile')
-  @DocsEditable()
-  void __getFile_4(path) native;
-
-  @JSName('getFile')
-  @DomName('DirectoryEntry.getFile')
-  @DocsEditable()
-  Future<Entry> _getFile(String path, {Map options}) {
-    var completer = new Completer<Entry>();
-    __getFile(path, options: options, successCallback: (value) {
-      completer.complete(value);
-    }, errorCallback: (error) {
-      completer.completeError(error);
-    });
-    return completer.future;
-  }
-
-  @JSName('removeRecursively')
-  @DomName('DirectoryEntry.removeRecursively')
-  @DocsEditable()
-  void _removeRecursively(VoidCallback successCallback,
-      [_ErrorCallback errorCallback]) native;
-
-  @JSName('removeRecursively')
-  @DomName('DirectoryEntry.removeRecursively')
-  @DocsEditable()
-  Future removeRecursively() {
-    var completer = new Completer();
-    _removeRecursively(() {
-      completer.complete();
-    }, (error) {
-      completer.completeError(error);
-    });
-    return completer.future;
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DirectoryReader')
-// http://www.w3.org/TR/file-system-api/#the-directoryreader-interface
-@Experimental()
-@Native("DirectoryReader")
-class DirectoryReader extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory DirectoryReader._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @JSName('readEntries')
-  @DomName('DirectoryReader.readEntries')
-  @DocsEditable()
-  void _readEntries(_EntriesCallback successCallback,
-      [_ErrorCallback errorCallback]) native;
-
-  @JSName('readEntries')
-  @DomName('DirectoryReader.readEntries')
-  @DocsEditable()
-  Future<List<Entry>> readEntries() {
-    var completer = new Completer<List<Entry>>();
-    _readEntries((value) {
-      completer.complete(value);
-    }, (error) {
-      completer.completeError(error);
-    });
-    return completer.future;
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-/**
- * A generic container for content on an HTML page;
- * corresponds to the &lt;div&gt; tag.
- *
- * The [DivElement] is a generic container and does not have any semantic
- * significance. It is functionally similar to [SpanElement].
- *
- * The [DivElement] is a block-level element, as opposed to [SpanElement],
- * which is an inline-level element.
- *
- * Example usage:
- *
- *     DivElement div = new DivElement();
- *     div.text = 'Here's my new DivElem
- *     document.body.elements.add(elem);
- *
- * See also:
- *
- * * [HTML `<div>` element](http://www.w3.org/TR/html-markup/div.html) from W3C.
- * * [Block-level element](http://www.w3.org/TR/CSS2/visuren.html#block-boxes) from W3C.
- * * [Inline-level element](http://www.w3.org/TR/CSS2/visuren.html#inline-boxes) from W3C.
- */
-@DomName('HTMLDivElement')
-@Native("HTMLDivElement")
-class DivElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory DivElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLDivElement.HTMLDivElement')
-  @DocsEditable()
-  factory DivElement() => JS('returns:DivElement;creates:DivElement;new:true',
-      '#.createElement(#)', document, "div");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  DivElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-/**
- * The base class for all documents.
- *
- * Each web page loaded in the browser has its own [Document] object, which is
- * typically an [HtmlDocument].
- *
- * If you aren't comfortable with DOM concepts, see the Dart tutorial
- * [Target 2: Connect Dart & HTML](http://www.dartlang.org/docs/tutorials/connect-dart-html/).
- */
-@DomName('Document')
-@Native("Document")
-class Document extends Node {
-  // To suppress missing implicit constructor warnings.
-  factory Document._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Document.pointerlockchangeEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> pointerLockChangeEvent =
-      const EventStreamProvider<Event>('pointerlockchange');
-
-  @DomName('Document.pointerlockerrorEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> pointerLockErrorEvent =
-      const EventStreamProvider<Event>('pointerlockerror');
-
-  /**
-   * Static factory designed to expose `readystatechange` events to event
-   * handlers that are not necessarily instances of [Document].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Document.readystatechangeEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> readyStateChangeEvent =
-      const EventStreamProvider<Event>('readystatechange');
-
-  /**
-   * Static factory designed to expose `securitypolicyviolation` events to event
-   * handlers that are not necessarily instances of [Document].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Document.securitypolicyviolationEvent')
-  @DocsEditable()
-  // https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#widl-Document-onsecuritypolicyviolation
-  @Experimental()
-  static const EventStreamProvider<SecurityPolicyViolationEvent>
-      securityPolicyViolationEvent =
-      const EventStreamProvider<SecurityPolicyViolationEvent>(
-          'securitypolicyviolation');
-
-  /**
-   * Static factory designed to expose `selectionchange` events to event
-   * handlers that are not necessarily instances of [Document].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Document.selectionchangeEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> selectionChangeEvent =
-      const EventStreamProvider<Event>('selectionchange');
-
-  @DomName('Document.activeElement')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Element activeElement;
-
-  @JSName('body')
-  @DomName('Document.body')
-  @DocsEditable()
-  HtmlElement _body;
-
-  @DomName('Document.contentType')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String contentType;
-
-  @DomName('Document.cookie')
-  @DocsEditable()
-  String cookie;
-
-  @DomName('Document.currentScript')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final ScriptElement currentScript;
-
-  @DomName('Document.window')
-  @DocsEditable()
-  @Experimental() // untriaged
-  WindowBase get window => _convertNativeToDart_Window(this._get_window);
-  @JSName('defaultView')
-  @DomName('Document.window')
-  @DocsEditable()
-  @Experimental() // untriaged
-  @Creates('Window|=Object')
-  @Returns('Window|=Object')
-  @Creates('Window|=Object|Null')
-  @Returns('Window|=Object|Null')
-  final dynamic _get_window;
-
-  @DomName('Document.documentElement')
-  @DocsEditable()
-  final Element documentElement;
-
-  @DomName('Document.domain')
-  @DocsEditable()
-  final String domain;
-
-  @DomName('Document.fonts')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final FontFaceSet fonts;
-
-  @DomName('Document.fullscreenElement')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Element fullscreenElement;
-
-  @DomName('Document.fullscreenEnabled')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool fullscreenEnabled;
-
-  @JSName('head')
-  @DomName('Document.head')
-  @DocsEditable()
-  final HeadElement _head;
-
-  @DomName('Document.hidden')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool hidden;
-
-  @DomName('Document.implementation')
-  @DocsEditable()
-  final DomImplementation implementation;
-
-  @JSName('lastModified')
-  @DomName('Document.lastModified')
-  @DocsEditable()
-  final String _lastModified;
-
-  @DomName('Document.origin')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String origin;
-
-  @DomName('Document.pointerLockElement')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Element pointerLockElement;
-
-  @JSName('preferredStylesheetSet')
-  @DomName('Document.preferredStylesheetSet')
-  @DocsEditable()
-  final String _preferredStylesheetSet;
-
-  @DomName('Document.readyState')
-  @DocsEditable()
-  final String readyState;
-
-  @JSName('referrer')
-  @DomName('Document.referrer')
-  @DocsEditable()
-  final String _referrer;
-
-  @DomName('Document.rootElement')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final SvgSvgElement rootElement;
-
-  @DomName('Document.scrollingElement')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Element scrollingElement;
-
-  @JSName('selectedStylesheetSet')
-  @DomName('Document.selectedStylesheetSet')
-  @DocsEditable()
-  String _selectedStylesheetSet;
-
-  @JSName('styleSheets')
-  @DomName('Document.styleSheets')
-  @DocsEditable()
-  @Returns('_StyleSheetList|Null')
-  @Creates('_StyleSheetList')
-  final List<StyleSheet> _styleSheets;
-
-  @DomName('Document.suborigin')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String suborigin;
-
-  @DomName('Document.timeline')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final AnimationTimeline timeline;
-
-  @JSName('title')
-  @DomName('Document.title')
-  @DocsEditable()
-  String _title;
-
-  @JSName('visibilityState')
-  @DomName('Document.visibilityState')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String _visibilityState;
-
-  @JSName('webkitFullscreenElement')
-  @DomName('Document.webkitFullscreenElement')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html#dom-document-fullscreenelement
-  final Element _webkitFullscreenElement;
-
-  @JSName('webkitFullscreenEnabled')
-  @DomName('Document.webkitFullscreenEnabled')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html#dom-document-fullscreenenabled
-  final bool _webkitFullscreenEnabled;
-
-  @JSName('webkitHidden')
-  @DomName('Document.webkitHidden')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  // https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/PageVisibility/Overview.html#document
-  final bool _webkitHidden;
-
-  @JSName('webkitVisibilityState')
-  @DomName('Document.webkitVisibilityState')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  // https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/PageVisibility/Overview.html#dom-document-visibilitystate
-  final String _webkitVisibilityState;
-
-  @DomName('Document.adoptNode')
-  @DocsEditable()
-  Node adoptNode(Node node) native;
-
-  @JSName('caretRangeFromPoint')
-  @DomName('Document.caretRangeFromPoint')
-  @DocsEditable()
-  // http://www.w3.org/TR/2009/WD-cssom-view-20090804/#dom-documentview-caretrangefrompoint
-  @Experimental()
-  Range _caretRangeFromPoint(int x, int y) native;
-
-  @DomName('Document.createDocumentFragment')
-  @DocsEditable()
-  DocumentFragment createDocumentFragment() native;
-
-  @JSName('createElement')
-  @DomName('Document.createElement')
-  @DocsEditable()
-  Element _createElement(String localName_OR_tagName, [String typeExtension])
-      native;
-
-  @JSName('createElementNS')
-  @DomName('Document.createElementNS')
-  @DocsEditable()
-  Element _createElementNS(String namespaceURI, String qualifiedName,
-      [String typeExtension]) native;
-
-  @JSName('createEvent')
-  @DomName('Document.createEvent')
-  @DocsEditable()
-  Event _createEvent(String eventType) native;
-
-  @DomName('Document.createRange')
-  @DocsEditable()
-  Range createRange() native;
-
-  @JSName('createTextNode')
-  @DomName('Document.createTextNode')
-  @DocsEditable()
-  Text _createTextNode(String data) native;
-
-  @DomName('Document.createTouch')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  Touch _createTouch(
-      Window window,
-      EventTarget target,
-      int identifier,
-      num pageX,
-      num pageY,
-      num screenX,
-      num screenY,
-      num radiusX,
-      num radiusY,
-      num rotationAngle,
-      num force) {
-    var target_1 = _convertDartToNative_EventTarget(target);
-    return _createTouch_1(window, target_1, identifier, pageX, pageY, screenX,
-        screenY, radiusX, radiusY, rotationAngle, force);
-  }
-
-  @JSName('createTouch')
-  @DomName('Document.createTouch')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  Touch _createTouch_1(Window window, target, identifier, pageX, pageY, screenX,
-      screenY, radiusX, radiusY, rotationAngle, force) native;
-
-  @JSName('createTouchList')
-  @DomName('Document.createTouchList')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  TouchList _createTouchList(Touch touches) native;
-
-  @JSName('elementFromPoint')
-  @DomName('Document.elementFromPoint')
-  @DocsEditable()
-  Element _elementFromPoint(int x, int y) native;
-
-  @DomName('Document.elementsFromPoint')
-  @DocsEditable()
-  @Experimental() // untriaged
-  List<Element> elementsFromPoint(int x, int y) native;
-
-  @DomName('Document.execCommand')
-  @DocsEditable()
-  bool execCommand(String commandId, [bool showUI, String value]) native;
-
-  @DomName('Document.exitFullscreen')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void exitFullscreen() native;
-
-  @DomName('Document.exitPointerLock')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void exitPointerLock() native;
-
-  @DomName('Document.getElementsByClassName')
-  @DocsEditable()
-  @Creates('NodeList|HtmlCollection')
-  @Returns('NodeList|HtmlCollection')
-  List<Node> getElementsByClassName(String classNames) native;
-
-  @DomName('Document.getElementsByName')
-  @DocsEditable()
-  @Creates('NodeList|HtmlCollection')
-  @Returns('NodeList|HtmlCollection')
-  List<Node> getElementsByName(String elementName) native;
-
-  @DomName('Document.getElementsByTagName')
-  @DocsEditable()
-  @Creates('NodeList|HtmlCollection')
-  @Returns('NodeList|HtmlCollection')
-  List<Node> getElementsByTagName(String localName) native;
-
-  @DomName('Document.importNode')
-  @DocsEditable()
-  Node importNode(Node node, [bool deep]) native;
-
-  @DomName('Document.queryCommandEnabled')
-  @DocsEditable()
-  bool queryCommandEnabled(String commandId) native;
-
-  @DomName('Document.queryCommandIndeterm')
-  @DocsEditable()
-  bool queryCommandIndeterm(String commandId) native;
-
-  @DomName('Document.queryCommandState')
-  @DocsEditable()
-  bool queryCommandState(String commandId) native;
-
-  @DomName('Document.queryCommandSupported')
-  @DocsEditable()
-  bool queryCommandSupported(String commandId) native;
-
-  @DomName('Document.queryCommandValue')
-  @DocsEditable()
-  String queryCommandValue(String commandId) native;
-
-  @DomName('Document.transformDocumentToTreeView')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void transformDocumentToTreeView(String noStyleMessage) native;
-
-  @JSName('webkitExitFullscreen')
-  @DomName('Document.webkitExitFullscreen')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html#dom-document-exitfullscreen
-  void _webkitExitFullscreen() native;
-
-  // From NonElementParentNode
-
-  @DomName('Document.getElementById')
-  @DocsEditable()
-  Element getElementById(String elementId) native;
-
-  // From ParentNode
-
-  @JSName('childElementCount')
-  @DomName('Document.childElementCount')
-  @DocsEditable()
-  final int _childElementCount;
-
-  @JSName('children')
-  @DomName('Document.children')
-  @DocsEditable()
-  @Returns('HtmlCollection|Null')
-  @Creates('HtmlCollection')
-  final List<Node> _children;
-
-  @JSName('firstElementChild')
-  @DomName('Document.firstElementChild')
-  @DocsEditable()
-  final Element _firstElementChild;
-
-  @JSName('lastElementChild')
-  @DomName('Document.lastElementChild')
-  @DocsEditable()
-  final Element _lastElementChild;
-
-  /**
-   * Finds the first descendant element of this document that matches the
-   * specified group of selectors.
-   *
-   * Unless your webpage contains multiple documents, the top-level
-   * [querySelector]
-   * method behaves the same as this method, so you should use it instead to
-   * save typing a few characters.
-   *
-   * [selectors] should be a string using CSS selector syntax.
-   *
-   *     var element1 = document.querySelector('.className');
-   *     var element2 = document.querySelector('#id');
-   *
-   * For details about CSS selector syntax, see the
-   * [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
-   */
-  @DomName('Document.querySelector')
-  @DocsEditable()
-  Element querySelector(String selectors) native;
-
-  @JSName('querySelectorAll')
-  @DomName('Document.querySelectorAll')
-  @DocsEditable()
-  @Creates('NodeList')
-  @Returns('NodeList')
-  List<Node> _querySelectorAll(String selectors) native;
-
-  /// Stream of `abort` events handled by this [Document].
-  @DomName('Document.onabort')
-  @DocsEditable()
-  Stream<Event> get onAbort => Element.abortEvent.forTarget(this);
-
-  /// Stream of `beforecopy` events handled by this [Document].
-  @DomName('Document.onbeforecopy')
-  @DocsEditable()
-  Stream<Event> get onBeforeCopy => Element.beforeCopyEvent.forTarget(this);
-
-  /// Stream of `beforecut` events handled by this [Document].
-  @DomName('Document.onbeforecut')
-  @DocsEditable()
-  Stream<Event> get onBeforeCut => Element.beforeCutEvent.forTarget(this);
-
-  /// Stream of `beforepaste` events handled by this [Document].
-  @DomName('Document.onbeforepaste')
-  @DocsEditable()
-  Stream<Event> get onBeforePaste => Element.beforePasteEvent.forTarget(this);
-
-  /// Stream of `blur` events handled by this [Document].
-  @DomName('Document.onblur')
-  @DocsEditable()
-  Stream<Event> get onBlur => Element.blurEvent.forTarget(this);
-
-  @DomName('Document.oncanplay')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onCanPlay => Element.canPlayEvent.forTarget(this);
-
-  @DomName('Document.oncanplaythrough')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onCanPlayThrough =>
-      Element.canPlayThroughEvent.forTarget(this);
-
-  /// Stream of `change` events handled by this [Document].
-  @DomName('Document.onchange')
-  @DocsEditable()
-  Stream<Event> get onChange => Element.changeEvent.forTarget(this);
-
-  /// Stream of `click` events handled by this [Document].
-  @DomName('Document.onclick')
-  @DocsEditable()
-  Stream<MouseEvent> get onClick => Element.clickEvent.forTarget(this);
-
-  /// Stream of `contextmenu` events handled by this [Document].
-  @DomName('Document.oncontextmenu')
-  @DocsEditable()
-  Stream<MouseEvent> get onContextMenu =>
-      Element.contextMenuEvent.forTarget(this);
-
-  /// Stream of `copy` events handled by this [Document].
-  @DomName('Document.oncopy')
-  @DocsEditable()
-  Stream<ClipboardEvent> get onCopy => Element.copyEvent.forTarget(this);
-
-  /// Stream of `cut` events handled by this [Document].
-  @DomName('Document.oncut')
-  @DocsEditable()
-  Stream<ClipboardEvent> get onCut => Element.cutEvent.forTarget(this);
-
-  /// Stream of `doubleclick` events handled by this [Document].
-  @DomName('Document.ondblclick')
-  @DocsEditable()
-  Stream<Event> get onDoubleClick => Element.doubleClickEvent.forTarget(this);
-
-  /// Stream of `drag` events handled by this [Document].
-  @DomName('Document.ondrag')
-  @DocsEditable()
-  Stream<MouseEvent> get onDrag => Element.dragEvent.forTarget(this);
-
-  /// Stream of `dragend` events handled by this [Document].
-  @DomName('Document.ondragend')
-  @DocsEditable()
-  Stream<MouseEvent> get onDragEnd => Element.dragEndEvent.forTarget(this);
-
-  /// Stream of `dragenter` events handled by this [Document].
-  @DomName('Document.ondragenter')
-  @DocsEditable()
-  Stream<MouseEvent> get onDragEnter => Element.dragEnterEvent.forTarget(this);
-
-  /// Stream of `dragleave` events handled by this [Document].
-  @DomName('Document.ondragleave')
-  @DocsEditable()
-  Stream<MouseEvent> get onDragLeave => Element.dragLeaveEvent.forTarget(this);
-
-  /// Stream of `dragover` events handled by this [Document].
-  @DomName('Document.ondragover')
-  @DocsEditable()
-  Stream<MouseEvent> get onDragOver => Element.dragOverEvent.forTarget(this);
-
-  /// Stream of `dragstart` events handled by this [Document].
-  @DomName('Document.ondragstart')
-  @DocsEditable()
-  Stream<MouseEvent> get onDragStart => Element.dragStartEvent.forTarget(this);
-
-  /// Stream of `drop` events handled by this [Document].
-  @DomName('Document.ondrop')
-  @DocsEditable()
-  Stream<MouseEvent> get onDrop => Element.dropEvent.forTarget(this);
-
-  @DomName('Document.ondurationchange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onDurationChange =>
-      Element.durationChangeEvent.forTarget(this);
-
-  @DomName('Document.onemptied')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onEmptied => Element.emptiedEvent.forTarget(this);
-
-  @DomName('Document.onended')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onEnded => Element.endedEvent.forTarget(this);
-
-  /// Stream of `error` events handled by this [Document].
-  @DomName('Document.onerror')
-  @DocsEditable()
-  Stream<Event> get onError => Element.errorEvent.forTarget(this);
-
-  /// Stream of `focus` events handled by this [Document].
-  @DomName('Document.onfocus')
-  @DocsEditable()
-  Stream<Event> get onFocus => Element.focusEvent.forTarget(this);
-
-  /// Stream of `input` events handled by this [Document].
-  @DomName('Document.oninput')
-  @DocsEditable()
-  Stream<Event> get onInput => Element.inputEvent.forTarget(this);
-
-  /// Stream of `invalid` events handled by this [Document].
-  @DomName('Document.oninvalid')
-  @DocsEditable()
-  Stream<Event> get onInvalid => Element.invalidEvent.forTarget(this);
-
-  /// Stream of `keydown` events handled by this [Document].
-  @DomName('Document.onkeydown')
-  @DocsEditable()
-  Stream<KeyboardEvent> get onKeyDown => Element.keyDownEvent.forTarget(this);
-
-  /// Stream of `keypress` events handled by this [Document].
-  @DomName('Document.onkeypress')
-  @DocsEditable()
-  Stream<KeyboardEvent> get onKeyPress => Element.keyPressEvent.forTarget(this);
-
-  /// Stream of `keyup` events handled by this [Document].
-  @DomName('Document.onkeyup')
-  @DocsEditable()
-  Stream<KeyboardEvent> get onKeyUp => Element.keyUpEvent.forTarget(this);
-
-  /// Stream of `load` events handled by this [Document].
-  @DomName('Document.onload')
-  @DocsEditable()
-  Stream<Event> get onLoad => Element.loadEvent.forTarget(this);
-
-  @DomName('Document.onloadeddata')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onLoadedData => Element.loadedDataEvent.forTarget(this);
-
-  @DomName('Document.onloadedmetadata')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onLoadedMetadata =>
-      Element.loadedMetadataEvent.forTarget(this);
-
-  /// Stream of `mousedown` events handled by this [Document].
-  @DomName('Document.onmousedown')
-  @DocsEditable()
-  Stream<MouseEvent> get onMouseDown => Element.mouseDownEvent.forTarget(this);
-
-  /// Stream of `mouseenter` events handled by this [Document].
-  @DomName('Document.onmouseenter')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<MouseEvent> get onMouseEnter =>
-      Element.mouseEnterEvent.forTarget(this);
-
-  /// Stream of `mouseleave` events handled by this [Document].
-  @DomName('Document.onmouseleave')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<MouseEvent> get onMouseLeave =>
-      Element.mouseLeaveEvent.forTarget(this);
-
-  /// Stream of `mousemove` events handled by this [Document].
-  @DomName('Document.onmousemove')
-  @DocsEditable()
-  Stream<MouseEvent> get onMouseMove => Element.mouseMoveEvent.forTarget(this);
-
-  /// Stream of `mouseout` events handled by this [Document].
-  @DomName('Document.onmouseout')
-  @DocsEditable()
-  Stream<MouseEvent> get onMouseOut => Element.mouseOutEvent.forTarget(this);
-
-  /// Stream of `mouseover` events handled by this [Document].
-  @DomName('Document.onmouseover')
-  @DocsEditable()
-  Stream<MouseEvent> get onMouseOver => Element.mouseOverEvent.forTarget(this);
-
-  /// Stream of `mouseup` events handled by this [Document].
-  @DomName('Document.onmouseup')
-  @DocsEditable()
-  Stream<MouseEvent> get onMouseUp => Element.mouseUpEvent.forTarget(this);
-
-  /// Stream of `mousewheel` events handled by this [Document].
-  @DomName('Document.onmousewheel')
-  @DocsEditable()
-  Stream<WheelEvent> get onMouseWheel =>
-      Element.mouseWheelEvent.forTarget(this);
-
-  /// Stream of `paste` events handled by this [Document].
-  @DomName('Document.onpaste')
-  @DocsEditable()
-  Stream<ClipboardEvent> get onPaste => Element.pasteEvent.forTarget(this);
-
-  @DomName('Document.onpause')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onPause => Element.pauseEvent.forTarget(this);
-
-  @DomName('Document.onplay')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onPlay => Element.playEvent.forTarget(this);
-
-  @DomName('Document.onplaying')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onPlaying => Element.playingEvent.forTarget(this);
-
-  @DomName('Document.onpointerlockchange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onPointerLockChange =>
-      pointerLockChangeEvent.forTarget(this);
-
-  @DomName('Document.onpointerlockerror')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onPointerLockError => pointerLockErrorEvent.forTarget(this);
-
-  @DomName('Document.onratechange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onRateChange => Element.rateChangeEvent.forTarget(this);
-
-  /// Stream of `readystatechange` events handled by this [Document].
-  @DomName('Document.onreadystatechange')
-  @DocsEditable()
-  Stream<Event> get onReadyStateChange => readyStateChangeEvent.forTarget(this);
-
-  /// Stream of `reset` events handled by this [Document].
-  @DomName('Document.onreset')
-  @DocsEditable()
-  Stream<Event> get onReset => Element.resetEvent.forTarget(this);
-
-  @DomName('Document.onresize')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onResize => Element.resizeEvent.forTarget(this);
-
-  /// Stream of `scroll` events handled by this [Document].
-  @DomName('Document.onscroll')
-  @DocsEditable()
-  Stream<Event> get onScroll => Element.scrollEvent.forTarget(this);
-
-  /// Stream of `search` events handled by this [Document].
-  @DomName('Document.onsearch')
-  @DocsEditable()
-  // http://www.w3.org/TR/html-markup/input.search.html
-  @Experimental()
-  Stream<Event> get onSearch => Element.searchEvent.forTarget(this);
-
-  /// Stream of `securitypolicyviolation` events handled by this [Document].
-  @DomName('Document.onsecuritypolicyviolation')
-  @DocsEditable()
-  // https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#widl-Document-onsecuritypolicyviolation
-  @Experimental()
-  Stream<SecurityPolicyViolationEvent> get onSecurityPolicyViolation =>
-      securityPolicyViolationEvent.forTarget(this);
-
-  @DomName('Document.onseeked')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onSeeked => Element.seekedEvent.forTarget(this);
-
-  @DomName('Document.onseeking')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onSeeking => Element.seekingEvent.forTarget(this);
-
-  /// Stream of `select` events handled by this [Document].
-  @DomName('Document.onselect')
-  @DocsEditable()
-  Stream<Event> get onSelect => Element.selectEvent.forTarget(this);
-
-  /// Stream of `selectionchange` events handled by this [Document].
-  @DomName('Document.onselectionchange')
-  @DocsEditable()
-  Stream<Event> get onSelectionChange => selectionChangeEvent.forTarget(this);
-
-  /// Stream of `selectstart` events handled by this [Document].
-  @DomName('Document.onselectstart')
-  @DocsEditable()
-  Stream<Event> get onSelectStart => Element.selectStartEvent.forTarget(this);
-
-  @DomName('Document.onstalled')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onStalled => Element.stalledEvent.forTarget(this);
-
-  /// Stream of `submit` events handled by this [Document].
-  @DomName('Document.onsubmit')
-  @DocsEditable()
-  Stream<Event> get onSubmit => Element.submitEvent.forTarget(this);
-
-  @DomName('Document.onsuspend')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onSuspend => Element.suspendEvent.forTarget(this);
-
-  @DomName('Document.ontimeupdate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onTimeUpdate => Element.timeUpdateEvent.forTarget(this);
-
-  /// Stream of `touchcancel` events handled by this [Document].
-  @DomName('Document.ontouchcancel')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  Stream<TouchEvent> get onTouchCancel =>
-      Element.touchCancelEvent.forTarget(this);
-
-  /// Stream of `touchend` events handled by this [Document].
-  @DomName('Document.ontouchend')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  Stream<TouchEvent> get onTouchEnd => Element.touchEndEvent.forTarget(this);
-
-  /// Stream of `touchmove` events handled by this [Document].
-  @DomName('Document.ontouchmove')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  Stream<TouchEvent> get onTouchMove => Element.touchMoveEvent.forTarget(this);
-
-  /// Stream of `touchstart` events handled by this [Document].
-  @DomName('Document.ontouchstart')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  Stream<TouchEvent> get onTouchStart =>
-      Element.touchStartEvent.forTarget(this);
-
-  @DomName('Document.onvolumechange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onVolumeChange => Element.volumeChangeEvent.forTarget(this);
-
-  @DomName('Document.onwaiting')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onWaiting => Element.waitingEvent.forTarget(this);
-
-  /// Stream of `fullscreenchange` events handled by this [Document].
-  @DomName('Document.onwebkitfullscreenchange')
-  @DocsEditable()
-  // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html
-  @Experimental()
-  Stream<Event> get onFullscreenChange =>
-      Element.fullscreenChangeEvent.forTarget(this);
-
-  /// Stream of `fullscreenerror` events handled by this [Document].
-  @DomName('Document.onwebkitfullscreenerror')
-  @DocsEditable()
-  // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html
-  @Experimental()
-  Stream<Event> get onFullscreenError =>
-      Element.fullscreenErrorEvent.forTarget(this);
-
-  /**
-   * Finds all descendant elements of this document that match the specified
-   * group of selectors.
-   *
-   * Unless your webpage contains multiple documents, the top-level
-   * [querySelectorAll]
-   * method behaves the same as this method, so you should use it instead to
-   * save typing a few characters.
-   *
-   * [selectors] should be a string using CSS selector syntax.
-   *
-   *     var items = document.querySelectorAll('.itemClassName');
-   *
-   * For details about CSS selector syntax, see the
-   * [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
-   */
-  ElementList<Element/*=T*/ > querySelectorAll/*<T extends Element>*/(
-          String selectors) =>
-      new _FrozenElementList/*<T>*/ ._wrap(_querySelectorAll(selectors));
-
-  /**
-   * Alias for [querySelector]. Note this function is deprecated because its
-   * semantics will be changing in the future.
-   */
-  @deprecated
-  @Experimental()
-  @DomName('Document.querySelector')
-  Element query(String relativeSelectors) => querySelector(relativeSelectors);
-
-  /**
-   * Alias for [querySelectorAll]. Note this function is deprecated because its
-   * semantics will be changing in the future.
-   */
-  @deprecated
-  @Experimental()
-  @DomName('Document.querySelectorAll')
-  ElementList<Element/*=T*/ > queryAll/*<T extends Element>*/(
-          String relativeSelectors) =>
-      querySelectorAll(relativeSelectors);
-
-  /// Checks if [registerElement] is supported on the current platform.
-  bool get supportsRegisterElement {
-    return JS('bool', '("registerElement" in #)', this);
-  }
-
-  /// *Deprecated*: use [supportsRegisterElement] instead.
-  @deprecated
-  bool get supportsRegister => supportsRegisterElement;
-
-  @DomName('Document.createElement')
-  Element createElement(String tagName, [String typeExtension]) {
-    return (typeExtension == null)
-        ? _createElement_2(tagName)
-        : _createElement(tagName, typeExtension);
-  }
-
-  // The two-argument version of this is automatically generated, but we need to
-  // omit the typeExtension if it's null on Firefox or we get an is="null" attribute.
-  @DomName('Document.createElement')
-  _createElement_2(String tagName) =>
-      JS('Element', '#.createElement(#)', this, tagName);
-
-  // The three-argument version of this is automatically generated, but we need to
-  // omit the typeExtension if it's null on Firefox or we get an is="null" attribute.
-  @DomName('Document.createElementNS')
-  _createElementNS_2(String namespaceURI, String qualifiedName) => JS(
-      'Element', '#.createElementNS(#, #)', this, namespaceURI, qualifiedName);
-
-  @DomName('Document.createElementNS')
-  @DocsEditable()
-  Element createElementNS(String namespaceURI, String qualifiedName,
-      [String typeExtension]) {
-    return (typeExtension == null)
-        ? _createElementNS_2(namespaceURI, qualifiedName)
-        : _createElementNS(namespaceURI, qualifiedName, typeExtension);
-  }
-
-  @DomName('Document.createNodeIterator')
-  NodeIterator _createNodeIterator(Node root,
-          [int whatToShow, NodeFilter filter]) =>
-      JS('NodeIterator', '#.createNodeIterator(#, #, #, false)', this, root,
-          whatToShow, filter);
-
-  @DomName('Document.createTreeWalker')
-  TreeWalker _createTreeWalker(Node root,
-          [int whatToShow, NodeFilter filter]) =>
-      JS('TreeWalker', '#.createTreeWalker(#, #, #, false)', this, root,
-          whatToShow, filter);
-
-  @DomName('Document.visibilityState')
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.FIREFOX)
-  @SupportedBrowser(SupportedBrowser.IE, '10')
-  @Experimental()
-  String get visibilityState => JS(
-      'String',
-      '(#.visibilityState || #.mozVisibilityState || #.msVisibilityState ||'
-      '#.webkitVisibilityState)',
-      this,
-      this,
-      this,
-      this);
-}
-// Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('DocumentFragment')
-@Native("DocumentFragment")
-class DocumentFragment extends Node
-    implements NonElementParentNode, ParentNode {
-  factory DocumentFragment() => document.createDocumentFragment();
-
-  factory DocumentFragment.html(String html,
-      {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
-    return document.body.createFragment(html,
-        validator: validator, treeSanitizer: treeSanitizer);
-  }
-
-  factory DocumentFragment.svg(String svgContent,
-      {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
-    return new svg.SvgSvgElement().createFragment(svgContent,
-        validator: validator, treeSanitizer: treeSanitizer);
-  }
-
-  HtmlCollection get _children =>
-      throw new UnimplementedError('Use _docChildren instead');
-
-  // Native field is used only by Dart code so does not lead to instantiation
-  // of native classes
-  @Creates('Null')
-  List<Element> _docChildren;
-
-  List<Element> get children {
-    if (_docChildren == null) {
-      _docChildren = new FilteredElementList(this);
-    }
-    return _docChildren;
-  }
-
-  set children(List<Element> value) {
-    // Copy list first since we don't want liveness during iteration.
-    var copy = value.toList();
-    var children = this.children;
-    children.clear();
-    children.addAll(copy);
-  }
-
-  /**
-   * Finds all descendant elements of this document fragment that match the
-   * specified group of selectors.
-   *
-   * [selectors] should be a string using CSS selector syntax.
-   *
-   *     var items = document.querySelectorAll('.itemClassName');
-   *
-   * For details about CSS selector syntax, see the
-   * [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
-   */
-  ElementList<Element/*=T*/ > querySelectorAll/*<T extends Element>*/(
-          String selectors) =>
-      new _FrozenElementList/*<T>*/ ._wrap(_querySelectorAll(selectors));
-
-  String get innerHtml {
-    final e = new DivElement();
-    e.append(this.clone(true));
-    return e.innerHtml;
-  }
-
-  set innerHtml(String value) {
-    this.setInnerHtml(value);
-  }
-
-  void setInnerHtml(String html,
-      {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
-    this.nodes.clear();
-    append(document.body.createFragment(html,
-        validator: validator, treeSanitizer: treeSanitizer));
-  }
-
-  /**
-   * Adds the specified text as a text node after the last child of this
-   * document fragment.
-   */
-  void appendText(String text) {
-    this.append(new Text(text));
-  }
-
-  /**
-   * Parses the specified text as HTML and adds the resulting node after the
-   * last child of this document fragment.
-   */
-  void appendHtml(String text,
-      {NodeValidator validator, NodeTreeSanitizer, treeSanitizer}) {
-    this.append(new DocumentFragment.html(text,
-        validator: validator, treeSanitizer: treeSanitizer));
-  }
-
-  /** 
-   * Alias for [querySelector]. Note this function is deprecated because its
-   * semantics will be changing in the future.
-   */
-  @deprecated
-  @Experimental()
-  @DomName('DocumentFragment.querySelector')
-  Element query(String relativeSelectors) {
-    return querySelector(relativeSelectors);
-  }
-
-  /** 
-   * Alias for [querySelectorAll]. Note this function is deprecated because its
-   * semantics will be changing in the future.
-   */
-  @deprecated
-  @Experimental()
-  @DomName('DocumentFragment.querySelectorAll')
-  ElementList<Element/*=T*/ > queryAll/*<T extends Element>*/(
-          String relativeSelectors) =>
-      querySelectorAll(relativeSelectors);
-  // To suppress missing implicit constructor warnings.
-  factory DocumentFragment._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  // From NonElementParentNode
-
-  @DomName('DocumentFragment.getElementById')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Element getElementById(String elementId) native;
-
-  // From ParentNode
-
-  @JSName('childElementCount')
-  @DomName('DocumentFragment.childElementCount')
-  @DocsEditable()
-  final int _childElementCount;
-
-  @JSName('firstElementChild')
-  @DomName('DocumentFragment.firstElementChild')
-  @DocsEditable()
-  final Element _firstElementChild;
-
-  @JSName('lastElementChild')
-  @DomName('DocumentFragment.lastElementChild')
-  @DocsEditable()
-  final Element _lastElementChild;
-
-  /**
-   * Finds the first descendant element of this document fragment that matches
-   * the specified group of selectors.
-   *
-   * [selectors] should be a string using CSS selector syntax.
-   *
-   *     var element1 = fragment.querySelector('.className');
-   *     var element2 = fragment.querySelector('#id');
-   *
-   * For details about CSS selector syntax, see the
-   * [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
-   */
-  @DomName('DocumentFragment.querySelector')
-  @DocsEditable()
-  Element querySelector(String selectors) native;
-
-  @JSName('querySelectorAll')
-  @DomName('DocumentFragment.querySelectorAll')
-  @DocsEditable()
-  @Creates('NodeList')
-  @Returns('NodeList')
-  List<Node> _querySelectorAll(String selectors) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DOMError')
-@Native("DOMError")
-class DomError extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory DomError._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('DOMError.DOMError')
-  @DocsEditable()
-  factory DomError(String name, [String message]) {
-    if (message != null) {
-      return DomError._create_1(name, message);
-    }
-    return DomError._create_2(name);
-  }
-  static DomError _create_1(name, message) =>
-      JS('DomError', 'new DOMError(#,#)', name, message);
-  static DomError _create_2(name) => JS('DomError', 'new DOMError(#)', name);
-
-  @DomName('DOMError.message')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String message;
-
-  @DomName('DOMError.name')
-  @DocsEditable()
-  final String name;
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('DOMException')
-@Unstable()
-@Native("DOMException")
-class DomException extends Interceptor {
-  static const String INDEX_SIZE = 'IndexSizeError';
-  static const String HIERARCHY_REQUEST = 'HierarchyRequestError';
-  static const String WRONG_DOCUMENT = 'WrongDocumentError';
-  static const String INVALID_CHARACTER = 'InvalidCharacterError';
-  static const String NO_MODIFICATION_ALLOWED = 'NoModificationAllowedError';
-  static const String NOT_FOUND = 'NotFoundError';
-  static const String NOT_SUPPORTED = 'NotSupportedError';
-  static const String INVALID_STATE = 'InvalidStateError';
-  static const String SYNTAX = 'SyntaxError';
-  static const String INVALID_MODIFICATION = 'InvalidModificationError';
-  static const String NAMESPACE = 'NamespaceError';
-  static const String INVALID_ACCESS = 'InvalidAccessError';
-  static const String TYPE_MISMATCH = 'TypeMismatchError';
-  static const String SECURITY = 'SecurityError';
-  static const String NETWORK = 'NetworkError';
-  static const String ABORT = 'AbortError';
-  static const String URL_MISMATCH = 'URLMismatchError';
-  static const String QUOTA_EXCEEDED = 'QuotaExceededError';
-  static const String TIMEOUT = 'TimeoutError';
-  static const String INVALID_NODE_TYPE = 'InvalidNodeTypeError';
-  static const String DATA_CLONE = 'DataCloneError';
-  // Is TypeError class derived from DomException but name is 'TypeError'
-  static const String TYPE_ERROR = 'TypeError';
-
-  String get name {
-    var errorName = JS('String', '#.name', this);
-    // Although Safari nightly has updated the name to SecurityError, Safari 5
-    // and 6 still return SECURITY_ERR.
-    if (Device.isWebKit && errorName == 'SECURITY_ERR') return 'SecurityError';
-    // Chrome release still uses old string, remove this line when Chrome stable
-    // also prints out SyntaxError.
-    if (Device.isWebKit && errorName == 'SYNTAX_ERR') return 'SyntaxError';
-    return errorName;
-  }
-
-  // To suppress missing implicit constructor warnings.
-  factory DomException._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('DOMException.message')
-  @DocsEditable()
-  final String message;
-
-  @DomName('DOMException.toString')
-  @DocsEditable()
-  String toString() => JS('String', 'String(#)', this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DOMImplementation')
-@Native("DOMImplementation")
-class DomImplementation extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory DomImplementation._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('DOMImplementation.createDocument')
-  @DocsEditable()
-  XmlDocument createDocument(
-      String namespaceURI, String qualifiedName, _DocumentType doctype) native;
-
-  @DomName('DOMImplementation.createDocumentType')
-  @DocsEditable()
-  _DocumentType createDocumentType(
-      String qualifiedName, String publicId, String systemId) native;
-
-  @JSName('createHTMLDocument')
-  @DomName('DOMImplementation.createHTMLDocument')
-  @DocsEditable()
-  HtmlDocument createHtmlDocument(String title) native;
-
-  @DomName('DOMImplementation.hasFeature')
-  @DocsEditable()
-  bool hasFeature() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Iterator')
-@Experimental() // untriaged
-@Native("Iterator")
-class DomIterator extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory DomIterator._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Iterator.next')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object next([Object value]) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DOMMatrix')
-@Experimental() // untriaged
-@Native("DOMMatrix")
-class DomMatrix extends DomMatrixReadOnly {
-  // To suppress missing implicit constructor warnings.
-  factory DomMatrix._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('DOMMatrix.DOMMatrix')
-  @DocsEditable()
-  factory DomMatrix([DomMatrixReadOnly other]) {
-    if (other == null) {
-      return DomMatrix._create_1();
-    }
-    if ((other is DomMatrixReadOnly)) {
-      return DomMatrix._create_2(other);
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-  static DomMatrix _create_1() => JS('DomMatrix', 'new DOMMatrix()');
-  static DomMatrix _create_2(other) =>
-      JS('DomMatrix', 'new DOMMatrix(#)', other);
-
-  // Shadowing definition.
-  num get a => JS("num", "#.a", this);
-
-  set a(num value) {
-    JS("void", "#.a = #", this, value);
-  }
-
-  // Shadowing definition.
-  num get b => JS("num", "#.b", this);
-
-  set b(num value) {
-    JS("void", "#.b = #", this, value);
-  }
-
-  // Shadowing definition.
-  num get c => JS("num", "#.c", this);
-
-  set c(num value) {
-    JS("void", "#.c = #", this, value);
-  }
-
-  // Shadowing definition.
-  num get d => JS("num", "#.d", this);
-
-  set d(num value) {
-    JS("void", "#.d = #", this, value);
-  }
-
-  // Shadowing definition.
-  num get e => JS("num", "#.e", this);
-
-  set e(num value) {
-    JS("void", "#.e = #", this, value);
-  }
-
-  // Shadowing definition.
-  num get f => JS("num", "#.f", this);
-
-  set f(num value) {
-    JS("void", "#.f = #", this, value);
-  }
-
-  // Shadowing definition.
-  num get m11 => JS("num", "#.m11", this);
-
-  set m11(num value) {
-    JS("void", "#.m11 = #", this, value);
-  }
-
-  // Shadowing definition.
-  num get m12 => JS("num", "#.m12", this);
-
-  set m12(num value) {
-    JS("void", "#.m12 = #", this, value);
-  }
-
-  // Shadowing definition.
-  num get m13 => JS("num", "#.m13", this);
-
-  set m13(num value) {
-    JS("void", "#.m13 = #", this, value);
-  }
-
-  // Shadowing definition.
-  num get m14 => JS("num", "#.m14", this);
-
-  set m14(num value) {
-    JS("void", "#.m14 = #", this, value);
-  }
-
-  // Shadowing definition.
-  num get m21 => JS("num", "#.m21", this);
-
-  set m21(num value) {
-    JS("void", "#.m21 = #", this, value);
-  }
-
-  // Shadowing definition.
-  num get m22 => JS("num", "#.m22", this);
-
-  set m22(num value) {
-    JS("void", "#.m22 = #", this, value);
-  }
-
-  // Shadowing definition.
-  num get m23 => JS("num", "#.m23", this);
-
-  set m23(num value) {
-    JS("void", "#.m23 = #", this, value);
-  }
-
-  // Shadowing definition.
-  num get m24 => JS("num", "#.m24", this);
-
-  set m24(num value) {
-    JS("void", "#.m24 = #", this, value);
-  }
-
-  // Shadowing definition.
-  num get m31 => JS("num", "#.m31", this);
-
-  set m31(num value) {
-    JS("void", "#.m31 = #", this, value);
-  }
-
-  // Shadowing definition.
-  num get m32 => JS("num", "#.m32", this);
-
-  set m32(num value) {
-    JS("void", "#.m32 = #", this, value);
-  }
-
-  // Shadowing definition.
-  num get m33 => JS("num", "#.m33", this);
-
-  set m33(num value) {
-    JS("void", "#.m33 = #", this, value);
-  }
-
-  // Shadowing definition.
-  num get m34 => JS("num", "#.m34", this);
-
-  set m34(num value) {
-    JS("void", "#.m34 = #", this, value);
-  }
-
-  // Shadowing definition.
-  num get m41 => JS("num", "#.m41", this);
-
-  set m41(num value) {
-    JS("void", "#.m41 = #", this, value);
-  }
-
-  // Shadowing definition.
-  num get m42 => JS("num", "#.m42", this);
-
-  set m42(num value) {
-    JS("void", "#.m42 = #", this, value);
-  }
-
-  // Shadowing definition.
-  num get m43 => JS("num", "#.m43", this);
-
-  set m43(num value) {
-    JS("void", "#.m43 = #", this, value);
-  }
-
-  // Shadowing definition.
-  num get m44 => JS("num", "#.m44", this);
-
-  set m44(num value) {
-    JS("void", "#.m44 = #", this, value);
-  }
-
-  @DomName('DOMMatrix.multiplySelf')
-  @DocsEditable()
-  @Experimental() // untriaged
-  DomMatrix multiplySelf(DomMatrix other) native;
-
-  @DomName('DOMMatrix.preMultiplySelf')
-  @DocsEditable()
-  @Experimental() // untriaged
-  DomMatrix preMultiplySelf(DomMatrix other) native;
-
-  @DomName('DOMMatrix.scale3dSelf')
-  @DocsEditable()
-  @Experimental() // untriaged
-  DomMatrix scale3dSelf(num scale, [num originX, num originY, num originZ])
-      native;
-
-  @DomName('DOMMatrix.scaleNonUniformSelf')
-  @DocsEditable()
-  @Experimental() // untriaged
-  DomMatrix scaleNonUniformSelf(num scaleX,
-      [num scaleY, num scaleZ, num originX, num originY, num originZ]) native;
-
-  @DomName('DOMMatrix.scaleSelf')
-  @DocsEditable()
-  @Experimental() // untriaged
-  DomMatrix scaleSelf(num scale, [num originX, num originY]) native;
-
-  @DomName('DOMMatrix.translateSelf')
-  @DocsEditable()
-  @Experimental() // untriaged
-  DomMatrix translateSelf(num tx, num ty, [num tz]) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DOMMatrixReadOnly')
-@Experimental() // untriaged
-@Native("DOMMatrixReadOnly")
-class DomMatrixReadOnly extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory DomMatrixReadOnly._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  num get a => JS("num", "#.a", this);
-
-  num get b => JS("num", "#.b", this);
-
-  num get c => JS("num", "#.c", this);
-
-  num get d => JS("num", "#.d", this);
-
-  num get e => JS("num", "#.e", this);
-
-  num get f => JS("num", "#.f", this);
-
-  bool get is2D => JS("bool", "#.is2D", this);
-
-  bool get isIdentity => JS("bool", "#.isIdentity", this);
-
-  num get m11 => JS("num", "#.m11", this);
-
-  num get m12 => JS("num", "#.m12", this);
-
-  num get m13 => JS("num", "#.m13", this);
-
-  num get m14 => JS("num", "#.m14", this);
-
-  num get m21 => JS("num", "#.m21", this);
-
-  num get m22 => JS("num", "#.m22", this);
-
-  num get m23 => JS("num", "#.m23", this);
-
-  num get m24 => JS("num", "#.m24", this);
-
-  num get m31 => JS("num", "#.m31", this);
-
-  num get m32 => JS("num", "#.m32", this);
-
-  num get m33 => JS("num", "#.m33", this);
-
-  num get m34 => JS("num", "#.m34", this);
-
-  num get m41 => JS("num", "#.m41", this);
-
-  num get m42 => JS("num", "#.m42", this);
-
-  num get m43 => JS("num", "#.m43", this);
-
-  num get m44 => JS("num", "#.m44", this);
-
-  @DomName('DOMMatrixReadOnly.multiply')
-  @DocsEditable()
-  @Experimental() // untriaged
-  DomMatrix multiply(DomMatrix other) native;
-
-  @DomName('DOMMatrixReadOnly.scale')
-  @DocsEditable()
-  @Experimental() // untriaged
-  DomMatrix scale(num scale, [num originX, num originY]) native;
-
-  @DomName('DOMMatrixReadOnly.scale3d')
-  @DocsEditable()
-  @Experimental() // untriaged
-  DomMatrix scale3d(num scale, [num originX, num originY, num originZ]) native;
-
-  @DomName('DOMMatrixReadOnly.scaleNonUniform')
-  @DocsEditable()
-  @Experimental() // untriaged
-  DomMatrix scaleNonUniform(num scaleX,
-      [num scaleY, num scaleZn, num originX, num originY, num originZ]) native;
-
-  @DomName('DOMMatrixReadOnly.toFloat32Array')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Float32List toFloat32Array() native;
-
-  @DomName('DOMMatrixReadOnly.toFloat64Array')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Float64List toFloat64Array() native;
-
-  @DomName('DOMMatrixReadOnly.translate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  DomMatrix translate(num tx, num ty, [num tz]) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DOMParser')
-@Native("DOMParser")
-class DomParser extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory DomParser._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('DOMParser.DOMParser')
-  @DocsEditable()
-  factory DomParser() {
-    return DomParser._create_1();
-  }
-  static DomParser _create_1() => JS('DomParser', 'new DOMParser()');
-
-  @DomName('DOMParser.parseFromString')
-  @DocsEditable()
-  Document parseFromString(String str, String type) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DOMPoint')
-@Experimental() // untriaged
-@Native("DOMPoint")
-class DomPoint extends DomPointReadOnly {
-  // To suppress missing implicit constructor warnings.
-  factory DomPoint._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('DOMPoint.DOMPoint')
-  @DocsEditable()
-  factory DomPoint([point_OR_x, num y, num z, num w]) {
-    if ((point_OR_x is Map) && y == null && z == null && w == null) {
-      var point_1 = convertDartToNative_Dictionary(point_OR_x);
-      return DomPoint._create_1(point_1);
-    }
-    if (point_OR_x == null && y == null && z == null && w == null) {
-      return DomPoint._create_2();
-    }
-    if ((point_OR_x is num || point_OR_x == null) &&
-        y == null &&
-        z == null &&
-        w == null) {
-      return DomPoint._create_3(point_OR_x);
-    }
-    if ((y is num || y == null) &&
-        (point_OR_x is num || point_OR_x == null) &&
-        z == null &&
-        w == null) {
-      return DomPoint._create_4(point_OR_x, y);
-    }
-    if ((z is num || z == null) &&
-        (y is num || y == null) &&
-        (point_OR_x is num || point_OR_x == null) &&
-        w == null) {
-      return DomPoint._create_5(point_OR_x, y, z);
-    }
-    if ((w is num || w == null) &&
-        (z is num || z == null) &&
-        (y is num || y == null) &&
-        (point_OR_x is num || point_OR_x == null)) {
-      return DomPoint._create_6(point_OR_x, y, z, w);
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-  static DomPoint _create_1(point_OR_x) =>
-      JS('DomPoint', 'new DOMPoint(#)', point_OR_x);
-  static DomPoint _create_2() => JS('DomPoint', 'new DOMPoint()');
-  static DomPoint _create_3(point_OR_x) =>
-      JS('DomPoint', 'new DOMPoint(#)', point_OR_x);
-  static DomPoint _create_4(point_OR_x, y) =>
-      JS('DomPoint', 'new DOMPoint(#,#)', point_OR_x, y);
-  static DomPoint _create_5(point_OR_x, y, z) =>
-      JS('DomPoint', 'new DOMPoint(#,#,#)', point_OR_x, y, z);
-  static DomPoint _create_6(point_OR_x, y, z, w) =>
-      JS('DomPoint', 'new DOMPoint(#,#,#,#)', point_OR_x, y, z, w);
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      JS('bool', '!!(window.DOMPoint) || !!(window.WebKitPoint)');
-
-  // Shadowing definition.
-  num get w => JS("num", "#.w", this);
-
-  set w(num value) {
-    JS("void", "#.w = #", this, value);
-  }
-
-  // Shadowing definition.
-  num get x => JS("num", "#.x", this);
-
-  set x(num value) {
-    JS("void", "#.x = #", this, value);
-  }
-
-  // Shadowing definition.
-  num get y => JS("num", "#.y", this);
-
-  set y(num value) {
-    JS("void", "#.y = #", this, value);
-  }
-
-  // Shadowing definition.
-  num get z => JS("num", "#.z", this);
-
-  set z(num value) {
-    JS("void", "#.z = #", this, value);
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DOMPointReadOnly')
-@Experimental() // untriaged
-@Native("DOMPointReadOnly")
-class DomPointReadOnly extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory DomPointReadOnly._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('DOMPointReadOnly.DOMPointReadOnly')
-  @DocsEditable()
-  factory DomPointReadOnly(num x, num y, num z, num w) {
-    return DomPointReadOnly._create_1(x, y, z, w);
-  }
-  static DomPointReadOnly _create_1(x, y, z, w) =>
-      JS('DomPointReadOnly', 'new DOMPointReadOnly(#,#,#,#)', x, y, z, w);
-
-  num get w => JS("num", "#.w", this);
-
-  num get x => JS("num", "#.x", this);
-
-  num get y => JS("num", "#.y", this);
-
-  num get z => JS("num", "#.z", this);
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DOMRectReadOnly')
-@Experimental() // untriaged
-@Native("DOMRectReadOnly")
-class DomRectReadOnly extends Interceptor implements Rectangle {
-  // NOTE! All code below should be common with RectangleBase.
-  String toString() {
-    return 'Rectangle ($left, $top) $width x $height';
-  }
-
-  bool operator ==(other) {
-    if (other is! Rectangle) return false;
-    return left == other.left &&
-        top == other.top &&
-        width == other.width &&
-        height == other.height;
-  }
-
-  int get hashCode => _JenkinsSmiHash.hash4(
-      left.hashCode, top.hashCode, width.hashCode, height.hashCode);
-
-  /**
-   * Computes the intersection of `this` and [other].
-   *
-   * The intersection of two axis-aligned rectangles, if any, is always another
-   * axis-aligned rectangle.
-   *
-   * Returns the intersection of this and `other`, or null if they don't
-   * intersect.
-   */
-  Rectangle intersection(Rectangle other) {
-    var x0 = max(left, other.left);
-    var x1 = min(left + width, other.left + other.width);
-
-    if (x0 <= x1) {
-      var y0 = max(top, other.top);
-      var y1 = min(top + height, other.top + other.height);
-
-      if (y0 <= y1) {
-        return new Rectangle(x0, y0, x1 - x0, y1 - y0);
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Returns true if `this` intersects [other].
-   */
-  bool intersects(Rectangle<num> other) {
-    return (left <= other.left + other.width &&
-        other.left <= left + width &&
-        top <= other.top + other.height &&
-        other.top <= top + height);
-  }
-
-  /**
-   * Returns a new rectangle which completely contains `this` and [other].
-   */
-  Rectangle boundingBox(Rectangle other) {
-    var right = max(this.left + this.width, other.left + other.width);
-    var bottom = max(this.top + this.height, other.top + other.height);
-
-    var left = min(this.left, other.left);
-    var top = min(this.top, other.top);
-
-    return new Rectangle(left, top, right - left, bottom - top);
-  }
-
-  /**
-   * Tests whether `this` entirely contains [another].
-   */
-  bool containsRectangle(Rectangle<num> another) {
-    return left <= another.left &&
-        left + width >= another.left + another.width &&
-        top <= another.top &&
-        top + height >= another.top + another.height;
-  }
-
-  /**
-   * Tests whether [another] is inside or along the edges of `this`.
-   */
-  bool containsPoint(Point<num> another) {
-    return another.x >= left &&
-        another.x <= left + width &&
-        another.y >= top &&
-        another.y <= top + height;
-  }
-
-  Point get topLeft => new Point/*<num>*/(this.left, this.top);
-  Point get topRight => new Point/*<num>*/(this.left + this.width, this.top);
-  Point get bottomRight =>
-      new Point/*<num>*/(this.left + this.width, this.top + this.height);
-  Point get bottomLeft => new Point/*<num>*/(this.left, this.top + this.height);
-
-  // To suppress missing implicit constructor warnings.
-  factory DomRectReadOnly._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('DOMRectReadOnly.DOMRectReadOnly')
-  @DocsEditable()
-  factory DomRectReadOnly(num x, num y, num width, num height) {
-    return DomRectReadOnly._create_1(x, y, width, height);
-  }
-  static DomRectReadOnly _create_1(x, y, width, height) => JS(
-      'DomRectReadOnly', 'new DOMRectReadOnly(#,#,#,#)', x, y, width, height);
-
-  num get bottom => JS("num", "#.bottom", this);
-
-  num get height => JS("num", "#.height", this);
-
-  num get left => JS("num", "#.left", this);
-
-  num get right => JS("num", "#.right", this);
-
-  num get top => JS("num", "#.top", this);
-
-  num get width => JS("num", "#.width", this);
-
-  num get x => JS("num", "#.x", this);
-
-  num get y => JS("num", "#.y", this);
-}
-
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DOMStringList')
-@Native("DOMStringList")
-class DomStringList extends Interceptor
-    with ListMixin<String>, ImmutableListMixin<String>
-    implements JavaScriptIndexingBehavior<String>, List<String> {
-  // To suppress missing implicit constructor warnings.
-  factory DomStringList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('DOMStringList.length')
-  @DocsEditable()
-  int get length => JS("int", "#.length", this);
-
-  String operator [](int index) {
-    if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
-      throw new RangeError.index(index, this);
-    return JS("String", "#[#]", this, index);
-  }
-
-  void operator []=(int index, String value) {
-    throw new UnsupportedError("Cannot assign element of immutable List.");
-  }
-  // -- start List<String> mixins.
-  // String is the element type.
-
-  set length(int value) {
-    throw new UnsupportedError("Cannot resize immutable List.");
-  }
-
-  String get first {
-    if (this.length > 0) {
-      return JS('String', '#[0]', this);
-    }
-    throw new StateError("No elements");
-  }
-
-  String get last {
-    int len = this.length;
-    if (len > 0) {
-      return JS('String', '#[#]', this, len - 1);
-    }
-    throw new StateError("No elements");
-  }
-
-  String get single {
-    int len = this.length;
-    if (len == 1) {
-      return JS('String', '#[0]', this);
-    }
-    if (len == 0) throw new StateError("No elements");
-    throw new StateError("More than one element");
-  }
-
-  String elementAt(int index) => this[index];
-  // -- end List<String> mixins.
-
-  @DomName('DOMStringList.__getter__')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String __getter__(int index) native;
-
-  @DomName('DOMStringList.item')
-  @DocsEditable()
-  String item(int index) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DOMStringMap')
-@Native("DOMStringMap")
-class DomStringMap extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory DomStringMap._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('DOMStringMap.__delete__')
-  @DocsEditable()
-  void __delete__(index_OR_name) native;
-
-  @DomName('DOMStringMap.__getter__')
-  @DocsEditable()
-  String __getter__(int index) native;
-
-  @DomName('DOMStringMap.__setter__')
-  @DocsEditable()
-  void __setter__(index_OR_name, String value) native;
-
-  @DomName('DOMStringMap.item')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String item(String name) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DOMTokenList')
-@Native("DOMTokenList")
-class DomTokenList extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory DomTokenList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('DOMTokenList.length')
-  @DocsEditable()
-  final int length;
-
-  @DomName('DOMTokenList.value')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String value;
-
-  @DomName('DOMTokenList.add')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void add(String tokens) native;
-
-  @DomName('DOMTokenList.contains')
-  @DocsEditable()
-  bool contains(String token) native;
-
-  @DomName('DOMTokenList.item')
-  @DocsEditable()
-  String item(int index) native;
-
-  @DomName('DOMTokenList.remove')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void remove(String tokens) native;
-
-  @DomName('DOMTokenList.supports')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool supports(String token) native;
-
-  @DomName('DOMTokenList.toggle')
-  @DocsEditable()
-  bool toggle(String token, [bool force]) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('EffectModel')
-@Experimental() // untriaged
-@Native("EffectModel")
-class EffectModel extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory EffectModel._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-class _ChildrenElementList extends ListBase<Element>
-    implements NodeListWrapper {
-  // Raw Element.
-  final Element _element;
-  final HtmlCollection _childElements;
-
-  _ChildrenElementList._wrap(Element element)
-      : _childElements = element._children,
-        _element = element;
-
-  bool contains(Object element) => _childElements.contains(element);
-
-  bool get isEmpty {
-    return _element._firstElementChild == null;
-  }
-
-  int get length {
-    return _childElements.length;
-  }
-
-  Element operator [](int index) {
-    return _childElements[index];
-  }
-
-  void operator []=(int index, Element value) {
-    _element._replaceChild(value, _childElements[index]);
-  }
-
-  set length(int newLength) {
-    // TODO(jacobr): remove children when length is reduced.
-    throw new UnsupportedError('Cannot resize element lists');
-  }
-
-  Element add(Element value) {
-    _element.append(value);
-    return value;
-  }
-
-  Iterator<Element> get iterator => toList().iterator;
-
-  void addAll(Iterable<Element> iterable) {
-    if (iterable is _ChildNodeListLazy) {
-      iterable = new List.from(iterable);
-    }
-
-    for (Element element in iterable) {
-      _element.append(element);
-    }
-  }
-
-  void sort([int compare(Element a, Element b)]) {
-    throw new UnsupportedError('Cannot sort element lists');
-  }
-
-  void shuffle([Random random]) {
-    throw new UnsupportedError('Cannot shuffle element lists');
-  }
-
-  void removeWhere(bool test(Element element)) {
-    _filter(test, false);
-  }
-
-  void retainWhere(bool test(Element element)) {
-    _filter(test, true);
-  }
-
-  void _filter(bool test(Element element), bool retainMatching) {
-    var removed;
-    if (retainMatching) {
-      removed = _element.children.where((e) => !test(e));
-    } else {
-      removed = _element.children.where(test);
-    }
-    for (var e in removed) e.remove();
-  }
-
-  void fillRange(int start, int end, [Element fillValue]) {
-    throw new UnimplementedError();
-  }
-
-  void replaceRange(int start, int end, Iterable<Element> iterable) {
-    throw new UnimplementedError();
-  }
-
-  void removeRange(int start, int end) {
-    throw new UnimplementedError();
-  }
-
-  void setRange(int start, int end, Iterable<Element> iterable,
-      [int skipCount = 0]) {
-    throw new UnimplementedError();
-  }
-
-  bool remove(Object object) {
-    if (object is Element) {
-      Element element = object;
-      if (identical(element.parentNode, _element)) {
-        _element._removeChild(element);
-        return true;
-      }
-    }
-    return false;
-  }
-
-  void insert(int index, Element element) {
-    if (index < 0 || index > length) {
-      throw new RangeError.range(index, 0, length);
-    }
-    if (index == length) {
-      _element.append(element);
-    } else {
-      _element.insertBefore(element, this[index]);
-    }
-  }
-
-  void setAll(int index, Iterable<Element> iterable) {
-    throw new UnimplementedError();
-  }
-
-  void clear() {
-    _element._clearChildren();
-  }
-
-  Element removeAt(int index) {
-    final result = this[index];
-    if (result != null) {
-      _element._removeChild(result);
-    }
-    return result;
-  }
-
-  Element removeLast() {
-    final result = this.last;
-    if (result != null) {
-      _element._removeChild(result);
-    }
-    return result;
-  }
-
-  Element get first {
-    Element result = _element._firstElementChild;
-    if (result == null) throw new StateError("No elements");
-    return result;
-  }
-
-  Element get last {
-    Element result = _element._lastElementChild;
-    if (result == null) throw new StateError("No elements");
-    return result;
-  }
-
-  Element get single {
-    if (length > 1) throw new StateError("More than one element");
-    return first;
-  }
-
-  List<Node> get rawList => _childElements;
-}
-
-/**
- * An immutable list containing HTML elements. This list contains some
- * additional methods when compared to regular lists for ease of CSS
- * manipulation on a group of elements.
- */
-abstract class ElementList<T extends Element> extends ListBase<T> {
-  /**
-   * The union of all CSS classes applied to the elements in this list.
-   *
-   * This set makes it easy to add, remove or toggle (add if not present, remove
-   * if present) the classes applied to a collection of elements.
-   *
-   *     htmlList.classes.add('selected');
-   *     htmlList.classes.toggle('isOnline');
-   *     htmlList.classes.remove('selected');
-   */
-  CssClassSet get classes;
-
-  /** Replace the classes with `value` for every element in this list. */
-  set classes(Iterable<String> value);
-
-  /**
-   * Access the union of all [CssStyleDeclaration]s that are associated with an
-   * [ElementList].
-   *
-   * Grouping the style objects all together provides easy editing of specific
-   * properties of a collection of elements. Setting a specific property value
-   * will set that property in all [Element]s in the [ElementList]. Getting a
-   * specific property value will return the value of the property of the first
-   * element in the [ElementList].
-   */
-  CssStyleDeclarationBase get style;
-
-  /**
-   * Access dimensions and position of the Elements in this list.
-   *
-   * Setting the height or width properties will set the height or width
-   * property for all elements in the list. This returns a rectangle with the
-   * dimensions actually available for content
-   * in this element, in pixels, regardless of this element's box-sizing
-   * property. Getting the height or width returns the height or width of the
-   * first Element in this list.
-   *
-   * Unlike [getBoundingClientRect], the dimensions of this rectangle
-   * will return the same numerical height if the element is hidden or not.
-   */
-  @Experimental()
-  CssRect get contentEdge;
-
-  /**
-   * Access dimensions and position of the first Element's content + padding box
-   * in this list.
-   *
-   * This returns a rectangle with the dimensions actually available for content
-   * in this element, in pixels, regardless of this element's box-sizing
-   * property. Unlike [getBoundingClientRect], the dimensions of this rectangle
-   * will return the same numerical height if the element is hidden or not. This
-   * can be used to retrieve jQuery's `innerHeight` value for an element. This
-   * is also a rectangle equalling the dimensions of clientHeight and
-   * clientWidth.
-   */
-  @Experimental()
-  CssRect get paddingEdge;
-
-  /**
-   * Access dimensions and position of the first Element's content + padding +
-   * border box in this list.
-   *
-   * This returns a rectangle with the dimensions actually available for content
-   * in this element, in pixels, regardless of this element's box-sizing
-   * property. Unlike [getBoundingClientRect], the dimensions of this rectangle
-   * will return the same numerical height if the element is hidden or not. This
-   * can be used to retrieve jQuery's `outerHeight` value for an element.
-   */
-  @Experimental()
-  CssRect get borderEdge;
-
-  /**
-   * Access dimensions and position of the first Element's content + padding +
-   * border + margin box in this list.
-   *
-   * This returns a rectangle with the dimensions actually available for content
-   * in this element, in pixels, regardless of this element's box-sizing
-   * property. Unlike [getBoundingClientRect], the dimensions of this rectangle
-   * will return the same numerical height if the element is hidden or not. This
-   * can be used to retrieve jQuery's `outerHeight` value for an element.
-   */
-  @Experimental()
-  CssRect get marginEdge;
-
-  /// Stream of `abort` events handled by this [Element].
-  @DomName('Element.onabort')
-  @DocsEditable()
-  ElementStream<Event> get onAbort;
-
-  /// Stream of `beforecopy` events handled by this [Element].
-  @DomName('Element.onbeforecopy')
-  @DocsEditable()
-  ElementStream<Event> get onBeforeCopy;
-
-  /// Stream of `beforecut` events handled by this [Element].
-  @DomName('Element.onbeforecut')
-  @DocsEditable()
-  ElementStream<Event> get onBeforeCut;
-
-  /// Stream of `beforepaste` events handled by this [Element].
-  @DomName('Element.onbeforepaste')
-  @DocsEditable()
-  ElementStream<Event> get onBeforePaste;
-
-  /// Stream of `blur` events handled by this [Element].
-  @DomName('Element.onblur')
-  @DocsEditable()
-  ElementStream<Event> get onBlur;
-
-  @DomName('Element.oncanplay')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onCanPlay;
-
-  @DomName('Element.oncanplaythrough')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onCanPlayThrough;
-
-  /// Stream of `change` events handled by this [Element].
-  @DomName('Element.onchange')
-  @DocsEditable()
-  ElementStream<Event> get onChange;
-
-  /// Stream of `click` events handled by this [Element].
-  @DomName('Element.onclick')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onClick;
-
-  /// Stream of `contextmenu` events handled by this [Element].
-  @DomName('Element.oncontextmenu')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onContextMenu;
-
-  /// Stream of `copy` events handled by this [Element].
-  @DomName('Element.oncopy')
-  @DocsEditable()
-  ElementStream<ClipboardEvent> get onCopy;
-
-  /// Stream of `cut` events handled by this [Element].
-  @DomName('Element.oncut')
-  @DocsEditable()
-  ElementStream<ClipboardEvent> get onCut;
-
-  /// Stream of `doubleclick` events handled by this [Element].
-  @DomName('Element.ondblclick')
-  @DocsEditable()
-  ElementStream<Event> get onDoubleClick;
-
-  /**
-   * A stream of `drag` events fired when this element currently being dragged.
-   *
-   * A `drag` event is added to this stream as soon as the drag begins.
-   * A `drag` event is also added to this stream at intervals while the drag
-   * operation is still ongoing.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.ondrag')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onDrag;
-
-  /**
-   * A stream of `dragend` events fired when this element completes a drag
-   * operation.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.ondragend')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onDragEnd;
-
-  /**
-   * A stream of `dragenter` events fired when a dragged object is first dragged
-   * over this element.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.ondragenter')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onDragEnter;
-
-  /**
-   * A stream of `dragleave` events fired when an object being dragged over this
-   * element leaves this element's target area.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.ondragleave')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onDragLeave;
-
-  /**
-   * A stream of `dragover` events fired when a dragged object is currently
-   * being dragged over this element.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.ondragover')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onDragOver;
-
-  /**
-   * A stream of `dragstart` events fired when this element starts being
-   * dragged.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.ondragstart')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onDragStart;
-
-  /**
-   * A stream of `drop` events fired when a dragged object is dropped on this
-   * element.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.ondrop')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onDrop;
-
-  @DomName('Element.ondurationchange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onDurationChange;
-
-  @DomName('Element.onemptied')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onEmptied;
-
-  @DomName('Element.onended')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onEnded;
-
-  /// Stream of `error` events handled by this [Element].
-  @DomName('Element.onerror')
-  @DocsEditable()
-  ElementStream<Event> get onError;
-
-  /// Stream of `focus` events handled by this [Element].
-  @DomName('Element.onfocus')
-  @DocsEditable()
-  ElementStream<Event> get onFocus;
-
-  /// Stream of `input` events handled by this [Element].
-  @DomName('Element.oninput')
-  @DocsEditable()
-  ElementStream<Event> get onInput;
-
-  /// Stream of `invalid` events handled by this [Element].
-  @DomName('Element.oninvalid')
-  @DocsEditable()
-  ElementStream<Event> get onInvalid;
-
-  /// Stream of `keydown` events handled by this [Element].
-  @DomName('Element.onkeydown')
-  @DocsEditable()
-  ElementStream<KeyboardEvent> get onKeyDown;
-
-  /// Stream of `keypress` events handled by this [Element].
-  @DomName('Element.onkeypress')
-  @DocsEditable()
-  ElementStream<KeyboardEvent> get onKeyPress;
-
-  /// Stream of `keyup` events handled by this [Element].
-  @DomName('Element.onkeyup')
-  @DocsEditable()
-  ElementStream<KeyboardEvent> get onKeyUp;
-
-  /// Stream of `load` events handled by this [Element].
-  @DomName('Element.onload')
-  @DocsEditable()
-  ElementStream<Event> get onLoad;
-
-  @DomName('Element.onloadeddata')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onLoadedData;
-
-  @DomName('Element.onloadedmetadata')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onLoadedMetadata;
-
-  /// Stream of `mousedown` events handled by this [Element].
-  @DomName('Element.onmousedown')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onMouseDown;
-
-  /// Stream of `mouseenter` events handled by this [Element].
-  @DomName('Element.onmouseenter')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<MouseEvent> get onMouseEnter;
-
-  /// Stream of `mouseleave` events handled by this [Element].
-  @DomName('Element.onmouseleave')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<MouseEvent> get onMouseLeave;
-
-  /// Stream of `mousemove` events handled by this [Element].
-  @DomName('Element.onmousemove')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onMouseMove;
-
-  /// Stream of `mouseout` events handled by this [Element].
-  @DomName('Element.onmouseout')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onMouseOut;
-
-  /// Stream of `mouseover` events handled by this [Element].
-  @DomName('Element.onmouseover')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onMouseOver;
-
-  /// Stream of `mouseup` events handled by this [Element].
-  @DomName('Element.onmouseup')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onMouseUp;
-
-  /// Stream of `mousewheel` events handled by this [Element].
-  @DomName('Element.onmousewheel')
-  @DocsEditable()
-  // http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents
-  @Experimental() // non-standard
-  ElementStream<WheelEvent> get onMouseWheel;
-
-  /// Stream of `paste` events handled by this [Element].
-  @DomName('Element.onpaste')
-  @DocsEditable()
-  ElementStream<ClipboardEvent> get onPaste;
-
-  @DomName('Element.onpause')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onPause;
-
-  @DomName('Element.onplay')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onPlay;
-
-  @DomName('Element.onplaying')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onPlaying;
-
-  @DomName('Element.onratechange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onRateChange;
-
-  /// Stream of `reset` events handled by this [Element].
-  @DomName('Element.onreset')
-  @DocsEditable()
-  ElementStream<Event> get onReset;
-
-  @DomName('Element.onresize')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onResize;
-
-  /// Stream of `scroll` events handled by this [Element].
-  @DomName('Element.onscroll')
-  @DocsEditable()
-  ElementStream<Event> get onScroll;
-
-  /// Stream of `search` events handled by this [Element].
-  @DomName('Element.onsearch')
-  @DocsEditable()
-  // http://www.w3.org/TR/html-markup/input.search.html
-  @Experimental()
-  ElementStream<Event> get onSearch;
-
-  @DomName('Element.onseeked')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onSeeked;
-
-  @DomName('Element.onseeking')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onSeeking;
-
-  /// Stream of `select` events handled by this [Element].
-  @DomName('Element.onselect')
-  @DocsEditable()
-  ElementStream<Event> get onSelect;
-
-  /// Stream of `selectstart` events handled by this [Element].
-  @DomName('Element.onselectstart')
-  @DocsEditable()
-  @Experimental() // nonstandard
-  ElementStream<Event> get onSelectStart;
-
-  @DomName('Element.onstalled')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onStalled;
-
-  /// Stream of `submit` events handled by this [Element].
-  @DomName('Element.onsubmit')
-  @DocsEditable()
-  ElementStream<Event> get onSubmit;
-
-  @DomName('Element.onsuspend')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onSuspend;
-
-  @DomName('Element.ontimeupdate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onTimeUpdate;
-
-  /// Stream of `touchcancel` events handled by this [Element].
-  @DomName('Element.ontouchcancel')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  ElementStream<TouchEvent> get onTouchCancel;
-
-  /// Stream of `touchend` events handled by this [Element].
-  @DomName('Element.ontouchend')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  ElementStream<TouchEvent> get onTouchEnd;
-
-  /// Stream of `touchenter` events handled by this [Element].
-  @DomName('Element.ontouchenter')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  ElementStream<TouchEvent> get onTouchEnter;
-
-  /// Stream of `touchleave` events handled by this [Element].
-  @DomName('Element.ontouchleave')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  ElementStream<TouchEvent> get onTouchLeave;
-
-  /// Stream of `touchmove` events handled by this [Element].
-  @DomName('Element.ontouchmove')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  ElementStream<TouchEvent> get onTouchMove;
-
-  /// Stream of `touchstart` events handled by this [Element].
-  @DomName('Element.ontouchstart')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  ElementStream<TouchEvent> get onTouchStart;
-
-  /// Stream of `transitionend` events handled by this [Element].
-  @DomName('Element.ontransitionend')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.FIREFOX)
-  @SupportedBrowser(SupportedBrowser.IE, '10')
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  ElementStream<TransitionEvent> get onTransitionEnd;
-
-  @DomName('Element.onvolumechange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onVolumeChange;
-
-  @DomName('Element.onwaiting')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onWaiting;
-
-  /// Stream of `fullscreenchange` events handled by this [Element].
-  @DomName('Element.onwebkitfullscreenchange')
-  @DocsEditable()
-  // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html
-  @Experimental()
-  ElementStream<Event> get onFullscreenChange;
-
-  /// Stream of `fullscreenerror` events handled by this [Element].
-  @DomName('Element.onwebkitfullscreenerror')
-  @DocsEditable()
-  // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html
-  @Experimental()
-  ElementStream<Event> get onFullscreenError;
-}
-
-// Wrapper over an immutable NodeList to make it implement ElementList.
-//
-// Clients are {`Document`, `DocumentFragment`}.`querySelectorAll` which are
-// declared to return `ElementList`.  This provides all the static analysis
-// benefit so there is no need for this class have a constrained type parameter.
-//
-class _FrozenElementList<E extends Element> extends ListBase<E>
-    implements ElementList<E>, NodeListWrapper {
-  final List<Node> _nodeList;
-
-  _FrozenElementList._wrap(this._nodeList);
-
-  int get length => _nodeList.length;
-
-  E operator [](int index) => _downcast/*<Node, E>*/(_nodeList[index]);
-
-  void operator []=(int index, E value) {
-    throw new UnsupportedError('Cannot modify list');
-  }
-
-  set length(int newLength) {
-    throw new UnsupportedError('Cannot modify list');
-  }
-
-  void sort([Comparator<E> compare]) {
-    throw new UnsupportedError('Cannot sort list');
-  }
-
-  void shuffle([Random random]) {
-    throw new UnsupportedError('Cannot shuffle list');
-  }
-
-  E get first => _downcast/*<Node, E>*/(_nodeList.first);
-
-  E get last => _downcast/*<Node, E>*/(_nodeList.last);
-
-  E get single => _downcast/*<Node, E>*/(_nodeList.single);
-
-  CssClassSet get classes => new _MultiElementCssClassSet(this);
-
-  CssStyleDeclarationBase get style => new _CssStyleDeclarationSet(this);
-
-  set classes(Iterable<String> value) {
-    // TODO(sra): This might be faster for Sets:
-    //
-    //     new _MultiElementCssClassSet(this).writeClasses(value)
-    //
-    // as the code below converts the Iterable[value] to a string multiple
-    // times.  Maybe compute the string and set className here.
-    forEach((e) => e.classes = value);
-  }
-
-  CssRect get contentEdge => new _ContentCssListRect(this);
-
-  CssRect get paddingEdge => this.first.paddingEdge;
-
-  CssRect get borderEdge => this.first.borderEdge;
-
-  CssRect get marginEdge => this.first.marginEdge;
-
-  List<Node> get rawList => _nodeList;
-
-  /// Stream of `abort` events handled by this [Element].
-  @DomName('Element.onabort')
-  @DocsEditable()
-  ElementStream<Event> get onAbort => Element.abortEvent._forElementList(this);
-
-  /// Stream of `beforecopy` events handled by this [Element].
-  @DomName('Element.onbeforecopy')
-  @DocsEditable()
-  ElementStream<Event> get onBeforeCopy =>
-      Element.beforeCopyEvent._forElementList(this);
-
-  /// Stream of `beforecut` events handled by this [Element].
-  @DomName('Element.onbeforecut')
-  @DocsEditable()
-  ElementStream<Event> get onBeforeCut =>
-      Element.beforeCutEvent._forElementList(this);
-
-  /// Stream of `beforepaste` events handled by this [Element].
-  @DomName('Element.onbeforepaste')
-  @DocsEditable()
-  ElementStream<Event> get onBeforePaste =>
-      Element.beforePasteEvent._forElementList(this);
-
-  /// Stream of `blur` events handled by this [Element].
-  @DomName('Element.onblur')
-  @DocsEditable()
-  ElementStream<Event> get onBlur => Element.blurEvent._forElementList(this);
-
-  @DomName('Element.oncanplay')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onCanPlay =>
-      Element.canPlayEvent._forElementList(this);
-
-  @DomName('Element.oncanplaythrough')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onCanPlayThrough =>
-      Element.canPlayThroughEvent._forElementList(this);
-
-  /// Stream of `change` events handled by this [Element].
-  @DomName('Element.onchange')
-  @DocsEditable()
-  ElementStream<Event> get onChange =>
-      Element.changeEvent._forElementList(this);
-
-  /// Stream of `click` events handled by this [Element].
-  @DomName('Element.onclick')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onClick =>
-      Element.clickEvent._forElementList(this);
-
-  /// Stream of `contextmenu` events handled by this [Element].
-  @DomName('Element.oncontextmenu')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onContextMenu =>
-      Element.contextMenuEvent._forElementList(this);
-
-  /// Stream of `copy` events handled by this [Element].
-  @DomName('Element.oncopy')
-  @DocsEditable()
-  ElementStream<ClipboardEvent> get onCopy =>
-      Element.copyEvent._forElementList(this);
-
-  /// Stream of `cut` events handled by this [Element].
-  @DomName('Element.oncut')
-  @DocsEditable()
-  ElementStream<ClipboardEvent> get onCut =>
-      Element.cutEvent._forElementList(this);
-
-  /// Stream of `doubleclick` events handled by this [Element].
-  @DomName('Element.ondblclick')
-  @DocsEditable()
-  ElementStream<Event> get onDoubleClick =>
-      Element.doubleClickEvent._forElementList(this);
-
-  /**
-   * A stream of `drag` events fired when this element currently being dragged.
-   *
-   * A `drag` event is added to this stream as soon as the drag begins.
-   * A `drag` event is also added to this stream at intervals while the drag
-   * operation is still ongoing.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.ondrag')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onDrag =>
-      Element.dragEvent._forElementList(this);
-
-  /**
-   * A stream of `dragend` events fired when this element completes a drag
-   * operation.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.ondragend')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onDragEnd =>
-      Element.dragEndEvent._forElementList(this);
-
-  /**
-   * A stream of `dragenter` events fired when a dragged object is first dragged
-   * over this element.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.ondragenter')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onDragEnter =>
-      Element.dragEnterEvent._forElementList(this);
-
-  /**
-   * A stream of `dragleave` events fired when an object being dragged over this
-   * element leaves this element's target area.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.ondragleave')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onDragLeave =>
-      Element.dragLeaveEvent._forElementList(this);
-
-  /**
-   * A stream of `dragover` events fired when a dragged object is currently
-   * being dragged over this element.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.ondragover')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onDragOver =>
-      Element.dragOverEvent._forElementList(this);
-
-  /**
-   * A stream of `dragstart` events fired when this element starts being
-   * dragged.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.ondragstart')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onDragStart =>
-      Element.dragStartEvent._forElementList(this);
-
-  /**
-   * A stream of `drop` events fired when a dragged object is dropped on this
-   * element.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.ondrop')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onDrop =>
-      Element.dropEvent._forElementList(this);
-
-  @DomName('Element.ondurationchange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onDurationChange =>
-      Element.durationChangeEvent._forElementList(this);
-
-  @DomName('Element.onemptied')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onEmptied =>
-      Element.emptiedEvent._forElementList(this);
-
-  @DomName('Element.onended')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onEnded => Element.endedEvent._forElementList(this);
-
-  /// Stream of `error` events handled by this [Element].
-  @DomName('Element.onerror')
-  @DocsEditable()
-  ElementStream<Event> get onError => Element.errorEvent._forElementList(this);
-
-  /// Stream of `focus` events handled by this [Element].
-  @DomName('Element.onfocus')
-  @DocsEditable()
-  ElementStream<Event> get onFocus => Element.focusEvent._forElementList(this);
-
-  /// Stream of `input` events handled by this [Element].
-  @DomName('Element.oninput')
-  @DocsEditable()
-  ElementStream<Event> get onInput => Element.inputEvent._forElementList(this);
-
-  /// Stream of `invalid` events handled by this [Element].
-  @DomName('Element.oninvalid')
-  @DocsEditable()
-  ElementStream<Event> get onInvalid =>
-      Element.invalidEvent._forElementList(this);
-
-  /// Stream of `keydown` events handled by this [Element].
-  @DomName('Element.onkeydown')
-  @DocsEditable()
-  ElementStream<KeyboardEvent> get onKeyDown =>
-      Element.keyDownEvent._forElementList(this);
-
-  /// Stream of `keypress` events handled by this [Element].
-  @DomName('Element.onkeypress')
-  @DocsEditable()
-  ElementStream<KeyboardEvent> get onKeyPress =>
-      Element.keyPressEvent._forElementList(this);
-
-  /// Stream of `keyup` events handled by this [Element].
-  @DomName('Element.onkeyup')
-  @DocsEditable()
-  ElementStream<KeyboardEvent> get onKeyUp =>
-      Element.keyUpEvent._forElementList(this);
-
-  /// Stream of `load` events handled by this [Element].
-  @DomName('Element.onload')
-  @DocsEditable()
-  ElementStream<Event> get onLoad => Element.loadEvent._forElementList(this);
-
-  @DomName('Element.onloadeddata')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onLoadedData =>
-      Element.loadedDataEvent._forElementList(this);
-
-  @DomName('Element.onloadedmetadata')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onLoadedMetadata =>
-      Element.loadedMetadataEvent._forElementList(this);
-
-  /// Stream of `mousedown` events handled by this [Element].
-  @DomName('Element.onmousedown')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onMouseDown =>
-      Element.mouseDownEvent._forElementList(this);
-
-  /// Stream of `mouseenter` events handled by this [Element].
-  @DomName('Element.onmouseenter')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<MouseEvent> get onMouseEnter =>
-      Element.mouseEnterEvent._forElementList(this);
-
-  /// Stream of `mouseleave` events handled by this [Element].
-  @DomName('Element.onmouseleave')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<MouseEvent> get onMouseLeave =>
-      Element.mouseLeaveEvent._forElementList(this);
-
-  /// Stream of `mousemove` events handled by this [Element].
-  @DomName('Element.onmousemove')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onMouseMove =>
-      Element.mouseMoveEvent._forElementList(this);
-
-  /// Stream of `mouseout` events handled by this [Element].
-  @DomName('Element.onmouseout')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onMouseOut =>
-      Element.mouseOutEvent._forElementList(this);
-
-  /// Stream of `mouseover` events handled by this [Element].
-  @DomName('Element.onmouseover')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onMouseOver =>
-      Element.mouseOverEvent._forElementList(this);
-
-  /// Stream of `mouseup` events handled by this [Element].
-  @DomName('Element.onmouseup')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onMouseUp =>
-      Element.mouseUpEvent._forElementList(this);
-
-  /// Stream of `mousewheel` events handled by this [Element].
-  @DomName('Element.onmousewheel')
-  @DocsEditable()
-  // http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents
-  @Experimental() // non-standard
-  ElementStream<WheelEvent> get onMouseWheel =>
-      Element.mouseWheelEvent._forElementList(this);
-
-  /// Stream of `paste` events handled by this [Element].
-  @DomName('Element.onpaste')
-  @DocsEditable()
-  ElementStream<ClipboardEvent> get onPaste =>
-      Element.pasteEvent._forElementList(this);
-
-  @DomName('Element.onpause')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onPause => Element.pauseEvent._forElementList(this);
-
-  @DomName('Element.onplay')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onPlay => Element.playEvent._forElementList(this);
-
-  @DomName('Element.onplaying')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onPlaying =>
-      Element.playingEvent._forElementList(this);
-
-  @DomName('Element.onratechange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onRateChange =>
-      Element.rateChangeEvent._forElementList(this);
-
-  /// Stream of `reset` events handled by this [Element].
-  @DomName('Element.onreset')
-  @DocsEditable()
-  ElementStream<Event> get onReset => Element.resetEvent._forElementList(this);
-
-  @DomName('Element.onresize')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onResize =>
-      Element.resizeEvent._forElementList(this);
-
-  /// Stream of `scroll` events handled by this [Element].
-  @DomName('Element.onscroll')
-  @DocsEditable()
-  ElementStream<Event> get onScroll =>
-      Element.scrollEvent._forElementList(this);
-
-  /// Stream of `search` events handled by this [Element].
-  @DomName('Element.onsearch')
-  @DocsEditable()
-  // http://www.w3.org/TR/html-markup/input.search.html
-  @Experimental()
-  ElementStream<Event> get onSearch =>
-      Element.searchEvent._forElementList(this);
-
-  @DomName('Element.onseeked')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onSeeked =>
-      Element.seekedEvent._forElementList(this);
-
-  @DomName('Element.onseeking')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onSeeking =>
-      Element.seekingEvent._forElementList(this);
-
-  /// Stream of `select` events handled by this [Element].
-  @DomName('Element.onselect')
-  @DocsEditable()
-  ElementStream<Event> get onSelect =>
-      Element.selectEvent._forElementList(this);
-
-  /// Stream of `selectstart` events handled by this [Element].
-  @DomName('Element.onselectstart')
-  @DocsEditable()
-  @Experimental() // nonstandard
-  ElementStream<Event> get onSelectStart =>
-      Element.selectStartEvent._forElementList(this);
-
-  @DomName('Element.onstalled')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onStalled =>
-      Element.stalledEvent._forElementList(this);
-
-  /// Stream of `submit` events handled by this [Element].
-  @DomName('Element.onsubmit')
-  @DocsEditable()
-  ElementStream<Event> get onSubmit =>
-      Element.submitEvent._forElementList(this);
-
-  @DomName('Element.onsuspend')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onSuspend =>
-      Element.suspendEvent._forElementList(this);
-
-  @DomName('Element.ontimeupdate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onTimeUpdate =>
-      Element.timeUpdateEvent._forElementList(this);
-
-  /// Stream of `touchcancel` events handled by this [Element].
-  @DomName('Element.ontouchcancel')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  ElementStream<TouchEvent> get onTouchCancel =>
-      Element.touchCancelEvent._forElementList(this);
-
-  /// Stream of `touchend` events handled by this [Element].
-  @DomName('Element.ontouchend')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  ElementStream<TouchEvent> get onTouchEnd =>
-      Element.touchEndEvent._forElementList(this);
-
-  /// Stream of `touchenter` events handled by this [Element].
-  @DomName('Element.ontouchenter')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  ElementStream<TouchEvent> get onTouchEnter =>
-      Element.touchEnterEvent._forElementList(this);
-
-  /// Stream of `touchleave` events handled by this [Element].
-  @DomName('Element.ontouchleave')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  ElementStream<TouchEvent> get onTouchLeave =>
-      Element.touchLeaveEvent._forElementList(this);
-
-  /// Stream of `touchmove` events handled by this [Element].
-  @DomName('Element.ontouchmove')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  ElementStream<TouchEvent> get onTouchMove =>
-      Element.touchMoveEvent._forElementList(this);
-
-  /// Stream of `touchstart` events handled by this [Element].
-  @DomName('Element.ontouchstart')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  ElementStream<TouchEvent> get onTouchStart =>
-      Element.touchStartEvent._forElementList(this);
-
-  /// Stream of `transitionend` events handled by this [Element].
-  @DomName('Element.ontransitionend')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.FIREFOX)
-  @SupportedBrowser(SupportedBrowser.IE, '10')
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  ElementStream<TransitionEvent> get onTransitionEnd =>
-      Element.transitionEndEvent._forElementList(this);
-
-  @DomName('Element.onvolumechange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onVolumeChange =>
-      Element.volumeChangeEvent._forElementList(this);
-
-  @DomName('Element.onwaiting')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onWaiting =>
-      Element.waitingEvent._forElementList(this);
-
-  /// Stream of `fullscreenchange` events handled by this [Element].
-  @DomName('Element.onwebkitfullscreenchange')
-  @DocsEditable()
-  // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html
-  @Experimental()
-  ElementStream<Event> get onFullscreenChange =>
-      Element.fullscreenChangeEvent._forElementList(this);
-
-  /// Stream of `fullscreenerror` events handled by this [Element].
-  @DomName('Element.onwebkitfullscreenerror')
-  @DocsEditable()
-  // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html
-  @Experimental()
-  ElementStream<Event> get onFullscreenError =>
-      Element.fullscreenErrorEvent._forElementList(this);
-}
-
-@DocsEditable()
-/**
- * An abstract class, which all HTML elements extend.
- */
-@DomName('Element')
-@Native("Element")
-class Element extends Node
-    implements
-        NonDocumentTypeChildNode,
-        GlobalEventHandlers,
-        ParentNode,
-        ChildNode {
-  /**
-   * Creates an HTML element from a valid fragment of HTML.
-   *
-   *     var element = new Element.html('<div class="foo">content</div>');
-   *
-   * The HTML fragment should contain only one single root element, any
-   * leading or trailing text nodes will be removed.
-   *
-   * The HTML fragment is parsed as if it occurred within the context of a
-   * `<body>` tag, this means that special elements such as `<caption>` which
-   * must be parsed within the scope of a `<table>` element will be dropped. Use
-   * [createFragment] to parse contextual HTML fragments.
-   *
-   * Unless a validator is provided this will perform the default validation
-   * and remove all scriptable elements and attributes.
-   *
-   * See also:
-   *
-   * * [NodeValidator]
-   *
-   */
-  factory Element.html(String html,
-      {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
-    var fragment = document.body.createFragment(html,
-        validator: validator, treeSanitizer: treeSanitizer);
-
-    return fragment.nodes.where((e) => e is Element).single;
-  }
-
-  /**
-   * Custom element creation constructor.
-   *
-   * This constructor is used by the DOM when a custom element has been
-   * created. It can only be invoked by subclasses of Element from
-   * that classes created constructor.
-   *
-   *     class CustomElement extends Element {
-   *       factory CustomElement() => new Element.tag('x-custom');
-   *
-   *       CustomElement.created() : super.created() {
-   *          // Perform any element initialization.
-   *       }
-   *     }
-   *     document.registerElement('x-custom', CustomElement);
-   */
-  Element.created() : super._created();
-
-  /**
-   * Creates the HTML element specified by the tag name.
-   *
-   * This is similar to [Document.createElement].
-   * [tag] should be a valid HTML tag name. If [tag] is an unknown tag then
-   * this will create an [UnknownElement].
-   *
-   *     var divElement = new Element.tag('div');
-   *     print(divElement is DivElement); // 'true'
-   *     var myElement = new Element.tag('unknownTag');
-   *     print(myElement is UnknownElement); // 'true'
-   *
-   * For standard elements it is better to use the element type constructors:
-   *
-   *     var element = new DivElement();
-   *
-   * It is better to use e.g `new CanvasElement()` because the type of the
-   * expression is `CanvasElement`, whereas the type of `Element.tag` is the
-   * less specific `Element`.
-   *
-   * See also:
-   *
-   * * [isTagSupported]
-   */
-  factory Element.tag(String tag, [String typeExtention]) =>
-      _ElementFactoryProvider.createElement_tag(tag, typeExtention);
-
-  /// Creates a new `<a>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('a')`.
-  factory Element.a() => new AnchorElement();
-
-  /// Creates a new `<article>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('article')`.
-  factory Element.article() => new Element.tag('article');
-
-  /// Creates a new `<aside>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('aside')`.
-  factory Element.aside() => new Element.tag('aside');
-
-  /// Creates a new `<audio>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('audio')`.
-  factory Element.audio() => new Element.tag('audio');
-
-  /// Creates a new `<br>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('br')`.
-  factory Element.br() => new BRElement();
-
-  /// Creates a new `<canvas>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('canvas')`.
-  factory Element.canvas() => new CanvasElement();
-
-  /// Creates a new `<div>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('div')`.
-  factory Element.div() => new DivElement();
-
-  /// Creates a new `<footer>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('footer')`.
-  factory Element.footer() => new Element.tag('footer');
-
-  /// Creates a new `<header>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('header')`.
-  factory Element.header() => new Element.tag('header');
-
-  /// Creates a new `<hr>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('hr')`.
-  factory Element.hr() => new Element.tag('hr');
-
-  /// Creates a new `<iframe>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('iframe')`.
-  factory Element.iframe() => new Element.tag('iframe');
-
-  /// Creates a new `<img>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('img')`.
-  factory Element.img() => new Element.tag('img');
-
-  /// Creates a new `<li>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('li')`.
-  factory Element.li() => new Element.tag('li');
-
-  /// Creates a new `<nav>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('nav')`.
-  factory Element.nav() => new Element.tag('nav');
-
-  /// Creates a new `<ol>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('ol')`.
-  factory Element.ol() => new Element.tag('ol');
-
-  /// Creates a new `<option>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('option')`.
-  factory Element.option() => new Element.tag('option');
-
-  /// Creates a new `<p>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('p')`.
-  factory Element.p() => new Element.tag('p');
-
-  /// Creates a new `<pre>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('pre')`.
-  factory Element.pre() => new Element.tag('pre');
-
-  /// Creates a new `<section>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('section')`.
-  factory Element.section() => new Element.tag('section');
-
-  /// Creates a new `<select>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('select')`.
-  factory Element.select() => new Element.tag('select');
-
-  /// Creates a new `<span>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('span')`.
-  factory Element.span() => new Element.tag('span');
-
-  /// Creates a new `<svg>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('svg')`.
-  factory Element.svg() => new Element.tag('svg');
-
-  /// Creates a new `<table>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('table')`.
-  factory Element.table() => new Element.tag('table');
-
-  /// Creates a new `<td>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('td')`.
-  factory Element.td() => new Element.tag('td');
-
-  /// Creates a new `<textarea>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('textarea')`.
-  factory Element.textarea() => new Element.tag('textarea');
-
-  /// Creates a new `<th>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('th')`.
-  factory Element.th() => new Element.tag('th');
-
-  /// Creates a new `<tr>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('tr')`.
-  factory Element.tr() => new Element.tag('tr');
-
-  /// Creates a new `<ul>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('ul')`.
-  factory Element.ul() => new Element.tag('ul');
-
-  /// Creates a new `<video>` element.
-  ///
-  /// This is equivalent to calling `new Element.tag('video')`.
-  factory Element.video() => new Element.tag('video');
-
-  /**
-   * All attributes on this element.
-   *
-   * Any modifications to the attribute map will automatically be applied to
-   * this element.
-   *
-   * This only includes attributes which are not in a namespace
-   * (such as 'xlink:href'), additional attributes can be accessed via
-   * [getNamespacedAttributes].
-   */
-  Map<String, String> get attributes => new _ElementAttributeMap(this);
-
-  set attributes(Map<String, String> value) {
-    Map<String, String> attributes = this.attributes;
-    attributes.clear();
-    for (String key in value.keys) {
-      attributes[key] = value[key];
-    }
-  }
-
-  /**
-   * List of the direct children of this element.
-   *
-   * This collection can be used to add and remove elements from the document.
-   *
-   *     var item = new DivElement();
-   *     item.text = 'Something';
-   *     document.body.children.add(item) // Item is now displayed on the page.
-   *     for (var element in document.body.children) {
-   *       element.style.background = 'red'; // Turns every child of body red.
-   *     }
-   */
-  List<Element> get children => new _ChildrenElementList._wrap(this);
-
-  set children(List<Element> value) {
-    // Copy list first since we don't want liveness during iteration.
-    var copy = value.toList();
-    var children = this.children;
-    children.clear();
-    children.addAll(copy);
-  }
-
-  /**
-   * Finds all descendent elements of this element that match the specified
-   * group of selectors.
-   *
-   * [selectors] should be a string using CSS selector syntax.
-   *
-   *     var items = element.querySelectorAll('.itemClassName');
-   *
-   * For details about CSS selector syntax, see the
-   * [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
-   */
-  @DomName('Element.querySelectorAll')
-  ElementList<Element/*=T*/ > querySelectorAll/*<T extends Element>*/(
-          String selectors) =>
-      new _FrozenElementList/*<T>*/ ._wrap(_querySelectorAll(selectors));
-
-  /**
-   * Alias for [querySelector]. Note this function is deprecated because its
-   * semantics will be changing in the future.
-   */
-  @deprecated
-  @DomName('Element.querySelector')
-  @Experimental()
-  Element query(String relativeSelectors) => querySelector(relativeSelectors);
-
-  /**
-   * Alias for [querySelectorAll]. Note this function is deprecated because its
-   * semantics will be changing in the future.
-   */
-  @deprecated
-  @DomName('Element.querySelectorAll')
-  @Experimental()
-  ElementList<Element/*=T*/ > queryAll/*<T extends Element>*/(
-          String relativeSelectors) =>
-      querySelectorAll(relativeSelectors);
-
-  /**
-   * The set of CSS classes applied to this element.
-   *
-   * This set makes it easy to add, remove or toggle the classes applied to
-   * this element.
-   *
-   *     element.classes.add('selected');
-   *     element.classes.toggle('isOnline');
-   *     element.classes.remove('selected');
-   */
-  CssClassSet get classes => new _ElementCssClassSet(this);
-
-  set classes(Iterable<String> value) {
-    // TODO(sra): Do this without reading the classes in clear() and addAll(),
-    // or writing the classes in clear().
-    CssClassSet classSet = classes;
-    classSet.clear();
-    classSet.addAll(value);
-  }
-
-  /**
-   * Allows access to all custom data attributes (data-*) set on this element.
-   *
-   * The keys for the map must follow these rules:
-   *
-   * * The name must not begin with 'xml'.
-   * * The name cannot contain a semi-colon (';').
-   * * The name cannot contain any capital letters.
-   *
-   * Any keys from markup will be converted to camel-cased keys in the map.
-   *
-   * For example, HTML specified as:
-   *
-   *     <div data-my-random-value='value'></div>
-   *
-   * Would be accessed in Dart as:
-   *
-   *     var value = element.dataset['myRandomValue'];
-   *
-   * See also:
-   *
-   * * [Custom data
-   *   attributes](http://dev.w3.org/html5/spec-preview/global-attributes.html#custom-data-attribute)
-   */
-  Map<String, String> get dataset => new _DataAttributeMap(attributes);
-
-  set dataset(Map<String, String> value) {
-    final data = this.dataset;
-    data.clear();
-    for (String key in value.keys) {
-      data[key] = value[key];
-    }
-  }
-
-  /**
-   * Gets a map for manipulating the attributes of a particular namespace.
-   *
-   * This is primarily useful for SVG attributes such as xref:link.
-   */
-  Map<String, String> getNamespacedAttributes(String namespace) {
-    return new _NamespacedAttributeMap(this, namespace);
-  }
-
-  /**
-   * The set of all CSS values applied to this element, including inherited
-   * and default values.
-   *
-   * The computedStyle contains values that are inherited from other
-   * sources, such as parent elements or stylesheets. This differs from the
-   * [style] property, which contains only the values specified directly on this
-   * element.
-   *
-   * PseudoElement can be values such as `::after`, `::before`, `::marker`,
-   * `::line-marker`.
-   *
-   * See also:
-   *
-   * * [CSS Inheritance and Cascade](http://docs.webplatform.org/wiki/tutorials/inheritance_and_cascade)
-   * * [Pseudo-elements](http://docs.webplatform.org/wiki/css/selectors/pseudo-elements)
-   */
-  CssStyleDeclaration getComputedStyle([String pseudoElement]) {
-    if (pseudoElement == null) {
-      pseudoElement = '';
-    }
-    // TODO(jacobr): last param should be null, see b/5045788
-    return window._getComputedStyle(this, pseudoElement);
-  }
-
-  /**
-   * Gets the position of this element relative to the client area of the page.
-   */
-  Rectangle get client =>
-      new Rectangle(clientLeft, clientTop, clientWidth, clientHeight);
-
-  /**
-   * Gets the offset of this element relative to its offsetParent.
-   */
-  Rectangle get offset =>
-      new Rectangle(offsetLeft, offsetTop, offsetWidth, offsetHeight);
-
-  /**
-   * Adds the specified text after the last child of this element.
-   */
-  void appendText(String text) {
-    this.append(new Text(text));
-  }
-
-  /**
-   * Parses the specified text as HTML and adds the resulting node after the
-   * last child of this element.
-   */
-  void appendHtml(String text,
-      {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
-    this.insertAdjacentHtml('beforeend', text,
-        validator: validator, treeSanitizer: treeSanitizer);
-  }
-
-  /**
-   * Checks to see if the tag name is supported by the current platform.
-   *
-   * The tag should be a valid HTML tag name.
-   */
-  static bool isTagSupported(String tag) {
-    var e = _ElementFactoryProvider.createElement_tag(tag, null);
-    return e is Element && !(e is UnknownElement);
-  }
-
-  /**
-   * Called by the DOM when this element has been inserted into the live
-   * document.
-   *
-   * More information can be found in the
-   * [Custom Elements](http://w3c.github.io/webcomponents/spec/custom/#dfn-attached-callback)
-   * draft specification.
-   */
-  @Experimental()
-  void attached() {
-    // For the deprecation period, call the old callback.
-    enteredView();
-  }
-
-  /**
-   * Called by the DOM when this element has been removed from the live
-   * document.
-   *
-   * More information can be found in the
-   * [Custom Elements](http://w3c.github.io/webcomponents/spec/custom/#dfn-detached-callback)
-   * draft specification.
-   */
-  @Experimental()
-  void detached() {
-    // For the deprecation period, call the old callback.
-    leftView();
-  }
-
-  /** *Deprecated*: override [attached] instead. */
-  @Experimental()
-  @deprecated
-  void enteredView() {}
-
-  /** *Deprecated*: override [detached] instead. */
-  @Experimental()
-  @deprecated
-  void leftView() {}
-
-  /**
-   * Creates a new AnimationEffect object whose target element is the object
-   * on which the method is called, and calls the play() method of the
-   * AnimationTimeline object of the document timeline of the node document
-   * of the element, passing the newly created AnimationEffect as the argument
-   * to the method. Returns an Animation for the effect.
-   *
-   * Examples
-   *
-   *     var animation = elem.animate([{"opacity": 75}, {"opacity": 0}], 200);
-   *
-   *     var animation = elem.animate([
-   *       {"transform": "translate(100px, -100%)"},
-   *       {"transform" : "translate(400px, 500px)"}
-   *     ], 1500);
-   *
-   * The [frames] parameter is an Iterable<Map>, where the
-   * map entries specify CSS animation effects. The
-   * [timing] paramter can be a double, representing the number of milliseconds
-   * for the transition, or a Map with fields corresponding to those
-   * of the [Timing] object.
-  **/
-  @Experimental()
-  @SupportedBrowser(SupportedBrowser.CHROME, '36')
-  Animation animate(Iterable<Map<String, dynamic>> frames, [timing]) {
-    if (frames is! Iterable || !(frames.every((x) => x is Map))) {
-      throw new ArgumentError("The frames parameter should be a List of Maps "
-          "with frame information");
-    }
-    var convertedFrames;
-    if (frames is Iterable) {
-      convertedFrames = frames.map(convertDartToNative_Dictionary).toList();
-    } else {
-      convertedFrames = frames;
-    }
-    var convertedTiming =
-        timing is Map ? convertDartToNative_Dictionary(timing) : timing;
-    return convertedTiming == null
-        ? _animate(convertedFrames)
-        : _animate(convertedFrames, convertedTiming);
-  }
-
-  @DomName('Element.animate')
-  @JSName('animate')
-  @Experimental() // untriaged
-  Animation _animate(Object effect, [timing]) native;
-  /**
-   * Called by the DOM whenever an attribute on this has been changed.
-   */
-  void attributeChanged(String name, String oldValue, String newValue) {}
-
-  // Hooks to support custom WebComponents.
-
-  @Creates('Null') // Set from Dart code; does not instantiate a native type.
-  Element _xtag;
-
-  /**
-   * Experimental support for [web components][wc]. This field stores a
-   * reference to the component implementation. It was inspired by Mozilla's
-   * [x-tags][] project. Please note: in the future it may be possible to
-   * `extend Element` from your class, in which case this field will be
-   * deprecated.
-   *
-   * If xtag has not been set, it will simply return `this` [Element].
-   *
-   * [wc]: http://dvcs.w3.org/hg/webcomponents/raw-file/tip/explainer/index.html
-   * [x-tags]: http://x-tags.org/
-   */
-  // Note: return type is `dynamic` for convenience to suppress warnings when
-  // members of the component are used. The actual type is a subtype of Element.
-  get xtag => _xtag != null ? _xtag : this;
-
-  set xtag(Element value) {
-    _xtag = value;
-  }
-
-  @DomName('Element.localName')
-  @DocsEditable()
-  @Returns('String')
-  // Non-null for Elements.
-  String get localName => JS('String', '#', _localName);
-
-  /**
-   * A URI that identifies the XML namespace of this element.
-   *
-   * `null` if no namespace URI is specified.
-   *
-   * ## Other resources
-   *
-   * * [Node.namespaceURI](http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-NodeNSname)
-   *   from W3C.
-   */
-  @DomName('Element.namespaceUri')
-  String get namespaceUri => _namespaceUri;
-
-  /**
-   * The string representation of this element.
-   *
-   * This is equivalent to reading the [localName] property.
-   */
-  String toString() => localName;
-
-  /**
-   * Scrolls this element into view.
-   *
-   * Only one of of the alignment options may be specified at a time.
-   *
-   * If no options are specified then this will attempt to scroll the minimum
-   * amount needed to bring the element into view.
-   *
-   * Note that alignCenter is currently only supported on WebKit platforms. If
-   * alignCenter is specified but not supported then this will fall back to
-   * alignTop.
-   *
-   * See also:
-   *
-   * * [scrollIntoView](http://docs.webplatform.org/wiki/dom/methods/scrollIntoView)
-   * * [scrollIntoViewIfNeeded](http://docs.webplatform.org/wiki/dom/methods/scrollIntoViewIfNeeded)
-   */
-  void scrollIntoView([ScrollAlignment alignment]) {
-    var hasScrollIntoViewIfNeeded = true;
-    hasScrollIntoViewIfNeeded =
-        JS('bool', '!!(#.scrollIntoViewIfNeeded)', this);
-    if (alignment == ScrollAlignment.TOP) {
-      this._scrollIntoView(true);
-    } else if (alignment == ScrollAlignment.BOTTOM) {
-      this._scrollIntoView(false);
-    } else if (hasScrollIntoViewIfNeeded) {
-      if (alignment == ScrollAlignment.CENTER) {
-        this._scrollIntoViewIfNeeded(true);
-      } else {
-        this._scrollIntoViewIfNeeded();
-      }
-    } else {
-      this._scrollIntoView();
-    }
-  }
-
-  /**
-   * Static factory designed to expose `mousewheel` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.mouseWheelEvent')
-  static const EventStreamProvider<WheelEvent> mouseWheelEvent =
-      const _CustomEventStreamProvider<WheelEvent>(
-          Element._determineMouseWheelEventType);
-
-  static String _determineMouseWheelEventType(EventTarget e) => 'wheel';
-
-  /**
-   * Static factory designed to expose `transitionend` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.transitionEndEvent')
-  static const EventStreamProvider<TransitionEvent> transitionEndEvent =
-      const _CustomEventStreamProvider<TransitionEvent>(
-          Element._determineTransitionEventType);
-
-  static String _determineTransitionEventType(EventTarget e) {
-    // Unfortunately the normal 'ontransitionend' style checks don't work here.
-    if (Device.isWebKit) {
-      return 'webkitTransitionEnd';
-    } else if (Device.isOpera) {
-      return 'oTransitionEnd';
-    }
-    return 'transitionend';
-  }
-
-  /**
-   * Inserts text into the DOM at the specified location.
-   *
-   * To see the possible values for [where], read the doc for
-   * [insertAdjacentHtml].
-   *
-   * See also:
-   *
-   * * [insertAdjacentHtml]
-   */
-  void insertAdjacentText(String where, String text) {
-    if (JS('bool', '!!#.insertAdjacentText', this)) {
-      _insertAdjacentText(where, text);
-    } else {
-      _insertAdjacentNode(where, new Text(text));
-    }
-  }
-
-  @JSName('insertAdjacentText')
-  void _insertAdjacentText(String where, String text) native;
-
-  /**
-   * Parses text as an HTML fragment and inserts it into the DOM at the
-   * specified location.
-   *
-   * The [where] parameter indicates where to insert the HTML fragment:
-   *
-   * * 'beforeBegin': Immediately before this element.
-   * * 'afterBegin': As the first child of this element.
-   * * 'beforeEnd': As the last child of this element.
-   * * 'afterEnd': Immediately after this element.
-   *
-   *     var html = '<div class="something">content</div>';
-   *     // Inserts as the first child
-   *     document.body.insertAdjacentHtml('afterBegin', html);
-   *     var createdElement = document.body.children[0];
-   *     print(createdElement.classes[0]); // Prints 'something'
-   *
-   * See also:
-   *
-   * * [insertAdjacentText]
-   * * [insertAdjacentElement]
-   */
-  void insertAdjacentHtml(String where, String html,
-      {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
-    if (treeSanitizer is _TrustedHtmlTreeSanitizer) {
-      _insertAdjacentHtml(where, html);
-    } else {
-      _insertAdjacentNode(
-          where,
-          createFragment(html,
-              validator: validator, treeSanitizer: treeSanitizer));
-    }
-  }
-
-  @JSName('insertAdjacentHTML')
-  void _insertAdjacentHtml(String where, String text) native;
-
-  /**
-   * Inserts [element] into the DOM at the specified location.
-   *
-   * To see the possible values for [where], read the doc for
-   * [insertAdjacentHtml].
-   *
-   * See also:
-   *
-   * * [insertAdjacentHtml]
-   */
-  Element insertAdjacentElement(String where, Element element) {
-    if (JS('bool', '!!#.insertAdjacentElement', this)) {
-      _insertAdjacentElement(where, element);
-    } else {
-      _insertAdjacentNode(where, element);
-    }
-    return element;
-  }
-
-  @JSName('insertAdjacentElement')
-  void _insertAdjacentElement(String where, Element element) native;
-
-  void _insertAdjacentNode(String where, Node node) {
-    switch (where.toLowerCase()) {
-      case 'beforebegin':
-        this.parentNode.insertBefore(node, this);
-        break;
-      case 'afterbegin':
-        var first = this.nodes.length > 0 ? this.nodes[0] : null;
-        this.insertBefore(node, first);
-        break;
-      case 'beforeend':
-        this.append(node);
-        break;
-      case 'afterend':
-        this.parentNode.insertBefore(node, this.nextNode);
-        break;
-      default:
-        throw new ArgumentError("Invalid position ${where}");
-    }
-  }
-
-  /**
-   * Checks if this element matches the CSS selectors.
-   */
-  @Experimental()
-  bool matches(String selectors) {
-    if (JS('bool', '!!#.matches', this)) {
-      return JS('bool', '#.matches(#)', this, selectors);
-    } else if (JS('bool', '!!#.webkitMatchesSelector', this)) {
-      return JS('bool', '#.webkitMatchesSelector(#)', this, selectors);
-    } else if (JS('bool', '!!#.mozMatchesSelector', this)) {
-      return JS('bool', '#.mozMatchesSelector(#)', this, selectors);
-    } else if (JS('bool', '!!#.msMatchesSelector', this)) {
-      return JS('bool', '#.msMatchesSelector(#)', this, selectors);
-    } else if (JS('bool', '!!#.oMatchesSelector', this)) {
-      return JS('bool', '#.oMatchesSelector(#)', this, selectors);
-    } else {
-      throw new UnsupportedError("Not supported on this platform");
-    }
-  }
-
-  /** Checks if this element or any of its parents match the CSS selectors. */
-  @Experimental()
-  bool matchesWithAncestors(String selectors) {
-    var elem = this;
-    do {
-      if (elem.matches(selectors)) return true;
-      elem = elem.parent;
-    } while (elem != null);
-    return false;
-  }
-
-  /**
-   * Creates a new shadow root for this shadow host.
-   *
-   * ## Other resources
-   *
-   * * [Shadow DOM 101](http://www.html5rocks.com/en/tutorials/webcomponents/shadowdom/)
-   *   from HTML5Rocks.
-   * * [Shadow DOM specification](http://www.w3.org/TR/shadow-dom/) from W3C.
-   */
-  @DomName('Element.createShadowRoot')
-  @SupportedBrowser(SupportedBrowser.CHROME, '25')
-  @Experimental()
-  ShadowRoot createShadowRoot() {
-    return JS(
-        'ShadowRoot',
-        '(#.createShadowRoot || #.webkitCreateShadowRoot).call(#)',
-        this,
-        this,
-        this);
-  }
-
-  /**
-   * The shadow root of this shadow host.
-   *
-   * ## Other resources
-   *
-   * * [Shadow DOM 101](http://www.html5rocks.com/en/tutorials/webcomponents/shadowdom/)
-   *   from HTML5Rocks.
-   * * [Shadow DOM specification](http://www.w3.org/TR/shadow-dom/)
-   *   from W3C.
-   */
-  @DomName('Element.shadowRoot')
-  @SupportedBrowser(SupportedBrowser.CHROME, '25')
-  @Experimental()
-  ShadowRoot get shadowRoot =>
-      JS('ShadowRoot|Null', '#.shadowRoot || #.webkitShadowRoot', this, this);
-
-  /**
-   * Access this element's content position.
-   *
-   * This returns a rectangle with the dimensions actually available for content
-   * in this element, in pixels, regardless of this element's box-sizing
-   * property. Unlike [getBoundingClientRect], the dimensions of this rectangle
-   * will return the same numerical height if the element is hidden or not.
-   *
-   * _Important_ _note_: use of this method _will_ perform CSS calculations that
-   * can trigger a browser reflow. Therefore, use of this property _during_ an
-   * animation frame is discouraged. See also:
-   * [Browser Reflow](https://developers.google.com/speed/articles/reflow)
-   */
-  @Experimental()
-  CssRect get contentEdge => new _ContentCssRect(this);
-
-  /**
-   * Access the dimensions and position of this element's content + padding box.
-   *
-   * This returns a rectangle with the dimensions actually available for content
-   * in this element, in pixels, regardless of this element's box-sizing
-   * property. Unlike [getBoundingClientRect], the dimensions of this rectangle
-   * will return the same numerical height if the element is hidden or not. This
-   * can be used to retrieve jQuery's
-   * [innerHeight](http://api.jquery.com/innerHeight/) value for an element.
-   * This is also a rectangle equalling the dimensions of clientHeight and
-   * clientWidth.
-   *
-   * _Important_ _note_: use of this method _will_ perform CSS calculations that
-   * can trigger a browser reflow. Therefore, use of this property _during_ an
-   * animation frame is discouraged. See also:
-   * [Browser Reflow](https://developers.google.com/speed/articles/reflow)
-   */
-  @Experimental()
-  CssRect get paddingEdge => new _PaddingCssRect(this);
-
-  /**
-   * Access the dimensions and position of this element's content + padding +
-   * border box.
-   *
-   * This returns a rectangle with the dimensions actually available for content
-   * in this element, in pixels, regardless of this element's box-sizing
-   * property. Unlike [getBoundingClientRect], the dimensions of this rectangle
-   * will return the same numerical height if the element is hidden or not. This
-   * can be used to retrieve jQuery's
-   * [outerHeight](http://api.jquery.com/outerHeight/) value for an element.
-   *
-   * _Important_ _note_: use of this method _will_ perform CSS calculations that
-   * can trigger a browser reflow. Therefore, use of this property _during_ an
-   * animation frame is discouraged. See also:
-   * [Browser Reflow](https://developers.google.com/speed/articles/reflow)
-   */
-  @Experimental()
-  CssRect get borderEdge => new _BorderCssRect(this);
-
-  /**
-   * Access the dimensions and position of this element's content + padding +
-   * border + margin box.
-   *
-   * This returns a rectangle with the dimensions actually available for content
-   * in this element, in pixels, regardless of this element's box-sizing
-   * property. Unlike [getBoundingClientRect], the dimensions of this rectangle
-   * will return the same numerical height if the element is hidden or not. This
-   * can be used to retrieve jQuery's
-   * [outerHeight](http://api.jquery.com/outerHeight/) value for an element.
-   *
-   * _Important_ _note_: use of this method will perform CSS calculations that
-   * can trigger a browser reflow. Therefore, use of this property _during_ an
-   * animation frame is discouraged. See also:
-   * [Browser Reflow](https://developers.google.com/speed/articles/reflow)
-   */
-  @Experimental()
-  CssRect get marginEdge => new _MarginCssRect(this);
-
-  /**
-   * Provides the coordinates of the element relative to the top of the
-   * document.
-   *
-   * This method is the Dart equivalent to jQuery's
-   * [offset](http://api.jquery.com/offset/) method.
-   */
-  @Experimental()
-  Point get documentOffset => offsetTo(document.documentElement);
-
-  /**
-   * Provides the offset of this element's [borderEdge] relative to the
-   * specified [parent].
-   *
-   * This is the Dart equivalent of jQuery's
-   * [position](http://api.jquery.com/position/) method. Unlike jQuery's
-   * position, however, [parent] can be any parent element of `this`,
-   * rather than only `this`'s immediate [offsetParent]. If the specified
-   * element is _not_ an offset parent or transitive offset parent to this
-   * element, an [ArgumentError] is thrown.
-   */
-  @Experimental()
-  Point offsetTo(Element parent) {
-    return Element._offsetToHelper(this, parent);
-  }
-
-  static Point _offsetToHelper(Element current, Element parent) {
-    // We're hopping from _offsetParent_ to offsetParent (not just parent), so
-    // offsetParent, "tops out" at BODY. But people could conceivably pass in
-    // the document.documentElement and I want it to return an absolute offset,
-    // so we have the special case checking for HTML.
-    bool sameAsParent = identical(current, parent);
-    bool foundAsParent = sameAsParent || parent.tagName == 'HTML';
-    if (current == null || sameAsParent) {
-      if (foundAsParent) return new Point/*<num>*/(0, 0);
-      throw new ArgumentError("Specified element is not a transitive offset "
-          "parent of this element.");
-    }
-    Element parentOffset = current.offsetParent;
-    Point p = Element._offsetToHelper(parentOffset, parent);
-    return new Point/*<num>*/(
-        p.x + current.offsetLeft, p.y + current.offsetTop);
-  }
-
-  static HtmlDocument _parseDocument;
-  static Range _parseRange;
-  static NodeValidatorBuilder _defaultValidator;
-  static _ValidatingTreeSanitizer _defaultSanitizer;
-
-  /**
-   * Create a DocumentFragment from the HTML fragment and ensure that it follows
-   * the sanitization rules specified by the validator or treeSanitizer.
-   *
-   * If the default validation behavior is too restrictive then a new
-   * NodeValidator should be created, either extending or wrapping a default
-   * validator and overriding the validation APIs.
-   *
-   * The treeSanitizer is used to walk the generated node tree and sanitize it.
-   * A custom treeSanitizer can also be provided to perform special validation
-   * rules but since the API is more complex to implement this is discouraged.
-   *
-   * The returned tree is guaranteed to only contain nodes and attributes which
-   * are allowed by the provided validator.
-   *
-   * See also:
-   *
-   * * [NodeValidator]
-   * * [NodeTreeSanitizer]
-   */
-  DocumentFragment createFragment(String html,
-      {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
-    if (treeSanitizer == null) {
-      if (validator == null) {
-        if (_defaultValidator == null) {
-          _defaultValidator = new NodeValidatorBuilder.common();
-        }
-        validator = _defaultValidator;
-      }
-      if (_defaultSanitizer == null) {
-        _defaultSanitizer = new _ValidatingTreeSanitizer(validator);
-      } else {
-        _defaultSanitizer.validator = validator;
-      }
-      treeSanitizer = _defaultSanitizer;
-    } else if (validator != null) {
-      throw new ArgumentError(
-          'validator can only be passed if treeSanitizer is null');
-    }
-
-    if (_parseDocument == null) {
-      _parseDocument = document.implementation.createHtmlDocument('');
-      _parseRange = _parseDocument.createRange();
-
-      // Workaround for Safari bug. Was also previously Chrome bug 229142
-      // - URIs are not resolved in new doc.
-      BaseElement base = _parseDocument.createElement('base');
-      base.href = document.baseUri;
-      _parseDocument.head.append(base);
-    }
-
-    // TODO(terry): Fixes Chromium 50 change no body after createHtmlDocument()
-    if (_parseDocument.body == null) {
-      _parseDocument.body = _parseDocument.createElement("body");
-    }
-
-    var contextElement;
-    if (this is BodyElement) {
-      contextElement = _parseDocument.body;
-    } else {
-      contextElement = _parseDocument.createElement(tagName);
-      _parseDocument.body.append(contextElement);
-    }
-    var fragment;
-    if (Range.supportsCreateContextualFragment &&
-        _canBeUsedToCreateContextualFragment) {
-      _parseRange.selectNodeContents(contextElement);
-      fragment = _parseRange.createContextualFragment(html);
-    } else {
-      contextElement._innerHtml = html;
-
-      fragment = _parseDocument.createDocumentFragment();
-      while (contextElement.firstChild != null) {
-        fragment.append(contextElement.firstChild);
-      }
-    }
-    if (contextElement != _parseDocument.body) {
-      contextElement.remove();
-    }
-
-    treeSanitizer.sanitizeTree(fragment);
-    // Copy the fragment over to the main document (fix for 14184)
-    document.adoptNode(fragment);
-
-    return fragment;
-  }
-
-  /** Test if createContextualFragment is supported for this element type */
-  bool get _canBeUsedToCreateContextualFragment =>
-      !_cannotBeUsedToCreateContextualFragment;
-
-  /** Test if createContextualFragment is NOT supported for this element type */
-  bool get _cannotBeUsedToCreateContextualFragment =>
-      _tagsForWhichCreateContextualFragmentIsNotSupported.contains(tagName);
-
-  /**
-   * A hard-coded list of the tag names for which createContextualFragment
-   * isn't supported.
-   */
-  static const _tagsForWhichCreateContextualFragmentIsNotSupported = const [
-    'HEAD',
-    'AREA',
-    'BASE',
-    'BASEFONT',
-    'BR',
-    'COL',
-    'COLGROUP',
-    'EMBED',
-    'FRAME',
-    'FRAMESET',
-    'HR',
-    'IMAGE',
-    'IMG',
-    'INPUT',
-    'ISINDEX',
-    'LINK',
-    'META',
-    'PARAM',
-    'SOURCE',
-    'STYLE',
-    'TITLE',
-    'WBR'
-  ];
-
-  /**
-   * Parses the HTML fragment and sets it as the contents of this element.
-   *
-   * This uses the default sanitization behavior to sanitize the HTML fragment,
-   * use [setInnerHtml] to override the default behavior.
-   */
-  set innerHtml(String html) {
-    this.setInnerHtml(html);
-  }
-
-  /**
-   * Parses the HTML fragment and sets it as the contents of this element.
-   * This ensures that the generated content follows the sanitization rules
-   * specified by the validator or treeSanitizer.
-   *
-   * If the default validation behavior is too restrictive then a new
-   * NodeValidator should be created, either extending or wrapping a default
-   * validator and overriding the validation APIs.
-   *
-   * The treeSanitizer is used to walk the generated node tree and sanitize it.
-   * A custom treeSanitizer can also be provided to perform special validation
-   * rules but since the API is more complex to implement this is discouraged.
-   *
-   * The resulting tree is guaranteed to only contain nodes and attributes which
-   * are allowed by the provided validator.
-   *
-   * See also:
-   *
-   * * [NodeValidator]
-   * * [NodeTreeSanitizer]
-   */
-  void setInnerHtml(String html,
-      {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
-    text = null;
-    if (treeSanitizer is _TrustedHtmlTreeSanitizer) {
-      _innerHtml = html;
-    } else {
-      append(createFragment(html,
-          validator: validator, treeSanitizer: treeSanitizer));
-    }
-  }
-
-  String get innerHtml => _innerHtml;
-
-  /**
-   * This is an ease-of-use accessor for event streams which should only be
-   * used when an explicit accessor is not available.
-   */
-  ElementEvents get on => new ElementEvents(this);
-
-  /**
-   * Verify if any of the attributes that we use in the sanitizer look unexpected,
-   * possibly indicating DOM clobbering attacks.
-   *
-   * Those attributes are: attributes, lastChild, children, previousNode and tagName.
-   */
-  static bool _hasCorruptedAttributes(Element element) {
-    return JS(
-        'bool',
-        r'''
-       (function(element) {
-         if (!(element.attributes instanceof NamedNodeMap)) {
-	   return true;
-	 }
-	 var childNodes = element.childNodes;
-	 if (element.lastChild &&
-	     element.lastChild !== childNodes[childNodes.length -1]) {
-	   return true;
-	 }
-	 if (element.children) { // On Safari, children can apparently be null.
-  	   if (!((element.children instanceof HTMLCollection) ||
-               (element.children instanceof NodeList))) {
-	     return true;
-	   }
-	 }
-         var length = 0;
-         if (element.children) {
-           length = element.children.length;
-         }
-         for (var i = 0; i < length; i++) {
-           var child = element.children[i];
-           // On IE it seems like we sometimes don't see the clobbered attribute,
-           // perhaps as a result of an over-optimization. Also use another route
-           // to check of attributes, children, or lastChild are clobbered. It may
-           // seem silly to check children as we rely on children to do this iteration,
-           // but it seems possible that the access to children might see the real thing,
-           // allowing us to check for clobbering that may show up in other accesses.
-           if (child["id"] == 'attributes' || child["name"] == 'attributes' ||
-               child["id"] == 'lastChild'  || child["name"] == 'lastChild' ||
-               child["id"] == 'children' || child["name"] == 'children') {
-             return true;
-           }
-         }
-	 return false;
-          })(#)''',
-        element);
-  }
-
-  /// A secondary check for corruption, needed on IE
-  static bool _hasCorruptedAttributesAdditionalCheck(Element element) {
-    return JS('bool', r'!(#.attributes instanceof NamedNodeMap)', element);
-  }
-
-  static String _safeTagName(element) {
-    String result = 'element tag unavailable';
-    try {
-      if (element.tagName is String) {
-        result = element.tagName;
-      }
-    } catch (e) {}
-    return result;
-  }
-
-  @DomName('Element.offsetParent')
-  @DocsEditable()
-  final Element offsetParent;
-
-  @DomName('Element.offsetHeight')
-  @DocsEditable()
-  int get offsetHeight => JS('num', '#.offsetHeight', this).round();
-
-  @DomName('Element.offsetLeft')
-  @DocsEditable()
-  int get offsetLeft => JS('num', '#.offsetLeft', this).round();
-
-  @DomName('Element.offsetTop')
-  @DocsEditable()
-  int get offsetTop => JS('num', '#.offsetTop', this).round();
-
-  @DomName('Element.offsetWidth')
-  @DocsEditable()
-  int get offsetWidth => JS('num', '#.offsetWidth', this).round();
-
-  @DomName('Element.scrollHeight')
-  @DocsEditable()
-  int get scrollHeight => JS('num', '#.scrollHeight', this).round();
-
-  @DomName('Element.scrollLeft')
-  @DocsEditable()
-  int get scrollLeft => JS('num', '#.scrollLeft', this).round();
-
-  @DomName('Element.scrollLeft')
-  @DocsEditable()
-  set scrollLeft(int value) {
-    JS("void", "#.scrollLeft = #", this, value.round());
-  }
-
-  @DomName('Element.scrollTop')
-  @DocsEditable()
-  int get scrollTop => JS('num', '#.scrollTop', this).round();
-
-  @DomName('Element.scrollTop')
-  @DocsEditable()
-  set scrollTop(int value) {
-    JS("void", "#.scrollTop = #", this, value.round());
-  }
-
-  @DomName('Element.scrollWidth')
-  @DocsEditable()
-  int get scrollWidth => JS('num', '#.scrollWidth', this).round();
-
-  // To suppress missing implicit constructor warnings.
-  factory Element._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `abort` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.abortEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> abortEvent =
-      const EventStreamProvider<Event>('abort');
-
-  /**
-   * Static factory designed to expose `beforecopy` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.beforecopyEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> beforeCopyEvent =
-      const EventStreamProvider<Event>('beforecopy');
-
-  /**
-   * Static factory designed to expose `beforecut` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.beforecutEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> beforeCutEvent =
-      const EventStreamProvider<Event>('beforecut');
-
-  /**
-   * Static factory designed to expose `beforepaste` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.beforepasteEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> beforePasteEvent =
-      const EventStreamProvider<Event>('beforepaste');
-
-  /**
-   * Static factory designed to expose `blur` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.blurEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> blurEvent =
-      const EventStreamProvider<Event>('blur');
-
-  @DomName('Element.canplayEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> canPlayEvent =
-      const EventStreamProvider<Event>('canplay');
-
-  @DomName('Element.canplaythroughEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> canPlayThroughEvent =
-      const EventStreamProvider<Event>('canplaythrough');
-
-  /**
-   * Static factory designed to expose `change` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.changeEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> changeEvent =
-      const EventStreamProvider<Event>('change');
-
-  /**
-   * Static factory designed to expose `click` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.clickEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MouseEvent> clickEvent =
-      const EventStreamProvider<MouseEvent>('click');
-
-  /**
-   * Static factory designed to expose `contextmenu` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.contextmenuEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MouseEvent> contextMenuEvent =
-      const EventStreamProvider<MouseEvent>('contextmenu');
-
-  /**
-   * Static factory designed to expose `copy` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.copyEvent')
-  @DocsEditable()
-  static const EventStreamProvider<ClipboardEvent> copyEvent =
-      const EventStreamProvider<ClipboardEvent>('copy');
-
-  /**
-   * Static factory designed to expose `cut` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.cutEvent')
-  @DocsEditable()
-  static const EventStreamProvider<ClipboardEvent> cutEvent =
-      const EventStreamProvider<ClipboardEvent>('cut');
-
-  /**
-   * Static factory designed to expose `doubleclick` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.dblclickEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> doubleClickEvent =
-      const EventStreamProvider<Event>('dblclick');
-
-  /**
-   * A stream of `drag` events fired when an element is currently being dragged.
-   *
-   * A `drag` event is added to this stream as soon as the drag begins.
-   * A `drag` event is also added to this stream at intervals while the drag
-   * operation is still ongoing.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.dragEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MouseEvent> dragEvent =
-      const EventStreamProvider<MouseEvent>('drag');
-
-  /**
-   * A stream of `dragend` events fired when an element completes a drag
-   * operation.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.dragendEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MouseEvent> dragEndEvent =
-      const EventStreamProvider<MouseEvent>('dragend');
-
-  /**
-   * A stream of `dragenter` events fired when a dragged object is first dragged
-   * over an element.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.dragenterEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MouseEvent> dragEnterEvent =
-      const EventStreamProvider<MouseEvent>('dragenter');
-
-  /**
-   * A stream of `dragleave` events fired when an object being dragged over an
-   * element leaves the element's target area.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.dragleaveEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MouseEvent> dragLeaveEvent =
-      const EventStreamProvider<MouseEvent>('dragleave');
-
-  /**
-   * A stream of `dragover` events fired when a dragged object is currently
-   * being dragged over an element.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.dragoverEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MouseEvent> dragOverEvent =
-      const EventStreamProvider<MouseEvent>('dragover');
-
-  /**
-   * A stream of `dragstart` events for a dragged element whose drag has begun.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.dragstartEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MouseEvent> dragStartEvent =
-      const EventStreamProvider<MouseEvent>('dragstart');
-
-  /**
-   * A stream of `drop` events fired when a dragged object is dropped on an
-   * element.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.dropEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MouseEvent> dropEvent =
-      const EventStreamProvider<MouseEvent>('drop');
-
-  @DomName('Element.durationchangeEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> durationChangeEvent =
-      const EventStreamProvider<Event>('durationchange');
-
-  @DomName('Element.emptiedEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> emptiedEvent =
-      const EventStreamProvider<Event>('emptied');
-
-  @DomName('Element.endedEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> endedEvent =
-      const EventStreamProvider<Event>('ended');
-
-  /**
-   * Static factory designed to expose `error` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.errorEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> errorEvent =
-      const EventStreamProvider<Event>('error');
-
-  /**
-   * Static factory designed to expose `focus` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.focusEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> focusEvent =
-      const EventStreamProvider<Event>('focus');
-
-  /**
-   * Static factory designed to expose `input` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.inputEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> inputEvent =
-      const EventStreamProvider<Event>('input');
-
-  /**
-   * Static factory designed to expose `invalid` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.invalidEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> invalidEvent =
-      const EventStreamProvider<Event>('invalid');
-
-  /**
-   * Static factory designed to expose `keydown` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.keydownEvent')
-  @DocsEditable()
-  static const EventStreamProvider<KeyboardEvent> keyDownEvent =
-      const EventStreamProvider<KeyboardEvent>('keydown');
-
-  /**
-   * Static factory designed to expose `keypress` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.keypressEvent')
-  @DocsEditable()
-  static const EventStreamProvider<KeyboardEvent> keyPressEvent =
-      const EventStreamProvider<KeyboardEvent>('keypress');
-
-  /**
-   * Static factory designed to expose `keyup` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.keyupEvent')
-  @DocsEditable()
-  static const EventStreamProvider<KeyboardEvent> keyUpEvent =
-      const EventStreamProvider<KeyboardEvent>('keyup');
-
-  /**
-   * Static factory designed to expose `load` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.loadEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> loadEvent =
-      const EventStreamProvider<Event>('load');
-
-  @DomName('Element.loadeddataEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> loadedDataEvent =
-      const EventStreamProvider<Event>('loadeddata');
-
-  @DomName('Element.loadedmetadataEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> loadedMetadataEvent =
-      const EventStreamProvider<Event>('loadedmetadata');
-
-  /**
-   * Static factory designed to expose `mousedown` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.mousedownEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MouseEvent> mouseDownEvent =
-      const EventStreamProvider<MouseEvent>('mousedown');
-
-  /**
-   * Static factory designed to expose `mouseenter` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.mouseenterEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> mouseEnterEvent =
-      const EventStreamProvider<MouseEvent>('mouseenter');
-
-  /**
-   * Static factory designed to expose `mouseleave` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.mouseleaveEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> mouseLeaveEvent =
-      const EventStreamProvider<MouseEvent>('mouseleave');
-
-  /**
-   * Static factory designed to expose `mousemove` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.mousemoveEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MouseEvent> mouseMoveEvent =
-      const EventStreamProvider<MouseEvent>('mousemove');
-
-  /**
-   * Static factory designed to expose `mouseout` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.mouseoutEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MouseEvent> mouseOutEvent =
-      const EventStreamProvider<MouseEvent>('mouseout');
-
-  /**
-   * Static factory designed to expose `mouseover` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.mouseoverEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MouseEvent> mouseOverEvent =
-      const EventStreamProvider<MouseEvent>('mouseover');
-
-  /**
-   * Static factory designed to expose `mouseup` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.mouseupEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MouseEvent> mouseUpEvent =
-      const EventStreamProvider<MouseEvent>('mouseup');
-
-  /**
-   * Static factory designed to expose `paste` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.pasteEvent')
-  @DocsEditable()
-  static const EventStreamProvider<ClipboardEvent> pasteEvent =
-      const EventStreamProvider<ClipboardEvent>('paste');
-
-  @DomName('Element.pauseEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> pauseEvent =
-      const EventStreamProvider<Event>('pause');
-
-  @DomName('Element.playEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> playEvent =
-      const EventStreamProvider<Event>('play');
-
-  @DomName('Element.playingEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> playingEvent =
-      const EventStreamProvider<Event>('playing');
-
-  @DomName('Element.ratechangeEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> rateChangeEvent =
-      const EventStreamProvider<Event>('ratechange');
-
-  /**
-   * Static factory designed to expose `reset` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.resetEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> resetEvent =
-      const EventStreamProvider<Event>('reset');
-
-  @DomName('Element.resizeEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> resizeEvent =
-      const EventStreamProvider<Event>('resize');
-
-  /**
-   * Static factory designed to expose `scroll` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.scrollEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> scrollEvent =
-      const EventStreamProvider<Event>('scroll');
-
-  /**
-   * Static factory designed to expose `search` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.searchEvent')
-  @DocsEditable()
-  // http://www.w3.org/TR/html-markup/input.search.html
-  @Experimental()
-  static const EventStreamProvider<Event> searchEvent =
-      const EventStreamProvider<Event>('search');
-
-  @DomName('Element.seekedEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> seekedEvent =
-      const EventStreamProvider<Event>('seeked');
-
-  @DomName('Element.seekingEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> seekingEvent =
-      const EventStreamProvider<Event>('seeking');
-
-  /**
-   * Static factory designed to expose `select` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.selectEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> selectEvent =
-      const EventStreamProvider<Event>('select');
-
-  /**
-   * Static factory designed to expose `selectstart` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.selectstartEvent')
-  @DocsEditable()
-  @Experimental() // nonstandard
-  static const EventStreamProvider<Event> selectStartEvent =
-      const EventStreamProvider<Event>('selectstart');
-
-  @DomName('Element.stalledEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> stalledEvent =
-      const EventStreamProvider<Event>('stalled');
-
-  /**
-   * Static factory designed to expose `submit` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.submitEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> submitEvent =
-      const EventStreamProvider<Event>('submit');
-
-  @DomName('Element.suspendEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> suspendEvent =
-      const EventStreamProvider<Event>('suspend');
-
-  @DomName('Element.timeupdateEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> timeUpdateEvent =
-      const EventStreamProvider<Event>('timeupdate');
-
-  /**
-   * Static factory designed to expose `touchcancel` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.touchcancelEvent')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  static const EventStreamProvider<TouchEvent> touchCancelEvent =
-      const EventStreamProvider<TouchEvent>('touchcancel');
-
-  /**
-   * Static factory designed to expose `touchend` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.touchendEvent')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  static const EventStreamProvider<TouchEvent> touchEndEvent =
-      const EventStreamProvider<TouchEvent>('touchend');
-
-  /**
-   * Static factory designed to expose `touchenter` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.touchenterEvent')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  static const EventStreamProvider<TouchEvent> touchEnterEvent =
-      const EventStreamProvider<TouchEvent>('touchenter');
-
-  /**
-   * Static factory designed to expose `touchleave` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.touchleaveEvent')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  static const EventStreamProvider<TouchEvent> touchLeaveEvent =
-      const EventStreamProvider<TouchEvent>('touchleave');
-
-  /**
-   * Static factory designed to expose `touchmove` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.touchmoveEvent')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  static const EventStreamProvider<TouchEvent> touchMoveEvent =
-      const EventStreamProvider<TouchEvent>('touchmove');
-
-  /**
-   * Static factory designed to expose `touchstart` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.touchstartEvent')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  static const EventStreamProvider<TouchEvent> touchStartEvent =
-      const EventStreamProvider<TouchEvent>('touchstart');
-
-  @DomName('Element.volumechangeEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> volumeChangeEvent =
-      const EventStreamProvider<Event>('volumechange');
-
-  @DomName('Element.waitingEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> waitingEvent =
-      const EventStreamProvider<Event>('waiting');
-
-  /**
-   * Static factory designed to expose `fullscreenchange` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.webkitfullscreenchangeEvent')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html
-  static const EventStreamProvider<Event> fullscreenChangeEvent =
-      const EventStreamProvider<Event>('webkitfullscreenchange');
-
-  /**
-   * Static factory designed to expose `fullscreenerror` events to event
-   * handlers that are not necessarily instances of [Element].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Element.webkitfullscreenerrorEvent')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html
-  static const EventStreamProvider<Event> fullscreenErrorEvent =
-      const EventStreamProvider<Event>('webkitfullscreenerror');
-
-  @DomName('Element.contentEditable')
-  @DocsEditable()
-  String contentEditable;
-
-  @DomName('Element.contextMenu')
-  @DocsEditable()
-  @Experimental() // untriaged
-  MenuElement contextMenu;
-
-  @DomName('Element.dir')
-  @DocsEditable()
-  String dir;
-
-  /**
-   * Indicates whether the element can be dragged and dropped.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.draggable')
-  @DocsEditable()
-  bool draggable;
-
-  /**
-   * Indicates whether the element is not relevant to the page's current state.
-   *
-   * ## Other resources
-   *
-   * * [Hidden attribute
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#the-hidden-attribute)
-   *   from WHATWG.
-   */
-  @DomName('Element.hidden')
-  @DocsEditable()
-  bool hidden;
-
-  // Using property as subclass shadows.
-  bool get isContentEditable => JS("bool", "#.isContentEditable", this);
-
-  @DomName('Element.lang')
-  @DocsEditable()
-  String lang;
-
-  @DomName('Element.spellcheck')
-  @DocsEditable()
-  // http://blog.whatwg.org/the-road-to-html-5-spellchecking
-  @Experimental() // nonstandard
-  bool spellcheck;
-
-  @DomName('Element.style')
-  @DocsEditable()
-  final CssStyleDeclaration style;
-
-  @DomName('Element.tabIndex')
-  @DocsEditable()
-  int tabIndex;
-
-  @DomName('Element.title')
-  @DocsEditable()
-  String title;
-
-  /**
-   * Specifies whether this element's text content changes when the page is
-   * localized.
-   *
-   * ## Other resources
-   *
-   * * [The translate
-   *   attribute](https://html.spec.whatwg.org/multipage/dom.html#the-translate-attribute)
-   *   from WHATWG.
-   */
-  @DomName('Element.translate')
-  @DocsEditable()
-  // http://www.whatwg.org/specs/web-apps/current-work/multipage/elements.html#the-translate-attribute
-  @Experimental()
-  bool translate;
-
-  @JSName('webkitdropzone')
-  /**
-   * A set of space-separated keywords that specify what kind of data this
-   * Element accepts on drop and what to do with that data.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.webkitdropzone')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  // http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#the-dropzone-attribute
-  String dropzone;
-
-  @DomName('Element.blur')
-  @DocsEditable()
-  void blur() native;
-
-  @DomName('Element.click')
-  @DocsEditable()
-  void click() native;
-
-  @DomName('Element.focus')
-  @DocsEditable()
-  void focus() native;
-
-  @DomName('Element.assignedSlot')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final SlotElement assignedSlot;
-
-  @JSName('attributes')
-  @DomName('Element.attributes')
-  @DocsEditable()
-  final _NamedNodeMap _attributes;
-
-  @DomName('Element.className')
-  @DocsEditable()
-  String className;
-
-  @DomName('Element.clientHeight')
-  @DocsEditable()
-  final int clientHeight;
-
-  @DomName('Element.clientLeft')
-  @DocsEditable()
-  final int clientLeft;
-
-  @DomName('Element.clientTop')
-  @DocsEditable()
-  final int clientTop;
-
-  @DomName('Element.clientWidth')
-  @DocsEditable()
-  final int clientWidth;
-
-  @DomName('Element.computedName')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String computedName;
-
-  @DomName('Element.computedRole')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String computedRole;
-
-  @DomName('Element.id')
-  @DocsEditable()
-  String id;
-
-  @JSName('innerHTML')
-  @DomName('Element.innerHTML')
-  @DocsEditable()
-  String _innerHtml;
-
-  @JSName('localName')
-  @DomName('Element.localName')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String _localName;
-
-  @JSName('namespaceURI')
-  @DomName('Element.namespaceURI')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String _namespaceUri;
-
-  // Using property as subclass shadows.
-  String get outerHtml => JS("String", "#.outerHTML", this);
-
-  @JSName('scrollHeight')
-  @DomName('Element.scrollHeight')
-  @DocsEditable()
-  final int _scrollHeight;
-
-  @JSName('scrollLeft')
-  @DomName('Element.scrollLeft')
-  @DocsEditable()
-  num _scrollLeft;
-
-  @JSName('scrollTop')
-  @DomName('Element.scrollTop')
-  @DocsEditable()
-  num _scrollTop;
-
-  @JSName('scrollWidth')
-  @DomName('Element.scrollWidth')
-  @DocsEditable()
-  final int _scrollWidth;
-
-  @DomName('Element.slot')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String slot;
-
-  @DomName('Element.tagName')
-  @DocsEditable()
-  final String tagName;
-
-  @DomName('Element.attachShadow')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ShadowRoot attachShadow(Map shadowRootInitDict) {
-    var shadowRootInitDict_1 =
-        convertDartToNative_Dictionary(shadowRootInitDict);
-    return _attachShadow_1(shadowRootInitDict_1);
-  }
-
-  @JSName('attachShadow')
-  @DomName('Element.attachShadow')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ShadowRoot _attachShadow_1(shadowRootInitDict) native;
-
-  @DomName('Element.closest')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Element closest(String selectors) native;
-
-  @DomName('Element.getAnimations')
-  @DocsEditable()
-  @Experimental() // untriaged
-  List<Animation> getAnimations() native;
-
-  @DomName('Element.getAttribute')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String getAttribute(String name) native;
-
-  @DomName('Element.getAttributeNS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String getAttributeNS(String namespaceURI, String localName) native;
-
-  /**
-   * Returns the smallest bounding rectangle that encompasses this element's
-   * padding, scrollbar, and border.
-   *
-   * ## Other resources
-   *
-   * * [Element.getBoundingClientRect](https://developer.mozilla.org/en-US/docs/Web/API/Element.getBoundingClientRect)
-   *   from MDN.
-   * * [The getBoundingClientRect()
-   *   method](http://www.w3.org/TR/cssom-view/#the-getclientrects()-and-getboundingclientrect()-methods)
-   *   from W3C.
-   */
-  @DomName('Element.getBoundingClientRect')
-  @DocsEditable()
-  @Creates('_ClientRect')
-  @Returns('_ClientRect|Null')
-  Rectangle getBoundingClientRect() native;
-
-  /**
-   * Returns a list of bounding rectangles for each box associated with this
-   * element.
-   *
-   * ## Other resources
-   *
-   * * [Element.getClientRects](https://developer.mozilla.org/en-US/docs/Web/API/Element.getClientRects)
-   *   from MDN.
-   * * [The getClientRects()
-   *   method](http://www.w3.org/TR/cssom-view/#the-getclientrects()-and-getboundingclientrect()-methods)
-   *   from W3C.
-   */
-  @DomName('Element.getClientRects')
-  @DocsEditable()
-  @Returns('_ClientRectList|Null')
-  @Creates('_ClientRectList')
-  List<Rectangle> getClientRects() native;
-
-  /**
-   * Returns a list of shadow DOM insertion points to which this element is
-   * distributed.
-   *
-   * ## Other resources
-   *
-   * * [Shadow DOM
-   *   specification](https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html)
-   *   from W3C.
-   */
-  @DomName('Element.getDestinationInsertionPoints')
-  @DocsEditable()
-  @Experimental() // untriaged
-  @Returns('NodeList|Null')
-  @Creates('NodeList')
-  List<Node> getDestinationInsertionPoints() native;
-
-  /**
-   * Returns a list of nodes with the given class name inside this element.
-   *
-   * ## Other resources
-   *
-   * * [getElementsByClassName](https://developer.mozilla.org/en-US/docs/Web/API/document.getElementsByClassName)
-   *   from MDN.
-   * * [DOM specification](http://www.w3.org/TR/domcore/) from W3C.
-   */
-  @DomName('Element.getElementsByClassName')
-  @DocsEditable()
-  @Creates('NodeList|HtmlCollection')
-  @Returns('NodeList|HtmlCollection')
-  List<Node> getElementsByClassName(String classNames) native;
-
-  @JSName('getElementsByTagName')
-  @DomName('Element.getElementsByTagName')
-  @DocsEditable()
-  @Creates('NodeList|HtmlCollection')
-  @Returns('NodeList|HtmlCollection')
-  List<Node> _getElementsByTagName(String localName) native;
-
-  @JSName('hasAttribute')
-  @DomName('Element.hasAttribute')
-  @DocsEditable()
-  bool _hasAttribute(String name) native;
-
-  @JSName('hasAttributeNS')
-  @DomName('Element.hasAttributeNS')
-  @DocsEditable()
-  bool _hasAttributeNS(String namespaceURI, String localName) native;
-
-  @JSName('removeAttribute')
-  @DomName('Element.removeAttribute')
-  @DocsEditable()
-  void _removeAttribute(String name) native;
-
-  @JSName('removeAttributeNS')
-  @DomName('Element.removeAttributeNS')
-  @DocsEditable()
-  void _removeAttributeNS(String namespaceURI, String localName) native;
-
-  @DomName('Element.requestFullscreen')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void requestFullscreen() native;
-
-  @DomName('Element.requestPointerLock')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void requestPointerLock() native;
-
-  @DomName('Element.scroll')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void scroll([options_OR_x, num y]) {
-    if (options_OR_x == null && y == null) {
-      _scroll_1();
-      return;
-    }
-    if ((options_OR_x is Map) && y == null) {
-      var options_1 = convertDartToNative_Dictionary(options_OR_x);
-      _scroll_2(options_1);
-      return;
-    }
-    if (y != null && (options_OR_x is num)) {
-      _scroll_3(options_OR_x, y);
-      return;
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-
-  @JSName('scroll')
-  @DomName('Element.scroll')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _scroll_1() native;
-  @JSName('scroll')
-  @DomName('Element.scroll')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _scroll_2(options) native;
-  @JSName('scroll')
-  @DomName('Element.scroll')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _scroll_3(num x, y) native;
-
-  @DomName('Element.scrollBy')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void scrollBy([options_OR_x, num y]) {
-    if (options_OR_x == null && y == null) {
-      _scrollBy_1();
-      return;
-    }
-    if ((options_OR_x is Map) && y == null) {
-      var options_1 = convertDartToNative_Dictionary(options_OR_x);
-      _scrollBy_2(options_1);
-      return;
-    }
-    if (y != null && (options_OR_x is num)) {
-      _scrollBy_3(options_OR_x, y);
-      return;
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-
-  @JSName('scrollBy')
-  @DomName('Element.scrollBy')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _scrollBy_1() native;
-  @JSName('scrollBy')
-  @DomName('Element.scrollBy')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _scrollBy_2(options) native;
-  @JSName('scrollBy')
-  @DomName('Element.scrollBy')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _scrollBy_3(num x, y) native;
-
-  @JSName('scrollIntoView')
-  @DomName('Element.scrollIntoView')
-  @DocsEditable()
-  void _scrollIntoView([bool alignWithTop]) native;
-
-  @JSName('scrollIntoViewIfNeeded')
-  @DomName('Element.scrollIntoViewIfNeeded')
-  @DocsEditable()
-  // http://docs.webplatform.org/wiki/dom/methods/scrollIntoViewIfNeeded
-  @Experimental() // non-standard
-  void _scrollIntoViewIfNeeded([bool centerIfNeeded]) native;
-
-  @DomName('Element.scrollTo')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void scrollTo([options_OR_x, num y]) {
-    if (options_OR_x == null && y == null) {
-      _scrollTo_1();
-      return;
-    }
-    if ((options_OR_x is Map) && y == null) {
-      var options_1 = convertDartToNative_Dictionary(options_OR_x);
-      _scrollTo_2(options_1);
-      return;
-    }
-    if (y != null && (options_OR_x is num)) {
-      _scrollTo_3(options_OR_x, y);
-      return;
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-
-  @JSName('scrollTo')
-  @DomName('Element.scrollTo')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _scrollTo_1() native;
-  @JSName('scrollTo')
-  @DomName('Element.scrollTo')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _scrollTo_2(options) native;
-  @JSName('scrollTo')
-  @DomName('Element.scrollTo')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _scrollTo_3(num x, y) native;
-
-  @DomName('Element.setApplyScroll')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void setApplyScroll(ScrollStateCallback scrollStateCallback,
-      String nativeScrollBehavior) native;
-
-  @DomName('Element.setAttribute')
-  @DocsEditable()
-  void setAttribute(String name, String value) native;
-
-  @DomName('Element.setAttributeNS')
-  @DocsEditable()
-  void setAttributeNS(String namespaceURI, String name, String value) native;
-
-  @DomName('Element.setDistributeScroll')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void setDistributeScroll(ScrollStateCallback scrollStateCallback,
-      String nativeScrollBehavior) native;
-
-  // From ChildNode
-
-  // From NonDocumentTypeChildNode
-
-  @DomName('Element.nextElementSibling')
-  @DocsEditable()
-  final Element nextElementSibling;
-
-  @DomName('Element.previousElementSibling')
-  @DocsEditable()
-  final Element previousElementSibling;
-
-  // From ParentNode
-
-  @JSName('childElementCount')
-  @DomName('Element.childElementCount')
-  @DocsEditable()
-  final int _childElementCount;
-
-  @JSName('children')
-  @DomName('Element.children')
-  @DocsEditable()
-  @Returns('HtmlCollection|Null')
-  @Creates('HtmlCollection')
-  final List<Node> _children;
-
-  @JSName('firstElementChild')
-  @DomName('Element.firstElementChild')
-  @DocsEditable()
-  final Element _firstElementChild;
-
-  @JSName('lastElementChild')
-  @DomName('Element.lastElementChild')
-  @DocsEditable()
-  final Element _lastElementChild;
-
-  /**
-   * Finds the first descendant element of this element that matches the
-   * specified group of selectors.
-   *
-   * [selectors] should be a string using CSS selector syntax.
-   *
-   *     // Gets the first descendant with the class 'classname'
-   *     var element = element.querySelector('.className');
-   *     // Gets the element with id 'id'
-   *     var element = element.querySelector('#id');
-   *     // Gets the first descendant [ImageElement]
-   *     var img = element.querySelector('img');
-   *
-   * For details about CSS selector syntax, see the
-   * [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
-   */
-  @DomName('Element.querySelector')
-  @DocsEditable()
-  Element querySelector(String selectors) native;
-
-  @JSName('querySelectorAll')
-  @DomName('Element.querySelectorAll')
-  @DocsEditable()
-  @Creates('NodeList')
-  @Returns('NodeList')
-  List<Node> _querySelectorAll(String selectors) native;
-
-  /// Stream of `abort` events handled by this [Element].
-  @DomName('Element.onabort')
-  @DocsEditable()
-  ElementStream<Event> get onAbort => abortEvent.forElement(this);
-
-  /// Stream of `beforecopy` events handled by this [Element].
-  @DomName('Element.onbeforecopy')
-  @DocsEditable()
-  ElementStream<Event> get onBeforeCopy => beforeCopyEvent.forElement(this);
-
-  /// Stream of `beforecut` events handled by this [Element].
-  @DomName('Element.onbeforecut')
-  @DocsEditable()
-  ElementStream<Event> get onBeforeCut => beforeCutEvent.forElement(this);
-
-  /// Stream of `beforepaste` events handled by this [Element].
-  @DomName('Element.onbeforepaste')
-  @DocsEditable()
-  ElementStream<Event> get onBeforePaste => beforePasteEvent.forElement(this);
-
-  /// Stream of `blur` events handled by this [Element].
-  @DomName('Element.onblur')
-  @DocsEditable()
-  ElementStream<Event> get onBlur => blurEvent.forElement(this);
-
-  @DomName('Element.oncanplay')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onCanPlay => canPlayEvent.forElement(this);
-
-  @DomName('Element.oncanplaythrough')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onCanPlayThrough =>
-      canPlayThroughEvent.forElement(this);
-
-  /// Stream of `change` events handled by this [Element].
-  @DomName('Element.onchange')
-  @DocsEditable()
-  ElementStream<Event> get onChange => changeEvent.forElement(this);
-
-  /// Stream of `click` events handled by this [Element].
-  @DomName('Element.onclick')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onClick => clickEvent.forElement(this);
-
-  /// Stream of `contextmenu` events handled by this [Element].
-  @DomName('Element.oncontextmenu')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onContextMenu =>
-      contextMenuEvent.forElement(this);
-
-  /// Stream of `copy` events handled by this [Element].
-  @DomName('Element.oncopy')
-  @DocsEditable()
-  ElementStream<ClipboardEvent> get onCopy => copyEvent.forElement(this);
-
-  /// Stream of `cut` events handled by this [Element].
-  @DomName('Element.oncut')
-  @DocsEditable()
-  ElementStream<ClipboardEvent> get onCut => cutEvent.forElement(this);
-
-  /// Stream of `doubleclick` events handled by this [Element].
-  @DomName('Element.ondblclick')
-  @DocsEditable()
-  ElementStream<Event> get onDoubleClick => doubleClickEvent.forElement(this);
-
-  /**
-   * A stream of `drag` events fired when this element currently being dragged.
-   *
-   * A `drag` event is added to this stream as soon as the drag begins.
-   * A `drag` event is also added to this stream at intervals while the drag
-   * operation is still ongoing.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.ondrag')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onDrag => dragEvent.forElement(this);
-
-  /**
-   * A stream of `dragend` events fired when this element completes a drag
-   * operation.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.ondragend')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onDragEnd => dragEndEvent.forElement(this);
-
-  /**
-   * A stream of `dragenter` events fired when a dragged object is first dragged
-   * over this element.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.ondragenter')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onDragEnter => dragEnterEvent.forElement(this);
-
-  /**
-   * A stream of `dragleave` events fired when an object being dragged over this
-   * element leaves this element's target area.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.ondragleave')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onDragLeave => dragLeaveEvent.forElement(this);
-
-  /**
-   * A stream of `dragover` events fired when a dragged object is currently
-   * being dragged over this element.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.ondragover')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onDragOver => dragOverEvent.forElement(this);
-
-  /**
-   * A stream of `dragstart` events fired when this element starts being
-   * dragged.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.ondragstart')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onDragStart => dragStartEvent.forElement(this);
-
-  /**
-   * A stream of `drop` events fired when a dragged object is dropped on this
-   * element.
-   *
-   * ## Other resources
-   *
-   * * [Drag and drop
-   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
-   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
-   *   from HTML5Rocks.
-   * * [Drag and drop
-   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
-   *   from WHATWG.
-   */
-  @DomName('Element.ondrop')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onDrop => dropEvent.forElement(this);
-
-  @DomName('Element.ondurationchange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onDurationChange =>
-      durationChangeEvent.forElement(this);
-
-  @DomName('Element.onemptied')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onEmptied => emptiedEvent.forElement(this);
-
-  @DomName('Element.onended')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onEnded => endedEvent.forElement(this);
-
-  /// Stream of `error` events handled by this [Element].
-  @DomName('Element.onerror')
-  @DocsEditable()
-  ElementStream<Event> get onError => errorEvent.forElement(this);
-
-  /// Stream of `focus` events handled by this [Element].
-  @DomName('Element.onfocus')
-  @DocsEditable()
-  ElementStream<Event> get onFocus => focusEvent.forElement(this);
-
-  /// Stream of `input` events handled by this [Element].
-  @DomName('Element.oninput')
-  @DocsEditable()
-  ElementStream<Event> get onInput => inputEvent.forElement(this);
-
-  /// Stream of `invalid` events handled by this [Element].
-  @DomName('Element.oninvalid')
-  @DocsEditable()
-  ElementStream<Event> get onInvalid => invalidEvent.forElement(this);
-
-  /// Stream of `keydown` events handled by this [Element].
-  @DomName('Element.onkeydown')
-  @DocsEditable()
-  ElementStream<KeyboardEvent> get onKeyDown => keyDownEvent.forElement(this);
-
-  /// Stream of `keypress` events handled by this [Element].
-  @DomName('Element.onkeypress')
-  @DocsEditable()
-  ElementStream<KeyboardEvent> get onKeyPress => keyPressEvent.forElement(this);
-
-  /// Stream of `keyup` events handled by this [Element].
-  @DomName('Element.onkeyup')
-  @DocsEditable()
-  ElementStream<KeyboardEvent> get onKeyUp => keyUpEvent.forElement(this);
-
-  /// Stream of `load` events handled by this [Element].
-  @DomName('Element.onload')
-  @DocsEditable()
-  ElementStream<Event> get onLoad => loadEvent.forElement(this);
-
-  @DomName('Element.onloadeddata')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onLoadedData => loadedDataEvent.forElement(this);
-
-  @DomName('Element.onloadedmetadata')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onLoadedMetadata =>
-      loadedMetadataEvent.forElement(this);
-
-  /// Stream of `mousedown` events handled by this [Element].
-  @DomName('Element.onmousedown')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onMouseDown => mouseDownEvent.forElement(this);
-
-  /// Stream of `mouseenter` events handled by this [Element].
-  @DomName('Element.onmouseenter')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<MouseEvent> get onMouseEnter =>
-      mouseEnterEvent.forElement(this);
-
-  /// Stream of `mouseleave` events handled by this [Element].
-  @DomName('Element.onmouseleave')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<MouseEvent> get onMouseLeave =>
-      mouseLeaveEvent.forElement(this);
-
-  /// Stream of `mousemove` events handled by this [Element].
-  @DomName('Element.onmousemove')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onMouseMove => mouseMoveEvent.forElement(this);
-
-  /// Stream of `mouseout` events handled by this [Element].
-  @DomName('Element.onmouseout')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onMouseOut => mouseOutEvent.forElement(this);
-
-  /// Stream of `mouseover` events handled by this [Element].
-  @DomName('Element.onmouseover')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onMouseOver => mouseOverEvent.forElement(this);
-
-  /// Stream of `mouseup` events handled by this [Element].
-  @DomName('Element.onmouseup')
-  @DocsEditable()
-  ElementStream<MouseEvent> get onMouseUp => mouseUpEvent.forElement(this);
-
-  /// Stream of `mousewheel` events handled by this [Element].
-  @DomName('Element.onmousewheel')
-  @DocsEditable()
-  // http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents
-  @Experimental() // non-standard
-  ElementStream<WheelEvent> get onMouseWheel =>
-      mouseWheelEvent.forElement(this);
-
-  /// Stream of `paste` events handled by this [Element].
-  @DomName('Element.onpaste')
-  @DocsEditable()
-  ElementStream<ClipboardEvent> get onPaste => pasteEvent.forElement(this);
-
-  @DomName('Element.onpause')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onPause => pauseEvent.forElement(this);
-
-  @DomName('Element.onplay')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onPlay => playEvent.forElement(this);
-
-  @DomName('Element.onplaying')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onPlaying => playingEvent.forElement(this);
-
-  @DomName('Element.onratechange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onRateChange => rateChangeEvent.forElement(this);
-
-  /// Stream of `reset` events handled by this [Element].
-  @DomName('Element.onreset')
-  @DocsEditable()
-  ElementStream<Event> get onReset => resetEvent.forElement(this);
-
-  @DomName('Element.onresize')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onResize => resizeEvent.forElement(this);
-
-  /// Stream of `scroll` events handled by this [Element].
-  @DomName('Element.onscroll')
-  @DocsEditable()
-  ElementStream<Event> get onScroll => scrollEvent.forElement(this);
-
-  /// Stream of `search` events handled by this [Element].
-  @DomName('Element.onsearch')
-  @DocsEditable()
-  // http://www.w3.org/TR/html-markup/input.search.html
-  @Experimental()
-  ElementStream<Event> get onSearch => searchEvent.forElement(this);
-
-  @DomName('Element.onseeked')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onSeeked => seekedEvent.forElement(this);
-
-  @DomName('Element.onseeking')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onSeeking => seekingEvent.forElement(this);
-
-  /// Stream of `select` events handled by this [Element].
-  @DomName('Element.onselect')
-  @DocsEditable()
-  ElementStream<Event> get onSelect => selectEvent.forElement(this);
-
-  /// Stream of `selectstart` events handled by this [Element].
-  @DomName('Element.onselectstart')
-  @DocsEditable()
-  @Experimental() // nonstandard
-  ElementStream<Event> get onSelectStart => selectStartEvent.forElement(this);
-
-  @DomName('Element.onstalled')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onStalled => stalledEvent.forElement(this);
-
-  /// Stream of `submit` events handled by this [Element].
-  @DomName('Element.onsubmit')
-  @DocsEditable()
-  ElementStream<Event> get onSubmit => submitEvent.forElement(this);
-
-  @DomName('Element.onsuspend')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onSuspend => suspendEvent.forElement(this);
-
-  @DomName('Element.ontimeupdate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onTimeUpdate => timeUpdateEvent.forElement(this);
-
-  /// Stream of `touchcancel` events handled by this [Element].
-  @DomName('Element.ontouchcancel')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  ElementStream<TouchEvent> get onTouchCancel =>
-      touchCancelEvent.forElement(this);
-
-  /// Stream of `touchend` events handled by this [Element].
-  @DomName('Element.ontouchend')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  ElementStream<TouchEvent> get onTouchEnd => touchEndEvent.forElement(this);
-
-  /// Stream of `touchenter` events handled by this [Element].
-  @DomName('Element.ontouchenter')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  ElementStream<TouchEvent> get onTouchEnter =>
-      touchEnterEvent.forElement(this);
-
-  /// Stream of `touchleave` events handled by this [Element].
-  @DomName('Element.ontouchleave')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  ElementStream<TouchEvent> get onTouchLeave =>
-      touchLeaveEvent.forElement(this);
-
-  /// Stream of `touchmove` events handled by this [Element].
-  @DomName('Element.ontouchmove')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  ElementStream<TouchEvent> get onTouchMove => touchMoveEvent.forElement(this);
-
-  /// Stream of `touchstart` events handled by this [Element].
-  @DomName('Element.ontouchstart')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  ElementStream<TouchEvent> get onTouchStart =>
-      touchStartEvent.forElement(this);
-
-  /// Stream of `transitionend` events handled by this [Element].
-  @DomName('Element.ontransitionend')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.FIREFOX)
-  @SupportedBrowser(SupportedBrowser.IE, '10')
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  ElementStream<TransitionEvent> get onTransitionEnd =>
-      transitionEndEvent.forElement(this);
-
-  @DomName('Element.onvolumechange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onVolumeChange => volumeChangeEvent.forElement(this);
-
-  @DomName('Element.onwaiting')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onWaiting => waitingEvent.forElement(this);
-
-  /// Stream of `fullscreenchange` events handled by this [Element].
-  @DomName('Element.onwebkitfullscreenchange')
-  @DocsEditable()
-  // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html
-  @Experimental()
-  ElementStream<Event> get onFullscreenChange =>
-      fullscreenChangeEvent.forElement(this);
-
-  /// Stream of `fullscreenerror` events handled by this [Element].
-  @DomName('Element.onwebkitfullscreenerror')
-  @DocsEditable()
-  // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html
-  @Experimental()
-  ElementStream<Event> get onFullscreenError =>
-      fullscreenErrorEvent.forElement(this);
-}
-
-class _ElementFactoryProvider {
-  @DomName('Document.createElement')
-  // Optimization to improve performance until the dart2js compiler inlines this
-  // method.
-  static dynamic createElement_tag(String tag, String typeExtension) {
-    // Firefox may return a JS function for some types (Embed, Object).
-    if (typeExtension != null) {
-      return JS('Element|=Object', 'document.createElement(#, #)', tag,
-          typeExtension);
-    }
-    // Should be able to eliminate this and just call the two-arg version above
-    // with null typeExtension, but Chrome treats the tag as case-sensitive if
-    // typeExtension is null.
-    // https://code.google.com/p/chromium/issues/detail?id=282467
-    return JS('Element|=Object', 'document.createElement(#)', tag);
-  }
-}
-
-/**
- * Options for Element.scrollIntoView.
- */
-class ScrollAlignment {
-  final _value;
-  const ScrollAlignment._internal(this._value);
-  toString() => 'ScrollAlignment.$_value';
-
-  /// Attempt to align the element to the top of the scrollable area.
-  static const TOP = const ScrollAlignment._internal('TOP');
-
-  /// Attempt to center the element in the scrollable area.
-  static const CENTER = const ScrollAlignment._internal('CENTER');
-
-  /// Attempt to align the element to the bottom of the scrollable area.
-  static const BOTTOM = const ScrollAlignment._internal('BOTTOM');
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLEmbedElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.IE)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("HTMLEmbedElement")
-class EmbedElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory EmbedElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLEmbedElement.HTMLEmbedElement')
-  @DocsEditable()
-  factory EmbedElement() => document.createElement("embed");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  EmbedElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported => Element.isTagSupported('embed');
-
-  @DomName('HTMLEmbedElement.height')
-  @DocsEditable()
-  String height;
-
-  @DomName('HTMLEmbedElement.name')
-  @DocsEditable()
-  String name;
-
-  @DomName('HTMLEmbedElement.src')
-  @DocsEditable()
-  String src;
-
-  @DomName('HTMLEmbedElement.type')
-  @DocsEditable()
-  String type;
-
-  @DomName('HTMLEmbedElement.width')
-  @DocsEditable()
-  String width;
-
-  @DomName('HTMLEmbedElement.__getter__')
-  @DocsEditable()
-  bool __getter__(index_OR_name) native;
-
-  @DomName('HTMLEmbedElement.__setter__')
-  @DocsEditable()
-  void __setter__(index_OR_name, Node value) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('EntriesCallback')
-// http://www.w3.org/TR/file-system-api/#the-entriescallback-interface
-@Experimental()
-typedef void _EntriesCallback(List<Entry> entries);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Entry')
-// http://www.w3.org/TR/file-system-api/#the-entry-interface
-@Experimental()
-@Native("Entry")
-class Entry extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Entry._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Entry.filesystem')
-  @DocsEditable()
-  final FileSystem filesystem;
-
-  @DomName('Entry.fullPath')
-  @DocsEditable()
-  final String fullPath;
-
-  @DomName('Entry.isDirectory')
-  @DocsEditable()
-  final bool isDirectory;
-
-  @DomName('Entry.isFile')
-  @DocsEditable()
-  final bool isFile;
-
-  @DomName('Entry.name')
-  @DocsEditable()
-  final String name;
-
-  @JSName('copyTo')
-  @DomName('Entry.copyTo')
-  @DocsEditable()
-  void _copyTo(DirectoryEntry parent,
-      {String name,
-      _EntryCallback successCallback,
-      _ErrorCallback errorCallback}) native;
-
-  @JSName('copyTo')
-  @DomName('Entry.copyTo')
-  @DocsEditable()
-  Future<Entry> copyTo(DirectoryEntry parent, {String name}) {
-    var completer = new Completer<Entry>();
-    _copyTo(parent, name: name, successCallback: (value) {
-      completer.complete(value);
-    }, errorCallback: (error) {
-      completer.completeError(error);
-    });
-    return completer.future;
-  }
-
-  @JSName('getMetadata')
-  @DomName('Entry.getMetadata')
-  @DocsEditable()
-  void _getMetadata(MetadataCallback successCallback,
-      [_ErrorCallback errorCallback]) native;
-
-  @JSName('getMetadata')
-  @DomName('Entry.getMetadata')
-  @DocsEditable()
-  Future<Metadata> getMetadata() {
-    var completer = new Completer<Metadata>();
-    _getMetadata((value) {
-      completer.complete(value);
-    }, (error) {
-      completer.completeError(error);
-    });
-    return completer.future;
-  }
-
-  @JSName('getParent')
-  @DomName('Entry.getParent')
-  @DocsEditable()
-  void _getParent(
-      [_EntryCallback successCallback, _ErrorCallback errorCallback]) native;
-
-  @JSName('getParent')
-  @DomName('Entry.getParent')
-  @DocsEditable()
-  Future<Entry> getParent() {
-    var completer = new Completer<Entry>();
-    _getParent((value) {
-      completer.complete(value);
-    }, (error) {
-      completer.completeError(error);
-    });
-    return completer.future;
-  }
-
-  @JSName('moveTo')
-  @DomName('Entry.moveTo')
-  @DocsEditable()
-  void _moveTo(DirectoryEntry parent,
-      {String name,
-      _EntryCallback successCallback,
-      _ErrorCallback errorCallback}) native;
-
-  @JSName('moveTo')
-  @DomName('Entry.moveTo')
-  @DocsEditable()
-  Future<Entry> moveTo(DirectoryEntry parent, {String name}) {
-    var completer = new Completer<Entry>();
-    _moveTo(parent, name: name, successCallback: (value) {
-      completer.complete(value);
-    }, errorCallback: (error) {
-      completer.completeError(error);
-    });
-    return completer.future;
-  }
-
-  @JSName('remove')
-  @DomName('Entry.remove')
-  @DocsEditable()
-  void _remove(VoidCallback successCallback, [_ErrorCallback errorCallback])
-      native;
-
-  @JSName('remove')
-  @DomName('Entry.remove')
-  @DocsEditable()
-  Future remove() {
-    var completer = new Completer();
-    _remove(() {
-      completer.complete();
-    }, (error) {
-      completer.completeError(error);
-    });
-    return completer.future;
-  }
-
-  @JSName('toURL')
-  @DomName('Entry.toURL')
-  @DocsEditable()
-  String toUrl() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('EntryCallback')
-// http://www.w3.org/TR/file-system-api/#the-entrycallback-interface
-@Experimental()
-typedef void _EntryCallback(Entry entry);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('ErrorCallback')
-// http://www.w3.org/TR/file-system-api/#the-errorcallback-interface
-@Experimental()
-typedef void _ErrorCallback(FileError error);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ErrorEvent')
-@Unstable()
-@Native("ErrorEvent")
-class ErrorEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory ErrorEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('ErrorEvent.ErrorEvent')
-  @DocsEditable()
-  factory ErrorEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return ErrorEvent._create_1(type, eventInitDict_1);
-    }
-    return ErrorEvent._create_2(type);
-  }
-  static ErrorEvent _create_1(type, eventInitDict) =>
-      JS('ErrorEvent', 'new ErrorEvent(#,#)', type, eventInitDict);
-  static ErrorEvent _create_2(type) =>
-      JS('ErrorEvent', 'new ErrorEvent(#)', type);
-
-  @DomName('ErrorEvent.colno')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int colno;
-
-  @DomName('ErrorEvent.error')
-  @DocsEditable()
-  @Experimental() // untriaged
-  @Creates('Null')
-  final Object error;
-
-  @DomName('ErrorEvent.filename')
-  @DocsEditable()
-  final String filename;
-
-  @DomName('ErrorEvent.lineno')
-  @DocsEditable()
-  final int lineno;
-
-  @DomName('ErrorEvent.message')
-  @DocsEditable()
-  final String message;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('Event')
-@Native("Event,InputEvent")
-class Event extends Interceptor {
-  // In JS, canBubble and cancelable are technically required parameters to
-  // init*Event. In practice, though, if they aren't provided they simply
-  // default to false (since that's Boolean(undefined)).
-  //
-  // Contrary to JS, we default canBubble and cancelable to true, since that's
-  // what people want most of the time anyway.
-  factory Event(String type, {bool canBubble: true, bool cancelable: true}) {
-    return new Event.eventType('Event', type,
-        canBubble: canBubble, cancelable: cancelable);
-  }
-
-  /**
-   * Creates a new Event object of the specified type.
-   *
-   * This is analogous to document.createEvent.
-   * Normally events should be created via their constructors, if available.
-   *
-   *     var e = new Event.type('MouseEvent', 'mousedown', true, true);
-   */
-  factory Event.eventType(String type, String name,
-      {bool canBubble: true, bool cancelable: true}) {
-    final Event e = document._createEvent(type);
-    e._initEvent(name, canBubble, cancelable);
-    return e;
-  }
-
-  /** The CSS selector involved with event delegation. */
-  String _selector;
-
-  /**
-   * A pointer to the element whose CSS selector matched within which an event
-   * was fired. If this Event was not associated with any Event delegation,
-   * accessing this value will throw an [UnsupportedError].
-   */
-  Element get matchingTarget {
-    if (_selector == null) {
-      throw new UnsupportedError('Cannot call matchingTarget if this Event did'
-          ' not arise as a result of event delegation.');
-    }
-    Element currentTarget = this.currentTarget;
-    Element target = this.target;
-    var matchedTarget;
-    do {
-      if (target.matches(_selector)) return target;
-      target = target.parent;
-    } while (target != null && target != currentTarget.parent);
-    throw new StateError('No selector matched for populating matchedTarget.');
-  }
-
-  @DomName('Event.Event')
-  @DocsEditable()
-  factory Event._(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return Event._create_1(type, eventInitDict_1);
-    }
-    return Event._create_2(type);
-  }
-  static Event _create_1(type, eventInitDict) =>
-      JS('Event', 'new Event(#,#)', type, eventInitDict);
-  static Event _create_2(type) => JS('Event', 'new Event(#)', type);
-
-  /**
-   * This event is being handled by the event target.
-   *
-   * ## Other resources
-   *
-   * * [Target phase](http://www.w3.org/TR/DOM-Level-3-Events/#target-phase)
-   *   from W3C.
-   */
-  @DomName('Event.AT_TARGET')
-  @DocsEditable()
-  static const int AT_TARGET = 2;
-
-  /**
-   * This event is bubbling up through the target's ancestors.
-   *
-   * ## Other resources
-   *
-   * * [Bubble phase](http://www.w3.org/TR/DOM-Level-3-Events/#bubble-phase)
-   *   from W3C.
-   */
-  @DomName('Event.BUBBLING_PHASE')
-  @DocsEditable()
-  static const int BUBBLING_PHASE = 3;
-
-  /**
-   * This event is propagating through the target's ancestors, starting from the
-   * document.
-   *
-   * ## Other resources
-   *
-   * * [Bubble phase](http://www.w3.org/TR/DOM-Level-3-Events/#bubble-phase)
-   *   from W3C.
-   */
-  @DomName('Event.CAPTURING_PHASE')
-  @DocsEditable()
-  static const int CAPTURING_PHASE = 1;
-
-  @DomName('Event.bubbles')
-  @DocsEditable()
-  final bool bubbles;
-
-  @DomName('Event.cancelable')
-  @DocsEditable()
-  final bool cancelable;
-
-  @DomName('Event.currentTarget')
-  @DocsEditable()
-  EventTarget get currentTarget =>
-      _convertNativeToDart_EventTarget(this._get_currentTarget);
-  @JSName('currentTarget')
-  @DomName('Event.currentTarget')
-  @DocsEditable()
-  @Creates('Null')
-  @Returns('EventTarget|=Object')
-  final dynamic _get_currentTarget;
-
-  @DomName('Event.defaultPrevented')
-  @DocsEditable()
-  final bool defaultPrevented;
-
-  @DomName('Event.eventPhase')
-  @DocsEditable()
-  final int eventPhase;
-
-  @DomName('Event.isTrusted')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool isTrusted;
-
-  /**
-   * This event's path, taking into account shadow DOM.
-   *
-   * ## Other resources
-   *
-   * * [Shadow DOM extensions to
-   *   Event](http://w3c.github.io/webcomponents/spec/shadow/#extensions-to-event)
-   *   from W3C.
-   */
-  @DomName('Event.path')
-  @DocsEditable()
-  // https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#extensions-to-event
-  @Experimental()
-  final List<EventTarget> path;
-
-  @DomName('Event.scoped')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool scoped;
-
-  @DomName('Event.target')
-  @DocsEditable()
-  EventTarget get target => _convertNativeToDart_EventTarget(this._get_target);
-  @JSName('target')
-  @DomName('Event.target')
-  @DocsEditable()
-  @Creates('Node')
-  @Returns('EventTarget|=Object')
-  final dynamic _get_target;
-
-  @DomName('Event.timeStamp')
-  @DocsEditable()
-  final double timeStamp;
-
-  @DomName('Event.type')
-  @DocsEditable()
-  final String type;
-
-  @DomName('Event.deepPath')
-  @DocsEditable()
-  @Experimental() // untriaged
-  List<EventTarget> deepPath() native;
-
-  @JSName('initEvent')
-  @DomName('Event.initEvent')
-  @DocsEditable()
-  void _initEvent(String type, bool bubbles, bool cancelable) native;
-
-  @DomName('Event.preventDefault')
-  @DocsEditable()
-  void preventDefault() native;
-
-  @DomName('Event.stopImmediatePropagation')
-  @DocsEditable()
-  void stopImmediatePropagation() native;
-
-  @DomName('Event.stopPropagation')
-  @DocsEditable()
-  void stopPropagation() native;
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('EventSource')
-// http://www.w3.org/TR/eventsource/#the-eventsource-interface
-@Experimental() // stable
-@Native("EventSource")
-class EventSource extends EventTarget {
-  factory EventSource(String url, {withCredentials: false}) {
-    var parsedOptions = {
-      'withCredentials': withCredentials,
-    };
-    return EventSource._factoryEventSource(url, parsedOptions);
-  }
-  // To suppress missing implicit constructor warnings.
-  factory EventSource._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `error` events to event
-   * handlers that are not necessarily instances of [EventSource].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('EventSource.errorEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> errorEvent =
-      const EventStreamProvider<Event>('error');
-
-  /**
-   * Static factory designed to expose `message` events to event
-   * handlers that are not necessarily instances of [EventSource].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('EventSource.messageEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MessageEvent> messageEvent =
-      const EventStreamProvider<MessageEvent>('message');
-
-  /**
-   * Static factory designed to expose `open` events to event
-   * handlers that are not necessarily instances of [EventSource].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('EventSource.openEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> openEvent =
-      const EventStreamProvider<Event>('open');
-
-  @DomName('EventSource.EventSource')
-  @DocsEditable()
-  static EventSource _factoryEventSource(String url,
-      [Map eventSourceInitDict]) {
-    if (eventSourceInitDict != null) {
-      var eventSourceInitDict_1 =
-          convertDartToNative_Dictionary(eventSourceInitDict);
-      return EventSource._create_1(url, eventSourceInitDict_1);
-    }
-    return EventSource._create_2(url);
-  }
-
-  static EventSource _create_1(url, eventSourceInitDict) =>
-      JS('EventSource', 'new EventSource(#,#)', url, eventSourceInitDict);
-  static EventSource _create_2(url) =>
-      JS('EventSource', 'new EventSource(#)', url);
-
-  @DomName('EventSource.CLOSED')
-  @DocsEditable()
-  static const int CLOSED = 2;
-
-  @DomName('EventSource.CONNECTING')
-  @DocsEditable()
-  static const int CONNECTING = 0;
-
-  @DomName('EventSource.OPEN')
-  @DocsEditable()
-  static const int OPEN = 1;
-
-  @DomName('EventSource.readyState')
-  @DocsEditable()
-  final int readyState;
-
-  @DomName('EventSource.url')
-  @DocsEditable()
-  final String url;
-
-  @DomName('EventSource.withCredentials')
-  @DocsEditable()
-  final bool withCredentials;
-
-  @DomName('EventSource.close')
-  @DocsEditable()
-  void close() native;
-
-  /// Stream of `error` events handled by this [EventSource].
-  @DomName('EventSource.onerror')
-  @DocsEditable()
-  Stream<Event> get onError => errorEvent.forTarget(this);
-
-  /// Stream of `message` events handled by this [EventSource].
-  @DomName('EventSource.onmessage')
-  @DocsEditable()
-  Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
-
-  /// Stream of `open` events handled by this [EventSource].
-  @DomName('EventSource.onopen')
-  @DocsEditable()
-  Stream<Event> get onOpen => openEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/**
- * Base class that supports listening for and dispatching browser events.
- *
- * Normally events are accessed via the Stream getter:
- *
- *     element.onMouseOver.listen((e) => print('Mouse over!'));
- *
- * To access bubbling events which are declared on one element, but may bubble
- * up to another element type (common for MediaElement events):
- *
- *     MediaElement.pauseEvent.forTarget(document.body).listen(...);
- *
- * To useCapture on events:
- *
- *     Element.keyDownEvent.forTarget(element, useCapture: true).listen(...);
- *
- * Custom events can be declared as:
- *
- *     class DataGenerator {
- *       static EventStreamProvider<Event> dataEvent =
- *           new EventStreamProvider('data');
- *     }
- *
- * Then listeners should access the event with:
- *
- *     DataGenerator.dataEvent.forTarget(element).listen(...);
- *
- * Custom events can also be accessed as:
- *
- *     element.on['some_event'].listen(...);
- *
- * This approach is generally discouraged as it loses the event typing and
- * some DOM events may have multiple platform-dependent event names under the
- * covers. By using the standard Stream getters you will get the platform
- * specific event name automatically.
- */
-class Events {
-  /* Raw event target. */
-  final EventTarget _ptr;
-
-  Events(this._ptr);
-
-  Stream<Event> operator [](String type) {
-    return new _EventStream(_ptr, type, false);
-  }
-}
-
-class ElementEvents extends Events {
-  static final webkitEvents = {
-    'animationend': 'webkitAnimationEnd',
-    'animationiteration': 'webkitAnimationIteration',
-    'animationstart': 'webkitAnimationStart',
-    'fullscreenchange': 'webkitfullscreenchange',
-    'fullscreenerror': 'webkitfullscreenerror',
-    'keyadded': 'webkitkeyadded',
-    'keyerror': 'webkitkeyerror',
-    'keymessage': 'webkitkeymessage',
-    'needkey': 'webkitneedkey',
-    'pointerlockchange': 'webkitpointerlockchange',
-    'pointerlockerror': 'webkitpointerlockerror',
-    'resourcetimingbufferfull': 'webkitresourcetimingbufferfull',
-    'transitionend': 'webkitTransitionEnd',
-    'speechchange': 'webkitSpeechChange'
-  };
-
-  ElementEvents(Element ptr) : super(ptr);
-
-  Stream<Event> operator [](String type) {
-    if (webkitEvents.keys.contains(type.toLowerCase())) {
-      if (Device.isWebKit) {
-        return new _ElementEventStreamImpl(
-            _ptr, webkitEvents[type.toLowerCase()], false);
-      }
-    }
-    return new _ElementEventStreamImpl(_ptr, type, false);
-  }
-}
-
-/**
- * Base class for all browser objects that support events.
- *
- * Use the [on] property to add, and remove events
- * for compile-time type checks and a more concise API.
- */
-@DomName('EventTarget')
-@Native("EventTarget")
-class EventTarget extends Interceptor {
-  // Custom element created callback.
-  EventTarget._created();
-
-  /**
-   * This is an ease-of-use accessor for event streams which should only be
-   * used when an explicit accessor is not available.
-   */
-  Events get on => new Events(this);
-
-  void addEventListener(String type, EventListener listener,
-      [bool useCapture]) {
-    // TODO(leafp): This check is avoid a bug in our dispatch code when
-    // listener is null.  The browser treats this call as a no-op in this
-    // case, so it's fine to short-circuit it, but we should not have to.
-    if (listener != null) {
-      _addEventListener(type, listener, useCapture);
-    }
-  }
-
-  void removeEventListener(String type, EventListener listener,
-      [bool useCapture]) {
-    // TODO(leafp): This check is avoid a bug in our dispatch code when
-    // listener is null.  The browser treats this call as a no-op in this
-    // case, so it's fine to short-circuit it, but we should not have to.
-    if (listener != null) {
-      _removeEventListener(type, listener, useCapture);
-    }
-  }
-
-  // To suppress missing implicit constructor warnings.
-  factory EventTarget._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @JSName('addEventListener')
-  @DomName('EventTarget.addEventListener')
-  @DocsEditable()
-  void _addEventListener(String type, EventListener listener, [bool options])
-      native;
-
-  @DomName('EventTarget.dispatchEvent')
-  @DocsEditable()
-  bool dispatchEvent(Event event) native;
-
-  @JSName('removeEventListener')
-  @DomName('EventTarget.removeEventListener')
-  @DocsEditable()
-  void _removeEventListener(String type, EventListener listener, [bool options])
-      native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ExtendableEvent')
-@Experimental() // untriaged
-@Native("ExtendableEvent")
-class ExtendableEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory ExtendableEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('ExtendableEvent.ExtendableEvent')
-  @DocsEditable()
-  factory ExtendableEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return ExtendableEvent._create_1(type, eventInitDict_1);
-    }
-    return ExtendableEvent._create_2(type);
-  }
-  static ExtendableEvent _create_1(type, eventInitDict) =>
-      JS('ExtendableEvent', 'new ExtendableEvent(#,#)', type, eventInitDict);
-  static ExtendableEvent _create_2(type) =>
-      JS('ExtendableEvent', 'new ExtendableEvent(#)', type);
-
-  @DomName('ExtendableEvent.waitUntil')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void waitUntil(Future f) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ExtendableMessageEvent')
-@Experimental() // untriaged
-@Native("ExtendableMessageEvent")
-class ExtendableMessageEvent extends ExtendableEvent {
-  // To suppress missing implicit constructor warnings.
-  factory ExtendableMessageEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('ExtendableMessageEvent.data')
-  @DocsEditable()
-  @Experimental() // untriaged
-  @annotation_Creates_SerializedScriptValue
-  @annotation_Returns_SerializedScriptValue
-  final Object data;
-
-  @DomName('ExtendableMessageEvent.lastEventId')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String lastEventId;
-
-  @DomName('ExtendableMessageEvent.origin')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String origin;
-
-  @DomName('ExtendableMessageEvent.ports')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final List<MessagePort> ports;
-
-  @DomName('ExtendableMessageEvent.source')
-  @DocsEditable()
-  @Experimental() // untriaged
-  @Creates('Client|_ServiceWorker|MessagePort')
-  @Returns('Client|_ServiceWorker|MessagePort|Null')
-  final Object source;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('FederatedCredential')
-@Experimental() // untriaged
-@Native("FederatedCredential")
-class FederatedCredential extends Credential {
-  // To suppress missing implicit constructor warnings.
-  factory FederatedCredential._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('FederatedCredential.FederatedCredential')
-  @DocsEditable()
-  factory FederatedCredential(Map data) {
-    var data_1 = convertDartToNative_Dictionary(data);
-    return FederatedCredential._create_1(data_1);
-  }
-  static FederatedCredential _create_1(data) =>
-      JS('FederatedCredential', 'new FederatedCredential(#)', data);
-
-  @DomName('FederatedCredential.protocol')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String protocol;
-
-  @DomName('FederatedCredential.provider')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String provider;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('FetchEvent')
-@Experimental() // untriaged
-@Native("FetchEvent")
-class FetchEvent extends ExtendableEvent {
-  // To suppress missing implicit constructor warnings.
-  factory FetchEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('FetchEvent.FetchEvent')
-  @DocsEditable()
-  factory FetchEvent(String type, Map eventInitDict) {
-    var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-    return FetchEvent._create_1(type, eventInitDict_1);
-  }
-  static FetchEvent _create_1(type, eventInitDict) =>
-      JS('FetchEvent', 'new FetchEvent(#,#)', type, eventInitDict);
-
-  @DomName('FetchEvent.clientId')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String clientId;
-
-  @DomName('FetchEvent.isReload')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool isReload;
-
-  @DomName('FetchEvent.request')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final _Request request;
-
-  @DomName('FetchEvent.respondWith')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void respondWith(Future r) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLFieldSetElement')
-@Unstable()
-@Native("HTMLFieldSetElement")
-class FieldSetElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory FieldSetElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLFieldSetElement.HTMLFieldSetElement')
-  @DocsEditable()
-  factory FieldSetElement() => JS(
-      'returns:FieldSetElement;creates:FieldSetElement;new:true',
-      '#.createElement(#)',
-      document,
-      "fieldset");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  FieldSetElement.created() : super.created();
-
-  @DomName('HTMLFieldSetElement.disabled')
-  @DocsEditable()
-  bool disabled;
-
-  @DomName('HTMLFieldSetElement.elements')
-  @DocsEditable()
-  final HtmlFormControlsCollection elements;
-
-  @DomName('HTMLFieldSetElement.form')
-  @DocsEditable()
-  final FormElement form;
-
-  @DomName('HTMLFieldSetElement.name')
-  @DocsEditable()
-  String name;
-
-  @DomName('HTMLFieldSetElement.type')
-  @DocsEditable()
-  final String type;
-
-  @DomName('HTMLFieldSetElement.validationMessage')
-  @DocsEditable()
-  final String validationMessage;
-
-  @DomName('HTMLFieldSetElement.validity')
-  @DocsEditable()
-  final ValidityState validity;
-
-  @DomName('HTMLFieldSetElement.willValidate')
-  @DocsEditable()
-  final bool willValidate;
-
-  @DomName('HTMLFieldSetElement.checkValidity')
-  @DocsEditable()
-  bool checkValidity() native;
-
-  @DomName('HTMLFieldSetElement.reportValidity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool reportValidity() native;
-
-  @DomName('HTMLFieldSetElement.setCustomValidity')
-  @DocsEditable()
-  void setCustomValidity(String error) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('File')
-@Native("File")
-class File extends Blob {
-  // To suppress missing implicit constructor warnings.
-  factory File._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('File.File')
-  @DocsEditable()
-  factory File(List<Object> fileBits, String fileName, [Map options]) {
-    if (options != null) {
-      var options_1 = convertDartToNative_Dictionary(options);
-      return File._create_1(fileBits, fileName, options_1);
-    }
-    return File._create_2(fileBits, fileName);
-  }
-  static File _create_1(fileBits, fileName, options) =>
-      JS('File', 'new File(#,#,#)', fileBits, fileName, options);
-  static File _create_2(fileBits, fileName) =>
-      JS('File', 'new File(#,#)', fileBits, fileName);
-
-  @DomName('File.lastModified')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int lastModified;
-
-  @DomName('File.lastModifiedDate')
-  @DocsEditable()
-  DateTime get lastModifiedDate =>
-      convertNativeToDart_DateTime(this._get_lastModifiedDate);
-  @JSName('lastModifiedDate')
-  @DomName('File.lastModifiedDate')
-  @DocsEditable()
-  @Creates('Null')
-  final dynamic _get_lastModifiedDate;
-
-  @DomName('File.name')
-  @DocsEditable()
-  final String name;
-
-  @JSName('webkitRelativePath')
-  @DomName('File.webkitRelativePath')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  // https://plus.sandbox.google.com/+AddyOsmani/posts/Dk5UhZ6zfF3
-  final String relativePath;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('FileEntry')
-// http://www.w3.org/TR/file-system-api/#the-fileentry-interface
-@Experimental()
-@Native("FileEntry")
-class FileEntry extends Entry {
-  // To suppress missing implicit constructor warnings.
-  factory FileEntry._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @JSName('createWriter')
-  @DomName('FileEntry.createWriter')
-  @DocsEditable()
-  void _createWriter(_FileWriterCallback successCallback,
-      [_ErrorCallback errorCallback]) native;
-
-  @JSName('createWriter')
-  @DomName('FileEntry.createWriter')
-  @DocsEditable()
-  Future<FileWriter> createWriter() {
-    var completer = new Completer<FileWriter>();
-    _createWriter((value) {
-      completer.complete(value);
-    }, (error) {
-      completer.completeError(error);
-    });
-    return completer.future;
-  }
-
-  @JSName('file')
-  @DomName('FileEntry.file')
-  @DocsEditable()
-  void _file(BlobCallback successCallback, [_ErrorCallback errorCallback])
-      native;
-
-  @JSName('file')
-  @DomName('FileEntry.file')
-  @DocsEditable()
-  Future<Blob> file() {
-    var completer = new Completer<Blob>();
-    _file((value) {
-      completer.complete(value);
-    }, (error) {
-      completer.completeError(error);
-    });
-    return completer.future;
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('FileError')
-// http://dev.w3.org/2009/dap/file-system/pub/FileSystem/
-@Experimental()
-@Native("FileError")
-class FileError extends DomError {
-  // To suppress missing implicit constructor warnings.
-  factory FileError._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('FileError.ABORT_ERR')
-  @DocsEditable()
-  static const int ABORT_ERR = 3;
-
-  @DomName('FileError.ENCODING_ERR')
-  @DocsEditable()
-  static const int ENCODING_ERR = 5;
-
-  @DomName('FileError.INVALID_MODIFICATION_ERR')
-  @DocsEditable()
-  static const int INVALID_MODIFICATION_ERR = 9;
-
-  @DomName('FileError.INVALID_STATE_ERR')
-  @DocsEditable()
-  static const int INVALID_STATE_ERR = 7;
-
-  @DomName('FileError.NOT_FOUND_ERR')
-  @DocsEditable()
-  static const int NOT_FOUND_ERR = 1;
-
-  @DomName('FileError.NOT_READABLE_ERR')
-  @DocsEditable()
-  static const int NOT_READABLE_ERR = 4;
-
-  @DomName('FileError.NO_MODIFICATION_ALLOWED_ERR')
-  @DocsEditable()
-  static const int NO_MODIFICATION_ALLOWED_ERR = 6;
-
-  @DomName('FileError.PATH_EXISTS_ERR')
-  @DocsEditable()
-  static const int PATH_EXISTS_ERR = 12;
-
-  @DomName('FileError.QUOTA_EXCEEDED_ERR')
-  @DocsEditable()
-  static const int QUOTA_EXCEEDED_ERR = 10;
-
-  @DomName('FileError.SECURITY_ERR')
-  @DocsEditable()
-  static const int SECURITY_ERR = 2;
-
-  @DomName('FileError.SYNTAX_ERR')
-  @DocsEditable()
-  static const int SYNTAX_ERR = 8;
-
-  @DomName('FileError.TYPE_MISMATCH_ERR')
-  @DocsEditable()
-  static const int TYPE_MISMATCH_ERR = 11;
-
-  @DomName('FileError.code')
-  @DocsEditable()
-  final int code;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('FileList')
-@Native("FileList")
-class FileList extends Interceptor
-    with ListMixin<File>, ImmutableListMixin<File>
-    implements List<File>, JavaScriptIndexingBehavior<File> {
-  // To suppress missing implicit constructor warnings.
-  factory FileList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('FileList.length')
-  @DocsEditable()
-  int get length => JS("int", "#.length", this);
-
-  File operator [](int index) {
-    if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
-      throw new RangeError.index(index, this);
-    return JS("File", "#[#]", this, index);
-  }
-
-  void operator []=(int index, File value) {
-    throw new UnsupportedError("Cannot assign element of immutable List.");
-  }
-  // -- start List<File> mixins.
-  // File is the element type.
-
-  set length(int value) {
-    throw new UnsupportedError("Cannot resize immutable List.");
-  }
-
-  File get first {
-    if (this.length > 0) {
-      return JS('File', '#[0]', this);
-    }
-    throw new StateError("No elements");
-  }
-
-  File get last {
-    int len = this.length;
-    if (len > 0) {
-      return JS('File', '#[#]', this, len - 1);
-    }
-    throw new StateError("No elements");
-  }
-
-  File get single {
-    int len = this.length;
-    if (len == 1) {
-      return JS('File', '#[0]', this);
-    }
-    if (len == 0) throw new StateError("No elements");
-    throw new StateError("More than one element");
-  }
-
-  File elementAt(int index) => this[index];
-  // -- end List<File> mixins.
-
-  @DomName('FileList.item')
-  @DocsEditable()
-  File item(int index) native;
-}
-// Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('FileReader')
-@Native("FileReader")
-class FileReader extends EventTarget {
-  @DomName('FileReader.result')
-  @DocsEditable()
-  Object get result {
-    var res = JS('Null|String|NativeByteBuffer', '#.result', this);
-    if (res is ByteBuffer) {
-      return new Uint8List.view(res);
-    }
-    return res;
-  }
-
-  // To suppress missing implicit constructor warnings.
-  factory FileReader._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `abort` events to event
-   * handlers that are not necessarily instances of [FileReader].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('FileReader.abortEvent')
-  @DocsEditable()
-  static const EventStreamProvider<ProgressEvent> abortEvent =
-      const EventStreamProvider<ProgressEvent>('abort');
-
-  /**
-   * Static factory designed to expose `error` events to event
-   * handlers that are not necessarily instances of [FileReader].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('FileReader.errorEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> errorEvent =
-      const EventStreamProvider<Event>('error');
-
-  /**
-   * Static factory designed to expose `load` events to event
-   * handlers that are not necessarily instances of [FileReader].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('FileReader.loadEvent')
-  @DocsEditable()
-  static const EventStreamProvider<ProgressEvent> loadEvent =
-      const EventStreamProvider<ProgressEvent>('load');
-
-  /**
-   * Static factory designed to expose `loadend` events to event
-   * handlers that are not necessarily instances of [FileReader].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('FileReader.loadendEvent')
-  @DocsEditable()
-  static const EventStreamProvider<ProgressEvent> loadEndEvent =
-      const EventStreamProvider<ProgressEvent>('loadend');
-
-  /**
-   * Static factory designed to expose `loadstart` events to event
-   * handlers that are not necessarily instances of [FileReader].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('FileReader.loadstartEvent')
-  @DocsEditable()
-  static const EventStreamProvider<ProgressEvent> loadStartEvent =
-      const EventStreamProvider<ProgressEvent>('loadstart');
-
-  /**
-   * Static factory designed to expose `progress` events to event
-   * handlers that are not necessarily instances of [FileReader].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('FileReader.progressEvent')
-  @DocsEditable()
-  static const EventStreamProvider<ProgressEvent> progressEvent =
-      const EventStreamProvider<ProgressEvent>('progress');
-
-  @DomName('FileReader.FileReader')
-  @DocsEditable()
-  factory FileReader() {
-    return FileReader._create_1();
-  }
-  static FileReader _create_1() => JS('FileReader', 'new FileReader()');
-
-  @DomName('FileReader.DONE')
-  @DocsEditable()
-  static const int DONE = 2;
-
-  @DomName('FileReader.EMPTY')
-  @DocsEditable()
-  static const int EMPTY = 0;
-
-  @DomName('FileReader.LOADING')
-  @DocsEditable()
-  static const int LOADING = 1;
-
-  @DomName('FileReader.error')
-  @DocsEditable()
-  final FileError error;
-
-  @DomName('FileReader.readyState')
-  @DocsEditable()
-  final int readyState;
-
-  @DomName('FileReader.abort')
-  @DocsEditable()
-  void abort() native;
-
-  @DomName('FileReader.readAsArrayBuffer')
-  @DocsEditable()
-  void readAsArrayBuffer(Blob blob) native;
-
-  @JSName('readAsDataURL')
-  @DomName('FileReader.readAsDataURL')
-  @DocsEditable()
-  void readAsDataUrl(Blob blob) native;
-
-  @DomName('FileReader.readAsText')
-  @DocsEditable()
-  void readAsText(Blob blob, [String label]) native;
-
-  /// Stream of `abort` events handled by this [FileReader].
-  @DomName('FileReader.onabort')
-  @DocsEditable()
-  Stream<ProgressEvent> get onAbort => abortEvent.forTarget(this);
-
-  /// Stream of `error` events handled by this [FileReader].
-  @DomName('FileReader.onerror')
-  @DocsEditable()
-  Stream<Event> get onError => errorEvent.forTarget(this);
-
-  /// Stream of `load` events handled by this [FileReader].
-  @DomName('FileReader.onload')
-  @DocsEditable()
-  Stream<ProgressEvent> get onLoad => loadEvent.forTarget(this);
-
-  /// Stream of `loadend` events handled by this [FileReader].
-  @DomName('FileReader.onloadend')
-  @DocsEditable()
-  Stream<ProgressEvent> get onLoadEnd => loadEndEvent.forTarget(this);
-
-  /// Stream of `loadstart` events handled by this [FileReader].
-  @DomName('FileReader.onloadstart')
-  @DocsEditable()
-  Stream<ProgressEvent> get onLoadStart => loadStartEvent.forTarget(this);
-
-  /// Stream of `progress` events handled by this [FileReader].
-  @DomName('FileReader.onprogress')
-  @DocsEditable()
-  Stream<ProgressEvent> get onProgress => progressEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Stream')
-@Experimental() // untriaged
-@Native("Stream")
-class FileStream extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory FileStream._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Stream.type')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String type;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DOMFileSystem')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@Experimental()
-// http://www.w3.org/TR/file-system-api/
-@Native("DOMFileSystem")
-class FileSystem extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory FileSystem._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported => JS('bool', '!!(window.webkitRequestFileSystem)');
-
-  @DomName('DOMFileSystem.name')
-  @DocsEditable()
-  final String name;
-
-  @DomName('DOMFileSystem.root')
-  @DocsEditable()
-  final DirectoryEntry root;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('FileSystemCallback')
-// http://www.w3.org/TR/file-system-api/#the-filesystemcallback-interface
-@Experimental()
-typedef void _FileSystemCallback(FileSystem fileSystem);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('FileWriter')
-// http://www.w3.org/TR/file-writer-api/#the-filewriter-interface
-@Experimental()
-@Native("FileWriter")
-class FileWriter extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory FileWriter._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `abort` events to event
-   * handlers that are not necessarily instances of [FileWriter].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('FileWriter.abortEvent')
-  @DocsEditable()
-  static const EventStreamProvider<ProgressEvent> abortEvent =
-      const EventStreamProvider<ProgressEvent>('abort');
-
-  /**
-   * Static factory designed to expose `error` events to event
-   * handlers that are not necessarily instances of [FileWriter].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('FileWriter.errorEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> errorEvent =
-      const EventStreamProvider<Event>('error');
-
-  /**
-   * Static factory designed to expose `progress` events to event
-   * handlers that are not necessarily instances of [FileWriter].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('FileWriter.progressEvent')
-  @DocsEditable()
-  static const EventStreamProvider<ProgressEvent> progressEvent =
-      const EventStreamProvider<ProgressEvent>('progress');
-
-  /**
-   * Static factory designed to expose `write` events to event
-   * handlers that are not necessarily instances of [FileWriter].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('FileWriter.writeEvent')
-  @DocsEditable()
-  static const EventStreamProvider<ProgressEvent> writeEvent =
-      const EventStreamProvider<ProgressEvent>('write');
-
-  /**
-   * Static factory designed to expose `writeend` events to event
-   * handlers that are not necessarily instances of [FileWriter].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('FileWriter.writeendEvent')
-  @DocsEditable()
-  static const EventStreamProvider<ProgressEvent> writeEndEvent =
-      const EventStreamProvider<ProgressEvent>('writeend');
-
-  /**
-   * Static factory designed to expose `writestart` events to event
-   * handlers that are not necessarily instances of [FileWriter].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('FileWriter.writestartEvent')
-  @DocsEditable()
-  static const EventStreamProvider<ProgressEvent> writeStartEvent =
-      const EventStreamProvider<ProgressEvent>('writestart');
-
-  @DomName('FileWriter.DONE')
-  @DocsEditable()
-  static const int DONE = 2;
-
-  @DomName('FileWriter.INIT')
-  @DocsEditable()
-  static const int INIT = 0;
-
-  @DomName('FileWriter.WRITING')
-  @DocsEditable()
-  static const int WRITING = 1;
-
-  @DomName('FileWriter.error')
-  @DocsEditable()
-  final FileError error;
-
-  @DomName('FileWriter.length')
-  @DocsEditable()
-  final int length;
-
-  @DomName('FileWriter.position')
-  @DocsEditable()
-  final int position;
-
-  @DomName('FileWriter.readyState')
-  @DocsEditable()
-  final int readyState;
-
-  @DomName('FileWriter.abort')
-  @DocsEditable()
-  void abort() native;
-
-  @DomName('FileWriter.seek')
-  @DocsEditable()
-  void seek(int position) native;
-
-  @DomName('FileWriter.truncate')
-  @DocsEditable()
-  void truncate(int size) native;
-
-  @DomName('FileWriter.write')
-  @DocsEditable()
-  void write(Blob data) native;
-
-  /// Stream of `abort` events handled by this [FileWriter].
-  @DomName('FileWriter.onabort')
-  @DocsEditable()
-  Stream<ProgressEvent> get onAbort => abortEvent.forTarget(this);
-
-  /// Stream of `error` events handled by this [FileWriter].
-  @DomName('FileWriter.onerror')
-  @DocsEditable()
-  Stream<Event> get onError => errorEvent.forTarget(this);
-
-  /// Stream of `progress` events handled by this [FileWriter].
-  @DomName('FileWriter.onprogress')
-  @DocsEditable()
-  Stream<ProgressEvent> get onProgress => progressEvent.forTarget(this);
-
-  /// Stream of `write` events handled by this [FileWriter].
-  @DomName('FileWriter.onwrite')
-  @DocsEditable()
-  Stream<ProgressEvent> get onWrite => writeEvent.forTarget(this);
-
-  /// Stream of `writeend` events handled by this [FileWriter].
-  @DomName('FileWriter.onwriteend')
-  @DocsEditable()
-  Stream<ProgressEvent> get onWriteEnd => writeEndEvent.forTarget(this);
-
-  /// Stream of `writestart` events handled by this [FileWriter].
-  @DomName('FileWriter.onwritestart')
-  @DocsEditable()
-  Stream<ProgressEvent> get onWriteStart => writeStartEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('FileWriterCallback')
-// http://www.w3.org/TR/file-writer-api/#idl-def-FileWriter
-@Experimental()
-typedef void _FileWriterCallback(FileWriter fileWriter);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('FocusEvent')
-@Native("FocusEvent")
-class FocusEvent extends UIEvent {
-  // To suppress missing implicit constructor warnings.
-  factory FocusEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('FocusEvent.FocusEvent')
-  @DocsEditable()
-  factory FocusEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return FocusEvent._create_1(type, eventInitDict_1);
-    }
-    return FocusEvent._create_2(type);
-  }
-  static FocusEvent _create_1(type, eventInitDict) =>
-      JS('FocusEvent', 'new FocusEvent(#,#)', type, eventInitDict);
-  static FocusEvent _create_2(type) =>
-      JS('FocusEvent', 'new FocusEvent(#)', type);
-
-  @DomName('FocusEvent.relatedTarget')
-  @DocsEditable()
-  EventTarget get relatedTarget =>
-      _convertNativeToDart_EventTarget(this._get_relatedTarget);
-  @JSName('relatedTarget')
-  @DomName('FocusEvent.relatedTarget')
-  @DocsEditable()
-  @Creates('Null')
-  final dynamic _get_relatedTarget;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('FontFace')
-@Experimental() // untriaged
-@Native("FontFace")
-class FontFace extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory FontFace._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('FontFace.FontFace')
-  @DocsEditable()
-  factory FontFace(String family, Object source, [Map descriptors]) {
-    if (descriptors != null) {
-      var descriptors_1 = convertDartToNative_Dictionary(descriptors);
-      return FontFace._create_1(family, source, descriptors_1);
-    }
-    return FontFace._create_2(family, source);
-  }
-  static FontFace _create_1(family, source, descriptors) =>
-      JS('FontFace', 'new FontFace(#,#,#)', family, source, descriptors);
-  static FontFace _create_2(family, source) =>
-      JS('FontFace', 'new FontFace(#,#)', family, source);
-
-  @DomName('FontFace.family')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String family;
-
-  @DomName('FontFace.featureSettings')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String featureSettings;
-
-  @DomName('FontFace.loaded')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Future loaded;
-
-  @DomName('FontFace.status')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String status;
-
-  @DomName('FontFace.stretch')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String stretch;
-
-  @DomName('FontFace.style')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String style;
-
-  @DomName('FontFace.unicodeRange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String unicodeRange;
-
-  @DomName('FontFace.variant')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String variant;
-
-  @DomName('FontFace.weight')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String weight;
-
-  @DomName('FontFace.load')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future load() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('FontFaceSet')
-@Experimental() // untriaged
-@Native("FontFaceSet")
-class FontFaceSet extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory FontFaceSet._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('FontFaceSet.size')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int size;
-
-  @DomName('FontFaceSet.status')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String status;
-
-  @DomName('FontFaceSet.add')
-  @DocsEditable()
-  @Experimental() // untriaged
-  FontFaceSet add(FontFace arg) native;
-
-  @DomName('FontFaceSet.check')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool check(String font, [String text]) native;
-
-  @DomName('FontFaceSet.clear')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void clear() native;
-
-  @DomName('FontFaceSet.delete')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool delete(FontFace arg) native;
-
-  @DomName('FontFaceSet.forEach')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void forEach(FontFaceSetForEachCallback callback, [Object thisArg]) native;
-
-  @DomName('FontFaceSet.has')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool has(FontFace arg) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('FontFaceSetLoadEvent')
-@Experimental() // untriaged
-@Native("FontFaceSetLoadEvent")
-class FontFaceSetLoadEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory FontFaceSetLoadEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('FontFaceSetLoadEvent.fontfaces')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final List<FontFace> fontfaces;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('FormData')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Native("FormData")
-class FormData extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory FormData._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('FormData.FormData')
-  @DocsEditable()
-  factory FormData([FormElement form]) {
-    if (form != null) {
-      return FormData._create_1(form);
-    }
-    return FormData._create_2();
-  }
-  static FormData _create_1(form) => JS('FormData', 'new FormData(#)', form);
-  static FormData _create_2() => JS('FormData', 'new FormData()');
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported => JS('bool', '!!(window.FormData)');
-
-  @DomName('FormData.append')
-  @DocsEditable()
-  void append(String name, String value) native;
-
-  @JSName('append')
-  @DomName('FormData.append')
-  @DocsEditable()
-  void appendBlob(String name, Blob value, [String filename]) native;
-
-  @DomName('FormData.delete')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void delete(String name) native;
-
-  @DomName('FormData.get')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object get(String name) native;
-
-  @DomName('FormData.getAll')
-  @DocsEditable()
-  @Experimental() // untriaged
-  List<Object> getAll(String name) native;
-
-  @DomName('FormData.has')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool has(String name) native;
-
-  @DomName('FormData.set')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void set(String name, value, [String filename]) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLFormElement')
-@Native("HTMLFormElement")
-class FormElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory FormElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLFormElement.HTMLFormElement')
-  @DocsEditable()
-  factory FormElement() => JS(
-      'returns:FormElement;creates:FormElement;new:true',
-      '#.createElement(#)',
-      document,
-      "form");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  FormElement.created() : super.created();
-
-  @DomName('HTMLFormElement.acceptCharset')
-  @DocsEditable()
-  String acceptCharset;
-
-  @DomName('HTMLFormElement.action')
-  @DocsEditable()
-  String action;
-
-  @DomName('HTMLFormElement.autocomplete')
-  @DocsEditable()
-  // http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#autofilling-form-controls:-the-autocomplete-attribute
-  @Experimental()
-  String autocomplete;
-
-  @DomName('HTMLFormElement.encoding')
-  @DocsEditable()
-  String encoding;
-
-  @DomName('HTMLFormElement.enctype')
-  @DocsEditable()
-  String enctype;
-
-  @DomName('HTMLFormElement.length')
-  @DocsEditable()
-  final int length;
-
-  @DomName('HTMLFormElement.method')
-  @DocsEditable()
-  String method;
-
-  @DomName('HTMLFormElement.name')
-  @DocsEditable()
-  String name;
-
-  @DomName('HTMLFormElement.noValidate')
-  @DocsEditable()
-  bool noValidate;
-
-  @DomName('HTMLFormElement.target')
-  @DocsEditable()
-  String target;
-
-  @DomName('HTMLFormElement.__getter__')
-  @DocsEditable()
-  Object __getter__(String name) native;
-
-  @DomName('HTMLFormElement.checkValidity')
-  @DocsEditable()
-  bool checkValidity() native;
-
-  @DomName('HTMLFormElement.item')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Element item(int index) native;
-
-  @DomName('HTMLFormElement.reportValidity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool reportValidity() native;
-
-  @DomName('HTMLFormElement.requestAutocomplete')
-  @DocsEditable()
-  // http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-October/037711.html
-  @Experimental()
-  void requestAutocomplete(Map details) {
-    var details_1 = convertDartToNative_Dictionary(details);
-    _requestAutocomplete_1(details_1);
-    return;
-  }
-
-  @JSName('requestAutocomplete')
-  @DomName('HTMLFormElement.requestAutocomplete')
-  @DocsEditable()
-  // http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-October/037711.html
-  @Experimental()
-  void _requestAutocomplete_1(details) native;
-
-  @DomName('HTMLFormElement.reset')
-  @DocsEditable()
-  void reset() native;
-
-  @DomName('HTMLFormElement.submit')
-  @DocsEditable()
-  void submit() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('FrameRequestCallback')
-@Experimental() // untriaged
-typedef void FrameRequestCallback(num highResTime);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Gamepad')
-// https://dvcs.w3.org/hg/gamepad/raw-file/default/gamepad.html#gamepad-interface
-@Experimental()
-@Native("Gamepad")
-class Gamepad extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Gamepad._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Gamepad.axes')
-  @DocsEditable()
-  final List<num> axes;
-
-  @DomName('Gamepad.buttons')
-  @DocsEditable()
-  @Creates('JSExtendableArray|GamepadButton')
-  @Returns('JSExtendableArray')
-  final List<GamepadButton> buttons;
-
-  @DomName('Gamepad.connected')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool connected;
-
-  @DomName('Gamepad.id')
-  @DocsEditable()
-  final String id;
-
-  @DomName('Gamepad.index')
-  @DocsEditable()
-  final int index;
-
-  @DomName('Gamepad.mapping')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String mapping;
-
-  @DomName('Gamepad.timestamp')
-  @DocsEditable()
-  final int timestamp;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('GamepadButton')
-@Experimental() // untriaged
-@Native("GamepadButton")
-class GamepadButton extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory GamepadButton._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('GamepadButton.pressed')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool pressed;
-
-  @DomName('GamepadButton.value')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double value;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('GamepadEvent')
-@Experimental() // untriaged
-@Native("GamepadEvent")
-class GamepadEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory GamepadEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('GamepadEvent.GamepadEvent')
-  @DocsEditable()
-  factory GamepadEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return GamepadEvent._create_1(type, eventInitDict_1);
-    }
-    return GamepadEvent._create_2(type);
-  }
-  static GamepadEvent _create_1(type, eventInitDict) =>
-      JS('GamepadEvent', 'new GamepadEvent(#,#)', type, eventInitDict);
-  static GamepadEvent _create_2(type) =>
-      JS('GamepadEvent', 'new GamepadEvent(#)', type);
-
-  @DomName('GamepadEvent.gamepad')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Gamepad gamepad;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Geofencing')
-@Experimental() // untriaged
-@Native("Geofencing")
-class Geofencing extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Geofencing._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Geofencing.getRegisteredRegions')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future getRegisteredRegions() native;
-
-  @DomName('Geofencing.registerRegion')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future registerRegion(GeofencingRegion region) native;
-
-  @DomName('Geofencing.unregisterRegion')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future unregisterRegion(String regionId) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('GeofencingEvent')
-@Experimental() // untriaged
-@Native("GeofencingEvent")
-class GeofencingEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory GeofencingEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('GeofencingEvent.id')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String id;
-
-  @DomName('GeofencingEvent.region')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final GeofencingRegion region;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('GeofencingRegion')
-@Experimental() // untriaged
-@Native("GeofencingRegion")
-class GeofencingRegion extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory GeofencingRegion._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('GeofencingRegion.id')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String id;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Geolocation')
-@Unstable()
-@Native("Geolocation")
-class Geolocation extends Interceptor {
-  @DomName('Geolocation.getCurrentPosition')
-  Future<Geoposition> getCurrentPosition(
-      {bool enableHighAccuracy, Duration timeout, Duration maximumAge}) {
-    var options = {};
-    if (enableHighAccuracy != null) {
-      options['enableHighAccuracy'] = enableHighAccuracy;
-    }
-    if (timeout != null) {
-      options['timeout'] = timeout.inMilliseconds;
-    }
-    if (maximumAge != null) {
-      options['maximumAge'] = maximumAge.inMilliseconds;
-    }
-    var completer = new Completer<Geoposition>();
-    try {
-      _getCurrentPosition((position) {
-        completer.complete(_ensurePosition(position));
-      }, (error) {
-        completer.completeError(error);
-      }, options);
-    } catch (e, stacktrace) {
-      completer.completeError(e, stacktrace);
-    }
-    return completer.future;
-  }
-
-  @DomName('Geolocation.watchPosition')
-  Stream<Geoposition> watchPosition(
-      {bool enableHighAccuracy, Duration timeout, Duration maximumAge}) {
-    var options = {};
-    if (enableHighAccuracy != null) {
-      options['enableHighAccuracy'] = enableHighAccuracy;
-    }
-    if (timeout != null) {
-      options['timeout'] = timeout.inMilliseconds;
-    }
-    if (maximumAge != null) {
-      options['maximumAge'] = maximumAge.inMilliseconds;
-    }
-
-    int watchId;
-    // TODO(jacobr): it seems like a bug that we have to specifiy the static
-    // type here for controller.stream to have the right type.
-    // dartbug.com/26278
-    StreamController<Geoposition> controller;
-    controller = new StreamController<Geoposition>(
-        sync: true,
-        onListen: () {
-          assert(watchId == null);
-          watchId = _watchPosition((position) {
-            controller.add(_ensurePosition(position));
-          }, (error) {
-            controller.addError(error);
-          }, options);
-        },
-        onCancel: () {
-          assert(watchId != null);
-          _clearWatch(watchId);
-        });
-
-    return controller.stream;
-  }
-
-  Geoposition _ensurePosition(domPosition) {
-    try {
-      // Firefox may throw on this.
-      if (domPosition is Geoposition) {
-        return domPosition;
-      }
-    } catch (e) {}
-    return new _GeopositionWrapper(domPosition);
-  }
-
-  // To suppress missing implicit constructor warnings.
-  factory Geolocation._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @JSName('clearWatch')
-  @DomName('Geolocation.clearWatch')
-  @DocsEditable()
-  void _clearWatch(int watchID) native;
-
-  @DomName('Geolocation.getCurrentPosition')
-  @DocsEditable()
-  void _getCurrentPosition(_PositionCallback successCallback,
-      [_PositionErrorCallback errorCallback, Map options]) {
-    if (options != null) {
-      var options_1 = convertDartToNative_Dictionary(options);
-      _getCurrentPosition_1(successCallback, errorCallback, options_1);
-      return;
-    }
-    if (errorCallback != null) {
-      _getCurrentPosition_2(successCallback, errorCallback);
-      return;
-    }
-    _getCurrentPosition_3(successCallback);
-    return;
-  }
-
-  @JSName('getCurrentPosition')
-  @DomName('Geolocation.getCurrentPosition')
-  @DocsEditable()
-  void _getCurrentPosition_1(_PositionCallback successCallback,
-      _PositionErrorCallback errorCallback, options) native;
-  @JSName('getCurrentPosition')
-  @DomName('Geolocation.getCurrentPosition')
-  @DocsEditable()
-  void _getCurrentPosition_2(_PositionCallback successCallback,
-      _PositionErrorCallback errorCallback) native;
-  @JSName('getCurrentPosition')
-  @DomName('Geolocation.getCurrentPosition')
-  @DocsEditable()
-  void _getCurrentPosition_3(_PositionCallback successCallback) native;
-
-  @DomName('Geolocation.watchPosition')
-  @DocsEditable()
-  int _watchPosition(_PositionCallback successCallback,
-      [_PositionErrorCallback errorCallback, Map options]) {
-    if (options != null) {
-      var options_1 = convertDartToNative_Dictionary(options);
-      return _watchPosition_1(successCallback, errorCallback, options_1);
-    }
-    if (errorCallback != null) {
-      return _watchPosition_2(successCallback, errorCallback);
-    }
-    return _watchPosition_3(successCallback);
-  }
-
-  @JSName('watchPosition')
-  @DomName('Geolocation.watchPosition')
-  @DocsEditable()
-  int _watchPosition_1(_PositionCallback successCallback,
-      _PositionErrorCallback errorCallback, options) native;
-  @JSName('watchPosition')
-  @DomName('Geolocation.watchPosition')
-  @DocsEditable()
-  int _watchPosition_2(_PositionCallback successCallback,
-      _PositionErrorCallback errorCallback) native;
-  @JSName('watchPosition')
-  @DomName('Geolocation.watchPosition')
-  @DocsEditable()
-  int _watchPosition_3(_PositionCallback successCallback) native;
-}
-
-/**
- * Wrapper for Firefox- it returns an object which we cannot map correctly.
- * Basically Firefox was returning a [xpconnect wrapped nsIDOMGeoPosition] but
- * which has further oddities.
- */
-class _GeopositionWrapper implements Geoposition {
-  var _ptr;
-  _GeopositionWrapper(this._ptr);
-
-  Coordinates get coords => JS('Coordinates', '#.coords', _ptr);
-  int get timestamp => JS('int', '#.timestamp', _ptr);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Geoposition')
-@Unstable()
-@Native("Geoposition")
-class Geoposition extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Geoposition._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Geoposition.coords')
-  @DocsEditable()
-  final Coordinates coords;
-
-  @DomName('Geoposition.timestamp')
-  @DocsEditable()
-  final int timestamp;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// We implement EventTarget and have stubs for its methods because it's tricky to
-// convince the scripts to make our instance methods abstract, and the bodies that
-// get generated require `this` to be an EventTarget.
-@DocsEditable()
-@DomName('GlobalEventHandlers')
-@Experimental() // untriaged
-abstract class GlobalEventHandlers implements EventTarget {
-  void addEventListener(String type, dynamic listener(Event event),
-      [bool useCapture]);
-  bool dispatchEvent(Event event);
-  void removeEventListener(String type, dynamic listener(Event event),
-      [bool useCapture]);
-  Events get on;
-
-  // To suppress missing implicit constructor warnings.
-  factory GlobalEventHandlers._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('GlobalEventHandlers.abortEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> abortEvent =
-      const EventStreamProvider<Event>('abort');
-
-  @DomName('GlobalEventHandlers.blurEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> blurEvent =
-      const EventStreamProvider<Event>('blur');
-
-  @DomName('GlobalEventHandlers.canplayEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> canPlayEvent =
-      const EventStreamProvider<Event>('canplay');
-
-  @DomName('GlobalEventHandlers.canplaythroughEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> canPlayThroughEvent =
-      const EventStreamProvider<Event>('canplaythrough');
-
-  @DomName('GlobalEventHandlers.changeEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> changeEvent =
-      const EventStreamProvider<Event>('change');
-
-  @DomName('GlobalEventHandlers.clickEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> clickEvent =
-      const EventStreamProvider<MouseEvent>('click');
-
-  @DomName('GlobalEventHandlers.contextmenuEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> contextMenuEvent =
-      const EventStreamProvider<MouseEvent>('contextmenu');
-
-  @DomName('GlobalEventHandlers.dblclickEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> doubleClickEvent =
-      const EventStreamProvider<Event>('dblclick');
-
-  @DomName('GlobalEventHandlers.dragEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> dragEvent =
-      const EventStreamProvider<MouseEvent>('drag');
-
-  @DomName('GlobalEventHandlers.dragendEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> dragEndEvent =
-      const EventStreamProvider<MouseEvent>('dragend');
-
-  @DomName('GlobalEventHandlers.dragenterEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> dragEnterEvent =
-      const EventStreamProvider<MouseEvent>('dragenter');
-
-  @DomName('GlobalEventHandlers.dragleaveEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> dragLeaveEvent =
-      const EventStreamProvider<MouseEvent>('dragleave');
-
-  @DomName('GlobalEventHandlers.dragoverEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> dragOverEvent =
-      const EventStreamProvider<MouseEvent>('dragover');
-
-  @DomName('GlobalEventHandlers.dragstartEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> dragStartEvent =
-      const EventStreamProvider<MouseEvent>('dragstart');
-
-  @DomName('GlobalEventHandlers.dropEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> dropEvent =
-      const EventStreamProvider<MouseEvent>('drop');
-
-  @DomName('GlobalEventHandlers.durationchangeEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> durationChangeEvent =
-      const EventStreamProvider<Event>('durationchange');
-
-  @DomName('GlobalEventHandlers.emptiedEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> emptiedEvent =
-      const EventStreamProvider<Event>('emptied');
-
-  @DomName('GlobalEventHandlers.endedEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> endedEvent =
-      const EventStreamProvider<Event>('ended');
-
-  @DomName('GlobalEventHandlers.errorEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> errorEvent =
-      const EventStreamProvider<Event>('error');
-
-  @DomName('GlobalEventHandlers.focusEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> focusEvent =
-      const EventStreamProvider<Event>('focus');
-
-  @DomName('GlobalEventHandlers.inputEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> inputEvent =
-      const EventStreamProvider<Event>('input');
-
-  @DomName('GlobalEventHandlers.invalidEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> invalidEvent =
-      const EventStreamProvider<Event>('invalid');
-
-  @DomName('GlobalEventHandlers.keydownEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<KeyboardEvent> keyDownEvent =
-      const EventStreamProvider<KeyboardEvent>('keydown');
-
-  @DomName('GlobalEventHandlers.keypressEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<KeyboardEvent> keyPressEvent =
-      const EventStreamProvider<KeyboardEvent>('keypress');
-
-  @DomName('GlobalEventHandlers.keyupEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<KeyboardEvent> keyUpEvent =
-      const EventStreamProvider<KeyboardEvent>('keyup');
-
-  @DomName('GlobalEventHandlers.loadEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> loadEvent =
-      const EventStreamProvider<Event>('load');
-
-  @DomName('GlobalEventHandlers.loadeddataEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> loadedDataEvent =
-      const EventStreamProvider<Event>('loadeddata');
-
-  @DomName('GlobalEventHandlers.loadedmetadataEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> loadedMetadataEvent =
-      const EventStreamProvider<Event>('loadedmetadata');
-
-  @DomName('GlobalEventHandlers.mousedownEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> mouseDownEvent =
-      const EventStreamProvider<MouseEvent>('mousedown');
-
-  @DomName('GlobalEventHandlers.mouseenterEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> mouseEnterEvent =
-      const EventStreamProvider<MouseEvent>('mouseenter');
-
-  @DomName('GlobalEventHandlers.mouseleaveEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> mouseLeaveEvent =
-      const EventStreamProvider<MouseEvent>('mouseleave');
-
-  @DomName('GlobalEventHandlers.mousemoveEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> mouseMoveEvent =
-      const EventStreamProvider<MouseEvent>('mousemove');
-
-  @DomName('GlobalEventHandlers.mouseoutEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> mouseOutEvent =
-      const EventStreamProvider<MouseEvent>('mouseout');
-
-  @DomName('GlobalEventHandlers.mouseoverEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> mouseOverEvent =
-      const EventStreamProvider<MouseEvent>('mouseover');
-
-  @DomName('GlobalEventHandlers.mouseupEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> mouseUpEvent =
-      const EventStreamProvider<MouseEvent>('mouseup');
-
-  @DomName('GlobalEventHandlers.mousewheelEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<WheelEvent> mouseWheelEvent =
-      const EventStreamProvider<WheelEvent>('mousewheel');
-
-  @DomName('GlobalEventHandlers.pauseEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> pauseEvent =
-      const EventStreamProvider<Event>('pause');
-
-  @DomName('GlobalEventHandlers.playEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> playEvent =
-      const EventStreamProvider<Event>('play');
-
-  @DomName('GlobalEventHandlers.playingEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> playingEvent =
-      const EventStreamProvider<Event>('playing');
-
-  @DomName('GlobalEventHandlers.ratechangeEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> rateChangeEvent =
-      const EventStreamProvider<Event>('ratechange');
-
-  @DomName('GlobalEventHandlers.resetEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> resetEvent =
-      const EventStreamProvider<Event>('reset');
-
-  @DomName('GlobalEventHandlers.resizeEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> resizeEvent =
-      const EventStreamProvider<Event>('resize');
-
-  @DomName('GlobalEventHandlers.scrollEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> scrollEvent =
-      const EventStreamProvider<Event>('scroll');
-
-  @DomName('GlobalEventHandlers.seekedEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> seekedEvent =
-      const EventStreamProvider<Event>('seeked');
-
-  @DomName('GlobalEventHandlers.seekingEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> seekingEvent =
-      const EventStreamProvider<Event>('seeking');
-
-  @DomName('GlobalEventHandlers.selectEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> selectEvent =
-      const EventStreamProvider<Event>('select');
-
-  @DomName('GlobalEventHandlers.stalledEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> stalledEvent =
-      const EventStreamProvider<Event>('stalled');
-
-  @DomName('GlobalEventHandlers.submitEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> submitEvent =
-      const EventStreamProvider<Event>('submit');
-
-  @DomName('GlobalEventHandlers.suspendEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> suspendEvent =
-      const EventStreamProvider<Event>('suspend');
-
-  @DomName('GlobalEventHandlers.timeupdateEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> timeUpdateEvent =
-      const EventStreamProvider<Event>('timeupdate');
-
-  @DomName('GlobalEventHandlers.touchcancelEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<TouchEvent> touchCancelEvent =
-      const EventStreamProvider<TouchEvent>('touchcancel');
-
-  @DomName('GlobalEventHandlers.touchendEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<TouchEvent> touchEndEvent =
-      const EventStreamProvider<TouchEvent>('touchend');
-
-  @DomName('GlobalEventHandlers.touchmoveEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<TouchEvent> touchMoveEvent =
-      const EventStreamProvider<TouchEvent>('touchmove');
-
-  @DomName('GlobalEventHandlers.touchstartEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<TouchEvent> touchStartEvent =
-      const EventStreamProvider<TouchEvent>('touchstart');
-
-  @DomName('GlobalEventHandlers.volumechangeEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> volumeChangeEvent =
-      const EventStreamProvider<Event>('volumechange');
-
-  @DomName('GlobalEventHandlers.waitingEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> waitingEvent =
-      const EventStreamProvider<Event>('waiting');
-
-  @DomName('GlobalEventHandlers.onabort')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onAbort => abortEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onblur')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onBlur => blurEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.oncanplay')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onCanPlay => canPlayEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.oncanplaythrough')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onCanPlayThrough => canPlayThroughEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onchange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onChange => changeEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onclick')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<MouseEvent> get onClick => clickEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.oncontextmenu')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<MouseEvent> get onContextMenu => contextMenuEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.ondblclick')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onDoubleClick => doubleClickEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.ondrag')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<MouseEvent> get onDrag => dragEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.ondragend')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<MouseEvent> get onDragEnd => dragEndEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.ondragenter')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<MouseEvent> get onDragEnter => dragEnterEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.ondragleave')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<MouseEvent> get onDragLeave => dragLeaveEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.ondragover')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<MouseEvent> get onDragOver => dragOverEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.ondragstart')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<MouseEvent> get onDragStart => dragStartEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.ondrop')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<MouseEvent> get onDrop => dropEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.ondurationchange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onDurationChange => durationChangeEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onemptied')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onEmptied => emptiedEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onended')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onEnded => endedEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onerror')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onError => errorEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onfocus')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onFocus => focusEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.oninput')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onInput => inputEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.oninvalid')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onInvalid => invalidEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onkeydown')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<KeyboardEvent> get onKeyDown => keyDownEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onkeypress')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<KeyboardEvent> get onKeyPress => keyPressEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onkeyup')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<KeyboardEvent> get onKeyUp => keyUpEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onload')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onLoad => loadEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onloadeddata')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onLoadedData => loadedDataEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onloadedmetadata')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onLoadedMetadata => loadedMetadataEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onmousedown')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<MouseEvent> get onMouseDown => mouseDownEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onmouseenter')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<MouseEvent> get onMouseEnter => mouseEnterEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onmouseleave')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<MouseEvent> get onMouseLeave => mouseLeaveEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onmousemove')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<MouseEvent> get onMouseMove => mouseMoveEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onmouseout')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<MouseEvent> get onMouseOut => mouseOutEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onmouseover')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<MouseEvent> get onMouseOver => mouseOverEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onmouseup')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<MouseEvent> get onMouseUp => mouseUpEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onmousewheel')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<WheelEvent> get onMouseWheel => mouseWheelEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onpause')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onPause => pauseEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onplay')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onPlay => playEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onplaying')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onPlaying => playingEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onratechange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onRateChange => rateChangeEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onreset')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onReset => resetEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onresize')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onResize => resizeEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onscroll')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onScroll => scrollEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onseeked')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onSeeked => seekedEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onseeking')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onSeeking => seekingEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onselect')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onSelect => selectEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onstalled')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onStalled => stalledEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onsubmit')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onSubmit => submitEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onsuspend')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onSuspend => suspendEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.ontimeupdate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onTimeUpdate => timeUpdateEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.ontouchcancel')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<TouchEvent> get onTouchCancel => touchCancelEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.ontouchend')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<TouchEvent> get onTouchEnd => touchEndEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.ontouchmove')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<TouchEvent> get onTouchMove => touchMoveEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.ontouchstart')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<TouchEvent> get onTouchStart => touchStartEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onvolumechange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onVolumeChange => volumeChangeEvent.forTarget(this);
-
-  @DomName('GlobalEventHandlers.onwaiting')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onWaiting => waitingEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-/**
- * An `<hr>` tag.
- */
-@DomName('HTMLHRElement')
-@Native("HTMLHRElement")
-class HRElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory HRElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLHRElement.HTMLHRElement')
-  @DocsEditable()
-  factory HRElement() => JS('returns:HRElement;creates:HRElement;new:true',
-      '#.createElement(#)', document, "hr");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  HRElement.created() : super.created();
-
-  @DomName('HTMLHRElement.color')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String color;
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('HashChangeEvent')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("HashChangeEvent")
-class HashChangeEvent extends Event {
-  factory HashChangeEvent(String type,
-      {bool canBubble: true,
-      bool cancelable: true,
-      String oldUrl,
-      String newUrl}) {
-    var options = {
-      'canBubble': canBubble,
-      'cancelable': cancelable,
-      'oldURL': oldUrl,
-      'newURL': newUrl,
-    };
-    return JS('HashChangeEvent', 'new HashChangeEvent(#, #)', type,
-        convertDartToNative_Dictionary(options));
-  }
-
-  @DomName('HashChangeEvent.HashChangeEvent')
-  @DocsEditable()
-  factory HashChangeEvent._(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return HashChangeEvent._create_1(type, eventInitDict_1);
-    }
-    return HashChangeEvent._create_2(type);
-  }
-  static HashChangeEvent _create_1(type, eventInitDict) =>
-      JS('HashChangeEvent', 'new HashChangeEvent(#,#)', type, eventInitDict);
-  static HashChangeEvent _create_2(type) =>
-      JS('HashChangeEvent', 'new HashChangeEvent(#)', type);
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported => Device.isEventTypeSupported('HashChangeEvent');
-
-  @JSName('newURL')
-  @DomName('HashChangeEvent.newURL')
-  @DocsEditable()
-  final String newUrl;
-
-  @JSName('oldURL')
-  @DomName('HashChangeEvent.oldURL')
-  @DocsEditable()
-  final String oldUrl;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLHeadElement')
-@Native("HTMLHeadElement")
-class HeadElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory HeadElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLHeadElement.HTMLHeadElement')
-  @DocsEditable()
-  factory HeadElement() => JS(
-      'returns:HeadElement;creates:HeadElement;new:true',
-      '#.createElement(#)',
-      document,
-      "head");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  HeadElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Headers')
-@Experimental() // untriaged
-@Native("Headers")
-class Headers extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Headers._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Headers.Headers')
-  @DocsEditable()
-  factory Headers([input]) {
-    if (input == null) {
-      return Headers._create_1();
-    }
-    if ((input is Headers)) {
-      return Headers._create_2(input);
-    }
-    if ((input is Map)) {
-      var input_1 = convertDartToNative_Dictionary(input);
-      return Headers._create_3(input_1);
-    }
-    if ((input is List<Object>)) {
-      return Headers._create_4(input);
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-  static Headers _create_1() => JS('Headers', 'new Headers()');
-  static Headers _create_2(input) => JS('Headers', 'new Headers(#)', input);
-  static Headers _create_3(input) => JS('Headers', 'new Headers(#)', input);
-  static Headers _create_4(input) => JS('Headers', 'new Headers(#)', input);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLHeadingElement')
-@Native("HTMLHeadingElement")
-class HeadingElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory HeadingElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLHeadingElement.HTMLHeadingElement')
-  @DocsEditable()
-  factory HeadingElement.h1() => JS(
-      'returns:HeadingElement;creates:HeadingElement;new:true',
-      '#.createElement(#)',
-      document,
-      "h1");
-
-  @DomName('HTMLHeadingElement.HTMLHeadingElement')
-  @DocsEditable()
-  factory HeadingElement.h2() => JS(
-      'returns:HeadingElement;creates:HeadingElement;new:true',
-      '#.createElement(#)',
-      document,
-      "h2");
-
-  @DomName('HTMLHeadingElement.HTMLHeadingElement')
-  @DocsEditable()
-  factory HeadingElement.h3() => JS(
-      'returns:HeadingElement;creates:HeadingElement;new:true',
-      '#.createElement(#)',
-      document,
-      "h3");
-
-  @DomName('HTMLHeadingElement.HTMLHeadingElement')
-  @DocsEditable()
-  factory HeadingElement.h4() => JS(
-      'returns:HeadingElement;creates:HeadingElement;new:true',
-      '#.createElement(#)',
-      document,
-      "h4");
-
-  @DomName('HTMLHeadingElement.HTMLHeadingElement')
-  @DocsEditable()
-  factory HeadingElement.h5() => JS(
-      'returns:HeadingElement;creates:HeadingElement;new:true',
-      '#.createElement(#)',
-      document,
-      "h5");
-
-  @DomName('HTMLHeadingElement.HTMLHeadingElement')
-  @DocsEditable()
-  factory HeadingElement.h6() => JS(
-      'returns:HeadingElement;creates:HeadingElement;new:true',
-      '#.createElement(#)',
-      document,
-      "h6");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  HeadingElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('History')
-@Native("History")
-class History extends Interceptor implements HistoryBase {
-  /**
-   * Checks if the State APIs are supported on the current platform.
-   *
-   * See also:
-   *
-   * * [pushState]
-   * * [replaceState]
-   * * [state]
-   */
-  static bool get supportsState => JS('bool', '!!window.history.pushState');
-  // To suppress missing implicit constructor warnings.
-  factory History._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('History.length')
-  @DocsEditable()
-  final int length;
-
-  @DomName('History.scrollRestoration')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String scrollRestoration;
-
-  @DomName('History.state')
-  @DocsEditable()
-  dynamic get state =>
-      convertNativeToDart_SerializedScriptValue(this._get_state);
-  @JSName('state')
-  @DomName('History.state')
-  @DocsEditable()
-  @annotation_Creates_SerializedScriptValue
-  @annotation_Returns_SerializedScriptValue
-  final dynamic _get_state;
-
-  @DomName('History.back')
-  @DocsEditable()
-  void back() native;
-
-  @DomName('History.forward')
-  @DocsEditable()
-  void forward() native;
-
-  @DomName('History.go')
-  @DocsEditable()
-  void go([int delta]) native;
-
-  @DomName('History.pushState')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.FIREFOX)
-  @SupportedBrowser(SupportedBrowser.IE, '10')
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  void pushState(/*SerializedScriptValue*/ data, String title, String url) {
-    var data_1 = convertDartToNative_SerializedScriptValue(data);
-    _pushState_1(data_1, title, url);
-    return;
-  }
-
-  @JSName('pushState')
-  @DomName('History.pushState')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.FIREFOX)
-  @SupportedBrowser(SupportedBrowser.IE, '10')
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  void _pushState_1(data, title, url) native;
-
-  @DomName('History.replaceState')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.FIREFOX)
-  @SupportedBrowser(SupportedBrowser.IE, '10')
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  void replaceState(/*SerializedScriptValue*/ data, String title, String url) {
-    var data_1 = convertDartToNative_SerializedScriptValue(data);
-    _replaceState_1(data_1, title, url);
-    return;
-  }
-
-  @JSName('replaceState')
-  @DomName('History.replaceState')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.FIREFOX)
-  @SupportedBrowser(SupportedBrowser.IE, '10')
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  void _replaceState_1(data, title, url) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HMDVRDevice')
-@Experimental() // untriaged
-@Native("HMDVRDevice")
-class HmdvrDevice extends VRDevice {
-  // To suppress missing implicit constructor warnings.
-  factory HmdvrDevice._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HMDVRDevice.getEyeParameters')
-  @DocsEditable()
-  @Experimental() // untriaged
-  VREyeParameters getEyeParameters(String whichEye) native;
-
-  @DomName('HMDVRDevice.setFieldOfView')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void setFieldOfView([VRFieldOfView leftFov, VRFieldOfView rightFov]) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLCollection')
-@Native("HTMLCollection")
-class HtmlCollection extends Interceptor
-    with ListMixin<Node>, ImmutableListMixin<Node>
-    implements JavaScriptIndexingBehavior<Node>, List<Node> {
-  // To suppress missing implicit constructor warnings.
-  factory HtmlCollection._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLCollection.length')
-  @DocsEditable()
-  int get length => JS("int", "#.length", this);
-
-  Node operator [](int index) {
-    if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
-      throw new RangeError.index(index, this);
-    return JS("Node", "#[#]", this, index);
-  }
-
-  void operator []=(int index, Node value) {
-    throw new UnsupportedError("Cannot assign element of immutable List.");
-  }
-  // -- start List<Node> mixins.
-  // Node is the element type.
-
-  set length(int value) {
-    throw new UnsupportedError("Cannot resize immutable List.");
-  }
-
-  Node get first {
-    if (this.length > 0) {
-      return JS('Node', '#[0]', this);
-    }
-    throw new StateError("No elements");
-  }
-
-  Node get last {
-    int len = this.length;
-    if (len > 0) {
-      return JS('Node', '#[#]', this, len - 1);
-    }
-    throw new StateError("No elements");
-  }
-
-  Node get single {
-    int len = this.length;
-    if (len == 1) {
-      return JS('Node', '#[0]', this);
-    }
-    if (len == 0) throw new StateError("No elements");
-    throw new StateError("More than one element");
-  }
-
-  Node elementAt(int index) => this[index];
-  // -- end List<Node> mixins.
-
-  @DomName('HTMLCollection.item')
-  @DocsEditable()
-  Node item(int index) native;
-
-  @DomName('HTMLCollection.namedItem')
-  @DocsEditable()
-  Object namedItem(String name) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('HTMLDocument')
-@Native("HTMLDocument")
-class HtmlDocument extends Document {
-  // To suppress missing implicit constructor warnings.
-  factory HtmlDocument._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Document.body')
-  BodyElement body;
-
-  /// UNSTABLE: Chrome-only - create a Range from the given point.
-  @DomName('Document.caretRangeFromPoint')
-  @Unstable()
-  Range caretRangeFromPoint(int x, int y) {
-    return _caretRangeFromPoint(x, y);
-  }
-
-  @DomName('Document.elementFromPoint')
-  Element elementFromPoint(int x, int y) {
-    return _elementFromPoint(x, y);
-  }
-
-  /**
-   * Checks if the getCssCanvasContext API is supported on the current platform.
-   *
-   * See also:
-   *
-   * * [getCssCanvasContext]
-   */
-  static bool get supportsCssCanvasContext =>
-      JS('bool', '!!(document.getCSSCanvasContext)');
-
-  /**
-   * Gets a CanvasRenderingContext which can be used as the CSS background of an
-   * element.
-   *
-   * CSS:
-   *
-   *     background: -webkit-canvas(backgroundCanvas)
-   *
-   * Generate the canvas:
-   *
-   *     var context = document.getCssCanvasContext('2d', 'backgroundCanvas',
-   *         100, 100);
-   *     context.fillStyle = 'red';
-   *     context.fillRect(0, 0, 100, 100);
-   *
-   * See also:
-   *
-   * * [supportsCssCanvasContext]
-   * * [CanvasElement.getContext]
-   */
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  @DomName('Document.getCSSCanvasContext')
-  CanvasRenderingContext getCssCanvasContext(
-      String contextId, String name, int width, int height) {
-    if (HtmlDocument.supportsCssCanvasContext)
-      return JS('CanvasRenderingContext', '#.getCSSCanvasContext(#, #, #, #)',
-          this, contextId, name, width, height);
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Document.head')
-  HeadElement get head => _head;
-
-  @DomName('Document.lastModified')
-  String get lastModified => _lastModified;
-
-  @DomName('Document.preferredStylesheetSet')
-  String get preferredStylesheetSet => _preferredStylesheetSet;
-
-  @DomName('Document.referrer')
-  String get referrer => _referrer;
-
-  @DomName('Document.selectedStylesheetSet')
-  String get selectedStylesheetSet => _selectedStylesheetSet;
-  set selectedStylesheetSet(String value) {
-    _selectedStylesheetSet = value;
-  }
-
-  @DomName('Document.styleSheets')
-  List<StyleSheet> get styleSheets => _styleSheets;
-
-  @DomName('Document.title')
-  String get title => _title;
-
-  @DomName('Document.title')
-  set title(String value) {
-    _title = value;
-  }
-
-  /**
-   * Returns page to standard layout.
-   *
-   * Has no effect if the page is not in fullscreen mode.
-   *
-   * ## Other resources
-   *
-   * * [Using the fullscreen
-   *   API](http://docs.webplatform.org/wiki/tutorials/using_the_full-screen_api)
-   *   from WebPlatform.org.
-   * * [Fullscreen specification](http://www.w3.org/TR/fullscreen/) from W3C.
-   */
-  @DomName('Document.webkitExitFullscreen')
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  void exitFullscreen() {
-    _webkitExitFullscreen();
-  }
-
-  @Experimental()
-  /**
-   * Register a custom subclass of Element to be instantiatable by the DOM.
-   *
-   * This is necessary to allow the construction of any custom elements.
-   *
-   * The class being registered must either subclass HtmlElement or SvgElement.
-   * If they subclass these directly then they can be used as:
-   *
-   *     class FooElement extends HtmlElement{
-   *        void created() {
-   *          print('FooElement created!');
-   *        }
-   *     }
-   *
-   *     main() {
-   *       document.registerElement('x-foo', FooElement);
-   *       var myFoo = new Element.tag('x-foo');
-   *       // prints 'FooElement created!' to the console.
-   *     }
-   *
-   * The custom element can also be instantiated via HTML using the syntax
-   * `<x-foo></x-foo>`
-   *
-   * Other elements can be subclassed as well:
-   *
-   *     class BarElement extends InputElement{
-   *        void created() {
-   *          print('BarElement created!');
-   *        }
-   *     }
-   *
-   *     main() {
-   *       document.registerElement('x-bar', BarElement);
-   *       var myBar = new Element.tag('input', 'x-bar');
-   *       // prints 'BarElement created!' to the console.
-   *     }
-   *
-   * This custom element can also be instantiated via HTML using the syntax
-   * `<input is="x-bar"></input>`
-   *
-   */
-  void registerElement(String tag, Type customElementClass,
-      {String extendsTag}) {
-    _registerCustomElement(
-        JS('', 'window'), this, tag, customElementClass, extendsTag);
-  }
-
-  /** *Deprecated*: use [registerElement] instead. */
-  @deprecated
-  @Experimental()
-  void register(String tag, Type customElementClass, {String extendsTag}) {
-    return registerElement(tag, customElementClass, extendsTag: extendsTag);
-  }
-
-  /**
-   * Static factory designed to expose `visibilitychange` events to event
-   * handlers that are not necessarily instances of [Document].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Document.visibilityChange')
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.FIREFOX)
-  @SupportedBrowser(SupportedBrowser.IE, '10')
-  @Experimental()
-  static const EventStreamProvider<Event> visibilityChangeEvent =
-      const _CustomEventStreamProvider<Event>(
-          _determineVisibilityChangeEventType);
-
-  static String _determineVisibilityChangeEventType(EventTarget e) {
-    if (JS('bool', '(typeof #.hidden !== "undefined")', e)) {
-      // Opera 12.10 and Firefox 18 and later support
-      return 'visibilitychange';
-    } else if (JS('bool', '(typeof #.mozHidden !== "undefined")', e)) {
-      return 'mozvisibilitychange';
-    } else if (JS('bool', '(typeof #.msHidden !== "undefined")', e)) {
-      return 'msvisibilitychange';
-    } else if (JS('bool', '(typeof #.webkitHidden !== "undefined")', e)) {
-      return 'webkitvisibilitychange';
-    }
-    return 'visibilitychange';
-  }
-
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.FIREFOX)
-  @SupportedBrowser(SupportedBrowser.IE, '10')
-  @Experimental()
-  Stream<Event> get onVisibilityChange => visibilityChangeEvent.forTarget(this);
-
-  /// Creates an element upgrader which can be used to change the Dart wrapper
-  /// type for elements.
-  ///
-  /// The type specified must be a subclass of HtmlElement, when an element is
-  /// upgraded then the created constructor will be invoked on that element.
-  ///
-  /// If the type is not a direct subclass of HtmlElement then the extendsTag
-  /// parameter must be provided.
-  @Experimental()
-  ElementUpgrader createElementUpgrader(Type type, {String extendsTag}) {
-    return new _JSElementUpgrader(this, type, extendsTag);
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLFormControlsCollection')
-@Native("HTMLFormControlsCollection")
-class HtmlFormControlsCollection extends HtmlCollection {
-  // To suppress missing implicit constructor warnings.
-  factory HtmlFormControlsCollection._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLFormControlsCollection.item')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Node item(int index) native;
-
-  @DomName('HTMLFormControlsCollection.namedItem')
-  @DocsEditable()
-  Object namedItem(String name) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLHtmlElement')
-@Native("HTMLHtmlElement")
-class HtmlHtmlElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory HtmlHtmlElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLHtmlElement.HTMLHtmlElement')
-  @DocsEditable()
-  factory HtmlHtmlElement() => JS(
-      'returns:HtmlHtmlElement;creates:HtmlHtmlElement;new:true',
-      '#.createElement(#)',
-      document,
-      "html");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  HtmlHtmlElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLOptionsCollection')
-@Native("HTMLOptionsCollection")
-class HtmlOptionsCollection extends HtmlCollection {
-  // To suppress missing implicit constructor warnings.
-  factory HtmlOptionsCollection._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @JSName('item')
-  @DomName('HTMLOptionsCollection.item')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Node _item(int index) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/**
-  * A client-side XHR request for getting data from a URL,
-  * formally known as XMLHttpRequest.
-  *
-  * HttpRequest can be used to obtain data from HTTP and FTP protocols,
-  * and is useful for AJAX-style page updates.
-  *
-  * The simplest way to get the contents of a text file, such as a
-  * JSON-formatted file, is with [getString].
-  * For example, the following code gets the contents of a JSON file
-  * and prints its length:
-  *
-  *     var path = 'myData.json';
-  *     HttpRequest.getString(path)
-  *         .then((String fileContents) {
-  *           print(fileContents.length);
-  *         })
-  *         .catchError((Error error) {
-  *           print(error.toString());
-  *         });
-  *
-  * ## Fetching data from other servers
-  *
-  * For security reasons, browsers impose restrictions on requests
-  * made by embedded apps.
-  * With the default behavior of this class,
-  * the code making the request must be served from the same origin
-  * (domain name, port, and application layer protocol)
-  * as the requested resource.
-  * In the example above, the myData.json file must be co-located with the
-  * app that uses it.
-  * You might be able to
-  * [get around this restriction](http://www.dartlang.org/articles/json-web-service/#a-note-on-cors-and-httprequest)
-  * by using CORS headers or JSONP.
-  *
-  * ## Other resources
-  *
-  * * [Fetch Data Dynamically](https://www.dartlang.org/docs/tutorials/fetchdata/),
-  * a tutorial from _A Game of Darts_,
-  * shows two different ways to use HttpRequest to get a JSON file.
-  * * [Get Input from a Form](https://www.dartlang.org/docs/tutorials/forms/),
-  * another tutorial from _A Game of Darts_,
-  * shows using HttpRequest with a custom server.
-  * * [Dart article on using HttpRequests](http://www.dartlang.org/articles/json-web-service/#getting-data)
-  * * [JS XMLHttpRequest](https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest)
-  * * [Using XMLHttpRequest](https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/Using_XMLHttpRequest)
- */
-@DomName('XMLHttpRequest')
-@Native("XMLHttpRequest")
-class HttpRequest extends HttpRequestEventTarget {
-  /**
-   * Creates a GET request for the specified [url].
-   *
-   * The server response must be a `text/` mime type for this request to
-   * succeed.
-   *
-   * This is similar to [request] but specialized for HTTP GET requests which
-   * return text content.
-   *
-   * To add query parameters, append them to the [url] following a `?`,
-   * joining each key to its value with `=` and separating key-value pairs with
-   * `&`.
-   *
-   *     var name = Uri.encodeQueryComponent('John');
-   *     var id = Uri.encodeQueryComponent('42');
-   *     HttpRequest.getString('users.json?name=$name&id=$id')
-   *       .then((HttpRequest resp) {
-   *         // Do something with the response.
-   *     });
-   *
-   * See also:
-   *
-   * * [request]
-   */
-  static Future<String> getString(String url,
-      {bool withCredentials, void onProgress(ProgressEvent e)}) {
-    return request(url,
-            withCredentials: withCredentials, onProgress: onProgress)
-        .then((HttpRequest xhr) => xhr.responseText);
-  }
-
-  /**
-   * Makes a server POST request with the specified data encoded as form data.
-   *
-   * This is roughly the POST equivalent of getString. This method is similar
-   * to sending a FormData object with broader browser support but limited to
-   * String values.
-   *
-   * If [data] is supplied, the key/value pairs are URI encoded with
-   * [Uri.encodeQueryComponent] and converted into an HTTP query string.
-   *
-   * Unless otherwise specified, this method appends the following header:
-   *
-   *     Content-Type: application/x-www-form-urlencoded; charset=UTF-8
-   *
-   * Here's an example of using this method:
-   *
-   *     var data = { 'firstName' : 'John', 'lastName' : 'Doe' };
-   *     HttpRequest.postFormData('/send', data).then((HttpRequest resp) {
-   *       // Do something with the response.
-   *     });
-   *
-   * See also:
-   *
-   * * [request]
-   */
-  static Future<HttpRequest> postFormData(String url, Map<String, String> data,
-      {bool withCredentials,
-      String responseType,
-      Map<String, String> requestHeaders,
-      void onProgress(ProgressEvent e)}) {
-    var parts = [];
-    data.forEach((key, value) {
-      parts.add('${Uri.encodeQueryComponent(key)}='
-          '${Uri.encodeQueryComponent(value)}');
-    });
-    var formData = parts.join('&');
-
-    if (requestHeaders == null) {
-      requestHeaders = <String, String>{};
-    }
-    requestHeaders.putIfAbsent('Content-Type',
-        () => 'application/x-www-form-urlencoded; charset=UTF-8');
-
-    return request(url,
-        method: 'POST',
-        withCredentials: withCredentials,
-        responseType: responseType,
-        requestHeaders: requestHeaders,
-        sendData: formData,
-        onProgress: onProgress);
-  }
-
-  /**
-   * Creates and sends a URL request for the specified [url].
-   *
-   * By default `request` will perform an HTTP GET request, but a different
-   * method (`POST`, `PUT`, `DELETE`, etc) can be used by specifying the
-   * [method] parameter. (See also [HttpRequest.postFormData] for `POST` 
-   * requests only.
-   *
-   * The Future is completed when the response is available.
-   *
-   * If specified, `sendData` will send data in the form of a [ByteBuffer],
-   * [Blob], [Document], [String], or [FormData] along with the HttpRequest.
-   *
-   * If specified, [responseType] sets the desired response format for the
-   * request. By default it is [String], but can also be 'arraybuffer', 'blob', 
-   * 'document', 'json', or 'text'. See also [HttpRequest.responseType] 
-   * for more information.
-   *
-   * The [withCredentials] parameter specified that credentials such as a cookie
-   * (already) set in the header or
-   * [authorization headers](http://tools.ietf.org/html/rfc1945#section-10.2)
-   * should be specified for the request. Details to keep in mind when using
-   * credentials:
-   *
-   * * Using credentials is only useful for cross-origin requests.
-   * * The `Access-Control-Allow-Origin` header of `url` cannot contain a wildcard (*).
-   * * The `Access-Control-Allow-Credentials` header of `url` must be set to true.
-   * * If `Access-Control-Expose-Headers` has not been set to true, only a subset of all the response headers will be returned when calling [getAllRequestHeaders].
-   *
-   * The following is equivalent to the [getString] sample above:
-   *
-   *     var name = Uri.encodeQueryComponent('John');
-   *     var id = Uri.encodeQueryComponent('42');
-   *     HttpRequest.request('users.json?name=$name&id=$id')
-   *       .then((HttpRequest resp) {
-   *         // Do something with the response.
-   *     });
-   *
-   * Here's an example of submitting an entire form with [FormData].
-   *
-   *     var myForm = querySelector('form#myForm');
-   *     var data = new FormData(myForm);
-   *     HttpRequest.request('/submit', method: 'POST', sendData: data)
-   *       .then((HttpRequest resp) {
-   *         // Do something with the response.
-   *     });
-   *
-   * Note that requests for file:// URIs are only supported by Chrome extensions
-   * with appropriate permissions in their manifest. Requests to file:// URIs
-   * will also never fail- the Future will always complete successfully, even
-   * when the file cannot be found.
-   *
-   * See also: [authorization headers](http://en.wikipedia.org/wiki/Basic_access_authentication).
-   */
-  static Future<HttpRequest> request(String url,
-      {String method,
-      bool withCredentials,
-      String responseType,
-      String mimeType,
-      Map<String, String> requestHeaders,
-      sendData,
-      void onProgress(ProgressEvent e)}) {
-    var completer = new Completer<HttpRequest>();
-
-    var xhr = new HttpRequest();
-    if (method == null) {
-      method = 'GET';
-    }
-    xhr.open(method, url, async: true);
-
-    if (withCredentials != null) {
-      xhr.withCredentials = withCredentials;
-    }
-
-    if (responseType != null) {
-      xhr.responseType = responseType;
-    }
-
-    if (mimeType != null) {
-      xhr.overrideMimeType(mimeType);
-    }
-
-    if (requestHeaders != null) {
-      requestHeaders.forEach((header, value) {
-        xhr.setRequestHeader(header, value);
-      });
-    }
-
-    if (onProgress != null) {
-      xhr.onProgress.listen(onProgress);
-    }
-
-    xhr.onLoad.listen((e) {
-      var accepted = xhr.status >= 200 && xhr.status < 300;
-      var fileUri = xhr.status == 0; // file:// URIs have status of 0.
-      var notModified = xhr.status == 304;
-      // Redirect status is specified up to 307, but others have been used in
-      // practice. Notably Google Drive uses 308 Resume Incomplete for
-      // resumable uploads, and it's also been used as a redirect. The
-      // redirect case will be handled by the browser before it gets to us,
-      // so if we see it we should pass it through to the user.
-      var unknownRedirect = xhr.status > 307 && xhr.status < 400;
-
-      if (accepted || fileUri || notModified || unknownRedirect) {
-        completer.complete(xhr);
-      } else {
-        completer.completeError(e);
-      }
-    });
-
-    xhr.onError.listen(completer.completeError);
-
-    if (sendData != null) {
-      xhr.send(sendData);
-    } else {
-      xhr.send();
-    }
-
-    return completer.future;
-  }
-
-  /**
-   * Checks to see if the Progress event is supported on the current platform.
-   */
-  static bool get supportsProgressEvent {
-    var xhr = new HttpRequest();
-    return JS('bool', '("onprogress" in #)', xhr);
-  }
-
-  /**
-   * Checks to see if the current platform supports making cross origin
-   * requests.
-   *
-   * Note that even if cross origin requests are supported, they still may fail
-   * if the destination server does not support CORS requests.
-   */
-  static bool get supportsCrossOrigin {
-    var xhr = new HttpRequest();
-    return JS('bool', '("withCredentials" in #)', xhr);
-  }
-
-  /**
-   * Checks to see if the LoadEnd event is supported on the current platform.
-   */
-  static bool get supportsLoadEndEvent {
-    var xhr = new HttpRequest();
-    return JS('bool', '("onloadend" in #)', xhr);
-  }
-
-  /**
-   * Checks to see if the overrideMimeType method is supported on the current
-   * platform.
-   */
-  static bool get supportsOverrideMimeType {
-    var xhr = new HttpRequest();
-    return JS('bool', '("overrideMimeType" in #)', xhr);
-  }
-
-  /**
-   * Makes a cross-origin request to the specified URL.
-   *
-   * This API provides a subset of [request] which works on IE9. If IE9
-   * cross-origin support is not required then [request] should be used instead.
-   */
-  @Experimental()
-  static Future<String> requestCrossOrigin(String url,
-      {String method, String sendData}) {
-    if (supportsCrossOrigin) {
-      return request(url, method: method, sendData: sendData).then((xhr) {
-        return xhr.responseText;
-      });
-    }
-    var completer = new Completer<String>();
-    if (method == null) {
-      method = 'GET';
-    }
-    var xhr = JS('var', 'new XDomainRequest()');
-    JS('', '#.open(#, #)', xhr, method, url);
-    JS(
-        '',
-        '#.onload = #',
-        xhr,
-        convertDartClosureToJS((e) {
-          var response = JS('String', '#.responseText', xhr);
-          completer.complete(response);
-        }, 1));
-    JS(
-        '',
-        '#.onerror = #',
-        xhr,
-        convertDartClosureToJS((e) {
-          completer.completeError(e);
-        }, 1));
-
-    // IE9 RTM - XDomainRequest issued requests may abort if all event handlers
-    // not specified
-    // http://social.msdn.microsoft.com/Forums/ie/en-US/30ef3add-767c-4436-b8a9-f1ca19b4812e/ie9-rtm-xdomainrequest-issued-requests-may-abort-if-all-event-handlers-not-specified
-    JS('', '#.onprogress = {}', xhr);
-    JS('', '#.ontimeout = {}', xhr);
-    JS('', '#.timeout = Number.MAX_VALUE', xhr);
-
-    if (sendData != null) {
-      JS('', '#.send(#)', xhr, sendData);
-    } else {
-      JS('', '#.send()', xhr);
-    }
-
-    return completer.future;
-  }
-
-  /**
-   * Returns all response headers as a key-value map.
-   *
-   * Multiple values for the same header key can be combined into one,
-   * separated by a comma and a space.
-   *
-   * See: http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method
-   */
-  Map<String, String> get responseHeaders {
-    // from Closure's goog.net.Xhrio.getResponseHeaders.
-    var headers = <String, String>{};
-    var headersString = this.getAllResponseHeaders();
-    if (headersString == null) {
-      return headers;
-    }
-    var headersList = headersString.split('\r\n');
-    for (var header in headersList) {
-      if (header.isEmpty) {
-        continue;
-      }
-
-      var splitIdx = header.indexOf(': ');
-      if (splitIdx == -1) {
-        continue;
-      }
-      var key = header.substring(0, splitIdx).toLowerCase();
-      var value = header.substring(splitIdx + 2);
-      if (headers.containsKey(key)) {
-        headers[key] = '${headers[key]}, $value';
-      } else {
-        headers[key] = value;
-      }
-    }
-    return headers;
-  }
-
-  /**
-   * Specify the desired `url`, and `method` to use in making the request.
-   *
-   * By default the request is done asyncronously, with no user or password
-   * authentication information. If `async` is false, the request will be send
-   * synchronously.
-   *
-   * Calling `open` again on a currently active request is equivalent to
-   * calling `abort`.
-   *
-   * Note: Most simple HTTP requests can be accomplished using the [getString],
-   * [request], [requestCrossOrigin], or [postFormData] methods. Use of this
-   * `open` method is intended only for more complex HTTP requests where
-   * finer-grained control is needed.
-   */
-  @DomName('XMLHttpRequest.open')
-  @DocsEditable()
-  void open(String method, String url,
-      {bool async, String user, String password}) native;
-
-  // To suppress missing implicit constructor warnings.
-  factory HttpRequest._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `readystatechange` events to event
-   * handlers that are not necessarily instances of [HttpRequest].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('XMLHttpRequest.readystatechangeEvent')
-  @DocsEditable()
-  static const EventStreamProvider<ProgressEvent> readyStateChangeEvent =
-      const EventStreamProvider<ProgressEvent>('readystatechange');
-
-  /**
-   * General constructor for any type of request (GET, POST, etc).
-   *
-   * This call is used in conjunction with [open]:
-   *
-   *     var request = new HttpRequest();
-   *     request.open('GET', 'http://dartlang.org');
-   *     request.onLoad.listen((event) => print(
-   *         'Request complete ${event.target.reponseText}'));
-   *     request.send();
-   *
-   * is the (more verbose) equivalent of
-   *
-   *     HttpRequest.getString('http://dartlang.org').then(
-   *         (result) => print('Request complete: $result'));
-   */
-  @DomName('XMLHttpRequest.XMLHttpRequest')
-  @DocsEditable()
-  factory HttpRequest() {
-    return HttpRequest._create_1();
-  }
-  static HttpRequest _create_1() => JS('HttpRequest', 'new XMLHttpRequest()');
-
-  @DomName('XMLHttpRequest.DONE')
-  @DocsEditable()
-  static const int DONE = 4;
-
-  @DomName('XMLHttpRequest.HEADERS_RECEIVED')
-  @DocsEditable()
-  static const int HEADERS_RECEIVED = 2;
-
-  @DomName('XMLHttpRequest.LOADING')
-  @DocsEditable()
-  static const int LOADING = 3;
-
-  @DomName('XMLHttpRequest.OPENED')
-  @DocsEditable()
-  static const int OPENED = 1;
-
-  @DomName('XMLHttpRequest.UNSENT')
-  @DocsEditable()
-  static const int UNSENT = 0;
-
-  /**
-   * Indicator of the current state of the request:
-   *
-   * <table>
-   *   <tr>
-   *     <td>Value</td>
-   *     <td>State</td>
-   *     <td>Meaning</td>
-   *   </tr>
-   *   <tr>
-   *     <td>0</td>
-   *     <td>unsent</td>
-   *     <td><code>open()</code> has not yet been called</td>
-   *   </tr>
-   *   <tr>
-   *     <td>1</td>
-   *     <td>opened</td>
-   *     <td><code>send()</code> has not yet been called</td>
-   *   </tr>
-   *   <tr>
-   *     <td>2</td>
-   *     <td>headers received</td>
-   *     <td><code>sent()</code> has been called; response headers and <code>status</code> are available</td>
-   *   </tr>
-   *   <tr>
-   *     <td>3</td> <td>loading</td> <td><code>responseText</code> holds some data</td>
-   *   </tr>
-   *   <tr>
-   *     <td>4</td> <td>done</td> <td>request is complete</td>
-   *   </tr>
-   * </table>
-   */
-  @DomName('XMLHttpRequest.readyState')
-  @DocsEditable()
-  final int readyState;
-
-  /**
-   * The data received as a reponse from the request.
-   *
-   * The data could be in the
-   * form of a [String], [ByteBuffer], [Document], [Blob], or json (also a
-   * [String]). `null` indicates request failure.
-   */
-  @DomName('XMLHttpRequest.response')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.FIREFOX)
-  @SupportedBrowser(SupportedBrowser.IE, '10')
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  dynamic get response => _convertNativeToDart_XHR_Response(this._get_response);
-  @JSName('response')
-  /**
-   * The data received as a reponse from the request.
-   *
-   * The data could be in the
-   * form of a [String], [ByteBuffer], [Document], [Blob], or json (also a
-   * [String]). `null` indicates request failure.
-   */
-  @DomName('XMLHttpRequest.response')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.FIREFOX)
-  @SupportedBrowser(SupportedBrowser.IE, '10')
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Creates(
-      'NativeByteBuffer|Blob|Document|=Object|JSExtendableArray|String|num')
-  final dynamic _get_response;
-
-  /**
-   * The response in String form or empty String on failure.
-   */
-  @DomName('XMLHttpRequest.responseText')
-  @DocsEditable()
-  final String responseText;
-
-  /**
-   * [String] telling the server the desired response format.
-   *
-   * Default is `String`.
-   * Other options are one of 'arraybuffer', 'blob', 'document', 'json',
-   * 'text'. Some newer browsers will throw NS_ERROR_DOM_INVALID_ACCESS_ERR if
-   * `responseType` is set while performing a synchronous request.
-   *
-   * See also: [MDN
-   * responseType](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#xmlhttprequest-responsetype)
-   */
-  @DomName('XMLHttpRequest.responseType')
-  @DocsEditable()
-  String responseType;
-
-  @JSName('responseURL')
-  @DomName('XMLHttpRequest.responseURL')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String responseUrl;
-
-  @JSName('responseXML')
-  /**
-   * The request response, or null on failure.
-   *
-   * The response is processed as
-   * `text/xml` stream, unless responseType = 'document' and the request is
-   * synchronous.
-   */
-  @DomName('XMLHttpRequest.responseXML')
-  @DocsEditable()
-  final Document responseXml;
-
-  /**
-   * The HTTP result code from the request (200, 404, etc).
-   * See also: [HTTP Status Codes](http://en.wikipedia.org/wiki/List_of_HTTP_status_codes)
-   */
-  @DomName('XMLHttpRequest.status')
-  @DocsEditable()
-  final int status;
-
-  /**
-   * The request response string (such as \"200 OK\").
-   * See also: [HTTP Status Codes](http://en.wikipedia.org/wiki/List_of_HTTP_status_codes)
-   */
-  @DomName('XMLHttpRequest.statusText')
-  @DocsEditable()
-  final String statusText;
-
-  /**
-   * Length of time in milliseconds before a request is automatically
-   * terminated.
-   *
-   * When the time has passed, a [TimeoutEvent] is dispatched.
-   *
-   * If [timeout] is set to 0, then the request will not time out.
-   *
-   * ## Other resources
-   *
-   * * [XMLHttpRequest.timeout](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#xmlhttprequest-timeout)
-   *   from MDN.
-   * * [The timeout attribute](http://www.w3.org/TR/XMLHttpRequest/#the-timeout-attribute)
-   *   from W3C.
-   */
-  @DomName('XMLHttpRequest.timeout')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int timeout;
-
-  /**
-   * [EventTarget] that can hold listeners to track the progress of the request.
-   * The events fired will be members of [HttpRequestUploadEvents].
-   */
-  @DomName('XMLHttpRequest.upload')
-  @DocsEditable()
-  @Unstable()
-  final HttpRequestUpload upload;
-
-  /**
-   * True if cross-site requests should use credentials such as cookies
-   * or authorization headers; false otherwise.
-   *
-   * This value is ignored for same-site requests.
-   */
-  @DomName('XMLHttpRequest.withCredentials')
-  @DocsEditable()
-  bool withCredentials;
-
-  /**
-   * Stop the current request.
-   *
-   * The request can only be stopped if readyState is `HEADERS_RECEIVED` or
-   * `LOADING`. If this method is not in the process of being sent, the method
-   * has no effect.
-   */
-  @DomName('XMLHttpRequest.abort')
-  @DocsEditable()
-  void abort() native;
-
-  /**
-   * Retrieve all the response headers from a request.
-   *
-   * `null` if no headers have been received. For multipart requests,
-   * `getAllResponseHeaders` will return the response headers for the current
-   * part of the request.
-   *
-   * See also [HTTP response
-   * headers](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Response_fields)
-   * for a list of common response headers.
-   */
-  @DomName('XMLHttpRequest.getAllResponseHeaders')
-  @DocsEditable()
-  @Unstable()
-  String getAllResponseHeaders() native;
-
-  /**
-   * Return the response header named `header`, or null if not found.
-   *
-   * See also [HTTP response
-   * headers](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Response_fields)
-   * for a list of common response headers.
-   */
-  @DomName('XMLHttpRequest.getResponseHeader')
-  @DocsEditable()
-  @Unstable()
-  String getResponseHeader(String name) native;
-
-  /**
-   * Specify a particular MIME type (such as `text/xml`) desired for the
-   * response.
-   *
-   * This value must be set before the request has been sent. See also the list
-   * of [IANA Official MIME types](https://www.iana.org/assignments/media-types/media-types.xhtml)
-   */
-  @DomName('XMLHttpRequest.overrideMimeType')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.FIREFOX)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  void overrideMimeType(String mime) native;
-
-  /**
-   * Send the request with any given `data`.
-   *
-   * Note: Most simple HTTP requests can be accomplished using the [getString],
-   * [request], [requestCrossOrigin], or [postFormData] methods. Use of this
-   * `send` method is intended only for more complex HTTP requests where
-   * finer-grained control is needed.
-   *
-   * ## Other resources
-   *
-   * * [XMLHttpRequest.send](https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#send%28%29)
-   *   from MDN.
-   */
-  @DomName('XMLHttpRequest.send')
-  @DocsEditable()
-  void send([body_OR_data]) native;
-
-  /**
-   * Sets the value of an HTTP request header.
-   *
-   * This method should be called after the request is opened, but before
-   * the request is sent.
-   *
-   * Multiple calls with the same header will combine all their values into a
-   * single header.
-   *
-   * ## Other resources
-   *
-   * * [XMLHttpRequest.setRequestHeader](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#setRequestHeader())
-   *   from MDN.
-   * * [The setRequestHeader()
-   *   method](http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader()-method)
-   *   from W3C.
-   */
-  @DomName('XMLHttpRequest.setRequestHeader')
-  @DocsEditable()
-  void setRequestHeader(String name, String value) native;
-
-  /// Stream of `readystatechange` events handled by this [HttpRequest].
-/**
-   * Event listeners to be notified every time the [HttpRequest]
-   * object's `readyState` changes values.
-   */
-  @DomName('XMLHttpRequest.onreadystatechange')
-  @DocsEditable()
-  Stream<ProgressEvent> get onReadyStateChange =>
-      readyStateChangeEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('XMLHttpRequestEventTarget')
-@Experimental() // untriaged
-@Native("XMLHttpRequestEventTarget")
-class HttpRequestEventTarget extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory HttpRequestEventTarget._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `abort` events to event
-   * handlers that are not necessarily instances of [HttpRequestEventTarget].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('XMLHttpRequestEventTarget.abortEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<ProgressEvent> abortEvent =
-      const EventStreamProvider<ProgressEvent>('abort');
-
-  /**
-   * Static factory designed to expose `error` events to event
-   * handlers that are not necessarily instances of [HttpRequestEventTarget].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('XMLHttpRequestEventTarget.errorEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<ProgressEvent> errorEvent =
-      const EventStreamProvider<ProgressEvent>('error');
-
-  /**
-   * Static factory designed to expose `load` events to event
-   * handlers that are not necessarily instances of [HttpRequestEventTarget].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('XMLHttpRequestEventTarget.loadEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<ProgressEvent> loadEvent =
-      const EventStreamProvider<ProgressEvent>('load');
-
-  /**
-   * Static factory designed to expose `loadend` events to event
-   * handlers that are not necessarily instances of [HttpRequestEventTarget].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('XMLHttpRequestEventTarget.loadendEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<ProgressEvent> loadEndEvent =
-      const EventStreamProvider<ProgressEvent>('loadend');
-
-  /**
-   * Static factory designed to expose `loadstart` events to event
-   * handlers that are not necessarily instances of [HttpRequestEventTarget].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('XMLHttpRequestEventTarget.loadstartEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<ProgressEvent> loadStartEvent =
-      const EventStreamProvider<ProgressEvent>('loadstart');
-
-  /**
-   * Static factory designed to expose `progress` events to event
-   * handlers that are not necessarily instances of [HttpRequestEventTarget].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('XMLHttpRequestEventTarget.progressEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<ProgressEvent> progressEvent =
-      const EventStreamProvider<ProgressEvent>('progress');
-
-  /**
-   * Static factory designed to expose `timeout` events to event
-   * handlers that are not necessarily instances of [HttpRequestEventTarget].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('XMLHttpRequestEventTarget.timeoutEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<ProgressEvent> timeoutEvent =
-      const EventStreamProvider<ProgressEvent>('timeout');
-
-  /// Stream of `abort` events handled by this [HttpRequestEventTarget].
-  @DomName('XMLHttpRequestEventTarget.onabort')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<ProgressEvent> get onAbort => abortEvent.forTarget(this);
-
-  /// Stream of `error` events handled by this [HttpRequestEventTarget].
-  @DomName('XMLHttpRequestEventTarget.onerror')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<ProgressEvent> get onError => errorEvent.forTarget(this);
-
-  /// Stream of `load` events handled by this [HttpRequestEventTarget].
-  @DomName('XMLHttpRequestEventTarget.onload')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<ProgressEvent> get onLoad => loadEvent.forTarget(this);
-
-  /// Stream of `loadend` events handled by this [HttpRequestEventTarget].
-  @DomName('XMLHttpRequestEventTarget.onloadend')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.FIREFOX)
-  @SupportedBrowser(SupportedBrowser.IE, '10')
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental() // untriaged
-  Stream<ProgressEvent> get onLoadEnd => loadEndEvent.forTarget(this);
-
-  /// Stream of `loadstart` events handled by this [HttpRequestEventTarget].
-  @DomName('XMLHttpRequestEventTarget.onloadstart')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<ProgressEvent> get onLoadStart => loadStartEvent.forTarget(this);
-
-  /// Stream of `progress` events handled by this [HttpRequestEventTarget].
-  @DomName('XMLHttpRequestEventTarget.onprogress')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.FIREFOX)
-  @SupportedBrowser(SupportedBrowser.IE, '10')
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental() // untriaged
-  Stream<ProgressEvent> get onProgress => progressEvent.forTarget(this);
-
-  /// Stream of `timeout` events handled by this [HttpRequestEventTarget].
-  @DomName('XMLHttpRequestEventTarget.ontimeout')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<ProgressEvent> get onTimeout => timeoutEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('XMLHttpRequestUpload')
-// http://xhr.spec.whatwg.org/#xmlhttprequestupload
-@Experimental()
-@Native("XMLHttpRequestUpload")
-class HttpRequestUpload extends HttpRequestEventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory HttpRequestUpload._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLIFrameElement')
-@Native("HTMLIFrameElement")
-class IFrameElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory IFrameElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLIFrameElement.HTMLIFrameElement')
-  @DocsEditable()
-  factory IFrameElement() => JS(
-      'returns:IFrameElement;creates:IFrameElement;new:true',
-      '#.createElement(#)',
-      document,
-      "iframe");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  IFrameElement.created() : super.created();
-
-  @DomName('HTMLIFrameElement.allowFullscreen')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool allowFullscreen;
-
-  @DomName('HTMLIFrameElement.contentWindow')
-  @DocsEditable()
-  WindowBase get contentWindow =>
-      _convertNativeToDart_Window(this._get_contentWindow);
-  @JSName('contentWindow')
-  @DomName('HTMLIFrameElement.contentWindow')
-  @DocsEditable()
-  @Creates('Window|=Object')
-  @Returns('Window|=Object')
-  final dynamic _get_contentWindow;
-
-  @DomName('HTMLIFrameElement.height')
-  @DocsEditable()
-  String height;
-
-  @DomName('HTMLIFrameElement.name')
-  @DocsEditable()
-  String name;
-
-  @DomName('HTMLIFrameElement.referrerpolicy')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String referrerpolicy;
-
-  @DomName('HTMLIFrameElement.sandbox')
-  @DocsEditable()
-  final DomTokenList sandbox;
-
-  @DomName('HTMLIFrameElement.src')
-  @DocsEditable()
-  String src;
-
-  @DomName('HTMLIFrameElement.srcdoc')
-  @DocsEditable()
-  String srcdoc;
-
-  @DomName('HTMLIFrameElement.width')
-  @DocsEditable()
-  String width;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('IdleDeadline')
-@Experimental() // untriaged
-@Native("IdleDeadline")
-class IdleDeadline extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory IdleDeadline._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('IdleDeadline.didTimeout')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool didTimeout;
-
-  @DomName('IdleDeadline.timeRemaining')
-  @DocsEditable()
-  @Experimental() // untriaged
-  double timeRemaining() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('IdleRequestCallback')
-@Experimental() // untriaged
-typedef void IdleRequestCallback(IdleDeadline deadline);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ImageBitmap')
-@Experimental() // untriaged
-@Native("ImageBitmap")
-class ImageBitmap extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory ImageBitmap._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('ImageBitmap.height')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int height;
-
-  @DomName('ImageBitmap.width')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int width;
-
-  @DomName('ImageBitmap.close')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void close() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ImageBitmapRenderingContext')
-@Experimental() // untriaged
-@Native("ImageBitmapRenderingContext")
-class ImageBitmapRenderingContext extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory ImageBitmapRenderingContext._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('ImageBitmapRenderingContext.canvas')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final CanvasElement canvas;
-
-  @DomName('ImageBitmapRenderingContext.transferImageBitmap')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void transferImageBitmap(ImageBitmap bitmap) native;
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('ImageData')
-@Native("ImageData")
-class ImageData extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory ImageData._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('ImageData.ImageData')
-  @DocsEditable()
-  factory ImageData(data_OR_sw, int sh_OR_sw, [int sh]) {
-    if ((sh_OR_sw is int) && (data_OR_sw is int) && sh == null) {
-      return ImageData._create_1(data_OR_sw, sh_OR_sw);
-    }
-    if ((sh_OR_sw is int) && (data_OR_sw is Uint8ClampedList) && sh == null) {
-      return ImageData._create_2(data_OR_sw, sh_OR_sw);
-    }
-    if ((sh is int) && (sh_OR_sw is int) && (data_OR_sw is Uint8ClampedList)) {
-      return ImageData._create_3(data_OR_sw, sh_OR_sw, sh);
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-  static ImageData _create_1(data_OR_sw, sh_OR_sw) =>
-      JS('ImageData', 'new ImageData(#,#)', data_OR_sw, sh_OR_sw);
-  static ImageData _create_2(data_OR_sw, sh_OR_sw) =>
-      JS('ImageData', 'new ImageData(#,#)', data_OR_sw, sh_OR_sw);
-  static ImageData _create_3(data_OR_sw, sh_OR_sw, sh) =>
-      JS('ImageData', 'new ImageData(#,#,#)', data_OR_sw, sh_OR_sw, sh);
-
-  @DomName('ImageData.data')
-  @DocsEditable()
-  @Creates('NativeUint8ClampedList')
-  @Returns('NativeUint8ClampedList')
-  final Uint8ClampedList data;
-
-  @DomName('ImageData.height')
-  @DocsEditable()
-  final int height;
-
-  @DomName('ImageData.width')
-  @DocsEditable()
-  final int width;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('HTMLImageElement')
-@Native("HTMLImageElement")
-class ImageElement extends HtmlElement implements CanvasImageSource {
-  // To suppress missing implicit constructor warnings.
-  factory ImageElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLImageElement.HTMLImageElement')
-  @DocsEditable()
-  factory ImageElement({String src, int width, int height}) {
-    ImageElement e = JS('returns:ImageElement;creates:ImageElement;new:true',
-        '#.createElement(#)', document, "img");
-    if (src != null) e.src = src;
-    if (width != null) e.width = width;
-    if (height != null) e.height = height;
-    return e;
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  ImageElement.created() : super.created();
-
-  @DomName('HTMLImageElement.alt')
-  @DocsEditable()
-  String alt;
-
-  @DomName('HTMLImageElement.complete')
-  @DocsEditable()
-  final bool complete;
-
-  @DomName('HTMLImageElement.crossOrigin')
-  @DocsEditable()
-  String crossOrigin;
-
-  @DomName('HTMLImageElement.currentSrc')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String currentSrc;
-
-  @DomName('HTMLImageElement.height')
-  @DocsEditable()
-  int height;
-
-  @DomName('HTMLImageElement.isMap')
-  @DocsEditable()
-  bool isMap;
-
-  @DomName('HTMLImageElement.naturalHeight')
-  @DocsEditable()
-  final int naturalHeight;
-
-  @DomName('HTMLImageElement.naturalWidth')
-  @DocsEditable()
-  final int naturalWidth;
-
-  @DomName('HTMLImageElement.referrerpolicy')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String referrerpolicy;
-
-  @DomName('HTMLImageElement.sizes')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String sizes;
-
-  @DomName('HTMLImageElement.src')
-  @DocsEditable()
-  String src;
-
-  @DomName('HTMLImageElement.srcset')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String srcset;
-
-  @DomName('HTMLImageElement.useMap')
-  @DocsEditable()
-  String useMap;
-
-  @DomName('HTMLImageElement.width')
-  @DocsEditable()
-  int width;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('InjectedScriptHost')
-@Experimental() // untriaged
-@Native("InjectedScriptHost")
-class InjectedScriptHost extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory InjectedScriptHost._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('InjectedScriptHost.inspect')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void inspect(Object objectId, Object hints) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('InputDeviceCapabilities')
-@Experimental() // untriaged
-@Native("InputDeviceCapabilities")
-class InputDeviceCapabilities extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory InputDeviceCapabilities._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('InputDeviceCapabilities.InputDeviceCapabilities')
-  @DocsEditable()
-  factory InputDeviceCapabilities([Map deviceInitDict]) {
-    if (deviceInitDict != null) {
-      var deviceInitDict_1 = convertDartToNative_Dictionary(deviceInitDict);
-      return InputDeviceCapabilities._create_1(deviceInitDict_1);
-    }
-    return InputDeviceCapabilities._create_2();
-  }
-  static InputDeviceCapabilities _create_1(deviceInitDict) => JS(
-      'InputDeviceCapabilities',
-      'new InputDeviceCapabilities(#)',
-      deviceInitDict);
-  static InputDeviceCapabilities _create_2() =>
-      JS('InputDeviceCapabilities', 'new InputDeviceCapabilities()');
-
-  @DomName('InputDeviceCapabilities.firesTouchEvents')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool firesTouchEvents;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('HTMLInputElement')
-@Native("HTMLInputElement")
-class InputElement extends HtmlElement
-    implements
-        HiddenInputElement,
-        SearchInputElement,
-        TextInputElement,
-        UrlInputElement,
-        TelephoneInputElement,
-        EmailInputElement,
-        PasswordInputElement,
-        DateInputElement,
-        MonthInputElement,
-        WeekInputElement,
-        TimeInputElement,
-        LocalDateTimeInputElement,
-        NumberInputElement,
-        RangeInputElement,
-        CheckboxInputElement,
-        RadioButtonInputElement,
-        FileUploadInputElement,
-        SubmitButtonInputElement,
-        ImageButtonInputElement,
-        ResetButtonInputElement,
-        ButtonInputElement {
-  factory InputElement({String type}) {
-    InputElement e = document.createElement("input");
-    if (type != null) {
-      try {
-        // IE throws an exception for unknown types.
-        e.type = type;
-      } catch (_) {}
-    }
-    return e;
-  }
-
-  // To suppress missing implicit constructor warnings.
-  factory InputElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  InputElement.created() : super.created();
-
-  @DomName('HTMLInputElement.accept')
-  @DocsEditable()
-  String accept;
-
-  @DomName('HTMLInputElement.alt')
-  @DocsEditable()
-  String alt;
-
-  @DomName('HTMLInputElement.autocapitalize')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String autocapitalize;
-
-  @DomName('HTMLInputElement.autocomplete')
-  @DocsEditable()
-  String autocomplete;
-
-  @DomName('HTMLInputElement.autofocus')
-  @DocsEditable()
-  bool autofocus;
-
-  @DomName('HTMLInputElement.capture')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool capture;
-
-  @DomName('HTMLInputElement.checked')
-  @DocsEditable()
-  bool checked;
-
-  @DomName('HTMLInputElement.defaultChecked')
-  @DocsEditable()
-  bool defaultChecked;
-
-  @DomName('HTMLInputElement.defaultValue')
-  @DocsEditable()
-  String defaultValue;
-
-  @DomName('HTMLInputElement.dirName')
-  @DocsEditable()
-  String dirName;
-
-  @DomName('HTMLInputElement.disabled')
-  @DocsEditable()
-  bool disabled;
-
-  @DomName('HTMLInputElement.files')
-  @DocsEditable()
-  @Returns('FileList|Null')
-  @Creates('FileList')
-  List<File> files;
-
-  @DomName('HTMLInputElement.form')
-  @DocsEditable()
-  final FormElement form;
-
-  @DomName('HTMLInputElement.formAction')
-  @DocsEditable()
-  String formAction;
-
-  @DomName('HTMLInputElement.formEnctype')
-  @DocsEditable()
-  String formEnctype;
-
-  @DomName('HTMLInputElement.formMethod')
-  @DocsEditable()
-  String formMethod;
-
-  @DomName('HTMLInputElement.formNoValidate')
-  @DocsEditable()
-  bool formNoValidate;
-
-  @DomName('HTMLInputElement.formTarget')
-  @DocsEditable()
-  String formTarget;
-
-  @DomName('HTMLInputElement.height')
-  @DocsEditable()
-  int height;
-
-  @DomName('HTMLInputElement.incremental')
-  @DocsEditable()
-  // http://www.w3.org/TR/html-markup/input.search.html
-  @Experimental()
-  bool incremental;
-
-  @DomName('HTMLInputElement.indeterminate')
-  @DocsEditable()
-  bool indeterminate;
-
-  @DomName('HTMLInputElement.inputMode')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String inputMode;
-
-  @DomName('HTMLInputElement.labels')
-  @DocsEditable()
-  @Returns('NodeList|Null')
-  @Creates('NodeList')
-  final List<Node> labels;
-
-  @DomName('HTMLInputElement.list')
-  @DocsEditable()
-  final HtmlElement list;
-
-  @DomName('HTMLInputElement.max')
-  @DocsEditable()
-  String max;
-
-  @DomName('HTMLInputElement.maxLength')
-  @DocsEditable()
-  int maxLength;
-
-  @DomName('HTMLInputElement.min')
-  @DocsEditable()
-  String min;
-
-  @DomName('HTMLInputElement.minLength')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int minLength;
-
-  @DomName('HTMLInputElement.multiple')
-  @DocsEditable()
-  bool multiple;
-
-  @DomName('HTMLInputElement.name')
-  @DocsEditable()
-  String name;
-
-  @DomName('HTMLInputElement.pattern')
-  @DocsEditable()
-  String pattern;
-
-  @DomName('HTMLInputElement.placeholder')
-  @DocsEditable()
-  String placeholder;
-
-  @DomName('HTMLInputElement.readOnly')
-  @DocsEditable()
-  bool readOnly;
-
-  @DomName('HTMLInputElement.required')
-  @DocsEditable()
-  bool required;
-
-  @DomName('HTMLInputElement.selectionDirection')
-  @DocsEditable()
-  String selectionDirection;
-
-  @DomName('HTMLInputElement.selectionEnd')
-  @DocsEditable()
-  int selectionEnd;
-
-  @DomName('HTMLInputElement.selectionStart')
-  @DocsEditable()
-  int selectionStart;
-
-  @DomName('HTMLInputElement.size')
-  @DocsEditable()
-  int size;
-
-  @DomName('HTMLInputElement.src')
-  @DocsEditable()
-  String src;
-
-  @DomName('HTMLInputElement.step')
-  @DocsEditable()
-  String step;
-
-  @DomName('HTMLInputElement.type')
-  @DocsEditable()
-  String type;
-
-  @DomName('HTMLInputElement.validationMessage')
-  @DocsEditable()
-  final String validationMessage;
-
-  @DomName('HTMLInputElement.validity')
-  @DocsEditable()
-  final ValidityState validity;
-
-  @DomName('HTMLInputElement.value')
-  @DocsEditable()
-  String value;
-
-  @DomName('HTMLInputElement.valueAsDate')
-  @DocsEditable()
-  DateTime get valueAsDate =>
-      convertNativeToDart_DateTime(this._get_valueAsDate);
-  @JSName('valueAsDate')
-  @DomName('HTMLInputElement.valueAsDate')
-  @DocsEditable()
-  @Creates('Null')
-  final dynamic _get_valueAsDate;
-
-  set valueAsDate(DateTime value) {
-    this._set_valueAsDate = convertDartToNative_DateTime(value);
-  }
-
-  set _set_valueAsDate(/*dynamic*/ value) {
-    JS("void", "#.valueAsDate = #", this, value);
-  }
-
-  @DomName('HTMLInputElement.valueAsNumber')
-  @DocsEditable()
-  num valueAsNumber;
-
-  @JSName('webkitEntries')
-  @DomName('HTMLInputElement.webkitEntries')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  // http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#concept-input-type-file-selected
-  final List<Entry> entries;
-
-  @JSName('webkitdirectory')
-  @DomName('HTMLInputElement.webkitdirectory')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  // https://plus.sandbox.google.com/+AddyOsmani/posts/Dk5UhZ6zfF3
-  bool directory;
-
-  @DomName('HTMLInputElement.width')
-  @DocsEditable()
-  int width;
-
-  @DomName('HTMLInputElement.willValidate')
-  @DocsEditable()
-  final bool willValidate;
-
-  @DomName('HTMLInputElement.checkValidity')
-  @DocsEditable()
-  bool checkValidity() native;
-
-  @DomName('HTMLInputElement.reportValidity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool reportValidity() native;
-
-  @DomName('HTMLInputElement.select')
-  @DocsEditable()
-  void select() native;
-
-  @DomName('HTMLInputElement.setCustomValidity')
-  @DocsEditable()
-  void setCustomValidity(String error) native;
-
-  @DomName('HTMLInputElement.setRangeText')
-  @DocsEditable()
-  // http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#dom-textarea/input-setrangetext
-  @Experimental() // experimental
-  void setRangeText(String replacement,
-      {int start, int end, String selectionMode}) native;
-
-  @DomName('HTMLInputElement.setSelectionRange')
-  @DocsEditable()
-  void setSelectionRange(int start, int end, [String direction]) native;
-
-  @DomName('HTMLInputElement.stepDown')
-  @DocsEditable()
-  void stepDown([int n]) native;
-
-  @DomName('HTMLInputElement.stepUp')
-  @DocsEditable()
-  void stepUp([int n]) native;
-}
-
-// Interfaces representing the InputElement APIs which are supported
-// for the various types of InputElement. From:
-// http://www.w3.org/html/wg/drafts/html/master/forms.html#the-input-element.
-
-/**
- * Exposes the functionality common between all InputElement types.
- */
-abstract class InputElementBase implements Element {
-  @DomName('HTMLInputElement.autofocus')
-  bool autofocus;
-
-  @DomName('HTMLInputElement.disabled')
-  bool disabled;
-
-  @DomName('HTMLInputElement.incremental')
-  bool incremental;
-
-  @DomName('HTMLInputElement.indeterminate')
-  bool indeterminate;
-
-  @DomName('HTMLInputElement.labels')
-  List<Node> get labels;
-
-  @DomName('HTMLInputElement.name')
-  String name;
-
-  @DomName('HTMLInputElement.validationMessage')
-  String get validationMessage;
-
-  @DomName('HTMLInputElement.validity')
-  ValidityState get validity;
-
-  @DomName('HTMLInputElement.value')
-  String value;
-
-  @DomName('HTMLInputElement.willValidate')
-  bool get willValidate;
-
-  @DomName('HTMLInputElement.checkValidity')
-  bool checkValidity();
-
-  @DomName('HTMLInputElement.setCustomValidity')
-  void setCustomValidity(String error);
-}
-
-/**
- * Hidden input which is not intended to be seen or edited by the user.
- */
-abstract class HiddenInputElement implements InputElementBase {
-  factory HiddenInputElement() => new InputElement(type: 'hidden');
-}
-
-/**
- * Base interface for all inputs which involve text editing.
- */
-abstract class TextInputElementBase implements InputElementBase {
-  @DomName('HTMLInputElement.autocomplete')
-  String autocomplete;
-
-  @DomName('HTMLInputElement.maxLength')
-  int maxLength;
-
-  @DomName('HTMLInputElement.pattern')
-  String pattern;
-
-  @DomName('HTMLInputElement.placeholder')
-  String placeholder;
-
-  @DomName('HTMLInputElement.readOnly')
-  bool readOnly;
-
-  @DomName('HTMLInputElement.required')
-  bool required;
-
-  @DomName('HTMLInputElement.size')
-  int size;
-
-  @DomName('HTMLInputElement.select')
-  void select();
-
-  @DomName('HTMLInputElement.selectionDirection')
-  String selectionDirection;
-
-  @DomName('HTMLInputElement.selectionEnd')
-  int selectionEnd;
-
-  @DomName('HTMLInputElement.selectionStart')
-  int selectionStart;
-
-  @DomName('HTMLInputElement.setSelectionRange')
-  void setSelectionRange(int start, int end, [String direction]);
-}
-
-/**
- * Similar to [TextInputElement], but on platforms where search is styled
- * differently this will get the search style.
- *
- * Use [supported] to check if this is supported on the current platform.
- */
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-abstract class SearchInputElement implements TextInputElementBase {
-  factory SearchInputElement() => new InputElement(type: 'search');
-
-  @DomName('HTMLInputElement.dirName')
-  String dirName;
-
-  @DomName('HTMLInputElement.list')
-  Element get list;
-
-  /// Returns true if this input type is supported on the current platform.
-  static bool get supported {
-    return (new InputElement(type: 'search')).type == 'search';
-  }
-}
-
-/**
- * A basic text input editor control.
- */
-abstract class TextInputElement implements TextInputElementBase {
-  factory TextInputElement() => new InputElement(type: 'text');
-
-  @DomName('HTMLInputElement.dirName')
-  String dirName;
-
-  @DomName('HTMLInputElement.list')
-  Element get list;
-}
-
-/**
- * A control for editing an absolute URL.
- *
- * Use [supported] to check if this is supported on the current platform.
- */
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-abstract class UrlInputElement implements TextInputElementBase {
-  factory UrlInputElement() => new InputElement(type: 'url');
-
-  @DomName('HTMLInputElement.list')
-  Element get list;
-
-  /// Returns true if this input type is supported on the current platform.
-  static bool get supported {
-    return (new InputElement(type: 'url')).type == 'url';
-  }
-}
-
-/**
- * Represents a control for editing a telephone number.
- *
- * This provides a single line of text with minimal formatting help since
- * there is a wide variety of telephone numbers.
- *
- * Use [supported] to check if this is supported on the current platform.
- */
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-abstract class TelephoneInputElement implements TextInputElementBase {
-  factory TelephoneInputElement() => new InputElement(type: 'tel');
-
-  @DomName('HTMLInputElement.list')
-  Element get list;
-
-  /// Returns true if this input type is supported on the current platform.
-  static bool get supported {
-    return (new InputElement(type: 'tel')).type == 'tel';
-  }
-}
-
-/**
- * An e-mail address or list of e-mail addresses.
- *
- * Use [supported] to check if this is supported on the current platform.
- */
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-abstract class EmailInputElement implements TextInputElementBase {
-  factory EmailInputElement() => new InputElement(type: 'email');
-
-  @DomName('HTMLInputElement.autocomplete')
-  String autocomplete;
-
-  @DomName('HTMLInputElement.autofocus')
-  bool autofocus;
-
-  @DomName('HTMLInputElement.list')
-  Element get list;
-
-  @DomName('HTMLInputElement.maxLength')
-  int maxLength;
-
-  @DomName('HTMLInputElement.multiple')
-  bool multiple;
-
-  @DomName('HTMLInputElement.pattern')
-  String pattern;
-
-  @DomName('HTMLInputElement.placeholder')
-  String placeholder;
-
-  @DomName('HTMLInputElement.readOnly')
-  bool readOnly;
-
-  @DomName('HTMLInputElement.required')
-  bool required;
-
-  @DomName('HTMLInputElement.size')
-  int size;
-
-  /// Returns true if this input type is supported on the current platform.
-  static bool get supported {
-    return (new InputElement(type: 'email')).type == 'email';
-  }
-}
-
-/**
- * Text with no line breaks (sensitive information).
- */
-abstract class PasswordInputElement implements TextInputElementBase {
-  factory PasswordInputElement() => new InputElement(type: 'password');
-}
-
-/**
- * Base interface for all input element types which involve ranges.
- */
-abstract class RangeInputElementBase implements InputElementBase {
-  @DomName('HTMLInputElement.list')
-  Element get list;
-
-  @DomName('HTMLInputElement.max')
-  String max;
-
-  @DomName('HTMLInputElement.min')
-  String min;
-
-  @DomName('HTMLInputElement.step')
-  String step;
-
-  @DomName('HTMLInputElement.valueAsNumber')
-  num valueAsNumber;
-
-  @DomName('HTMLInputElement.stepDown')
-  void stepDown([int n]);
-
-  @DomName('HTMLInputElement.stepUp')
-  void stepUp([int n]);
-}
-
-/**
- * A date (year, month, day) with no time zone.
- *
- * Use [supported] to check if this is supported on the current platform.
- */
-@SupportedBrowser(SupportedBrowser.CHROME, '25')
-@Experimental()
-abstract class DateInputElement implements RangeInputElementBase {
-  factory DateInputElement() => new InputElement(type: 'date');
-
-  @DomName('HTMLInputElement.valueAsDate')
-  DateTime valueAsDate;
-
-  @DomName('HTMLInputElement.readOnly')
-  bool readOnly;
-
-  @DomName('HTMLInputElement.required')
-  bool required;
-
-  /// Returns true if this input type is supported on the current platform.
-  static bool get supported {
-    return (new InputElement(type: 'date')).type == 'date';
-  }
-}
-
-/**
- * A date consisting of a year and a month with no time zone.
- *
- * Use [supported] to check if this is supported on the current platform.
- */
-@SupportedBrowser(SupportedBrowser.CHROME, '25')
-@Experimental()
-abstract class MonthInputElement implements RangeInputElementBase {
-  factory MonthInputElement() => new InputElement(type: 'month');
-
-  @DomName('HTMLInputElement.valueAsDate')
-  DateTime valueAsDate;
-
-  @DomName('HTMLInputElement.readOnly')
-  bool readOnly;
-
-  @DomName('HTMLInputElement.required')
-  bool required;
-
-  /// Returns true if this input type is supported on the current platform.
-  static bool get supported {
-    return (new InputElement(type: 'month')).type == 'month';
-  }
-}
-
-/**
- * A date consisting of a week-year number and a week number with no time zone.
- *
- * Use [supported] to check if this is supported on the current platform.
- */
-@SupportedBrowser(SupportedBrowser.CHROME, '25')
-@Experimental()
-abstract class WeekInputElement implements RangeInputElementBase {
-  factory WeekInputElement() => new InputElement(type: 'week');
-
-  @DomName('HTMLInputElement.valueAsDate')
-  DateTime valueAsDate;
-
-  @DomName('HTMLInputElement.readOnly')
-  bool readOnly;
-
-  @DomName('HTMLInputElement.required')
-  bool required;
-
-  /// Returns true if this input type is supported on the current platform.
-  static bool get supported {
-    return (new InputElement(type: 'week')).type == 'week';
-  }
-}
-
-/**
- * A time (hour, minute, seconds, fractional seconds) with no time zone.
- *
- * Use [supported] to check if this is supported on the current platform.
- */
-@SupportedBrowser(SupportedBrowser.CHROME)
-@Experimental()
-abstract class TimeInputElement implements RangeInputElementBase {
-  factory TimeInputElement() => new InputElement(type: 'time');
-
-  @DomName('HTMLInputElement.valueAsDate')
-  DateTime valueAsDate;
-
-  @DomName('HTMLInputElement.readOnly')
-  bool readOnly;
-
-  @DomName('HTMLInputElement.required')
-  bool required;
-
-  /// Returns true if this input type is supported on the current platform.
-  static bool get supported {
-    return (new InputElement(type: 'time')).type == 'time';
-  }
-}
-
-/**
- * A date and time (year, month, day, hour, minute, second, fraction of a
- * second) with no time zone.
- *
- * Use [supported] to check if this is supported on the current platform.
- */
-@SupportedBrowser(SupportedBrowser.CHROME, '25')
-@Experimental()
-abstract class LocalDateTimeInputElement implements RangeInputElementBase {
-  factory LocalDateTimeInputElement() =>
-      new InputElement(type: 'datetime-local');
-
-  @DomName('HTMLInputElement.readOnly')
-  bool readOnly;
-
-  @DomName('HTMLInputElement.required')
-  bool required;
-
-  /// Returns true if this input type is supported on the current platform.
-  static bool get supported {
-    return (new InputElement(type: 'datetime-local')).type == 'datetime-local';
-  }
-}
-
-/**
- * A numeric editor control.
- */
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.IE)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Experimental()
-abstract class NumberInputElement implements RangeInputElementBase {
-  factory NumberInputElement() => new InputElement(type: 'number');
-
-  @DomName('HTMLInputElement.placeholder')
-  String placeholder;
-
-  @DomName('HTMLInputElement.readOnly')
-  bool readOnly;
-
-  @DomName('HTMLInputElement.required')
-  bool required;
-
-  /// Returns true if this input type is supported on the current platform.
-  static bool get supported {
-    return (new InputElement(type: 'number')).type == 'number';
-  }
-}
-
-/**
- * Similar to [NumberInputElement] but the browser may provide more optimal
- * styling (such as a slider control).
- *
- * Use [supported] to check if this is supported on the current platform.
- */
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@Experimental()
-abstract class RangeInputElement implements RangeInputElementBase {
-  factory RangeInputElement() => new InputElement(type: 'range');
-
-  /// Returns true if this input type is supported on the current platform.
-  static bool get supported {
-    return (new InputElement(type: 'range')).type == 'range';
-  }
-}
-
-/**
- * A boolean editor control.
- *
- * Note that if [indeterminate] is set then this control is in a third
- * indeterminate state.
- */
-abstract class CheckboxInputElement implements InputElementBase {
-  factory CheckboxInputElement() => new InputElement(type: 'checkbox');
-
-  @DomName('HTMLInputElement.checked')
-  bool checked;
-
-  @DomName('HTMLInputElement.required')
-  bool required;
-}
-
-/**
- * A control that when used with other [ReadioButtonInputElement] controls
- * forms a radio button group in which only one control can be checked at a
- * time.
- *
- * Radio buttons are considered to be in the same radio button group if:
- *
- * * They are all of type 'radio'.
- * * They all have either the same [FormElement] owner, or no owner.
- * * Their name attributes contain the same name.
- */
-abstract class RadioButtonInputElement implements InputElementBase {
-  factory RadioButtonInputElement() => new InputElement(type: 'radio');
-
-  @DomName('HTMLInputElement.checked')
-  bool checked;
-
-  @DomName('HTMLInputElement.required')
-  bool required;
-}
-
-/**
- * A control for picking files from the user's computer.
- */
-abstract class FileUploadInputElement implements InputElementBase {
-  factory FileUploadInputElement() => new InputElement(type: 'file');
-
-  @DomName('HTMLInputElement.accept')
-  String accept;
-
-  @DomName('HTMLInputElement.multiple')
-  bool multiple;
-
-  @DomName('HTMLInputElement.required')
-  bool required;
-
-  @DomName('HTMLInputElement.files')
-  List<File> files;
-}
-
-/**
- * A button, which when clicked, submits the form.
- */
-abstract class SubmitButtonInputElement implements InputElementBase {
-  factory SubmitButtonInputElement() => new InputElement(type: 'submit');
-
-  @DomName('HTMLInputElement.formAction')
-  String formAction;
-
-  @DomName('HTMLInputElement.formEnctype')
-  String formEnctype;
-
-  @DomName('HTMLInputElement.formMethod')
-  String formMethod;
-
-  @DomName('HTMLInputElement.formNoValidate')
-  bool formNoValidate;
-
-  @DomName('HTMLInputElement.formTarget')
-  String formTarget;
-}
-
-/**
- * Either an image which the user can select a coordinate to or a form
- * submit button.
- */
-abstract class ImageButtonInputElement implements InputElementBase {
-  factory ImageButtonInputElement() => new InputElement(type: 'image');
-
-  @DomName('HTMLInputElement.alt')
-  String alt;
-
-  @DomName('HTMLInputElement.formAction')
-  String formAction;
-
-  @DomName('HTMLInputElement.formEnctype')
-  String formEnctype;
-
-  @DomName('HTMLInputElement.formMethod')
-  String formMethod;
-
-  @DomName('HTMLInputElement.formNoValidate')
-  bool formNoValidate;
-
-  @DomName('HTMLInputElement.formTarget')
-  String formTarget;
-
-  @DomName('HTMLInputElement.height')
-  int height;
-
-  @DomName('HTMLInputElement.src')
-  String src;
-
-  @DomName('HTMLInputElement.width')
-  int width;
-}
-
-/**
- * A button, which when clicked, resets the form.
- */
-abstract class ResetButtonInputElement implements InputElementBase {
-  factory ResetButtonInputElement() => new InputElement(type: 'reset');
-}
-
-/**
- * A button, with no default behavior.
- */
-abstract class ButtonInputElement implements InputElementBase {
-  factory ButtonInputElement() => new InputElement(type: 'button');
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('InstallEvent')
-@Experimental() // untriaged
-@Native("InstallEvent")
-class InstallEvent extends ExtendableEvent {
-  // To suppress missing implicit constructor warnings.
-  factory InstallEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('InstallEvent.InstallEvent')
-  @DocsEditable()
-  factory InstallEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return InstallEvent._create_1(type, eventInitDict_1);
-    }
-    return InstallEvent._create_2(type);
-  }
-  static InstallEvent _create_1(type, eventInitDict) =>
-      JS('InstallEvent', 'new InstallEvent(#,#)', type, eventInitDict);
-  static InstallEvent _create_2(type) =>
-      JS('InstallEvent', 'new InstallEvent(#)', type);
-
-  @DomName('InstallEvent.registerForeignFetchScopes')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void registerForeignFetchScopes(List<String> subScopes, Object origins) {
-    List subScopes_1 = convertDartToNative_StringArray(subScopes);
-    _registerForeignFetchScopes_1(subScopes_1, origins);
-    return;
-  }
-
-  @JSName('registerForeignFetchScopes')
-  @DomName('InstallEvent.registerForeignFetchScopes')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _registerForeignFetchScopes_1(List subScopes, origins) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('IntersectionObserver')
-@Experimental() // untriaged
-@Native("IntersectionObserver")
-class IntersectionObserver extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory IntersectionObserver._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('IntersectionObserver.root')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Element root;
-
-  @DomName('IntersectionObserver.rootMargin')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String rootMargin;
-
-  @DomName('IntersectionObserver.thresholds')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final List<num> thresholds;
-
-  @DomName('IntersectionObserver.disconnect')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void disconnect() native;
-
-  @DomName('IntersectionObserver.observe')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void observe(Element target) native;
-
-  @DomName('IntersectionObserver.takeRecords')
-  @DocsEditable()
-  @Experimental() // untriaged
-  List<IntersectionObserverEntry> takeRecords() native;
-
-  @DomName('IntersectionObserver.unobserve')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void unobserve(Element target) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('IntersectionObserverEntry')
-@Experimental() // untriaged
-@Native("IntersectionObserverEntry")
-class IntersectionObserverEntry extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory IntersectionObserverEntry._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('IntersectionObserverEntry.boundingClientRect')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Rectangle boundingClientRect;
-
-  @DomName('IntersectionObserverEntry.intersectionRect')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Rectangle intersectionRect;
-
-  @DomName('IntersectionObserverEntry.rootBounds')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Rectangle rootBounds;
-
-  @DomName('IntersectionObserverEntry.target')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Element target;
-
-  @DomName('IntersectionObserverEntry.time')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double time;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/**
- * An event that describes user interaction with the keyboard.
- *
- * The [type] of the event identifies what kind of interaction occurred.
- *
- * See also:
- *
- * * [KeyboardEvent](https://developer.mozilla.org/en/DOM/KeyboardEvent) at MDN.
- */
-@DomName('KeyboardEvent')
-@Native("KeyboardEvent")
-class KeyboardEvent extends UIEvent {
-  /**
-   * Programmatically create a KeyboardEvent.
-   *
-   * Due to browser differences, keyCode, charCode, or keyIdentifier values
-   * cannot be specified in this base level constructor. This constructor
-   * enables the user to programmatically create and dispatch a [KeyboardEvent],
-   * but it will not contain any particular key content. For programmatically
-   * creating keyboard events with specific key value contents, see the custom
-   * Event [KeyEvent].
-   */
-  factory KeyboardEvent(String type,
-      {Window view,
-      bool canBubble: true,
-      bool cancelable: true,
-      int location,
-      int keyLocation, // Legacy alias for location
-      bool ctrlKey: false,
-      bool altKey: false,
-      bool shiftKey: false,
-      bool metaKey: false}) {
-    if (view == null) {
-      view = window;
-    }
-    location ??= keyLocation ?? 1;
-    KeyboardEvent e = document._createEvent("KeyboardEvent");
-    e._initKeyboardEvent(type, canBubble, cancelable, view, "", location,
-        ctrlKey, altKey, shiftKey, metaKey);
-    return e;
-  }
-
-  @DomName('KeyboardEvent.initKeyboardEvent')
-  void _initKeyboardEvent(
-      String type,
-      bool canBubble,
-      bool cancelable,
-      Window view,
-      String keyIdentifier,
-      int location,
-      bool ctrlKey,
-      bool altKey,
-      bool shiftKey,
-      bool metaKey) {
-    if (JS('bool', 'typeof(#.initKeyEvent) == "function"', this)) {
-      // initKeyEvent is only in Firefox (instead of initKeyboardEvent). It has
-      // a slightly different signature, and allows you to specify keyCode and
-      // charCode as the last two arguments, but we just set them as the default
-      // since they can't be specified in other browsers.
-      JS('void', '#.initKeyEvent(#, #, #, #, #, #, #, #, 0, 0)', this, type,
-          canBubble, cancelable, view, ctrlKey, altKey, shiftKey, metaKey);
-    } else {
-      // initKeyboardEvent is for all other browsers.
-      JS(
-          'void',
-          '#.initKeyboardEvent(#, #, #, #, #, #, #, #, #, #)',
-          this,
-          type,
-          canBubble,
-          cancelable,
-          view,
-          keyIdentifier,
-          location,
-          ctrlKey,
-          altKey,
-          shiftKey,
-          metaKey);
-    }
-  }
-
-  @DomName('KeyboardEvent.keyCode')
-  final int keyCode;
-
-  @DomName('KeyboardEvent.charCode')
-  final int charCode;
-
-  @DomName('KeyboardEvent.which')
-  int get which => _which;
-
-  @DomName('KeyboardEvent.KeyboardEvent')
-  @DocsEditable()
-  factory KeyboardEvent._(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return KeyboardEvent._create_1(type, eventInitDict_1);
-    }
-    return KeyboardEvent._create_2(type);
-  }
-  static KeyboardEvent _create_1(type, eventInitDict) =>
-      JS('KeyboardEvent', 'new KeyboardEvent(#,#)', type, eventInitDict);
-  static KeyboardEvent _create_2(type) =>
-      JS('KeyboardEvent', 'new KeyboardEvent(#)', type);
-
-  @DomName('KeyboardEvent.DOM_KEY_LOCATION_LEFT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int DOM_KEY_LOCATION_LEFT = 0x01;
-
-  @DomName('KeyboardEvent.DOM_KEY_LOCATION_NUMPAD')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int DOM_KEY_LOCATION_NUMPAD = 0x03;
-
-  @DomName('KeyboardEvent.DOM_KEY_LOCATION_RIGHT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int DOM_KEY_LOCATION_RIGHT = 0x02;
-
-  @DomName('KeyboardEvent.DOM_KEY_LOCATION_STANDARD')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int DOM_KEY_LOCATION_STANDARD = 0x00;
-
-  @DomName('KeyboardEvent.altKey')
-  @DocsEditable()
-  final bool altKey;
-
-  @JSName('charCode')
-  @DomName('KeyboardEvent.charCode')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int _charCode;
-
-  @DomName('KeyboardEvent.code')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String code;
-
-  @DomName('KeyboardEvent.ctrlKey')
-  @DocsEditable()
-  final bool ctrlKey;
-
-  @DomName('KeyboardEvent.key')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String key;
-
-  @JSName('keyCode')
-  @DomName('KeyboardEvent.keyCode')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int _keyCode;
-
-  @JSName('keyIdentifier')
-  @DomName('KeyboardEvent.keyIdentifier')
-  @DocsEditable()
-  @Experimental() // nonstandard
-  final String _keyIdentifier;
-
-  @DomName('KeyboardEvent.location')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int location;
-
-  @DomName('KeyboardEvent.metaKey')
-  @DocsEditable()
-  final bool metaKey;
-
-  @DomName('KeyboardEvent.repeat')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool repeat;
-
-  @DomName('KeyboardEvent.shiftKey')
-  @DocsEditable()
-  final bool shiftKey;
-
-  // Use implementation from UIEvent.
-  // final int _which;
-
-  @DomName('KeyboardEvent.getModifierState')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool getModifierState(String keyArg) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('KeyframeEffect')
-@Experimental() // untriaged
-@Native("KeyframeEffect")
-class KeyframeEffect extends AnimationEffectReadOnly {
-  // To suppress missing implicit constructor warnings.
-  factory KeyframeEffect._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('KeyframeEffect.KeyframeEffect')
-  @DocsEditable()
-  factory KeyframeEffect(Element target, Object effect, [timing]) {
-    if (effect != null &&
-        (target is Element || target == null) &&
-        timing == null) {
-      return KeyframeEffect._create_1(target, effect);
-    }
-    if ((timing is num) &&
-        effect != null &&
-        (target is Element || target == null)) {
-      return KeyframeEffect._create_2(target, effect, timing);
-    }
-    if ((timing is Map) &&
-        effect != null &&
-        (target is Element || target == null)) {
-      var timing_1 = convertDartToNative_Dictionary(timing);
-      return KeyframeEffect._create_3(target, effect, timing_1);
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-  static KeyframeEffect _create_1(target, effect) =>
-      JS('KeyframeEffect', 'new KeyframeEffect(#,#)', target, effect);
-  static KeyframeEffect _create_2(target, effect, timing) =>
-      JS('KeyframeEffect', 'new KeyframeEffect(#,#,#)', target, effect, timing);
-  static KeyframeEffect _create_3(target, effect, timing) =>
-      JS('KeyframeEffect', 'new KeyframeEffect(#,#,#)', target, effect, timing);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLKeygenElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Experimental()
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#the-keygen-element
-@Native("HTMLKeygenElement")
-class KeygenElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory KeygenElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLKeygenElement.HTMLKeygenElement')
-  @DocsEditable()
-  factory KeygenElement() => document.createElement("keygen");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  KeygenElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      Element.isTagSupported('keygen') &&
-      (new Element.tag('keygen') is KeygenElement);
-
-  @DomName('HTMLKeygenElement.autofocus')
-  @DocsEditable()
-  bool autofocus;
-
-  @DomName('HTMLKeygenElement.challenge')
-  @DocsEditable()
-  String challenge;
-
-  @DomName('HTMLKeygenElement.disabled')
-  @DocsEditable()
-  bool disabled;
-
-  @DomName('HTMLKeygenElement.form')
-  @DocsEditable()
-  final FormElement form;
-
-  @DomName('HTMLKeygenElement.keytype')
-  @DocsEditable()
-  String keytype;
-
-  @DomName('HTMLKeygenElement.labels')
-  @DocsEditable()
-  @Unstable()
-  @Returns('NodeList|Null')
-  @Creates('NodeList')
-  final List<Node> labels;
-
-  @DomName('HTMLKeygenElement.name')
-  @DocsEditable()
-  String name;
-
-  @DomName('HTMLKeygenElement.type')
-  @DocsEditable()
-  final String type;
-
-  @DomName('HTMLKeygenElement.validationMessage')
-  @DocsEditable()
-  final String validationMessage;
-
-  @DomName('HTMLKeygenElement.validity')
-  @DocsEditable()
-  final ValidityState validity;
-
-  @DomName('HTMLKeygenElement.willValidate')
-  @DocsEditable()
-  final bool willValidate;
-
-  @DomName('HTMLKeygenElement.checkValidity')
-  @DocsEditable()
-  bool checkValidity() native;
-
-  @DomName('HTMLKeygenElement.reportValidity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool reportValidity() native;
-
-  @DomName('HTMLKeygenElement.setCustomValidity')
-  @DocsEditable()
-  void setCustomValidity(String error) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('KeywordValue')
-@Experimental() // untriaged
-@Native("KeywordValue")
-class KeywordValue extends StyleValue {
-  // To suppress missing implicit constructor warnings.
-  factory KeywordValue._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('KeywordValue.KeywordValue')
-  @DocsEditable()
-  factory KeywordValue(String keyword) {
-    return KeywordValue._create_1(keyword);
-  }
-  static KeywordValue _create_1(keyword) =>
-      JS('KeywordValue', 'new KeywordValue(#)', keyword);
-
-  @DomName('KeywordValue.keywordValue')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String keywordValue;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLLIElement')
-@Native("HTMLLIElement")
-class LIElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory LIElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLLIElement.HTMLLIElement')
-  @DocsEditable()
-  factory LIElement() => JS('returns:LIElement;creates:LIElement;new:true',
-      '#.createElement(#)', document, "li");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  LIElement.created() : super.created();
-
-  @DomName('HTMLLIElement.value')
-  @DocsEditable()
-  int value;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLLabelElement')
-@Native("HTMLLabelElement")
-class LabelElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory LabelElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLLabelElement.HTMLLabelElement')
-  @DocsEditable()
-  factory LabelElement() => JS(
-      'returns:LabelElement;creates:LabelElement;new:true',
-      '#.createElement(#)',
-      document,
-      "label");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  LabelElement.created() : super.created();
-
-  @DomName('HTMLLabelElement.control')
-  @DocsEditable()
-  final HtmlElement control;
-
-  @DomName('HTMLLabelElement.form')
-  @DocsEditable()
-  final FormElement form;
-
-  @DomName('HTMLLabelElement.htmlFor')
-  @DocsEditable()
-  String htmlFor;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLLegendElement')
-@Native("HTMLLegendElement")
-class LegendElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory LegendElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLLegendElement.HTMLLegendElement')
-  @DocsEditable()
-  factory LegendElement() => JS(
-      'returns:LegendElement;creates:LegendElement;new:true',
-      '#.createElement(#)',
-      document,
-      "legend");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  LegendElement.created() : super.created();
-
-  @DomName('HTMLLegendElement.form')
-  @DocsEditable()
-  final FormElement form;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('LengthValue')
-@Experimental() // untriaged
-@Native("LengthValue")
-class LengthValue extends StyleValue {
-  // To suppress missing implicit constructor warnings.
-  factory LengthValue._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('LengthValue.add')
-  @DocsEditable()
-  @Experimental() // untriaged
-  LengthValue add(LengthValue other) native;
-
-  @DomName('LengthValue.divide')
-  @DocsEditable()
-  @Experimental() // untriaged
-  LengthValue divide(num value) native;
-
-  @DomName('LengthValue.fromDictionary')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static LengthValue fromDictionary(Map dictionary) {
-    var dictionary_1 = convertDartToNative_Dictionary(dictionary);
-    return _fromDictionary_1(dictionary_1);
-  }
-
-  @JSName('fromDictionary')
-  @DomName('LengthValue.fromDictionary')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static LengthValue _fromDictionary_1(dictionary) native;
-
-  @DomName('LengthValue.fromValue')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static LengthValue fromValue(num value, String type) native;
-
-  @DomName('LengthValue.multiply')
-  @DocsEditable()
-  @Experimental() // untriaged
-  LengthValue multiply(num value) native;
-
-  @DomName('LengthValue.parse')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static LengthValue parse(String cssString) native;
-
-  @DomName('LengthValue.subtract')
-  @DocsEditable()
-  @Experimental() // untriaged
-  LengthValue subtract(LengthValue other) native;
-}
-// Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLLinkElement')
-@Native("HTMLLinkElement")
-class LinkElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory LinkElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLLinkElement.HTMLLinkElement')
-  @DocsEditable()
-  factory LinkElement() => JS(
-      'returns:LinkElement;creates:LinkElement;new:true',
-      '#.createElement(#)',
-      document,
-      "link");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  LinkElement.created() : super.created();
-
-  @DomName('HTMLLinkElement.as')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String as;
-
-  @DomName('HTMLLinkElement.crossOrigin')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String crossOrigin;
-
-  @DomName('HTMLLinkElement.disabled')
-  @DocsEditable()
-  bool disabled;
-
-  @DomName('HTMLLinkElement.href')
-  @DocsEditable()
-  String href;
-
-  @DomName('HTMLLinkElement.hreflang')
-  @DocsEditable()
-  String hreflang;
-
-  @DomName('HTMLLinkElement.import')
-  @DocsEditable()
-  // https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/imports/index.html#interface-import
-  @Experimental()
-  final Document import;
-
-  @DomName('HTMLLinkElement.integrity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String integrity;
-
-  @DomName('HTMLLinkElement.media')
-  @DocsEditable()
-  String media;
-
-  @DomName('HTMLLinkElement.rel')
-  @DocsEditable()
-  String rel;
-
-  @DomName('HTMLLinkElement.relList')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final DomTokenList relList;
-
-  @DomName('HTMLLinkElement.sheet')
-  @DocsEditable()
-  final StyleSheet sheet;
-
-  @DomName('HTMLLinkElement.sizes')
-  @DocsEditable()
-  final DomTokenList sizes;
-
-  @DomName('HTMLLinkElement.type')
-  @DocsEditable()
-  String type;
-
-  /// Checks if HTML imports are supported on the current platform.
-  bool get supportsImport {
-    return JS('bool', '("import" in #)', this);
-  }
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Location')
-@Native("Location")
-class Location extends Interceptor implements LocationBase {
-  // To suppress missing implicit constructor warnings.
-  factory Location._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Location.ancestorOrigins')
-  @DocsEditable()
-  @Experimental() // nonstandard
-  @Returns('DomStringList|Null')
-  @Creates('DomStringList')
-  final List<String> ancestorOrigins;
-
-  @DomName('Location.hash')
-  @DocsEditable()
-  String hash;
-
-  @DomName('Location.host')
-  @DocsEditable()
-  String host;
-
-  @DomName('Location.hostname')
-  @DocsEditable()
-  String hostname;
-
-  @DomName('Location.href')
-  @DocsEditable()
-  String href;
-
-  @DomName('Location.pathname')
-  @DocsEditable()
-  String pathname;
-
-  @DomName('Location.port')
-  @DocsEditable()
-  String port;
-
-  @DomName('Location.protocol')
-  @DocsEditable()
-  String protocol;
-
-  @DomName('Location.search')
-  @DocsEditable()
-  String search;
-
-  @DomName('Location.assign')
-  @DocsEditable()
-  void assign([String url]) native;
-
-  @DomName('Location.reload')
-  @DocsEditable()
-  void reload() native;
-
-  @DomName('Location.replace')
-  @DocsEditable()
-  void replace(String url) native;
-
-  @DomName('Location.origin')
-  String get origin {
-    if (JS('bool', '("origin" in #)', this)) {
-      return JS('String', '#.origin', this);
-    }
-    return '${this.protocol}//${this.host}';
-  }
-
-  @DomName('Location.toString')
-  @DocsEditable()
-  String toString() => JS('String', 'String(#)', this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLMapElement')
-@Native("HTMLMapElement")
-class MapElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory MapElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLMapElement.HTMLMapElement')
-  @DocsEditable()
-  factory MapElement() => JS('returns:MapElement;creates:MapElement;new:true',
-      '#.createElement(#)', document, "map");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  MapElement.created() : super.created();
-
-  @DomName('HTMLMapElement.areas')
-  @DocsEditable()
-  @Returns('HtmlCollection|Null')
-  @Creates('HtmlCollection')
-  final List<Node> areas;
-
-  @DomName('HTMLMapElement.name')
-  @DocsEditable()
-  String name;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Matrix')
-@Experimental() // untriaged
-@Native("Matrix")
-class Matrix extends TransformComponent {
-  // To suppress missing implicit constructor warnings.
-  factory Matrix._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Matrix.Matrix')
-  @DocsEditable()
-  factory Matrix(num a_OR_m11, num b_OR_m12, num c_OR_m13, num d_OR_m14,
-      num e_OR_m21, num f_OR_m22,
-      [num m23,
-      num m24,
-      num m31,
-      num m32,
-      num m33,
-      num m34,
-      num m41,
-      num m42,
-      num m43,
-      num m44]) {
-    if ((f_OR_m22 is num) &&
-        (e_OR_m21 is num) &&
-        (d_OR_m14 is num) &&
-        (c_OR_m13 is num) &&
-        (b_OR_m12 is num) &&
-        (a_OR_m11 is num) &&
-        m23 == null &&
-        m24 == null &&
-        m31 == null &&
-        m32 == null &&
-        m33 == null &&
-        m34 == null &&
-        m41 == null &&
-        m42 == null &&
-        m43 == null &&
-        m44 == null) {
-      return Matrix._create_1(
-          a_OR_m11, b_OR_m12, c_OR_m13, d_OR_m14, e_OR_m21, f_OR_m22);
-    }
-    if ((m44 is num) &&
-        (m43 is num) &&
-        (m42 is num) &&
-        (m41 is num) &&
-        (m34 is num) &&
-        (m33 is num) &&
-        (m32 is num) &&
-        (m31 is num) &&
-        (m24 is num) &&
-        (m23 is num) &&
-        (f_OR_m22 is num) &&
-        (e_OR_m21 is num) &&
-        (d_OR_m14 is num) &&
-        (c_OR_m13 is num) &&
-        (b_OR_m12 is num) &&
-        (a_OR_m11 is num)) {
-      return Matrix._create_2(a_OR_m11, b_OR_m12, c_OR_m13, d_OR_m14, e_OR_m21,
-          f_OR_m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-  static Matrix _create_1(
-          a_OR_m11, b_OR_m12, c_OR_m13, d_OR_m14, e_OR_m21, f_OR_m22) =>
-      JS('Matrix', 'new Matrix(#,#,#,#,#,#)', a_OR_m11, b_OR_m12, c_OR_m13,
-          d_OR_m14, e_OR_m21, f_OR_m22);
-  static Matrix _create_2(a_OR_m11, b_OR_m12, c_OR_m13, d_OR_m14, e_OR_m21,
-          f_OR_m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44) =>
-      JS(
-          'Matrix',
-          'new Matrix(#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#)',
-          a_OR_m11,
-          b_OR_m12,
-          c_OR_m13,
-          d_OR_m14,
-          e_OR_m21,
-          f_OR_m22,
-          m23,
-          m24,
-          m31,
-          m32,
-          m33,
-          m34,
-          m41,
-          m42,
-          m43,
-          m44);
-
-  @DomName('Matrix.a')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double a;
-
-  @DomName('Matrix.b')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double b;
-
-  @DomName('Matrix.c')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double c;
-
-  @DomName('Matrix.d')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double d;
-
-  @DomName('Matrix.e')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double e;
-
-  @DomName('Matrix.f')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double f;
-
-  @DomName('Matrix.m11')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double m11;
-
-  @DomName('Matrix.m12')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double m12;
-
-  @DomName('Matrix.m13')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double m13;
-
-  @DomName('Matrix.m14')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double m14;
-
-  @DomName('Matrix.m21')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double m21;
-
-  @DomName('Matrix.m22')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double m22;
-
-  @DomName('Matrix.m23')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double m23;
-
-  @DomName('Matrix.m24')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double m24;
-
-  @DomName('Matrix.m31')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double m31;
-
-  @DomName('Matrix.m32')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double m32;
-
-  @DomName('Matrix.m33')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double m33;
-
-  @DomName('Matrix.m34')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double m34;
-
-  @DomName('Matrix.m41')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double m41;
-
-  @DomName('Matrix.m42')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double m42;
-
-  @DomName('Matrix.m43')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double m43;
-
-  @DomName('Matrix.m44')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double m44;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MediaDeviceInfo')
-@Experimental() // untriaged
-@Native("MediaDeviceInfo")
-class MediaDeviceInfo extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory MediaDeviceInfo._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MediaDeviceInfo.deviceId')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String deviceId;
-
-  @DomName('MediaDeviceInfo.groupId')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String groupId;
-
-  @DomName('MediaDeviceInfo.kind')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String kind;
-
-  @DomName('MediaDeviceInfo.label')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String label;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MediaDevices')
-@Experimental() // untriaged
-@Native("MediaDevices")
-class MediaDevices extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory MediaDevices._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MediaDevices.enumerateDevices')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future enumerateDevices() native;
-
-  @DomName('MediaDevices.getUserMedia')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future getUserMedia(Map options) {
-    var options_1 = convertDartToNative_Dictionary(options);
-    return _getUserMedia_1(options_1);
-  }
-
-  @JSName('getUserMedia')
-  @DomName('MediaDevices.getUserMedia')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _getUserMedia_1(options) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLMediaElement')
-@Unstable()
-@Native("HTMLMediaElement")
-class MediaElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory MediaElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  MediaElement.created() : super.created();
-
-  @DomName('HTMLMediaElement.HAVE_CURRENT_DATA')
-  @DocsEditable()
-  static const int HAVE_CURRENT_DATA = 2;
-
-  @DomName('HTMLMediaElement.HAVE_ENOUGH_DATA')
-  @DocsEditable()
-  static const int HAVE_ENOUGH_DATA = 4;
-
-  @DomName('HTMLMediaElement.HAVE_FUTURE_DATA')
-  @DocsEditable()
-  static const int HAVE_FUTURE_DATA = 3;
-
-  @DomName('HTMLMediaElement.HAVE_METADATA')
-  @DocsEditable()
-  static const int HAVE_METADATA = 1;
-
-  @DomName('HTMLMediaElement.HAVE_NOTHING')
-  @DocsEditable()
-  static const int HAVE_NOTHING = 0;
-
-  @DomName('HTMLMediaElement.NETWORK_EMPTY')
-  @DocsEditable()
-  static const int NETWORK_EMPTY = 0;
-
-  @DomName('HTMLMediaElement.NETWORK_IDLE')
-  @DocsEditable()
-  static const int NETWORK_IDLE = 1;
-
-  @DomName('HTMLMediaElement.NETWORK_LOADING')
-  @DocsEditable()
-  static const int NETWORK_LOADING = 2;
-
-  @DomName('HTMLMediaElement.NETWORK_NO_SOURCE')
-  @DocsEditable()
-  static const int NETWORK_NO_SOURCE = 3;
-
-  @DomName('HTMLMediaElement.audioTracks')
-  @DocsEditable()
-  @Experimental() // untriaged
-  @Returns('AudioTrackList|Null')
-  @Creates('AudioTrackList')
-  final List<AudioTrack> audioTracks;
-
-  @DomName('HTMLMediaElement.autoplay')
-  @DocsEditable()
-  bool autoplay;
-
-  @DomName('HTMLMediaElement.buffered')
-  @DocsEditable()
-  final TimeRanges buffered;
-
-  @DomName('HTMLMediaElement.controls')
-  @DocsEditable()
-  bool controls;
-
-  @DomName('HTMLMediaElement.crossOrigin')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String crossOrigin;
-
-  @DomName('HTMLMediaElement.currentSrc')
-  @DocsEditable()
-  final String currentSrc;
-
-  @DomName('HTMLMediaElement.currentTime')
-  @DocsEditable()
-  num currentTime;
-
-  @DomName('HTMLMediaElement.defaultMuted')
-  @DocsEditable()
-  bool defaultMuted;
-
-  @DomName('HTMLMediaElement.defaultPlaybackRate')
-  @DocsEditable()
-  num defaultPlaybackRate;
-
-  @DomName('HTMLMediaElement.disableRemotePlayback')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool disableRemotePlayback;
-
-  @DomName('HTMLMediaElement.duration')
-  @DocsEditable()
-  final double duration;
-
-  @DomName('HTMLMediaElement.ended')
-  @DocsEditable()
-  final bool ended;
-
-  @DomName('HTMLMediaElement.error')
-  @DocsEditable()
-  final MediaError error;
-
-  @DomName('HTMLMediaElement.loop')
-  @DocsEditable()
-  bool loop;
-
-  @DomName('HTMLMediaElement.mediaKeys')
-  @DocsEditable()
-  // https://dvcs.w3.org/hg/html-media/raw-file/eme-v0.1/encrypted-media/encrypted-media.html
-  @Experimental()
-  final MediaKeys mediaKeys;
-
-  @DomName('HTMLMediaElement.muted')
-  @DocsEditable()
-  bool muted;
-
-  @DomName('HTMLMediaElement.networkState')
-  @DocsEditable()
-  final int networkState;
-
-  @DomName('HTMLMediaElement.paused')
-  @DocsEditable()
-  final bool paused;
-
-  @DomName('HTMLMediaElement.playbackRate')
-  @DocsEditable()
-  num playbackRate;
-
-  @DomName('HTMLMediaElement.played')
-  @DocsEditable()
-  final TimeRanges played;
-
-  @DomName('HTMLMediaElement.preload')
-  @DocsEditable()
-  String preload;
-
-  @DomName('HTMLMediaElement.readyState')
-  @DocsEditable()
-  final int readyState;
-
-  @DomName('HTMLMediaElement.seekable')
-  @DocsEditable()
-  final TimeRanges seekable;
-
-  @DomName('HTMLMediaElement.seeking')
-  @DocsEditable()
-  final bool seeking;
-
-  @DomName('HTMLMediaElement.session')
-  @DocsEditable()
-  @Experimental() // untriaged
-  MediaSession session;
-
-  @DomName('HTMLMediaElement.sinkId')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String sinkId;
-
-  @DomName('HTMLMediaElement.src')
-  @DocsEditable()
-  String src;
-
-  @DomName('HTMLMediaElement.textTracks')
-  @DocsEditable()
-  // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#dom-media-texttracks
-  @Experimental()
-  final TextTrackList textTracks;
-
-  @DomName('HTMLMediaElement.videoTracks')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final VideoTrackList videoTracks;
-
-  @DomName('HTMLMediaElement.volume')
-  @DocsEditable()
-  num volume;
-
-  @JSName('webkitAudioDecodedByteCount')
-  @DomName('HTMLMediaElement.webkitAudioDecodedByteCount')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  @Experimental() // nonstandard
-  final int audioDecodedByteCount;
-
-  @JSName('webkitVideoDecodedByteCount')
-  @DomName('HTMLMediaElement.webkitVideoDecodedByteCount')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  @Experimental() // nonstandard
-  final int videoDecodedByteCount;
-
-  @DomName('HTMLMediaElement.addTextTrack')
-  @DocsEditable()
-  // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#dom-media-addtexttrack
-  @Experimental()
-  TextTrack addTextTrack(String kind, [String label, String language]) native;
-
-  @DomName('HTMLMediaElement.canPlayType')
-  @DocsEditable()
-  @Unstable()
-  String canPlayType(String type, [String keySystem]) native;
-
-  @DomName('HTMLMediaElement.captureStream')
-  @DocsEditable()
-  @Experimental() // untriaged
-  MediaStream captureStream() native;
-
-  @DomName('HTMLMediaElement.load')
-  @DocsEditable()
-  void load() native;
-
-  @DomName('HTMLMediaElement.pause')
-  @DocsEditable()
-  void pause() native;
-
-  @DomName('HTMLMediaElement.play')
-  @DocsEditable()
-  Future play() native;
-
-  @DomName('HTMLMediaElement.setMediaKeys')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future setMediaKeys(MediaKeys mediaKeys) native;
-
-  @DomName('HTMLMediaElement.setSinkId')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future setSinkId(String sinkId) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MediaEncryptedEvent')
-@Experimental() // untriaged
-@Native("MediaEncryptedEvent")
-class MediaEncryptedEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory MediaEncryptedEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MediaEncryptedEvent.MediaEncryptedEvent')
-  @DocsEditable()
-  factory MediaEncryptedEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return MediaEncryptedEvent._create_1(type, eventInitDict_1);
-    }
-    return MediaEncryptedEvent._create_2(type);
-  }
-  static MediaEncryptedEvent _create_1(type, eventInitDict) => JS(
-      'MediaEncryptedEvent',
-      'new MediaEncryptedEvent(#,#)',
-      type,
-      eventInitDict);
-  static MediaEncryptedEvent _create_2(type) =>
-      JS('MediaEncryptedEvent', 'new MediaEncryptedEvent(#)', type);
-
-  @DomName('MediaEncryptedEvent.initData')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final ByteBuffer initData;
-
-  @DomName('MediaEncryptedEvent.initDataType')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String initDataType;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MediaError')
-@Unstable()
-@Native("MediaError")
-class MediaError extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory MediaError._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MediaError.MEDIA_ERR_ABORTED')
-  @DocsEditable()
-  static const int MEDIA_ERR_ABORTED = 1;
-
-  @DomName('MediaError.MEDIA_ERR_DECODE')
-  @DocsEditable()
-  static const int MEDIA_ERR_DECODE = 3;
-
-  @DomName('MediaError.MEDIA_ERR_NETWORK')
-  @DocsEditable()
-  static const int MEDIA_ERR_NETWORK = 2;
-
-  @DomName('MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED')
-  @DocsEditable()
-  static const int MEDIA_ERR_SRC_NOT_SUPPORTED = 4;
-
-  @DomName('MediaError.code')
-  @DocsEditable()
-  final int code;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MediaKeyMessageEvent')
-// https://dvcs.w3.org/hg/html-media/raw-file/eme-v0.1/encrypted-media/encrypted-media.html#dom-mediakeymessageevent
-@Experimental()
-@Native("MediaKeyMessageEvent")
-class MediaKeyMessageEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory MediaKeyMessageEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MediaKeyMessageEvent.MediaKeyMessageEvent')
-  @DocsEditable()
-  factory MediaKeyMessageEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return MediaKeyMessageEvent._create_1(type, eventInitDict_1);
-    }
-    return MediaKeyMessageEvent._create_2(type);
-  }
-  static MediaKeyMessageEvent _create_1(type, eventInitDict) => JS(
-      'MediaKeyMessageEvent',
-      'new MediaKeyMessageEvent(#,#)',
-      type,
-      eventInitDict);
-  static MediaKeyMessageEvent _create_2(type) =>
-      JS('MediaKeyMessageEvent', 'new MediaKeyMessageEvent(#)', type);
-
-  @DomName('MediaKeyMessageEvent.message')
-  @DocsEditable()
-  final ByteBuffer message;
-
-  @DomName('MediaKeyMessageEvent.messageType')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String messageType;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MediaKeySession')
-// https://dvcs.w3.org/hg/html-media/raw-file/eme-v0.1/encrypted-media/encrypted-media.html#dom-mediakeysession
-@Experimental()
-@Native("MediaKeySession")
-class MediaKeySession extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory MediaKeySession._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MediaKeySession.closed')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Future closed;
-
-  @DomName('MediaKeySession.expiration')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double expiration;
-
-  @DomName('MediaKeySession.keyStatuses')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final MediaKeyStatusMap keyStatuses;
-
-  @DomName('MediaKeySession.sessionId')
-  @DocsEditable()
-  final String sessionId;
-
-  @DomName('MediaKeySession.close')
-  @DocsEditable()
-  Future close() native;
-
-  @DomName('MediaKeySession.generateRequest')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future generateRequest(String initDataType, /*BufferSource*/ initData) native;
-
-  @DomName('MediaKeySession.load')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future load(String sessionId) native;
-
-  @DomName('MediaKeySession.remove')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future remove() native;
-
-  @JSName('update')
-  @DomName('MediaKeySession.update')
-  @DocsEditable()
-  Future _update(/*BufferSource*/ response) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MediaKeyStatusMap')
-@Experimental() // untriaged
-@Native("MediaKeyStatusMap")
-class MediaKeyStatusMap extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory MediaKeyStatusMap._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MediaKeyStatusMap.size')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int size;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MediaKeySystemAccess')
-@Experimental() // untriaged
-@Native("MediaKeySystemAccess")
-class MediaKeySystemAccess extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory MediaKeySystemAccess._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MediaKeySystemAccess.keySystem')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String keySystem;
-
-  @DomName('MediaKeySystemAccess.createMediaKeys')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future createMediaKeys() native;
-
-  @DomName('MediaKeySystemAccess.getConfiguration')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Map getConfiguration() {
-    return convertNativeToDart_Dictionary(_getConfiguration_1());
-  }
-
-  @JSName('getConfiguration')
-  @DomName('MediaKeySystemAccess.getConfiguration')
-  @DocsEditable()
-  @Experimental() // untriaged
-  _getConfiguration_1() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MediaKeys')
-// https://dvcs.w3.org/hg/html-media/raw-file/eme-v0.1/encrypted-media/encrypted-media.html
-@Experimental()
-@Native("MediaKeys")
-class MediaKeys extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory MediaKeys._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @JSName('createSession')
-  @DomName('MediaKeys.createSession')
-  @DocsEditable()
-  MediaKeySession _createSession([String sessionType]) native;
-
-  @DomName('MediaKeys.setServerCertificate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future setServerCertificate(/*BufferSource*/ serverCertificate) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MediaList')
-@Unstable()
-@Native("MediaList")
-class MediaList extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory MediaList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MediaList.length')
-  @DocsEditable()
-  final int length;
-
-  @DomName('MediaList.mediaText')
-  @DocsEditable()
-  String mediaText;
-
-  @DomName('MediaList.appendMedium')
-  @DocsEditable()
-  void appendMedium(String medium) native;
-
-  @DomName('MediaList.deleteMedium')
-  @DocsEditable()
-  void deleteMedium(String medium) native;
-
-  @DomName('MediaList.item')
-  @DocsEditable()
-  String item(int index) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MediaMetadata')
-@Experimental() // untriaged
-@Native("MediaMetadata")
-class MediaMetadata extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory MediaMetadata._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MediaMetadata.MediaMetadata')
-  @DocsEditable()
-  factory MediaMetadata(Map metadata) {
-    var metadata_1 = convertDartToNative_Dictionary(metadata);
-    return MediaMetadata._create_1(metadata_1);
-  }
-  static MediaMetadata _create_1(metadata) =>
-      JS('MediaMetadata', 'new MediaMetadata(#)', metadata);
-
-  @DomName('MediaMetadata.album')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String album;
-
-  @DomName('MediaMetadata.artist')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String artist;
-
-  @DomName('MediaMetadata.title')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String title;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MediaQueryList')
-@Unstable()
-@Native("MediaQueryList")
-class MediaQueryList extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory MediaQueryList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MediaQueryList.changeEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> changeEvent =
-      const EventStreamProvider<Event>('change');
-
-  @DomName('MediaQueryList.matches')
-  @DocsEditable()
-  final bool matches;
-
-  @DomName('MediaQueryList.media')
-  @DocsEditable()
-  final String media;
-
-  @DomName('MediaQueryList.addListener')
-  @DocsEditable()
-  void addListener(EventListener listener) native;
-
-  @DomName('MediaQueryList.removeListener')
-  @DocsEditable()
-  void removeListener(EventListener listener) native;
-
-  @DomName('MediaQueryList.onchange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onChange => changeEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MediaQueryListEvent')
-@Experimental() // untriaged
-@Native("MediaQueryListEvent")
-class MediaQueryListEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory MediaQueryListEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MediaQueryListEvent.MediaQueryListEvent')
-  @DocsEditable()
-  factory MediaQueryListEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return MediaQueryListEvent._create_1(type, eventInitDict_1);
-    }
-    return MediaQueryListEvent._create_2(type);
-  }
-  static MediaQueryListEvent _create_1(type, eventInitDict) => JS(
-      'MediaQueryListEvent',
-      'new MediaQueryListEvent(#,#)',
-      type,
-      eventInitDict);
-  static MediaQueryListEvent _create_2(type) =>
-      JS('MediaQueryListEvent', 'new MediaQueryListEvent(#)', type);
-
-  @DomName('MediaQueryListEvent.matches')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool matches;
-
-  @DomName('MediaQueryListEvent.media')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String media;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MediaRecorder')
-@Experimental() // untriaged
-@Native("MediaRecorder")
-class MediaRecorder extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory MediaRecorder._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MediaRecorder.errorEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> errorEvent =
-      const EventStreamProvider<Event>('error');
-
-  @DomName('MediaRecorder.pauseEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> pauseEvent =
-      const EventStreamProvider<Event>('pause');
-
-  @DomName('MediaRecorder.MediaRecorder')
-  @DocsEditable()
-  factory MediaRecorder(MediaStream stream, [Map options]) {
-    if (options != null) {
-      var options_1 = convertDartToNative_Dictionary(options);
-      return MediaRecorder._create_1(stream, options_1);
-    }
-    return MediaRecorder._create_2(stream);
-  }
-  static MediaRecorder _create_1(stream, options) =>
-      JS('MediaRecorder', 'new MediaRecorder(#,#)', stream, options);
-  static MediaRecorder _create_2(stream) =>
-      JS('MediaRecorder', 'new MediaRecorder(#)', stream);
-
-  @DomName('MediaRecorder.audioBitsPerSecond')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int audioBitsPerSecond;
-
-  @DomName('MediaRecorder.ignoreMutedMedia')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool ignoreMutedMedia;
-
-  @DomName('MediaRecorder.mimeType')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String mimeType;
-
-  @DomName('MediaRecorder.state')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String state;
-
-  @DomName('MediaRecorder.stream')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final MediaStream stream;
-
-  @DomName('MediaRecorder.videoBitsPerSecond')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int videoBitsPerSecond;
-
-  @DomName('MediaRecorder.isTypeSupported')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static bool isTypeSupported(String type) native;
-
-  @DomName('MediaRecorder.pause')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void pause() native;
-
-  @DomName('MediaRecorder.requestData')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void requestData() native;
-
-  @DomName('MediaRecorder.resume')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void resume() native;
-
-  @DomName('MediaRecorder.start')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void start([int timeslice]) native;
-
-  @DomName('MediaRecorder.stop')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void stop() native;
-
-  @DomName('MediaRecorder.onerror')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onError => errorEvent.forTarget(this);
-
-  @DomName('MediaRecorder.onpause')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onPause => pauseEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MediaSession')
-@Experimental() // untriaged
-@Native("MediaSession")
-class MediaSession extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory MediaSession._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MediaSession.MediaSession')
-  @DocsEditable()
-  factory MediaSession() {
-    return MediaSession._create_1();
-  }
-  static MediaSession _create_1() => JS('MediaSession', 'new MediaSession()');
-
-  @DomName('MediaSession.metadata')
-  @DocsEditable()
-  @Experimental() // untriaged
-  MediaMetadata metadata;
-
-  @DomName('MediaSession.activate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future activate() native;
-
-  @DomName('MediaSession.deactivate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future deactivate() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MediaSource')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.IE, '11')
-// https://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html#mediasource
-@Experimental()
-@Native("MediaSource")
-class MediaSource extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory MediaSource._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MediaSource.MediaSource')
-  @DocsEditable()
-  factory MediaSource() {
-    return MediaSource._create_1();
-  }
-  static MediaSource _create_1() => JS('MediaSource', 'new MediaSource()');
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported => JS('bool', '!!(window.MediaSource)');
-
-  @DomName('MediaSource.activeSourceBuffers')
-  @DocsEditable()
-  final SourceBufferList activeSourceBuffers;
-
-  @DomName('MediaSource.duration')
-  @DocsEditable()
-  num duration;
-
-  @DomName('MediaSource.readyState')
-  @DocsEditable()
-  final String readyState;
-
-  @DomName('MediaSource.sourceBuffers')
-  @DocsEditable()
-  final SourceBufferList sourceBuffers;
-
-  @DomName('MediaSource.addSourceBuffer')
-  @DocsEditable()
-  SourceBuffer addSourceBuffer(String type) native;
-
-  @DomName('MediaSource.endOfStream')
-  @DocsEditable()
-  void endOfStream([String error]) native;
-
-  @DomName('MediaSource.isTypeSupported')
-  @DocsEditable()
-  static bool isTypeSupported(String type) native;
-
-  @DomName('MediaSource.removeSourceBuffer')
-  @DocsEditable()
-  void removeSourceBuffer(SourceBuffer buffer) native;
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('MediaStream')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@Experimental()
-// http://dev.w3.org/2011/webrtc/editor/getusermedia.html#mediastream
-@Native("MediaStream")
-class MediaStream extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory MediaStream._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `addtrack` events to event
-   * handlers that are not necessarily instances of [MediaStream].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('MediaStream.addtrackEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> addTrackEvent =
-      const EventStreamProvider<Event>('addtrack');
-
-  /**
-   * Static factory designed to expose `ended` events to event
-   * handlers that are not necessarily instances of [MediaStream].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('MediaStream.endedEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> endedEvent =
-      const EventStreamProvider<Event>('ended');
-
-  /**
-   * Static factory designed to expose `removetrack` events to event
-   * handlers that are not necessarily instances of [MediaStream].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('MediaStream.removetrackEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> removeTrackEvent =
-      const EventStreamProvider<Event>('removetrack');
-
-  @DomName('MediaStream.MediaStream')
-  @DocsEditable()
-  factory MediaStream([stream_OR_tracks]) {
-    if (stream_OR_tracks == null) {
-      return MediaStream._create_1();
-    }
-    if ((stream_OR_tracks is MediaStream)) {
-      return MediaStream._create_2(stream_OR_tracks);
-    }
-    if ((stream_OR_tracks is List<MediaStreamTrack>)) {
-      return MediaStream._create_3(stream_OR_tracks);
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-  static MediaStream _create_1() => JS('MediaStream', 'new MediaStream()');
-  static MediaStream _create_2(stream_OR_tracks) =>
-      JS('MediaStream', 'new MediaStream(#)', stream_OR_tracks);
-  static MediaStream _create_3(stream_OR_tracks) =>
-      JS('MediaStream', 'new MediaStream(#)', stream_OR_tracks);
-
-  @DomName('MediaStream.active')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool active;
-
-  @DomName('MediaStream.id')
-  @DocsEditable()
-  final String id;
-
-  @DomName('MediaStream.addTrack')
-  @DocsEditable()
-  void addTrack(MediaStreamTrack track) native;
-
-  @DomName('MediaStream.clone')
-  @DocsEditable()
-  @Experimental() // untriaged
-  MediaStream clone() native;
-
-  @DomName('MediaStream.getAudioTracks')
-  @DocsEditable()
-  @Creates('JSExtendableArray|MediaStreamTrack')
-  @Returns('JSExtendableArray')
-  List<MediaStreamTrack> getAudioTracks() native;
-
-  @DomName('MediaStream.getTrackById')
-  @DocsEditable()
-  MediaStreamTrack getTrackById(String trackId) native;
-
-  @DomName('MediaStream.getTracks')
-  @DocsEditable()
-  @Experimental() // untriaged
-  List<MediaStreamTrack> getTracks() native;
-
-  @DomName('MediaStream.getVideoTracks')
-  @DocsEditable()
-  @Creates('JSExtendableArray|MediaStreamTrack')
-  @Returns('JSExtendableArray')
-  List<MediaStreamTrack> getVideoTracks() native;
-
-  @DomName('MediaStream.removeTrack')
-  @DocsEditable()
-  void removeTrack(MediaStreamTrack track) native;
-
-  /// Stream of `addtrack` events handled by this [MediaStream].
-  @DomName('MediaStream.onaddtrack')
-  @DocsEditable()
-  Stream<Event> get onAddTrack => addTrackEvent.forTarget(this);
-
-  /// Stream of `ended` events handled by this [MediaStream].
-  @DomName('MediaStream.onended')
-  @DocsEditable()
-  Stream<Event> get onEnded => endedEvent.forTarget(this);
-
-  /// Stream of `removetrack` events handled by this [MediaStream].
-  @DomName('MediaStream.onremovetrack')
-  @DocsEditable()
-  Stream<Event> get onRemoveTrack => removeTrackEvent.forTarget(this);
-
-  /**
-   * Checks if the MediaStream APIs are supported on the current platform.
-   *
-   * See also:
-   *
-   * * [Navigator.getUserMedia]
-   */
-  static bool get supported => JS(
-      'bool',
-      '''!!(#.getUserMedia || #.webkitGetUserMedia ||
-        #.mozGetUserMedia || #.msGetUserMedia)''',
-      window.navigator,
-      window.navigator,
-      window.navigator,
-      window.navigator);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MediaStreamEvent')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@Experimental()
-// http://dev.w3.org/2011/webrtc/editor/getusermedia.html
-@Native("MediaStreamEvent")
-class MediaStreamEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory MediaStreamEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MediaStreamEvent.MediaStreamEvent')
-  @DocsEditable()
-  factory MediaStreamEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return MediaStreamEvent._create_1(type, eventInitDict_1);
-    }
-    return MediaStreamEvent._create_2(type);
-  }
-  static MediaStreamEvent _create_1(type, eventInitDict) =>
-      JS('MediaStreamEvent', 'new MediaStreamEvent(#,#)', type, eventInitDict);
-  static MediaStreamEvent _create_2(type) =>
-      JS('MediaStreamEvent', 'new MediaStreamEvent(#)', type);
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported => Device.isEventTypeSupported('MediaStreamEvent');
-
-  @DomName('MediaStreamEvent.stream')
-  @DocsEditable()
-  final MediaStream stream;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MediaStreamTrack')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@Experimental()
-// http://dev.w3.org/2011/webrtc/editor/getusermedia.html#mediastreamtrack
-@Native("MediaStreamTrack")
-class MediaStreamTrack extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory MediaStreamTrack._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `ended` events to event
-   * handlers that are not necessarily instances of [MediaStreamTrack].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('MediaStreamTrack.endedEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> endedEvent =
-      const EventStreamProvider<Event>('ended');
-
-  /**
-   * Static factory designed to expose `mute` events to event
-   * handlers that are not necessarily instances of [MediaStreamTrack].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('MediaStreamTrack.muteEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> muteEvent =
-      const EventStreamProvider<Event>('mute');
-
-  /**
-   * Static factory designed to expose `unmute` events to event
-   * handlers that are not necessarily instances of [MediaStreamTrack].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('MediaStreamTrack.unmuteEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> unmuteEvent =
-      const EventStreamProvider<Event>('unmute');
-
-  @DomName('MediaStreamTrack.enabled')
-  @DocsEditable()
-  bool enabled;
-
-  @DomName('MediaStreamTrack.id')
-  @DocsEditable()
-  final String id;
-
-  @DomName('MediaStreamTrack.kind')
-  @DocsEditable()
-  final String kind;
-
-  @DomName('MediaStreamTrack.label')
-  @DocsEditable()
-  final String label;
-
-  @DomName('MediaStreamTrack.muted')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool muted;
-
-  @DomName('MediaStreamTrack.readyState')
-  @DocsEditable()
-  final String readyState;
-
-  @DomName('MediaStreamTrack.remote')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool remote;
-
-  @DomName('MediaStreamTrack.clone')
-  @DocsEditable()
-  @Experimental() // untriaged
-  MediaStreamTrack clone() native;
-
-  @JSName('getSources')
-  @DomName('MediaStreamTrack.getSources')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static void _getSources(MediaStreamTrackSourcesCallback callback) native;
-
-  @JSName('getSources')
-  @DomName('MediaStreamTrack.getSources')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static Future<List<SourceInfo>> getSources() {
-    var completer = new Completer<List<SourceInfo>>();
-    _getSources((value) {
-      completer.complete(value);
-    });
-    return completer.future;
-  }
-
-  @DomName('MediaStreamTrack.stop')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void stop() native;
-
-  /// Stream of `ended` events handled by this [MediaStreamTrack].
-  @DomName('MediaStreamTrack.onended')
-  @DocsEditable()
-  Stream<Event> get onEnded => endedEvent.forTarget(this);
-
-  /// Stream of `mute` events handled by this [MediaStreamTrack].
-  @DomName('MediaStreamTrack.onmute')
-  @DocsEditable()
-  Stream<Event> get onMute => muteEvent.forTarget(this);
-
-  /// Stream of `unmute` events handled by this [MediaStreamTrack].
-  @DomName('MediaStreamTrack.onunmute')
-  @DocsEditable()
-  Stream<Event> get onUnmute => unmuteEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MediaStreamTrackEvent')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@Experimental()
-// http://dev.w3.org/2011/webrtc/editor/getusermedia.html
-@Native("MediaStreamTrackEvent")
-class MediaStreamTrackEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory MediaStreamTrackEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      Device.isEventTypeSupported('MediaStreamTrackEvent');
-
-  @DomName('MediaStreamTrackEvent.track')
-  @DocsEditable()
-  final MediaStreamTrack track;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('MediaStreamTrackSourcesCallback')
-@Experimental() // untriaged
-typedef void MediaStreamTrackSourcesCallback(List<SourceInfo> sources);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MemoryInfo')
-@Experimental() // nonstandard
-@Native("MemoryInfo")
-class MemoryInfo extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory MemoryInfo._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MemoryInfo.jsHeapSizeLimit')
-  @DocsEditable()
-  final int jsHeapSizeLimit;
-
-  @DomName('MemoryInfo.totalJSHeapSize')
-  @DocsEditable()
-  final int totalJSHeapSize;
-
-  @DomName('MemoryInfo.usedJSHeapSize')
-  @DocsEditable()
-  final int usedJSHeapSize;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-/**
- * An HTML <menu> element.
- *
- * A <menu> element represents an unordered list of menu commands.
- *
- * See also:
- *
- *  * [Menu Element](https://developer.mozilla.org/en-US/docs/HTML/Element/menu) from MDN.
- *  * [Menu Element](http://www.w3.org/TR/html5/the-menu-element.html#the-menu-element) from the W3C.
- */
-@DomName('HTMLMenuElement')
-@Native("HTMLMenuElement")
-class MenuElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory MenuElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLMenuElement.HTMLMenuElement')
-  @DocsEditable()
-  factory MenuElement() => JS(
-      'returns:MenuElement;creates:MenuElement;new:true',
-      '#.createElement(#)',
-      document,
-      "menu");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  MenuElement.created() : super.created();
-
-  @DomName('HTMLMenuElement.label')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String label;
-
-  @DomName('HTMLMenuElement.type')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String type;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLMenuItemElement')
-@Experimental() // untriaged
-@Native("HTMLMenuItemElement")
-class MenuItemElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory MenuItemElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  MenuItemElement.created() : super.created();
-
-  @DomName('HTMLMenuItemElement.checked')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool checked;
-
-  @JSName('default')
-  @DomName('HTMLMenuItemElement.default')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool defaultValue;
-
-  @DomName('HTMLMenuItemElement.disabled')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool disabled;
-
-  @DomName('HTMLMenuItemElement.icon')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String icon;
-
-  @DomName('HTMLMenuItemElement.label')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String label;
-
-  @DomName('HTMLMenuItemElement.radiogroup')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String radiogroup;
-
-  @DomName('HTMLMenuItemElement.type')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String type;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MessageChannel')
-@Unstable()
-@Native("MessageChannel")
-class MessageChannel extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory MessageChannel._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MessageChannel.port1')
-  @DocsEditable()
-  final MessagePort port1;
-
-  @DomName('MessageChannel.port2')
-  @DocsEditable()
-  final MessagePort port2;
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('MessageEvent')
-@Native("MessageEvent")
-class MessageEvent extends Event {
-  factory MessageEvent(String type,
-      {bool canBubble: false,
-      bool cancelable: false,
-      Object data,
-      String origin,
-      String lastEventId,
-      Window source,
-      List<MessagePort> messagePorts}) {
-    if (source == null) {
-      source = window;
-    }
-    if (!Device.isIE) {
-      // TODO: This if check should be removed once IE
-      // implements the constructor.
-      return JS(
-          'MessageEvent',
-          'new MessageEvent(#, {bubbles: #, cancelable: #, data: #, origin: #, lastEventId: #, source: #, ports: #})',
-          type,
-          canBubble,
-          cancelable,
-          data,
-          origin,
-          lastEventId,
-          source,
-          messagePorts);
-    }
-    MessageEvent event = document._createEvent("MessageEvent");
-    event._initMessageEvent(type, canBubble, cancelable, data, origin,
-        lastEventId, source, messagePorts);
-    return event;
-  }
-
-  // TODO(alanknight): This really should be generated by the
-  // _OutputConversion in the systemnative.py script, but that doesn't
-  // use those conversions right now, so do this as a one-off.
-  @DomName('MessageEvent.data')
-  @DocsEditable()
-  dynamic get data => convertNativeToDart_SerializedScriptValue(this._get_data);
-
-  @JSName('data')
-  @DomName('MessageEvent.data')
-  @DocsEditable()
-  @annotation_Creates_SerializedScriptValue
-  @annotation_Returns_SerializedScriptValue
-  final dynamic _get_data;
-
-  @DomName('MessageEvent.MessageEvent')
-  @DocsEditable()
-  factory MessageEvent._(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return MessageEvent._create_1(type, eventInitDict_1);
-    }
-    return MessageEvent._create_2(type);
-  }
-  static MessageEvent _create_1(type, eventInitDict) =>
-      JS('MessageEvent', 'new MessageEvent(#,#)', type, eventInitDict);
-  static MessageEvent _create_2(type) =>
-      JS('MessageEvent', 'new MessageEvent(#)', type);
-
-  @DomName('MessageEvent.lastEventId')
-  @DocsEditable()
-  @Unstable()
-  final String lastEventId;
-
-  @DomName('MessageEvent.origin')
-  @DocsEditable()
-  final String origin;
-
-  @DomName('MessageEvent.source')
-  @DocsEditable()
-  EventTarget get source => _convertNativeToDart_EventTarget(this._get_source);
-  @JSName('source')
-  @DomName('MessageEvent.source')
-  @DocsEditable()
-  @Creates('Null')
-  @Returns('EventTarget|=Object')
-  final dynamic _get_source;
-
-  @DomName('MessageEvent.suborigin')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String suborigin;
-
-  @JSName('initMessageEvent')
-  @DomName('MessageEvent.initMessageEvent')
-  @DocsEditable()
-  void _initMessageEvent(
-      String typeArg,
-      bool canBubbleArg,
-      bool cancelableArg,
-      Object dataArg,
-      String originArg,
-      String lastEventIdArg,
-      Window sourceArg,
-      List<MessagePort> portsArg) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MessagePort')
-@Unstable()
-@Native("MessagePort")
-class MessagePort extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory MessagePort._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `message` events to event
-   * handlers that are not necessarily instances of [MessagePort].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('MessagePort.messageEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MessageEvent> messageEvent =
-      const EventStreamProvider<MessageEvent>('message');
-
-  @DomName('MessagePort.close')
-  @DocsEditable()
-  void close() native;
-
-  @DomName('MessagePort.postMessage')
-  @DocsEditable()
-  void postMessage(/*any*/ message, [List<MessagePort> transfer]) {
-    if (transfer != null) {
-      var message_1 = convertDartToNative_SerializedScriptValue(message);
-      _postMessage_1(message_1, transfer);
-      return;
-    }
-    var message_1 = convertDartToNative_SerializedScriptValue(message);
-    _postMessage_2(message_1);
-    return;
-  }
-
-  @JSName('postMessage')
-  @DomName('MessagePort.postMessage')
-  @DocsEditable()
-  void _postMessage_1(message, List<MessagePort> transfer) native;
-  @JSName('postMessage')
-  @DomName('MessagePort.postMessage')
-  @DocsEditable()
-  void _postMessage_2(message) native;
-
-  @DomName('MessagePort.start')
-  @DocsEditable()
-  void start() native;
-
-  /// Stream of `message` events handled by this [MessagePort].
-  @DomName('MessagePort.onmessage')
-  @DocsEditable()
-  Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLMetaElement')
-@Native("HTMLMetaElement")
-class MetaElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory MetaElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLMetaElement.HTMLMetaElement')
-  @DocsEditable()
-  factory MetaElement() => JS(
-      'returns:MetaElement;creates:MetaElement;new:true',
-      '#.createElement(#)',
-      document,
-      "meta");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  MetaElement.created() : super.created();
-
-  @DomName('HTMLMetaElement.content')
-  @DocsEditable()
-  String content;
-
-  @DomName('HTMLMetaElement.httpEquiv')
-  @DocsEditable()
-  String httpEquiv;
-
-  @DomName('HTMLMetaElement.name')
-  @DocsEditable()
-  String name;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Metadata')
-// http://www.w3.org/TR/file-system-api/#the-metadata-interface
-@Experimental()
-@Native("Metadata")
-class Metadata extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Metadata._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Metadata.modificationTime')
-  @DocsEditable()
-  DateTime get modificationTime =>
-      convertNativeToDart_DateTime(this._get_modificationTime);
-  @JSName('modificationTime')
-  @DomName('Metadata.modificationTime')
-  @DocsEditable()
-  @Creates('Null')
-  final dynamic _get_modificationTime;
-
-  @DomName('Metadata.size')
-  @DocsEditable()
-  final int size;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('MetadataCallback')
-// http://www.w3.org/TR/file-system-api/#idl-def-MetadataCallback
-@Experimental()
-typedef void MetadataCallback(Metadata metadata);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLMeterElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("HTMLMeterElement")
-class MeterElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory MeterElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLMeterElement.HTMLMeterElement')
-  @DocsEditable()
-  factory MeterElement() => document.createElement("meter");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  MeterElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported => Element.isTagSupported('meter');
-
-  @DomName('HTMLMeterElement.high')
-  @DocsEditable()
-  num high;
-
-  @DomName('HTMLMeterElement.labels')
-  @DocsEditable()
-  @Unstable()
-  @Returns('NodeList|Null')
-  @Creates('NodeList')
-  final List<Node> labels;
-
-  @DomName('HTMLMeterElement.low')
-  @DocsEditable()
-  num low;
-
-  @DomName('HTMLMeterElement.max')
-  @DocsEditable()
-  num max;
-
-  @DomName('HTMLMeterElement.min')
-  @DocsEditable()
-  num min;
-
-  @DomName('HTMLMeterElement.optimum')
-  @DocsEditable()
-  num optimum;
-
-  @DomName('HTMLMeterElement.value')
-  @DocsEditable()
-  num value;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MIDIAccess')
-// http://webaudio.github.io/web-midi-api/#midiaccess-interface
-@Experimental()
-@Native("MIDIAccess")
-class MidiAccess extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory MidiAccess._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MIDIAccess.inputs')
-  @DocsEditable()
-  final MidiInputMap inputs;
-
-  @DomName('MIDIAccess.outputs')
-  @DocsEditable()
-  final MidiOutputMap outputs;
-
-  @DomName('MIDIAccess.sysexEnabled')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool sysexEnabled;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MIDIConnectionEvent')
-// http://webaudio.github.io/web-midi-api/#midiconnectionevent-interface
-@Experimental()
-@Native("MIDIConnectionEvent")
-class MidiConnectionEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory MidiConnectionEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MIDIConnectionEvent.MIDIConnectionEvent')
-  @DocsEditable()
-  factory MidiConnectionEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return MidiConnectionEvent._create_1(type, eventInitDict_1);
-    }
-    return MidiConnectionEvent._create_2(type);
-  }
-  static MidiConnectionEvent _create_1(type, eventInitDict) => JS(
-      'MidiConnectionEvent',
-      'new MIDIConnectionEvent(#,#)',
-      type,
-      eventInitDict);
-  static MidiConnectionEvent _create_2(type) =>
-      JS('MidiConnectionEvent', 'new MIDIConnectionEvent(#)', type);
-
-  @DomName('MIDIConnectionEvent.port')
-  @DocsEditable()
-  final MidiPort port;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MIDIInput')
-// http://webaudio.github.io/web-midi-api/#idl-def-MIDIInput
-@Experimental()
-@Native("MIDIInput")
-class MidiInput extends MidiPort {
-  // To suppress missing implicit constructor warnings.
-  factory MidiInput._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `midimessage` events to event
-   * handlers that are not necessarily instances of [MidiInput].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('MIDIInput.midimessageEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MidiMessageEvent> midiMessageEvent =
-      const EventStreamProvider<MidiMessageEvent>('midimessage');
-
-  /// Stream of `midimessage` events handled by this [MidiInput].
-  @DomName('MIDIInput.onmidimessage')
-  @DocsEditable()
-  Stream<MidiMessageEvent> get onMidiMessage =>
-      midiMessageEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MIDIInputMap')
-@Experimental() // untriaged
-@Native("MIDIInputMap")
-class MidiInputMap extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory MidiInputMap._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MIDIInputMap.size')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int size;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MIDIMessageEvent')
-// http://webaudio.github.io/web-midi-api/#midimessageevent-interface
-@Experimental()
-@Native("MIDIMessageEvent")
-class MidiMessageEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory MidiMessageEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MIDIMessageEvent.MIDIMessageEvent')
-  @DocsEditable()
-  factory MidiMessageEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return MidiMessageEvent._create_1(type, eventInitDict_1);
-    }
-    return MidiMessageEvent._create_2(type);
-  }
-  static MidiMessageEvent _create_1(type, eventInitDict) =>
-      JS('MidiMessageEvent', 'new MIDIMessageEvent(#,#)', type, eventInitDict);
-  static MidiMessageEvent _create_2(type) =>
-      JS('MidiMessageEvent', 'new MIDIMessageEvent(#)', type);
-
-  @DomName('MIDIMessageEvent.data')
-  @DocsEditable()
-  final Uint8List data;
-
-  @DomName('MIDIMessageEvent.receivedTime')
-  @DocsEditable()
-  final double receivedTime;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MIDIOutput')
-// http://webaudio.github.io/web-midi-api/#midioutput-interface
-@Experimental()
-@Native("MIDIOutput")
-class MidiOutput extends MidiPort {
-  // To suppress missing implicit constructor warnings.
-  factory MidiOutput._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MIDIOutput.send')
-  @DocsEditable()
-  void send(Uint8List data, [num timestamp]) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MIDIOutputMap')
-@Experimental() // untriaged
-@Native("MIDIOutputMap")
-class MidiOutputMap extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory MidiOutputMap._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MIDIOutputMap.size')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int size;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MIDIPort')
-// http://webaudio.github.io/web-midi-api/#idl-def-MIDIPort
-@Experimental()
-@Native("MIDIPort")
-class MidiPort extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory MidiPort._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MIDIPort.connection')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String connection;
-
-  @DomName('MIDIPort.id')
-  @DocsEditable()
-  final String id;
-
-  @DomName('MIDIPort.manufacturer')
-  @DocsEditable()
-  final String manufacturer;
-
-  @DomName('MIDIPort.name')
-  @DocsEditable()
-  final String name;
-
-  @DomName('MIDIPort.state')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String state;
-
-  @DomName('MIDIPort.type')
-  @DocsEditable()
-  final String type;
-
-  @DomName('MIDIPort.version')
-  @DocsEditable()
-  final String version;
-
-  @DomName('MIDIPort.close')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future close() native;
-
-  @DomName('MIDIPort.open')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future open() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MimeType')
-@Experimental() // non-standard
-@Native("MimeType")
-class MimeType extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory MimeType._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MimeType.description')
-  @DocsEditable()
-  final String description;
-
-  @DomName('MimeType.enabledPlugin')
-  @DocsEditable()
-  final Plugin enabledPlugin;
-
-  @DomName('MimeType.suffixes')
-  @DocsEditable()
-  final String suffixes;
-
-  @DomName('MimeType.type')
-  @DocsEditable()
-  final String type;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MimeTypeArray')
-@Experimental() // non-standard
-@Native("MimeTypeArray")
-class MimeTypeArray extends Interceptor
-    with ListMixin<MimeType>, ImmutableListMixin<MimeType>
-    implements List<MimeType>, JavaScriptIndexingBehavior<MimeType> {
-  // To suppress missing implicit constructor warnings.
-  factory MimeTypeArray._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MimeTypeArray.length')
-  @DocsEditable()
-  int get length => JS("int", "#.length", this);
-
-  MimeType operator [](int index) {
-    if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
-      throw new RangeError.index(index, this);
-    return JS("MimeType", "#[#]", this, index);
-  }
-
-  void operator []=(int index, MimeType value) {
-    throw new UnsupportedError("Cannot assign element of immutable List.");
-  }
-  // -- start List<MimeType> mixins.
-  // MimeType is the element type.
-
-  set length(int value) {
-    throw new UnsupportedError("Cannot resize immutable List.");
-  }
-
-  MimeType get first {
-    if (this.length > 0) {
-      return JS('MimeType', '#[0]', this);
-    }
-    throw new StateError("No elements");
-  }
-
-  MimeType get last {
-    int len = this.length;
-    if (len > 0) {
-      return JS('MimeType', '#[#]', this, len - 1);
-    }
-    throw new StateError("No elements");
-  }
-
-  MimeType get single {
-    int len = this.length;
-    if (len == 1) {
-      return JS('MimeType', '#[0]', this);
-    }
-    if (len == 0) throw new StateError("No elements");
-    throw new StateError("More than one element");
-  }
-
-  MimeType elementAt(int index) => this[index];
-  // -- end List<MimeType> mixins.
-
-  @DomName('MimeTypeArray.item')
-  @DocsEditable()
-  MimeType item(int index) native;
-
-  @DomName('MimeTypeArray.namedItem')
-  @DocsEditable()
-  MimeType namedItem(String name) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLModElement')
-@Unstable()
-@Native("HTMLModElement")
-class ModElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory ModElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  ModElement.created() : super.created();
-
-  @DomName('HTMLModElement.cite')
-  @DocsEditable()
-  String cite;
-
-  @DomName('HTMLModElement.dateTime')
-  @DocsEditable()
-  String dateTime;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('MouseEvent')
-@Native("MouseEvent,DragEvent")
-class MouseEvent extends UIEvent {
-  factory MouseEvent(String type,
-      {Window view,
-      int detail: 0,
-      int screenX: 0,
-      int screenY: 0,
-      int clientX: 0,
-      int clientY: 0,
-      int button: 0,
-      bool canBubble: true,
-      bool cancelable: true,
-      bool ctrlKey: false,
-      bool altKey: false,
-      bool shiftKey: false,
-      bool metaKey: false,
-      EventTarget relatedTarget}) {
-    if (view == null) {
-      view = window;
-    }
-    MouseEvent event = document._createEvent('MouseEvent');
-    event._initMouseEvent(
-        type,
-        canBubble,
-        cancelable,
-        view,
-        detail,
-        screenX,
-        screenY,
-        clientX,
-        clientY,
-        ctrlKey,
-        altKey,
-        shiftKey,
-        metaKey,
-        button,
-        relatedTarget);
-    return event;
-  }
-
-  @DomName('MouseEvent.MouseEvent')
-  @DocsEditable()
-  factory MouseEvent._(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return MouseEvent._create_1(type, eventInitDict_1);
-    }
-    return MouseEvent._create_2(type);
-  }
-  static MouseEvent _create_1(type, eventInitDict) =>
-      JS('MouseEvent', 'new MouseEvent(#,#)', type, eventInitDict);
-  static MouseEvent _create_2(type) =>
-      JS('MouseEvent', 'new MouseEvent(#)', type);
-
-  @DomName('MouseEvent.altKey')
-  @DocsEditable()
-  final bool altKey;
-
-  @DomName('MouseEvent.button')
-  @DocsEditable()
-  final int button;
-
-  @DomName('MouseEvent.buttons')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int buttons;
-
-  @JSName('clientX')
-  @DomName('MouseEvent.clientX')
-  @DocsEditable()
-  final int _clientX;
-
-  @JSName('clientY')
-  @DomName('MouseEvent.clientY')
-  @DocsEditable()
-  final int _clientY;
-
-  @DomName('MouseEvent.ctrlKey')
-  @DocsEditable()
-  final bool ctrlKey;
-
-  /**
-   * The nonstandard way to access the element that the mouse comes
-   * from in the case of a `mouseover` event.
-   *
-   * This member is deprecated and not cross-browser compatible; use
-   * relatedTarget to get the same information in the standard way.
-   */
-  @DomName('MouseEvent.fromElement')
-  @DocsEditable()
-  @deprecated
-  final Node fromElement;
-
-  @JSName('layerX')
-  @DomName('MouseEvent.layerX')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int _layerX;
-
-  @JSName('layerY')
-  @DomName('MouseEvent.layerY')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int _layerY;
-
-  @DomName('MouseEvent.metaKey')
-  @DocsEditable()
-  final bool metaKey;
-
-  @JSName('movementX')
-  @DomName('MouseEvent.movementX')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int _movementX;
-
-  @JSName('movementY')
-  @DomName('MouseEvent.movementY')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int _movementY;
-
-  @JSName('pageX')
-  @DomName('MouseEvent.pageX')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int _pageX;
-
-  @JSName('pageY')
-  @DomName('MouseEvent.pageY')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int _pageY;
-
-  @DomName('MouseEvent.region')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String region;
-
-  @DomName('MouseEvent.relatedTarget')
-  @DocsEditable()
-  EventTarget get relatedTarget =>
-      _convertNativeToDart_EventTarget(this._get_relatedTarget);
-  @JSName('relatedTarget')
-  @DomName('MouseEvent.relatedTarget')
-  @DocsEditable()
-  @Creates('Node')
-  @Returns('EventTarget|=Object')
-  final dynamic _get_relatedTarget;
-
-  @JSName('screenX')
-  @DomName('MouseEvent.screenX')
-  @DocsEditable()
-  final int _screenX;
-
-  @JSName('screenY')
-  @DomName('MouseEvent.screenY')
-  @DocsEditable()
-  final int _screenY;
-
-  @DomName('MouseEvent.shiftKey')
-  @DocsEditable()
-  final bool shiftKey;
-
-  /**
-   * The nonstandard way to access the element that the mouse goes
-   * to in the case of a `mouseout` event.
-   *
-   * This member is deprecated and not cross-browser compatible; use
-   * relatedTarget to get the same information in the standard way.
-   */
-  @DomName('MouseEvent.toElement')
-  @DocsEditable()
-  @deprecated
-  final Node toElement;
-
-  // Use implementation from UIEvent.
-  // final int _which;
-
-  @DomName('MouseEvent.getModifierState')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool getModifierState(String keyArg) native;
-
-  @DomName('MouseEvent.initMouseEvent')
-  @DocsEditable()
-  void _initMouseEvent(
-      String type,
-      bool bubbles,
-      bool cancelable,
-      Window view,
-      int detail,
-      int screenX,
-      int screenY,
-      int clientX,
-      int clientY,
-      bool ctrlKey,
-      bool altKey,
-      bool shiftKey,
-      bool metaKey,
-      int button,
-      EventTarget relatedTarget) {
-    var relatedTarget_1 = _convertDartToNative_EventTarget(relatedTarget);
-    _initMouseEvent_1(
-        type,
-        bubbles,
-        cancelable,
-        view,
-        detail,
-        screenX,
-        screenY,
-        clientX,
-        clientY,
-        ctrlKey,
-        altKey,
-        shiftKey,
-        metaKey,
-        button,
-        relatedTarget_1);
-    return;
-  }
-
-  @JSName('initMouseEvent')
-  @DomName('MouseEvent.initMouseEvent')
-  @DocsEditable()
-  void _initMouseEvent_1(
-      type,
-      bubbles,
-      cancelable,
-      Window view,
-      detail,
-      screenX,
-      screenY,
-      clientX,
-      clientY,
-      ctrlKey,
-      altKey,
-      shiftKey,
-      metaKey,
-      button,
-      relatedTarget) native;
-
-  @DomName('MouseEvent.clientX')
-  @DomName('MouseEvent.clientY')
-  Point get client => new Point/*<num>*/(_clientX, _clientY);
-
-  @DomName('MouseEvent.movementX')
-  @DomName('MouseEvent.movementY')
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.FIREFOX)
-  @Experimental()
-  Point get movement => new Point/*<num>*/(_movementX, _movementY);
-
-  /**
-   * The coordinates of the mouse pointer in target node coordinates.
-   *
-   * This value may vary between platforms if the target node moves
-   * after the event has fired or if the element has CSS transforms affecting
-   * it.
-   */
-  Point get offset {
-    if (JS('bool', '!!#.offsetX', this)) {
-      var x = JS('int', '#.offsetX', this);
-      var y = JS('int', '#.offsetY', this);
-      return new Point/*<num>*/(x, y);
-    } else {
-      // Firefox does not support offsetX.
-      if (!(this.target is Element)) {
-        throw new UnsupportedError('offsetX is only supported on elements');
-      }
-      Element target = this.target;
-      var point = (this.client - target.getBoundingClientRect().topLeft);
-      return new Point/*<num>*/(point.x.toInt(), point.y.toInt());
-    }
-  }
-
-  @DomName('MouseEvent.screenX')
-  @DomName('MouseEvent.screenY')
-  Point get screen => new Point/*<num>*/(_screenX, _screenY);
-
-  @DomName('MouseEvent.layerX')
-  @DomName('MouseEvent.layerY')
-  Point get layer => new Point/*<num>*/(_layerX, _layerY);
-
-  @DomName('MouseEvent.pageX')
-  @DomName('MouseEvent.pageY')
-  Point get page => new Point/*<num>*/(_pageX, _pageY);
-
-  @DomName('MouseEvent.dataTransfer')
-  DataTransfer get dataTransfer =>
-      JS('DataTransfer', "#['dataTransfer']", this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('MutationCallback')
-typedef void MutationCallback(
-    List<MutationRecord> mutations, MutationObserver observer);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('MutationObserver')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Experimental()
-@Native("MutationObserver,WebKitMutationObserver")
-class MutationObserver extends Interceptor {
-  @DomName('MutationObserver.disconnect')
-  @DocsEditable()
-  void disconnect() native;
-
-  @DomName('MutationObserver.observe')
-  @DocsEditable()
-  void _observe(Node target, Map options) {
-    var options_1 = convertDartToNative_Dictionary(options);
-    _observe_1(target, options_1);
-    return;
-  }
-
-  @JSName('observe')
-  @DomName('MutationObserver.observe')
-  @DocsEditable()
-  void _observe_1(Node target, options) native;
-
-  @DomName('MutationObserver.takeRecords')
-  @DocsEditable()
-  List<MutationRecord> takeRecords() native;
-
-  /**
-   * Checks to see if the mutation observer API is supported on the current
-   * platform.
-   */
-  static bool get supported {
-    return JS(
-        'bool', '!!(window.MutationObserver || window.WebKitMutationObserver)');
-  }
-
-  /**
-   * Observes the target for the specified changes.
-   *
-   * Some requirements for the optional parameters:
-   *
-   * * Either childList, attributes or characterData must be true.
-   * * If attributeOldValue is true then attributes must also be true.
-   * * If attributeFilter is specified then attributes must be true.
-   * * If characterDataOldValue is true then characterData must be true.
-   */
-  void observe(Node target,
-      {bool childList,
-      bool attributes,
-      bool characterData,
-      bool subtree,
-      bool attributeOldValue,
-      bool characterDataOldValue,
-      List<String> attributeFilter}) {
-    // Parse options into map of known type.
-    var parsedOptions = _createDict();
-
-    // Override options passed in the map with named optional arguments.
-    override(key, value) {
-      if (value != null) _add(parsedOptions, key, value);
-    }
-
-    override('childList', childList);
-    override('attributes', attributes);
-    override('characterData', characterData);
-    override('subtree', subtree);
-    override('attributeOldValue', attributeOldValue);
-    override('characterDataOldValue', characterDataOldValue);
-    if (attributeFilter != null) {
-      override('attributeFilter', _fixupList(attributeFilter));
-    }
-
-    _call(target, parsedOptions);
-  }
-
-  // TODO: Change to a set when const Sets are available.
-  static final _boolKeys = const {
-    'childList': true,
-    'attributes': true,
-    'characterData': true,
-    'subtree': true,
-    'attributeOldValue': true,
-    'characterDataOldValue': true
-  };
-
-  static _createDict() => JS('var', '{}');
-  static _add(m, String key, value) {
-    JS('void', '#[#] = #', m, key, value);
-  }
-
-  static _fixupList(list) => list; // TODO: Ensure is a JavaScript Array.
-
-  // Call native function with no conversions.
-  @JSName('observe')
-  void _call(target, options) native;
-
-  factory MutationObserver(MutationCallback callback) {
-    // Dummy statement to mark types as instantiated.
-    JS('MutationObserver|MutationRecord', '0');
-
-    return JS(
-        'MutationObserver',
-        'new(window.MutationObserver||window.WebKitMutationObserver||'
-        'window.MozMutationObserver)(#)',
-        convertDartClosureToJS(_wrapBinaryZone(callback), 2));
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MutationRecord')
-@Native("MutationRecord")
-class MutationRecord extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory MutationRecord._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MutationRecord.addedNodes')
-  @DocsEditable()
-  @Returns('NodeList|Null')
-  @Creates('NodeList')
-  final List<Node> addedNodes;
-
-  @DomName('MutationRecord.attributeName')
-  @DocsEditable()
-  final String attributeName;
-
-  @DomName('MutationRecord.attributeNamespace')
-  @DocsEditable()
-  final String attributeNamespace;
-
-  @DomName('MutationRecord.nextSibling')
-  @DocsEditable()
-  final Node nextSibling;
-
-  @DomName('MutationRecord.oldValue')
-  @DocsEditable()
-  final String oldValue;
-
-  @DomName('MutationRecord.previousSibling')
-  @DocsEditable()
-  final Node previousSibling;
-
-  @DomName('MutationRecord.removedNodes')
-  @DocsEditable()
-  @Returns('NodeList|Null')
-  @Creates('NodeList')
-  final List<Node> removedNodes;
-
-  @DomName('MutationRecord.target')
-  @DocsEditable()
-  final Node target;
-
-  @DomName('MutationRecord.type')
-  @DocsEditable()
-  final String type;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('Navigator')
-@Native("Navigator")
-class Navigator extends Interceptor
-    implements
-        NavigatorStorageUtils,
-        NavigatorCpu,
-        NavigatorLanguage,
-        NavigatorOnLine,
-        NavigatorID {
-  @DomName('Navigator.language')
-  String get language =>
-      JS('String', '#.language || #.userLanguage', this, this);
-
-  /**
-   * Gets a stream (video and or audio) from the local computer.
-   *
-   * Use [MediaStream.supported] to check if this is supported by the current
-   * platform. The arguments `audio` and `video` default to `false` (stream does
-   * not use audio or video, respectively).
-   *
-   * Simple example usage:
-   *
-   *     window.navigator.getUserMedia(audio: true, video: true).then((stream) {
-   *       var video = new VideoElement()
-   *         ..autoplay = true
-   *         ..src = Url.createObjectUrlFromStream(stream);
-   *       document.body.append(video);
-   *     });
-   *
-   * The user can also pass in Maps to the audio or video parameters to specify
-   * mandatory and optional constraints for the media stream. Not passing in a
-   * map, but passing in `true` will provide a MediaStream with audio or
-   * video capabilities, but without any additional constraints. The particular
-   * constraint names for audio and video are still in flux, but as of this
-   * writing, here is an example providing more constraints.
-   *
-   *     window.navigator.getUserMedia(
-   *         audio: true,
-   *         video: {'mandatory':
-   *                    { 'minAspectRatio': 1.333, 'maxAspectRatio': 1.334 },
-   *                 'optional':
-   *                    [{ 'minFrameRate': 60 },
-   *                     { 'maxWidth': 640 }]
-   *     });
-   *
-   * See also:
-   * * [MediaStream.supported]
-   */
-  @DomName('Navigator.webkitGetUserMedia')
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @Experimental()
-  Future<MediaStream> getUserMedia({audio: false, video: false}) {
-    var completer = new Completer<MediaStream>();
-    var options = {'audio': audio, 'video': video};
-    _ensureGetUserMedia();
-    this._getUserMedia(convertDartToNative_SerializedScriptValue(options),
-        (stream) {
-      completer.complete(stream);
-    }, (error) {
-      completer.completeError(error);
-    });
-    return completer.future;
-  }
-
-  _ensureGetUserMedia() {
-    if (JS('bool', '!(#.getUserMedia)', this)) {
-      JS(
-          'void',
-          '#.getUserMedia = '
-          '(#.getUserMedia || #.webkitGetUserMedia || #.mozGetUserMedia ||'
-          '#.msGetUserMedia)',
-          this,
-          this,
-          this,
-          this,
-          this);
-    }
-  }
-
-  @JSName('getUserMedia')
-  void _getUserMedia(options, _NavigatorUserMediaSuccessCallback success,
-      _NavigatorUserMediaErrorCallback error) native;
-
-  // To suppress missing implicit constructor warnings.
-  factory Navigator._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Navigator.connection')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final NetworkInformation connection;
-
-  @DomName('Navigator.credentials')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final CredentialsContainer credentials;
-
-  @DomName('Navigator.doNotTrack')
-  @DocsEditable()
-  // http://www.w3.org/2011/tracking-protection/drafts/tracking-dnt.html#js-dom
-  @Experimental() // experimental
-  final String doNotTrack;
-
-  @DomName('Navigator.geolocation')
-  @DocsEditable()
-  @Unstable()
-  final Geolocation geolocation;
-
-  @DomName('Navigator.maxTouchPoints')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int maxTouchPoints;
-
-  @DomName('Navigator.mediaDevices')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final MediaDevices mediaDevices;
-
-  @DomName('Navigator.mimeTypes')
-  @DocsEditable()
-  @Experimental() // nonstandard
-  final MimeTypeArray mimeTypes;
-
-  @DomName('Navigator.nfc')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final _NFC nfc;
-
-  @DomName('Navigator.permissions')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Permissions permissions;
-
-  @DomName('Navigator.presentation')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Presentation presentation;
-
-  @DomName('Navigator.productSub')
-  @DocsEditable()
-  @Unstable()
-  final String productSub;
-
-  @DomName('Navigator.serviceWorker')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final ServiceWorkerContainer serviceWorker;
-
-  @DomName('Navigator.services')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final ServicePortCollection services;
-
-  @DomName('Navigator.storage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final StorageManager storage;
-
-  @DomName('Navigator.storageQuota')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final StorageQuota storageQuota;
-
-  @DomName('Navigator.vendor')
-  @DocsEditable()
-  @Unstable()
-  final String vendor;
-
-  @DomName('Navigator.vendorSub')
-  @DocsEditable()
-  @Unstable()
-  final String vendorSub;
-
-  @JSName('webkitPersistentStorage')
-  @DomName('Navigator.webkitPersistentStorage')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  // http://www.w3.org/TR/quota-api/#accessing-storagequota
-  final DeprecatedStorageQuota persistentStorage;
-
-  @JSName('webkitTemporaryStorage')
-  @DomName('Navigator.webkitTemporaryStorage')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  // http://www.w3.org/TR/quota-api/#accessing-storagequota
-  final DeprecatedStorageQuota temporaryStorage;
-
-  @DomName('Navigator.getBattery')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future getBattery() native;
-
-  @DomName('Navigator.getGamepads')
-  @DocsEditable()
-  @Experimental() // untriaged
-  @Returns('_GamepadList|Null')
-  @Creates('_GamepadList')
-  List<Gamepad> getGamepads() native;
-
-  @DomName('Navigator.getVRDevices')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future getVRDevices() native;
-
-  @DomName('Navigator.registerProtocolHandler')
-  @DocsEditable()
-  @Unstable()
-  void registerProtocolHandler(String scheme, String url, String title) native;
-
-  @DomName('Navigator.requestMIDIAccess')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future requestMidiAccess([Map options]) {
-    if (options != null) {
-      var options_1 = convertDartToNative_Dictionary(options);
-      return _requestMidiAccess_1(options_1);
-    }
-    return _requestMidiAccess_2();
-  }
-
-  @JSName('requestMIDIAccess')
-  @DomName('Navigator.requestMIDIAccess')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _requestMidiAccess_1(options) native;
-  @JSName('requestMIDIAccess')
-  @DomName('Navigator.requestMIDIAccess')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _requestMidiAccess_2() native;
-
-  @DomName('Navigator.requestMediaKeySystemAccess')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future requestMediaKeySystemAccess(
-      String keySystem, List<Map> supportedConfigurations) native;
-
-  @DomName('Navigator.sendBeacon')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool sendBeacon(String url, Object data) native;
-
-  // From NavigatorCPU
-
-  @DomName('Navigator.hardwareConcurrency')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int hardwareConcurrency;
-
-  // From NavigatorID
-
-  @DomName('Navigator.appCodeName')
-  @DocsEditable()
-  @Experimental() // non-standard
-  final String appCodeName;
-
-  @DomName('Navigator.appName')
-  @DocsEditable()
-  final String appName;
-
-  @DomName('Navigator.appVersion')
-  @DocsEditable()
-  final String appVersion;
-
-  @DomName('Navigator.dartEnabled')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool dartEnabled;
-
-  @DomName('Navigator.platform')
-  @DocsEditable()
-  final String platform;
-
-  @DomName('Navigator.product')
-  @DocsEditable()
-  @Unstable()
-  final String product;
-
-  @DomName('Navigator.userAgent')
-  @DocsEditable()
-  final String userAgent;
-
-  // From NavigatorLanguage
-
-  @DomName('Navigator.languages')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final List<String> languages;
-
-  // From NavigatorOnLine
-
-  @DomName('Navigator.onLine')
-  @DocsEditable()
-  @Unstable()
-  final bool onLine;
-
-  // From NavigatorStorageUtils
-
-  @DomName('Navigator.cookieEnabled')
-  @DocsEditable()
-  @Unstable()
-  final bool cookieEnabled;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('NavigatorCPU')
-@Experimental() // untriaged
-abstract class NavigatorCpu extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory NavigatorCpu._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  final int hardwareConcurrency;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('NavigatorID')
-@Experimental() // untriaged
-abstract class NavigatorID extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory NavigatorID._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  final String appCodeName;
-
-  final String appName;
-
-  final String appVersion;
-
-  final bool dartEnabled;
-
-  final String platform;
-
-  final String product;
-
-  final String userAgent;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('NavigatorLanguage')
-@Experimental() // untriaged
-abstract class NavigatorLanguage extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory NavigatorLanguage._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  final String language;
-
-  final List<String> languages;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('NavigatorOnLine')
-@Experimental() // untriaged
-abstract class NavigatorOnLine extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory NavigatorOnLine._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  final bool onLine;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('NavigatorStorageUtils')
-@Experimental() // untriaged
-@Native("NavigatorStorageUtils")
-class NavigatorStorageUtils extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory NavigatorStorageUtils._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('NavigatorStorageUtils.cookieEnabled')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool cookieEnabled;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('NavigatorUserMediaError')
-// http://dev.w3.org/2011/webrtc/editor/getusermedia.html#idl-def-NavigatorUserMediaError
-@Experimental()
-@Native("NavigatorUserMediaError")
-class NavigatorUserMediaError extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory NavigatorUserMediaError._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('NavigatorUserMediaError.constraintName')
-  @DocsEditable()
-  final String constraintName;
-
-  @DomName('NavigatorUserMediaError.message')
-  @DocsEditable()
-  final String message;
-
-  @DomName('NavigatorUserMediaError.name')
-  @DocsEditable()
-  final String name;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('NavigatorUserMediaErrorCallback')
-// http://dev.w3.org/2011/webrtc/editor/getusermedia.html#idl-def-NavigatorUserMediaErrorCallback
-@Experimental()
-typedef void _NavigatorUserMediaErrorCallback(NavigatorUserMediaError error);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('NavigatorUserMediaSuccessCallback')
-// http://dev.w3.org/2011/webrtc/editor/getusermedia.html#idl-def-NavigatorUserMediaSuccessCallback
-@Experimental()
-typedef void _NavigatorUserMediaSuccessCallback(MediaStream stream);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('NetworkInformation')
-@Experimental() // untriaged
-@Native("NetworkInformation")
-class NetworkInformation extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory NetworkInformation._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('NetworkInformation.changeEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> changeEvent =
-      const EventStreamProvider<Event>('change');
-
-  @DomName('NetworkInformation.downlinkMax')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double downlinkMax;
-
-  @DomName('NetworkInformation.type')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String type;
-
-  @DomName('NetworkInformation.onchange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onChange => changeEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/**
- * Lazy implementation of the child nodes of an element that does not request
- * the actual child nodes of an element until strictly necessary greatly
- * improving performance for the typical cases where it is not required.
- */
-class _ChildNodeListLazy extends ListBase<Node> implements NodeListWrapper {
-  final Node _this;
-
-  _ChildNodeListLazy(this._this);
-
-  Node get first {
-    Node result = JS('Node|Null', '#.firstChild', _this);
-    if (result == null) throw new StateError("No elements");
-    return result;
-  }
-
-  Node get last {
-    Node result = JS('Node|Null', '#.lastChild', _this);
-    if (result == null) throw new StateError("No elements");
-    return result;
-  }
-
-  Node get single {
-    int l = this.length;
-    if (l == 0) throw new StateError("No elements");
-    if (l > 1) throw new StateError("More than one element");
-    return JS('Node|Null', '#.firstChild', _this);
-  }
-
-  void add(Node value) {
-    _this.append(value);
-  }
-
-  void addAll(Iterable<Node> iterable) {
-    if (iterable is _ChildNodeListLazy) {
-      _ChildNodeListLazy otherList = iterable;
-      if (!identical(otherList._this, _this)) {
-        // Optimized route for copying between nodes.
-        for (var i = 0, len = otherList.length; i < len; ++i) {
-          _this.append(otherList._this.firstChild);
-        }
-      }
-      return;
-    }
-    for (Node node in iterable) {
-      _this.append(node);
-    }
-  }
-
-  void insert(int index, Node node) {
-    if (index < 0 || index > length) {
-      throw new RangeError.range(index, 0, length);
-    }
-    if (index == length) {
-      _this.append(node);
-    } else {
-      _this.insertBefore(node, this[index]);
-    }
-  }
-
-  void insertAll(int index, Iterable<Node> iterable) {
-    if (index == length) {
-      addAll(iterable);
-    } else {
-      var item = this[index];
-      _this.insertAllBefore(iterable, item);
-    }
-  }
-
-  void setAll(int index, Iterable<Node> iterable) {
-    throw new UnsupportedError("Cannot setAll on Node list");
-  }
-
-  Node removeLast() {
-    final result = last;
-    if (result != null) {
-      _this._removeChild(result);
-    }
-    return result;
-  }
-
-  Node removeAt(int index) {
-    var result = this[index];
-    if (result != null) {
-      _this._removeChild(result);
-    }
-    return result;
-  }
-
-  bool remove(Object object) {
-    if (object is! Node) return false;
-    Node node = object;
-    if (!identical(_this, node.parentNode)) return false;
-    _this._removeChild(node);
-    return true;
-  }
-
-  void _filter(bool test(Node node), bool removeMatching) {
-    // This implementation of removeWhere/retainWhere is more efficient
-    // than the default in ListBase. Child nodes can be removed in constant
-    // time.
-    Node child = _this.firstChild;
-    while (child != null) {
-      Node nextChild = child.nextNode;
-      if (test(child) == removeMatching) {
-        _this._removeChild(child);
-      }
-      child = nextChild;
-    }
-  }
-
-  void removeWhere(bool test(Node node)) {
-    _filter(test, true);
-  }
-
-  void retainWhere(bool test(Node node)) {
-    _filter(test, false);
-  }
-
-  void clear() {
-    _this._clearChildren();
-  }
-
-  void operator []=(int index, Node value) {
-    _this._replaceChild(value, this[index]);
-  }
-
-  Iterator<Node> get iterator => _this.childNodes.iterator;
-
-  // From List<Node>:
-
-  // TODO(jacobr): this could be implemented for child node lists.
-  // The exception we throw here is misleading.
-  void sort([Comparator<Node> compare]) {
-    throw new UnsupportedError("Cannot sort Node list");
-  }
-
-  void shuffle([Random random]) {
-    throw new UnsupportedError("Cannot shuffle Node list");
-  }
-
-  // FIXME: implement these.
-  void setRange(int start, int end, Iterable<Node> iterable,
-      [int skipCount = 0]) {
-    throw new UnsupportedError("Cannot setRange on Node list");
-  }
-
-  void fillRange(int start, int end, [Node fill]) {
-    throw new UnsupportedError("Cannot fillRange on Node list");
-  }
-
-  void removeRange(int start, int end) {
-    throw new UnsupportedError("Cannot removeRange on Node list");
-  }
-  // -- end List<Node> mixins.
-
-  // TODO(jacobr): benchmark whether this is more efficient or whether caching
-  // a local copy of childNodes is more efficient.
-  int get length => _this.childNodes.length;
-
-  set length(int value) {
-    throw new UnsupportedError("Cannot set length on immutable List.");
-  }
-
-  Node operator [](int index) => _this.childNodes[index];
-
-  List<Node> get rawList => _this.childNodes;
-}
-
-@DomName('Node')
-@Native("Node")
-class Node extends EventTarget {
-  // Custom element created callback.
-  Node._created() : super._created();
-
-  /**
-   * A modifiable list of this node's children.
-   */
-  List<Node> get nodes {
-    return new _ChildNodeListLazy(this);
-  }
-
-  set nodes(Iterable<Node> value) {
-    // Copy list first since we don't want liveness during iteration.
-    // TODO(jacobr): there is a better way to do this.
-    var copy = value.toList();
-    text = '';
-    for (Node node in copy) {
-      append(node);
-    }
-  }
-
-  /**
-   * Removes this node from the DOM.
-   */
-  @DomName('Node.removeChild')
-  void remove() {
-    // TODO(jacobr): should we throw an exception if parent is already null?
-    // TODO(vsm): Use the native remove when available.
-    if (this.parentNode != null) {
-      final Node parent = this.parentNode;
-      parentNode._removeChild(this);
-    }
-  }
-
-  /**
-   * Replaces this node with another node.
-   */
-  @DomName('Node.replaceChild')
-  Node replaceWith(Node otherNode) {
-    try {
-      final Node parent = this.parentNode;
-      parent._replaceChild(otherNode, this);
-    } catch (e) {}
-    ;
-    return this;
-  }
-
-  /**
-   * Inserts all of the nodes into this node directly before refChild.
-   *
-   * See also:
-   *
-   * * [insertBefore]
-   */
-  Node insertAllBefore(Iterable<Node> newNodes, Node refChild) {
-    if (newNodes is _ChildNodeListLazy) {
-      _ChildNodeListLazy otherList = newNodes;
-      if (identical(otherList._this, this)) {
-        throw new ArgumentError(newNodes);
-      }
-
-      // Optimized route for copying between nodes.
-      for (var i = 0, len = otherList.length; i < len; ++i) {
-        this.insertBefore(otherList._this.firstChild, refChild);
-      }
-    } else {
-      for (var node in newNodes) {
-        this.insertBefore(node, refChild);
-      }
-    }
-  }
-
-  void _clearChildren() {
-    while (firstChild != null) {
-      _removeChild(firstChild);
-    }
-  }
-
-  /**
-   * Print out a String representation of this Node.
-   */
-  String toString() {
-    String value = nodeValue; // Fetch DOM Node property once.
-    return value == null ? super.toString() : value;
-  }
-
-  /**
-   * A list of this node's children.
-   *
-   * ## Other resources
-   *
-   * * [Node.childNodes](https://developer.mozilla.org/en-US/docs/Web/API/Node.childNodes)
-   *   from MDN.
-   */
-  @DomName('Node.childNodes')
-  @DocsEditable()
-  @Returns('NodeList')
-  @Creates('NodeList')
-  final List<Node> childNodes;
-
-  // To suppress missing implicit constructor warnings.
-  factory Node._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Node.ATTRIBUTE_NODE')
-  @DocsEditable()
-  static const int ATTRIBUTE_NODE = 2;
-
-  @DomName('Node.CDATA_SECTION_NODE')
-  @DocsEditable()
-  static const int CDATA_SECTION_NODE = 4;
-
-  @DomName('Node.COMMENT_NODE')
-  @DocsEditable()
-  static const int COMMENT_NODE = 8;
-
-  @DomName('Node.DOCUMENT_FRAGMENT_NODE')
-  @DocsEditable()
-  static const int DOCUMENT_FRAGMENT_NODE = 11;
-
-  @DomName('Node.DOCUMENT_NODE')
-  @DocsEditable()
-  static const int DOCUMENT_NODE = 9;
-
-  @DomName('Node.DOCUMENT_TYPE_NODE')
-  @DocsEditable()
-  static const int DOCUMENT_TYPE_NODE = 10;
-
-  @DomName('Node.ELEMENT_NODE')
-  @DocsEditable()
-  static const int ELEMENT_NODE = 1;
-
-  @DomName('Node.ENTITY_NODE')
-  @DocsEditable()
-  static const int ENTITY_NODE = 6;
-
-  @DomName('Node.ENTITY_REFERENCE_NODE')
-  @DocsEditable()
-  static const int ENTITY_REFERENCE_NODE = 5;
-
-  @DomName('Node.NOTATION_NODE')
-  @DocsEditable()
-  static const int NOTATION_NODE = 12;
-
-  @DomName('Node.PROCESSING_INSTRUCTION_NODE')
-  @DocsEditable()
-  static const int PROCESSING_INSTRUCTION_NODE = 7;
-
-  @DomName('Node.TEXT_NODE')
-  @DocsEditable()
-  static const int TEXT_NODE = 3;
-
-  @JSName('baseURI')
-  @DomName('Node.baseURI')
-  @DocsEditable()
-  final String baseUri;
-
-  /**
-   * The first child of this node.
-   *
-   * ## Other resources
-   *
-   * * [Node.firstChild](https://developer.mozilla.org/en-US/docs/Web/API/Node.firstChild)
-   *   from MDN.
-   */
-  @DomName('Node.firstChild')
-  @DocsEditable()
-  final Node firstChild;
-
-  /**
-   * The last child of this node.
-   *
-   * ## Other resources
-   *
-   * * [Node.lastChild](https://developer.mozilla.org/en-US/docs/Web/API/Node.lastChild)
-   *   from MDN.
-   */
-  @DomName('Node.lastChild')
-  @DocsEditable()
-  final Node lastChild;
-
-  @JSName('nextSibling')
-  /**
-   * The next sibling node.
-   *
-   * ## Other resources
-   *
-   * * [Node.nextSibling](https://developer.mozilla.org/en-US/docs/Web/API/Node.nextSibling)
-   *   from MDN.
-   */
-  @DomName('Node.nextSibling')
-  @DocsEditable()
-  final Node nextNode;
-
-  /**
-   * The name of this node.
-   *
-   * This varies by this node's [nodeType].
-   *
-   * ## Other resources
-   *
-   * * [Node.nodeName](https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeName)
-   *   from MDN. This page contains a table of [nodeName] values for each
-   *   [nodeType].
-   */
-  @DomName('Node.nodeName')
-  @DocsEditable()
-  final String nodeName;
-
-  /**
-   * The type of node.
-   *
-   * This value is one of:
-   *
-   * * [ATTRIBUTE_NODE] if this node is an attribute.
-   * * [CDATA_SECTION_NODE] if this node is a [CDataSection].
-   * * [COMMENT_NODE] if this node is a [Comment].
-   * * [DOCUMENT_FRAGMENT_NODE] if this node is a [DocumentFragment].
-   * * [DOCUMENT_NODE] if this node is a [Document].
-   * * [DOCUMENT_TYPE_NODE] if this node is a [DocumentType] node.
-   * * [ELEMENT_NODE] if this node is an [Element].
-   * * [ENTITY_NODE] if this node is an entity.
-   * * [ENTITY_REFERENCE_NODE] if this node is an entity reference.
-   * * [NOTATION_NODE] if this node is a notation.
-   * * [PROCESSING_INSTRUCTION_NODE] if this node is a [ProcessingInstruction].
-   * * [TEXT_NODE] if this node is a [Text] node.
-   *
-   * ## Other resources
-   *
-   * * [Node.nodeType](https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeType)
-   *   from MDN.
-   */
-  @DomName('Node.nodeType')
-  @DocsEditable()
-  final int nodeType;
-
-  /**
-   * The value of this node.
-   *
-   * This varies by this type's [nodeType].
-   *
-   * ## Other resources
-   *
-   * * [Node.nodeValue](https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeValue)
-   *   from MDN. This page contains a table of [nodeValue] values for each
-   *   [nodeType].
-   */
-  @DomName('Node.nodeValue')
-  @DocsEditable()
-  final String nodeValue;
-
-  /**
-   * The document this node belongs to.
-   *
-   * Returns null if this node does not belong to any document.
-   *
-   * ## Other resources
-   *
-   * * [Node.ownerDocument](https://developer.mozilla.org/en-US/docs/Web/API/Node.ownerDocument)
-   *   from MDN.
-   */
-  @DomName('Node.ownerDocument')
-  @DocsEditable()
-  final Document ownerDocument;
-
-  @JSName('parentElement')
-  /**
-   * The parent element of this node.
-   *
-   * Returns null if this node either does not have a parent or its parent is
-   * not an element.
-   *
-   * ## Other resources
-   *
-   * * [Node.parentElement](https://developer.mozilla.org/en-US/docs/Web/API/Node.parentElement)
-   *   from W3C.
-   */
-  @DomName('Node.parentElement')
-  @DocsEditable()
-  final Element parent;
-
-  /**
-   * The parent node of this node.
-   *
-   * ## Other resources
-   *
-   * * [Node.parentNode](https://developer.mozilla.org/en-US/docs/Web/API/Node.parentNode)
-   *   from MDN.
-   */
-  @DomName('Node.parentNode')
-  @DocsEditable()
-  final Node parentNode;
-
-  @JSName('previousSibling')
-  /**
-   * The previous sibling node.
-   *
-   * ## Other resources
-   *
-   * * [Node.previousSibling](https://developer.mozilla.org/en-US/docs/Web/API/Node.previousSibling)
-   *   from MDN.
-   */
-  @DomName('Node.previousSibling')
-  @DocsEditable()
-  final Node previousNode;
-
-  @JSName('textContent')
-  /**
-   * All text within this node and its descendents.
-   *
-   * ## Other resources
-   *
-   * * [Node.textContent](https://developer.mozilla.org/en-US/docs/Web/API/Node.textContent)
-   *   from MDN.
-   */
-  @DomName('Node.textContent')
-  @DocsEditable()
-  String text;
-
-  @DomName('Node.treeRoot')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Node treeRoot;
-
-  @JSName('appendChild')
-  /**
-   * Adds a node to the end of the child [nodes] list of this node.
-   *
-   * If the node already exists in this document, it will be removed from its
-   * current parent node, then added to this node.
-   *
-   * This method is more efficient than `nodes.add`, and is the preferred
-   * way of appending a child node.
-   */
-  @DomName('Node.appendChild')
-  @DocsEditable()
-  Node append(Node node) native;
-
-  @JSName('cloneNode')
-  /**
-   * Returns a copy of this node.
-   *
-   * If [deep] is `true`, then all of this node's children and descendents are
-   * copied as well. If [deep] is `false`, then only this node is copied.
-   *
-   * ## Other resources
-   *
-   * * [Node.cloneNode](https://developer.mozilla.org/en-US/docs/Web/API/Node.cloneNode)
-   *   from MDN.
-   */
-  @DomName('Node.cloneNode')
-  @DocsEditable()
-  Node clone(bool deep) native;
-
-  /**
-   * Returns true if this node contains the specified node.
-   *
-   * ## Other resources
-   *
-   * * [Node.contains](https://developer.mozilla.org/en-US/docs/Web/API/Node.contains)
-   *   from MDN.
-   */
-  @DomName('Node.contains')
-  @DocsEditable()
-  bool contains(Node other) native;
-
-  /**
-   * Returns true if this node has any children.
-   *
-   * ## Other resources
-   *
-   * * [Node.hasChildNodes](https://developer.mozilla.org/en-US/docs/Web/API/Node.hasChildNodes)
-   *   from MDN.
-   */
-  @DomName('Node.hasChildNodes')
-  @DocsEditable()
-  bool hasChildNodes() native;
-
-  /**
-   * Inserts all of the nodes into this node directly before refChild.
-   *
-   * ## Other resources
-   *
-   * * [Node.insertBefore](https://developer.mozilla.org/en-US/docs/Web/API/Node.insertBefore)
-   *   from MDN.
-   */
-  @DomName('Node.insertBefore')
-  @DocsEditable()
-  Node insertBefore(Node node, Node child) native;
-
-  @JSName('removeChild')
-  @DomName('Node.removeChild')
-  @DocsEditable()
-  Node _removeChild(Node child) native;
-
-  @JSName('replaceChild')
-  @DomName('Node.replaceChild')
-  @DocsEditable()
-  Node _replaceChild(Node node, Node child) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('NodeFilter')
-@Unstable()
-@Native("NodeFilter")
-class NodeFilter extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory NodeFilter._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('NodeFilter.FILTER_ACCEPT')
-  @DocsEditable()
-  static const int FILTER_ACCEPT = 1;
-
-  @DomName('NodeFilter.FILTER_REJECT')
-  @DocsEditable()
-  static const int FILTER_REJECT = 2;
-
-  @DomName('NodeFilter.FILTER_SKIP')
-  @DocsEditable()
-  static const int FILTER_SKIP = 3;
-
-  @DomName('NodeFilter.SHOW_ALL')
-  @DocsEditable()
-  static const int SHOW_ALL = 0xFFFFFFFF;
-
-  @DomName('NodeFilter.SHOW_COMMENT')
-  @DocsEditable()
-  static const int SHOW_COMMENT = 0x80;
-
-  @DomName('NodeFilter.SHOW_DOCUMENT')
-  @DocsEditable()
-  static const int SHOW_DOCUMENT = 0x100;
-
-  @DomName('NodeFilter.SHOW_DOCUMENT_FRAGMENT')
-  @DocsEditable()
-  static const int SHOW_DOCUMENT_FRAGMENT = 0x400;
-
-  @DomName('NodeFilter.SHOW_DOCUMENT_TYPE')
-  @DocsEditable()
-  static const int SHOW_DOCUMENT_TYPE = 0x200;
-
-  @DomName('NodeFilter.SHOW_ELEMENT')
-  @DocsEditable()
-  static const int SHOW_ELEMENT = 0x1;
-
-  @DomName('NodeFilter.SHOW_PROCESSING_INSTRUCTION')
-  @DocsEditable()
-  static const int SHOW_PROCESSING_INSTRUCTION = 0x40;
-
-  @DomName('NodeFilter.SHOW_TEXT')
-  @DocsEditable()
-  static const int SHOW_TEXT = 0x4;
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('NodeIterator')
-@Unstable()
-@Native("NodeIterator")
-class NodeIterator extends Interceptor {
-  factory NodeIterator(Node root, int whatToShow) {
-    return document._createNodeIterator(root, whatToShow, null);
-  }
-  // To suppress missing implicit constructor warnings.
-  factory NodeIterator._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('NodeIterator.pointerBeforeReferenceNode')
-  @DocsEditable()
-  final bool pointerBeforeReferenceNode;
-
-  @DomName('NodeIterator.referenceNode')
-  @DocsEditable()
-  final Node referenceNode;
-
-  @DomName('NodeIterator.root')
-  @DocsEditable()
-  final Node root;
-
-  @DomName('NodeIterator.whatToShow')
-  @DocsEditable()
-  final int whatToShow;
-
-  @DomName('NodeIterator.detach')
-  @DocsEditable()
-  void detach() native;
-
-  @DomName('NodeIterator.nextNode')
-  @DocsEditable()
-  Node nextNode() native;
-
-  @DomName('NodeIterator.previousNode')
-  @DocsEditable()
-  Node previousNode() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('NodeList')
-@Native("NodeList,RadioNodeList")
-class NodeList extends Interceptor
-    with ListMixin<Node>, ImmutableListMixin<Node>
-    implements JavaScriptIndexingBehavior<Node>, List<Node> {
-  // To suppress missing implicit constructor warnings.
-  factory NodeList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('NodeList.length')
-  @DocsEditable()
-  int get length => JS("int", "#.length", this);
-
-  Node operator [](int index) {
-    if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
-      throw new RangeError.index(index, this);
-    return JS("Node", "#[#]", this, index);
-  }
-
-  void operator []=(int index, Node value) {
-    throw new UnsupportedError("Cannot assign element of immutable List.");
-  }
-  // -- start List<Node> mixins.
-  // Node is the element type.
-
-  set length(int value) {
-    throw new UnsupportedError("Cannot resize immutable List.");
-  }
-
-  Node get first {
-    if (this.length > 0) {
-      return JS('Node', '#[0]', this);
-    }
-    throw new StateError("No elements");
-  }
-
-  Node get last {
-    int len = this.length;
-    if (len > 0) {
-      return JS('Node', '#[#]', this, len - 1);
-    }
-    throw new StateError("No elements");
-  }
-
-  Node get single {
-    int len = this.length;
-    if (len == 1) {
-      return JS('Node', '#[0]', this);
-    }
-    if (len == 0) throw new StateError("No elements");
-    throw new StateError("More than one element");
-  }
-
-  Node elementAt(int index) => this[index];
-  // -- end List<Node> mixins.
-
-  @JSName('item')
-  @DomName('NodeList.item')
-  @DocsEditable()
-  Node _item(int index) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('NonDocumentTypeChildNode')
-@Experimental() // untriaged
-@Native("NonDocumentTypeChildNode")
-class NonDocumentTypeChildNode extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory NonDocumentTypeChildNode._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('NonDocumentTypeChildNode.nextElementSibling')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Element nextElementSibling;
-
-  @DomName('NonDocumentTypeChildNode.previousElementSibling')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Element previousElementSibling;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('NonElementParentNode')
-@Experimental() // untriaged
-@Native("NonElementParentNode")
-class NonElementParentNode extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory NonElementParentNode._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('NonElementParentNode.getElementById')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Element getElementById(String elementId) native;
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('Notification')
-// http://www.w3.org/TR/notifications/#notification
-@Experimental() // experimental
-@Native("Notification")
-class Notification extends EventTarget {
-  factory Notification(String title,
-      {String dir: null,
-      String body: null,
-      String lang: null,
-      String tag: null,
-      String icon: null}) {
-    var parsedOptions = {};
-    if (dir != null) parsedOptions['dir'] = dir;
-    if (body != null) parsedOptions['body'] = body;
-    if (lang != null) parsedOptions['lang'] = lang;
-    if (tag != null) parsedOptions['tag'] = tag;
-    if (icon != null) parsedOptions['icon'] = icon;
-    return Notification._factoryNotification(title, parsedOptions);
-  }
-  // To suppress missing implicit constructor warnings.
-  factory Notification._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `click` events to event
-   * handlers that are not necessarily instances of [Notification].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Notification.clickEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> clickEvent =
-      const EventStreamProvider<Event>('click');
-
-  /**
-   * Static factory designed to expose `close` events to event
-   * handlers that are not necessarily instances of [Notification].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Notification.closeEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> closeEvent =
-      const EventStreamProvider<Event>('close');
-
-  /**
-   * Static factory designed to expose `error` events to event
-   * handlers that are not necessarily instances of [Notification].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Notification.errorEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> errorEvent =
-      const EventStreamProvider<Event>('error');
-
-  /**
-   * Static factory designed to expose `show` events to event
-   * handlers that are not necessarily instances of [Notification].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Notification.showEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> showEvent =
-      const EventStreamProvider<Event>('show');
-
-  @DomName('Notification.Notification')
-  @DocsEditable()
-  static Notification _factoryNotification(String title, [Map options]) {
-    if (options != null) {
-      var options_1 = convertDartToNative_Dictionary(options);
-      return Notification._create_1(title, options_1);
-    }
-    return Notification._create_2(title);
-  }
-
-  static Notification _create_1(title, options) =>
-      JS('Notification', 'new Notification(#,#)', title, options);
-  static Notification _create_2(title) =>
-      JS('Notification', 'new Notification(#)', title);
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported => JS('bool', '!!(window.Notification)');
-
-  @DomName('Notification.actions')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final List actions;
-
-  @DomName('Notification.body')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String body;
-
-  @DomName('Notification.data')
-  @DocsEditable()
-  @Experimental() // untriaged
-  @annotation_Creates_SerializedScriptValue
-  @annotation_Returns_SerializedScriptValue
-  final Object data;
-
-  @DomName('Notification.dir')
-  @DocsEditable()
-  @Experimental() // nonstandard
-  final String dir;
-
-  @DomName('Notification.icon')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String icon;
-
-  @DomName('Notification.lang')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String lang;
-
-  @DomName('Notification.maxActions')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int maxActions;
-
-  @DomName('Notification.permission')
-  @DocsEditable()
-  final String permission;
-
-  @DomName('Notification.renotify')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool renotify;
-
-  @DomName('Notification.requireInteraction')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool requireInteraction;
-
-  @DomName('Notification.silent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool silent;
-
-  @DomName('Notification.tag')
-  @DocsEditable()
-  @Experimental() // nonstandard
-  final String tag;
-
-  @DomName('Notification.timestamp')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int timestamp;
-
-  @DomName('Notification.title')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String title;
-
-  @DomName('Notification.vibrate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final List<int> vibrate;
-
-  @DomName('Notification.close')
-  @DocsEditable()
-  void close() native;
-
-  @JSName('requestPermission')
-  @DomName('Notification.requestPermission')
-  @DocsEditable()
-  static Future _requestPermission(
-      [_NotificationPermissionCallback deprecatedCallback]) native;
-
-  @JSName('requestPermission')
-  @DomName('Notification.requestPermission')
-  @DocsEditable()
-  static Future<String> requestPermission() {
-    var completer = new Completer<String>();
-    _requestPermission((value) {
-      completer.complete(value);
-    });
-    return completer.future;
-  }
-
-  /// Stream of `click` events handled by this [Notification].
-  @DomName('Notification.onclick')
-  @DocsEditable()
-  Stream<Event> get onClick => clickEvent.forTarget(this);
-
-  /// Stream of `close` events handled by this [Notification].
-  @DomName('Notification.onclose')
-  @DocsEditable()
-  Stream<Event> get onClose => closeEvent.forTarget(this);
-
-  /// Stream of `error` events handled by this [Notification].
-  @DomName('Notification.onerror')
-  @DocsEditable()
-  Stream<Event> get onError => errorEvent.forTarget(this);
-
-  /// Stream of `show` events handled by this [Notification].
-  @DomName('Notification.onshow')
-  @DocsEditable()
-  Stream<Event> get onShow => showEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('NotificationEvent')
-@Experimental() // untriaged
-@Native("NotificationEvent")
-class NotificationEvent extends ExtendableEvent {
-  // To suppress missing implicit constructor warnings.
-  factory NotificationEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('NotificationEvent.NotificationEvent')
-  @DocsEditable()
-  factory NotificationEvent(String type, Map eventInitDict) {
-    var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-    return NotificationEvent._create_1(type, eventInitDict_1);
-  }
-  static NotificationEvent _create_1(type, eventInitDict) => JS(
-      'NotificationEvent', 'new NotificationEvent(#,#)', type, eventInitDict);
-
-  @DomName('NotificationEvent.action')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String action;
-
-  @DomName('NotificationEvent.notification')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Notification notification;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('NotificationPermissionCallback')
-// http://www.w3.org/TR/notifications/#notificationpermissioncallback
-@Experimental()
-typedef void _NotificationPermissionCallback(String permission);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('NumberValue')
-@Experimental() // untriaged
-@Native("NumberValue")
-class NumberValue extends StyleValue {
-  // To suppress missing implicit constructor warnings.
-  factory NumberValue._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('NumberValue.NumberValue')
-  @DocsEditable()
-  factory NumberValue(num value) {
-    return NumberValue._create_1(value);
-  }
-  static NumberValue _create_1(value) =>
-      JS('NumberValue', 'new NumberValue(#)', value);
-
-  @DomName('NumberValue.value')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double value;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLOListElement')
-@Native("HTMLOListElement")
-class OListElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory OListElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLOListElement.HTMLOListElement')
-  @DocsEditable()
-  factory OListElement() => JS(
-      'returns:OListElement;creates:OListElement;new:true',
-      '#.createElement(#)',
-      document,
-      "ol");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  OListElement.created() : super.created();
-
-  @DomName('HTMLOListElement.reversed')
-  @DocsEditable()
-  bool reversed;
-
-  @DomName('HTMLOListElement.start')
-  @DocsEditable()
-  int start;
-
-  @DomName('HTMLOListElement.type')
-  @DocsEditable()
-  String type;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLObjectElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.IE)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("HTMLObjectElement")
-class ObjectElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory ObjectElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLObjectElement.HTMLObjectElement')
-  @DocsEditable()
-  factory ObjectElement() => document.createElement("object");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  ObjectElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported => Element.isTagSupported('object');
-
-  @DomName('HTMLObjectElement.data')
-  @DocsEditable()
-  String data;
-
-  @DomName('HTMLObjectElement.form')
-  @DocsEditable()
-  final FormElement form;
-
-  @DomName('HTMLObjectElement.height')
-  @DocsEditable()
-  String height;
-
-  @DomName('HTMLObjectElement.name')
-  @DocsEditable()
-  String name;
-
-  @DomName('HTMLObjectElement.type')
-  @DocsEditable()
-  String type;
-
-  @DomName('HTMLObjectElement.useMap')
-  @DocsEditable()
-  String useMap;
-
-  @DomName('HTMLObjectElement.validationMessage')
-  @DocsEditable()
-  final String validationMessage;
-
-  @DomName('HTMLObjectElement.validity')
-  @DocsEditable()
-  final ValidityState validity;
-
-  @DomName('HTMLObjectElement.width')
-  @DocsEditable()
-  String width;
-
-  @DomName('HTMLObjectElement.willValidate')
-  @DocsEditable()
-  final bool willValidate;
-
-  @DomName('HTMLObjectElement.__getter__')
-  @DocsEditable()
-  bool __getter__(index_OR_name) native;
-
-  @DomName('HTMLObjectElement.__setter__')
-  @DocsEditable()
-  void __setter__(index_OR_name, Node value) native;
-
-  @DomName('HTMLObjectElement.checkValidity')
-  @DocsEditable()
-  bool checkValidity() native;
-
-  @DomName('HTMLObjectElement.reportValidity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool reportValidity() native;
-
-  @DomName('HTMLObjectElement.setCustomValidity')
-  @DocsEditable()
-  void setCustomValidity(String error) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('OffscreenCanvas')
-@Experimental() // untriaged
-@Native("OffscreenCanvas")
-class OffscreenCanvas extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory OffscreenCanvas._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('OffscreenCanvas.OffscreenCanvas')
-  @DocsEditable()
-  factory OffscreenCanvas(int width, int height) {
-    return OffscreenCanvas._create_1(width, height);
-  }
-  static OffscreenCanvas _create_1(width, height) =>
-      JS('OffscreenCanvas', 'new OffscreenCanvas(#,#)', width, height);
-
-  @DomName('OffscreenCanvas.height')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int height;
-
-  @DomName('OffscreenCanvas.width')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int width;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLOptGroupElement')
-@Native("HTMLOptGroupElement")
-class OptGroupElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory OptGroupElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLOptGroupElement.HTMLOptGroupElement')
-  @DocsEditable()
-  factory OptGroupElement() => JS(
-      'returns:OptGroupElement;creates:OptGroupElement;new:true',
-      '#.createElement(#)',
-      document,
-      "optgroup");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  OptGroupElement.created() : super.created();
-
-  @DomName('HTMLOptGroupElement.disabled')
-  @DocsEditable()
-  bool disabled;
-
-  @DomName('HTMLOptGroupElement.label')
-  @DocsEditable()
-  String label;
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('HTMLOptionElement')
-@Native("HTMLOptionElement")
-class OptionElement extends HtmlElement {
-  factory OptionElement(
-      {String data: '', String value: '', bool selected: false}) {
-    return new OptionElement._(data, value, null, selected);
-  }
-
-  @DomName('HTMLOptionElement.HTMLOptionElement')
-  @DocsEditable()
-  factory OptionElement._(
-      [String data, String value, bool defaultSelected, bool selected]) {
-    if (selected != null) {
-      return OptionElement._create_1(data, value, defaultSelected, selected);
-    }
-    if (defaultSelected != null) {
-      return OptionElement._create_2(data, value, defaultSelected);
-    }
-    if (value != null) {
-      return OptionElement._create_3(data, value);
-    }
-    if (data != null) {
-      return OptionElement._create_4(data);
-    }
-    return OptionElement._create_5();
-  }
-  static OptionElement _create_1(data, value, defaultSelected, selected) => JS(
-      'OptionElement',
-      'new Option(#,#,#,#)',
-      data,
-      value,
-      defaultSelected,
-      selected);
-  static OptionElement _create_2(data, value, defaultSelected) =>
-      JS('OptionElement', 'new Option(#,#,#)', data, value, defaultSelected);
-  static OptionElement _create_3(data, value) =>
-      JS('OptionElement', 'new Option(#,#)', data, value);
-  static OptionElement _create_4(data) =>
-      JS('OptionElement', 'new Option(#)', data);
-  static OptionElement _create_5() => JS('OptionElement', 'new Option()');
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  OptionElement.created() : super.created();
-
-  @DomName('HTMLOptionElement.defaultSelected')
-  @DocsEditable()
-  bool defaultSelected;
-
-  @DomName('HTMLOptionElement.disabled')
-  @DocsEditable()
-  bool disabled;
-
-  @DomName('HTMLOptionElement.form')
-  @DocsEditable()
-  final FormElement form;
-
-  @DomName('HTMLOptionElement.index')
-  @DocsEditable()
-  final int index;
-
-  @DomName('HTMLOptionElement.label')
-  @DocsEditable()
-  String label;
-
-  @DomName('HTMLOptionElement.selected')
-  @DocsEditable()
-  bool selected;
-
-  @DomName('HTMLOptionElement.value')
-  @DocsEditable()
-  String value;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLOutputElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Native("HTMLOutputElement")
-class OutputElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory OutputElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLOutputElement.HTMLOutputElement')
-  @DocsEditable()
-  factory OutputElement() => document.createElement("output");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  OutputElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported => Element.isTagSupported('output');
-
-  @DomName('HTMLOutputElement.defaultValue')
-  @DocsEditable()
-  String defaultValue;
-
-  @DomName('HTMLOutputElement.form')
-  @DocsEditable()
-  final FormElement form;
-
-  @DomName('HTMLOutputElement.htmlFor')
-  @DocsEditable()
-  final DomTokenList htmlFor;
-
-  @DomName('HTMLOutputElement.labels')
-  @DocsEditable()
-  @Unstable()
-  @Returns('NodeList|Null')
-  @Creates('NodeList')
-  final List<Node> labels;
-
-  @DomName('HTMLOutputElement.name')
-  @DocsEditable()
-  String name;
-
-  @DomName('HTMLOutputElement.type')
-  @DocsEditable()
-  final String type;
-
-  @DomName('HTMLOutputElement.validationMessage')
-  @DocsEditable()
-  final String validationMessage;
-
-  @DomName('HTMLOutputElement.validity')
-  @DocsEditable()
-  final ValidityState validity;
-
-  @DomName('HTMLOutputElement.value')
-  @DocsEditable()
-  String value;
-
-  @DomName('HTMLOutputElement.willValidate')
-  @DocsEditable()
-  final bool willValidate;
-
-  @DomName('HTMLOutputElement.checkValidity')
-  @DocsEditable()
-  bool checkValidity() native;
-
-  @DomName('HTMLOutputElement.reportValidity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool reportValidity() native;
-
-  @DomName('HTMLOutputElement.setCustomValidity')
-  @DocsEditable()
-  void setCustomValidity(String error) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PageTransitionEvent')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#pagetransitionevent
-@Experimental()
-@Native("PageTransitionEvent")
-class PageTransitionEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory PageTransitionEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('PageTransitionEvent.PageTransitionEvent')
-  @DocsEditable()
-  factory PageTransitionEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return PageTransitionEvent._create_1(type, eventInitDict_1);
-    }
-    return PageTransitionEvent._create_2(type);
-  }
-  static PageTransitionEvent _create_1(type, eventInitDict) => JS(
-      'PageTransitionEvent',
-      'new PageTransitionEvent(#,#)',
-      type,
-      eventInitDict);
-  static PageTransitionEvent _create_2(type) =>
-      JS('PageTransitionEvent', 'new PageTransitionEvent(#)', type);
-
-  @DomName('PageTransitionEvent.persisted')
-  @DocsEditable()
-  final bool persisted;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLParagraphElement')
-@Native("HTMLParagraphElement")
-class ParagraphElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory ParagraphElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLParagraphElement.HTMLParagraphElement')
-  @DocsEditable()
-  factory ParagraphElement() => JS(
-      'returns:ParagraphElement;creates:ParagraphElement;new:true',
-      '#.createElement(#)',
-      document,
-      "p");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  ParagraphElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLParamElement')
-@Unstable()
-@Native("HTMLParamElement")
-class ParamElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory ParamElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLParamElement.HTMLParamElement')
-  @DocsEditable()
-  factory ParamElement() => JS(
-      'returns:ParamElement;creates:ParamElement;new:true',
-      '#.createElement(#)',
-      document,
-      "param");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  ParamElement.created() : super.created();
-
-  @DomName('HTMLParamElement.name')
-  @DocsEditable()
-  String name;
-
-  @DomName('HTMLParamElement.value')
-  @DocsEditable()
-  String value;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ParentNode')
-@Experimental() // untriaged
-abstract class ParentNode extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory ParentNode._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  final int _childElementCount;
-
-  final List<Node> _children;
-
-  final Element _firstElementChild;
-
-  final Element _lastElementChild;
-
-  Element querySelector(String selectors);
-
-  List<Node> _querySelectorAll(String selectors);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PasswordCredential')
-@Experimental() // untriaged
-@Native("PasswordCredential")
-class PasswordCredential extends Credential {
-  // To suppress missing implicit constructor warnings.
-  factory PasswordCredential._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('PasswordCredential.PasswordCredential')
-  @DocsEditable()
-  factory PasswordCredential(Map data) {
-    var data_1 = convertDartToNative_Dictionary(data);
-    return PasswordCredential._create_1(data_1);
-  }
-  static PasswordCredential _create_1(data) =>
-      JS('PasswordCredential', 'new PasswordCredential(#)', data);
-
-  @DomName('PasswordCredential.additionalData')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object additionalData;
-
-  @DomName('PasswordCredential.idName')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String idName;
-
-  @DomName('PasswordCredential.passwordName')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String passwordName;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Path2D')
-@Experimental() // untriaged
-@Native("Path2D")
-class Path2D extends Interceptor implements _CanvasPathMethods {
-  // To suppress missing implicit constructor warnings.
-  factory Path2D._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Path2D.Path2D')
-  @DocsEditable()
-  factory Path2D([path_OR_text]) {
-    if (path_OR_text == null) {
-      return Path2D._create_1();
-    }
-    if ((path_OR_text is Path2D)) {
-      return Path2D._create_2(path_OR_text);
-    }
-    if ((path_OR_text is String)) {
-      return Path2D._create_3(path_OR_text);
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-  static Path2D _create_1() => JS('Path2D', 'new Path2D()');
-  static Path2D _create_2(path_OR_text) =>
-      JS('Path2D', 'new Path2D(#)', path_OR_text);
-  static Path2D _create_3(path_OR_text) =>
-      JS('Path2D', 'new Path2D(#)', path_OR_text);
-
-  @DomName('Path2D.addPath')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void addPath(Path2D path, [Matrix transform]) native;
-
-  // From CanvasPathMethods
-
-  @DomName('Path2D.arc')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void arc(num x, num y, num radius, num startAngle, num endAngle,
-      bool anticlockwise) native;
-
-  @DomName('Path2D.arcTo')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void arcTo(num x1, num y1, num x2, num y2, num radius) native;
-
-  @DomName('Path2D.bezierCurveTo')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void bezierCurveTo(num cp1x, num cp1y, num cp2x, num cp2y, num x, num y)
-      native;
-
-  @DomName('Path2D.closePath')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void closePath() native;
-
-  @DomName('Path2D.ellipse')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void ellipse(num x, num y, num radiusX, num radiusY, num rotation,
-      num startAngle, num endAngle, bool anticlockwise) native;
-
-  @DomName('Path2D.lineTo')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void lineTo(num x, num y) native;
-
-  @DomName('Path2D.moveTo')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void moveTo(num x, num y) native;
-
-  @DomName('Path2D.quadraticCurveTo')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void quadraticCurveTo(num cpx, num cpy, num x, num y) native;
-
-  @DomName('Path2D.rect')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void rect(num x, num y, num width, num height) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Performance')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE)
-@Native("Performance")
-class Performance extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory Performance._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported => JS('bool', '!!(window.performance)');
-
-  @DomName('Performance.memory')
-  @DocsEditable()
-  @Experimental() // nonstandard
-  final MemoryInfo memory;
-
-  @DomName('Performance.navigation')
-  @DocsEditable()
-  final PerformanceNavigation navigation;
-
-  @DomName('Performance.timing')
-  @DocsEditable()
-  final PerformanceTiming timing;
-
-  @DomName('Performance.clearFrameTimings')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void clearFrameTimings() native;
-
-  @DomName('Performance.clearMarks')
-  @DocsEditable()
-  // https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/UserTiming/Overview.html#extensions-performance-interface
-  @Experimental()
-  void clearMarks(String markName) native;
-
-  @DomName('Performance.clearMeasures')
-  @DocsEditable()
-  // https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/UserTiming/Overview.html#extensions-performance-interface
-  @Experimental()
-  void clearMeasures(String measureName) native;
-
-  @DomName('Performance.clearResourceTimings')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void clearResourceTimings() native;
-
-  @DomName('Performance.getEntries')
-  @DocsEditable()
-  // http://www.w3.org/TR/performance-timeline/#sec-window.performance-attribute
-  @Experimental()
-  List<PerformanceEntry> getEntries() native;
-
-  @DomName('Performance.getEntriesByName')
-  @DocsEditable()
-  // http://www.w3.org/TR/performance-timeline/#sec-window.performance-attribute
-  @Experimental()
-  List<PerformanceEntry> getEntriesByName(String name, String entryType) native;
-
-  @DomName('Performance.getEntriesByType')
-  @DocsEditable()
-  // http://www.w3.org/TR/performance-timeline/#sec-window.performance-attribute
-  @Experimental()
-  List<PerformanceEntry> getEntriesByType(String entryType) native;
-
-  @DomName('Performance.mark')
-  @DocsEditable()
-  // https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/UserTiming/Overview.html#extensions-performance-interface
-  @Experimental()
-  void mark(String markName) native;
-
-  @DomName('Performance.measure')
-  @DocsEditable()
-  // https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/UserTiming/Overview.html#extensions-performance-interface
-  @Experimental()
-  void measure(String measureName, String startMark, String endMark) native;
-
-  @DomName('Performance.now')
-  @DocsEditable()
-  double now() native;
-
-  @DomName('Performance.setFrameTimingBufferSize')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void setFrameTimingBufferSize(int maxSize) native;
-
-  @DomName('Performance.setResourceTimingBufferSize')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void setResourceTimingBufferSize(int maxSize) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PerformanceCompositeTiming')
-@Experimental() // untriaged
-@Native("PerformanceCompositeTiming")
-class PerformanceCompositeTiming extends PerformanceEntry {
-  // To suppress missing implicit constructor warnings.
-  factory PerformanceCompositeTiming._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('PerformanceCompositeTiming.sourceFrame')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int sourceFrame;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PerformanceEntry')
-// http://www.w3.org/TR/performance-timeline/#sec-PerformanceEntry-interface
-@Experimental()
-@Native("PerformanceEntry")
-class PerformanceEntry extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory PerformanceEntry._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('PerformanceEntry.duration')
-  @DocsEditable()
-  final double duration;
-
-  @DomName('PerformanceEntry.entryType')
-  @DocsEditable()
-  final String entryType;
-
-  @DomName('PerformanceEntry.name')
-  @DocsEditable()
-  final String name;
-
-  @DomName('PerformanceEntry.startTime')
-  @DocsEditable()
-  final double startTime;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PerformanceMark')
-// http://www.w3.org/TR/user-timing/#performancemark
-@Experimental()
-@Native("PerformanceMark")
-class PerformanceMark extends PerformanceEntry {
-  // To suppress missing implicit constructor warnings.
-  factory PerformanceMark._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PerformanceMeasure')
-// http://www.w3.org/TR/user-timing/#performancemeasure
-@Experimental()
-@Native("PerformanceMeasure")
-class PerformanceMeasure extends PerformanceEntry {
-  // To suppress missing implicit constructor warnings.
-  factory PerformanceMeasure._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PerformanceNavigation')
-@Unstable()
-@Native("PerformanceNavigation")
-class PerformanceNavigation extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory PerformanceNavigation._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('PerformanceNavigation.TYPE_BACK_FORWARD')
-  @DocsEditable()
-  static const int TYPE_BACK_FORWARD = 2;
-
-  @DomName('PerformanceNavigation.TYPE_NAVIGATE')
-  @DocsEditable()
-  static const int TYPE_NAVIGATE = 0;
-
-  @DomName('PerformanceNavigation.TYPE_RELOAD')
-  @DocsEditable()
-  static const int TYPE_RELOAD = 1;
-
-  @DomName('PerformanceNavigation.TYPE_RESERVED')
-  @DocsEditable()
-  static const int TYPE_RESERVED = 255;
-
-  @DomName('PerformanceNavigation.redirectCount')
-  @DocsEditable()
-  final int redirectCount;
-
-  @DomName('PerformanceNavigation.type')
-  @DocsEditable()
-  final int type;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PerformanceObserver')
-@Experimental() // untriaged
-@Native("PerformanceObserver")
-class PerformanceObserver extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory PerformanceObserver._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('PerformanceObserver.disconnect')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void disconnect() native;
-
-  @DomName('PerformanceObserver.observe')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void observe(Map options) {
-    var options_1 = convertDartToNative_Dictionary(options);
-    _observe_1(options_1);
-    return;
-  }
-
-  @JSName('observe')
-  @DomName('PerformanceObserver.observe')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _observe_1(options) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PerformanceObserverEntryList')
-@Experimental() // untriaged
-@Native("PerformanceObserverEntryList")
-class PerformanceObserverEntryList extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory PerformanceObserverEntryList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('PerformanceObserverEntryList.getEntries')
-  @DocsEditable()
-  @Experimental() // untriaged
-  List<PerformanceEntry> getEntries() native;
-
-  @DomName('PerformanceObserverEntryList.getEntriesByName')
-  @DocsEditable()
-  @Experimental() // untriaged
-  List<PerformanceEntry> getEntriesByName(String name, String entryType) native;
-
-  @DomName('PerformanceObserverEntryList.getEntriesByType')
-  @DocsEditable()
-  @Experimental() // untriaged
-  List<PerformanceEntry> getEntriesByType(String entryType) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PerformanceRenderTiming')
-@Experimental() // untriaged
-@Native("PerformanceRenderTiming")
-class PerformanceRenderTiming extends PerformanceEntry {
-  // To suppress missing implicit constructor warnings.
-  factory PerformanceRenderTiming._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('PerformanceRenderTiming.sourceFrame')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int sourceFrame;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PerformanceResourceTiming')
-// http://www.w3c-test.org/webperf/specs/ResourceTiming/#performanceresourcetiming
-@Experimental()
-@Native("PerformanceResourceTiming")
-class PerformanceResourceTiming extends PerformanceEntry {
-  // To suppress missing implicit constructor warnings.
-  factory PerformanceResourceTiming._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('PerformanceResourceTiming.connectEnd')
-  @DocsEditable()
-  final double connectEnd;
-
-  @DomName('PerformanceResourceTiming.connectStart')
-  @DocsEditable()
-  final double connectStart;
-
-  @DomName('PerformanceResourceTiming.domainLookupEnd')
-  @DocsEditable()
-  final double domainLookupEnd;
-
-  @DomName('PerformanceResourceTiming.domainLookupStart')
-  @DocsEditable()
-  final double domainLookupStart;
-
-  @DomName('PerformanceResourceTiming.fetchStart')
-  @DocsEditable()
-  final double fetchStart;
-
-  @DomName('PerformanceResourceTiming.initiatorType')
-  @DocsEditable()
-  final String initiatorType;
-
-  @DomName('PerformanceResourceTiming.redirectEnd')
-  @DocsEditable()
-  final double redirectEnd;
-
-  @DomName('PerformanceResourceTiming.redirectStart')
-  @DocsEditable()
-  final double redirectStart;
-
-  @DomName('PerformanceResourceTiming.requestStart')
-  @DocsEditable()
-  @Experimental() // nonstandard
-  final double requestStart;
-
-  @DomName('PerformanceResourceTiming.responseEnd')
-  @DocsEditable()
-  @Experimental() // nonstandard
-  final double responseEnd;
-
-  @DomName('PerformanceResourceTiming.responseStart')
-  @DocsEditable()
-  @Experimental() // nonstandard
-  final double responseStart;
-
-  @DomName('PerformanceResourceTiming.secureConnectionStart')
-  @DocsEditable()
-  final double secureConnectionStart;
-
-  @DomName('PerformanceResourceTiming.workerStart')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double workerStart;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PerformanceTiming')
-@Unstable()
-@Native("PerformanceTiming")
-class PerformanceTiming extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory PerformanceTiming._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('PerformanceTiming.connectEnd')
-  @DocsEditable()
-  final int connectEnd;
-
-  @DomName('PerformanceTiming.connectStart')
-  @DocsEditable()
-  final int connectStart;
-
-  @DomName('PerformanceTiming.domComplete')
-  @DocsEditable()
-  final int domComplete;
-
-  @DomName('PerformanceTiming.domContentLoadedEventEnd')
-  @DocsEditable()
-  final int domContentLoadedEventEnd;
-
-  @DomName('PerformanceTiming.domContentLoadedEventStart')
-  @DocsEditable()
-  final int domContentLoadedEventStart;
-
-  @DomName('PerformanceTiming.domInteractive')
-  @DocsEditable()
-  final int domInteractive;
-
-  @DomName('PerformanceTiming.domLoading')
-  @DocsEditable()
-  final int domLoading;
-
-  @DomName('PerformanceTiming.domainLookupEnd')
-  @DocsEditable()
-  final int domainLookupEnd;
-
-  @DomName('PerformanceTiming.domainLookupStart')
-  @DocsEditable()
-  final int domainLookupStart;
-
-  @DomName('PerformanceTiming.fetchStart')
-  @DocsEditable()
-  final int fetchStart;
-
-  @DomName('PerformanceTiming.loadEventEnd')
-  @DocsEditable()
-  final int loadEventEnd;
-
-  @DomName('PerformanceTiming.loadEventStart')
-  @DocsEditable()
-  final int loadEventStart;
-
-  @DomName('PerformanceTiming.navigationStart')
-  @DocsEditable()
-  final int navigationStart;
-
-  @DomName('PerformanceTiming.redirectEnd')
-  @DocsEditable()
-  final int redirectEnd;
-
-  @DomName('PerformanceTiming.redirectStart')
-  @DocsEditable()
-  final int redirectStart;
-
-  @DomName('PerformanceTiming.requestStart')
-  @DocsEditable()
-  final int requestStart;
-
-  @DomName('PerformanceTiming.responseEnd')
-  @DocsEditable()
-  final int responseEnd;
-
-  @DomName('PerformanceTiming.responseStart')
-  @DocsEditable()
-  final int responseStart;
-
-  @DomName('PerformanceTiming.secureConnectionStart')
-  @DocsEditable()
-  final int secureConnectionStart;
-
-  @DomName('PerformanceTiming.unloadEventEnd')
-  @DocsEditable()
-  final int unloadEventEnd;
-
-  @DomName('PerformanceTiming.unloadEventStart')
-  @DocsEditable()
-  final int unloadEventStart;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PermissionStatus')
-@Experimental() // untriaged
-@Native("PermissionStatus")
-class PermissionStatus extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory PermissionStatus._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('PermissionStatus.changeEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> changeEvent =
-      const EventStreamProvider<Event>('change');
-
-  @DomName('PermissionStatus.state')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String state;
-
-  @DomName('PermissionStatus.onchange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onChange => changeEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Permissions')
-@Experimental() // untriaged
-@Native("Permissions")
-class Permissions extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Permissions._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Permissions.query')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future query(Map permission) {
-    var permission_1 = convertDartToNative_Dictionary(permission);
-    return _query_1(permission_1);
-  }
-
-  @JSName('query')
-  @DomName('Permissions.query')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _query_1(permission) native;
-
-  @DomName('Permissions.request')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future request(Map permissions) {
-    var permissions_1 = convertDartToNative_Dictionary(permissions);
-    return _request_1(permissions_1);
-  }
-
-  @JSName('request')
-  @DomName('Permissions.request')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _request_1(permissions) native;
-
-  @DomName('Permissions.requestAll')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future requestAll(List<Map> permissions) native;
-
-  @DomName('Permissions.revoke')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future revoke(Map permission) {
-    var permission_1 = convertDartToNative_Dictionary(permission);
-    return _revoke_1(permission_1);
-  }
-
-  @JSName('revoke')
-  @DomName('Permissions.revoke')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _revoke_1(permission) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Perspective')
-@Experimental() // untriaged
-@Native("Perspective")
-class Perspective extends TransformComponent {
-  // To suppress missing implicit constructor warnings.
-  factory Perspective._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Perspective.Perspective')
-  @DocsEditable()
-  factory Perspective(LengthValue length) {
-    return Perspective._create_1(length);
-  }
-  static Perspective _create_1(length) =>
-      JS('Perspective', 'new Perspective(#)', length);
-
-  @DomName('Perspective.length')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final LengthValue length;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLPictureElement')
-@Experimental() // untriaged
-@Native("HTMLPictureElement")
-class PictureElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory PictureElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  PictureElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Plugin')
-@Experimental() // non-standard
-@Native("Plugin")
-class Plugin extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Plugin._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Plugin.description')
-  @DocsEditable()
-  final String description;
-
-  @DomName('Plugin.filename')
-  @DocsEditable()
-  final String filename;
-
-  @DomName('Plugin.length')
-  @DocsEditable()
-  final int length;
-
-  @DomName('Plugin.name')
-  @DocsEditable()
-  final String name;
-
-  @DomName('Plugin.item')
-  @DocsEditable()
-  MimeType item(int index) native;
-
-  @DomName('Plugin.namedItem')
-  @DocsEditable()
-  MimeType namedItem(String name) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PluginArray')
-@Experimental() // non-standard
-@Native("PluginArray")
-class PluginArray extends Interceptor
-    with ListMixin<Plugin>, ImmutableListMixin<Plugin>
-    implements JavaScriptIndexingBehavior<Plugin>, List<Plugin> {
-  // To suppress missing implicit constructor warnings.
-  factory PluginArray._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('PluginArray.length')
-  @DocsEditable()
-  int get length => JS("int", "#.length", this);
-
-  Plugin operator [](int index) {
-    if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
-      throw new RangeError.index(index, this);
-    return JS("Plugin", "#[#]", this, index);
-  }
-
-  void operator []=(int index, Plugin value) {
-    throw new UnsupportedError("Cannot assign element of immutable List.");
-  }
-  // -- start List<Plugin> mixins.
-  // Plugin is the element type.
-
-  set length(int value) {
-    throw new UnsupportedError("Cannot resize immutable List.");
-  }
-
-  Plugin get first {
-    if (this.length > 0) {
-      return JS('Plugin', '#[0]', this);
-    }
-    throw new StateError("No elements");
-  }
-
-  Plugin get last {
-    int len = this.length;
-    if (len > 0) {
-      return JS('Plugin', '#[#]', this, len - 1);
-    }
-    throw new StateError("No elements");
-  }
-
-  Plugin get single {
-    int len = this.length;
-    if (len == 1) {
-      return JS('Plugin', '#[0]', this);
-    }
-    if (len == 0) throw new StateError("No elements");
-    throw new StateError("More than one element");
-  }
-
-  Plugin elementAt(int index) => this[index];
-  // -- end List<Plugin> mixins.
-
-  @DomName('PluginArray.item')
-  @DocsEditable()
-  Plugin item(int index) native;
-
-  @DomName('PluginArray.namedItem')
-  @DocsEditable()
-  Plugin namedItem(String name) native;
-
-  @DomName('PluginArray.refresh')
-  @DocsEditable()
-  void refresh(bool reload) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PointerEvent')
-@Experimental() // untriaged
-@Native("PointerEvent")
-class PointerEvent extends MouseEvent {
-  // To suppress missing implicit constructor warnings.
-  factory PointerEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('PointerEvent.PointerEvent')
-  @DocsEditable()
-  factory PointerEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return PointerEvent._create_1(type, eventInitDict_1);
-    }
-    return PointerEvent._create_2(type);
-  }
-  static PointerEvent _create_1(type, eventInitDict) =>
-      JS('PointerEvent', 'new PointerEvent(#,#)', type, eventInitDict);
-  static PointerEvent _create_2(type) =>
-      JS('PointerEvent', 'new PointerEvent(#)', type);
-
-  @DomName('PointerEvent.height')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double height;
-
-  @DomName('PointerEvent.isPrimary')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool isPrimary;
-
-  @DomName('PointerEvent.pointerId')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int pointerId;
-
-  @DomName('PointerEvent.pointerType')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String pointerType;
-
-  @DomName('PointerEvent.pressure')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double pressure;
-
-  @DomName('PointerEvent.tiltX')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int tiltX;
-
-  @DomName('PointerEvent.tiltY')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int tiltY;
-
-  @DomName('PointerEvent.width')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double width;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PopStateEvent')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Native("PopStateEvent")
-class PopStateEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory PopStateEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('PopStateEvent.PopStateEvent')
-  @DocsEditable()
-  factory PopStateEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return PopStateEvent._create_1(type, eventInitDict_1);
-    }
-    return PopStateEvent._create_2(type);
-  }
-  static PopStateEvent _create_1(type, eventInitDict) =>
-      JS('PopStateEvent', 'new PopStateEvent(#,#)', type, eventInitDict);
-  static PopStateEvent _create_2(type) =>
-      JS('PopStateEvent', 'new PopStateEvent(#)', type);
-
-  @DomName('PopStateEvent.state')
-  @DocsEditable()
-  dynamic get state =>
-      convertNativeToDart_SerializedScriptValue(this._get_state);
-  @JSName('state')
-  @DomName('PopStateEvent.state')
-  @DocsEditable()
-  @annotation_Creates_SerializedScriptValue
-  @annotation_Returns_SerializedScriptValue
-  final dynamic _get_state;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('PositionCallback')
-@Unstable()
-typedef void _PositionCallback(Geoposition position);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PositionError')
-@Unstable()
-@Native("PositionError")
-class PositionError extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory PositionError._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('PositionError.PERMISSION_DENIED')
-  @DocsEditable()
-  static const int PERMISSION_DENIED = 1;
-
-  @DomName('PositionError.POSITION_UNAVAILABLE')
-  @DocsEditable()
-  static const int POSITION_UNAVAILABLE = 2;
-
-  @DomName('PositionError.TIMEOUT')
-  @DocsEditable()
-  static const int TIMEOUT = 3;
-
-  @DomName('PositionError.code')
-  @DocsEditable()
-  final int code;
-
-  @DomName('PositionError.message')
-  @DocsEditable()
-  final String message;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('PositionErrorCallback')
-@Unstable()
-typedef void _PositionErrorCallback(PositionError error);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PositionSensorVRDevice')
-@Experimental() // untriaged
-@Native("PositionSensorVRDevice")
-class PositionSensorVRDevice extends VRDevice {
-  // To suppress missing implicit constructor warnings.
-  factory PositionSensorVRDevice._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('PositionSensorVRDevice.getImmediateState')
-  @DocsEditable()
-  @Experimental() // untriaged
-  VRPositionState getImmediateState() native;
-
-  @DomName('PositionSensorVRDevice.getState')
-  @DocsEditable()
-  @Experimental() // untriaged
-  VRPositionState getState() native;
-
-  @DomName('PositionSensorVRDevice.resetSensor')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void resetSensor() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PositionValue')
-@Experimental() // untriaged
-@Native("PositionValue")
-class PositionValue extends StyleValue {
-  // To suppress missing implicit constructor warnings.
-  factory PositionValue._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('PositionValue.PositionValue')
-  @DocsEditable()
-  factory PositionValue(LengthValue x, LengthValue y) {
-    return PositionValue._create_1(x, y);
-  }
-  static PositionValue _create_1(x, y) =>
-      JS('PositionValue', 'new PositionValue(#,#)', x, y);
-
-  @DomName('PositionValue.x')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final LengthValue x;
-
-  @DomName('PositionValue.y')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final LengthValue y;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLPreElement')
-@Native("HTMLPreElement")
-class PreElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory PreElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLPreElement.HTMLPreElement')
-  @DocsEditable()
-  factory PreElement() => JS('returns:PreElement;creates:PreElement;new:true',
-      '#.createElement(#)', document, "pre");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  PreElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Presentation')
-@Experimental() // untriaged
-@Native("Presentation")
-class Presentation extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Presentation._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Presentation.defaultRequest')
-  @DocsEditable()
-  @Experimental() // untriaged
-  PresentationRequest defaultRequest;
-
-  @DomName('Presentation.receiver')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final PresentationReceiver receiver;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PresentationAvailability')
-@Experimental() // untriaged
-@Native("PresentationAvailability")
-class PresentationAvailability extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory PresentationAvailability._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('PresentationAvailability.changeEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> changeEvent =
-      const EventStreamProvider<Event>('change');
-
-  @DomName('PresentationAvailability.value')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool value;
-
-  @DomName('PresentationAvailability.onchange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onChange => changeEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PresentationConnection')
-@Experimental() // untriaged
-@Native("PresentationConnection")
-class PresentationConnection extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory PresentationConnection._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('PresentationConnection.messageEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MessageEvent> messageEvent =
-      const EventStreamProvider<MessageEvent>('message');
-
-  @DomName('PresentationConnection.binaryType')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String binaryType;
-
-  @DomName('PresentationConnection.id')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String id;
-
-  @DomName('PresentationConnection.state')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String state;
-
-  @DomName('PresentationConnection.close')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void close() native;
-
-  @DomName('PresentationConnection.send')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void send(data_OR_message) native;
-
-  @DomName('PresentationConnection.terminate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void terminate() native;
-
-  @DomName('PresentationConnection.onmessage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PresentationConnectionAvailableEvent')
-@Experimental() // untriaged
-@Native("PresentationConnectionAvailableEvent")
-class PresentationConnectionAvailableEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory PresentationConnectionAvailableEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName(
-      'PresentationConnectionAvailableEvent.PresentationConnectionAvailableEvent')
-  @DocsEditable()
-  factory PresentationConnectionAvailableEvent(String type, Map eventInitDict) {
-    var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-    return PresentationConnectionAvailableEvent._create_1(
-        type, eventInitDict_1);
-  }
-  static PresentationConnectionAvailableEvent _create_1(type, eventInitDict) =>
-      JS('PresentationConnectionAvailableEvent',
-          'new PresentationConnectionAvailableEvent(#,#)', type, eventInitDict);
-
-  @DomName('PresentationConnectionAvailableEvent.connection')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final PresentationConnection connection;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PresentationConnectionCloseEvent')
-@Experimental() // untriaged
-@Native("PresentationConnectionCloseEvent")
-class PresentationConnectionCloseEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory PresentationConnectionCloseEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('PresentationConnectionCloseEvent.PresentationConnectionCloseEvent')
-  @DocsEditable()
-  factory PresentationConnectionCloseEvent(String type, Map eventInitDict) {
-    var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-    return PresentationConnectionCloseEvent._create_1(type, eventInitDict_1);
-  }
-  static PresentationConnectionCloseEvent _create_1(type, eventInitDict) => JS(
-      'PresentationConnectionCloseEvent',
-      'new PresentationConnectionCloseEvent(#,#)',
-      type,
-      eventInitDict);
-
-  @DomName('PresentationConnectionCloseEvent.message')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String message;
-
-  @DomName('PresentationConnectionCloseEvent.reason')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String reason;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PresentationReceiver')
-@Experimental() // untriaged
-@Native("PresentationReceiver")
-class PresentationReceiver extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory PresentationReceiver._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('PresentationReceiver.getConnection')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future getConnection() native;
-
-  @DomName('PresentationReceiver.getConnections')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future getConnections() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PresentationRequest')
-@Experimental() // untriaged
-@Native("PresentationRequest")
-class PresentationRequest extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory PresentationRequest._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('PresentationRequest.PresentationRequest')
-  @DocsEditable()
-  factory PresentationRequest(String url) {
-    return PresentationRequest._create_1(url);
-  }
-  static PresentationRequest _create_1(url) =>
-      JS('PresentationRequest', 'new PresentationRequest(#)', url);
-
-  @DomName('PresentationRequest.getAvailability')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future getAvailability() native;
-
-  @DomName('PresentationRequest.reconnect')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future reconnect(String id) native;
-
-  @DomName('PresentationRequest.start')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future start() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ProcessingInstruction')
-@Unstable()
-@Native("ProcessingInstruction")
-class ProcessingInstruction extends CharacterData {
-  // To suppress missing implicit constructor warnings.
-  factory ProcessingInstruction._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('ProcessingInstruction.sheet')
-  @DocsEditable()
-  @Experimental() // non-standard
-  final StyleSheet sheet;
-
-  @DomName('ProcessingInstruction.target')
-  @DocsEditable()
-  final String target;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLProgressElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Native("HTMLProgressElement")
-class ProgressElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory ProgressElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLProgressElement.HTMLProgressElement')
-  @DocsEditable()
-  factory ProgressElement() => document.createElement("progress");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  ProgressElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported => Element.isTagSupported('progress');
-
-  @DomName('HTMLProgressElement.labels')
-  @DocsEditable()
-  @Unstable()
-  @Returns('NodeList|Null')
-  @Creates('NodeList')
-  final List<Node> labels;
-
-  @DomName('HTMLProgressElement.max')
-  @DocsEditable()
-  num max;
-
-  @DomName('HTMLProgressElement.position')
-  @DocsEditable()
-  final double position;
-
-  @DomName('HTMLProgressElement.value')
-  @DocsEditable()
-  num value;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ProgressEvent')
-@Native("ProgressEvent")
-class ProgressEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory ProgressEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('ProgressEvent.ProgressEvent')
-  @DocsEditable()
-  factory ProgressEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return ProgressEvent._create_1(type, eventInitDict_1);
-    }
-    return ProgressEvent._create_2(type);
-  }
-  static ProgressEvent _create_1(type, eventInitDict) =>
-      JS('ProgressEvent', 'new ProgressEvent(#,#)', type, eventInitDict);
-  static ProgressEvent _create_2(type) =>
-      JS('ProgressEvent', 'new ProgressEvent(#)', type);
-
-  @DomName('ProgressEvent.lengthComputable')
-  @DocsEditable()
-  final bool lengthComputable;
-
-  @DomName('ProgressEvent.loaded')
-  @DocsEditable()
-  final int loaded;
-
-  @DomName('ProgressEvent.total')
-  @DocsEditable()
-  final int total;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PromiseRejectionEvent')
-@Experimental() // untriaged
-@Native("PromiseRejectionEvent")
-class PromiseRejectionEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory PromiseRejectionEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('PromiseRejectionEvent.PromiseRejectionEvent')
-  @DocsEditable()
-  factory PromiseRejectionEvent(String type, Map eventInitDict) {
-    var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-    return PromiseRejectionEvent._create_1(type, eventInitDict_1);
-  }
-  static PromiseRejectionEvent _create_1(type, eventInitDict) => JS(
-      'PromiseRejectionEvent',
-      'new PromiseRejectionEvent(#,#)',
-      type,
-      eventInitDict);
-
-  @DomName('PromiseRejectionEvent.promise')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Future promise;
-
-  @DomName('PromiseRejectionEvent.reason')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Object reason;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PushEvent')
-@Experimental() // untriaged
-@Native("PushEvent")
-class PushEvent extends ExtendableEvent {
-  // To suppress missing implicit constructor warnings.
-  factory PushEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('PushEvent.PushEvent')
-  @DocsEditable()
-  factory PushEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return PushEvent._create_1(type, eventInitDict_1);
-    }
-    return PushEvent._create_2(type);
-  }
-  static PushEvent _create_1(type, eventInitDict) =>
-      JS('PushEvent', 'new PushEvent(#,#)', type, eventInitDict);
-  static PushEvent _create_2(type) => JS('PushEvent', 'new PushEvent(#)', type);
-
-  @DomName('PushEvent.data')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final PushMessageData data;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PushManager')
-@Experimental() // untriaged
-@Native("PushManager")
-class PushManager extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory PushManager._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('PushManager.getSubscription')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future getSubscription() native;
-
-  @DomName('PushManager.permissionState')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future permissionState([Map options]) {
-    if (options != null) {
-      var options_1 = convertDartToNative_Dictionary(options);
-      return _permissionState_1(options_1);
-    }
-    return _permissionState_2();
-  }
-
-  @JSName('permissionState')
-  @DomName('PushManager.permissionState')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _permissionState_1(options) native;
-  @JSName('permissionState')
-  @DomName('PushManager.permissionState')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _permissionState_2() native;
-
-  @DomName('PushManager.subscribe')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future subscribe([Map options]) {
-    if (options != null) {
-      var options_1 = convertDartToNative_Dictionary(options);
-      return _subscribe_1(options_1);
-    }
-    return _subscribe_2();
-  }
-
-  @JSName('subscribe')
-  @DomName('PushManager.subscribe')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _subscribe_1(options) native;
-  @JSName('subscribe')
-  @DomName('PushManager.subscribe')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _subscribe_2() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PushMessageData')
-@Experimental() // untriaged
-@Native("PushMessageData")
-class PushMessageData extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory PushMessageData._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('PushMessageData.arrayBuffer')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ByteBuffer arrayBuffer() native;
-
-  @DomName('PushMessageData.blob')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Blob blob() native;
-
-  @DomName('PushMessageData.json')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object json() native;
-
-  @DomName('PushMessageData.text')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String text() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PushSubscription')
-@Experimental() // untriaged
-@Native("PushSubscription")
-class PushSubscription extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory PushSubscription._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('PushSubscription.endpoint')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String endpoint;
-
-  @DomName('PushSubscription.getKey')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ByteBuffer getKey(String name) native;
-
-  @DomName('PushSubscription.unsubscribe')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future unsubscribe() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLQuoteElement')
-@Native("HTMLQuoteElement")
-class QuoteElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory QuoteElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLQuoteElement.HTMLQuoteElement')
-  @DocsEditable()
-  factory QuoteElement() => JS(
-      'returns:QuoteElement;creates:QuoteElement;new:true',
-      '#.createElement(#)',
-      document,
-      "q");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  QuoteElement.created() : super.created();
-
-  @DomName('HTMLQuoteElement.cite')
-  @DocsEditable()
-  String cite;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('RTCPeerConnectionErrorCallback')
-@Experimental() // untriaged
-typedef void RtcPeerConnectionErrorCallback(DomException exception);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('RTCSessionDescriptionCallback')
-// http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCSessionDescription
-@Experimental()
-typedef void _RtcSessionDescriptionCallback(RtcSessionDescription sdp);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('RTCStatsCallback')
-// http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCStatsCallback
-@Experimental()
-typedef void RtcStatsCallback(RtcStatsResponse response);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('Range')
-@Unstable()
-@Native("Range")
-class Range extends Interceptor {
-  factory Range() => document.createRange();
-
-  factory Range.fromPoint(Point point) =>
-      document._caretRangeFromPoint(point.x, point.y);
-  // To suppress missing implicit constructor warnings.
-  factory Range._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Range.END_TO_END')
-  @DocsEditable()
-  static const int END_TO_END = 2;
-
-  @DomName('Range.END_TO_START')
-  @DocsEditable()
-  static const int END_TO_START = 3;
-
-  @DomName('Range.START_TO_END')
-  @DocsEditable()
-  static const int START_TO_END = 1;
-
-  @DomName('Range.START_TO_START')
-  @DocsEditable()
-  static const int START_TO_START = 0;
-
-  @DomName('Range.collapsed')
-  @DocsEditable()
-  final bool collapsed;
-
-  @DomName('Range.commonAncestorContainer')
-  @DocsEditable()
-  final Node commonAncestorContainer;
-
-  @DomName('Range.endContainer')
-  @DocsEditable()
-  final Node endContainer;
-
-  @DomName('Range.endOffset')
-  @DocsEditable()
-  final int endOffset;
-
-  @DomName('Range.startContainer')
-  @DocsEditable()
-  final Node startContainer;
-
-  @DomName('Range.startOffset')
-  @DocsEditable()
-  final int startOffset;
-
-  @DomName('Range.cloneContents')
-  @DocsEditable()
-  DocumentFragment cloneContents() native;
-
-  @DomName('Range.cloneRange')
-  @DocsEditable()
-  Range cloneRange() native;
-
-  @DomName('Range.collapse')
-  @DocsEditable()
-  void collapse([bool toStart]) native;
-
-  @DomName('Range.compareBoundaryPoints')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int compareBoundaryPoints(int how, Range sourceRange) native;
-
-  @DomName('Range.comparePoint')
-  @DocsEditable()
-  int comparePoint(Node node, int offset) native;
-
-  @DomName('Range.createContextualFragment')
-  @DocsEditable()
-  DocumentFragment createContextualFragment(String fragment) native;
-
-  @DomName('Range.deleteContents')
-  @DocsEditable()
-  void deleteContents() native;
-
-  @DomName('Range.detach')
-  @DocsEditable()
-  void detach() native;
-
-  @DomName('Range.expand')
-  @DocsEditable()
-  @Experimental() // non-standard
-  void expand(String unit) native;
-
-  @DomName('Range.extractContents')
-  @DocsEditable()
-  DocumentFragment extractContents() native;
-
-  @DomName('Range.getBoundingClientRect')
-  @DocsEditable()
-  Rectangle getBoundingClientRect() native;
-
-  @DomName('Range.getClientRects')
-  @DocsEditable()
-  @Returns('_ClientRectList|Null')
-  @Creates('_ClientRectList')
-  List<Rectangle> getClientRects() native;
-
-  @DomName('Range.insertNode')
-  @DocsEditable()
-  void insertNode(Node node) native;
-
-  @DomName('Range.isPointInRange')
-  @DocsEditable()
-  bool isPointInRange(Node node, int offset) native;
-
-  @DomName('Range.selectNode')
-  @DocsEditable()
-  void selectNode(Node node) native;
-
-  @DomName('Range.selectNodeContents')
-  @DocsEditable()
-  void selectNodeContents(Node node) native;
-
-  @DomName('Range.setEnd')
-  @DocsEditable()
-  void setEnd(Node node, int offset) native;
-
-  @DomName('Range.setEndAfter')
-  @DocsEditable()
-  void setEndAfter(Node node) native;
-
-  @DomName('Range.setEndBefore')
-  @DocsEditable()
-  void setEndBefore(Node node) native;
-
-  @DomName('Range.setStart')
-  @DocsEditable()
-  void setStart(Node node, int offset) native;
-
-  @DomName('Range.setStartAfter')
-  @DocsEditable()
-  void setStartAfter(Node node) native;
-
-  @DomName('Range.setStartBefore')
-  @DocsEditable()
-  void setStartBefore(Node node) native;
-
-  @DomName('Range.surroundContents')
-  @DocsEditable()
-  void surroundContents(Node newParent) native;
-
-  /**
-   * Checks if createContextualFragment is supported.
-   *
-   * See also:
-   *
-   * * [createContextualFragment]
-   */
-  static bool get supportsCreateContextualFragment =>
-      JS('bool', '("createContextualFragment" in window.Range.prototype)');
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ReadableByteStream')
-@Experimental() // untriaged
-@Native("ReadableByteStream")
-class ReadableByteStream extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory ReadableByteStream._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('ReadableByteStream.cancel')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future cancel([Object reason]) native;
-
-  @DomName('ReadableByteStream.getReader')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ReadableByteStreamReader getReader() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ReadableByteStreamReader')
-@Experimental() // untriaged
-@Native("ReadableByteStreamReader")
-class ReadableByteStreamReader extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory ReadableByteStreamReader._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('ReadableByteStreamReader.closed')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Future closed;
-
-  @DomName('ReadableByteStreamReader.cancel')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future cancel([Object reason]) native;
-
-  @DomName('ReadableByteStreamReader.read')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future read() native;
-
-  @DomName('ReadableByteStreamReader.releaseLock')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void releaseLock() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ReadableStreamReader')
-@Experimental() // untriaged
-@Native("ReadableStreamReader")
-class ReadableStreamReader extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory ReadableStreamReader._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('ReadableStreamReader.closed')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Future closed;
-
-  @DomName('ReadableStreamReader.cancel')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future cancel([Object reason]) native;
-
-  @DomName('ReadableStreamReader.read')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future read() native;
-
-  @DomName('ReadableStreamReader.releaseLock')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void releaseLock() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('RelatedEvent')
-@Experimental() // untriaged
-@Native("RelatedEvent")
-class RelatedEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory RelatedEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('RelatedEvent.RelatedEvent')
-  @DocsEditable()
-  factory RelatedEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return RelatedEvent._create_1(type, eventInitDict_1);
-    }
-    return RelatedEvent._create_2(type);
-  }
-  static RelatedEvent _create_1(type, eventInitDict) =>
-      JS('RelatedEvent', 'new RelatedEvent(#,#)', type, eventInitDict);
-  static RelatedEvent _create_2(type) =>
-      JS('RelatedEvent', 'new RelatedEvent(#)', type);
-
-  @DomName('RelatedEvent.relatedTarget')
-  @DocsEditable()
-  @Experimental() // untriaged
-  EventTarget get relatedTarget =>
-      _convertNativeToDart_EventTarget(this._get_relatedTarget);
-  @JSName('relatedTarget')
-  @DomName('RelatedEvent.relatedTarget')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final dynamic _get_relatedTarget;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('RequestAnimationFrameCallback')
-typedef void RequestAnimationFrameCallback(num highResTime);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Rotation')
-@Experimental() // untriaged
-@Native("Rotation")
-class Rotation extends TransformComponent {
-  // To suppress missing implicit constructor warnings.
-  factory Rotation._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Rotation.Rotation')
-  @DocsEditable()
-  factory Rotation(num angle, [num x, num y, num z]) {
-    if ((angle is num) && x == null && y == null && z == null) {
-      return Rotation._create_1(angle);
-    }
-    if ((z is num) && (y is num) && (x is num) && (angle is num)) {
-      return Rotation._create_2(angle, x, y, z);
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-  static Rotation _create_1(angle) => JS('Rotation', 'new Rotation(#)', angle);
-  static Rotation _create_2(angle, x, y, z) =>
-      JS('Rotation', 'new Rotation(#,#,#,#)', angle, x, y, z);
-
-  @DomName('Rotation.angle')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double angle;
-
-  @DomName('Rotation.x')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double x;
-
-  @DomName('Rotation.y')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double y;
-
-  @DomName('Rotation.z')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double z;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('RTCCertificate')
-@Experimental() // untriaged
-@Native("RTCCertificate")
-class RtcCertificate extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory RtcCertificate._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('RTCCertificate.expires')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int expires;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('RTCDataChannel')
-// http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCDataChannel
-@Experimental()
-@Native("RTCDataChannel,DataChannel")
-class RtcDataChannel extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory RtcDataChannel._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `close` events to event
-   * handlers that are not necessarily instances of [RtcDataChannel].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('RTCDataChannel.closeEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> closeEvent =
-      const EventStreamProvider<Event>('close');
-
-  /**
-   * Static factory designed to expose `error` events to event
-   * handlers that are not necessarily instances of [RtcDataChannel].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('RTCDataChannel.errorEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> errorEvent =
-      const EventStreamProvider<Event>('error');
-
-  /**
-   * Static factory designed to expose `message` events to event
-   * handlers that are not necessarily instances of [RtcDataChannel].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('RTCDataChannel.messageEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MessageEvent> messageEvent =
-      const EventStreamProvider<MessageEvent>('message');
-
-  /**
-   * Static factory designed to expose `open` events to event
-   * handlers that are not necessarily instances of [RtcDataChannel].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('RTCDataChannel.openEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> openEvent =
-      const EventStreamProvider<Event>('open');
-
-  @DomName('RTCDataChannel.binaryType')
-  @DocsEditable()
-  String binaryType;
-
-  @DomName('RTCDataChannel.bufferedAmount')
-  @DocsEditable()
-  final int bufferedAmount;
-
-  @DomName('RTCDataChannel.bufferedAmountLowThreshold')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int bufferedAmountLowThreshold;
-
-  @DomName('RTCDataChannel.id')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int id;
-
-  @DomName('RTCDataChannel.label')
-  @DocsEditable()
-  final String label;
-
-  @DomName('RTCDataChannel.maxRetransmitTime')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int maxRetransmitTime;
-
-  @DomName('RTCDataChannel.maxRetransmits')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int maxRetransmits;
-
-  @DomName('RTCDataChannel.negotiated')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool negotiated;
-
-  @DomName('RTCDataChannel.ordered')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool ordered;
-
-  @DomName('RTCDataChannel.protocol')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String protocol;
-
-  @DomName('RTCDataChannel.readyState')
-  @DocsEditable()
-  final String readyState;
-
-  @DomName('RTCDataChannel.reliable')
-  @DocsEditable()
-  final bool reliable;
-
-  @DomName('RTCDataChannel.close')
-  @DocsEditable()
-  void close() native;
-
-  @DomName('RTCDataChannel.send')
-  @DocsEditable()
-  void send(data) native;
-
-  @JSName('send')
-  @DomName('RTCDataChannel.send')
-  @DocsEditable()
-  void sendBlob(Blob data) native;
-
-  @JSName('send')
-  @DomName('RTCDataChannel.send')
-  @DocsEditable()
-  void sendByteBuffer(ByteBuffer data) native;
-
-  @JSName('send')
-  @DomName('RTCDataChannel.send')
-  @DocsEditable()
-  void sendString(String data) native;
-
-  @JSName('send')
-  @DomName('RTCDataChannel.send')
-  @DocsEditable()
-  void sendTypedData(TypedData data) native;
-
-  /// Stream of `close` events handled by this [RtcDataChannel].
-  @DomName('RTCDataChannel.onclose')
-  @DocsEditable()
-  Stream<Event> get onClose => closeEvent.forTarget(this);
-
-  /// Stream of `error` events handled by this [RtcDataChannel].
-  @DomName('RTCDataChannel.onerror')
-  @DocsEditable()
-  Stream<Event> get onError => errorEvent.forTarget(this);
-
-  /// Stream of `message` events handled by this [RtcDataChannel].
-  @DomName('RTCDataChannel.onmessage')
-  @DocsEditable()
-  Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
-
-  /// Stream of `open` events handled by this [RtcDataChannel].
-  @DomName('RTCDataChannel.onopen')
-  @DocsEditable()
-  Stream<Event> get onOpen => openEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('RTCDataChannelEvent')
-// http://dev.w3.org/2011/webrtc/editor/webrtc.html#rtcdatachannelevent
-@Experimental()
-@Native("RTCDataChannelEvent")
-class RtcDataChannelEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory RtcDataChannelEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('RTCDataChannelEvent.channel')
-  @DocsEditable()
-  final RtcDataChannel channel;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('RTCDTMFSender')
-// http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCDTMFSender
-@Experimental()
-@Native("RTCDTMFSender")
-class RtcDtmfSender extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory RtcDtmfSender._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `tonechange` events to event
-   * handlers that are not necessarily instances of [RtcDtmfSender].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('RTCDTMFSender.tonechangeEvent')
-  @DocsEditable()
-  static const EventStreamProvider<RtcDtmfToneChangeEvent> toneChangeEvent =
-      const EventStreamProvider<RtcDtmfToneChangeEvent>('tonechange');
-
-  @JSName('canInsertDTMF')
-  @DomName('RTCDTMFSender.canInsertDTMF')
-  @DocsEditable()
-  final bool canInsertDtmf;
-
-  @DomName('RTCDTMFSender.duration')
-  @DocsEditable()
-  final int duration;
-
-  @DomName('RTCDTMFSender.interToneGap')
-  @DocsEditable()
-  final int interToneGap;
-
-  @DomName('RTCDTMFSender.toneBuffer')
-  @DocsEditable()
-  final String toneBuffer;
-
-  @DomName('RTCDTMFSender.track')
-  @DocsEditable()
-  final MediaStreamTrack track;
-
-  @JSName('insertDTMF')
-  @DomName('RTCDTMFSender.insertDTMF')
-  @DocsEditable()
-  void insertDtmf(String tones, [int duration, int interToneGap]) native;
-
-  /// Stream of `tonechange` events handled by this [RtcDtmfSender].
-  @DomName('RTCDTMFSender.ontonechange')
-  @DocsEditable()
-  Stream<RtcDtmfToneChangeEvent> get onToneChange =>
-      toneChangeEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('RTCDTMFToneChangeEvent')
-// http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCDTMFToneChangeEvent
-@Experimental()
-@Native("RTCDTMFToneChangeEvent")
-class RtcDtmfToneChangeEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory RtcDtmfToneChangeEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('RTCDTMFToneChangeEvent.RTCDTMFToneChangeEvent')
-  @DocsEditable()
-  factory RtcDtmfToneChangeEvent(String type, Map eventInitDict) {
-    var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-    return RtcDtmfToneChangeEvent._create_1(type, eventInitDict_1);
-  }
-  static RtcDtmfToneChangeEvent _create_1(type, eventInitDict) => JS(
-      'RtcDtmfToneChangeEvent',
-      'new RTCDTMFToneChangeEvent(#,#)',
-      type,
-      eventInitDict);
-
-  @DomName('RTCDTMFToneChangeEvent.tone')
-  @DocsEditable()
-  final String tone;
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('RTCIceCandidate')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@Experimental()
-// http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCIceCandidate
-@Native("RTCIceCandidate,mozRTCIceCandidate")
-class RtcIceCandidate extends Interceptor {
-  factory RtcIceCandidate(Map dictionary) {
-    // TODO(efortuna): Remove this check if when you can actually construct with
-    // the unprefixed RTCIceCandidate in Firefox (currently both are defined,
-    // but one can't be used as a constructor).
-    var constructorName = JS(
-        '',
-        'window[#]',
-        Device.isFirefox
-            ? '${Device.propertyPrefix}RTCIceCandidate'
-            : 'RTCIceCandidate');
-    return JS('RtcIceCandidate', 'new #(#)', constructorName,
-        convertDartToNative_SerializedScriptValue(dictionary));
-  }
-  // To suppress missing implicit constructor warnings.
-  factory RtcIceCandidate._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('RTCIceCandidate.candidate')
-  @DocsEditable()
-  String candidate;
-
-  @DomName('RTCIceCandidate.sdpMLineIndex')
-  @DocsEditable()
-  int sdpMLineIndex;
-
-  @DomName('RTCIceCandidate.sdpMid')
-  @DocsEditable()
-  String sdpMid;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('RTCIceCandidateEvent')
-// http://dev.w3.org/2011/webrtc/editor/webrtc.html#rtcicecandidate-type
-@Experimental()
-@Native("RTCIceCandidateEvent,RTCPeerConnectionIceEvent")
-class RtcIceCandidateEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory RtcIceCandidateEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('RTCIceCandidateEvent.candidate')
-  @DocsEditable()
-  final RtcIceCandidate candidate;
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('RTCPeerConnection')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@Experimental()
-// http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCPeerConnection
-@Native("RTCPeerConnection,webkitRTCPeerConnection,mozRTCPeerConnection")
-class RtcPeerConnection extends EventTarget {
-  factory RtcPeerConnection(Map rtcIceServers, [Map mediaConstraints]) {
-    var constructorName = JS('RtcPeerConnection', 'window[#]',
-        '${Device.propertyPrefix}RTCPeerConnection');
-    if (mediaConstraints != null) {
-      return JS(
-          'RtcPeerConnection',
-          'new #(#,#)',
-          constructorName,
-          convertDartToNative_SerializedScriptValue(rtcIceServers),
-          convertDartToNative_SerializedScriptValue(mediaConstraints));
-    } else {
-      return JS('RtcPeerConnection', 'new #(#)', constructorName,
-          convertDartToNative_SerializedScriptValue(rtcIceServers));
-    }
-  }
-
-  /**
-   * Checks if Real Time Communication (RTC) APIs are supported and enabled on
-   * the current platform.
-   */
-  static bool get supported {
-    // Currently in Firefox some of the RTC elements are defined but throw an
-    // error unless the user has specifically enabled them in their
-    // about:config. So we have to construct an element to actually test if RTC
-    // is supported at the given time.
-    try {
-      new RtcPeerConnection({
-        "iceServers": [
-          {"url": "stun:localhost"}
-        ]
-      });
-      return true;
-    } catch (_) {
-      return false;
-    }
-    return false;
-  }
-
-  Future<RtcSessionDescription> createOffer([Map mediaConstraints]) {
-    var completer = new Completer<RtcSessionDescription>();
-    _createOffer((value) {
-      completer.complete(value);
-    }, (error) {
-      completer.completeError(error);
-    }, mediaConstraints);
-    return completer.future;
-  }
-
-  Future<RtcSessionDescription> createAnswer([Map mediaConstraints]) {
-    var completer = new Completer<RtcSessionDescription>();
-    _createAnswer((value) {
-      completer.complete(value);
-    }, (error) {
-      completer.completeError(error);
-    }, mediaConstraints);
-    return completer.future;
-  }
-
-  @DomName('RTCPeerConnection.getStats')
-  Future<RtcStatsResponse> getStats(MediaStreamTrack selector) {
-    var completer = new Completer<RtcStatsResponse>();
-    _getStats((value) {
-      completer.complete(value);
-    }, selector);
-    return completer.future;
-  }
-
-  @DomName('RTCPeerConnection.generateCertificate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static Future generateCertificate(/*AlgorithmIdentifier*/ keygenAlgorithm) =>
-      JS('dynamic', 'generateCertificate(#)', keygenAlgorithm);
-
-  // To suppress missing implicit constructor warnings.
-  factory RtcPeerConnection._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `addstream` events to event
-   * handlers that are not necessarily instances of [RtcPeerConnection].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('RTCPeerConnection.addstreamEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MediaStreamEvent> addStreamEvent =
-      const EventStreamProvider<MediaStreamEvent>('addstream');
-
-  /**
-   * Static factory designed to expose `datachannel` events to event
-   * handlers that are not necessarily instances of [RtcPeerConnection].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('RTCPeerConnection.datachannelEvent')
-  @DocsEditable()
-  static const EventStreamProvider<RtcDataChannelEvent> dataChannelEvent =
-      const EventStreamProvider<RtcDataChannelEvent>('datachannel');
-
-  /**
-   * Static factory designed to expose `icecandidate` events to event
-   * handlers that are not necessarily instances of [RtcPeerConnection].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('RTCPeerConnection.icecandidateEvent')
-  @DocsEditable()
-  static const EventStreamProvider<RtcIceCandidateEvent> iceCandidateEvent =
-      const EventStreamProvider<RtcIceCandidateEvent>('icecandidate');
-
-  /**
-   * Static factory designed to expose `iceconnectionstatechange` events to event
-   * handlers that are not necessarily instances of [RtcPeerConnection].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('RTCPeerConnection.iceconnectionstatechangeEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> iceConnectionStateChangeEvent =
-      const EventStreamProvider<Event>('iceconnectionstatechange');
-
-  /**
-   * Static factory designed to expose `negotiationneeded` events to event
-   * handlers that are not necessarily instances of [RtcPeerConnection].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('RTCPeerConnection.negotiationneededEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> negotiationNeededEvent =
-      const EventStreamProvider<Event>('negotiationneeded');
-
-  /**
-   * Static factory designed to expose `removestream` events to event
-   * handlers that are not necessarily instances of [RtcPeerConnection].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('RTCPeerConnection.removestreamEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MediaStreamEvent> removeStreamEvent =
-      const EventStreamProvider<MediaStreamEvent>('removestream');
-
-  /**
-   * Static factory designed to expose `signalingstatechange` events to event
-   * handlers that are not necessarily instances of [RtcPeerConnection].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('RTCPeerConnection.signalingstatechangeEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> signalingStateChangeEvent =
-      const EventStreamProvider<Event>('signalingstatechange');
-
-  @DomName('RTCPeerConnection.iceConnectionState')
-  @DocsEditable()
-  final String iceConnectionState;
-
-  @DomName('RTCPeerConnection.iceGatheringState')
-  @DocsEditable()
-  final String iceGatheringState;
-
-  @DomName('RTCPeerConnection.localDescription')
-  @DocsEditable()
-  final RtcSessionDescription localDescription;
-
-  @DomName('RTCPeerConnection.remoteDescription')
-  @DocsEditable()
-  final RtcSessionDescription remoteDescription;
-
-  @DomName('RTCPeerConnection.signalingState')
-  @DocsEditable()
-  final String signalingState;
-
-  @DomName('RTCPeerConnection.addIceCandidate')
-  @DocsEditable()
-  Future addIceCandidate(candidate,
-      [VoidCallback successCallback,
-      RtcPeerConnectionErrorCallback failureCallback]) native;
-
-  @DomName('RTCPeerConnection.addStream')
-  @DocsEditable()
-  void addStream(MediaStream stream, [Map mediaConstraints]) {
-    if (mediaConstraints != null) {
-      var mediaConstraints_1 = convertDartToNative_Dictionary(mediaConstraints);
-      _addStream_1(stream, mediaConstraints_1);
-      return;
-    }
-    _addStream_2(stream);
-    return;
-  }
-
-  @JSName('addStream')
-  @DomName('RTCPeerConnection.addStream')
-  @DocsEditable()
-  void _addStream_1(MediaStream stream, mediaConstraints) native;
-  @JSName('addStream')
-  @DomName('RTCPeerConnection.addStream')
-  @DocsEditable()
-  void _addStream_2(MediaStream stream) native;
-
-  @DomName('RTCPeerConnection.close')
-  @DocsEditable()
-  void close() native;
-
-  @DomName('RTCPeerConnection.createAnswer')
-  @DocsEditable()
-  void _createAnswer(_RtcSessionDescriptionCallback successCallback,
-      RtcPeerConnectionErrorCallback failureCallback,
-      [Map mediaConstraints]) {
-    if (mediaConstraints != null) {
-      var mediaConstraints_1 = convertDartToNative_Dictionary(mediaConstraints);
-      _createAnswer_1(successCallback, failureCallback, mediaConstraints_1);
-      return;
-    }
-    _createAnswer_2(successCallback, failureCallback);
-    return;
-  }
-
-  @JSName('createAnswer')
-  @DomName('RTCPeerConnection.createAnswer')
-  @DocsEditable()
-  void _createAnswer_1(_RtcSessionDescriptionCallback successCallback,
-      RtcPeerConnectionErrorCallback failureCallback, mediaConstraints) native;
-  @JSName('createAnswer')
-  @DomName('RTCPeerConnection.createAnswer')
-  @DocsEditable()
-  void _createAnswer_2(_RtcSessionDescriptionCallback successCallback,
-      RtcPeerConnectionErrorCallback failureCallback) native;
-
-  @JSName('createDTMFSender')
-  @DomName('RTCPeerConnection.createDTMFSender')
-  @DocsEditable()
-  RtcDtmfSender createDtmfSender(MediaStreamTrack track) native;
-
-  @DomName('RTCPeerConnection.createDataChannel')
-  @DocsEditable()
-  RtcDataChannel createDataChannel(String label, [Map options]) {
-    if (options != null) {
-      var options_1 = convertDartToNative_Dictionary(options);
-      return _createDataChannel_1(label, options_1);
-    }
-    return _createDataChannel_2(label);
-  }
-
-  @JSName('createDataChannel')
-  @DomName('RTCPeerConnection.createDataChannel')
-  @DocsEditable()
-  RtcDataChannel _createDataChannel_1(label, options) native;
-  @JSName('createDataChannel')
-  @DomName('RTCPeerConnection.createDataChannel')
-  @DocsEditable()
-  RtcDataChannel _createDataChannel_2(label) native;
-
-  @DomName('RTCPeerConnection.createOffer')
-  @DocsEditable()
-  void _createOffer(_RtcSessionDescriptionCallback successCallback,
-      RtcPeerConnectionErrorCallback failureCallback,
-      [Map rtcOfferOptions]) {
-    if (rtcOfferOptions != null) {
-      var rtcOfferOptions_1 = convertDartToNative_Dictionary(rtcOfferOptions);
-      _createOffer_1(successCallback, failureCallback, rtcOfferOptions_1);
-      return;
-    }
-    _createOffer_2(successCallback, failureCallback);
-    return;
-  }
-
-  @JSName('createOffer')
-  @DomName('RTCPeerConnection.createOffer')
-  @DocsEditable()
-  void _createOffer_1(_RtcSessionDescriptionCallback successCallback,
-      RtcPeerConnectionErrorCallback failureCallback, rtcOfferOptions) native;
-  @JSName('createOffer')
-  @DomName('RTCPeerConnection.createOffer')
-  @DocsEditable()
-  void _createOffer_2(_RtcSessionDescriptionCallback successCallback,
-      RtcPeerConnectionErrorCallback failureCallback) native;
-
-  @DomName('RTCPeerConnection.getLocalStreams')
-  @DocsEditable()
-  List<MediaStream> getLocalStreams() native;
-
-  @DomName('RTCPeerConnection.getRemoteStreams')
-  @DocsEditable()
-  List<MediaStream> getRemoteStreams() native;
-
-  @JSName('getStats')
-  @DomName('RTCPeerConnection.getStats')
-  @DocsEditable()
-  void _getStats(RtcStatsCallback successCallback, MediaStreamTrack selector)
-      native;
-
-  @DomName('RTCPeerConnection.getStreamById')
-  @DocsEditable()
-  MediaStream getStreamById(String streamId) native;
-
-  @DomName('RTCPeerConnection.removeStream')
-  @DocsEditable()
-  void removeStream(MediaStream stream) native;
-
-  @JSName('setLocalDescription')
-  @DomName('RTCPeerConnection.setLocalDescription')
-  @DocsEditable()
-  Future _setLocalDescription(
-      RtcSessionDescription description, VoidCallback successCallback,
-      [RtcPeerConnectionErrorCallback failureCallback]) native;
-
-  @JSName('setLocalDescription')
-  @DomName('RTCPeerConnection.setLocalDescription')
-  @DocsEditable()
-  Future setLocalDescription(RtcSessionDescription description) {
-    var completer = new Completer();
-    _setLocalDescription(description, () {
-      completer.complete();
-    }, (error) {
-      completer.completeError(error);
-    });
-    return completer.future;
-  }
-
-  @JSName('setRemoteDescription')
-  @DomName('RTCPeerConnection.setRemoteDescription')
-  @DocsEditable()
-  Future _setRemoteDescription(
-      RtcSessionDescription description, VoidCallback successCallback,
-      [RtcPeerConnectionErrorCallback failureCallback]) native;
-
-  @JSName('setRemoteDescription')
-  @DomName('RTCPeerConnection.setRemoteDescription')
-  @DocsEditable()
-  Future setRemoteDescription(RtcSessionDescription description) {
-    var completer = new Completer();
-    _setRemoteDescription(description, () {
-      completer.complete();
-    }, (error) {
-      completer.completeError(error);
-    });
-    return completer.future;
-  }
-
-  @DomName('RTCPeerConnection.updateIce')
-  @DocsEditable()
-  void updateIce([Map configuration, Map mediaConstraints]) {
-    if (mediaConstraints != null) {
-      var configuration_1 = convertDartToNative_Dictionary(configuration);
-      var mediaConstraints_2 = convertDartToNative_Dictionary(mediaConstraints);
-      _updateIce_1(configuration_1, mediaConstraints_2);
-      return;
-    }
-    if (configuration != null) {
-      var configuration_1 = convertDartToNative_Dictionary(configuration);
-      _updateIce_2(configuration_1);
-      return;
-    }
-    _updateIce_3();
-    return;
-  }
-
-  @JSName('updateIce')
-  @DomName('RTCPeerConnection.updateIce')
-  @DocsEditable()
-  void _updateIce_1(configuration, mediaConstraints) native;
-  @JSName('updateIce')
-  @DomName('RTCPeerConnection.updateIce')
-  @DocsEditable()
-  void _updateIce_2(configuration) native;
-  @JSName('updateIce')
-  @DomName('RTCPeerConnection.updateIce')
-  @DocsEditable()
-  void _updateIce_3() native;
-
-  /// Stream of `addstream` events handled by this [RtcPeerConnection].
-  @DomName('RTCPeerConnection.onaddstream')
-  @DocsEditable()
-  Stream<MediaStreamEvent> get onAddStream => addStreamEvent.forTarget(this);
-
-  /// Stream of `datachannel` events handled by this [RtcPeerConnection].
-  @DomName('RTCPeerConnection.ondatachannel')
-  @DocsEditable()
-  Stream<RtcDataChannelEvent> get onDataChannel =>
-      dataChannelEvent.forTarget(this);
-
-  /// Stream of `icecandidate` events handled by this [RtcPeerConnection].
-  @DomName('RTCPeerConnection.onicecandidate')
-  @DocsEditable()
-  Stream<RtcIceCandidateEvent> get onIceCandidate =>
-      iceCandidateEvent.forTarget(this);
-
-  /// Stream of `iceconnectionstatechange` events handled by this [RtcPeerConnection].
-  @DomName('RTCPeerConnection.oniceconnectionstatechange')
-  @DocsEditable()
-  Stream<Event> get onIceConnectionStateChange =>
-      iceConnectionStateChangeEvent.forTarget(this);
-
-  /// Stream of `negotiationneeded` events handled by this [RtcPeerConnection].
-  @DomName('RTCPeerConnection.onnegotiationneeded')
-  @DocsEditable()
-  Stream<Event> get onNegotiationNeeded =>
-      negotiationNeededEvent.forTarget(this);
-
-  /// Stream of `removestream` events handled by this [RtcPeerConnection].
-  @DomName('RTCPeerConnection.onremovestream')
-  @DocsEditable()
-  Stream<MediaStreamEvent> get onRemoveStream =>
-      removeStreamEvent.forTarget(this);
-
-  /// Stream of `signalingstatechange` events handled by this [RtcPeerConnection].
-  @DomName('RTCPeerConnection.onsignalingstatechange')
-  @DocsEditable()
-  Stream<Event> get onSignalingStateChange =>
-      signalingStateChangeEvent.forTarget(this);
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('RTCSessionDescription')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@Experimental()
-// http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCSessionDescription
-@Native("RTCSessionDescription,mozRTCSessionDescription")
-class RtcSessionDescription extends Interceptor {
-  factory RtcSessionDescription(Map dictionary) {
-    // TODO(efortuna): Remove this check if when you can actually construct with
-    // the unprefixed RTCIceCandidate in Firefox (currently both are defined,
-    // but one can't be used as a constructor).
-    var constructorName = JS(
-        '',
-        'window[#]',
-        Device.isFirefox
-            ? '${Device.propertyPrefix}RTCSessionDescription'
-            : 'RTCSessionDescription');
-    return JS('RtcSessionDescription', 'new #(#)', constructorName,
-        convertDartToNative_SerializedScriptValue(dictionary));
-  }
-  // To suppress missing implicit constructor warnings.
-  factory RtcSessionDescription._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('RTCSessionDescription.sdp')
-  @DocsEditable()
-  String sdp;
-
-  @DomName('RTCSessionDescription.type')
-  @DocsEditable()
-  String type;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('RTCStatsReport')
-// http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCStatsReport
-@Experimental()
-@Native("RTCStatsReport")
-class RtcStatsReport extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory RtcStatsReport._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('RTCStatsReport.id')
-  @DocsEditable()
-  final String id;
-
-  @DomName('RTCStatsReport.timestamp')
-  @DocsEditable()
-  DateTime get timestamp => convertNativeToDart_DateTime(this._get_timestamp);
-  @JSName('timestamp')
-  @DomName('RTCStatsReport.timestamp')
-  @DocsEditable()
-  @Creates('Null')
-  final dynamic _get_timestamp;
-
-  @DomName('RTCStatsReport.type')
-  @DocsEditable()
-  final String type;
-
-  @DomName('RTCStatsReport.names')
-  @DocsEditable()
-  List<String> names() native;
-
-  @DomName('RTCStatsReport.stat')
-  @DocsEditable()
-  String stat(String name) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('RTCStatsResponse')
-// http://dev.w3.org/2011/webrtc/editor/webrtc.html#widl-RTCStatsReport-RTCStats-getter-DOMString-id
-@Experimental()
-@Native("RTCStatsResponse")
-class RtcStatsResponse extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory RtcStatsResponse._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('RTCStatsResponse.namedItem')
-  @DocsEditable()
-  RtcStatsReport namedItem(String name) native;
-
-  @DomName('RTCStatsResponse.result')
-  @DocsEditable()
-  List<RtcStatsReport> result() native;
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Screen')
-@Native("Screen")
-class Screen extends Interceptor {
-  @DomName('Screen.availHeight')
-  @DomName('Screen.availLeft')
-  @DomName('Screen.availTop')
-  @DomName('Screen.availWidth')
-  Rectangle get available =>
-      new Rectangle(_availLeft, _availTop, _availWidth, _availHeight);
-  // To suppress missing implicit constructor warnings.
-  factory Screen._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @JSName('availHeight')
-  @DomName('Screen.availHeight')
-  @DocsEditable()
-  final int _availHeight;
-
-  @JSName('availLeft')
-  @DomName('Screen.availLeft')
-  @DocsEditable()
-  @Experimental() // nonstandard
-  final int _availLeft;
-
-  @JSName('availTop')
-  @DomName('Screen.availTop')
-  @DocsEditable()
-  @Experimental() // nonstandard
-  final int _availTop;
-
-  @JSName('availWidth')
-  @DomName('Screen.availWidth')
-  @DocsEditable()
-  final int _availWidth;
-
-  @DomName('Screen.colorDepth')
-  @DocsEditable()
-  final int colorDepth;
-
-  @DomName('Screen.height')
-  @DocsEditable()
-  final int height;
-
-  @DomName('Screen.keepAwake')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool keepAwake;
-
-  @DomName('Screen.orientation')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final ScreenOrientation orientation;
-
-  @DomName('Screen.pixelDepth')
-  @DocsEditable()
-  final int pixelDepth;
-
-  @DomName('Screen.width')
-  @DocsEditable()
-  final int width;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ScreenOrientation')
-@Experimental() // untriaged
-@Native("ScreenOrientation")
-class ScreenOrientation extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory ScreenOrientation._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('ScreenOrientation.changeEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> changeEvent =
-      const EventStreamProvider<Event>('change');
-
-  @DomName('ScreenOrientation.angle')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int angle;
-
-  @DomName('ScreenOrientation.type')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String type;
-
-  @DomName('ScreenOrientation.lock')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future lock(String orientation) native;
-
-  @DomName('ScreenOrientation.unlock')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void unlock() native;
-
-  @DomName('ScreenOrientation.onchange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onChange => changeEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLScriptElement')
-@Native("HTMLScriptElement")
-class ScriptElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory ScriptElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLScriptElement.HTMLScriptElement')
-  @DocsEditable()
-  factory ScriptElement() => JS(
-      'returns:ScriptElement;creates:ScriptElement;new:true',
-      '#.createElement(#)',
-      document,
-      "script");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  ScriptElement.created() : super.created();
-
-  @DomName('HTMLScriptElement.async')
-  @DocsEditable()
-  bool async;
-
-  @DomName('HTMLScriptElement.charset')
-  @DocsEditable()
-  String charset;
-
-  @DomName('HTMLScriptElement.crossOrigin')
-  @DocsEditable()
-  // http://www.whatwg.org/specs/web-apps/current-work/multipage/scripting-1.html#attr-script-crossorigin
-  @Experimental()
-  String crossOrigin;
-
-  @DomName('HTMLScriptElement.defer')
-  @DocsEditable()
-  bool defer;
-
-  @DomName('HTMLScriptElement.integrity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String integrity;
-
-  @DomName('HTMLScriptElement.nonce')
-  @DocsEditable()
-  // https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#interaction-with-the-script-src-directive
-  @Experimental()
-  String nonce;
-
-  @DomName('HTMLScriptElement.src')
-  @DocsEditable()
-  String src;
-
-  @DomName('HTMLScriptElement.type')
-  @DocsEditable()
-  String type;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ScrollState')
-@Experimental() // untriaged
-@Native("ScrollState")
-class ScrollState extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory ScrollState._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('ScrollState.ScrollState')
-  @DocsEditable()
-  factory ScrollState([Map scrollStateInit]) {
-    if (scrollStateInit != null) {
-      var scrollStateInit_1 = convertDartToNative_Dictionary(scrollStateInit);
-      return ScrollState._create_1(scrollStateInit_1);
-    }
-    return ScrollState._create_2();
-  }
-  static ScrollState _create_1(scrollStateInit) =>
-      JS('ScrollState', 'new ScrollState(#)', scrollStateInit);
-  static ScrollState _create_2() => JS('ScrollState', 'new ScrollState()');
-
-  @DomName('ScrollState.deltaGranularity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double deltaGranularity;
-
-  @DomName('ScrollState.deltaX')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double deltaX;
-
-  @DomName('ScrollState.deltaY')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double deltaY;
-
-  @DomName('ScrollState.fromUserInput')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool fromUserInput;
-
-  @DomName('ScrollState.inInertialPhase')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool inInertialPhase;
-
-  @DomName('ScrollState.isBeginning')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool isBeginning;
-
-  @DomName('ScrollState.isDirectManipulation')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool isDirectManipulation;
-
-  @DomName('ScrollState.isEnding')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool isEnding;
-
-  @DomName('ScrollState.shouldPropagate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool shouldPropagate;
-
-  @DomName('ScrollState.startPositionX')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int startPositionX;
-
-  @DomName('ScrollState.startPositionY')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int startPositionY;
-
-  @DomName('ScrollState.velocityX')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double velocityX;
-
-  @DomName('ScrollState.velocityY')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double velocityY;
-
-  @DomName('ScrollState.consumeDelta')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void consumeDelta(num x, num y) native;
-
-  @DomName('ScrollState.distributeToScrollChainDescendant')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void distributeToScrollChainDescendant() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('ScrollStateCallback')
-@Experimental() // untriaged
-typedef void ScrollStateCallback(ScrollState scrollState);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SecurityPolicyViolationEvent')
-// https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#securitypolicyviolationevent-events
-@Experimental()
-@Native("SecurityPolicyViolationEvent")
-class SecurityPolicyViolationEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory SecurityPolicyViolationEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SecurityPolicyViolationEvent.SecurityPolicyViolationEvent')
-  @DocsEditable()
-  factory SecurityPolicyViolationEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return SecurityPolicyViolationEvent._create_1(type, eventInitDict_1);
-    }
-    return SecurityPolicyViolationEvent._create_2(type);
-  }
-  static SecurityPolicyViolationEvent _create_1(type, eventInitDict) => JS(
-      'SecurityPolicyViolationEvent',
-      'new SecurityPolicyViolationEvent(#,#)',
-      type,
-      eventInitDict);
-  static SecurityPolicyViolationEvent _create_2(type) => JS(
-      'SecurityPolicyViolationEvent',
-      'new SecurityPolicyViolationEvent(#)',
-      type);
-
-  @JSName('blockedURI')
-  @DomName('SecurityPolicyViolationEvent.blockedURI')
-  @DocsEditable()
-  final String blockedUri;
-
-  @DomName('SecurityPolicyViolationEvent.columnNumber')
-  @DocsEditable()
-  final int columnNumber;
-
-  @JSName('documentURI')
-  @DomName('SecurityPolicyViolationEvent.documentURI')
-  @DocsEditable()
-  final String documentUri;
-
-  @DomName('SecurityPolicyViolationEvent.effectiveDirective')
-  @DocsEditable()
-  final String effectiveDirective;
-
-  @DomName('SecurityPolicyViolationEvent.lineNumber')
-  @DocsEditable()
-  final int lineNumber;
-
-  @DomName('SecurityPolicyViolationEvent.originalPolicy')
-  @DocsEditable()
-  final String originalPolicy;
-
-  @DomName('SecurityPolicyViolationEvent.referrer')
-  @DocsEditable()
-  final String referrer;
-
-  @DomName('SecurityPolicyViolationEvent.sourceFile')
-  @DocsEditable()
-  final String sourceFile;
-
-  @DomName('SecurityPolicyViolationEvent.statusCode')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int statusCode;
-
-  @DomName('SecurityPolicyViolationEvent.violatedDirective')
-  @DocsEditable()
-  final String violatedDirective;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('HTMLSelectElement')
-@Native("HTMLSelectElement")
-class SelectElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory SelectElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLSelectElement.HTMLSelectElement')
-  @DocsEditable()
-  factory SelectElement() => JS(
-      'returns:SelectElement;creates:SelectElement;new:true',
-      '#.createElement(#)',
-      document,
-      "select");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  SelectElement.created() : super.created();
-
-  @DomName('HTMLSelectElement.autofocus')
-  @DocsEditable()
-  bool autofocus;
-
-  @DomName('HTMLSelectElement.disabled')
-  @DocsEditable()
-  bool disabled;
-
-  @DomName('HTMLSelectElement.form')
-  @DocsEditable()
-  final FormElement form;
-
-  @DomName('HTMLSelectElement.labels')
-  @DocsEditable()
-  @Unstable()
-  @Returns('NodeList|Null')
-  @Creates('NodeList')
-  final List<Node> labels;
-
-  @DomName('HTMLSelectElement.length')
-  @DocsEditable()
-  int length;
-
-  @DomName('HTMLSelectElement.multiple')
-  @DocsEditable()
-  bool multiple;
-
-  @DomName('HTMLSelectElement.name')
-  @DocsEditable()
-  String name;
-
-  @DomName('HTMLSelectElement.required')
-  @DocsEditable()
-  bool required;
-
-  @DomName('HTMLSelectElement.selectedIndex')
-  @DocsEditable()
-  int selectedIndex;
-
-  @DomName('HTMLSelectElement.size')
-  @DocsEditable()
-  int size;
-
-  @DomName('HTMLSelectElement.type')
-  @DocsEditable()
-  final String type;
-
-  @DomName('HTMLSelectElement.validationMessage')
-  @DocsEditable()
-  final String validationMessage;
-
-  @DomName('HTMLSelectElement.validity')
-  @DocsEditable()
-  final ValidityState validity;
-
-  @DomName('HTMLSelectElement.value')
-  @DocsEditable()
-  String value;
-
-  @DomName('HTMLSelectElement.willValidate')
-  @DocsEditable()
-  final bool willValidate;
-
-  @DomName('HTMLSelectElement.__setter__')
-  @DocsEditable()
-  void __setter__(int index, OptionElement option) native;
-
-  @DomName('HTMLSelectElement.add')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void add(Object element, Object before) native;
-
-  @DomName('HTMLSelectElement.checkValidity')
-  @DocsEditable()
-  bool checkValidity() native;
-
-  @DomName('HTMLSelectElement.item')
-  @DocsEditable()
-  Element item(int index) native;
-
-  @DomName('HTMLSelectElement.namedItem')
-  @DocsEditable()
-  OptionElement namedItem(String name) native;
-
-  @DomName('HTMLSelectElement.reportValidity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool reportValidity() native;
-
-  @DomName('HTMLSelectElement.setCustomValidity')
-  @DocsEditable()
-  void setCustomValidity(String error) native;
-
-  // Override default options, since IE returns SelectElement itself and it
-  // does not operate as a List.
-  List<OptionElement> get options {
-    dynamic options = this.querySelectorAll<OptionElement>('option');
-    return new UnmodifiableListView(options.toList());
-  }
-
-  List<OptionElement> get selectedOptions {
-    // IE does not change the selected flag for single-selection items.
-    if (this.multiple) {
-      var options = this.options.where((o) => o.selected).toList();
-      return new UnmodifiableListView(options);
-    } else {
-      return [this.options[this.selectedIndex]];
-    }
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Selection')
-@Native("Selection")
-class Selection extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Selection._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Selection.anchorNode')
-  @DocsEditable()
-  final Node anchorNode;
-
-  @DomName('Selection.anchorOffset')
-  @DocsEditable()
-  final int anchorOffset;
-
-  @DomName('Selection.baseNode')
-  @DocsEditable()
-  @Experimental() // non-standard
-  final Node baseNode;
-
-  @DomName('Selection.baseOffset')
-  @DocsEditable()
-  @Experimental() // non-standard
-  final int baseOffset;
-
-  @DomName('Selection.extentNode')
-  @DocsEditable()
-  @Experimental() // non-standard
-  final Node extentNode;
-
-  @DomName('Selection.extentOffset')
-  @DocsEditable()
-  @Experimental() // non-standard
-  final int extentOffset;
-
-  @DomName('Selection.focusNode')
-  @DocsEditable()
-  final Node focusNode;
-
-  @DomName('Selection.focusOffset')
-  @DocsEditable()
-  final int focusOffset;
-
-  @DomName('Selection.isCollapsed')
-  @DocsEditable()
-  final bool isCollapsed;
-
-  @DomName('Selection.rangeCount')
-  @DocsEditable()
-  final int rangeCount;
-
-  @DomName('Selection.type')
-  @DocsEditable()
-  @Experimental() // non-standard
-  final String type;
-
-  @DomName('Selection.addRange')
-  @DocsEditable()
-  void addRange(Range range) native;
-
-  @DomName('Selection.collapse')
-  @DocsEditable()
-  void collapse(Node node, [int offset]) native;
-
-  @DomName('Selection.collapseToEnd')
-  @DocsEditable()
-  void collapseToEnd() native;
-
-  @DomName('Selection.collapseToStart')
-  @DocsEditable()
-  void collapseToStart() native;
-
-  @DomName('Selection.containsNode')
-  @DocsEditable()
-  @Experimental() // non-standard
-  bool containsNode(Node node, [bool allowPartialContainment]) native;
-
-  @DomName('Selection.deleteFromDocument')
-  @DocsEditable()
-  void deleteFromDocument() native;
-
-  @DomName('Selection.empty')
-  @DocsEditable()
-  @Experimental() // non-standard
-  void empty() native;
-
-  @DomName('Selection.extend')
-  @DocsEditable()
-  void extend(Node node, [int offset]) native;
-
-  @DomName('Selection.getRangeAt')
-  @DocsEditable()
-  Range getRangeAt(int index) native;
-
-  @DomName('Selection.modify')
-  @DocsEditable()
-  @Experimental() // non-standard
-  void modify(String alter, String direction, String granularity) native;
-
-  @DomName('Selection.removeAllRanges')
-  @DocsEditable()
-  void removeAllRanges() native;
-
-  @DomName('Selection.selectAllChildren')
-  @DocsEditable()
-  void selectAllChildren(Node node) native;
-
-  @DomName('Selection.setBaseAndExtent')
-  @DocsEditable()
-  @Experimental() // non-standard
-  void setBaseAndExtent(
-      Node baseNode, int baseOffset, Node extentNode, int extentOffset) native;
-
-  @DomName('Selection.setPosition')
-  @DocsEditable()
-  @Experimental() // non-standard
-  void setPosition(Node node, [int offset]) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ServicePort')
-@Experimental() // untriaged
-@Native("ServicePort")
-class ServicePort extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory ServicePort._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('ServicePort.data')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Object data;
-
-  @DomName('ServicePort.name')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String name;
-
-  @JSName('targetURL')
-  @DomName('ServicePort.targetURL')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String targetUrl;
-
-  @DomName('ServicePort.close')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void close() native;
-
-  @DomName('ServicePort.postMessage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void postMessage(/*SerializedScriptValue*/ message,
-      [List<MessagePort> transfer]) {
-    if (transfer != null) {
-      var message_1 = convertDartToNative_SerializedScriptValue(message);
-      _postMessage_1(message_1, transfer);
-      return;
-    }
-    var message_1 = convertDartToNative_SerializedScriptValue(message);
-    _postMessage_2(message_1);
-    return;
-  }
-
-  @JSName('postMessage')
-  @DomName('ServicePort.postMessage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _postMessage_1(message, List<MessagePort> transfer) native;
-  @JSName('postMessage')
-  @DomName('ServicePort.postMessage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _postMessage_2(message) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ServicePortCollection')
-@Experimental() // untriaged
-@Native("ServicePortCollection")
-class ServicePortCollection extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory ServicePortCollection._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('ServicePortCollection.messageEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MessageEvent> messageEvent =
-      const EventStreamProvider<MessageEvent>('message');
-
-  @DomName('ServicePortCollection.connect')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future connect(String url, [Map options]) {
-    if (options != null) {
-      var options_1 = convertDartToNative_Dictionary(options);
-      return _connect_1(url, options_1);
-    }
-    return _connect_2(url);
-  }
-
-  @JSName('connect')
-  @DomName('ServicePortCollection.connect')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _connect_1(url, options) native;
-  @JSName('connect')
-  @DomName('ServicePortCollection.connect')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _connect_2(url) native;
-
-  @DomName('ServicePortCollection.match')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future match(Map options) {
-    var options_1 = convertDartToNative_Dictionary(options);
-    return _match_1(options_1);
-  }
-
-  @JSName('match')
-  @DomName('ServicePortCollection.match')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _match_1(options) native;
-
-  @DomName('ServicePortCollection.matchAll')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future matchAll([Map options]) {
-    if (options != null) {
-      var options_1 = convertDartToNative_Dictionary(options);
-      return _matchAll_1(options_1);
-    }
-    return _matchAll_2();
-  }
-
-  @JSName('matchAll')
-  @DomName('ServicePortCollection.matchAll')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _matchAll_1(options) native;
-  @JSName('matchAll')
-  @DomName('ServicePortCollection.matchAll')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _matchAll_2() native;
-
-  @DomName('ServicePortCollection.onmessage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ServicePortConnectEvent')
-@Experimental() // untriaged
-@Native("ServicePortConnectEvent")
-class ServicePortConnectEvent extends ExtendableEvent {
-  // To suppress missing implicit constructor warnings.
-  factory ServicePortConnectEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('ServicePortConnectEvent.ServicePortConnectEvent')
-  @DocsEditable()
-  factory ServicePortConnectEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return ServicePortConnectEvent._create_1(type, eventInitDict_1);
-    }
-    return ServicePortConnectEvent._create_2(type);
-  }
-  static ServicePortConnectEvent _create_1(type, eventInitDict) => JS(
-      'ServicePortConnectEvent',
-      'new ServicePortConnectEvent(#,#)',
-      type,
-      eventInitDict);
-  static ServicePortConnectEvent _create_2(type) =>
-      JS('ServicePortConnectEvent', 'new ServicePortConnectEvent(#)', type);
-
-  @DomName('ServicePortConnectEvent.origin')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String origin;
-
-  @JSName('targetURL')
-  @DomName('ServicePortConnectEvent.targetURL')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String targetUrl;
-
-  @DomName('ServicePortConnectEvent.respondWith')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future respondWith(Future response) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ServiceWorkerContainer')
-@Experimental() // untriaged
-@Native("ServiceWorkerContainer")
-class ServiceWorkerContainer extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory ServiceWorkerContainer._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('ServiceWorkerContainer.messageEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MessageEvent> messageEvent =
-      const EventStreamProvider<MessageEvent>('message');
-
-  @DomName('ServiceWorkerContainer.controller')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final _ServiceWorker controller;
-
-  @DomName('ServiceWorkerContainer.ready')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Future ready;
-
-  @DomName('ServiceWorkerContainer.getRegistration')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future getRegistration([String documentURL]) native;
-
-  @DomName('ServiceWorkerContainer.getRegistrations')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future getRegistrations() native;
-
-  @DomName('ServiceWorkerContainer.register')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future register(String url, [Map options]) {
-    if (options != null) {
-      var options_1 = convertDartToNative_Dictionary(options);
-      return _register_1(url, options_1);
-    }
-    return _register_2(url);
-  }
-
-  @JSName('register')
-  @DomName('ServiceWorkerContainer.register')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _register_1(url, options) native;
-  @JSName('register')
-  @DomName('ServiceWorkerContainer.register')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _register_2(url) native;
-
-  @DomName('ServiceWorkerContainer.onmessage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ServiceWorkerGlobalScope')
-@Experimental() // untriaged
-@Native("ServiceWorkerGlobalScope")
-class ServiceWorkerGlobalScope extends WorkerGlobalScope {
-  // To suppress missing implicit constructor warnings.
-  factory ServiceWorkerGlobalScope._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('ServiceWorkerGlobalScope.messageEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MessageEvent> messageEvent =
-      const EventStreamProvider<MessageEvent>('message');
-
-  @DomName('ServiceWorkerGlobalScope.clients')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Clients clients;
-
-  @DomName('ServiceWorkerGlobalScope.registration')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final ServiceWorkerRegistration registration;
-
-  @DomName('ServiceWorkerGlobalScope.skipWaiting')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future skipWaiting() native;
-
-  @DomName('ServiceWorkerGlobalScope.onmessage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
-}
-// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-// TODO(alanknight): Provide a nicer constructor that uses named parameters
-// rather than an initialization map.
-@DomName('ServiceWorkerMessageEvent')
-@Experimental() // untriaged
-@Native("ServiceWorkerMessageEvent")
-class ServiceWorkerMessageEvent extends Event {
-  // TODO(alanknight): This really should be generated by the
-  // _OutputConversion in the systemnative.py script, but that doesn't
-  // use those conversions right now, so do this as a one-off.
-  @DomName('ServiceWorkerMessageEvent.data')
-  @DocsEditable()
-  dynamic get data => convertNativeToDart_SerializedScriptValue(this._get_data);
-
-  @JSName('data')
-  @DomName('ServiceWorkerMessageEvent.data')
-  @DocsEditable()
-  @annotation_Creates_SerializedScriptValue
-  @annotation_Returns_SerializedScriptValue
-  final dynamic _get_data;
-
-  // To suppress missing implicit constructor warnings.
-  factory ServiceWorkerMessageEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('ServiceWorkerMessageEvent.lastEventId')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String lastEventId;
-
-  @DomName('ServiceWorkerMessageEvent.origin')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String origin;
-
-  @DomName('ServiceWorkerMessageEvent.ports')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final List<MessagePort> ports;
-
-  @DomName('ServiceWorkerMessageEvent.source')
-  @DocsEditable()
-  @Experimental() // untriaged
-  @Creates('Null')
-  @Returns('_ServiceWorker|MessagePort')
-  final Object source;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ServiceWorkerRegistration')
-@Experimental() // untriaged
-@Native("ServiceWorkerRegistration")
-class ServiceWorkerRegistration extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory ServiceWorkerRegistration._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('ServiceWorkerRegistration.active')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final _ServiceWorker active;
-
-  @DomName('ServiceWorkerRegistration.geofencing')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Geofencing geofencing;
-
-  @DomName('ServiceWorkerRegistration.installing')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final _ServiceWorker installing;
-
-  @DomName('ServiceWorkerRegistration.pushManager')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final PushManager pushManager;
-
-  @DomName('ServiceWorkerRegistration.scope')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String scope;
-
-  @DomName('ServiceWorkerRegistration.sync')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final SyncManager sync;
-
-  @DomName('ServiceWorkerRegistration.waiting')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final _ServiceWorker waiting;
-
-  @DomName('ServiceWorkerRegistration.getNotifications')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future getNotifications([Map filter]) {
-    if (filter != null) {
-      var filter_1 = convertDartToNative_Dictionary(filter);
-      return _getNotifications_1(filter_1);
-    }
-    return _getNotifications_2();
-  }
-
-  @JSName('getNotifications')
-  @DomName('ServiceWorkerRegistration.getNotifications')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _getNotifications_1(filter) native;
-  @JSName('getNotifications')
-  @DomName('ServiceWorkerRegistration.getNotifications')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _getNotifications_2() native;
-
-  @DomName('ServiceWorkerRegistration.showNotification')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future showNotification(String title, [Map options]) {
-    if (options != null) {
-      var options_1 = convertDartToNative_Dictionary(options);
-      return _showNotification_1(title, options_1);
-    }
-    return _showNotification_2(title);
-  }
-
-  @JSName('showNotification')
-  @DomName('ServiceWorkerRegistration.showNotification')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _showNotification_1(title, options) native;
-  @JSName('showNotification')
-  @DomName('ServiceWorkerRegistration.showNotification')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _showNotification_2(title) native;
-
-  @DomName('ServiceWorkerRegistration.unregister')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future unregister() native;
-
-  @DomName('ServiceWorkerRegistration.update')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future update() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLShadowElement')
-@SupportedBrowser(SupportedBrowser.CHROME, '26')
-@Experimental()
-// https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#shadow-element
-@Native("HTMLShadowElement")
-class ShadowElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory ShadowElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLShadowElement.HTMLShadowElement')
-  @DocsEditable()
-  factory ShadowElement() => document.createElement("shadow");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  ShadowElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported => Element.isTagSupported('shadow');
-
-  @DomName('HTMLShadowElement.getDistributedNodes')
-  @DocsEditable()
-  @Experimental() // untriaged
-  @Returns('NodeList|Null')
-  @Creates('NodeList')
-  List<Node> getDistributedNodes() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('ShadowRoot')
-@SupportedBrowser(SupportedBrowser.CHROME, '26')
-@Experimental()
-// https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#api-shadow-root
-@Native("ShadowRoot")
-class ShadowRoot extends DocumentFragment {
-  // To suppress missing implicit constructor warnings.
-  factory ShadowRoot._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('ShadowRoot.activeElement')
-  @DocsEditable()
-  final Element activeElement;
-
-  @DomName('ShadowRoot.delegatesFocus')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool delegatesFocus;
-
-  @DomName('ShadowRoot.host')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Element host;
-
-  @JSName('innerHTML')
-  @DomName('ShadowRoot.innerHTML')
-  @DocsEditable()
-  String innerHtml;
-
-  @DomName('ShadowRoot.olderShadowRoot')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final ShadowRoot olderShadowRoot;
-
-  @DomName('ShadowRoot.styleSheets')
-  @DocsEditable()
-  @Experimental() // untriaged
-  @Returns('_StyleSheetList|Null')
-  @Creates('_StyleSheetList')
-  final List<StyleSheet> styleSheets;
-
-  @JSName('cloneNode')
-  @DomName('ShadowRoot.cloneNode')
-  @DocsEditable()
-  Node clone([bool deep]) native;
-
-  @DomName('ShadowRoot.elementFromPoint')
-  @DocsEditable()
-  Element elementFromPoint(int x, int y) native;
-
-  @DomName('ShadowRoot.elementsFromPoint')
-  @DocsEditable()
-  @Experimental() // untriaged
-  List<Element> elementsFromPoint(int x, int y) native;
-
-  @DomName('ShadowRoot.getSelection')
-  @DocsEditable()
-  Selection getSelection() native;
-
-  static bool get supported => JS(
-      'bool',
-      '!!(Element.prototype.createShadowRoot||'
-      'Element.prototype.webkitCreateShadowRoot)');
-
-  static bool _shadowRootDeprecationReported = false;
-  static void _shadowRootDeprecationReport() {
-    if (!_shadowRootDeprecationReported) {
-      window.console.warn('''
-ShadowRoot.resetStyleInheritance and ShadowRoot.applyAuthorStyles now deprecated in dart:html.
-Please remove them from your code.
-''');
-      _shadowRootDeprecationReported = true;
-    }
-  }
-
-  @deprecated
-  bool get resetStyleInheritance {
-    _shadowRootDeprecationReport();
-    // Default value from when it was specified.
-    return false;
-  }
-
-  @deprecated
-  set resetStyleInheritance(bool value) {
-    _shadowRootDeprecationReport();
-  }
-
-  @deprecated
-  bool get applyAuthorStyles {
-    _shadowRootDeprecationReport();
-    // Default value from when it was specified.
-    return false;
-  }
-
-  @deprecated
-  set applyAuthorStyles(bool value) {
-    _shadowRootDeprecationReport();
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SharedArrayBuffer')
-@Experimental() // untriaged
-@Native("SharedArrayBuffer")
-class SharedArrayBuffer extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory SharedArrayBuffer._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SharedArrayBuffer.byteLength')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int byteLength;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SharedWorker')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html#shared-workers-and-the-sharedworker-interface
-@Experimental()
-@Native("SharedWorker")
-class SharedWorker extends EventTarget implements AbstractWorker {
-  // To suppress missing implicit constructor warnings.
-  factory SharedWorker._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SharedWorker.errorEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> errorEvent =
-      const EventStreamProvider<Event>('error');
-
-  @DomName('SharedWorker.SharedWorker')
-  @DocsEditable()
-  factory SharedWorker(String scriptURL, [String name]) {
-    if (name != null) {
-      return SharedWorker._create_1(scriptURL, name);
-    }
-    return SharedWorker._create_2(scriptURL);
-  }
-  static SharedWorker _create_1(scriptURL, name) =>
-      JS('SharedWorker', 'new SharedWorker(#,#)', scriptURL, name);
-  static SharedWorker _create_2(scriptURL) =>
-      JS('SharedWorker', 'new SharedWorker(#)', scriptURL);
-
-  @DomName('SharedWorker.port')
-  @DocsEditable()
-  final MessagePort port;
-
-  @DomName('SharedWorker.workerStart')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double workerStart;
-
-  @DomName('SharedWorker.onerror')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onError => errorEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SharedWorkerGlobalScope')
-@Experimental() // untriaged
-@Native("SharedWorkerGlobalScope")
-class SharedWorkerGlobalScope extends WorkerGlobalScope {
-  // To suppress missing implicit constructor warnings.
-  factory SharedWorkerGlobalScope._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `connect` events to event
-   * handlers that are not necessarily instances of [SharedWorkerGlobalScope].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('SharedWorkerGlobalScope.connectEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> connectEvent =
-      const EventStreamProvider<Event>('connect');
-
-  @DomName('SharedWorkerGlobalScope.PERSISTENT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int PERSISTENT = 1;
-
-  @DomName('SharedWorkerGlobalScope.TEMPORARY')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEMPORARY = 0;
-
-  @DomName('SharedWorkerGlobalScope.name')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String name;
-
-  @JSName('webkitRequestFileSystem')
-  @DomName('SharedWorkerGlobalScope.webkitRequestFileSystem')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  @Experimental() // untriaged
-  void _webkitRequestFileSystem(int type, int size,
-      [_FileSystemCallback successCallback,
-      _ErrorCallback errorCallback]) native;
-
-  @JSName('webkitRequestFileSystemSync')
-  @DomName('SharedWorkerGlobalScope.webkitRequestFileSystemSync')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  @Experimental() // untriaged
-  _DOMFileSystemSync requestFileSystemSync(int type, int size) native;
-
-  @JSName('webkitResolveLocalFileSystemSyncURL')
-  @DomName('SharedWorkerGlobalScope.webkitResolveLocalFileSystemSyncURL')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  @Experimental() // untriaged
-  _EntrySync resolveLocalFileSystemSyncUrl(String url) native;
-
-  @JSName('webkitResolveLocalFileSystemURL')
-  @DomName('SharedWorkerGlobalScope.webkitResolveLocalFileSystemURL')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  @Experimental() // untriaged
-  void _webkitResolveLocalFileSystemUrl(
-      String url, _EntryCallback successCallback,
-      [_ErrorCallback errorCallback]) native;
-
-  /// Stream of `connect` events handled by this [SharedWorkerGlobalScope].
-  @DomName('SharedWorkerGlobalScope.onconnect')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onConnect => connectEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SimpleLength')
-@Experimental() // untriaged
-@Native("SimpleLength")
-class SimpleLength extends LengthValue {
-  // To suppress missing implicit constructor warnings.
-  factory SimpleLength._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SimpleLength.SimpleLength')
-  @DocsEditable()
-  factory SimpleLength(num value, String type) {
-    return SimpleLength._create_1(value, type);
-  }
-  static SimpleLength _create_1(value, type) =>
-      JS('SimpleLength', 'new SimpleLength(#,#)', value, type);
-
-  @DomName('SimpleLength.type')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String type;
-
-  @DomName('SimpleLength.value')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num value;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Skew')
-@Experimental() // untriaged
-@Native("Skew")
-class Skew extends TransformComponent {
-  // To suppress missing implicit constructor warnings.
-  factory Skew._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Skew.Skew')
-  @DocsEditable()
-  factory Skew(num ax, num ay) {
-    return Skew._create_1(ax, ay);
-  }
-  static Skew _create_1(ax, ay) => JS('Skew', 'new Skew(#,#)', ax, ay);
-
-  @DomName('Skew.ax')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double ax;
-
-  @DomName('Skew.ay')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double ay;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLSlotElement')
-@Experimental() // untriaged
-@Native("HTMLSlotElement")
-class SlotElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory SlotElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  SlotElement.created() : super.created();
-
-  @DomName('HTMLSlotElement.name')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String name;
-
-  @DomName('HTMLSlotElement.getAssignedNodes')
-  @DocsEditable()
-  @Experimental() // untriaged
-  List<Node> getAssignedNodes([Map options]) {
-    if (options != null) {
-      var options_1 = convertDartToNative_Dictionary(options);
-      return _getAssignedNodes_1(options_1);
-    }
-    return _getAssignedNodes_2();
-  }
-
-  @JSName('getAssignedNodes')
-  @DomName('HTMLSlotElement.getAssignedNodes')
-  @DocsEditable()
-  @Experimental() // untriaged
-  List<Node> _getAssignedNodes_1(options) native;
-  @JSName('getAssignedNodes')
-  @DomName('HTMLSlotElement.getAssignedNodes')
-  @DocsEditable()
-  @Experimental() // untriaged
-  List<Node> _getAssignedNodes_2() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SourceBuffer')
-// https://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html#sourcebuffer
-@Experimental()
-@Native("SourceBuffer")
-class SourceBuffer extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory SourceBuffer._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SourceBuffer.appendWindowEnd')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num appendWindowEnd;
-
-  @DomName('SourceBuffer.appendWindowStart')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num appendWindowStart;
-
-  @DomName('SourceBuffer.buffered')
-  @DocsEditable()
-  final TimeRanges buffered;
-
-  @DomName('SourceBuffer.mode')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String mode;
-
-  @DomName('SourceBuffer.timestampOffset')
-  @DocsEditable()
-  num timestampOffset;
-
-  @DomName('SourceBuffer.trackDefaults')
-  @DocsEditable()
-  @Experimental() // untriaged
-  TrackDefaultList trackDefaults;
-
-  @DomName('SourceBuffer.updating')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool updating;
-
-  @DomName('SourceBuffer.abort')
-  @DocsEditable()
-  void abort() native;
-
-  @DomName('SourceBuffer.appendBuffer')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void appendBuffer(ByteBuffer data) native;
-
-  @DomName('SourceBuffer.appendStream')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void appendStream(FileStream stream, [int maxSize]) native;
-
-  @JSName('appendBuffer')
-  @DomName('SourceBuffer.appendBuffer')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void appendTypedData(TypedData data) native;
-
-  @DomName('SourceBuffer.remove')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void remove(num start, num end) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SourceBufferList')
-// https://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html#sourcebufferlist
-@Experimental()
-@Native("SourceBufferList")
-class SourceBufferList extends EventTarget
-    with ListMixin<SourceBuffer>, ImmutableListMixin<SourceBuffer>
-    implements JavaScriptIndexingBehavior<SourceBuffer>, List<SourceBuffer> {
-  // To suppress missing implicit constructor warnings.
-  factory SourceBufferList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SourceBufferList.length')
-  @DocsEditable()
-  int get length => JS("int", "#.length", this);
-
-  SourceBuffer operator [](int index) {
-    if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
-      throw new RangeError.index(index, this);
-    return JS("SourceBuffer", "#[#]", this, index);
-  }
-
-  void operator []=(int index, SourceBuffer value) {
-    throw new UnsupportedError("Cannot assign element of immutable List.");
-  }
-  // -- start List<SourceBuffer> mixins.
-  // SourceBuffer is the element type.
-
-  set length(int value) {
-    throw new UnsupportedError("Cannot resize immutable List.");
-  }
-
-  SourceBuffer get first {
-    if (this.length > 0) {
-      return JS('SourceBuffer', '#[0]', this);
-    }
-    throw new StateError("No elements");
-  }
-
-  SourceBuffer get last {
-    int len = this.length;
-    if (len > 0) {
-      return JS('SourceBuffer', '#[#]', this, len - 1);
-    }
-    throw new StateError("No elements");
-  }
-
-  SourceBuffer get single {
-    int len = this.length;
-    if (len == 1) {
-      return JS('SourceBuffer', '#[0]', this);
-    }
-    if (len == 0) throw new StateError("No elements");
-    throw new StateError("More than one element");
-  }
-
-  SourceBuffer elementAt(int index) => this[index];
-  // -- end List<SourceBuffer> mixins.
-
-  @DomName('SourceBufferList.item')
-  @DocsEditable()
-  SourceBuffer item(int index) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLSourceElement')
-@Native("HTMLSourceElement")
-class SourceElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory SourceElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLSourceElement.HTMLSourceElement')
-  @DocsEditable()
-  factory SourceElement() => JS(
-      'returns:SourceElement;creates:SourceElement;new:true',
-      '#.createElement(#)',
-      document,
-      "source");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  SourceElement.created() : super.created();
-
-  @DomName('HTMLSourceElement.media')
-  @DocsEditable()
-  String media;
-
-  @DomName('HTMLSourceElement.sizes')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String sizes;
-
-  @DomName('HTMLSourceElement.src')
-  @DocsEditable()
-  String src;
-
-  @DomName('HTMLSourceElement.srcset')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String srcset;
-
-  @DomName('HTMLSourceElement.type')
-  @DocsEditable()
-  String type;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SourceInfo')
-@Experimental() // untriaged
-@Native("SourceInfo")
-class SourceInfo extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory SourceInfo._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SourceInfo.facing')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String facing;
-
-  @DomName('SourceInfo.id')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String id;
-
-  @DomName('SourceInfo.kind')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String kind;
-
-  @DomName('SourceInfo.label')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String label;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLSpanElement')
-@Native("HTMLSpanElement")
-class SpanElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory SpanElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLSpanElement.HTMLSpanElement')
-  @DocsEditable()
-  factory SpanElement() => JS(
-      'returns:SpanElement;creates:SpanElement;new:true',
-      '#.createElement(#)',
-      document,
-      "span");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  SpanElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SpeechGrammar')
-// https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#dfn-speechgrammar
-@Experimental()
-@Native("SpeechGrammar")
-class SpeechGrammar extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory SpeechGrammar._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SpeechGrammar.SpeechGrammar')
-  @DocsEditable()
-  factory SpeechGrammar() {
-    return SpeechGrammar._create_1();
-  }
-  static SpeechGrammar _create_1() =>
-      JS('SpeechGrammar', 'new SpeechGrammar()');
-
-  @DomName('SpeechGrammar.src')
-  @DocsEditable()
-  String src;
-
-  @DomName('SpeechGrammar.weight')
-  @DocsEditable()
-  num weight;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SpeechGrammarList')
-// https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#dfn-speechgrammarlist
-@Experimental()
-@Native("SpeechGrammarList")
-class SpeechGrammarList extends Interceptor
-    with ListMixin<SpeechGrammar>, ImmutableListMixin<SpeechGrammar>
-    implements JavaScriptIndexingBehavior<SpeechGrammar>, List<SpeechGrammar> {
-  // To suppress missing implicit constructor warnings.
-  factory SpeechGrammarList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SpeechGrammarList.SpeechGrammarList')
-  @DocsEditable()
-  factory SpeechGrammarList() {
-    return SpeechGrammarList._create_1();
-  }
-  static SpeechGrammarList _create_1() =>
-      JS('SpeechGrammarList', 'new SpeechGrammarList()');
-
-  @DomName('SpeechGrammarList.length')
-  @DocsEditable()
-  int get length => JS("int", "#.length", this);
-
-  SpeechGrammar operator [](int index) {
-    if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
-      throw new RangeError.index(index, this);
-    return JS("SpeechGrammar", "#[#]", this, index);
-  }
-
-  void operator []=(int index, SpeechGrammar value) {
-    throw new UnsupportedError("Cannot assign element of immutable List.");
-  }
-  // -- start List<SpeechGrammar> mixins.
-  // SpeechGrammar is the element type.
-
-  set length(int value) {
-    throw new UnsupportedError("Cannot resize immutable List.");
-  }
-
-  SpeechGrammar get first {
-    if (this.length > 0) {
-      return JS('SpeechGrammar', '#[0]', this);
-    }
-    throw new StateError("No elements");
-  }
-
-  SpeechGrammar get last {
-    int len = this.length;
-    if (len > 0) {
-      return JS('SpeechGrammar', '#[#]', this, len - 1);
-    }
-    throw new StateError("No elements");
-  }
-
-  SpeechGrammar get single {
-    int len = this.length;
-    if (len == 1) {
-      return JS('SpeechGrammar', '#[0]', this);
-    }
-    if (len == 0) throw new StateError("No elements");
-    throw new StateError("More than one element");
-  }
-
-  SpeechGrammar elementAt(int index) => this[index];
-  // -- end List<SpeechGrammar> mixins.
-
-  @DomName('SpeechGrammarList.addFromString')
-  @DocsEditable()
-  void addFromString(String string, [num weight]) native;
-
-  @DomName('SpeechGrammarList.addFromUri')
-  @DocsEditable()
-  void addFromUri(String src, [num weight]) native;
-
-  @DomName('SpeechGrammarList.item')
-  @DocsEditable()
-  SpeechGrammar item(int index) native;
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('SpeechRecognition')
-@SupportedBrowser(SupportedBrowser.CHROME, '25')
-@Experimental()
-// https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#speechreco-section
-@Native("SpeechRecognition")
-class SpeechRecognition extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory SpeechRecognition._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `audioend` events to event
-   * handlers that are not necessarily instances of [SpeechRecognition].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('SpeechRecognition.audioendEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> audioEndEvent =
-      const EventStreamProvider<Event>('audioend');
-
-  /**
-   * Static factory designed to expose `audiostart` events to event
-   * handlers that are not necessarily instances of [SpeechRecognition].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('SpeechRecognition.audiostartEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> audioStartEvent =
-      const EventStreamProvider<Event>('audiostart');
-
-  /**
-   * Static factory designed to expose `end` events to event
-   * handlers that are not necessarily instances of [SpeechRecognition].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('SpeechRecognition.endEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> endEvent =
-      const EventStreamProvider<Event>('end');
-
-  /**
-   * Static factory designed to expose `error` events to event
-   * handlers that are not necessarily instances of [SpeechRecognition].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('SpeechRecognition.errorEvent')
-  @DocsEditable()
-  static const EventStreamProvider<SpeechRecognitionError> errorEvent =
-      const EventStreamProvider<SpeechRecognitionError>('error');
-
-  /**
-   * Static factory designed to expose `nomatch` events to event
-   * handlers that are not necessarily instances of [SpeechRecognition].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('SpeechRecognition.nomatchEvent')
-  @DocsEditable()
-  static const EventStreamProvider<SpeechRecognitionEvent> noMatchEvent =
-      const EventStreamProvider<SpeechRecognitionEvent>('nomatch');
-
-  /**
-   * Static factory designed to expose `result` events to event
-   * handlers that are not necessarily instances of [SpeechRecognition].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('SpeechRecognition.resultEvent')
-  @DocsEditable()
-  static const EventStreamProvider<SpeechRecognitionEvent> resultEvent =
-      const EventStreamProvider<SpeechRecognitionEvent>('result');
-
-  /**
-   * Static factory designed to expose `soundend` events to event
-   * handlers that are not necessarily instances of [SpeechRecognition].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('SpeechRecognition.soundendEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> soundEndEvent =
-      const EventStreamProvider<Event>('soundend');
-
-  /**
-   * Static factory designed to expose `soundstart` events to event
-   * handlers that are not necessarily instances of [SpeechRecognition].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('SpeechRecognition.soundstartEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> soundStartEvent =
-      const EventStreamProvider<Event>('soundstart');
-
-  /**
-   * Static factory designed to expose `speechend` events to event
-   * handlers that are not necessarily instances of [SpeechRecognition].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('SpeechRecognition.speechendEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> speechEndEvent =
-      const EventStreamProvider<Event>('speechend');
-
-  /**
-   * Static factory designed to expose `speechstart` events to event
-   * handlers that are not necessarily instances of [SpeechRecognition].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('SpeechRecognition.speechstartEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> speechStartEvent =
-      const EventStreamProvider<Event>('speechstart');
-
-  /**
-   * Static factory designed to expose `start` events to event
-   * handlers that are not necessarily instances of [SpeechRecognition].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('SpeechRecognition.startEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> startEvent =
-      const EventStreamProvider<Event>('start');
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported => JS(
-      'bool', '!!(window.SpeechRecognition || window.webkitSpeechRecognition)');
-
-  @DomName('SpeechRecognition.audioTrack')
-  @DocsEditable()
-  @Experimental() // untriaged
-  MediaStreamTrack audioTrack;
-
-  @DomName('SpeechRecognition.continuous')
-  @DocsEditable()
-  bool continuous;
-
-  @DomName('SpeechRecognition.grammars')
-  @DocsEditable()
-  SpeechGrammarList grammars;
-
-  @DomName('SpeechRecognition.interimResults')
-  @DocsEditable()
-  bool interimResults;
-
-  @DomName('SpeechRecognition.lang')
-  @DocsEditable()
-  String lang;
-
-  @DomName('SpeechRecognition.maxAlternatives')
-  @DocsEditable()
-  int maxAlternatives;
-
-  @DomName('SpeechRecognition.abort')
-  @DocsEditable()
-  void abort() native;
-
-  @DomName('SpeechRecognition.start')
-  @DocsEditable()
-  void start() native;
-
-  @DomName('SpeechRecognition.stop')
-  @DocsEditable()
-  void stop() native;
-
-  /// Stream of `audioend` events handled by this [SpeechRecognition].
-  @DomName('SpeechRecognition.onaudioend')
-  @DocsEditable()
-  Stream<Event> get onAudioEnd => audioEndEvent.forTarget(this);
-
-  /// Stream of `audiostart` events handled by this [SpeechRecognition].
-  @DomName('SpeechRecognition.onaudiostart')
-  @DocsEditable()
-  Stream<Event> get onAudioStart => audioStartEvent.forTarget(this);
-
-  /// Stream of `end` events handled by this [SpeechRecognition].
-  @DomName('SpeechRecognition.onend')
-  @DocsEditable()
-  Stream<Event> get onEnd => endEvent.forTarget(this);
-
-  /// Stream of `error` events handled by this [SpeechRecognition].
-  @DomName('SpeechRecognition.onerror')
-  @DocsEditable()
-  Stream<SpeechRecognitionError> get onError => errorEvent.forTarget(this);
-
-  /// Stream of `nomatch` events handled by this [SpeechRecognition].
-  @DomName('SpeechRecognition.onnomatch')
-  @DocsEditable()
-  Stream<SpeechRecognitionEvent> get onNoMatch => noMatchEvent.forTarget(this);
-
-  /// Stream of `result` events handled by this [SpeechRecognition].
-  @DomName('SpeechRecognition.onresult')
-  @DocsEditable()
-  Stream<SpeechRecognitionEvent> get onResult => resultEvent.forTarget(this);
-
-  /// Stream of `soundend` events handled by this [SpeechRecognition].
-  @DomName('SpeechRecognition.onsoundend')
-  @DocsEditable()
-  Stream<Event> get onSoundEnd => soundEndEvent.forTarget(this);
-
-  /// Stream of `soundstart` events handled by this [SpeechRecognition].
-  @DomName('SpeechRecognition.onsoundstart')
-  @DocsEditable()
-  Stream<Event> get onSoundStart => soundStartEvent.forTarget(this);
-
-  /// Stream of `speechend` events handled by this [SpeechRecognition].
-  @DomName('SpeechRecognition.onspeechend')
-  @DocsEditable()
-  Stream<Event> get onSpeechEnd => speechEndEvent.forTarget(this);
-
-  /// Stream of `speechstart` events handled by this [SpeechRecognition].
-  @DomName('SpeechRecognition.onspeechstart')
-  @DocsEditable()
-  Stream<Event> get onSpeechStart => speechStartEvent.forTarget(this);
-
-  /// Stream of `start` events handled by this [SpeechRecognition].
-  @DomName('SpeechRecognition.onstart')
-  @DocsEditable()
-  Stream<Event> get onStart => startEvent.forTarget(this);
-
-  factory SpeechRecognition() {
-    return JS('SpeechRecognition',
-        'new (window.SpeechRecognition || window.webkitSpeechRecognition)()');
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SpeechRecognitionAlternative')
-@SupportedBrowser(SupportedBrowser.CHROME, '25')
-@Experimental()
-// https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#speechrecognitionalternative
-@Native("SpeechRecognitionAlternative")
-class SpeechRecognitionAlternative extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory SpeechRecognitionAlternative._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SpeechRecognitionAlternative.confidence')
-  @DocsEditable()
-  final double confidence;
-
-  @DomName('SpeechRecognitionAlternative.transcript')
-  @DocsEditable()
-  final String transcript;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SpeechRecognitionError')
-@SupportedBrowser(SupportedBrowser.CHROME, '25')
-@Experimental()
-// https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#speechreco-error
-@Native("SpeechRecognitionError")
-class SpeechRecognitionError extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory SpeechRecognitionError._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SpeechRecognitionError.SpeechRecognitionError')
-  @DocsEditable()
-  factory SpeechRecognitionError(String type, [Map initDict]) {
-    if (initDict != null) {
-      var initDict_1 = convertDartToNative_Dictionary(initDict);
-      return SpeechRecognitionError._create_1(type, initDict_1);
-    }
-    return SpeechRecognitionError._create_2(type);
-  }
-  static SpeechRecognitionError _create_1(type, initDict) => JS(
-      'SpeechRecognitionError',
-      'new SpeechRecognitionError(#,#)',
-      type,
-      initDict);
-  static SpeechRecognitionError _create_2(type) =>
-      JS('SpeechRecognitionError', 'new SpeechRecognitionError(#)', type);
-
-  @DomName('SpeechRecognitionError.error')
-  @DocsEditable()
-  final String error;
-
-  @DomName('SpeechRecognitionError.message')
-  @DocsEditable()
-  final String message;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SpeechRecognitionEvent')
-@SupportedBrowser(SupportedBrowser.CHROME, '25')
-@Experimental()
-// https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#speechreco-event
-@Native("SpeechRecognitionEvent")
-class SpeechRecognitionEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory SpeechRecognitionEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SpeechRecognitionEvent.SpeechRecognitionEvent')
-  @DocsEditable()
-  factory SpeechRecognitionEvent(String type, [Map initDict]) {
-    if (initDict != null) {
-      var initDict_1 = convertDartToNative_Dictionary(initDict);
-      return SpeechRecognitionEvent._create_1(type, initDict_1);
-    }
-    return SpeechRecognitionEvent._create_2(type);
-  }
-  static SpeechRecognitionEvent _create_1(type, initDict) => JS(
-      'SpeechRecognitionEvent',
-      'new SpeechRecognitionEvent(#,#)',
-      type,
-      initDict);
-  static SpeechRecognitionEvent _create_2(type) =>
-      JS('SpeechRecognitionEvent', 'new SpeechRecognitionEvent(#)', type);
-
-  @DomName('SpeechRecognitionEvent.emma')
-  @DocsEditable()
-  final Document emma;
-
-  @DomName('SpeechRecognitionEvent.interpretation')
-  @DocsEditable()
-  final Document interpretation;
-
-  @DomName('SpeechRecognitionEvent.resultIndex')
-  @DocsEditable()
-  final int resultIndex;
-
-  @DomName('SpeechRecognitionEvent.results')
-  @DocsEditable()
-  @Returns('_SpeechRecognitionResultList|Null')
-  @Creates('_SpeechRecognitionResultList')
-  final List<SpeechRecognitionResult> results;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SpeechRecognitionResult')
-@SupportedBrowser(SupportedBrowser.CHROME, '25')
-@Experimental()
-// https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#speechrecognitionresult
-@Native("SpeechRecognitionResult")
-class SpeechRecognitionResult extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory SpeechRecognitionResult._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SpeechRecognitionResult.isFinal')
-  @DocsEditable()
-  final bool isFinal;
-
-  @DomName('SpeechRecognitionResult.length')
-  @DocsEditable()
-  final int length;
-
-  @DomName('SpeechRecognitionResult.item')
-  @DocsEditable()
-  SpeechRecognitionAlternative item(int index) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SpeechSynthesis')
-// https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#tts-section
-@Experimental()
-@Native("SpeechSynthesis")
-class SpeechSynthesis extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory SpeechSynthesis._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SpeechSynthesis.paused')
-  @DocsEditable()
-  final bool paused;
-
-  @DomName('SpeechSynthesis.pending')
-  @DocsEditable()
-  final bool pending;
-
-  @DomName('SpeechSynthesis.speaking')
-  @DocsEditable()
-  final bool speaking;
-
-  @DomName('SpeechSynthesis.cancel')
-  @DocsEditable()
-  void cancel() native;
-
-  @DomName('SpeechSynthesis.getVoices')
-  @DocsEditable()
-  List<SpeechSynthesisVoice> getVoices() native;
-
-  @DomName('SpeechSynthesis.pause')
-  @DocsEditable()
-  void pause() native;
-
-  @DomName('SpeechSynthesis.resume')
-  @DocsEditable()
-  void resume() native;
-
-  @DomName('SpeechSynthesis.speak')
-  @DocsEditable()
-  void speak(SpeechSynthesisUtterance utterance) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SpeechSynthesisEvent')
-// https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#tts-section
-@Experimental()
-@Native("SpeechSynthesisEvent")
-class SpeechSynthesisEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory SpeechSynthesisEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SpeechSynthesisEvent.charIndex')
-  @DocsEditable()
-  final int charIndex;
-
-  @DomName('SpeechSynthesisEvent.elapsedTime')
-  @DocsEditable()
-  final double elapsedTime;
-
-  @DomName('SpeechSynthesisEvent.name')
-  @DocsEditable()
-  final String name;
-
-  @DomName('SpeechSynthesisEvent.utterance')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final SpeechSynthesisUtterance utterance;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SpeechSynthesisUtterance')
-// https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#tts-section
-@Experimental()
-@Native("SpeechSynthesisUtterance")
-class SpeechSynthesisUtterance extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory SpeechSynthesisUtterance._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `boundary` events to event
-   * handlers that are not necessarily instances of [SpeechSynthesisUtterance].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('SpeechSynthesisUtterance.boundaryEvent')
-  @DocsEditable()
-  static const EventStreamProvider<SpeechSynthesisEvent> boundaryEvent =
-      const EventStreamProvider<SpeechSynthesisEvent>('boundary');
-
-  /**
-   * Static factory designed to expose `end` events to event
-   * handlers that are not necessarily instances of [SpeechSynthesisUtterance].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('SpeechSynthesisUtterance.endEvent')
-  @DocsEditable()
-  static const EventStreamProvider<SpeechSynthesisEvent> endEvent =
-      const EventStreamProvider<SpeechSynthesisEvent>('end');
-
-  /**
-   * Static factory designed to expose `error` events to event
-   * handlers that are not necessarily instances of [SpeechSynthesisUtterance].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('SpeechSynthesisUtterance.errorEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> errorEvent =
-      const EventStreamProvider<Event>('error');
-
-  /**
-   * Static factory designed to expose `mark` events to event
-   * handlers that are not necessarily instances of [SpeechSynthesisUtterance].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('SpeechSynthesisUtterance.markEvent')
-  @DocsEditable()
-  static const EventStreamProvider<SpeechSynthesisEvent> markEvent =
-      const EventStreamProvider<SpeechSynthesisEvent>('mark');
-
-  /**
-   * Static factory designed to expose `pause` events to event
-   * handlers that are not necessarily instances of [SpeechSynthesisUtterance].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('SpeechSynthesisUtterance.pauseEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> pauseEvent =
-      const EventStreamProvider<Event>('pause');
-
-  /**
-   * Static factory designed to expose `resume` events to event
-   * handlers that are not necessarily instances of [SpeechSynthesisUtterance].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('SpeechSynthesisUtterance.resumeEvent')
-  @DocsEditable()
-  static const EventStreamProvider<SpeechSynthesisEvent> resumeEvent =
-      const EventStreamProvider<SpeechSynthesisEvent>('resume');
-
-  /**
-   * Static factory designed to expose `start` events to event
-   * handlers that are not necessarily instances of [SpeechSynthesisUtterance].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('SpeechSynthesisUtterance.startEvent')
-  @DocsEditable()
-  static const EventStreamProvider<SpeechSynthesisEvent> startEvent =
-      const EventStreamProvider<SpeechSynthesisEvent>('start');
-
-  @DomName('SpeechSynthesisUtterance.SpeechSynthesisUtterance')
-  @DocsEditable()
-  factory SpeechSynthesisUtterance([String text]) {
-    if (text != null) {
-      return SpeechSynthesisUtterance._create_1(text);
-    }
-    return SpeechSynthesisUtterance._create_2();
-  }
-  static SpeechSynthesisUtterance _create_1(text) =>
-      JS('SpeechSynthesisUtterance', 'new SpeechSynthesisUtterance(#)', text);
-  static SpeechSynthesisUtterance _create_2() =>
-      JS('SpeechSynthesisUtterance', 'new SpeechSynthesisUtterance()');
-
-  @DomName('SpeechSynthesisUtterance.lang')
-  @DocsEditable()
-  String lang;
-
-  @DomName('SpeechSynthesisUtterance.pitch')
-  @DocsEditable()
-  num pitch;
-
-  @DomName('SpeechSynthesisUtterance.rate')
-  @DocsEditable()
-  num rate;
-
-  @DomName('SpeechSynthesisUtterance.text')
-  @DocsEditable()
-  String text;
-
-  @DomName('SpeechSynthesisUtterance.voice')
-  @DocsEditable()
-  SpeechSynthesisVoice voice;
-
-  @DomName('SpeechSynthesisUtterance.volume')
-  @DocsEditable()
-  num volume;
-
-  /// Stream of `boundary` events handled by this [SpeechSynthesisUtterance].
-  @DomName('SpeechSynthesisUtterance.onboundary')
-  @DocsEditable()
-  Stream<SpeechSynthesisEvent> get onBoundary => boundaryEvent.forTarget(this);
-
-  /// Stream of `end` events handled by this [SpeechSynthesisUtterance].
-  @DomName('SpeechSynthesisUtterance.onend')
-  @DocsEditable()
-  Stream<SpeechSynthesisEvent> get onEnd => endEvent.forTarget(this);
-
-  /// Stream of `error` events handled by this [SpeechSynthesisUtterance].
-  @DomName('SpeechSynthesisUtterance.onerror')
-  @DocsEditable()
-  Stream<Event> get onError => errorEvent.forTarget(this);
-
-  /// Stream of `mark` events handled by this [SpeechSynthesisUtterance].
-  @DomName('SpeechSynthesisUtterance.onmark')
-  @DocsEditable()
-  Stream<SpeechSynthesisEvent> get onMark => markEvent.forTarget(this);
-
-  /// Stream of `pause` events handled by this [SpeechSynthesisUtterance].
-  @DomName('SpeechSynthesisUtterance.onpause')
-  @DocsEditable()
-  Stream<Event> get onPause => pauseEvent.forTarget(this);
-
-  /// Stream of `resume` events handled by this [SpeechSynthesisUtterance].
-  @DomName('SpeechSynthesisUtterance.onresume')
-  @DocsEditable()
-  Stream<SpeechSynthesisEvent> get onResume => resumeEvent.forTarget(this);
-
-  /// Stream of `start` events handled by this [SpeechSynthesisUtterance].
-  @DomName('SpeechSynthesisUtterance.onstart')
-  @DocsEditable()
-  Stream<SpeechSynthesisEvent> get onStart => startEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SpeechSynthesisVoice')
-// https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#tts-section
-@Experimental()
-@Native("SpeechSynthesisVoice")
-class SpeechSynthesisVoice extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory SpeechSynthesisVoice._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @JSName('default')
-  @DomName('SpeechSynthesisVoice.default')
-  @DocsEditable()
-  final bool defaultValue;
-
-  @DomName('SpeechSynthesisVoice.lang')
-  @DocsEditable()
-  final String lang;
-
-  @DomName('SpeechSynthesisVoice.localService')
-  @DocsEditable()
-  final bool localService;
-
-  @DomName('SpeechSynthesisVoice.name')
-  @DocsEditable()
-  final String name;
-
-  @JSName('voiceURI')
-  @DomName('SpeechSynthesisVoice.voiceURI')
-  @DocsEditable()
-  final String voiceUri;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/**
- * The type used by the
- * [Window.localStorage] and [Window.sessionStorage] properties.
- * Storage is implemented as a Map&lt;String, String>.
- *
- * To store and get values, use Dart's built-in map syntax:
- *
- *     window.localStorage['key1'] = 'val1';
- *     window.localStorage['key2'] = 'val2';
- *     window.localStorage['key3'] = 'val3';
- *     assert(window.localStorage['key3'] == 'val3');
- *
- * You can use [Map](http://api.dartlang.org/dart_core/Map.html) APIs
- * such as containsValue(), clear(), and length:
- *
- *     assert(window.localStorage.containsValue('does not exist') == false);
- *     window.localStorage.clear();
- *     assert(window.localStorage.length == 0);
- *
- * For more examples of using this API, see
- * [localstorage_test.dart](http://code.google.com/p/dart/source/browse/branches/bleeding_edge/dart/tests/html/localstorage_test.dart).
- * For details on using the Map API, see the
- * [Maps](https://www.dartlang.org/guides/libraries/library-tour#maps)
- * section of the library tour.
- */
-@DomName('Storage')
-@Unstable()
-@Native("Storage")
-class Storage extends Interceptor implements Map<String, String> {
-  void addAll(Map<String, String> other) {
-    other.forEach((k, v) {
-      this[k] = v;
-    });
-  }
-
-  // TODO(nweiz): update this when maps support lazy iteration
-  bool containsValue(Object value) => values.any((e) => e == value);
-
-  bool containsKey(Object key) => _getItem(key) != null;
-
-  String operator [](Object key) => _getItem(key);
-
-  void operator []=(String key, String value) {
-    _setItem(key, value);
-  }
-
-  String putIfAbsent(String key, String ifAbsent()) {
-    if (!containsKey(key)) this[key] = ifAbsent();
-    return this[key];
-  }
-
-  String remove(Object key) {
-    final value = this[key];
-    _removeItem(key);
-    return value;
-  }
-
-  void clear() => _clear();
-
-  void forEach(void f(String key, String value)) {
-    for (var i = 0; true; i++) {
-      final key = _key(i);
-      if (key == null) return;
-
-      f(key, this[key]);
-    }
-  }
-
-  Iterable<String> get keys {
-    final keys = <String>[];
-    forEach((k, v) => keys.add(k));
-    return keys;
-  }
-
-  Iterable<String> get values {
-    final values = <String>[];
-    forEach((k, v) => values.add(v));
-    return values;
-  }
-
-  int get length => _length;
-
-  bool get isEmpty => _key(0) == null;
-
-  bool get isNotEmpty => !isEmpty;
-  // To suppress missing implicit constructor warnings.
-  factory Storage._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @JSName('length')
-  @DomName('Storage.length')
-  @DocsEditable()
-  final int _length;
-
-  @DomName('Storage.__delete__')
-  @DocsEditable()
-  bool __delete__(index_OR_name) native;
-
-  @DomName('Storage.__getter__')
-  @DocsEditable()
-  String __getter__(index_OR_name) native;
-
-  @DomName('Storage.__setter__')
-  @DocsEditable()
-  void __setter__(index_OR_name, String value) native;
-
-  @JSName('clear')
-  @DomName('Storage.clear')
-  @DocsEditable()
-  void _clear() native;
-
-  @JSName('getItem')
-  @DomName('Storage.getItem')
-  @DocsEditable()
-  String _getItem(String key) native;
-
-  @JSName('key')
-  @DomName('Storage.key')
-  @DocsEditable()
-  String _key(int index) native;
-
-  @JSName('removeItem')
-  @DomName('Storage.removeItem')
-  @DocsEditable()
-  void _removeItem(String key) native;
-
-  @JSName('setItem')
-  @DomName('Storage.setItem')
-  @DocsEditable()
-  void _setItem(String key, String value) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('StorageErrorCallback')
-// http://www.w3.org/TR/quota-api/#storageerrorcallback-callback
-@Experimental()
-typedef void StorageErrorCallback(DomError error);
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('StorageEvent')
-@Unstable()
-@Native("StorageEvent")
-class StorageEvent extends Event {
-  factory StorageEvent(String type,
-      {bool canBubble: false,
-      bool cancelable: false,
-      String key,
-      String oldValue,
-      String newValue,
-      String url,
-      Storage storageArea}) {
-    StorageEvent e = document._createEvent("StorageEvent");
-    e._initStorageEvent(
-        type, canBubble, cancelable, key, oldValue, newValue, url, storageArea);
-    return e;
-  }
-
-  @DomName('StorageEvent.StorageEvent')
-  @DocsEditable()
-  factory StorageEvent._(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return StorageEvent._create_1(type, eventInitDict_1);
-    }
-    return StorageEvent._create_2(type);
-  }
-  static StorageEvent _create_1(type, eventInitDict) =>
-      JS('StorageEvent', 'new StorageEvent(#,#)', type, eventInitDict);
-  static StorageEvent _create_2(type) =>
-      JS('StorageEvent', 'new StorageEvent(#)', type);
-
-  @DomName('StorageEvent.key')
-  @DocsEditable()
-  final String key;
-
-  @DomName('StorageEvent.newValue')
-  @DocsEditable()
-  final String newValue;
-
-  @DomName('StorageEvent.oldValue')
-  @DocsEditable()
-  final String oldValue;
-
-  @DomName('StorageEvent.storageArea')
-  @DocsEditable()
-  final Storage storageArea;
-
-  @DomName('StorageEvent.url')
-  @DocsEditable()
-  final String url;
-
-  @JSName('initStorageEvent')
-  @DomName('StorageEvent.initStorageEvent')
-  @DocsEditable()
-  void _initStorageEvent(
-      String typeArg,
-      bool canBubbleArg,
-      bool cancelableArg,
-      String keyArg,
-      String oldValueArg,
-      String newValueArg,
-      String urlArg,
-      Storage storageAreaArg) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('StorageInfo')
-// http://www.w3.org/TR/file-system-api/
-@Experimental()
-@Native("StorageInfo")
-class StorageInfo extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory StorageInfo._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('StorageInfo.quota')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int quota;
-
-  @DomName('StorageInfo.usage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int usage;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('StorageManager')
-@Experimental() // untriaged
-@Native("StorageManager")
-class StorageManager extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory StorageManager._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('StorageManager.persistentPermission')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future persistentPermission() native;
-
-  @DomName('StorageManager.requestPersistent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future requestPersistent() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('StorageQuota')
-// http://www.w3.org/TR/quota-api/#idl-def-StorageQuota
-@Experimental()
-@Native("StorageQuota")
-class StorageQuota extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory StorageQuota._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('StorageQuota.supportedTypes')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final List<String> supportedTypes;
-
-  @DomName('StorageQuota.queryInfo')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future queryInfo(String type) native;
-
-  @DomName('StorageQuota.requestPersistentQuota')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future requestPersistentQuota(int newQuota) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('StorageQuotaCallback')
-// http://www.w3.org/TR/quota-api/#idl-def-StorageQuotaCallback
-@Experimental()
-typedef void StorageQuotaCallback(int grantedQuotaInBytes);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('StorageUsageCallback')
-// http://www.w3.org/TR/quota-api/#idl-def-StorageUsageCallback
-@Experimental()
-typedef void StorageUsageCallback(
-    int currentUsageInBytes, int currentQuotaInBytes);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('StringCallback')
-// http://www.w3.org/TR/2011/WD-html5-20110113/dnd.html#the-datatransferitem-interface
-@Experimental()
-typedef void _StringCallback(String data);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLStyleElement')
-@Native("HTMLStyleElement")
-class StyleElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory StyleElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLStyleElement.HTMLStyleElement')
-  @DocsEditable()
-  factory StyleElement() => JS(
-      'returns:StyleElement;creates:StyleElement;new:true',
-      '#.createElement(#)',
-      document,
-      "style");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  StyleElement.created() : super.created();
-
-  @DomName('HTMLStyleElement.disabled')
-  @DocsEditable()
-  bool disabled;
-
-  @DomName('HTMLStyleElement.media')
-  @DocsEditable()
-  String media;
-
-  @DomName('HTMLStyleElement.sheet')
-  @DocsEditable()
-  final StyleSheet sheet;
-
-  @DomName('HTMLStyleElement.type')
-  @DocsEditable()
-  String type;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('StyleMedia')
-// http://developer.apple.com/library/safari/#documentation/SafariDOMAdditions/Reference/StyleMedia/StyleMedia/StyleMedia.html
-@Experimental() // nonstandard
-@Native("StyleMedia")
-class StyleMedia extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory StyleMedia._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('StyleMedia.type')
-  @DocsEditable()
-  final String type;
-
-  @DomName('StyleMedia.matchMedium')
-  @DocsEditable()
-  bool matchMedium(String mediaquery) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('StylePropertyMap')
-@Experimental() // untriaged
-@Native("StylePropertyMap")
-class StylePropertyMap extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory StylePropertyMap._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('StylePropertyMap.append')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void append(String property, Object value) native;
-
-  @DomName('StylePropertyMap.delete')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void delete(String property) native;
-
-  @DomName('StylePropertyMap.get')
-  @DocsEditable()
-  @Experimental() // untriaged
-  StyleValue get(String property) native;
-
-  @DomName('StylePropertyMap.getAll')
-  @DocsEditable()
-  @Experimental() // untriaged
-  List<StyleValue> getAll(String property) native;
-
-  @DomName('StylePropertyMap.getProperties')
-  @DocsEditable()
-  @Experimental() // untriaged
-  List<String> getProperties() native;
-
-  @DomName('StylePropertyMap.has')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool has(String property) native;
-
-  @DomName('StylePropertyMap.set')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void set(String property, Object value) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('StyleSheet')
-@Native("StyleSheet")
-class StyleSheet extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory StyleSheet._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('StyleSheet.disabled')
-  @DocsEditable()
-  bool disabled;
-
-  @DomName('StyleSheet.href')
-  @DocsEditable()
-  final String href;
-
-  @DomName('StyleSheet.media')
-  @DocsEditable()
-  final MediaList media;
-
-  @DomName('StyleSheet.ownerNode')
-  @DocsEditable()
-  final Node ownerNode;
-
-  @DomName('StyleSheet.parentStyleSheet')
-  @DocsEditable()
-  final StyleSheet parentStyleSheet;
-
-  @DomName('StyleSheet.title')
-  @DocsEditable()
-  final String title;
-
-  @DomName('StyleSheet.type')
-  @DocsEditable()
-  final String type;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('StyleValue')
-@Experimental() // untriaged
-@Native("StyleValue")
-class StyleValue extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory StyleValue._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('StyleValue.cssString')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String cssString;
-
-  @DomName('StyleValue.parse')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static Object parse(String property, String cssText) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SyncEvent')
-@Experimental() // untriaged
-@Native("SyncEvent")
-class SyncEvent extends ExtendableEvent {
-  // To suppress missing implicit constructor warnings.
-  factory SyncEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SyncEvent.SyncEvent')
-  @DocsEditable()
-  factory SyncEvent(String type, Map init) {
-    var init_1 = convertDartToNative_Dictionary(init);
-    return SyncEvent._create_1(type, init_1);
-  }
-  static SyncEvent _create_1(type, init) =>
-      JS('SyncEvent', 'new SyncEvent(#,#)', type, init);
-
-  @DomName('SyncEvent.lastChance')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool lastChance;
-
-  @DomName('SyncEvent.tag')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String tag;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SyncManager')
-@Experimental() // untriaged
-@Native("SyncManager")
-class SyncManager extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory SyncManager._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SyncManager.getTags')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future getTags() native;
-
-  @DomName('SyncManager.register')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future register(String tag) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLTableCaptionElement')
-@Native("HTMLTableCaptionElement")
-class TableCaptionElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory TableCaptionElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLTableCaptionElement.HTMLTableCaptionElement')
-  @DocsEditable()
-  factory TableCaptionElement() => JS(
-      'returns:TableCaptionElement;creates:TableCaptionElement;new:true',
-      '#.createElement(#)',
-      document,
-      "caption");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  TableCaptionElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLTableCellElement')
-@Native(
-    "HTMLTableCellElement,HTMLTableDataCellElement,HTMLTableHeaderCellElement")
-class TableCellElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory TableCellElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLTableCellElement.HTMLTableCellElement')
-  @DocsEditable()
-  factory TableCellElement() => JS(
-      'returns:TableCellElement;creates:TableCellElement;new:true',
-      '#.createElement(#)',
-      document,
-      "td");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  TableCellElement.created() : super.created();
-
-  @DomName('HTMLTableCellElement.cellIndex')
-  @DocsEditable()
-  final int cellIndex;
-
-  @DomName('HTMLTableCellElement.colSpan')
-  @DocsEditable()
-  int colSpan;
-
-  @DomName('HTMLTableCellElement.headers')
-  @DocsEditable()
-  String headers;
-
-  @DomName('HTMLTableCellElement.rowSpan')
-  @DocsEditable()
-  int rowSpan;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLTableColElement')
-@Native("HTMLTableColElement")
-class TableColElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory TableColElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLTableColElement.HTMLTableColElement')
-  @DocsEditable()
-  factory TableColElement() => JS(
-      'returns:TableColElement;creates:TableColElement;new:true',
-      '#.createElement(#)',
-      document,
-      "col");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  TableColElement.created() : super.created();
-
-  @DomName('HTMLTableColElement.span')
-  @DocsEditable()
-  int span;
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLTableElement')
-@Native("HTMLTableElement")
-class TableElement extends HtmlElement {
-  @DomName('HTMLTableElement.tBodies')
-  List<TableSectionElement> get tBodies =>
-      new _WrappedList<TableSectionElement>(_tBodies);
-
-  @DomName('HTMLTableElement.rows')
-  List<TableRowElement> get rows => new _WrappedList<TableRowElement>(_rows);
-
-  TableRowElement addRow() {
-    return insertRow(-1);
-  }
-
-  TableCaptionElement createCaption() => _createCaption();
-  TableSectionElement createTBody() => _createTBody();
-  TableSectionElement createTFoot() => _createTFoot();
-  TableSectionElement createTHead() => _createTHead();
-  TableRowElement insertRow(int index) => _insertRow(index);
-
-  TableSectionElement _createTBody() {
-    if (JS('bool', '!!#.createTBody', this)) {
-      return this._nativeCreateTBody();
-    }
-    var tbody = new Element.tag('tbody');
-    this.children.add(tbody);
-    return tbody;
-  }
-
-  @JSName('createTBody')
-  TableSectionElement _nativeCreateTBody() native;
-
-  DocumentFragment createFragment(String html,
-      {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
-    if (Range.supportsCreateContextualFragment) {
-      return super.createFragment(html,
-          validator: validator, treeSanitizer: treeSanitizer);
-    }
-    // IE9 workaround which does not support innerHTML on Table elements.
-    var contextualHtml = '<table>$html</table>';
-    var table = new Element.html(contextualHtml,
-        validator: validator, treeSanitizer: treeSanitizer);
-    var fragment = new DocumentFragment();
-    fragment.nodes.addAll(table.nodes);
-
-    return fragment;
-  }
-
-  // To suppress missing implicit constructor warnings.
-  factory TableElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLTableElement.HTMLTableElement')
-  @DocsEditable()
-  factory TableElement() => JS(
-      'returns:TableElement;creates:TableElement;new:true',
-      '#.createElement(#)',
-      document,
-      "table");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  TableElement.created() : super.created();
-
-  @DomName('HTMLTableElement.caption')
-  @DocsEditable()
-  TableCaptionElement caption;
-
-  @JSName('rows')
-  @DomName('HTMLTableElement.rows')
-  @DocsEditable()
-  @Returns('HtmlCollection|Null')
-  @Creates('HtmlCollection')
-  final List<Node> _rows;
-
-  @JSName('tBodies')
-  @DomName('HTMLTableElement.tBodies')
-  @DocsEditable()
-  @Returns('HtmlCollection|Null')
-  @Creates('HtmlCollection')
-  final List<Node> _tBodies;
-
-  @DomName('HTMLTableElement.tFoot')
-  @DocsEditable()
-  TableSectionElement tFoot;
-
-  @DomName('HTMLTableElement.tHead')
-  @DocsEditable()
-  TableSectionElement tHead;
-
-  @JSName('createCaption')
-  @DomName('HTMLTableElement.createCaption')
-  @DocsEditable()
-  TableCaptionElement _createCaption() native;
-
-  @JSName('createTFoot')
-  @DomName('HTMLTableElement.createTFoot')
-  @DocsEditable()
-  TableSectionElement _createTFoot() native;
-
-  @JSName('createTHead')
-  @DomName('HTMLTableElement.createTHead')
-  @DocsEditable()
-  TableSectionElement _createTHead() native;
-
-  @DomName('HTMLTableElement.deleteCaption')
-  @DocsEditable()
-  void deleteCaption() native;
-
-  @DomName('HTMLTableElement.deleteRow')
-  @DocsEditable()
-  void deleteRow(int index) native;
-
-  @DomName('HTMLTableElement.deleteTFoot')
-  @DocsEditable()
-  void deleteTFoot() native;
-
-  @DomName('HTMLTableElement.deleteTHead')
-  @DocsEditable()
-  void deleteTHead() native;
-
-  @JSName('insertRow')
-  @DomName('HTMLTableElement.insertRow')
-  @DocsEditable()
-  TableRowElement _insertRow([int index]) native;
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLTableRowElement')
-@Native("HTMLTableRowElement")
-class TableRowElement extends HtmlElement {
-  @DomName('HTMLTableRowElement.cells')
-  List<TableCellElement> get cells =>
-      new _WrappedList<TableCellElement>(_cells);
-
-  TableCellElement addCell() {
-    return insertCell(-1);
-  }
-
-  TableCellElement insertCell(int index) => _insertCell(index);
-
-  DocumentFragment createFragment(String html,
-      {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
-    if (Range.supportsCreateContextualFragment) {
-      return super.createFragment(html,
-          validator: validator, treeSanitizer: treeSanitizer);
-    }
-    // IE9 workaround which does not support innerHTML on Table elements.
-    var fragment = new DocumentFragment();
-    var section = new TableElement()
-        .createFragment(html,
-            validator: validator, treeSanitizer: treeSanitizer)
-        .nodes
-        .single;
-    var row = section.nodes.single;
-    fragment.nodes.addAll(row.nodes);
-    return fragment;
-  }
-
-  // To suppress missing implicit constructor warnings.
-  factory TableRowElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLTableRowElement.HTMLTableRowElement')
-  @DocsEditable()
-  factory TableRowElement() => JS(
-      'returns:TableRowElement;creates:TableRowElement;new:true',
-      '#.createElement(#)',
-      document,
-      "tr");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  TableRowElement.created() : super.created();
-
-  @JSName('cells')
-  @DomName('HTMLTableRowElement.cells')
-  @DocsEditable()
-  @Returns('HtmlCollection|Null')
-  @Creates('HtmlCollection')
-  final List<Node> _cells;
-
-  @DomName('HTMLTableRowElement.rowIndex')
-  @DocsEditable()
-  final int rowIndex;
-
-  @DomName('HTMLTableRowElement.sectionRowIndex')
-  @DocsEditable()
-  final int sectionRowIndex;
-
-  @DomName('HTMLTableRowElement.deleteCell')
-  @DocsEditable()
-  void deleteCell(int index) native;
-
-  @JSName('insertCell')
-  @DomName('HTMLTableRowElement.insertCell')
-  @DocsEditable()
-  HtmlElement _insertCell([int index]) native;
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLTableSectionElement')
-@Native("HTMLTableSectionElement")
-class TableSectionElement extends HtmlElement {
-  @DomName('HTMLTableSectionElement.rows')
-  List<TableRowElement> get rows => new _WrappedList<TableRowElement>(_rows);
-
-  TableRowElement addRow() {
-    return insertRow(-1);
-  }
-
-  TableRowElement insertRow(int index) => _insertRow(index);
-
-  DocumentFragment createFragment(String html,
-      {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
-    if (Range.supportsCreateContextualFragment) {
-      return super.createFragment(html,
-          validator: validator, treeSanitizer: treeSanitizer);
-    }
-    // IE9 workaround which does not support innerHTML on Table elements.
-    var fragment = new DocumentFragment();
-    var section = new TableElement()
-        .createFragment(html,
-            validator: validator, treeSanitizer: treeSanitizer)
-        .nodes
-        .single;
-    fragment.nodes.addAll(section.nodes);
-    return fragment;
-  }
-
-  // To suppress missing implicit constructor warnings.
-  factory TableSectionElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  TableSectionElement.created() : super.created();
-
-  @JSName('rows')
-  @DomName('HTMLTableSectionElement.rows')
-  @DocsEditable()
-  @Returns('HtmlCollection|Null')
-  @Creates('HtmlCollection')
-  final List<Node> _rows;
-
-  @DomName('HTMLTableSectionElement.deleteRow')
-  @DocsEditable()
-  void deleteRow(int index) native;
-
-  @JSName('insertRow')
-  @DomName('HTMLTableSectionElement.insertRow')
-  @DocsEditable()
-  HtmlElement _insertRow([int index]) native;
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@Experimental()
-@DomName('HTMLTemplateElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@Experimental()
-// https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/templates/index.html#template-element
-@Native("HTMLTemplateElement")
-class TemplateElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory TemplateElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLTemplateElement.HTMLTemplateElement')
-  @DocsEditable()
-  factory TemplateElement() => document.createElement("template");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  TemplateElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported => Element.isTagSupported('template');
-
-  @DomName('HTMLTemplateElement.content')
-  @DocsEditable()
-  final DocumentFragment content;
-
-  /**
-   * An override to place the contents into content rather than as child nodes.
-   *
-   * See also:
-   *
-   * * <https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/templates/index.html#innerhtml-on-templates>
-   */
-  void setInnerHtml(String html,
-      {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
-    text = null;
-    var fragment = createFragment(html,
-        validator: validator, treeSanitizer: treeSanitizer);
-
-    content.append(fragment);
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('Text')
-@Native("Text")
-class Text extends CharacterData {
-  factory Text(String data) => JS(
-      'returns:Text;depends:none;effects:none;new:true',
-      '#.createTextNode(#)',
-      document,
-      data);
-  // To suppress missing implicit constructor warnings.
-  factory Text._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Text.assignedSlot')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final SlotElement assignedSlot;
-
-  @DomName('Text.wholeText')
-  @DocsEditable()
-  final String wholeText;
-
-  @DomName('Text.getDestinationInsertionPoints')
-  @DocsEditable()
-  @Experimental() // untriaged
-  @Returns('NodeList|Null')
-  @Creates('NodeList')
-  List<Node> getDestinationInsertionPoints() native;
-
-  @DomName('Text.splitText')
-  @DocsEditable()
-  Text splitText(int offset) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLTextAreaElement')
-@Native("HTMLTextAreaElement")
-class TextAreaElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory TextAreaElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLTextAreaElement.HTMLTextAreaElement')
-  @DocsEditable()
-  factory TextAreaElement() => JS(
-      'returns:TextAreaElement;creates:TextAreaElement;new:true',
-      '#.createElement(#)',
-      document,
-      "textarea");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  TextAreaElement.created() : super.created();
-
-  @DomName('HTMLTextAreaElement.autocapitalize')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String autocapitalize;
-
-  @DomName('HTMLTextAreaElement.autofocus')
-  @DocsEditable()
-  bool autofocus;
-
-  @DomName('HTMLTextAreaElement.cols')
-  @DocsEditable()
-  int cols;
-
-  @DomName('HTMLTextAreaElement.defaultValue')
-  @DocsEditable()
-  String defaultValue;
-
-  @DomName('HTMLTextAreaElement.dirName')
-  @DocsEditable()
-  // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#dom-textarea-dirname
-  @Experimental()
-  String dirName;
-
-  @DomName('HTMLTextAreaElement.disabled')
-  @DocsEditable()
-  bool disabled;
-
-  @DomName('HTMLTextAreaElement.form')
-  @DocsEditable()
-  final FormElement form;
-
-  @DomName('HTMLTextAreaElement.inputMode')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String inputMode;
-
-  @DomName('HTMLTextAreaElement.labels')
-  @DocsEditable()
-  @Unstable()
-  @Returns('NodeList|Null')
-  @Creates('NodeList')
-  final List<Node> labels;
-
-  @DomName('HTMLTextAreaElement.maxLength')
-  @DocsEditable()
-  int maxLength;
-
-  @DomName('HTMLTextAreaElement.minLength')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int minLength;
-
-  @DomName('HTMLTextAreaElement.name')
-  @DocsEditable()
-  String name;
-
-  @DomName('HTMLTextAreaElement.placeholder')
-  @DocsEditable()
-  String placeholder;
-
-  @DomName('HTMLTextAreaElement.readOnly')
-  @DocsEditable()
-  bool readOnly;
-
-  @DomName('HTMLTextAreaElement.required')
-  @DocsEditable()
-  bool required;
-
-  @DomName('HTMLTextAreaElement.rows')
-  @DocsEditable()
-  int rows;
-
-  @DomName('HTMLTextAreaElement.selectionDirection')
-  @DocsEditable()
-  String selectionDirection;
-
-  @DomName('HTMLTextAreaElement.selectionEnd')
-  @DocsEditable()
-  int selectionEnd;
-
-  @DomName('HTMLTextAreaElement.selectionStart')
-  @DocsEditable()
-  int selectionStart;
-
-  @DomName('HTMLTextAreaElement.textLength')
-  @DocsEditable()
-  final int textLength;
-
-  @DomName('HTMLTextAreaElement.type')
-  @DocsEditable()
-  final String type;
-
-  @DomName('HTMLTextAreaElement.validationMessage')
-  @DocsEditable()
-  final String validationMessage;
-
-  @DomName('HTMLTextAreaElement.validity')
-  @DocsEditable()
-  final ValidityState validity;
-
-  @DomName('HTMLTextAreaElement.value')
-  @DocsEditable()
-  String value;
-
-  @DomName('HTMLTextAreaElement.willValidate')
-  @DocsEditable()
-  final bool willValidate;
-
-  @DomName('HTMLTextAreaElement.wrap')
-  @DocsEditable()
-  String wrap;
-
-  @DomName('HTMLTextAreaElement.checkValidity')
-  @DocsEditable()
-  bool checkValidity() native;
-
-  @DomName('HTMLTextAreaElement.reportValidity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool reportValidity() native;
-
-  @DomName('HTMLTextAreaElement.select')
-  @DocsEditable()
-  void select() native;
-
-  @DomName('HTMLTextAreaElement.setCustomValidity')
-  @DocsEditable()
-  void setCustomValidity(String error) native;
-
-  @DomName('HTMLTextAreaElement.setRangeText')
-  @DocsEditable()
-  // http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#dom-textarea/input-setrangetext
-  @Experimental()
-  void setRangeText(String replacement,
-      {int start, int end, String selectionMode}) native;
-
-  @DomName('HTMLTextAreaElement.setSelectionRange')
-  @DocsEditable()
-  void setSelectionRange(int start, int end, [String direction]) native;
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('TextEvent')
-@Unstable()
-@Native("TextEvent")
-class TextEvent extends UIEvent {
-  factory TextEvent(String type,
-      {bool canBubble: false,
-      bool cancelable: false,
-      Window view,
-      String data}) {
-    if (view == null) {
-      view = window;
-    }
-    TextEvent e = document._createEvent("TextEvent");
-    e._initTextEvent(type, canBubble, cancelable, view, data);
-    return e;
-  }
-  // To suppress missing implicit constructor warnings.
-  factory TextEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('TextEvent.data')
-  @DocsEditable()
-  final String data;
-
-  @JSName('initTextEvent')
-  @DomName('TextEvent.initTextEvent')
-  @DocsEditable()
-  void _initTextEvent(String type, bool bubbles, bool cancelable, Window view,
-      String data) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('TextMetrics')
-@Native("TextMetrics")
-class TextMetrics extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory TextMetrics._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('TextMetrics.actualBoundingBoxAscent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double actualBoundingBoxAscent;
-
-  @DomName('TextMetrics.actualBoundingBoxDescent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double actualBoundingBoxDescent;
-
-  @DomName('TextMetrics.actualBoundingBoxLeft')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double actualBoundingBoxLeft;
-
-  @DomName('TextMetrics.actualBoundingBoxRight')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double actualBoundingBoxRight;
-
-  @DomName('TextMetrics.alphabeticBaseline')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double alphabeticBaseline;
-
-  @DomName('TextMetrics.emHeightAscent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double emHeightAscent;
-
-  @DomName('TextMetrics.emHeightDescent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double emHeightDescent;
-
-  @DomName('TextMetrics.fontBoundingBoxAscent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double fontBoundingBoxAscent;
-
-  @DomName('TextMetrics.fontBoundingBoxDescent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double fontBoundingBoxDescent;
-
-  @DomName('TextMetrics.hangingBaseline')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double hangingBaseline;
-
-  @DomName('TextMetrics.ideographicBaseline')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double ideographicBaseline;
-
-  @DomName('TextMetrics.width')
-  @DocsEditable()
-  final double width;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('TextTrack')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#texttrack
-@Experimental()
-@Native("TextTrack")
-class TextTrack extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory TextTrack._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `cuechange` events to event
-   * handlers that are not necessarily instances of [TextTrack].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('TextTrack.cuechangeEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> cueChangeEvent =
-      const EventStreamProvider<Event>('cuechange');
-
-  @DomName('TextTrack.activeCues')
-  @DocsEditable()
-  final TextTrackCueList activeCues;
-
-  @DomName('TextTrack.cues')
-  @DocsEditable()
-  final TextTrackCueList cues;
-
-  @DomName('TextTrack.id')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String id;
-
-  @DomName('TextTrack.kind')
-  @DocsEditable()
-  final String kind;
-
-  @DomName('TextTrack.label')
-  @DocsEditable()
-  final String label;
-
-  @DomName('TextTrack.language')
-  @DocsEditable()
-  final String language;
-
-  @DomName('TextTrack.mode')
-  @DocsEditable()
-  String mode;
-
-  @DomName('TextTrack.regions')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final VttRegionList regions;
-
-  @DomName('TextTrack.addCue')
-  @DocsEditable()
-  void addCue(TextTrackCue cue) native;
-
-  @DomName('TextTrack.addRegion')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void addRegion(VttRegion region) native;
-
-  @DomName('TextTrack.removeCue')
-  @DocsEditable()
-  void removeCue(TextTrackCue cue) native;
-
-  @DomName('TextTrack.removeRegion')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void removeRegion(VttRegion region) native;
-
-  /// Stream of `cuechange` events handled by this [TextTrack].
-  @DomName('TextTrack.oncuechange')
-  @DocsEditable()
-  Stream<Event> get onCueChange => cueChangeEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('TextTrackCue')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#texttrackcue
-@Experimental()
-@Native("TextTrackCue")
-class TextTrackCue extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory TextTrackCue._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `enter` events to event
-   * handlers that are not necessarily instances of [TextTrackCue].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('TextTrackCue.enterEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> enterEvent =
-      const EventStreamProvider<Event>('enter');
-
-  /**
-   * Static factory designed to expose `exit` events to event
-   * handlers that are not necessarily instances of [TextTrackCue].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('TextTrackCue.exitEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> exitEvent =
-      const EventStreamProvider<Event>('exit');
-
-  @DomName('TextTrackCue.endTime')
-  @DocsEditable()
-  num endTime;
-
-  @DomName('TextTrackCue.id')
-  @DocsEditable()
-  String id;
-
-  @DomName('TextTrackCue.pauseOnExit')
-  @DocsEditable()
-  bool pauseOnExit;
-
-  @DomName('TextTrackCue.startTime')
-  @DocsEditable()
-  num startTime;
-
-  @DomName('TextTrackCue.track')
-  @DocsEditable()
-  final TextTrack track;
-
-  /// Stream of `enter` events handled by this [TextTrackCue].
-  @DomName('TextTrackCue.onenter')
-  @DocsEditable()
-  Stream<Event> get onEnter => enterEvent.forTarget(this);
-
-  /// Stream of `exit` events handled by this [TextTrackCue].
-  @DomName('TextTrackCue.onexit')
-  @DocsEditable()
-  Stream<Event> get onExit => exitEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('TextTrackCueList')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#texttrackcuelist
-@Experimental()
-@Native("TextTrackCueList")
-class TextTrackCueList extends Interceptor
-    with ListMixin<TextTrackCue>, ImmutableListMixin<TextTrackCue>
-    implements List<TextTrackCue>, JavaScriptIndexingBehavior<TextTrackCue> {
-  // To suppress missing implicit constructor warnings.
-  factory TextTrackCueList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('TextTrackCueList.length')
-  @DocsEditable()
-  int get length => JS("int", "#.length", this);
-
-  TextTrackCue operator [](int index) {
-    if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
-      throw new RangeError.index(index, this);
-    return JS("TextTrackCue", "#[#]", this, index);
-  }
-
-  void operator []=(int index, TextTrackCue value) {
-    throw new UnsupportedError("Cannot assign element of immutable List.");
-  }
-  // -- start List<TextTrackCue> mixins.
-  // TextTrackCue is the element type.
-
-  set length(int value) {
-    throw new UnsupportedError("Cannot resize immutable List.");
-  }
-
-  TextTrackCue get first {
-    if (this.length > 0) {
-      return JS('TextTrackCue', '#[0]', this);
-    }
-    throw new StateError("No elements");
-  }
-
-  TextTrackCue get last {
-    int len = this.length;
-    if (len > 0) {
-      return JS('TextTrackCue', '#[#]', this, len - 1);
-    }
-    throw new StateError("No elements");
-  }
-
-  TextTrackCue get single {
-    int len = this.length;
-    if (len == 1) {
-      return JS('TextTrackCue', '#[0]', this);
-    }
-    if (len == 0) throw new StateError("No elements");
-    throw new StateError("More than one element");
-  }
-
-  TextTrackCue elementAt(int index) => this[index];
-  // -- end List<TextTrackCue> mixins.
-
-  @DomName('TextTrackCueList.__getter__')
-  @DocsEditable()
-  @Experimental() // untriaged
-  TextTrackCue __getter__(int index) native;
-
-  @DomName('TextTrackCueList.getCueById')
-  @DocsEditable()
-  TextTrackCue getCueById(String id) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('TextTrackList')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#texttracklist
-@Experimental()
-@Native("TextTrackList")
-class TextTrackList extends EventTarget
-    with ListMixin<TextTrack>, ImmutableListMixin<TextTrack>
-    implements List<TextTrack>, JavaScriptIndexingBehavior<TextTrack> {
-  // To suppress missing implicit constructor warnings.
-  factory TextTrackList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `addtrack` events to event
-   * handlers that are not necessarily instances of [TextTrackList].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('TextTrackList.addtrackEvent')
-  @DocsEditable()
-  static const EventStreamProvider<TrackEvent> addTrackEvent =
-      const EventStreamProvider<TrackEvent>('addtrack');
-
-  @DomName('TextTrackList.changeEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> changeEvent =
-      const EventStreamProvider<Event>('change');
-
-  @DomName('TextTrackList.length')
-  @DocsEditable()
-  int get length => JS("int", "#.length", this);
-
-  TextTrack operator [](int index) {
-    if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
-      throw new RangeError.index(index, this);
-    return JS("TextTrack", "#[#]", this, index);
-  }
-
-  void operator []=(int index, TextTrack value) {
-    throw new UnsupportedError("Cannot assign element of immutable List.");
-  }
-  // -- start List<TextTrack> mixins.
-  // TextTrack is the element type.
-
-  set length(int value) {
-    throw new UnsupportedError("Cannot resize immutable List.");
-  }
-
-  TextTrack get first {
-    if (this.length > 0) {
-      return JS('TextTrack', '#[0]', this);
-    }
-    throw new StateError("No elements");
-  }
-
-  TextTrack get last {
-    int len = this.length;
-    if (len > 0) {
-      return JS('TextTrack', '#[#]', this, len - 1);
-    }
-    throw new StateError("No elements");
-  }
-
-  TextTrack get single {
-    int len = this.length;
-    if (len == 1) {
-      return JS('TextTrack', '#[0]', this);
-    }
-    if (len == 0) throw new StateError("No elements");
-    throw new StateError("More than one element");
-  }
-
-  TextTrack elementAt(int index) => this[index];
-  // -- end List<TextTrack> mixins.
-
-  @DomName('TextTrackList.__getter__')
-  @DocsEditable()
-  @Experimental() // untriaged
-  TextTrack __getter__(int index) native;
-
-  @DomName('TextTrackList.getTrackById')
-  @DocsEditable()
-  @Experimental() // untriaged
-  TextTrack getTrackById(String id) native;
-
-  /// Stream of `addtrack` events handled by this [TextTrackList].
-  @DomName('TextTrackList.onaddtrack')
-  @DocsEditable()
-  Stream<TrackEvent> get onAddTrack => addTrackEvent.forTarget(this);
-
-  @DomName('TextTrackList.onchange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onChange => changeEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('TimeRanges')
-@Unstable()
-@Native("TimeRanges")
-class TimeRanges extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory TimeRanges._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('TimeRanges.length')
-  @DocsEditable()
-  final int length;
-
-  @DomName('TimeRanges.end')
-  @DocsEditable()
-  double end(int index) native;
-
-  @DomName('TimeRanges.start')
-  @DocsEditable()
-  double start(int index) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('TimeoutHandler')
-typedef void TimeoutHandler();
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLTitleElement')
-@Native("HTMLTitleElement")
-class TitleElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory TitleElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLTitleElement.HTMLTitleElement')
-  @DocsEditable()
-  factory TitleElement() => JS(
-      'returns:TitleElement;creates:TitleElement;new:true',
-      '#.createElement(#)',
-      document,
-      "title");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  TitleElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Touch')
-// http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-@Experimental()
-@Native("Touch")
-class Touch extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Touch._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Touch.Touch')
-  @DocsEditable()
-  factory Touch(Map initDict) {
-    var initDict_1 = convertDartToNative_Dictionary(initDict);
-    return Touch._create_1(initDict_1);
-  }
-  static Touch _create_1(initDict) => JS('Touch', 'new Touch(#)', initDict);
-
-  @JSName('clientX')
-  @DomName('Touch.clientX')
-  @DocsEditable()
-  final double _clientX;
-
-  @JSName('clientY')
-  @DomName('Touch.clientY')
-  @DocsEditable()
-  final double _clientY;
-
-  @DomName('Touch.force')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double force;
-
-  @DomName('Touch.identifier')
-  @DocsEditable()
-  final int identifier;
-
-  @JSName('pageX')
-  @DomName('Touch.pageX')
-  @DocsEditable()
-  final double _pageX;
-
-  @JSName('pageY')
-  @DomName('Touch.pageY')
-  @DocsEditable()
-  final double _pageY;
-
-  @JSName('radiusX')
-  @DomName('Touch.radiusX')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double _radiusX;
-
-  @JSName('radiusY')
-  @DomName('Touch.radiusY')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double _radiusY;
-
-  @DomName('Touch.region')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String region;
-
-  @DomName('Touch.rotationAngle')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double rotationAngle;
-
-  @JSName('screenX')
-  @DomName('Touch.screenX')
-  @DocsEditable()
-  final double _screenX;
-
-  @JSName('screenY')
-  @DomName('Touch.screenY')
-  @DocsEditable()
-  final double _screenY;
-
-  @DomName('Touch.target')
-  @DocsEditable()
-  EventTarget get target => _convertNativeToDart_EventTarget(this._get_target);
-  @JSName('target')
-  @DomName('Touch.target')
-  @DocsEditable()
-  @Creates('Element|Document')
-  @Returns('Element|Document')
-  final dynamic _get_target;
-
-// As of Chrome 37, these all changed from long to double.  This code
-// preserves backwards compatibility for the time being.
-  int get __clientX => JS('num', '#.clientX', this).round();
-  int get __clientY => JS('num', '#.clientY', this).round();
-  int get __screenX => JS('num', '#.screenX', this).round();
-  int get __screenY => JS('num', '#.screenY', this).round();
-  int get __pageX => JS('num', '#.pageX', this).round();
-  int get __pageY => JS('num', '#.pageY', this).round();
-  int get __radiusX => JS('num', '#.radiusX', this).round();
-  int get __radiusY => JS('num', '#.radiusY', this).round();
-
-  @DomName('Touch.clientX')
-  @DomName('Touch.clientY')
-  Point get client => new Point/*<num>*/(__clientX, __clientY);
-
-  @DomName('Touch.pageX')
-  @DomName('Touch.pageY')
-  Point get page => new Point/*<num>*/(__pageX, __pageY);
-
-  @DomName('Touch.screenX')
-  @DomName('Touch.screenY')
-  Point get screen => new Point/*<num>*/(__screenX, __screenY);
-
-  @DomName('Touch.radiusX')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  int get radiusX => __radiusX;
-
-  @DomName('Touch.radiusY')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  int get radiusY => __radiusY;
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('TouchEvent')
-// http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-@Experimental()
-@Native("TouchEvent")
-class TouchEvent extends UIEvent {
-  factory TouchEvent(TouchList touches, TouchList targetTouches,
-      TouchList changedTouches, String type,
-      {Window view,
-      int screenX: 0,
-      int screenY: 0,
-      int clientX: 0,
-      int clientY: 0,
-      bool ctrlKey: false,
-      bool altKey: false,
-      bool shiftKey: false,
-      bool metaKey: false}) {
-    if (view == null) {
-      view = window;
-    }
-    TouchEvent e = document._createEvent("TouchEvent");
-    e._initTouchEvent(touches, targetTouches, changedTouches, type, view,
-        screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey);
-    return e;
-  }
-  // To suppress missing implicit constructor warnings.
-  factory TouchEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('TouchEvent.altKey')
-  @DocsEditable()
-  final bool altKey;
-
-  @DomName('TouchEvent.changedTouches')
-  @DocsEditable()
-  final TouchList changedTouches;
-
-  @DomName('TouchEvent.ctrlKey')
-  @DocsEditable()
-  final bool ctrlKey;
-
-  @DomName('TouchEvent.metaKey')
-  @DocsEditable()
-  final bool metaKey;
-
-  @DomName('TouchEvent.shiftKey')
-  @DocsEditable()
-  final bool shiftKey;
-
-  @DomName('TouchEvent.targetTouches')
-  @DocsEditable()
-  final TouchList targetTouches;
-
-  @DomName('TouchEvent.touches')
-  @DocsEditable()
-  final TouchList touches;
-
-  @JSName('initTouchEvent')
-  @DomName('TouchEvent.initTouchEvent')
-  @DocsEditable()
-  void _initTouchEvent(
-      TouchList touches,
-      TouchList targetTouches,
-      TouchList changedTouches,
-      String type,
-      Window view,
-      int unused1,
-      int unused2,
-      int unused3,
-      int unused4,
-      bool ctrlKey,
-      bool altKey,
-      bool shiftKey,
-      bool metaKey) native;
-
-  /**
-   * Checks if touch events supported on the current platform.
-   *
-   * Note that touch events are only supported if the user is using a touch
-   * device.
-   */
-  static bool get supported => Device.isEventTypeSupported('TouchEvent');
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('TouchList')
-// http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-@Experimental()
-@Native("TouchList")
-class TouchList extends Interceptor
-    with ListMixin<Touch>, ImmutableListMixin<Touch>
-    implements JavaScriptIndexingBehavior<Touch>, List<Touch> {
-  /// NB: This constructor likely does not work as you might expect it to! This
-  /// constructor will simply fail (returning null) if you are not on a device
-  /// with touch enabled. See dartbug.com/8314.
-  // TODO(5760): createTouchList now uses varargs.
-  factory TouchList() => null; //document._createTouchList();
-  // To suppress missing implicit constructor warnings.
-  factory TouchList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported => JS('bool', '!!document.createTouchList');
-
-  @DomName('TouchList.length')
-  @DocsEditable()
-  int get length => JS("int", "#.length", this);
-
-  Touch operator [](int index) {
-    if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
-      throw new RangeError.index(index, this);
-    return JS("Touch", "#[#]", this, index);
-  }
-
-  void operator []=(int index, Touch value) {
-    throw new UnsupportedError("Cannot assign element of immutable List.");
-  }
-  // -- start List<Touch> mixins.
-  // Touch is the element type.
-
-  set length(int value) {
-    throw new UnsupportedError("Cannot resize immutable List.");
-  }
-
-  Touch get first {
-    if (this.length > 0) {
-      return JS('Touch', '#[0]', this);
-    }
-    throw new StateError("No elements");
-  }
-
-  Touch get last {
-    int len = this.length;
-    if (len > 0) {
-      return JS('Touch', '#[#]', this, len - 1);
-    }
-    throw new StateError("No elements");
-  }
-
-  Touch get single {
-    int len = this.length;
-    if (len == 1) {
-      return JS('Touch', '#[0]', this);
-    }
-    if (len == 0) throw new StateError("No elements");
-    throw new StateError("More than one element");
-  }
-
-  Touch elementAt(int index) => this[index];
-  // -- end List<Touch> mixins.
-
-  @DomName('TouchList.item')
-  @DocsEditable()
-  Touch item(int index) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('TrackDefault')
-@Experimental() // untriaged
-@Native("TrackDefault")
-class TrackDefault extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory TrackDefault._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('TrackDefault.TrackDefault')
-  @DocsEditable()
-  factory TrackDefault(
-      String type, String language, String label, List<String> kinds,
-      [String byteStreamTrackID]) {
-    if (byteStreamTrackID != null) {
-      List kinds_1 = convertDartToNative_StringArray(kinds);
-      return TrackDefault._create_1(
-          type, language, label, kinds_1, byteStreamTrackID);
-    }
-    List kinds_1 = convertDartToNative_StringArray(kinds);
-    return TrackDefault._create_2(type, language, label, kinds_1);
-  }
-  static TrackDefault _create_1(
-          type, language, label, kinds, byteStreamTrackID) =>
-      JS('TrackDefault', 'new TrackDefault(#,#,#,#,#)', type, language, label,
-          kinds, byteStreamTrackID);
-  static TrackDefault _create_2(type, language, label, kinds) => JS(
-      'TrackDefault',
-      'new TrackDefault(#,#,#,#)',
-      type,
-      language,
-      label,
-      kinds);
-
-  @DomName('TrackDefault.byteStreamTrackID')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String byteStreamTrackID;
-
-  @DomName('TrackDefault.kinds')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final List<String> kinds;
-
-  @DomName('TrackDefault.label')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String label;
-
-  @DomName('TrackDefault.language')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String language;
-
-  @DomName('TrackDefault.type')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String type;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('TrackDefaultList')
-@Experimental() // untriaged
-@Native("TrackDefaultList")
-class TrackDefaultList extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory TrackDefaultList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('TrackDefaultList.TrackDefaultList')
-  @DocsEditable()
-  factory TrackDefaultList([List<TrackDefault> trackDefaults]) {
-    if (trackDefaults != null) {
-      return TrackDefaultList._create_1(trackDefaults);
-    }
-    return TrackDefaultList._create_2();
-  }
-  static TrackDefaultList _create_1(trackDefaults) =>
-      JS('TrackDefaultList', 'new TrackDefaultList(#)', trackDefaults);
-  static TrackDefaultList _create_2() =>
-      JS('TrackDefaultList', 'new TrackDefaultList()');
-
-  @DomName('TrackDefaultList.length')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int length;
-
-  @DomName('TrackDefaultList.item')
-  @DocsEditable()
-  @Experimental() // untriaged
-  TrackDefault item(int index) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLTrackElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#the-track-element
-@Experimental()
-@Native("HTMLTrackElement")
-class TrackElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory TrackElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLTrackElement.HTMLTrackElement')
-  @DocsEditable()
-  factory TrackElement() => document.createElement("track");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  TrackElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported => Element.isTagSupported('track');
-
-  @DomName('HTMLTrackElement.ERROR')
-  @DocsEditable()
-  static const int ERROR = 3;
-
-  @DomName('HTMLTrackElement.LOADED')
-  @DocsEditable()
-  static const int LOADED = 2;
-
-  @DomName('HTMLTrackElement.LOADING')
-  @DocsEditable()
-  static const int LOADING = 1;
-
-  @DomName('HTMLTrackElement.NONE')
-  @DocsEditable()
-  static const int NONE = 0;
-
-  @JSName('default')
-  @DomName('HTMLTrackElement.default')
-  @DocsEditable()
-  bool defaultValue;
-
-  @DomName('HTMLTrackElement.kind')
-  @DocsEditable()
-  String kind;
-
-  @DomName('HTMLTrackElement.label')
-  @DocsEditable()
-  String label;
-
-  @DomName('HTMLTrackElement.readyState')
-  @DocsEditable()
-  final int readyState;
-
-  @DomName('HTMLTrackElement.src')
-  @DocsEditable()
-  String src;
-
-  @DomName('HTMLTrackElement.srclang')
-  @DocsEditable()
-  String srclang;
-
-  @DomName('HTMLTrackElement.track')
-  @DocsEditable()
-  final TextTrack track;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('TrackEvent')
-@Unstable()
-@Native("TrackEvent")
-class TrackEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory TrackEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('TrackEvent.TrackEvent')
-  @DocsEditable()
-  factory TrackEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return TrackEvent._create_1(type, eventInitDict_1);
-    }
-    return TrackEvent._create_2(type);
-  }
-  static TrackEvent _create_1(type, eventInitDict) =>
-      JS('TrackEvent', 'new TrackEvent(#,#)', type, eventInitDict);
-  static TrackEvent _create_2(type) =>
-      JS('TrackEvent', 'new TrackEvent(#)', type);
-
-  @DomName('TrackEvent.track')
-  @DocsEditable()
-  @Creates('Null')
-  final Object track;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('TransformComponent')
-@Experimental() // untriaged
-@Native("TransformComponent")
-class TransformComponent extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory TransformComponent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('TransformComponent.cssString')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String cssString;
-
-  @DomName('TransformComponent.asMatrix')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Matrix asMatrix() native;
-
-  @DomName('TransformComponent.is2DComponent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool is2DComponent() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('TransformValue')
-@Experimental() // untriaged
-@Native("TransformValue")
-class TransformValue extends StyleValue {
-  // To suppress missing implicit constructor warnings.
-  factory TransformValue._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('TransformValue.TransformValue')
-  @DocsEditable()
-  factory TransformValue([List<TransformComponent> transformComponents]) {
-    if (transformComponents == null) {
-      return TransformValue._create_1();
-    }
-    if ((transformComponents is List<TransformComponent>)) {
-      return TransformValue._create_2(transformComponents);
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-  static TransformValue _create_1() =>
-      JS('TransformValue', 'new TransformValue()');
-  static TransformValue _create_2(transformComponents) =>
-      JS('TransformValue', 'new TransformValue(#)', transformComponents);
-
-  @DomName('TransformValue.is2D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool is2D() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('TransitionEvent')
-@Native("TransitionEvent,WebKitTransitionEvent")
-class TransitionEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory TransitionEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('TransitionEvent.TransitionEvent')
-  @DocsEditable()
-  factory TransitionEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return TransitionEvent._create_1(type, eventInitDict_1);
-    }
-    return TransitionEvent._create_2(type);
-  }
-  static TransitionEvent _create_1(type, eventInitDict) =>
-      JS('TransitionEvent', 'new TransitionEvent(#,#)', type, eventInitDict);
-  static TransitionEvent _create_2(type) =>
-      JS('TransitionEvent', 'new TransitionEvent(#)', type);
-
-  @DomName('TransitionEvent.elapsedTime')
-  @DocsEditable()
-  final double elapsedTime;
-
-  @DomName('TransitionEvent.propertyName')
-  @DocsEditable()
-  final String propertyName;
-
-  @DomName('TransitionEvent.pseudoElement')
-  @DocsEditable()
-  final String pseudoElement;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Translation')
-@Experimental() // untriaged
-@Native("Translation")
-class Translation extends TransformComponent {
-  // To suppress missing implicit constructor warnings.
-  factory Translation._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Translation.Translation')
-  @DocsEditable()
-  factory Translation(LengthValue x, LengthValue y, [LengthValue z]) {
-    if ((y is LengthValue) && (x is LengthValue) && z == null) {
-      return Translation._create_1(x, y);
-    }
-    if ((z is LengthValue) && (y is LengthValue) && (x is LengthValue)) {
-      return Translation._create_2(x, y, z);
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-  static Translation _create_1(x, y) =>
-      JS('Translation', 'new Translation(#,#)', x, y);
-  static Translation _create_2(x, y, z) =>
-      JS('Translation', 'new Translation(#,#,#)', x, y, z);
-
-  @DomName('Translation.x')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final LengthValue x;
-
-  @DomName('Translation.y')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final LengthValue y;
-
-  @DomName('Translation.z')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final LengthValue z;
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('TreeWalker')
-@Unstable()
-@Native("TreeWalker")
-class TreeWalker extends Interceptor {
-  factory TreeWalker(Node root, int whatToShow) {
-    return document._createTreeWalker(root, whatToShow, null);
-  }
-  // To suppress missing implicit constructor warnings.
-  factory TreeWalker._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('TreeWalker.currentNode')
-  @DocsEditable()
-  Node currentNode;
-
-  @DomName('TreeWalker.filter')
-  @DocsEditable()
-  final NodeFilter filter;
-
-  @DomName('TreeWalker.root')
-  @DocsEditable()
-  final Node root;
-
-  @DomName('TreeWalker.whatToShow')
-  @DocsEditable()
-  final int whatToShow;
-
-  @DomName('TreeWalker.firstChild')
-  @DocsEditable()
-  Node firstChild() native;
-
-  @DomName('TreeWalker.lastChild')
-  @DocsEditable()
-  Node lastChild() native;
-
-  @DomName('TreeWalker.nextNode')
-  @DocsEditable()
-  Node nextNode() native;
-
-  @DomName('TreeWalker.nextSibling')
-  @DocsEditable()
-  Node nextSibling() native;
-
-  @DomName('TreeWalker.parentNode')
-  @DocsEditable()
-  Node parentNode() native;
-
-  @DomName('TreeWalker.previousNode')
-  @DocsEditable()
-  Node previousNode() native;
-
-  @DomName('TreeWalker.previousSibling')
-  @DocsEditable()
-  Node previousSibling() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('UIEvent')
-@Native("UIEvent")
-class UIEvent extends Event {
-  // In JS, canBubble and cancelable are technically required parameters to
-  // init*Event. In practice, though, if they aren't provided they simply
-  // default to false (since that's Boolean(undefined)).
-  //
-  // Contrary to JS, we default canBubble and cancelable to true, since that's
-  // what people want most of the time anyway.
-  factory UIEvent(String type,
-      {Window view,
-      int detail: 0,
-      bool canBubble: true,
-      bool cancelable: true}) {
-    if (view == null) {
-      view = window;
-    }
-    UIEvent e = document._createEvent("UIEvent");
-    e._initUIEvent(type, canBubble, cancelable, view, detail);
-    return e;
-  }
-
-  @DomName('UIEvent.UIEvent')
-  @DocsEditable()
-  factory UIEvent._(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return UIEvent._create_1(type, eventInitDict_1);
-    }
-    return UIEvent._create_2(type);
-  }
-  static UIEvent _create_1(type, eventInitDict) =>
-      JS('UIEvent', 'new UIEvent(#,#)', type, eventInitDict);
-  static UIEvent _create_2(type) => JS('UIEvent', 'new UIEvent(#)', type);
-
-  @DomName('UIEvent.detail')
-  @DocsEditable()
-  final int detail;
-
-  @DomName('UIEvent.sourceCapabilities')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final InputDeviceCapabilities sourceCapabilities;
-
-  @DomName('UIEvent.view')
-  @DocsEditable()
-  WindowBase get view => _convertNativeToDart_Window(this._get_view);
-  @JSName('view')
-  @DomName('UIEvent.view')
-  @DocsEditable()
-  @Creates('Window|=Object')
-  @Returns('Window|=Object')
-  final dynamic _get_view;
-
-  @JSName('which')
-  @DomName('UIEvent.which')
-  @DocsEditable()
-  @Unstable()
-  final int _which;
-
-  @JSName('initUIEvent')
-  @DomName('UIEvent.initUIEvent')
-  @DocsEditable()
-  void _initUIEvent(String type, bool bubbles, bool cancelable, Window view,
-      int detail) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLUListElement')
-@Native("HTMLUListElement")
-class UListElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory UListElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLUListElement.HTMLUListElement')
-  @DocsEditable()
-  factory UListElement() => JS(
-      'returns:UListElement;creates:UListElement;new:true',
-      '#.createElement(#)',
-      document,
-      "ul");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  UListElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('UnderlyingSourceBase')
-@Experimental() // untriaged
-@Native("UnderlyingSourceBase")
-class UnderlyingSourceBase extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory UnderlyingSourceBase._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('UnderlyingSourceBase.cancel')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future cancel(Object reason) native;
-
-  @DomName('UnderlyingSourceBase.pull')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future pull() native;
-
-  @DomName('UnderlyingSourceBase.start')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future start(Object stream) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLUnknownElement')
-@Native("HTMLUnknownElement")
-class UnknownElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory UnknownElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  UnknownElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('URL')
-@Native("URL")
-class Url extends Interceptor implements UrlUtils {
-  static String createObjectUrl(blob_OR_source_OR_stream) => JS(
-      'String',
-      '(self.URL || self.webkitURL).createObjectURL(#)',
-      blob_OR_source_OR_stream);
-
-  static String createObjectUrlFromSource(MediaSource source) =>
-      JS('String', '(self.URL || self.webkitURL).createObjectURL(#)', source);
-
-  static String createObjectUrlFromStream(MediaStream stream) =>
-      JS('String', '(self.URL || self.webkitURL).createObjectURL(#)', stream);
-
-  static String createObjectUrlFromBlob(Blob blob) =>
-      JS('String', '(self.URL || self.webkitURL).createObjectURL(#)', blob);
-
-  static void revokeObjectUrl(String url) =>
-      JS('void', '(self.URL || self.webkitURL).revokeObjectURL(#)', url);
-
-  @DomName('URL.toString')
-  @DocsEditable()
-  String toString() => JS('String', 'String(#)', this);
-
-  // To suppress missing implicit constructor warnings.
-  factory Url._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  // From URLUtils
-
-  @DomName('URL.hash')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String hash;
-
-  @DomName('URL.host')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String host;
-
-  @DomName('URL.hostname')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String hostname;
-
-  @DomName('URL.href')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String href;
-
-  @DomName('URL.origin')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String origin;
-
-  @DomName('URL.password')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String password;
-
-  @DomName('URL.pathname')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String pathname;
-
-  @DomName('URL.port')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String port;
-
-  @DomName('URL.protocol')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String protocol;
-
-  @DomName('URL.search')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String search;
-
-  @DomName('URL.username')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String username;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('URLSearchParams')
-@Experimental() // untriaged
-@Native("URLSearchParams")
-class UrlSearchParams extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory UrlSearchParams._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('URLSearchParams.URLSearchParams')
-  @DocsEditable()
-  factory UrlSearchParams([Object init]) {
-    if (init != null) {
-      return UrlSearchParams._create_1(init);
-    }
-    return UrlSearchParams._create_2();
-  }
-  static UrlSearchParams _create_1(init) =>
-      JS('UrlSearchParams', 'new URLSearchParams(#)', init);
-  static UrlSearchParams _create_2() =>
-      JS('UrlSearchParams', 'new URLSearchParams()');
-
-  @DomName('URLSearchParams.append')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void append(String name, String value) native;
-
-  @DomName('URLSearchParams.delete')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void delete(String name) native;
-
-  @DomName('URLSearchParams.get')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String get(String name) native;
-
-  @DomName('URLSearchParams.getAll')
-  @DocsEditable()
-  @Experimental() // untriaged
-  List<String> getAll(String name) native;
-
-  @DomName('URLSearchParams.has')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool has(String name) native;
-
-  @DomName('URLSearchParams.set')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void set(String name, String value) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('URLUtils')
-@Experimental() // untriaged
-abstract class UrlUtils extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory UrlUtils._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  String hash;
-
-  String host;
-
-  String hostname;
-
-  String href;
-
-  final String origin;
-
-  String password;
-
-  String pathname;
-
-  String port;
-
-  String protocol;
-
-  String search;
-
-  String username;
-
-  String toString();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('URLUtilsReadOnly')
-@Experimental() // untriaged
-abstract class UrlUtilsReadOnly extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory UrlUtilsReadOnly._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  final String hash;
-
-  final String host;
-
-  final String hostname;
-
-  final String href;
-
-  final String origin;
-
-  final String pathname;
-
-  final String port;
-
-  final String protocol;
-
-  final String search;
-
-  String toString();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('VRDevice')
-@Experimental() // untriaged
-@Native("VRDevice")
-class VRDevice extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory VRDevice._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('VRDevice.deviceId')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String deviceId;
-
-  @DomName('VRDevice.deviceName')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String deviceName;
-
-  @DomName('VRDevice.hardwareUnitId')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String hardwareUnitId;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('VREyeParameters')
-@Experimental() // untriaged
-@Native("VREyeParameters")
-class VREyeParameters extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory VREyeParameters._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('VREyeParameters.currentFieldOfView')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final VRFieldOfView currentFieldOfView;
-
-  @DomName('VREyeParameters.eyeTranslation')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final DomPoint eyeTranslation;
-
-  @DomName('VREyeParameters.maximumFieldOfView')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final VRFieldOfView maximumFieldOfView;
-
-  @DomName('VREyeParameters.minimumFieldOfView')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final VRFieldOfView minimumFieldOfView;
-
-  @DomName('VREyeParameters.recommendedFieldOfView')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final VRFieldOfView recommendedFieldOfView;
-
-  @DomName('VREyeParameters.renderRect')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final _DomRect renderRect;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('VRFieldOfView')
-@Experimental() // untriaged
-@Native("VRFieldOfView")
-class VRFieldOfView extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory VRFieldOfView._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('VRFieldOfView.VRFieldOfView')
-  @DocsEditable()
-  factory VRFieldOfView([Map fov]) {
-    if (fov != null) {
-      var fov_1 = convertDartToNative_Dictionary(fov);
-      return VRFieldOfView._create_1(fov_1);
-    }
-    return VRFieldOfView._create_2();
-  }
-  static VRFieldOfView _create_1(fov) =>
-      JS('VRFieldOfView', 'new VRFieldOfView(#)', fov);
-  static VRFieldOfView _create_2() =>
-      JS('VRFieldOfView', 'new VRFieldOfView()');
-
-  @DomName('VRFieldOfView.downDegrees')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num downDegrees;
-
-  @DomName('VRFieldOfView.leftDegrees')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num leftDegrees;
-
-  @DomName('VRFieldOfView.rightDegrees')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num rightDegrees;
-
-  @DomName('VRFieldOfView.upDegrees')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num upDegrees;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('VRPositionState')
-@Experimental() // untriaged
-@Native("VRPositionState")
-class VRPositionState extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory VRPositionState._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('VRPositionState.angularAcceleration')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final DomPoint angularAcceleration;
-
-  @DomName('VRPositionState.angularVelocity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final DomPoint angularVelocity;
-
-  @DomName('VRPositionState.linearAcceleration')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final DomPoint linearAcceleration;
-
-  @DomName('VRPositionState.linearVelocity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final DomPoint linearVelocity;
-
-  @DomName('VRPositionState.orientation')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final DomPoint orientation;
-
-  @DomName('VRPositionState.position')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final DomPoint position;
-
-  @DomName('VRPositionState.timeStamp')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double timeStamp;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ValidityState')
-@Native("ValidityState")
-class ValidityState extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory ValidityState._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('ValidityState.badInput')
-  @DocsEditable()
-  final bool badInput;
-
-  @DomName('ValidityState.customError')
-  @DocsEditable()
-  final bool customError;
-
-  @DomName('ValidityState.patternMismatch')
-  @DocsEditable()
-  final bool patternMismatch;
-
-  @DomName('ValidityState.rangeOverflow')
-  @DocsEditable()
-  final bool rangeOverflow;
-
-  @DomName('ValidityState.rangeUnderflow')
-  @DocsEditable()
-  final bool rangeUnderflow;
-
-  @DomName('ValidityState.stepMismatch')
-  @DocsEditable()
-  final bool stepMismatch;
-
-  @DomName('ValidityState.tooLong')
-  @DocsEditable()
-  final bool tooLong;
-
-  @DomName('ValidityState.tooShort')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool tooShort;
-
-  @DomName('ValidityState.typeMismatch')
-  @DocsEditable()
-  final bool typeMismatch;
-
-  @DomName('ValidityState.valid')
-  @DocsEditable()
-  final bool valid;
-
-  @DomName('ValidityState.valueMissing')
-  @DocsEditable()
-  final bool valueMissing;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('HTMLVideoElement')
-@Native("HTMLVideoElement")
-class VideoElement extends MediaElement implements CanvasImageSource {
-  // To suppress missing implicit constructor warnings.
-  factory VideoElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('HTMLVideoElement.HTMLVideoElement')
-  @DocsEditable()
-  factory VideoElement() => JS(
-      'returns:VideoElement;creates:VideoElement;new:true',
-      '#.createElement(#)',
-      document,
-      "video");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  VideoElement.created() : super.created();
-
-  @DomName('HTMLVideoElement.height')
-  @DocsEditable()
-  int height;
-
-  @DomName('HTMLVideoElement.poster')
-  @DocsEditable()
-  String poster;
-
-  @DomName('HTMLVideoElement.videoHeight')
-  @DocsEditable()
-  final int videoHeight;
-
-  @DomName('HTMLVideoElement.videoWidth')
-  @DocsEditable()
-  final int videoWidth;
-
-  @JSName('webkitDecodedFrameCount')
-  @DomName('HTMLVideoElement.webkitDecodedFrameCount')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  final int decodedFrameCount;
-
-  @JSName('webkitDroppedFrameCount')
-  @DomName('HTMLVideoElement.webkitDroppedFrameCount')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  final int droppedFrameCount;
-
-  @DomName('HTMLVideoElement.width')
-  @DocsEditable()
-  int width;
-
-  @DomName('HTMLVideoElement.getVideoPlaybackQuality')
-  @DocsEditable()
-  @Experimental() // untriaged
-  VideoPlaybackQuality getVideoPlaybackQuality() native;
-
-  @JSName('webkitEnterFullscreen')
-  @DomName('HTMLVideoElement.webkitEnterFullscreen')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html
-  void enterFullscreen() native;
-
-  @JSName('webkitExitFullscreen')
-  @DomName('HTMLVideoElement.webkitExitFullscreen')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html#dom-document-exitfullscreen
-  void exitFullscreen() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('VideoPlaybackQuality')
-@Experimental() // untriaged
-@Native("VideoPlaybackQuality")
-class VideoPlaybackQuality extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory VideoPlaybackQuality._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('VideoPlaybackQuality.corruptedVideoFrames')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int corruptedVideoFrames;
-
-  @DomName('VideoPlaybackQuality.creationTime')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double creationTime;
-
-  @DomName('VideoPlaybackQuality.droppedVideoFrames')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int droppedVideoFrames;
-
-  @DomName('VideoPlaybackQuality.totalVideoFrames')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int totalVideoFrames;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('VideoTrack')
-@Experimental() // untriaged
-@Native("VideoTrack")
-class VideoTrack extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory VideoTrack._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('VideoTrack.id')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String id;
-
-  @DomName('VideoTrack.kind')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String kind;
-
-  @DomName('VideoTrack.label')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String label;
-
-  @DomName('VideoTrack.language')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String language;
-
-  @DomName('VideoTrack.selected')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool selected;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('VideoTrackList')
-@Experimental() // untriaged
-@Native("VideoTrackList")
-class VideoTrackList extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory VideoTrackList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('VideoTrackList.changeEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> changeEvent =
-      const EventStreamProvider<Event>('change');
-
-  @DomName('VideoTrackList.length')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int length;
-
-  @DomName('VideoTrackList.selectedIndex')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int selectedIndex;
-
-  @DomName('VideoTrackList.__getter__')
-  @DocsEditable()
-  @Experimental() // untriaged
-  VideoTrack __getter__(int index) native;
-
-  @DomName('VideoTrackList.getTrackById')
-  @DocsEditable()
-  @Experimental() // untriaged
-  VideoTrack getTrackById(String id) native;
-
-  @DomName('VideoTrackList.onchange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onChange => changeEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('VoidCallback')
-// http://www.w3.org/TR/file-system-api/#the-voidcallback-interface
-@Experimental()
-typedef void VoidCallback();
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('VTTCue')
-@Experimental() // untriaged
-@Native("VTTCue")
-class VttCue extends TextTrackCue {
-  // To suppress missing implicit constructor warnings.
-  factory VttCue._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('VTTCue.VTTCue')
-  @DocsEditable()
-  factory VttCue(num startTime, num endTime, String text) {
-    return VttCue._create_1(startTime, endTime, text);
-  }
-  static VttCue _create_1(startTime, endTime, text) =>
-      JS('VttCue', 'new VTTCue(#,#,#)', startTime, endTime, text);
-
-  @DomName('VTTCue.align')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String align;
-
-  @DomName('VTTCue.line')
-  @DocsEditable()
-  @Experimental() // untriaged
-  @Creates('Null')
-  @Returns('num|String')
-  Object line;
-
-  @DomName('VTTCue.position')
-  @DocsEditable()
-  @Experimental() // untriaged
-  @Creates('Null')
-  @Returns('num|String')
-  Object position;
-
-  @DomName('VTTCue.regionId')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String regionId;
-
-  @DomName('VTTCue.size')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num size;
-
-  @DomName('VTTCue.snapToLines')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool snapToLines;
-
-  @DomName('VTTCue.text')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String text;
-
-  @DomName('VTTCue.vertical')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String vertical;
-
-  @JSName('getCueAsHTML')
-  @DomName('VTTCue.getCueAsHTML')
-  @DocsEditable()
-  @Experimental() // untriaged
-  DocumentFragment getCueAsHtml() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('VTTRegion')
-@Experimental() // untriaged
-@Native("VTTRegion")
-class VttRegion extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory VttRegion._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('VTTRegion.VTTRegion')
-  @DocsEditable()
-  factory VttRegion() {
-    return VttRegion._create_1();
-  }
-  static VttRegion _create_1() => JS('VttRegion', 'new VTTRegion()');
-
-  @DomName('VTTRegion.height')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int height;
-
-  @DomName('VTTRegion.id')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String id;
-
-  @DomName('VTTRegion.regionAnchorX')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num regionAnchorX;
-
-  @DomName('VTTRegion.regionAnchorY')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num regionAnchorY;
-
-  @DomName('VTTRegion.scroll')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String scroll;
-
-  @DomName('VTTRegion.track')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final TextTrack track;
-
-  @DomName('VTTRegion.viewportAnchorX')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num viewportAnchorX;
-
-  @DomName('VTTRegion.viewportAnchorY')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num viewportAnchorY;
-
-  @DomName('VTTRegion.width')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num width;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('VTTRegionList')
-@Experimental() // untriaged
-@Native("VTTRegionList")
-class VttRegionList extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory VttRegionList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('VTTRegionList.length')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int length;
-
-  @DomName('VTTRegionList.getRegionById')
-  @DocsEditable()
-  @Experimental() // untriaged
-  VttRegion getRegionById(String id) native;
-
-  @DomName('VTTRegionList.item')
-  @DocsEditable()
-  @Experimental() // untriaged
-  VttRegion item(int index) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-/**
- * Use the WebSocket interface to connect to a WebSocket,
- * and to send and receive data on that WebSocket.
- *
- * To use a WebSocket in your web app, first create a WebSocket object,
- * passing the WebSocket URL as an argument to the constructor.
- *
- *     var webSocket = new WebSocket('ws://127.0.0.1:1337/ws');
- *
- * To send data on the WebSocket, use the [send] method.
- *
- *     if (webSocket != null && webSocket.readyState == WebSocket.OPEN) {
- *       webSocket.send(data);
- *     } else {
- *       print('WebSocket not connected, message $data not sent');
- *     }
- *
- * To receive data on the WebSocket, register a listener for message events.
- *
- *     webSocket.onMessage.listen((MessageEvent e) {
- *       receivedData(e.data);
- *     });
- *
- * The message event handler receives a [MessageEvent] object
- * as its sole argument.
- * You can also define open, close, and error handlers,
- * as specified by [WebSocketEvents].
- *
- * For more information, see the
- * [WebSockets](http://www.dartlang.org/docs/library-tour/#html-websockets)
- * section of the library tour and
- * [Introducing WebSockets](http://www.html5rocks.com/en/tutorials/websockets/basics/),
- * an HTML5Rocks.com tutorial.
- */
-@DomName('WebSocket')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("WebSocket")
-class WebSocket extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory WebSocket._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `close` events to event
-   * handlers that are not necessarily instances of [WebSocket].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('WebSocket.closeEvent')
-  @DocsEditable()
-  static const EventStreamProvider<CloseEvent> closeEvent =
-      const EventStreamProvider<CloseEvent>('close');
-
-  /**
-   * Static factory designed to expose `error` events to event
-   * handlers that are not necessarily instances of [WebSocket].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('WebSocket.errorEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> errorEvent =
-      const EventStreamProvider<Event>('error');
-
-  /**
-   * Static factory designed to expose `message` events to event
-   * handlers that are not necessarily instances of [WebSocket].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('WebSocket.messageEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MessageEvent> messageEvent =
-      const EventStreamProvider<MessageEvent>('message');
-
-  /**
-   * Static factory designed to expose `open` events to event
-   * handlers that are not necessarily instances of [WebSocket].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('WebSocket.openEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> openEvent =
-      const EventStreamProvider<Event>('open');
-
-  @DomName('WebSocket.WebSocket')
-  @DocsEditable()
-  factory WebSocket(String url, [Object protocols]) {
-    if (protocols != null) {
-      return WebSocket._create_1(url, protocols);
-    }
-    return WebSocket._create_2(url);
-  }
-  static WebSocket _create_1(url, protocols) =>
-      JS('WebSocket', 'new WebSocket(#,#)', url, protocols);
-  static WebSocket _create_2(url) => JS('WebSocket', 'new WebSocket(#)', url);
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      JS('bool', 'typeof window.WebSocket != "undefined"');
-
-  @DomName('WebSocket.CLOSED')
-  @DocsEditable()
-  static const int CLOSED = 3;
-
-  @DomName('WebSocket.CLOSING')
-  @DocsEditable()
-  static const int CLOSING = 2;
-
-  @DomName('WebSocket.CONNECTING')
-  @DocsEditable()
-  static const int CONNECTING = 0;
-
-  @DomName('WebSocket.OPEN')
-  @DocsEditable()
-  static const int OPEN = 1;
-
-  @DomName('WebSocket.binaryType')
-  @DocsEditable()
-  String binaryType;
-
-  @DomName('WebSocket.bufferedAmount')
-  @DocsEditable()
-  final int bufferedAmount;
-
-  @DomName('WebSocket.extensions')
-  @DocsEditable()
-  final String extensions;
-
-  @DomName('WebSocket.protocol')
-  @DocsEditable()
-  final String protocol;
-
-  @DomName('WebSocket.readyState')
-  @DocsEditable()
-  final int readyState;
-
-  @DomName('WebSocket.url')
-  @DocsEditable()
-  final String url;
-
-  @DomName('WebSocket.close')
-  @DocsEditable()
-  void close([int code, String reason]) native;
-
-  /**
-   * Transmit data to the server over this connection.
-   *
-   * This method accepts data of type [Blob], [ByteBuffer], [String], or
-   * [TypedData]. Named variants [sendBlob], [sendByteBuffer], [sendString],
-   * or [sendTypedData], in contrast, only accept data of the specified type.
-   */
-  @DomName('WebSocket.send')
-  @DocsEditable()
-  void send(data) native;
-
-  @JSName('send')
-  /**
-   * Transmit data to the server over this connection.
-   *
-   * This method accepts data of type [Blob], [ByteBuffer], [String], or
-   * [TypedData]. Named variants [sendBlob], [sendByteBuffer], [sendString],
-   * or [sendTypedData], in contrast, only accept data of the specified type.
-   */
-  @DomName('WebSocket.send')
-  @DocsEditable()
-  void sendBlob(Blob data) native;
-
-  @JSName('send')
-  /**
-   * Transmit data to the server over this connection.
-   *
-   * This method accepts data of type [Blob], [ByteBuffer], [String], or
-   * [TypedData]. Named variants [sendBlob], [sendByteBuffer], [sendString],
-   * or [sendTypedData], in contrast, only accept data of the specified type.
-   */
-  @DomName('WebSocket.send')
-  @DocsEditable()
-  void sendByteBuffer(ByteBuffer data) native;
-
-  @JSName('send')
-  /**
-   * Transmit data to the server over this connection.
-   *
-   * This method accepts data of type [Blob], [ByteBuffer], [String], or
-   * [TypedData]. Named variants [sendBlob], [sendByteBuffer], [sendString],
-   * or [sendTypedData], in contrast, only accept data of the specified type.
-   */
-  @DomName('WebSocket.send')
-  @DocsEditable()
-  void sendString(String data) native;
-
-  @JSName('send')
-  /**
-   * Transmit data to the server over this connection.
-   *
-   * This method accepts data of type [Blob], [ByteBuffer], [String], or
-   * [TypedData]. Named variants [sendBlob], [sendByteBuffer], [sendString],
-   * or [sendTypedData], in contrast, only accept data of the specified type.
-   */
-  @DomName('WebSocket.send')
-  @DocsEditable()
-  void sendTypedData(TypedData data) native;
-
-  /// Stream of `close` events handled by this [WebSocket].
-  @DomName('WebSocket.onclose')
-  @DocsEditable()
-  Stream<CloseEvent> get onClose => closeEvent.forTarget(this);
-
-  /// Stream of `error` events handled by this [WebSocket].
-  @DomName('WebSocket.onerror')
-  @DocsEditable()
-  Stream<Event> get onError => errorEvent.forTarget(this);
-
-  /// Stream of `message` events handled by this [WebSocket].
-  @DomName('WebSocket.onmessage')
-  @DocsEditable()
-  Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
-
-  /// Stream of `open` events handled by this [WebSocket].
-  @DomName('WebSocket.onopen')
-  @DocsEditable()
-  Stream<Event> get onOpen => openEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('WheelEvent')
-@Native("WheelEvent")
-class WheelEvent extends MouseEvent {
-  factory WheelEvent(String type,
-      {Window view,
-      num deltaX: 0,
-      num deltaY: 0,
-      num deltaZ: 0,
-      int deltaMode: 0,
-      int detail: 0,
-      int screenX: 0,
-      int screenY: 0,
-      int clientX: 0,
-      int clientY: 0,
-      int button: 0,
-      bool canBubble: true,
-      bool cancelable: true,
-      bool ctrlKey: false,
-      bool altKey: false,
-      bool shiftKey: false,
-      bool metaKey: false,
-      EventTarget relatedTarget}) {
-    var options = {
-      'view': view,
-      'deltaMode': deltaMode,
-      'deltaX': deltaX,
-      'deltaY': deltaY,
-      'deltaZ': deltaZ,
-      'detail': detail,
-      'screenX': screenX,
-      'screenY': screenY,
-      'clientX': clientX,
-      'clientY': clientY,
-      'button': button,
-      'bubbles': canBubble,
-      'cancelable': cancelable,
-      'ctrlKey': ctrlKey,
-      'altKey': altKey,
-      'shiftKey': shiftKey,
-      'metaKey': metaKey,
-      'relatedTarget': relatedTarget,
-    };
-
-    if (view == null) {
-      view = window;
-    }
-
-    return JS('WheelEvent', 'new WheelEvent(#, #)', type,
-        convertDartToNative_Dictionary(options));
-  }
-
-  @DomName('WheelEvent.WheelEvent')
-  @DocsEditable()
-  factory WheelEvent._(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return WheelEvent._create_1(type, eventInitDict_1);
-    }
-    return WheelEvent._create_2(type);
-  }
-  static WheelEvent _create_1(type, eventInitDict) =>
-      JS('WheelEvent', 'new WheelEvent(#,#)', type, eventInitDict);
-  static WheelEvent _create_2(type) =>
-      JS('WheelEvent', 'new WheelEvent(#)', type);
-
-  @DomName('WheelEvent.DOM_DELTA_LINE')
-  @DocsEditable()
-  static const int DOM_DELTA_LINE = 0x01;
-
-  @DomName('WheelEvent.DOM_DELTA_PAGE')
-  @DocsEditable()
-  static const int DOM_DELTA_PAGE = 0x02;
-
-  @DomName('WheelEvent.DOM_DELTA_PIXEL')
-  @DocsEditable()
-  static const int DOM_DELTA_PIXEL = 0x00;
-
-  @JSName('deltaX')
-  @DomName('WheelEvent.deltaX')
-  @DocsEditable()
-  final double _deltaX;
-
-  @JSName('deltaY')
-  @DomName('WheelEvent.deltaY')
-  @DocsEditable()
-  final double _deltaY;
-
-  @DomName('WheelEvent.deltaZ')
-  @DocsEditable()
-  final double deltaZ;
-
-  /**
-   * The amount that is expected to scroll vertically, in units determined by
-   * [deltaMode].
-   *
-   * See also:
-   *
-   * * [WheelEvent.deltaY](http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#events-WheelEvent-deltaY) from the W3C.
-   */
-  @DomName('WheelEvent.deltaY')
-  num get deltaY {
-    if (JS('bool', '#.deltaY !== undefined', this)) {
-      // W3C WheelEvent
-      return this._deltaY;
-    }
-    throw new UnsupportedError('deltaY is not supported');
-  }
-
-  /**
-   * The amount that is expected to scroll horizontally, in units determined by
-   * [deltaMode].
-   *
-   * See also:
-   *
-   * * [WheelEvent.deltaX](http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#events-WheelEvent-deltaX) from the W3C.
-   */
-  @DomName('WheelEvent.deltaX')
-  num get deltaX {
-    if (JS('bool', '#.deltaX !== undefined', this)) {
-      // W3C WheelEvent
-      return this._deltaX;
-    }
-    throw new UnsupportedError('deltaX is not supported');
-  }
-
-  @DomName('WheelEvent.deltaMode')
-  int get deltaMode {
-    if (JS('bool', '!!(#.deltaMode)', this)) {
-      return JS('int', '#.deltaMode', this);
-    }
-    // If not available then we're poly-filling and doing pixel scroll.
-    return 0;
-  }
-
-  num get _wheelDelta => JS('num', '#.wheelDelta', this);
-  num get _wheelDeltaX => JS('num', '#.wheelDeltaX', this);
-  num get _detail => JS('num', '#.detail', this);
-
-  bool get _hasInitMouseScrollEvent =>
-      JS('bool', '!!(#.initMouseScrollEvent)', this);
-
-  @JSName('initMouseScrollEvent')
-  void _initMouseScrollEvent(
-      String type,
-      bool canBubble,
-      bool cancelable,
-      Window view,
-      int detail,
-      int screenX,
-      int screenY,
-      int clientX,
-      int clientY,
-      bool ctrlKey,
-      bool altKey,
-      bool shiftKey,
-      bool metaKey,
-      int button,
-      EventTarget relatedTarget,
-      int axis) native;
-
-  bool get _hasInitWheelEvent => JS('bool', '!!(#.initWheelEvent)', this);
-  @JSName('initWheelEvent')
-  void _initWheelEvent(
-      String eventType,
-      bool canBubble,
-      bool cancelable,
-      Window view,
-      int detail,
-      int screenX,
-      int screenY,
-      int clientX,
-      int clientY,
-      int button,
-      EventTarget relatedTarget,
-      String modifiersList,
-      int deltaX,
-      int deltaY,
-      int deltaZ,
-      int deltaMode) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-/**
- * Top-level container for the current browser tab or window.
- *
- * In a web browser, each window has a [Window] object, but within the context
- * of a script, this object represents only the current window.
- * Each other window, tab, and iframe has its own [Window] object.
- *
- * Each window contains a [Document] object, which contains all of the window's
- * content.
- *
- * Use the top-level `window` object to access the current window.
- * For example:
- *
- *     // Draw a scene when the window repaints.
- *     drawScene(num delta) {...}
- *     window.animationFrame.then(drawScene);.
- *
- *     // Write to the console.
- *     window.console.log('Jinkies!');
- *     window.console.error('Jeepers!');
- *
- * **Note:** This class represents only the current window, while [WindowBase]
- * is a representation of any window, including other tabs, windows, and frames.
- *
- * ## See also
- *
- * * [WindowBase]
- *
- * ## Other resources
- *
- * * [DOM Window](https://developer.mozilla.org/en-US/docs/DOM/window) from MDN.
- * * [Window](http://www.w3.org/TR/Window/) from the W3C.
- */
-@DomName('Window')
-@Native("Window,DOMWindow")
-class Window extends EventTarget
-    implements
-        WindowEventHandlers,
-        WindowBase,
-        GlobalEventHandlers,
-        _WindowTimers,
-        WindowBase64 {
-  /**
-   * Returns a Future that completes just before the window is about to
-   * repaint so the user can draw an animation frame.
-   *
-   * If you need to later cancel this animation, use [requestAnimationFrame]
-   * instead.
-   *
-   * The [Future] completes to a timestamp that represents a floating
-   * point value of the number of milliseconds that have elapsed since the page
-   * started to load (which is also the timestamp at this call to
-   * animationFrame).
-   *
-   * Note: The code that runs when the future completes should call
-   * [animationFrame] again for the animation to continue.
-   */
-  Future<num> get animationFrame {
-    var completer = new Completer<num>.sync();
-    requestAnimationFrame((time) {
-      completer.complete(time);
-    });
-    return completer.future;
-  }
-
-  /**
-   * The newest document in this window.
-   *
-   * ## Other resources
-   *
-   * * [Loading web
-   *   pages](https://html.spec.whatwg.org/multipage/browsers.html)
-   *   from WHATWG.
-   */
-  Document get document => JS('Document', '#.document', this);
-
-  WindowBase _open2(url, name) =>
-      JS('Window|Null', '#.open(#,#)', this, url, name);
-
-  WindowBase _open3(url, name, options) =>
-      JS('Window|Null', '#.open(#,#,#)', this, url, name, options);
-
-  /**
-   * Opens a new window.
-   *
-   * ## Other resources
-   *
-   * * [Window.open](https://developer.mozilla.org/en-US/docs/Web/API/Window.open)
-   *   from MDN.
-   * * [Window open](http://docs.webplatform.org/wiki/dom/methods/open)
-   *   from WebPlatform.org.
-   */
-  WindowBase open(String url, String name, [String options]) {
-    if (options == null) {
-      return _DOMWindowCrossFrame._createSafe(_open2(url, name));
-    } else {
-      return _DOMWindowCrossFrame._createSafe(_open3(url, name, options));
-    }
-  }
-
-  // API level getter and setter for Location.
-  // TODO: The cross domain safe wrapper can be inserted here.
-  /**
-   * The current location of this window.
-   *
-   *     Location currentLocation = window.location;
-   *     print(currentLocation.href); // 'http://www.example.com:80/'
-   */
-  Location get location => _location;
-
-  // TODO: consider forcing users to do: window.location.assign('string').
-  /**
-   * Sets the window's location, which causes the browser to navigate to the new
-   * location. [value] may be a Location object or a String.
-   */
-  set location(value) {
-    _location = value;
-  }
-
-  // Native getter and setter to access raw Location object.
-  dynamic get _location => JS('Location|Null', '#.location', this);
-  set _location(value) {
-    JS('void', '#.location = #', this, value);
-  }
-
-  /**
-   * Called to draw an animation frame and then request the window to repaint
-   * after [callback] has finished (creating the animation).
-   *
-   * Use this method only if you need to later call [cancelAnimationFrame]. If
-   * not, the preferred Dart idiom is to set animation frames by calling
-   * [animationFrame], which returns a Future.
-   *
-   * Returns a non-zero valued integer to represent the request id for this
-   * request. This value only needs to be saved if you intend to call
-   * [cancelAnimationFrame] so you can specify the particular animation to
-   * cancel.
-   *
-   * Note: The supplied [callback] needs to call [requestAnimationFrame] again
-   * for the animation to continue.
-   */
-  @DomName('Window.requestAnimationFrame')
-  int requestAnimationFrame(FrameRequestCallback callback) {
-    _ensureRequestAnimationFrame();
-    return _requestAnimationFrame(_wrapZone(callback));
-  }
-
-  /**
-   * Cancels an animation frame request.
-   *
-   * ## Other resources
-   *
-   * * [Window.cancelAnimationFrame](https://developer.mozilla.org/en-US/docs/Web/API/Window.cancelAnimationFrame)
-   *   from MDN.
-   */
-  void cancelAnimationFrame(int id) {
-    _ensureRequestAnimationFrame();
-    _cancelAnimationFrame(id);
-  }
-
-  @JSName('requestAnimationFrame')
-  int _requestAnimationFrame(FrameRequestCallback callback) native;
-
-  @JSName('cancelAnimationFrame')
-  void _cancelAnimationFrame(int id) native;
-
-  _ensureRequestAnimationFrame() {
-    if (JS('bool', '!!(#.requestAnimationFrame && #.cancelAnimationFrame)',
-        this, this)) return;
-
-    JS(
-        'void',
-        r"""
-  (function($this) {
-   var vendors = ['ms', 'moz', 'webkit', 'o'];
-   for (var i = 0; i < vendors.length && !$this.requestAnimationFrame; ++i) {
-     $this.requestAnimationFrame = $this[vendors[i] + 'RequestAnimationFrame'];
-     $this.cancelAnimationFrame =
-         $this[vendors[i]+'CancelAnimationFrame'] ||
-         $this[vendors[i]+'CancelRequestAnimationFrame'];
-   }
-   if ($this.requestAnimationFrame && $this.cancelAnimationFrame) return;
-   $this.requestAnimationFrame = function(callback) {
-      return window.setTimeout(function() {
-        callback(Date.now());
-      }, 16 /* 16ms ~= 60fps */);
-   };
-   $this.cancelAnimationFrame = function(id) { clearTimeout(id); }
-  })(#)""",
-        this);
-  }
-
-  /**
-   * Gets an instance of the Indexed DB factory to being using Indexed DB.
-   *
-   * Use [indexed_db.IdbFactory.supported] to check if Indexed DB is supported on the
-   * current platform.
-   */
-  @SupportedBrowser(SupportedBrowser.CHROME, '23.0')
-  @SupportedBrowser(SupportedBrowser.FIREFOX, '15.0')
-  @SupportedBrowser(SupportedBrowser.IE, '10.0')
-  @Experimental()
-  IdbFactory get indexedDB => JS(
-      'IdbFactory|Null', // If not supported, returns null.
-      '#.indexedDB || #.webkitIndexedDB || #.mozIndexedDB',
-      this,
-      this,
-      this);
-
-  /// The debugging console for this window.
-  @DomName('Window.console')
-  Console get console => Console._safeConsole;
-
-  /**
-   * Access a sandboxed file system of the specified `size`. If `persistent` is
-   * true, the application will request permission from the user to create
-   * lasting storage. This storage cannot be freed without the user's
-   * permission. Returns a [Future] whose value stores a reference to the
-   * sandboxed file system for use. Because the file system is sandboxed,
-   * applications cannot access file systems created in other web pages.
-   */
-  Future<FileSystem> requestFileSystem(int size, {bool persistent: false}) {
-    return _requestFileSystem(persistent ? 1 : 0, size);
-  }
-
-  /**
-   * convertPointFromNodeToPage and convertPointFromPageToNode are removed.
-   * see http://dev.w3.org/csswg/cssom-view/#geometry
-   */
-  static bool get supportsPointConversions => DomPoint.supported;
-  // To suppress missing implicit constructor warnings.
-  factory Window._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `contentloaded` events to event
-   * handlers that are not necessarily instances of [Window].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Window.DOMContentLoadedEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> contentLoadedEvent =
-      const EventStreamProvider<Event>('DOMContentLoaded');
-
-  /**
-   * Static factory designed to expose `devicemotion` events to event
-   * handlers that are not necessarily instances of [Window].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Window.devicemotionEvent')
-  @DocsEditable()
-  // http://dev.w3.org/geo/api/spec-source-orientation.html#devicemotion
-  @Experimental()
-  static const EventStreamProvider<DeviceMotionEvent> deviceMotionEvent =
-      const EventStreamProvider<DeviceMotionEvent>('devicemotion');
-
-  /**
-   * Static factory designed to expose `deviceorientation` events to event
-   * handlers that are not necessarily instances of [Window].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Window.deviceorientationEvent')
-  @DocsEditable()
-  // http://dev.w3.org/geo/api/spec-source-orientation.html#devicemotion
-  @Experimental()
-  static const EventStreamProvider<DeviceOrientationEvent>
-      deviceOrientationEvent =
-      const EventStreamProvider<DeviceOrientationEvent>('deviceorientation');
-
-  /**
-   * Static factory designed to expose `hashchange` events to event
-   * handlers that are not necessarily instances of [Window].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Window.hashchangeEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> hashChangeEvent =
-      const EventStreamProvider<Event>('hashchange');
-
-  @DomName('Window.loadstartEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> loadStartEvent =
-      const EventStreamProvider<Event>('loadstart');
-
-  /**
-   * Static factory designed to expose `message` events to event
-   * handlers that are not necessarily instances of [Window].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Window.messageEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MessageEvent> messageEvent =
-      const EventStreamProvider<MessageEvent>('message');
-
-  /**
-   * Static factory designed to expose `offline` events to event
-   * handlers that are not necessarily instances of [Window].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Window.offlineEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> offlineEvent =
-      const EventStreamProvider<Event>('offline');
-
-  /**
-   * Static factory designed to expose `online` events to event
-   * handlers that are not necessarily instances of [Window].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Window.onlineEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> onlineEvent =
-      const EventStreamProvider<Event>('online');
-
-  /**
-   * Static factory designed to expose `pagehide` events to event
-   * handlers that are not necessarily instances of [Window].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Window.pagehideEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> pageHideEvent =
-      const EventStreamProvider<Event>('pagehide');
-
-  /**
-   * Static factory designed to expose `pageshow` events to event
-   * handlers that are not necessarily instances of [Window].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Window.pageshowEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> pageShowEvent =
-      const EventStreamProvider<Event>('pageshow');
-
-  /**
-   * Static factory designed to expose `popstate` events to event
-   * handlers that are not necessarily instances of [Window].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Window.popstateEvent')
-  @DocsEditable()
-  static const EventStreamProvider<PopStateEvent> popStateEvent =
-      const EventStreamProvider<PopStateEvent>('popstate');
-
-  @DomName('Window.progressEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> progressEvent =
-      const EventStreamProvider<Event>('progress');
-
-  /**
-   * Static factory designed to expose `storage` events to event
-   * handlers that are not necessarily instances of [Window].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Window.storageEvent')
-  @DocsEditable()
-  static const EventStreamProvider<StorageEvent> storageEvent =
-      const EventStreamProvider<StorageEvent>('storage');
-
-  /**
-   * Static factory designed to expose `unload` events to event
-   * handlers that are not necessarily instances of [Window].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Window.unloadEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> unloadEvent =
-      const EventStreamProvider<Event>('unload');
-
-  /**
-   * Static factory designed to expose `animationend` events to event
-   * handlers that are not necessarily instances of [Window].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Window.webkitAnimationEndEvent')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  static const EventStreamProvider<AnimationEvent> animationEndEvent =
-      const EventStreamProvider<AnimationEvent>('webkitAnimationEnd');
-
-  /**
-   * Static factory designed to expose `animationiteration` events to event
-   * handlers that are not necessarily instances of [Window].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Window.webkitAnimationIterationEvent')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  static const EventStreamProvider<AnimationEvent> animationIterationEvent =
-      const EventStreamProvider<AnimationEvent>('webkitAnimationIteration');
-
-  /**
-   * Static factory designed to expose `animationstart` events to event
-   * handlers that are not necessarily instances of [Window].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Window.webkitAnimationStartEvent')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  static const EventStreamProvider<AnimationEvent> animationStartEvent =
-      const EventStreamProvider<AnimationEvent>('webkitAnimationStart');
-
-  /**
-   * Indicates that file system data cannot be cleared unless given user
-   * permission.
-   *
-   * ## Other resources
-   *
-   * * [Exploring the FileSystem
-   *   APIs](http://www.html5rocks.com/en/tutorials/file/filesystem/)
-   *   from HTML5Rocks.
-   * * [File API](http://www.w3.org/TR/file-system-api/#idl-def-LocalFileSystem)
-   *   from W3C.
-   */
-  @DomName('Window.PERSISTENT')
-  @DocsEditable()
-  // http://www.w3.org/TR/file-system-api/#idl-def-LocalFileSystem
-  @Experimental()
-  static const int PERSISTENT = 1;
-
-  /**
-   * Indicates that file system data can be cleared at any time.
-   *
-   * ## Other resources
-   *
-   * * [Exploring the FileSystem
-   *   APIs](http://www.html5rocks.com/en/tutorials/file/filesystem/) from HTML5Rocks.
-   * * [File API](http://www.w3.org/TR/file-system-api/#idl-def-LocalFileSystem)
-   *   from W3C.
-   */
-  @DomName('Window.TEMPORARY')
-  @DocsEditable()
-  // http://www.w3.org/TR/file-system-api/#idl-def-LocalFileSystem
-  @Experimental()
-  static const int TEMPORARY = 0;
-
-  /**
-   * The application cache for this window.
-   *
-   * ## Other resources
-   *
-   * * [A beginner's guide to using the application
-   *   cache](http://www.html5rocks.com/en/tutorials/appcache/beginner)
-   *   from HTML5Rocks.
-   * * [Application cache
-   *   API](https://html.spec.whatwg.org/multipage/browsers.html#application-cache-api)
-   *   from WHATWG.
-   */
-  @DomName('Window.applicationCache')
-  @DocsEditable()
-  final ApplicationCache applicationCache;
-
-  @DomName('Window.caches')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final CacheStorage caches;
-
-  @DomName('Window.closed')
-  @DocsEditable()
-  final bool closed;
-
-  /**
-   * Entrypoint for the browser's cryptographic functions.
-   *
-   * ## Other resources
-   *
-   * * [Web cryptography API](http://www.w3.org/TR/WebCryptoAPI/) from W3C.
-   */
-  @DomName('Window.crypto')
-  @DocsEditable()
-  // http://www.w3.org/TR/WebCryptoAPI/
-  @Experimental()
-  final Crypto crypto;
-
-  /// *Deprecated*.
-  @DomName('Window.defaultStatus')
-  @DocsEditable()
-  @Experimental() // non-standard
-  String defaultStatus;
-
-  /// *Deprecated*.
-  @DomName('Window.defaultstatus')
-  @DocsEditable()
-  @Experimental() // non-standard
-  String defaultstatus;
-
-  /**
-   * The ratio between physical pixels and logical CSS pixels.
-   *
-   * ## Other resources
-   *
-   * * [devicePixelRatio](http://www.quirksmode.org/blog/archives/2012/06/devicepixelrati.html)
-   *   from quirksmode.
-   * * [More about devicePixelRatio](http://www.quirksmode.org/blog/archives/2012/07/more_about_devi.html)
-   *   from quirksmode.
-   */
-  @DomName('Window.devicePixelRatio')
-  @DocsEditable()
-  // http://www.quirksmode.org/blog/archives/2012/06/devicepixelrati.html
-  @Experimental() // non-standard
-  final double devicePixelRatio;
-
-  /**
-   * The current session history for this window's newest document.
-   *
-   * ## Other resources
-   *
-   * * [Loading web pages](https://html.spec.whatwg.org/multipage/browsers.html)
-   *   from WHATWG.
-   */
-  @DomName('Window.history')
-  @DocsEditable()
-  final History history;
-
-  /**
-   * The height of the viewport including scrollbars.
-   *
-   * ## Other resources
-   *
-   * * [innerHeight](http://docs.webplatform.org/wiki/css/cssom/properties/innerHeight)
-   *   from WebPlatform.org.
-   */
-  @DomName('Window.innerHeight')
-  @DocsEditable()
-  final int innerHeight;
-
-  /**
-   * The width of the viewport including scrollbars.
-   *
-   * ## Other resources
-   *
-   * * [innerWidth](http://docs.webplatform.org/wiki/css/cssom/properties/innerWidth)
-   *   from WebPlatform.org.
-   */
-  @DomName('Window.innerWidth')
-  @DocsEditable()
-  final int innerWidth;
-
-  @DomName('Window.isSecureContext')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool isSecureContext;
-
-  /**
-   * Storage for this window that persists across sessions.
-   *
-   * ## Other resources
-   *
-   * * [DOM storage guide](https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage)
-   *   from MDN.
-   * * [The past, present & future of local storage for web
-   *   applications](http://diveintohtml5.info/storage.html) from Dive Into HTML5.
-   * * [Local storage specification](http://www.w3.org/TR/webstorage/#the-localstorage-attribute)
-   *   from W3C.
-   */
-  @DomName('Window.localStorage')
-  @DocsEditable()
-  final Storage localStorage;
-
-  /**
-   * This window's location bar, which displays the URL.
-   *
-   * ## Other resources
-   *
-   * * [Browser interface
-   *   elements](https://html.spec.whatwg.org/multipage/browsers.html#browser-interface-elements)
-   *   from WHATWG.
-   */
-  @DomName('Window.locationbar')
-  @DocsEditable()
-  final BarProp locationbar;
-
-  /**
-   * This window's menu bar, which displays menu commands.
-   *
-   * ## Other resources
-   *
-   * * [Browser interface
-   *   elements](https://html.spec.whatwg.org/multipage/browsers.html#browser-interface-elements)
-   *   from WHATWG.
-   */
-  @DomName('Window.menubar')
-  @DocsEditable()
-  final BarProp menubar;
-
-  /**
-   * The name of this window.
-   *
-   * ## Other resources
-   *
-   * * [Window name](http://docs.webplatform.org/wiki/html/attributes/name_(window))
-   *   from WebPlatform.org.
-   */
-  @DomName('Window.name')
-  @DocsEditable()
-  String name;
-
-  /**
-   * The user agent accessing this window.
-   *
-   * ## Other resources
-   *
-   * * [The navigator
-   *   object](https://html.spec.whatwg.org/multipage/webappapis.html#the-navigator-object)
-   *   from WHATWG.
-   */
-  @DomName('Window.navigator')
-  @DocsEditable()
-  final Navigator navigator;
-
-  /**
-   * Whether objects are drawn offscreen before being displayed.
-   *
-   * ## Other resources
-   *
-   * * [offscreenBuffering](http://docs.webplatform.org/wiki/dom/properties/offscreenBuffering)
-   *   from WebPlatform.org.
-   */
-  @DomName('Window.offscreenBuffering')
-  @DocsEditable()
-  @Experimental() // non-standard
-  final bool offscreenBuffering;
-
-  @DomName('Window.opener')
-  @DocsEditable()
-  WindowBase get opener => _convertNativeToDart_Window(this._get_opener);
-  @JSName('opener')
-  @DomName('Window.opener')
-  @DocsEditable()
-  @Creates('Window|=Object')
-  @Returns('Window|=Object')
-  final dynamic _get_opener;
-
-  set opener(Window value) {
-    JS("void", "#.opener = #", this, value);
-  }
-
-  @DomName('Window.orientation')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int orientation;
-
-  /**
-   * The height of this window including all user interface elements.
-   *
-   * ## Other resources
-   *
-   * * [outerHeight](http://docs.webplatform.org/wiki/css/cssom/properties/outerHeight)
-   *   from WebPlatform.org.
-   */
-  @DomName('Window.outerHeight')
-  @DocsEditable()
-  final int outerHeight;
-
-  /**
-   * The width of the window including all user interface elements.
-   *
-   * ## Other resources
-   *
-   * * [outerWidth](http://docs.webplatform.org/wiki/css/cssom/properties/outerWidth)
-   *   from WebPlatform.org.
-   */
-  @DomName('Window.outerWidth')
-  @DocsEditable()
-  final int outerWidth;
-
-  @JSName('pageXOffset')
-  /**
-   * The distance this window has been scrolled horizontally.
-   *
-   * This attribute is an alias for [scrollX].
-   *
-   * ## Other resources
-   *
-   * * [The Screen interface
-   *   specification](http://www.w3.org/TR/cssom-view/#screen) from W3C.
-   * * [scrollX and
-   *   pageXOffset](https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollX)
-   *   from MDN.
-   */
-  @DomName('Window.pageXOffset')
-  @DocsEditable()
-  final double _pageXOffset;
-
-  @JSName('pageYOffset')
-  /**
-   * The distance this window has been scrolled vertically.
-   *
-   * This attribute is an alias for [scrollY].
-   *
-   * ## Other resources
-   *
-   * * [The Screen interface
-   *   specification](http://www.w3.org/TR/cssom-view/#screen) from W3C.
-   * * [scrollY and
-   *   pageYOffset](https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollY)
-   *   from MDN.
-   */
-  @DomName('Window.pageYOffset')
-  @DocsEditable()
-  final double _pageYOffset;
-
-  @DomName('Window.parent')
-  @DocsEditable()
-  WindowBase get parent => _convertNativeToDart_Window(this._get_parent);
-  @JSName('parent')
-  @DomName('Window.parent')
-  @DocsEditable()
-  @Creates('Window|=Object')
-  @Returns('Window|=Object')
-  final dynamic _get_parent;
-
-  /**
-   * Timing and navigation data for this window.
-   *
-   * ## Other resources
-   *
-   * * [Measuring page load speed with navigation
-   *   timeing](http://www.html5rocks.com/en/tutorials/webperformance/basics/)
-   *   from HTML5Rocks.
-   * * [Navigation timing
-   *   specification](http://www.w3.org/TR/navigation-timing/) from W3C.
-   */
-  @DomName('Window.performance')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.FIREFOX)
-  @SupportedBrowser(SupportedBrowser.IE)
-  final Performance performance;
-
-  @DomName('Window.renderWorklet')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final _Worklet renderWorklet;
-
-  /**
-   * Information about the screen displaying this window.
-   *
-   * ## Other resources
-   *
-   * * [The Screen interface specification](http://www.w3.org/TR/cssom-view/#screen)
-   *   from W3C.
-   */
-  @DomName('Window.screen')
-  @DocsEditable()
-  final Screen screen;
-
-  /**
-   * The distance from the left side of the screen to the left side of this
-   * window.
-   *
-   * ## Other resources
-   *
-   * * [The Screen interface specification](http://www.w3.org/TR/cssom-view/#screen)
-   *   from W3C.
-   */
-  @DomName('Window.screenLeft')
-  @DocsEditable()
-  final int screenLeft;
-
-  /**
-   * The distance from the top of the screen to the top of this window.
-   *
-   * ## Other resources
-   *
-   * * [The Screen interface specification](http://www.w3.org/TR/cssom-view/#screen)
-   *   from W3C.
-   */
-  @DomName('Window.screenTop')
-  @DocsEditable()
-  final int screenTop;
-
-  /**
-   * The distance from the left side of the screen to the mouse pointer.
-   *
-   * ## Other resources
-   *
-   * * [The Screen interface specification](http://www.w3.org/TR/cssom-view/#screen)
-   *   from W3C.
-   */
-  @DomName('Window.screenX')
-  @DocsEditable()
-  final int screenX;
-
-  /**
-   * The distance from the top of the screen to the mouse pointer.
-   *
-   * ## Other resources
-   *
-   * * [The Screen interface specification](http://www.w3.org/TR/cssom-view/#screen)
-   *   from W3C.
-   */
-  @DomName('Window.screenY')
-  @DocsEditable()
-  final int screenY;
-
-  /**
-   * This window's scroll bars.
-   *
-   * ## Other resources
-   *
-   * * [Browser interface
-   *   elements](https://html.spec.whatwg.org/multipage/browsers.html#browser-interface-elements)
-   *   from WHATWG.
-   */
-  @DomName('Window.scrollbars')
-  @DocsEditable()
-  final BarProp scrollbars;
-
-  /**
-   * The current window.
-   *
-   * ## Other resources
-   *
-   * * [Window.self](https://developer.mozilla.org/en-US/docs/Web/API/Window.self)
-   *   from MDN.
-   */
-  @DomName('Window.self')
-  @DocsEditable()
-  WindowBase get self => _convertNativeToDart_Window(this._get_self);
-  @JSName('self')
-  /**
-   * The current window.
-   *
-   * ## Other resources
-   *
-   * * [Window.self](https://developer.mozilla.org/en-US/docs/Web/API/Window.self)
-   *   from MDN.
-   */
-  @DomName('Window.self')
-  @DocsEditable()
-  @Creates('Window|=Object')
-  @Returns('Window|=Object')
-  final dynamic _get_self;
-
-  /**
-   * Storage for this window that is cleared when this session ends.
-   *
-   * ## Other resources
-   *
-   * * [DOM storage
-   *   guide](https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage)
-   *   from MDN.
-   * * [The past, present & future of local storage for web
-   *   applications](http://diveintohtml5.info/storage.html) from Dive Into HTML5.
-   * * [Local storage
-   *   specification](http://www.w3.org/TR/webstorage/#dom-sessionstorage) from W3C.
-   */
-  @DomName('Window.sessionStorage')
-  @DocsEditable()
-  final Storage sessionStorage;
-
-  /**
-   * Access to speech synthesis in the browser.
-   *
-   * ## Other resources
-   *
-   * * [Web speech
-   *   specification](https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#tts-section)
-   *   from W3C.
-   */
-  @DomName('Window.speechSynthesis')
-  @DocsEditable()
-  // https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#tts-section
-  @Experimental()
-  final SpeechSynthesis speechSynthesis;
-
-  /// *Deprecated*.
-  @DomName('Window.status')
-  @DocsEditable()
-  String status;
-
-  /**
-   * This window's status bar.
-   *
-   * ## Other resources
-   *
-   * * [Browser interface
-   *   elements](https://html.spec.whatwg.org/multipage/browsers.html#browser-interface-elements)
-   *   from WHATWG.
-   */
-  @DomName('Window.statusbar')
-  @DocsEditable()
-  final BarProp statusbar;
-
-  /**
-   * Access to CSS media queries.
-   *
-   * ## Other resources
-   *
-   * * [StyleMedia class
-   *   reference](https://developer.apple.com/library/safari/documentation/SafariDOMAdditions/Reference/StyleMedia/)
-   *   from Safari Developer Library.
-   */
-  @DomName('Window.styleMedia')
-  @DocsEditable()
-  // http://developer.apple.com/library/safari/#documentation/SafariDOMAdditions/Reference/StyleMedia/StyleMedia/StyleMedia.html
-  @Experimental() // nonstandard
-  final StyleMedia styleMedia;
-
-  /**
-   * This window's tool bar.
-   *
-   * ## Other resources
-   *
-   * * [Browser interface
-   *   elements](https://html.spec.whatwg.org/multipage/browsers.html#browser-interface-elements)
-   *   from WHATWG.
-   */
-  @DomName('Window.toolbar')
-  @DocsEditable()
-  final BarProp toolbar;
-
-  @DomName('Window.top')
-  @DocsEditable()
-  WindowBase get top => _convertNativeToDart_Window(this._get_top);
-  @JSName('top')
-  @DomName('Window.top')
-  @DocsEditable()
-  @Creates('Window|=Object')
-  @Returns('Window|=Object')
-  final dynamic _get_top;
-
-  /**
-   * The current window.
-   *
-   * ## Other resources
-   *
-   * * [Window.window](https://developer.mozilla.org/en-US/docs/Web/API/Window.window)
-   *   from MDN.
-   */
-  @DomName('Window.window')
-  @DocsEditable()
-  WindowBase get window => _convertNativeToDart_Window(this._get_window);
-  @JSName('window')
-  /**
-   * The current window.
-   *
-   * ## Other resources
-   *
-   * * [Window.window](https://developer.mozilla.org/en-US/docs/Web/API/Window.window)
-   *   from MDN.
-   */
-  @DomName('Window.window')
-  @DocsEditable()
-  @Creates('Window|=Object')
-  @Returns('Window|=Object')
-  final dynamic _get_window;
-
-  @DomName('Window.__getter__')
-  @DocsEditable()
-  @Creates('Window|=Object')
-  @Returns('Window|=Object')
-  WindowBase __getter__(index_OR_name) {
-    if ((index_OR_name is int)) {
-      return _convertNativeToDart_Window(__getter___1(index_OR_name));
-    }
-    if ((index_OR_name is String)) {
-      return _convertNativeToDart_Window(__getter___2(index_OR_name));
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-
-  @JSName('__getter__')
-  @DomName('Window.__getter__')
-  @DocsEditable()
-  @Creates('Window|=Object')
-  @Returns('Window|=Object')
-  __getter___1(int index) native;
-  @JSName('__getter__')
-  @DomName('Window.__getter__')
-  @DocsEditable()
-  @Creates('Window|=Object')
-  @Returns('Window|=Object')
-  __getter___2(String name) native;
-
-  /**
-   * Displays a modal alert to the user.
-   *
-   * ## Other resources
-   *
-   * * [User prompts](https://html.spec.whatwg.org/multipage/webappapis.html#user-prompts)
-   *   from WHATWG.
-   */
-  @DomName('Window.alert')
-  @DocsEditable()
-  void alert([String message]) native;
-
-  @DomName('Window.cancelIdleCallback')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void cancelIdleCallback(int handle) native;
-
-  @DomName('Window.close')
-  @DocsEditable()
-  void close() native;
-
-  /**
-   * Displays a modal OK/Cancel prompt to the user.
-   *
-   * ## Other resources
-   *
-   * * [User prompts](https://html.spec.whatwg.org/multipage/webappapis.html#user-prompts)
-   *   from WHATWG.
-   */
-  @DomName('Window.confirm')
-  @DocsEditable()
-  bool confirm([String message]) native;
-
-  @DomName('Window.fetch')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future fetch(/*RequestInfo*/ input, [Map init]) {
-    if (init != null) {
-      var init_1 = convertDartToNative_Dictionary(init);
-      return _fetch_1(input, init_1);
-    }
-    return _fetch_2(input);
-  }
-
-  @JSName('fetch')
-  @DomName('Window.fetch')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _fetch_1(input, init) native;
-  @JSName('fetch')
-  @DomName('Window.fetch')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _fetch_2(input) native;
-
-  /**
-   * Finds text in this window.
-   *
-   * ## Other resources
-   *
-   * * [Window.find](https://developer.mozilla.org/en-US/docs/Web/API/Window.find)
-   *   from MDN.
-   */
-  @DomName('Window.find')
-  @DocsEditable()
-  @Experimental() // non-standard
-  bool find(String string, bool caseSensitive, bool backwards, bool wrap,
-      bool wholeWord, bool searchInFrames, bool showDialog) native;
-
-  @JSName('getComputedStyle')
-  @DomName('Window.getComputedStyle')
-  @DocsEditable()
-  CssStyleDeclaration _getComputedStyle(Element elt, String pseudoElt) native;
-
-  @JSName('getMatchedCSSRules')
-  /**
-   * Returns all CSS rules that apply to the element's pseudo-element.
-   */
-  @DomName('Window.getMatchedCSSRules')
-  @DocsEditable()
-  @Experimental() // non-standard
-  @Returns('_CssRuleList|Null')
-  @Creates('_CssRuleList')
-  List<CssRule> getMatchedCssRules(Element element, String pseudoElement)
-      native;
-
-  /**
-   * Returns the currently selected text.
-   *
-   * ## Other resources
-   *
-   * * [Window.getSelection](https://developer.mozilla.org/en-US/docs/Web/API/Window.getSelection)
-   *   from MDN.
-   */
-  @DomName('Window.getSelection')
-  @DocsEditable()
-  Selection getSelection() native;
-
-  /**
-   * Returns a list of media queries for the given query string.
-   *
-   * ## Other resources
-   *
-   * * [Testing media
-   *   queries](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Testing_media_queries)
-   *   from MDN.
-   * * [The MediaQueryList
-   *   specification](http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface) from W3C.
-   */
-  @DomName('Window.matchMedia')
-  @DocsEditable()
-  MediaQueryList matchMedia(String query) native;
-
-  /**
-   * Moves this window.
-   *
-   * x and y can be negative.
-   *
-   * ## Other resources
-   *
-   * * [Window.moveBy](https://developer.mozilla.org/en-US/docs/Web/API/Window.moveBy)
-   *   from MDN.
-   * * [Window.moveBy](http://dev.w3.org/csswg/cssom-view/#dom-window-moveby) from W3C.
-   */
-  @DomName('Window.moveBy')
-  @DocsEditable()
-  void moveBy(int x, int y) native;
-
-  @JSName('moveTo')
-  @DomName('Window.moveTo')
-  @DocsEditable()
-  void _moveTo(int x, int y) native;
-
-  /// *Deprecated.*
-  @DomName('Window.openDatabase')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  // http://www.w3.org/TR/webdatabase/
-  @Experimental() // deprecated
-  @Creates('SqlDatabase')
-  SqlDatabase openDatabase(
-      String name, String version, String displayName, int estimatedSize,
-      [DatabaseCallback creationCallback]) native;
-
-  @DomName('Window.postMessage')
-  @DocsEditable()
-  void postMessage(/*any*/ message, String targetOrigin,
-      [List<MessagePort> transfer]) {
-    if (transfer != null) {
-      var message_1 = convertDartToNative_SerializedScriptValue(message);
-      _postMessage_1(message_1, targetOrigin, transfer);
-      return;
-    }
-    var message_1 = convertDartToNative_SerializedScriptValue(message);
-    _postMessage_2(message_1, targetOrigin);
-    return;
-  }
-
-  @JSName('postMessage')
-  @DomName('Window.postMessage')
-  @DocsEditable()
-  void _postMessage_1(message, targetOrigin, List<MessagePort> transfer) native;
-  @JSName('postMessage')
-  @DomName('Window.postMessage')
-  @DocsEditable()
-  void _postMessage_2(message, targetOrigin) native;
-
-  /**
-   * Opens the print dialog for this window.
-   *
-   * ## Other resources
-   *
-   * * [Window.print](https://developer.mozilla.org/en-US/docs/Web/API/Window.print)
-   *   from MDN.
-   */
-  @DomName('Window.print')
-  @DocsEditable()
-  void print() native;
-
-  @DomName('Window.requestIdleCallback')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int requestIdleCallback(IdleRequestCallback callback, [Map options]) {
-    if (options != null) {
-      var options_1 = convertDartToNative_Dictionary(options);
-      return _requestIdleCallback_1(callback, options_1);
-    }
-    return _requestIdleCallback_2(callback);
-  }
-
-  @JSName('requestIdleCallback')
-  @DomName('Window.requestIdleCallback')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int _requestIdleCallback_1(IdleRequestCallback callback, options) native;
-  @JSName('requestIdleCallback')
-  @DomName('Window.requestIdleCallback')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int _requestIdleCallback_2(IdleRequestCallback callback) native;
-
-  /**
-   * Resizes this window by an offset.
-   *
-   * ## Other resources
-   *
-   * * [Window resizeBy](http://docs.webplatform.org/wiki/dom/methods/resizeBy)
-   *   from WebPlatform.org.
-   */
-  @DomName('Window.resizeBy')
-  @DocsEditable()
-  void resizeBy(int x, int y) native;
-
-  /**
-   * Resizes this window to a specific width and height.
-   *
-   * ## Other resources
-   *
-   * * [Window resizeTo](http://docs.webplatform.org/wiki/dom/methods/resizeTo)
-   *   from WebPlatform.org.
-   */
-  @DomName('Window.resizeTo')
-  @DocsEditable()
-  void resizeTo(int x, int y) native;
-
-  /**
-   * Scrolls the page horizontally and vertically to a specific point.
-   *
-   * This method is identical to [scrollTo].
-   *
-   * ## Other resources
-   *
-   * * [Window scroll](http://docs.webplatform.org/wiki/dom/methods/scroll)
-   *   from WebPlatform.org.
-   */
-  @DomName('Window.scroll')
-  @DocsEditable()
-  void scroll([options_OR_x, y, Map scrollOptions]) {
-    if (options_OR_x == null && y == null && scrollOptions == null) {
-      _scroll_1();
-      return;
-    }
-    if ((options_OR_x is Map) && y == null && scrollOptions == null) {
-      var options_1 = convertDartToNative_Dictionary(options_OR_x);
-      _scroll_2(options_1);
-      return;
-    }
-    if ((y is num) && (options_OR_x is num) && scrollOptions == null) {
-      _scroll_3(options_OR_x, y);
-      return;
-    }
-    if ((y is int) && (options_OR_x is int) && scrollOptions == null) {
-      _scroll_4(options_OR_x, y);
-      return;
-    }
-    if (scrollOptions != null && (y is int) && (options_OR_x is int)) {
-      var scrollOptions_1 = convertDartToNative_Dictionary(scrollOptions);
-      _scroll_5(options_OR_x, y, scrollOptions_1);
-      return;
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-
-  @JSName('scroll')
-  /**
-   * Scrolls the page horizontally and vertically to a specific point.
-   *
-   * This method is identical to [scrollTo].
-   *
-   * ## Other resources
-   *
-   * * [Window scroll](http://docs.webplatform.org/wiki/dom/methods/scroll)
-   *   from WebPlatform.org.
-   */
-  @DomName('Window.scroll')
-  @DocsEditable()
-  void _scroll_1() native;
-  @JSName('scroll')
-  /**
-   * Scrolls the page horizontally and vertically to a specific point.
-   *
-   * This method is identical to [scrollTo].
-   *
-   * ## Other resources
-   *
-   * * [Window scroll](http://docs.webplatform.org/wiki/dom/methods/scroll)
-   *   from WebPlatform.org.
-   */
-  @DomName('Window.scroll')
-  @DocsEditable()
-  void _scroll_2(options) native;
-  @JSName('scroll')
-  /**
-   * Scrolls the page horizontally and vertically to a specific point.
-   *
-   * This method is identical to [scrollTo].
-   *
-   * ## Other resources
-   *
-   * * [Window scroll](http://docs.webplatform.org/wiki/dom/methods/scroll)
-   *   from WebPlatform.org.
-   */
-  @DomName('Window.scroll')
-  @DocsEditable()
-  void _scroll_3(num x, num y) native;
-  @JSName('scroll')
-  /**
-   * Scrolls the page horizontally and vertically to a specific point.
-   *
-   * This method is identical to [scrollTo].
-   *
-   * ## Other resources
-   *
-   * * [Window scroll](http://docs.webplatform.org/wiki/dom/methods/scroll)
-   *   from WebPlatform.org.
-   */
-  @DomName('Window.scroll')
-  @DocsEditable()
-  void _scroll_4(int x, int y) native;
-  @JSName('scroll')
-  /**
-   * Scrolls the page horizontally and vertically to a specific point.
-   *
-   * This method is identical to [scrollTo].
-   *
-   * ## Other resources
-   *
-   * * [Window scroll](http://docs.webplatform.org/wiki/dom/methods/scroll)
-   *   from WebPlatform.org.
-   */
-  @DomName('Window.scroll')
-  @DocsEditable()
-  void _scroll_5(int x, int y, scrollOptions) native;
-
-  /**
-   * Scrolls the page horizontally and vertically by an offset.
-   *
-   * ## Other resources
-   *
-   * * [Window scrollBy](http://docs.webplatform.org/wiki/dom/methods/scrollBy)
-   *   from WebPlatform.org.
-   */
-  @DomName('Window.scrollBy')
-  @DocsEditable()
-  void scrollBy([options_OR_x, y, Map scrollOptions]) {
-    if (options_OR_x == null && y == null && scrollOptions == null) {
-      _scrollBy_1();
-      return;
-    }
-    if ((options_OR_x is Map) && y == null && scrollOptions == null) {
-      var options_1 = convertDartToNative_Dictionary(options_OR_x);
-      _scrollBy_2(options_1);
-      return;
-    }
-    if ((y is num) && (options_OR_x is num) && scrollOptions == null) {
-      _scrollBy_3(options_OR_x, y);
-      return;
-    }
-    if ((y is int) && (options_OR_x is int) && scrollOptions == null) {
-      _scrollBy_4(options_OR_x, y);
-      return;
-    }
-    if (scrollOptions != null && (y is int) && (options_OR_x is int)) {
-      var scrollOptions_1 = convertDartToNative_Dictionary(scrollOptions);
-      _scrollBy_5(options_OR_x, y, scrollOptions_1);
-      return;
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-
-  @JSName('scrollBy')
-  /**
-   * Scrolls the page horizontally and vertically by an offset.
-   *
-   * ## Other resources
-   *
-   * * [Window scrollBy](http://docs.webplatform.org/wiki/dom/methods/scrollBy)
-   *   from WebPlatform.org.
-   */
-  @DomName('Window.scrollBy')
-  @DocsEditable()
-  void _scrollBy_1() native;
-  @JSName('scrollBy')
-  /**
-   * Scrolls the page horizontally and vertically by an offset.
-   *
-   * ## Other resources
-   *
-   * * [Window scrollBy](http://docs.webplatform.org/wiki/dom/methods/scrollBy)
-   *   from WebPlatform.org.
-   */
-  @DomName('Window.scrollBy')
-  @DocsEditable()
-  void _scrollBy_2(options) native;
-  @JSName('scrollBy')
-  /**
-   * Scrolls the page horizontally and vertically by an offset.
-   *
-   * ## Other resources
-   *
-   * * [Window scrollBy](http://docs.webplatform.org/wiki/dom/methods/scrollBy)
-   *   from WebPlatform.org.
-   */
-  @DomName('Window.scrollBy')
-  @DocsEditable()
-  void _scrollBy_3(num x, num y) native;
-  @JSName('scrollBy')
-  /**
-   * Scrolls the page horizontally and vertically by an offset.
-   *
-   * ## Other resources
-   *
-   * * [Window scrollBy](http://docs.webplatform.org/wiki/dom/methods/scrollBy)
-   *   from WebPlatform.org.
-   */
-  @DomName('Window.scrollBy')
-  @DocsEditable()
-  void _scrollBy_4(int x, int y) native;
-  @JSName('scrollBy')
-  /**
-   * Scrolls the page horizontally and vertically by an offset.
-   *
-   * ## Other resources
-   *
-   * * [Window scrollBy](http://docs.webplatform.org/wiki/dom/methods/scrollBy)
-   *   from WebPlatform.org.
-   */
-  @DomName('Window.scrollBy')
-  @DocsEditable()
-  void _scrollBy_5(int x, int y, scrollOptions) native;
-
-  /**
-   * Scrolls the page horizontally and vertically to a specific point.
-   *
-   * This method is identical to [scroll].
-   *
-   * ## Other resources
-   *
-   * * [Window scrollTo](http://docs.webplatform.org/wiki/dom/methods/scrollTo)
-   *   from WebPlatform.org.
-   */
-  @DomName('Window.scrollTo')
-  @DocsEditable()
-  void scrollTo([options_OR_x, y, Map scrollOptions]) {
-    if (options_OR_x == null && y == null && scrollOptions == null) {
-      _scrollTo_1();
-      return;
-    }
-    if ((options_OR_x is Map) && y == null && scrollOptions == null) {
-      var options_1 = convertDartToNative_Dictionary(options_OR_x);
-      _scrollTo_2(options_1);
-      return;
-    }
-    if ((y is num) && (options_OR_x is num) && scrollOptions == null) {
-      _scrollTo_3(options_OR_x, y);
-      return;
-    }
-    if ((y is int) && (options_OR_x is int) && scrollOptions == null) {
-      _scrollTo_4(options_OR_x, y);
-      return;
-    }
-    if (scrollOptions != null && (y is int) && (options_OR_x is int)) {
-      var scrollOptions_1 = convertDartToNative_Dictionary(scrollOptions);
-      _scrollTo_5(options_OR_x, y, scrollOptions_1);
-      return;
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-
-  @JSName('scrollTo')
-  /**
-   * Scrolls the page horizontally and vertically to a specific point.
-   *
-   * This method is identical to [scroll].
-   *
-   * ## Other resources
-   *
-   * * [Window scrollTo](http://docs.webplatform.org/wiki/dom/methods/scrollTo)
-   *   from WebPlatform.org.
-   */
-  @DomName('Window.scrollTo')
-  @DocsEditable()
-  void _scrollTo_1() native;
-  @JSName('scrollTo')
-  /**
-   * Scrolls the page horizontally and vertically to a specific point.
-   *
-   * This method is identical to [scroll].
-   *
-   * ## Other resources
-   *
-   * * [Window scrollTo](http://docs.webplatform.org/wiki/dom/methods/scrollTo)
-   *   from WebPlatform.org.
-   */
-  @DomName('Window.scrollTo')
-  @DocsEditable()
-  void _scrollTo_2(options) native;
-  @JSName('scrollTo')
-  /**
-   * Scrolls the page horizontally and vertically to a specific point.
-   *
-   * This method is identical to [scroll].
-   *
-   * ## Other resources
-   *
-   * * [Window scrollTo](http://docs.webplatform.org/wiki/dom/methods/scrollTo)
-   *   from WebPlatform.org.
-   */
-  @DomName('Window.scrollTo')
-  @DocsEditable()
-  void _scrollTo_3(num x, num y) native;
-  @JSName('scrollTo')
-  /**
-   * Scrolls the page horizontally and vertically to a specific point.
-   *
-   * This method is identical to [scroll].
-   *
-   * ## Other resources
-   *
-   * * [Window scrollTo](http://docs.webplatform.org/wiki/dom/methods/scrollTo)
-   *   from WebPlatform.org.
-   */
-  @DomName('Window.scrollTo')
-  @DocsEditable()
-  void _scrollTo_4(int x, int y) native;
-  @JSName('scrollTo')
-  /**
-   * Scrolls the page horizontally and vertically to a specific point.
-   *
-   * This method is identical to [scroll].
-   *
-   * ## Other resources
-   *
-   * * [Window scrollTo](http://docs.webplatform.org/wiki/dom/methods/scrollTo)
-   *   from WebPlatform.org.
-   */
-  @DomName('Window.scrollTo')
-  @DocsEditable()
-  void _scrollTo_5(int x, int y, scrollOptions) native;
-
-  /**
-   * Stops the window from loading.
-   *
-   * ## Other resources
-   *
-   * * [The Window
-   *   object](http://www.w3.org/html/wg/drafts/html/master/browsers.html#the-window-object)
-   *   from W3C.
-   */
-  @DomName('Window.stop')
-  @DocsEditable()
-  void stop() native;
-
-  @JSName('webkitRequestFileSystem')
-  @DomName('Window.webkitRequestFileSystem')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @Experimental()
-  // http://www.w3.org/TR/file-system-api/#idl-def-LocalFileSystem
-  void __requestFileSystem(
-      int type, int size, _FileSystemCallback successCallback,
-      [_ErrorCallback errorCallback]) native;
-
-  @JSName('webkitRequestFileSystem')
-  @DomName('Window.webkitRequestFileSystem')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @Experimental()
-  // http://www.w3.org/TR/file-system-api/#idl-def-LocalFileSystem
-  Future<FileSystem> _requestFileSystem(int type, int size) {
-    var completer = new Completer<FileSystem>();
-    __requestFileSystem(type, size, (value) {
-      completer.complete(value);
-    }, (error) {
-      completer.completeError(error);
-    });
-    return completer.future;
-  }
-
-  @JSName('webkitResolveLocalFileSystemURL')
-  /**
-   * Asynchronously retrieves a local filesystem entry.
-   *
-   * ## Other resources
-   *
-   * * [Obtaining access to file system entry
-   *   points](http://www.w3.org/TR/file-system-api/#obtaining-access-to-file-system-entry-points)
-   * from W3C.
-   */
-  @DomName('Window.webkitResolveLocalFileSystemURL')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @Experimental()
-  // http://www.w3.org/TR/file-system-api/#idl-def-LocalFileSystem
-  void _resolveLocalFileSystemUrl(String url, _EntryCallback successCallback,
-      [_ErrorCallback errorCallback]) native;
-
-  @JSName('webkitResolveLocalFileSystemURL')
-  /**
-   * Asynchronously retrieves a local filesystem entry.
-   *
-   * ## Other resources
-   *
-   * * [Obtaining access to file system entry
-   *   points](http://www.w3.org/TR/file-system-api/#obtaining-access-to-file-system-entry-points)
-   * from W3C.
-   */
-  @DomName('Window.webkitResolveLocalFileSystemURL')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @Experimental()
-  // http://www.w3.org/TR/file-system-api/#idl-def-LocalFileSystem
-  Future<Entry> resolveLocalFileSystemUrl(String url) {
-    var completer = new Completer<Entry>();
-    _resolveLocalFileSystemUrl(url, (value) {
-      completer.complete(value);
-    }, (error) {
-      completer.completeError(error);
-    });
-    return completer.future;
-  }
-
-  // From WindowBase64
-
-  @DomName('Window.atob')
-  @DocsEditable()
-  String atob(String atob) native;
-
-  @DomName('Window.btoa')
-  @DocsEditable()
-  String btoa(String btoa) native;
-
-  // From WindowTimers
-
-  @JSName('setInterval')
-  @DomName('Window.setInterval')
-  @DocsEditable()
-  int _setInterval_String(String handler, [int timeout, Object arguments])
-      native;
-
-  @JSName('setTimeout')
-  @DomName('Window.setTimeout')
-  @DocsEditable()
-  int _setTimeout_String(String handler, [int timeout, Object arguments])
-      native;
-
-  @JSName('clearInterval')
-  @DomName('Window.clearInterval')
-  @DocsEditable()
-  void _clearInterval([int handle]) native;
-
-  @JSName('clearTimeout')
-  @DomName('Window.clearTimeout')
-  @DocsEditable()
-  void _clearTimeout([int handle]) native;
-
-  @JSName('setInterval')
-  @DomName('Window.setInterval')
-  @DocsEditable()
-  int _setInterval(Object handler, [int timeout]) native;
-
-  @JSName('setTimeout')
-  @DomName('Window.setTimeout')
-  @DocsEditable()
-  int _setTimeout(Object handler, [int timeout]) native;
-
-  /// Stream of `contentloaded` events handled by this [Window].
-  @DomName('Window.onDOMContentLoaded')
-  @DocsEditable()
-  Stream<Event> get onContentLoaded => contentLoadedEvent.forTarget(this);
-
-  /// Stream of `abort` events handled by this [Window].
-  @DomName('Window.onabort')
-  @DocsEditable()
-  Stream<Event> get onAbort => Element.abortEvent.forTarget(this);
-
-  /// Stream of `blur` events handled by this [Window].
-  @DomName('Window.onblur')
-  @DocsEditable()
-  Stream<Event> get onBlur => Element.blurEvent.forTarget(this);
-
-  @DomName('Window.oncanplay')
-  @DocsEditable()
-  Stream<Event> get onCanPlay => Element.canPlayEvent.forTarget(this);
-
-  @DomName('Window.oncanplaythrough')
-  @DocsEditable()
-  Stream<Event> get onCanPlayThrough =>
-      Element.canPlayThroughEvent.forTarget(this);
-
-  /// Stream of `change` events handled by this [Window].
-  @DomName('Window.onchange')
-  @DocsEditable()
-  Stream<Event> get onChange => Element.changeEvent.forTarget(this);
-
-  /// Stream of `click` events handled by this [Window].
-  @DomName('Window.onclick')
-  @DocsEditable()
-  Stream<MouseEvent> get onClick => Element.clickEvent.forTarget(this);
-
-  /// Stream of `contextmenu` events handled by this [Window].
-  @DomName('Window.oncontextmenu')
-  @DocsEditable()
-  Stream<MouseEvent> get onContextMenu =>
-      Element.contextMenuEvent.forTarget(this);
-
-  /// Stream of `doubleclick` events handled by this [Window].
-  @DomName('Window.ondblclick')
-  @DocsEditable()
-  Stream<Event> get onDoubleClick => Element.doubleClickEvent.forTarget(this);
-
-  /// Stream of `devicemotion` events handled by this [Window].
-  @DomName('Window.ondevicemotion')
-  @DocsEditable()
-  // http://dev.w3.org/geo/api/spec-source-orientation.html#devicemotion
-  @Experimental()
-  Stream<DeviceMotionEvent> get onDeviceMotion =>
-      deviceMotionEvent.forTarget(this);
-
-  /// Stream of `deviceorientation` events handled by this [Window].
-  @DomName('Window.ondeviceorientation')
-  @DocsEditable()
-  // http://dev.w3.org/geo/api/spec-source-orientation.html#devicemotion
-  @Experimental()
-  Stream<DeviceOrientationEvent> get onDeviceOrientation =>
-      deviceOrientationEvent.forTarget(this);
-
-  /// Stream of `drag` events handled by this [Window].
-  @DomName('Window.ondrag')
-  @DocsEditable()
-  Stream<MouseEvent> get onDrag => Element.dragEvent.forTarget(this);
-
-  /// Stream of `dragend` events handled by this [Window].
-  @DomName('Window.ondragend')
-  @DocsEditable()
-  Stream<MouseEvent> get onDragEnd => Element.dragEndEvent.forTarget(this);
-
-  /// Stream of `dragenter` events handled by this [Window].
-  @DomName('Window.ondragenter')
-  @DocsEditable()
-  Stream<MouseEvent> get onDragEnter => Element.dragEnterEvent.forTarget(this);
-
-  /// Stream of `dragleave` events handled by this [Window].
-  @DomName('Window.ondragleave')
-  @DocsEditable()
-  Stream<MouseEvent> get onDragLeave => Element.dragLeaveEvent.forTarget(this);
-
-  /// Stream of `dragover` events handled by this [Window].
-  @DomName('Window.ondragover')
-  @DocsEditable()
-  Stream<MouseEvent> get onDragOver => Element.dragOverEvent.forTarget(this);
-
-  /// Stream of `dragstart` events handled by this [Window].
-  @DomName('Window.ondragstart')
-  @DocsEditable()
-  Stream<MouseEvent> get onDragStart => Element.dragStartEvent.forTarget(this);
-
-  /// Stream of `drop` events handled by this [Window].
-  @DomName('Window.ondrop')
-  @DocsEditable()
-  Stream<MouseEvent> get onDrop => Element.dropEvent.forTarget(this);
-
-  @DomName('Window.ondurationchange')
-  @DocsEditable()
-  Stream<Event> get onDurationChange =>
-      Element.durationChangeEvent.forTarget(this);
-
-  @DomName('Window.onemptied')
-  @DocsEditable()
-  Stream<Event> get onEmptied => Element.emptiedEvent.forTarget(this);
-
-  @DomName('Window.onended')
-  @DocsEditable()
-  Stream<Event> get onEnded => Element.endedEvent.forTarget(this);
-
-  /// Stream of `error` events handled by this [Window].
-  @DomName('Window.onerror')
-  @DocsEditable()
-  Stream<Event> get onError => Element.errorEvent.forTarget(this);
-
-  /// Stream of `focus` events handled by this [Window].
-  @DomName('Window.onfocus')
-  @DocsEditable()
-  Stream<Event> get onFocus => Element.focusEvent.forTarget(this);
-
-  /// Stream of `hashchange` events handled by this [Window].
-  @DomName('Window.onhashchange')
-  @DocsEditable()
-  Stream<Event> get onHashChange => hashChangeEvent.forTarget(this);
-
-  /// Stream of `input` events handled by this [Window].
-  @DomName('Window.oninput')
-  @DocsEditable()
-  Stream<Event> get onInput => Element.inputEvent.forTarget(this);
-
-  /// Stream of `invalid` events handled by this [Window].
-  @DomName('Window.oninvalid')
-  @DocsEditable()
-  Stream<Event> get onInvalid => Element.invalidEvent.forTarget(this);
-
-  /// Stream of `keydown` events handled by this [Window].
-  @DomName('Window.onkeydown')
-  @DocsEditable()
-  Stream<KeyboardEvent> get onKeyDown => Element.keyDownEvent.forTarget(this);
-
-  /// Stream of `keypress` events handled by this [Window].
-  @DomName('Window.onkeypress')
-  @DocsEditable()
-  Stream<KeyboardEvent> get onKeyPress => Element.keyPressEvent.forTarget(this);
-
-  /// Stream of `keyup` events handled by this [Window].
-  @DomName('Window.onkeyup')
-  @DocsEditable()
-  Stream<KeyboardEvent> get onKeyUp => Element.keyUpEvent.forTarget(this);
-
-  /// Stream of `load` events handled by this [Window].
-  @DomName('Window.onload')
-  @DocsEditable()
-  Stream<Event> get onLoad => Element.loadEvent.forTarget(this);
-
-  @DomName('Window.onloadeddata')
-  @DocsEditable()
-  Stream<Event> get onLoadedData => Element.loadedDataEvent.forTarget(this);
-
-  @DomName('Window.onloadedmetadata')
-  @DocsEditable()
-  Stream<Event> get onLoadedMetadata =>
-      Element.loadedMetadataEvent.forTarget(this);
-
-  @DomName('Window.onloadstart')
-  @DocsEditable()
-  Stream<Event> get onLoadStart => loadStartEvent.forTarget(this);
-
-  /// Stream of `message` events handled by this [Window].
-  @DomName('Window.onmessage')
-  @DocsEditable()
-  Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
-
-  /// Stream of `mousedown` events handled by this [Window].
-  @DomName('Window.onmousedown')
-  @DocsEditable()
-  Stream<MouseEvent> get onMouseDown => Element.mouseDownEvent.forTarget(this);
-
-  /// Stream of `mouseenter` events handled by this [Window].
-  @DomName('Window.onmouseenter')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<MouseEvent> get onMouseEnter =>
-      Element.mouseEnterEvent.forTarget(this);
-
-  /// Stream of `mouseleave` events handled by this [Window].
-  @DomName('Window.onmouseleave')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<MouseEvent> get onMouseLeave =>
-      Element.mouseLeaveEvent.forTarget(this);
-
-  /// Stream of `mousemove` events handled by this [Window].
-  @DomName('Window.onmousemove')
-  @DocsEditable()
-  Stream<MouseEvent> get onMouseMove => Element.mouseMoveEvent.forTarget(this);
-
-  /// Stream of `mouseout` events handled by this [Window].
-  @DomName('Window.onmouseout')
-  @DocsEditable()
-  Stream<MouseEvent> get onMouseOut => Element.mouseOutEvent.forTarget(this);
-
-  /// Stream of `mouseover` events handled by this [Window].
-  @DomName('Window.onmouseover')
-  @DocsEditable()
-  Stream<MouseEvent> get onMouseOver => Element.mouseOverEvent.forTarget(this);
-
-  /// Stream of `mouseup` events handled by this [Window].
-  @DomName('Window.onmouseup')
-  @DocsEditable()
-  Stream<MouseEvent> get onMouseUp => Element.mouseUpEvent.forTarget(this);
-
-  /// Stream of `mousewheel` events handled by this [Window].
-  @DomName('Window.onmousewheel')
-  @DocsEditable()
-  Stream<WheelEvent> get onMouseWheel =>
-      Element.mouseWheelEvent.forTarget(this);
-
-  /// Stream of `offline` events handled by this [Window].
-  @DomName('Window.onoffline')
-  @DocsEditable()
-  Stream<Event> get onOffline => offlineEvent.forTarget(this);
-
-  /// Stream of `online` events handled by this [Window].
-  @DomName('Window.ononline')
-  @DocsEditable()
-  Stream<Event> get onOnline => onlineEvent.forTarget(this);
-
-  /// Stream of `pagehide` events handled by this [Window].
-  @DomName('Window.onpagehide')
-  @DocsEditable()
-  Stream<Event> get onPageHide => pageHideEvent.forTarget(this);
-
-  /// Stream of `pageshow` events handled by this [Window].
-  @DomName('Window.onpageshow')
-  @DocsEditable()
-  Stream<Event> get onPageShow => pageShowEvent.forTarget(this);
-
-  @DomName('Window.onpause')
-  @DocsEditable()
-  Stream<Event> get onPause => Element.pauseEvent.forTarget(this);
-
-  @DomName('Window.onplay')
-  @DocsEditable()
-  Stream<Event> get onPlay => Element.playEvent.forTarget(this);
-
-  @DomName('Window.onplaying')
-  @DocsEditable()
-  Stream<Event> get onPlaying => Element.playingEvent.forTarget(this);
-
-  /// Stream of `popstate` events handled by this [Window].
-  @DomName('Window.onpopstate')
-  @DocsEditable()
-  Stream<PopStateEvent> get onPopState => popStateEvent.forTarget(this);
-
-  @DomName('Window.onprogress')
-  @DocsEditable()
-  Stream<Event> get onProgress => progressEvent.forTarget(this);
-
-  @DomName('Window.onratechange')
-  @DocsEditable()
-  Stream<Event> get onRateChange => Element.rateChangeEvent.forTarget(this);
-
-  /// Stream of `reset` events handled by this [Window].
-  @DomName('Window.onreset')
-  @DocsEditable()
-  Stream<Event> get onReset => Element.resetEvent.forTarget(this);
-
-  /// Stream of `resize` events handled by this [Window].
-  @DomName('Window.onresize')
-  @DocsEditable()
-  Stream<Event> get onResize => Element.resizeEvent.forTarget(this);
-
-  /// Stream of `scroll` events handled by this [Window].
-  @DomName('Window.onscroll')
-  @DocsEditable()
-  Stream<Event> get onScroll => Element.scrollEvent.forTarget(this);
-
-  /// Stream of `search` events handled by this [Window].
-  @DomName('Window.onsearch')
-  @DocsEditable()
-  // http://www.w3.org/TR/html-markup/input.search.html
-  @Experimental()
-  Stream<Event> get onSearch => Element.searchEvent.forTarget(this);
-
-  @DomName('Window.onseeked')
-  @DocsEditable()
-  Stream<Event> get onSeeked => Element.seekedEvent.forTarget(this);
-
-  @DomName('Window.onseeking')
-  @DocsEditable()
-  Stream<Event> get onSeeking => Element.seekingEvent.forTarget(this);
-
-  /// Stream of `select` events handled by this [Window].
-  @DomName('Window.onselect')
-  @DocsEditable()
-  Stream<Event> get onSelect => Element.selectEvent.forTarget(this);
-
-  @DomName('Window.onstalled')
-  @DocsEditable()
-  Stream<Event> get onStalled => Element.stalledEvent.forTarget(this);
-
-  /// Stream of `storage` events handled by this [Window].
-  @DomName('Window.onstorage')
-  @DocsEditable()
-  Stream<StorageEvent> get onStorage => storageEvent.forTarget(this);
-
-  /// Stream of `submit` events handled by this [Window].
-  @DomName('Window.onsubmit')
-  @DocsEditable()
-  Stream<Event> get onSubmit => Element.submitEvent.forTarget(this);
-
-  @DomName('Window.onsuspend')
-  @DocsEditable()
-  Stream<Event> get onSuspend => Element.suspendEvent.forTarget(this);
-
-  @DomName('Window.ontimeupdate')
-  @DocsEditable()
-  Stream<Event> get onTimeUpdate => Element.timeUpdateEvent.forTarget(this);
-
-  /// Stream of `touchcancel` events handled by this [Window].
-  @DomName('Window.ontouchcancel')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  Stream<TouchEvent> get onTouchCancel =>
-      Element.touchCancelEvent.forTarget(this);
-
-  /// Stream of `touchend` events handled by this [Window].
-  @DomName('Window.ontouchend')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  Stream<TouchEvent> get onTouchEnd => Element.touchEndEvent.forTarget(this);
-
-  /// Stream of `touchmove` events handled by this [Window].
-  @DomName('Window.ontouchmove')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  Stream<TouchEvent> get onTouchMove => Element.touchMoveEvent.forTarget(this);
-
-  /// Stream of `touchstart` events handled by this [Window].
-  @DomName('Window.ontouchstart')
-  @DocsEditable()
-  // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-  @Experimental()
-  Stream<TouchEvent> get onTouchStart =>
-      Element.touchStartEvent.forTarget(this);
-
-  /// Stream of `transitionend` events handled by this [Window].
-  @DomName('Window.ontransitionend')
-  @DocsEditable()
-  Stream<TransitionEvent> get onTransitionEnd =>
-      Element.transitionEndEvent.forTarget(this);
-
-  /// Stream of `unload` events handled by this [Window].
-  @DomName('Window.onunload')
-  @DocsEditable()
-  Stream<Event> get onUnload => unloadEvent.forTarget(this);
-
-  @DomName('Window.onvolumechange')
-  @DocsEditable()
-  Stream<Event> get onVolumeChange => Element.volumeChangeEvent.forTarget(this);
-
-  @DomName('Window.onwaiting')
-  @DocsEditable()
-  Stream<Event> get onWaiting => Element.waitingEvent.forTarget(this);
-
-  /// Stream of `animationend` events handled by this [Window].
-  @DomName('Window.onwebkitAnimationEnd')
-  @DocsEditable()
-  @Experimental()
-  Stream<AnimationEvent> get onAnimationEnd =>
-      animationEndEvent.forTarget(this);
-
-  /// Stream of `animationiteration` events handled by this [Window].
-  @DomName('Window.onwebkitAnimationIteration')
-  @DocsEditable()
-  @Experimental()
-  Stream<AnimationEvent> get onAnimationIteration =>
-      animationIterationEvent.forTarget(this);
-
-  /// Stream of `animationstart` events handled by this [Window].
-  @DomName('Window.onwebkitAnimationStart')
-  @DocsEditable()
-  @Experimental()
-  Stream<AnimationEvent> get onAnimationStart =>
-      animationStartEvent.forTarget(this);
-
-  /**
-   * Static factory designed to expose `beforeunload` events to event
-   * handlers that are not necessarily instances of [Window].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Window.beforeunloadEvent')
-  static const EventStreamProvider<BeforeUnloadEvent> beforeUnloadEvent =
-      const _BeforeUnloadEventStreamProvider('beforeunload');
-
-  /// Stream of `beforeunload` events handled by this [Window].
-  @DomName('Window.onbeforeunload')
-  Stream<Event> get onBeforeUnload => beforeUnloadEvent.forTarget(this);
-
-  /**
-   * Moves this window to a specific position.
-   *
-   * x and y can be negative.
-   *
-   * ## Other resources
-   *
-   * * [Window.moveTo](https://developer.mozilla.org/en-US/docs/Web/API/Window.moveTo)
-   *   from MDN.
-   * * [Window.moveTo](http://dev.w3.org/csswg/cssom-view/#dom-window-moveto)
-   *   from W3C.
-   */
-  void moveTo(Point p) {
-    _moveTo(p.x, p.y);
-  }
-
-  @DomName('Window.pageXOffset')
-  @DocsEditable()
-  int get pageXOffset => JS('num', '#.pageXOffset', this).round();
-
-  @DomName('Window.pageYOffset')
-  @DocsEditable()
-  int get pageYOffset => JS('num', '#.pageYOffset', this).round();
-
-  /**
-   * The distance this window has been scrolled horizontally.
-   *
-   * ## Other resources
-   *
-   * * [The Screen interface
-   *   specification](http://www.w3.org/TR/cssom-view/#screen) from W3C.
-   * * [scrollX](https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollX)
-   *   from MDN.
-   */
-  @DomName('Window.scrollX')
-  @DocsEditable()
-  int get scrollX => JS('bool', '("scrollX" in #)', this)
-      ? JS('num', '#.scrollX', this).round()
-      : document.documentElement.scrollLeft;
-
-  /**
-   * The distance this window has been scrolled vertically.
-   *
-   * ## Other resources
-   *
-   * * [The Screen interface
-   *   specification](http://www.w3.org/TR/cssom-view/#screen) from W3C.
-   * * [scrollY](https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollY)
-   *   from MDN.
-   */
-  @DomName('Window.scrollY')
-  @DocsEditable()
-  int get scrollY => JS('bool', '("scrollY" in #)', this)
-      ? JS('num', '#.scrollY', this).round()
-      : document.documentElement.scrollTop;
-}
-
-class _BeforeUnloadEvent extends _WrappedEvent implements BeforeUnloadEvent {
-  String _returnValue;
-
-  _BeforeUnloadEvent(Event base) : super(base);
-
-  String get returnValue => _returnValue;
-
-  set returnValue(String value) {
-    _returnValue = value;
-    // FF and IE use the value as the return value, Chrome will return this from
-    // the event callback function.
-    if (JS('bool', '("returnValue" in #)', wrapped)) {
-      JS('void', '#.returnValue = #', wrapped, value);
-    }
-  }
-}
-
-class _BeforeUnloadEventStreamProvider
-    implements EventStreamProvider<BeforeUnloadEvent> {
-  final String _eventType;
-
-  const _BeforeUnloadEventStreamProvider(this._eventType);
-
-  Stream<BeforeUnloadEvent> forTarget(EventTarget e, {bool useCapture: false}) {
-    // Specify the generic type for EventStream only in dart2js to avoid
-    // checked mode errors in dartium.
-    var stream = new _EventStream<BeforeUnloadEvent>(e, _eventType, useCapture);
-    var controller = new StreamController<BeforeUnloadEvent>(sync: true);
-
-    stream.listen((event) {
-      var wrapped = new _BeforeUnloadEvent(event);
-      controller.add(wrapped);
-    });
-
-    return controller.stream;
-  }
-
-  String getEventType(EventTarget target) {
-    return _eventType;
-  }
-
-  ElementStream<BeforeUnloadEvent> forElement(Element e,
-      {bool useCapture: false}) {
-    // Specify the generic type for _ElementEventStreamImpl only in dart2js to
-    // avoid checked mode errors in dartium.
-    return new _ElementEventStreamImpl<BeforeUnloadEvent>(
-        e, _eventType, useCapture);
-  }
-
-  ElementStream<BeforeUnloadEvent> _forElementList(ElementList e,
-      {bool useCapture: false}) {
-    // Specify the generic type for _ElementEventStreamImpl only in dart2js to
-    // avoid checked mode errors in dartium.
-    return new _ElementListEventStreamImpl<BeforeUnloadEvent>(
-        e, _eventType, useCapture);
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WindowBase64')
-@Experimental() // untriaged
-abstract class WindowBase64 extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory WindowBase64._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  String atob(String atob);
-
-  String btoa(String btoa);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WindowClient')
-@Experimental() // untriaged
-@Native("WindowClient")
-class WindowClient extends Client {
-  // To suppress missing implicit constructor warnings.
-  factory WindowClient._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('WindowClient.focused')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final bool focused;
-
-  @DomName('WindowClient.visibilityState')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String visibilityState;
-
-  @DomName('WindowClient.focus')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future focus() native;
-
-  @DomName('WindowClient.navigate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future navigate(String url) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WindowEventHandlers')
-@Experimental() // untriaged
-abstract class WindowEventHandlers extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory WindowEventHandlers._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('WindowEventHandlers.hashchangeEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> hashChangeEvent =
-      const EventStreamProvider<Event>('hashchange');
-
-  @DomName('WindowEventHandlers.messageEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MessageEvent> messageEvent =
-      const EventStreamProvider<MessageEvent>('message');
-
-  @DomName('WindowEventHandlers.offlineEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> offlineEvent =
-      const EventStreamProvider<Event>('offline');
-
-  @DomName('WindowEventHandlers.onlineEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> onlineEvent =
-      const EventStreamProvider<Event>('online');
-
-  @DomName('WindowEventHandlers.popstateEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<PopStateEvent> popStateEvent =
-      const EventStreamProvider<PopStateEvent>('popstate');
-
-  @DomName('WindowEventHandlers.storageEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<StorageEvent> storageEvent =
-      const EventStreamProvider<StorageEvent>('storage');
-
-  @DomName('WindowEventHandlers.unloadEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> unloadEvent =
-      const EventStreamProvider<Event>('unload');
-
-  @DomName('WindowEventHandlers.onhashchange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onHashChange => hashChangeEvent.forTarget(this);
-
-  @DomName('WindowEventHandlers.onmessage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
-
-  @DomName('WindowEventHandlers.onoffline')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onOffline => offlineEvent.forTarget(this);
-
-  @DomName('WindowEventHandlers.ononline')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onOnline => onlineEvent.forTarget(this);
-
-  @DomName('WindowEventHandlers.onpopstate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<PopStateEvent> get onPopState => popStateEvent.forTarget(this);
-
-  @DomName('WindowEventHandlers.onstorage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<StorageEvent> get onStorage => storageEvent.forTarget(this);
-
-  @DomName('WindowEventHandlers.onunload')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onUnload => unloadEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Worker')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html#worker
-@Experimental() // stable
-@Native("Worker")
-class Worker extends EventTarget implements AbstractWorker {
-  // To suppress missing implicit constructor warnings.
-  factory Worker._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `error` events to event
-   * handlers that are not necessarily instances of [Worker].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Worker.errorEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> errorEvent =
-      const EventStreamProvider<Event>('error');
-
-  /**
-   * Static factory designed to expose `message` events to event
-   * handlers that are not necessarily instances of [Worker].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('Worker.messageEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MessageEvent> messageEvent =
-      const EventStreamProvider<MessageEvent>('message');
-
-  @DomName('Worker.Worker')
-  @DocsEditable()
-  factory Worker(String scriptUrl) {
-    return Worker._create_1(scriptUrl);
-  }
-  static Worker _create_1(scriptUrl) =>
-      JS('Worker', 'new Worker(#)', scriptUrl);
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      JS('bool', '(typeof window.Worker != "undefined")');
-
-  @DomName('Worker.postMessage')
-  @DocsEditable()
-  void postMessage(/*SerializedScriptValue*/ message,
-      [List<MessagePort> transfer]) {
-    if (transfer != null) {
-      var message_1 = convertDartToNative_SerializedScriptValue(message);
-      _postMessage_1(message_1, transfer);
-      return;
-    }
-    var message_1 = convertDartToNative_SerializedScriptValue(message);
-    _postMessage_2(message_1);
-    return;
-  }
-
-  @JSName('postMessage')
-  @DomName('Worker.postMessage')
-  @DocsEditable()
-  void _postMessage_1(message, List<MessagePort> transfer) native;
-  @JSName('postMessage')
-  @DomName('Worker.postMessage')
-  @DocsEditable()
-  void _postMessage_2(message) native;
-
-  @DomName('Worker.terminate')
-  @DocsEditable()
-  void terminate() native;
-
-  /// Stream of `error` events handled by this [Worker].
-  @DomName('Worker.onerror')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onError => errorEvent.forTarget(this);
-
-  /// Stream of `message` events handled by this [Worker].
-  @DomName('Worker.onmessage')
-  @DocsEditable()
-  Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WorkerConsole')
-@Experimental() // untriaged
-@Native("WorkerConsole")
-class WorkerConsole extends ConsoleBase {
-  // To suppress missing implicit constructor warnings.
-  factory WorkerConsole._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WorkerGlobalScope')
-@Experimental() // untriaged
-@Native("WorkerGlobalScope")
-class WorkerGlobalScope extends EventTarget
-    implements _WindowTimers, WindowBase64 {
-  // To suppress missing implicit constructor warnings.
-  factory WorkerGlobalScope._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `error` events to event
-   * handlers that are not necessarily instances of [WorkerGlobalScope].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('WorkerGlobalScope.errorEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> errorEvent =
-      const EventStreamProvider<Event>('error');
-
-  @DomName('WorkerGlobalScope.caches')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final CacheStorage caches;
-
-  @DomName('WorkerGlobalScope.console')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final WorkerConsole console;
-
-  @DomName('WorkerGlobalScope.crypto')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Crypto crypto;
-
-  @DomName('WorkerGlobalScope.indexedDB')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final IdbFactory indexedDB;
-
-  @DomName('WorkerGlobalScope.location')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final _WorkerLocation location;
-
-  @DomName('WorkerGlobalScope.navigator')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final _WorkerNavigator navigator;
-
-  @DomName('WorkerGlobalScope.performance')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final WorkerPerformance performance;
-
-  @DomName('WorkerGlobalScope.self')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final WorkerGlobalScope self;
-
-  @DomName('WorkerGlobalScope.close')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void close() native;
-
-  @DomName('WorkerGlobalScope.fetch')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future fetch(/*RequestInfo*/ input, [Map init]) {
-    if (init != null) {
-      var init_1 = convertDartToNative_Dictionary(init);
-      return _fetch_1(input, init_1);
-    }
-    return _fetch_2(input);
-  }
-
-  @JSName('fetch')
-  @DomName('WorkerGlobalScope.fetch')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _fetch_1(input, init) native;
-  @JSName('fetch')
-  @DomName('WorkerGlobalScope.fetch')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _fetch_2(input) native;
-
-  @DomName('WorkerGlobalScope.importScripts')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void importScripts(String urls) native;
-
-  // From WindowBase64
-
-  @DomName('WorkerGlobalScope.atob')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String atob(String atob) native;
-
-  @DomName('WorkerGlobalScope.btoa')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String btoa(String btoa) native;
-
-  // From WindowTimers
-
-  @JSName('setInterval')
-  @DomName('WorkerGlobalScope.setInterval')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int _setInterval_String(String handler, [int timeout, Object arguments])
-      native;
-
-  @JSName('setTimeout')
-  @DomName('WorkerGlobalScope.setTimeout')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int _setTimeout_String(String handler, [int timeout, Object arguments])
-      native;
-
-  @JSName('clearInterval')
-  @DomName('WorkerGlobalScope.clearInterval')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _clearInterval([int handle]) native;
-
-  @JSName('clearTimeout')
-  @DomName('WorkerGlobalScope.clearTimeout')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _clearTimeout([int handle]) native;
-
-  @JSName('setInterval')
-  @DomName('WorkerGlobalScope.setInterval')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int _setInterval(Object handler, [int timeout]) native;
-
-  @JSName('setTimeout')
-  @DomName('WorkerGlobalScope.setTimeout')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int _setTimeout(Object handler, [int timeout]) native;
-
-  /// Stream of `error` events handled by this [WorkerGlobalScope].
-  @DomName('WorkerGlobalScope.onerror')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onError => errorEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WorkerPerformance')
-@Experimental() // untriaged
-@Native("WorkerPerformance")
-class WorkerPerformance extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory WorkerPerformance._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('WorkerPerformance.memory')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final MemoryInfo memory;
-
-  @DomName('WorkerPerformance.clearMarks')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void clearMarks(String markName) native;
-
-  @DomName('WorkerPerformance.clearMeasures')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void clearMeasures(String measureName) native;
-
-  @DomName('WorkerPerformance.clearResourceTimings')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void clearResourceTimings() native;
-
-  @DomName('WorkerPerformance.getEntries')
-  @DocsEditable()
-  @Experimental() // untriaged
-  List<PerformanceEntry> getEntries() native;
-
-  @DomName('WorkerPerformance.getEntriesByName')
-  @DocsEditable()
-  @Experimental() // untriaged
-  List<PerformanceEntry> getEntriesByName(String name, String entryType) native;
-
-  @DomName('WorkerPerformance.getEntriesByType')
-  @DocsEditable()
-  @Experimental() // untriaged
-  List<PerformanceEntry> getEntriesByType(String entryType) native;
-
-  @DomName('WorkerPerformance.mark')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void mark(String markName) native;
-
-  @DomName('WorkerPerformance.measure')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void measure(String measureName, String startMark, String endMark) native;
-
-  @DomName('WorkerPerformance.now')
-  @DocsEditable()
-  @Experimental() // untriaged
-  double now() native;
-
-  @DomName('WorkerPerformance.setResourceTimingBufferSize')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void setResourceTimingBufferSize(int maxSize) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('XPathEvaluator')
-// http://www.w3.org/TR/DOM-Level-3-XPath/xpath.html#XPathEvaluator
-@deprecated // experimental
-@Native("XPathEvaluator")
-class XPathEvaluator extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory XPathEvaluator._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('XPathEvaluator.XPathEvaluator')
-  @DocsEditable()
-  factory XPathEvaluator() {
-    return XPathEvaluator._create_1();
-  }
-  static XPathEvaluator _create_1() =>
-      JS('XPathEvaluator', 'new XPathEvaluator()');
-
-  @DomName('XPathEvaluator.createExpression')
-  @DocsEditable()
-  XPathExpression createExpression(String expression, XPathNSResolver resolver)
-      native;
-
-  @DomName('XPathEvaluator.createNSResolver')
-  @DocsEditable()
-  XPathNSResolver createNSResolver(Node nodeResolver) native;
-
-  @DomName('XPathEvaluator.evaluate')
-  @DocsEditable()
-  XPathResult evaluate(
-      String expression, Node contextNode, XPathNSResolver resolver,
-      [int type, Object inResult]) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('XPathExpression')
-// http://www.w3.org/TR/DOM-Level-3-XPath/xpath.html#XPathExpression
-@deprecated // experimental
-@Native("XPathExpression")
-class XPathExpression extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory XPathExpression._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('XPathExpression.evaluate')
-  @DocsEditable()
-  XPathResult evaluate(Node contextNode, [int type, Object inResult]) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('XPathNSResolver')
-// http://www.w3.org/TR/DOM-Level-3-XPath/xpath.html#XPathNSResolver
-@deprecated // experimental
-@Native("XPathNSResolver")
-class XPathNSResolver extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory XPathNSResolver._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @JSName('lookupNamespaceURI')
-  @DomName('XPathNSResolver.lookupNamespaceURI')
-  @DocsEditable()
-  String lookupNamespaceUri(String prefix) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('XPathResult')
-// http://www.w3.org/TR/DOM-Level-3-XPath/xpath.html#XPathResult
-@deprecated // experimental
-@Native("XPathResult")
-class XPathResult extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory XPathResult._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('XPathResult.ANY_TYPE')
-  @DocsEditable()
-  static const int ANY_TYPE = 0;
-
-  @DomName('XPathResult.ANY_UNORDERED_NODE_TYPE')
-  @DocsEditable()
-  static const int ANY_UNORDERED_NODE_TYPE = 8;
-
-  @DomName('XPathResult.BOOLEAN_TYPE')
-  @DocsEditable()
-  static const int BOOLEAN_TYPE = 3;
-
-  @DomName('XPathResult.FIRST_ORDERED_NODE_TYPE')
-  @DocsEditable()
-  static const int FIRST_ORDERED_NODE_TYPE = 9;
-
-  @DomName('XPathResult.NUMBER_TYPE')
-  @DocsEditable()
-  static const int NUMBER_TYPE = 1;
-
-  @DomName('XPathResult.ORDERED_NODE_ITERATOR_TYPE')
-  @DocsEditable()
-  static const int ORDERED_NODE_ITERATOR_TYPE = 5;
-
-  @DomName('XPathResult.ORDERED_NODE_SNAPSHOT_TYPE')
-  @DocsEditable()
-  static const int ORDERED_NODE_SNAPSHOT_TYPE = 7;
-
-  @DomName('XPathResult.STRING_TYPE')
-  @DocsEditable()
-  static const int STRING_TYPE = 2;
-
-  @DomName('XPathResult.UNORDERED_NODE_ITERATOR_TYPE')
-  @DocsEditable()
-  static const int UNORDERED_NODE_ITERATOR_TYPE = 4;
-
-  @DomName('XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE')
-  @DocsEditable()
-  static const int UNORDERED_NODE_SNAPSHOT_TYPE = 6;
-
-  @DomName('XPathResult.booleanValue')
-  @DocsEditable()
-  final bool booleanValue;
-
-  @DomName('XPathResult.invalidIteratorState')
-  @DocsEditable()
-  final bool invalidIteratorState;
-
-  @DomName('XPathResult.numberValue')
-  @DocsEditable()
-  final double numberValue;
-
-  @DomName('XPathResult.resultType')
-  @DocsEditable()
-  final int resultType;
-
-  @DomName('XPathResult.singleNodeValue')
-  @DocsEditable()
-  final Node singleNodeValue;
-
-  @DomName('XPathResult.snapshotLength')
-  @DocsEditable()
-  final int snapshotLength;
-
-  @DomName('XPathResult.stringValue')
-  @DocsEditable()
-  final String stringValue;
-
-  @DomName('XPathResult.iterateNext')
-  @DocsEditable()
-  Node iterateNext() native;
-
-  @DomName('XPathResult.snapshotItem')
-  @DocsEditable()
-  Node snapshotItem(int index) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('XMLDocument')
-@Experimental() // untriaged
-@Native("XMLDocument")
-class XmlDocument extends Document {
-  // To suppress missing implicit constructor warnings.
-  factory XmlDocument._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('XMLSerializer')
-// http://domparsing.spec.whatwg.org/#the-xmlserializer-interface
-@deprecated // stable
-@Native("XMLSerializer")
-class XmlSerializer extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory XmlSerializer._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('XMLSerializer.XMLSerializer')
-  @DocsEditable()
-  factory XmlSerializer() {
-    return XmlSerializer._create_1();
-  }
-  static XmlSerializer _create_1() =>
-      JS('XmlSerializer', 'new XMLSerializer()');
-
-  @DomName('XMLSerializer.serializeToString')
-  @DocsEditable()
-  String serializeToString(Node root) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('XSLTProcessor')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@deprecated // nonstandard
-@Native("XSLTProcessor")
-class XsltProcessor extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory XsltProcessor._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('XSLTProcessor.XSLTProcessor')
-  @DocsEditable()
-  factory XsltProcessor() {
-    return XsltProcessor._create_1();
-  }
-  static XsltProcessor _create_1() =>
-      JS('XsltProcessor', 'new XSLTProcessor()');
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported => JS('bool', '!!(window.XSLTProcessor)');
-
-  @DomName('XSLTProcessor.clearParameters')
-  @DocsEditable()
-  void clearParameters() native;
-
-  @DomName('XSLTProcessor.getParameter')
-  @DocsEditable()
-  String getParameter(String namespaceURI, String localName) native;
-
-  @DomName('XSLTProcessor.importStylesheet')
-  @DocsEditable()
-  void importStylesheet(Node style) native;
-
-  @DomName('XSLTProcessor.removeParameter')
-  @DocsEditable()
-  void removeParameter(String namespaceURI, String localName) native;
-
-  @DomName('XSLTProcessor.reset')
-  @DocsEditable()
-  void reset() native;
-
-  @DomName('XSLTProcessor.setParameter')
-  @DocsEditable()
-  void setParameter(String namespaceURI, String localName, String value) native;
-
-  @DomName('XSLTProcessor.transformToDocument')
-  @DocsEditable()
-  Document transformToDocument(Node source) native;
-
-  @DomName('XSLTProcessor.transformToFragment')
-  @DocsEditable()
-  DocumentFragment transformToFragment(Node source, Document output) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Attr')
-@Native("Attr")
-class _Attr extends Node {
-  // To suppress missing implicit constructor warnings.
-  factory _Attr._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @JSName('localName')
-  @DomName('Attr.localName')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String _localName;
-
-  @DomName('Attr.name')
-  @DocsEditable()
-  final String name;
-
-  @JSName('namespaceURI')
-  @DomName('Attr.namespaceURI')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String _namespaceUri;
-
-  // Use implementation from Node.
-  // final String nodeValue;
-
-  @DomName('Attr.value')
-  @DocsEditable()
-  String value;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Bluetooth')
-@Experimental() // untriaged
-@Native("Bluetooth")
-abstract class _Bluetooth extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _Bluetooth._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('BluetoothAdvertisingData')
-@Experimental() // untriaged
-@Native("BluetoothAdvertisingData")
-abstract class _BluetoothAdvertisingData extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _BluetoothAdvertisingData._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('BluetoothCharacteristicProperties')
-@Experimental() // untriaged
-@Native("BluetoothCharacteristicProperties")
-abstract class _BluetoothCharacteristicProperties extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _BluetoothCharacteristicProperties._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('BluetoothDevice')
-@Experimental() // untriaged
-@Native("BluetoothDevice")
-abstract class _BluetoothDevice extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory _BluetoothDevice._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('BluetoothRemoteGATTCharacteristic')
-@Experimental() // untriaged
-@Native("BluetoothRemoteGATTCharacteristic")
-abstract class _BluetoothRemoteGATTCharacteristic extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory _BluetoothRemoteGATTCharacteristic._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('BluetoothRemoteGATTServer')
-@Experimental() // untriaged
-@Native("BluetoothRemoteGATTServer")
-abstract class _BluetoothRemoteGATTServer extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _BluetoothRemoteGATTServer._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('BluetoothRemoteGATTService')
-@Experimental() // untriaged
-@Native("BluetoothRemoteGATTService")
-abstract class _BluetoothRemoteGATTService extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _BluetoothRemoteGATTService._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('BluetoothUUID')
-@Experimental() // untriaged
-@Native("BluetoothUUID")
-abstract class _BluetoothUUID extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _BluetoothUUID._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Cache')
-@Experimental() // untriaged
-@Native("Cache")
-abstract class _Cache extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _Cache._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CanvasPathMethods')
-@Experimental() // untriaged
-abstract class _CanvasPathMethods extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _CanvasPathMethods._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ClientRect')
-@Native("ClientRect")
-class _ClientRect extends Interceptor implements Rectangle {
-  // NOTE! All code below should be common with RectangleBase.
-  String toString() {
-    return 'Rectangle ($left, $top) $width x $height';
-  }
-
-  bool operator ==(other) {
-    if (other is! Rectangle) return false;
-    return left == other.left &&
-        top == other.top &&
-        width == other.width &&
-        height == other.height;
-  }
-
-  int get hashCode => _JenkinsSmiHash.hash4(
-      left.hashCode, top.hashCode, width.hashCode, height.hashCode);
-
-  /**
-   * Computes the intersection of `this` and [other].
-   *
-   * The intersection of two axis-aligned rectangles, if any, is always another
-   * axis-aligned rectangle.
-   *
-   * Returns the intersection of this and `other`, or null if they don't
-   * intersect.
-   */
-  Rectangle intersection(Rectangle other) {
-    var x0 = max(left, other.left);
-    var x1 = min(left + width, other.left + other.width);
-
-    if (x0 <= x1) {
-      var y0 = max(top, other.top);
-      var y1 = min(top + height, other.top + other.height);
-
-      if (y0 <= y1) {
-        return new Rectangle(x0, y0, x1 - x0, y1 - y0);
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Returns true if `this` intersects [other].
-   */
-  bool intersects(Rectangle<num> other) {
-    return (left <= other.left + other.width &&
-        other.left <= left + width &&
-        top <= other.top + other.height &&
-        other.top <= top + height);
-  }
-
-  /**
-   * Returns a new rectangle which completely contains `this` and [other].
-   */
-  Rectangle boundingBox(Rectangle other) {
-    var right = max(this.left + this.width, other.left + other.width);
-    var bottom = max(this.top + this.height, other.top + other.height);
-
-    var left = min(this.left, other.left);
-    var top = min(this.top, other.top);
-
-    return new Rectangle(left, top, right - left, bottom - top);
-  }
-
-  /**
-   * Tests whether `this` entirely contains [another].
-   */
-  bool containsRectangle(Rectangle<num> another) {
-    return left <= another.left &&
-        left + width >= another.left + another.width &&
-        top <= another.top &&
-        top + height >= another.top + another.height;
-  }
-
-  /**
-   * Tests whether [another] is inside or along the edges of `this`.
-   */
-  bool containsPoint(Point<num> another) {
-    return another.x >= left &&
-        another.x <= left + width &&
-        another.y >= top &&
-        another.y <= top + height;
-  }
-
-  Point get topLeft => new Point/*<num>*/(this.left, this.top);
-  Point get topRight => new Point/*<num>*/(this.left + this.width, this.top);
-  Point get bottomRight =>
-      new Point/*<num>*/(this.left + this.width, this.top + this.height);
-  Point get bottomLeft => new Point/*<num>*/(this.left, this.top + this.height);
-
-  // To suppress missing implicit constructor warnings.
-  factory _ClientRect._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('ClientRect.bottom')
-  @DocsEditable()
-  final double bottom;
-
-  @DomName('ClientRect.height')
-  @DocsEditable()
-  final double height;
-
-  @DomName('ClientRect.left')
-  @DocsEditable()
-  final double left;
-
-  @DomName('ClientRect.right')
-  @DocsEditable()
-  final double right;
-
-  @DomName('ClientRect.top')
-  @DocsEditable()
-  final double top;
-
-  @DomName('ClientRect.width')
-  @DocsEditable()
-  final double width;
-}
-
-/**
- * This is the [Jenkins hash function][1] but using masking to keep
- * values in SMI range.
- *
- * [1]: http://en.wikipedia.org/wiki/Jenkins_hash_function
- *
- * Use:
- * Hash each value with the hash of the previous value, then get the final
- * hash by calling finish.
- *
- *     var hash = 0;
- *     for (var value in values) {
- *       hash = JenkinsSmiHash.combine(hash, value.hashCode);
- *     }
- *     hash = JenkinsSmiHash.finish(hash);
- */
-class _JenkinsSmiHash {
-  // TODO(11617): This class should be optimized and standardized elsewhere.
-
-  static int combine(int hash, int value) {
-    hash = 0x1fffffff & (hash + value);
-    hash = 0x1fffffff & (hash + ((0x0007ffff & hash) << 10));
-    return hash ^ (hash >> 6);
-  }
-
-  static int finish(int hash) {
-    hash = 0x1fffffff & (hash + ((0x03ffffff & hash) << 3));
-    hash = hash ^ (hash >> 11);
-    return 0x1fffffff & (hash + ((0x00003fff & hash) << 15));
-  }
-
-  static int hash2(a, b) => finish(combine(combine(0, a), b));
-
-  static int hash4(a, b, c, d) =>
-      finish(combine(combine(combine(combine(0, a), b), c), d));
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ClientRectList')
-@Native("ClientRectList,DOMRectList")
-class _ClientRectList extends Interceptor
-    with ListMixin<Rectangle>, ImmutableListMixin<Rectangle>
-    implements List<Rectangle>, JavaScriptIndexingBehavior<Rectangle> {
-  // To suppress missing implicit constructor warnings.
-  factory _ClientRectList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('ClientRectList.length')
-  @DocsEditable()
-  int get length => JS("int", "#.length", this);
-
-  Rectangle operator [](int index) {
-    if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
-      throw new RangeError.index(index, this);
-    return JS("Rectangle", "#[#]", this, index);
-  }
-
-  void operator []=(int index, Rectangle value) {
-    throw new UnsupportedError("Cannot assign element of immutable List.");
-  }
-  // -- start List<Rectangle> mixins.
-  // Rectangle is the element type.
-
-  set length(int value) {
-    throw new UnsupportedError("Cannot resize immutable List.");
-  }
-
-  Rectangle get first {
-    if (this.length > 0) {
-      return JS('Rectangle', '#[0]', this);
-    }
-    throw new StateError("No elements");
-  }
-
-  Rectangle get last {
-    int len = this.length;
-    if (len > 0) {
-      return JS('Rectangle', '#[#]', this, len - 1);
-    }
-    throw new StateError("No elements");
-  }
-
-  Rectangle get single {
-    int len = this.length;
-    if (len == 1) {
-      return JS('Rectangle', '#[0]', this);
-    }
-    if (len == 0) throw new StateError("No elements");
-    throw new StateError("More than one element");
-  }
-
-  Rectangle elementAt(int index) => this[index];
-  // -- end List<Rectangle> mixins.
-
-  @DomName('ClientRectList.__getter__')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Rectangle __getter__(int index) native;
-
-  @DomName('ClientRectList.item')
-  @DocsEditable()
-  Rectangle item(int index) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CSSRuleList')
-@Native("CSSRuleList")
-class _CssRuleList extends Interceptor
-    with ListMixin<CssRule>, ImmutableListMixin<CssRule>
-    implements JavaScriptIndexingBehavior<CssRule>, List<CssRule> {
-  // To suppress missing implicit constructor warnings.
-  factory _CssRuleList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CSSRuleList.length')
-  @DocsEditable()
-  int get length => JS("int", "#.length", this);
-
-  CssRule operator [](int index) {
-    if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
-      throw new RangeError.index(index, this);
-    return JS("CssRule", "#[#]", this, index);
-  }
-
-  void operator []=(int index, CssRule value) {
-    throw new UnsupportedError("Cannot assign element of immutable List.");
-  }
-  // -- start List<CssRule> mixins.
-  // CssRule is the element type.
-
-  set length(int value) {
-    throw new UnsupportedError("Cannot resize immutable List.");
-  }
-
-  CssRule get first {
-    if (this.length > 0) {
-      return JS('CssRule', '#[0]', this);
-    }
-    throw new StateError("No elements");
-  }
-
-  CssRule get last {
-    int len = this.length;
-    if (len > 0) {
-      return JS('CssRule', '#[#]', this, len - 1);
-    }
-    throw new StateError("No elements");
-  }
-
-  CssRule get single {
-    int len = this.length;
-    if (len == 1) {
-      return JS('CssRule', '#[0]', this);
-    }
-    if (len == 0) throw new StateError("No elements");
-    throw new StateError("More than one element");
-  }
-
-  CssRule elementAt(int index) => this[index];
-  // -- end List<CssRule> mixins.
-
-  @DomName('CSSRuleList.item')
-  @DocsEditable()
-  CssRule item(int index) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DOMFileSystemSync')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@Experimental()
-// http://www.w3.org/TR/file-system-api/#the-filesystemsync-interface
-@Native("DOMFileSystemSync")
-abstract class _DOMFileSystemSync extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _DOMFileSystemSync._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DirectoryEntrySync')
-// http://www.w3.org/TR/file-system-api/#the-directoryentrysync-interface
-@Experimental()
-@Native("DirectoryEntrySync")
-abstract class _DirectoryEntrySync extends _EntrySync {
-  // To suppress missing implicit constructor warnings.
-  factory _DirectoryEntrySync._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DirectoryReaderSync')
-// http://www.w3.org/TR/file-system-api/#idl-def-DirectoryReaderSync
-@Experimental()
-@Native("DirectoryReaderSync")
-abstract class _DirectoryReaderSync extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _DirectoryReaderSync._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DocumentType')
-// http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-412266927
-@deprecated // stable
-@Native("DocumentType")
-abstract class _DocumentType extends Node implements ChildNode {
-  // To suppress missing implicit constructor warnings.
-  factory _DocumentType._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  // From ChildNode
-
-}
-
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DOMRect')
-@Experimental() // untriaged
-@Native("DOMRect")
-class _DomRect extends DomRectReadOnly {
-  // To suppress missing implicit constructor warnings.
-  factory _DomRect._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('DOMRect.DOMRect')
-  @DocsEditable()
-  factory _DomRect([num x, num y, num width, num height]) {
-    if (height != null) {
-      return _DomRect._create_1(x, y, width, height);
-    }
-    if (width != null) {
-      return _DomRect._create_2(x, y, width);
-    }
-    if (y != null) {
-      return _DomRect._create_3(x, y);
-    }
-    if (x != null) {
-      return _DomRect._create_4(x);
-    }
-    return _DomRect._create_5();
-  }
-  static _DomRect _create_1(x, y, width, height) =>
-      JS('_DomRect', 'new DOMRect(#,#,#,#)', x, y, width, height);
-  static _DomRect _create_2(x, y, width) =>
-      JS('_DomRect', 'new DOMRect(#,#,#)', x, y, width);
-  static _DomRect _create_3(x, y) => JS('_DomRect', 'new DOMRect(#,#)', x, y);
-  static _DomRect _create_4(x) => JS('_DomRect', 'new DOMRect(#)', x);
-  static _DomRect _create_5() => JS('_DomRect', 'new DOMRect()');
-
-  // Shadowing definition.
-  num get height => JS("num", "#.height", this);
-
-  set height(num value) {
-    JS("void", "#.height = #", this, value);
-  }
-
-  // Shadowing definition.
-  num get width => JS("num", "#.width", this);
-
-  set width(num value) {
-    JS("void", "#.width = #", this, value);
-  }
-
-  // Shadowing definition.
-  num get x => JS("num", "#.x", this);
-
-  set x(num value) {
-    JS("void", "#.x = #", this, value);
-  }
-
-  // Shadowing definition.
-  num get y => JS("num", "#.y", this);
-
-  set y(num value) {
-    JS("void", "#.y = #", this, value);
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('EntrySync')
-// http://www.w3.org/TR/file-system-api/#idl-def-EntrySync
-@Experimental()
-@Native("EntrySync")
-abstract class _EntrySync extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _EntrySync._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('FileEntrySync')
-// http://www.w3.org/TR/file-system-api/#the-fileentrysync-interface
-@Experimental()
-@Native("FileEntrySync")
-abstract class _FileEntrySync extends _EntrySync {
-  // To suppress missing implicit constructor warnings.
-  factory _FileEntrySync._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('FileReaderSync')
-// http://www.w3.org/TR/FileAPI/#FileReaderSync
-@Experimental()
-@Native("FileReaderSync")
-abstract class _FileReaderSync extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _FileReaderSync._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('FileReaderSync.FileReaderSync')
-  @DocsEditable()
-  factory _FileReaderSync() {
-    return _FileReaderSync._create_1();
-  }
-  static _FileReaderSync _create_1() =>
-      JS('_FileReaderSync', 'new FileReaderSync()');
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('FileWriterSync')
-// http://www.w3.org/TR/file-writer-api/#idl-def-FileWriterSync
-@Experimental()
-@Native("FileWriterSync")
-abstract class _FileWriterSync extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _FileWriterSync._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('GamepadList')
-// https://dvcs.w3.org/hg/gamepad/raw-file/default/gamepad.html
-@Experimental()
-@Native("GamepadList")
-class _GamepadList extends Interceptor
-    with ListMixin<Gamepad>, ImmutableListMixin<Gamepad>
-    implements List<Gamepad>, JavaScriptIndexingBehavior<Gamepad> {
-  // To suppress missing implicit constructor warnings.
-  factory _GamepadList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('GamepadList.length')
-  @DocsEditable()
-  int get length => JS("int", "#.length", this);
-
-  Gamepad operator [](int index) {
-    if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
-      throw new RangeError.index(index, this);
-    return JS("Gamepad|Null", "#[#]", this, index);
-  }
-
-  void operator []=(int index, Gamepad value) {
-    throw new UnsupportedError("Cannot assign element of immutable List.");
-  }
-  // -- start List<Gamepad> mixins.
-  // Gamepad is the element type.
-
-  set length(int value) {
-    throw new UnsupportedError("Cannot resize immutable List.");
-  }
-
-  Gamepad get first {
-    if (this.length > 0) {
-      return JS('Gamepad|Null', '#[0]', this);
-    }
-    throw new StateError("No elements");
-  }
-
-  Gamepad get last {
-    int len = this.length;
-    if (len > 0) {
-      return JS('Gamepad|Null', '#[#]', this, len - 1);
-    }
-    throw new StateError("No elements");
-  }
-
-  Gamepad get single {
-    int len = this.length;
-    if (len == 1) {
-      return JS('Gamepad|Null', '#[0]', this);
-    }
-    if (len == 0) throw new StateError("No elements");
-    throw new StateError("More than one element");
-  }
-
-  Gamepad elementAt(int index) => this[index];
-  // -- end List<Gamepad> mixins.
-
-  @DomName('GamepadList.item')
-  @DocsEditable()
-  Gamepad item(int index) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLAllCollection')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#dom-document-all
-@deprecated // deprecated
-@Native("HTMLAllCollection")
-abstract class _HTMLAllCollection extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _HTMLAllCollection._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @JSName('item')
-  @DomName('HTMLAllCollection.item')
-  @DocsEditable()
-  Element _item(int index) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLDirectoryElement')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#dir
-@deprecated // deprecated
-@Native("HTMLDirectoryElement")
-abstract class _HTMLDirectoryElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory _HTMLDirectoryElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _HTMLDirectoryElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLFontElement')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#htmlfontelement
-@deprecated // deprecated
-@Native("HTMLFontElement")
-abstract class _HTMLFontElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory _HTMLFontElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _HTMLFontElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLFrameElement')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#htmlframeelement
-@deprecated // deprecated
-@Native("HTMLFrameElement")
-abstract class _HTMLFrameElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory _HTMLFrameElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _HTMLFrameElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLFrameSetElement')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#frameset
-@deprecated // deprecated
-@Native("HTMLFrameSetElement")
-abstract class _HTMLFrameSetElement extends HtmlElement
-    implements WindowEventHandlers {
-  // To suppress missing implicit constructor warnings.
-  factory _HTMLFrameSetElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _HTMLFrameSetElement.created() : super.created();
-}
-
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('HTMLMarqueeElement')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#the-marquee-element
-@deprecated // deprecated
-@Native("HTMLMarqueeElement")
-abstract class _HTMLMarqueeElement extends HtmlElement {
-  // To suppress missing implicit constructor warnings.
-  factory _HTMLMarqueeElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _HTMLMarqueeElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('NFC')
-@Experimental() // untriaged
-@Native("NFC")
-abstract class _NFC extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _NFC._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('NamedNodeMap')
-// http://dom.spec.whatwg.org/#namednodemap
-@deprecated // deprecated
-@Native("NamedNodeMap,MozNamedAttrMap")
-class _NamedNodeMap extends Interceptor
-    with ListMixin<Node>, ImmutableListMixin<Node>
-    implements JavaScriptIndexingBehavior<Node>, List<Node> {
-  // To suppress missing implicit constructor warnings.
-  factory _NamedNodeMap._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('NamedNodeMap.length')
-  @DocsEditable()
-  int get length => JS("int", "#.length", this);
-
-  Node operator [](int index) {
-    if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
-      throw new RangeError.index(index, this);
-    return JS("Node", "#[#]", this, index);
-  }
-
-  void operator []=(int index, Node value) {
-    throw new UnsupportedError("Cannot assign element of immutable List.");
-  }
-  // -- start List<Node> mixins.
-  // Node is the element type.
-
-  set length(int value) {
-    throw new UnsupportedError("Cannot resize immutable List.");
-  }
-
-  Node get first {
-    if (this.length > 0) {
-      return JS('Node', '#[0]', this);
-    }
-    throw new StateError("No elements");
-  }
-
-  Node get last {
-    int len = this.length;
-    if (len > 0) {
-      return JS('Node', '#[#]', this, len - 1);
-    }
-    throw new StateError("No elements");
-  }
-
-  Node get single {
-    int len = this.length;
-    if (len == 1) {
-      return JS('Node', '#[0]', this);
-    }
-    if (len == 0) throw new StateError("No elements");
-    throw new StateError("More than one element");
-  }
-
-  Node elementAt(int index) => this[index];
-  // -- end List<Node> mixins.
-
-  @DomName('NamedNodeMap.getNamedItem')
-  @DocsEditable()
-  _Attr getNamedItem(String name) native;
-
-  @DomName('NamedNodeMap.getNamedItemNS')
-  @DocsEditable()
-  _Attr getNamedItemNS(String namespaceURI, String localName) native;
-
-  @DomName('NamedNodeMap.item')
-  @DocsEditable()
-  _Attr item(int index) native;
-
-  @DomName('NamedNodeMap.removeNamedItem')
-  @DocsEditable()
-  _Attr removeNamedItem(String name) native;
-
-  @DomName('NamedNodeMap.removeNamedItemNS')
-  @DocsEditable()
-  _Attr removeNamedItemNS(String namespaceURI, String localName) native;
-
-  @DomName('NamedNodeMap.setNamedItem')
-  @DocsEditable()
-  _Attr setNamedItem(_Attr attr) native;
-
-  @DomName('NamedNodeMap.setNamedItemNS')
-  @DocsEditable()
-  _Attr setNamedItemNS(_Attr attr) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PagePopupController')
-@deprecated // nonstandard
-@Native("PagePopupController")
-abstract class _PagePopupController extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _PagePopupController._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// Omit RadioNodeList for dart2js.  The Dart Form and FieldSet APIs don't
-// currently expose an API the returns RadioNodeList.  The only use of a
-// RadioNodeList is to get the selected value and it will be cleaner to
-// introduce a different API for that purpose.
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Request')
-@Experimental() // untriaged
-@Native("Request")
-class _Request extends Body {
-  // To suppress missing implicit constructor warnings.
-  factory _Request._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Request.Request')
-  @DocsEditable()
-  factory _Request(Object input, [Map requestInitDict]) {
-    if (requestInitDict != null) {
-      var requestInitDict_1 = convertDartToNative_Dictionary(requestInitDict);
-      return _Request._create_1(input, requestInitDict_1);
-    }
-    return _Request._create_2(input);
-  }
-  static _Request _create_1(input, requestInitDict) =>
-      JS('_Request', 'new Request(#,#)', input, requestInitDict);
-  static _Request _create_2(input) => JS('_Request', 'new Request(#)', input);
-
-  @DomName('Request.credentials')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String credentials;
-
-  @DomName('Request.headers')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Headers headers;
-
-  @DomName('Request.integrity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String integrity;
-
-  @DomName('Request.mode')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String mode;
-
-  @DomName('Request.redirect')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String redirect;
-
-  @DomName('Request.referrer')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String referrer;
-
-  @DomName('Request.url')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String url;
-
-  @DomName('Request.clone')
-  @DocsEditable()
-  @Experimental() // untriaged
-  _Request clone() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ResourceProgressEvent')
-// https://chromiumcodereview.appspot.com/14773025/
-@deprecated // experimental
-@Native("ResourceProgressEvent")
-abstract class _ResourceProgressEvent extends ProgressEvent {
-  // To suppress missing implicit constructor warnings.
-  factory _ResourceProgressEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Response')
-@Experimental() // untriaged
-@Native("Response")
-abstract class _Response extends Body {
-  // To suppress missing implicit constructor warnings.
-  factory _Response._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('Response.Response')
-  @DocsEditable()
-  factory _Response([Object body, Map responseInitDict]) {
-    if (responseInitDict != null) {
-      var responseInitDict_1 = convertDartToNative_Dictionary(responseInitDict);
-      return _Response._create_1(body, responseInitDict_1);
-    }
-    if (body != null) {
-      return _Response._create_2(body);
-    }
-    return _Response._create_3();
-  }
-  static _Response _create_1(body, responseInitDict) =>
-      JS('_Response', 'new Response(#,#)', body, responseInitDict);
-  static _Response _create_2(body) => JS('_Response', 'new Response(#)', body);
-  static _Response _create_3() => JS('_Response', 'new Response()');
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ServiceWorker')
-@Experimental() // untriaged
-@Native("ServiceWorker")
-abstract class _ServiceWorker extends EventTarget implements AbstractWorker {
-  // To suppress missing implicit constructor warnings.
-  factory _ServiceWorker._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SpeechRecognitionResultList')
-// https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#speechrecognitionresultlist
-@Experimental()
-@Native("SpeechRecognitionResultList")
-class _SpeechRecognitionResultList extends Interceptor
-    with
-        ListMixin<SpeechRecognitionResult>,
-        ImmutableListMixin<SpeechRecognitionResult>
-    implements
-        JavaScriptIndexingBehavior<SpeechRecognitionResult>,
-        List<SpeechRecognitionResult> {
-  // To suppress missing implicit constructor warnings.
-  factory _SpeechRecognitionResultList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SpeechRecognitionResultList.length')
-  @DocsEditable()
-  int get length => JS("int", "#.length", this);
-
-  SpeechRecognitionResult operator [](int index) {
-    if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
-      throw new RangeError.index(index, this);
-    return JS("SpeechRecognitionResult", "#[#]", this, index);
-  }
-
-  void operator []=(int index, SpeechRecognitionResult value) {
-    throw new UnsupportedError("Cannot assign element of immutable List.");
-  }
-  // -- start List<SpeechRecognitionResult> mixins.
-  // SpeechRecognitionResult is the element type.
-
-  set length(int value) {
-    throw new UnsupportedError("Cannot resize immutable List.");
-  }
-
-  SpeechRecognitionResult get first {
-    if (this.length > 0) {
-      return JS('SpeechRecognitionResult', '#[0]', this);
-    }
-    throw new StateError("No elements");
-  }
-
-  SpeechRecognitionResult get last {
-    int len = this.length;
-    if (len > 0) {
-      return JS('SpeechRecognitionResult', '#[#]', this, len - 1);
-    }
-    throw new StateError("No elements");
-  }
-
-  SpeechRecognitionResult get single {
-    int len = this.length;
-    if (len == 1) {
-      return JS('SpeechRecognitionResult', '#[0]', this);
-    }
-    if (len == 0) throw new StateError("No elements");
-    throw new StateError("More than one element");
-  }
-
-  SpeechRecognitionResult elementAt(int index) => this[index];
-  // -- end List<SpeechRecognitionResult> mixins.
-
-  @DomName('SpeechRecognitionResultList.item')
-  @DocsEditable()
-  SpeechRecognitionResult item(int index) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('StyleSheetList')
-@Native("StyleSheetList")
-class _StyleSheetList extends Interceptor
-    with ListMixin<StyleSheet>, ImmutableListMixin<StyleSheet>
-    implements List<StyleSheet>, JavaScriptIndexingBehavior<StyleSheet> {
-  // To suppress missing implicit constructor warnings.
-  factory _StyleSheetList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('StyleSheetList.length')
-  @DocsEditable()
-  int get length => JS("int", "#.length", this);
-
-  StyleSheet operator [](int index) {
-    if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
-      throw new RangeError.index(index, this);
-    return JS("StyleSheet", "#[#]", this, index);
-  }
-
-  void operator []=(int index, StyleSheet value) {
-    throw new UnsupportedError("Cannot assign element of immutable List.");
-  }
-  // -- start List<StyleSheet> mixins.
-  // StyleSheet is the element type.
-
-  set length(int value) {
-    throw new UnsupportedError("Cannot resize immutable List.");
-  }
-
-  StyleSheet get first {
-    if (this.length > 0) {
-      return JS('StyleSheet', '#[0]', this);
-    }
-    throw new StateError("No elements");
-  }
-
-  StyleSheet get last {
-    int len = this.length;
-    if (len > 0) {
-      return JS('StyleSheet', '#[#]', this, len - 1);
-    }
-    throw new StateError("No elements");
-  }
-
-  StyleSheet get single {
-    int len = this.length;
-    if (len == 1) {
-      return JS('StyleSheet', '#[0]', this);
-    }
-    if (len == 0) throw new StateError("No elements");
-    throw new StateError("More than one element");
-  }
-
-  StyleSheet elementAt(int index) => this[index];
-  // -- end List<StyleSheet> mixins.
-
-  @DomName('StyleSheetList.__getter__')
-  @DocsEditable()
-  CssStyleSheet __getter__(String name) native;
-
-  @DomName('StyleSheetList.item')
-  @DocsEditable()
-  StyleSheet item(int index) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SubtleCrypto')
-@Experimental() // untriaged
-@Native("SubtleCrypto")
-abstract class _SubtleCrypto extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _SubtleCrypto._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('USB')
-@Experimental() // untriaged
-@Native("USB")
-abstract class _USB extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory _USB._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('USBAlternateInterface')
-@Experimental() // untriaged
-@Native("USBAlternateInterface")
-abstract class _USBAlternateInterface extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _USBAlternateInterface._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('USBAlternateInterface.USBAlternateInterface')
-  @DocsEditable()
-  factory _USBAlternateInterface(
-      _USBInterface deviceInterface, int alternateSetting) {
-    return _USBAlternateInterface._create_1(deviceInterface, alternateSetting);
-  }
-  static _USBAlternateInterface _create_1(deviceInterface, alternateSetting) =>
-      JS('_USBAlternateInterface', 'new USBAlternateInterface(#,#)',
-          deviceInterface, alternateSetting);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('USBConfiguration')
-@Experimental() // untriaged
-@Native("USBConfiguration")
-abstract class _USBConfiguration extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _USBConfiguration._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('USBConfiguration.USBConfiguration')
-  @DocsEditable()
-  factory _USBConfiguration(_USBDevice device, int configurationValue) {
-    return _USBConfiguration._create_1(device, configurationValue);
-  }
-  static _USBConfiguration _create_1(device, configurationValue) => JS(
-      '_USBConfiguration',
-      'new USBConfiguration(#,#)',
-      device,
-      configurationValue);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('USBConnectionEvent')
-@Experimental() // untriaged
-@Native("USBConnectionEvent")
-abstract class _USBConnectionEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory _USBConnectionEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('USBConnectionEvent.USBConnectionEvent')
-  @DocsEditable()
-  factory _USBConnectionEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return _USBConnectionEvent._create_1(type, eventInitDict_1);
-    }
-    return _USBConnectionEvent._create_2(type);
-  }
-  static _USBConnectionEvent _create_1(type, eventInitDict) => JS(
-      '_USBConnectionEvent',
-      'new USBConnectionEvent(#,#)',
-      type,
-      eventInitDict);
-  static _USBConnectionEvent _create_2(type) =>
-      JS('_USBConnectionEvent', 'new USBConnectionEvent(#)', type);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('USBDevice')
-@Experimental() // untriaged
-@Native("USBDevice")
-abstract class _USBDevice extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _USBDevice._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('USBEndpoint')
-@Experimental() // untriaged
-@Native("USBEndpoint")
-abstract class _USBEndpoint extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _USBEndpoint._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('USBEndpoint.USBEndpoint')
-  @DocsEditable()
-  factory _USBEndpoint(
-      _USBAlternateInterface alternate, int endpointNumber, String direction) {
-    return _USBEndpoint._create_1(alternate, endpointNumber, direction);
-  }
-  static _USBEndpoint _create_1(alternate, endpointNumber, direction) => JS(
-      '_USBEndpoint',
-      'new USBEndpoint(#,#,#)',
-      alternate,
-      endpointNumber,
-      direction);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('USBInTransferResult')
-@Experimental() // untriaged
-@Native("USBInTransferResult")
-abstract class _USBInTransferResult extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _USBInTransferResult._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('USBInterface')
-@Experimental() // untriaged
-@Native("USBInterface")
-abstract class _USBInterface extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _USBInterface._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('USBInterface.USBInterface')
-  @DocsEditable()
-  factory _USBInterface(_USBConfiguration configuration, int interfaceNumber) {
-    return _USBInterface._create_1(configuration, interfaceNumber);
-  }
-  static _USBInterface _create_1(configuration, interfaceNumber) => JS(
-      '_USBInterface', 'new USBInterface(#,#)', configuration, interfaceNumber);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('USBIsochronousInTransferPacket')
-@Experimental() // untriaged
-@Native("USBIsochronousInTransferPacket")
-abstract class _USBIsochronousInTransferPacket extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _USBIsochronousInTransferPacket._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('USBIsochronousInTransferResult')
-@Experimental() // untriaged
-@Native("USBIsochronousInTransferResult")
-abstract class _USBIsochronousInTransferResult extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _USBIsochronousInTransferResult._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('USBIsochronousOutTransferPacket')
-@Experimental() // untriaged
-@Native("USBIsochronousOutTransferPacket")
-abstract class _USBIsochronousOutTransferPacket extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _USBIsochronousOutTransferPacket._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('USBIsochronousOutTransferResult')
-@Experimental() // untriaged
-@Native("USBIsochronousOutTransferResult")
-abstract class _USBIsochronousOutTransferResult extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _USBIsochronousOutTransferResult._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('USBOutTransferResult')
-@Experimental() // untriaged
-@Native("USBOutTransferResult")
-abstract class _USBOutTransferResult extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _USBOutTransferResult._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebKitCSSMatrix')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Experimental()
-// http://dev.w3.org/csswg/cssom/
-@deprecated // deprecated
-@Native("WebKitCSSMatrix")
-abstract class _WebKitCSSMatrix extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _WebKitCSSMatrix._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('WebKitCSSMatrix.WebKitCSSMatrix')
-  @DocsEditable()
-  factory _WebKitCSSMatrix([String cssValue]) {
-    if (cssValue != null) {
-      return _WebKitCSSMatrix._create_1(cssValue);
-    }
-    return _WebKitCSSMatrix._create_2();
-  }
-  static _WebKitCSSMatrix _create_1(cssValue) =>
-      JS('_WebKitCSSMatrix', 'new WebKitCSSMatrix(#)', cssValue);
-  static _WebKitCSSMatrix _create_2() =>
-      JS('_WebKitCSSMatrix', 'new WebKitCSSMatrix()');
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WindowTimers')
-@Experimental() // untriaged
-abstract class _WindowTimers extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _WindowTimers._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  int _setInterval_String(String handler, [int timeout, Object arguments]);
-
-  int _setTimeout_String(String handler, [int timeout, Object arguments]);
-
-  void _clearInterval([int handle]);
-
-  void _clearTimeout([int handle]);
-
-  int _setInterval(Object handler, [int timeout]);
-
-  int _setTimeout(Object handler, [int timeout]);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WorkerLocation')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html#workerlocation
-@Experimental()
-@Native("WorkerLocation")
-abstract class _WorkerLocation extends Interceptor implements UrlUtilsReadOnly {
-  // To suppress missing implicit constructor warnings.
-  factory _WorkerLocation._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  // From URLUtilsReadOnly
-
-}
-
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WorkerNavigator')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html#workernavigator
-@Experimental()
-@Native("WorkerNavigator")
-abstract class _WorkerNavigator extends Interceptor
-    implements NavigatorCpu, NavigatorOnLine, NavigatorID {
-  // To suppress missing implicit constructor warnings.
-  factory _WorkerNavigator._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  // From NavigatorCPU
-
-  // From NavigatorID
-
-  // From NavigatorOnLine
-
-}
-
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Worklet')
-@Experimental() // untriaged
-@Native("Worklet")
-abstract class _Worklet extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _Worklet._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WorkletGlobalScope')
-@Experimental() // untriaged
-@Native("WorkletGlobalScope")
-abstract class _WorkletGlobalScope extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _WorkletGlobalScope._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-abstract class _AttributeMap implements Map<String, String> {
-  final Element _element;
-
-  _AttributeMap(this._element);
-
-  void addAll(Map<String, String> other) {
-    other.forEach((k, v) {
-      this[k] = v;
-    });
-  }
-
-  bool containsValue(Object value) {
-    for (var v in this.values) {
-      if (value == v) {
-        return true;
-      }
-    }
-    return false;
-  }
-
-  String putIfAbsent(String key, String ifAbsent()) {
-    if (!containsKey(key)) {
-      this[key] = ifAbsent();
-    }
-    return this[key];
-  }
-
-  void clear() {
-    for (var key in keys) {
-      remove(key);
-    }
-  }
-
-  void forEach(void f(String key, String value)) {
-    for (var key in keys) {
-      var value = this[key];
-      f(key, value);
-    }
-  }
-
-  Iterable<String> get keys {
-    // TODO: generate a lazy collection instead.
-    var attributes = _element._attributes;
-    var keys = <String>[];
-    for (int i = 0, len = attributes.length; i < len; i++) {
-      _Attr attr = attributes[i];
-      if (_matches(attr)) {
-        keys.add(attr.name);
-      }
-    }
-    return keys;
-  }
-
-  Iterable<String> get values {
-    // TODO: generate a lazy collection instead.
-    var attributes = _element._attributes;
-    var values = <String>[];
-    for (int i = 0, len = attributes.length; i < len; i++) {
-      _Attr attr = attributes[i];
-      if (_matches(attr)) {
-        values.add(attr.value);
-      }
-    }
-    return values;
-  }
-
-  /**
-   * Returns true if there is no {key, value} pair in the map.
-   */
-  bool get isEmpty {
-    return length == 0;
-  }
-
-  /**
-   * Returns true if there is at least one {key, value} pair in the map.
-   */
-  bool get isNotEmpty => !isEmpty;
-
-  /**
-   * Checks to see if the node should be included in this map.
-   */
-  bool _matches(_Attr node);
-}
-
-/**
- * Wrapper to expose [Element.attributes] as a typed map.
- */
-class _ElementAttributeMap extends _AttributeMap {
-  _ElementAttributeMap(Element element) : super(element);
-
-  bool containsKey(Object key) {
-    return _element._hasAttribute(key);
-  }
-
-  String operator [](Object key) {
-    return _element.getAttribute(key);
-  }
-
-  void operator []=(String key, String value) {
-    _element.setAttribute(key, value);
-  }
-
-  String remove(Object key) {
-    String value = _element.getAttribute(key);
-    _element._removeAttribute(key);
-    return value;
-  }
-
-  /**
-   * The number of {key, value} pairs in the map.
-   */
-  int get length {
-    return keys.length;
-  }
-
-  bool _matches(_Attr node) => node._namespaceUri == null;
-}
-
-/**
- * Wrapper to expose namespaced attributes as a typed map.
- */
-class _NamespacedAttributeMap extends _AttributeMap {
-  final String _namespace;
-
-  _NamespacedAttributeMap(Element element, this._namespace) : super(element);
-
-  bool containsKey(Object key) {
-    return _element._hasAttributeNS(_namespace, key);
-  }
-
-  String operator [](Object key) {
-    return _element.getAttributeNS(_namespace, key);
-  }
-
-  void operator []=(String key, String value) {
-    _element.setAttributeNS(_namespace, key, value);
-  }
-
-  String remove(Object key) {
-    String value = this[key];
-    _element._removeAttributeNS(_namespace, key);
-    return value;
-  }
-
-  /**
-   * The number of {key, value} pairs in the map.
-   */
-  int get length {
-    return keys.length;
-  }
-
-  bool _matches(_Attr node) => node._namespaceUri == _namespace;
-}
-
-/**
- * Provides a Map abstraction on top of data-* attributes, similar to the
- * dataSet in the old DOM.
- */
-class _DataAttributeMap implements Map<String, String> {
-  final Map<String, String> _attributes;
-
-  _DataAttributeMap(this._attributes);
-
-  // interface Map
-
-  void addAll(Map<String, String> other) {
-    other.forEach((k, v) {
-      this[k] = v;
-    });
-  }
-
-  // TODO: Use lazy iterator when it is available on Map.
-  bool containsValue(Object value) => values.any((v) => v == value);
-
-  bool containsKey(Object key) => _attributes.containsKey(_attr(key));
-
-  String operator [](Object key) => _attributes[_attr(key)];
-
-  void operator []=(String key, String value) {
-    _attributes[_attr(key)] = value;
-  }
-
-  String putIfAbsent(String key, String ifAbsent()) =>
-      _attributes.putIfAbsent(_attr(key), ifAbsent);
-
-  String remove(Object key) => _attributes.remove(_attr(key));
-
-  void clear() {
-    // Needs to operate on a snapshot since we are mutating the collection.
-    for (String key in keys) {
-      remove(key);
-    }
-  }
-
-  void forEach(void f(String key, String value)) {
-    _attributes.forEach((String key, String value) {
-      if (_matches(key)) {
-        f(_strip(key), value);
-      }
-    });
-  }
-
-  Iterable<String> get keys {
-    final keys = <String>[];
-    _attributes.forEach((String key, String value) {
-      if (_matches(key)) {
-        keys.add(_strip(key));
-      }
-    });
-    return keys;
-  }
-
-  Iterable<String> get values {
-    final values = <String>[];
-    _attributes.forEach((String key, String value) {
-      if (_matches(key)) {
-        values.add(value);
-      }
-    });
-    return values;
-  }
-
-  int get length => keys.length;
-
-  // TODO: Use lazy iterator when it is available on Map.
-  bool get isEmpty => length == 0;
-
-  bool get isNotEmpty => !isEmpty;
-
-  // Helpers.
-  String _attr(String key) => 'data-${_toHyphenedName(key)}';
-  bool _matches(String key) => key.startsWith('data-');
-  String _strip(String key) => _toCamelCase(key.substring(5));
-
-  /**
-   * Converts a string name with hyphens into an identifier, by removing hyphens
-   * and capitalizing the following letter. Optionally [startUppercase] to
-   * captialize the first letter.
-   */
-  String _toCamelCase(String hyphenedName, {bool startUppercase: false}) {
-    var segments = hyphenedName.split('-');
-    int start = startUppercase ? 0 : 1;
-    for (int i = start; i < segments.length; i++) {
-      var segment = segments[i];
-      if (segment.length > 0) {
-        // Character between 'a'..'z' mapped to 'A'..'Z'
-        segments[i] = '${segment[0].toUpperCase()}${segment.substring(1)}';
-      }
-    }
-    return segments.join('');
-  }
-
-  /** Reverse of [toCamelCase]. */
-  String _toHyphenedName(String word) {
-    var sb = new StringBuffer();
-    for (int i = 0; i < word.length; i++) {
-      var lower = word[i].toLowerCase();
-      if (word[i] != lower && i > 0) sb.write('-');
-      sb.write(lower);
-    }
-    return sb.toString();
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/**
- * An object that can be drawn to a 2D canvas rendering context.
- *
- * The image drawn to the canvas depends on the type of this object:
- *
- * * If this object is an [ImageElement], then this element's image is
- * drawn to the canvas. If this element is an animated image, then this
- * element's poster frame is drawn. If this element has no poster frame, then
- * the first frame of animation is drawn.
- *
- * * If this object is a [VideoElement], then the frame at this element's current
- * playback position is drawn to the canvas.
- *
- * * If this object is a [CanvasElement], then this element's bitmap is drawn to
- * the canvas.
- *
- * **Note:** Currently all versions of Internet Explorer do not support
- * drawing a video element to a canvas. You may also encounter problems drawing
- * a video to a canvas in Firefox if the source of the video is a data URL.
- *
- * ## See also
- *
- * * [CanvasRenderingContext2D.drawImage]
- * * [CanvasRenderingContext2D.drawImageToRect]
- * * [CanvasRenderingContext2D.drawImageScaled]
- * * [CanvasRenderingContext2D.drawImageScaledFromSource]
- *
- * ## Other resources
- *
- * * [Image sources for 2D rendering
- *   contexts](https://html.spec.whatwg.org/multipage/scripting.html#image-sources-for-2d-rendering-contexts)
- *   from WHATWG.
- * * [Drawing images](https://html.spec.whatwg.org/multipage/scripting.html#dom-context-2d-drawimage)
- *   from WHATWG.
- */
-abstract class CanvasImageSource {}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/**
- * Top-level container for a browser tab or window.
- *
- * In a web browser, a [WindowBase] object represents any browser window. This
- * object contains the window's state and its relation to other
- * windows, such as which window opened this window.
- *
- * **Note:** This class represents any window, while [Window] is
- * used to access the properties and content of the current window or tab.
- *
- * ## See also
- *
- * * [Window]
- *
- * ## Other resources
- *
- * * [DOM Window](https://developer.mozilla.org/en-US/docs/DOM/window) from MDN.
- * * [Window](http://www.w3.org/TR/Window/) from the W3C.
- */
-abstract class WindowBase implements EventTarget {
-  // Fields.
-
-  /**
-   * The current location of this window.
-   *
-   *     Location currentLocation = window.location;
-   *     print(currentLocation.href); // 'http://www.example.com:80/'
-   */
-  LocationBase get location;
-
-  /**
-   * The current session history for this window.
-   *
-   * ## Other resources
-   *
-   * * [Session history and navigation
-   *   specification](https://html.spec.whatwg.org/multipage/browsers.html#history)
-   *   from WHATWG.
-   */
-  HistoryBase get history;
-
-  /**
-   * Indicates whether this window has been closed.
-   *
-   *     print(window.closed); // 'false'
-   *     window.close();
-   *     print(window.closed); // 'true'
-   */
-  bool get closed;
-
-  /**
-   * A reference to the window that opened this one.
-   *
-   *     Window thisWindow = window;
-   *     WindowBase otherWindow = thisWindow.open('http://www.example.com/', 'foo');
-   *     print(otherWindow.opener == thisWindow); // 'true'
-   */
-  WindowBase get opener;
-
-  /**
-   * A reference to the parent of this window.
-   *
-   * If this [WindowBase] has no parent, [parent] will return a reference to
-   * the [WindowBase] itself.
-   *
-   *     IFrameElement myIFrame = new IFrameElement();
-   *     window.document.body.elements.add(myIFrame);
-   *     print(myIframe.contentWindow.parent == window) // 'true'
-   *
-   *     print(window.parent == window) // 'true'
-   */
-  WindowBase get parent;
-
-  /**
-   * A reference to the topmost window in the window hierarchy.
-   *
-   * If this [WindowBase] is the topmost [WindowBase], [top] will return a
-   * reference to the [WindowBase] itself.
-   *
-   *     // Add an IFrame to the current window.
-   *     IFrameElement myIFrame = new IFrameElement();
-   *     window.document.body.elements.add(myIFrame);
-   *
-   *     // Add an IFrame inside of the other IFrame.
-   *     IFrameElement innerIFrame = new IFrameElement();
-   *     myIFrame.elements.add(innerIFrame);
-   *
-   *     print(myIframe.contentWindow.top == window) // 'true'
-   *     print(innerIFrame.contentWindow.top == window) // 'true'
-   *
-   *     print(window.top == window) // 'true'
-   */
-  WindowBase get top;
-
-  // Methods.
-  /**
-   * Closes the window.
-   *
-   * This method should only succeed if the [WindowBase] object is
-   * **script-closeable** and the window calling [close] is allowed to navigate
-   * the window.
-   *
-   * A window is script-closeable if it is either a window
-   * that was opened by another window, or if it is a window with only one
-   * document in its history.
-   *
-   * A window might not be allowed to navigate, and therefore close, another
-   * window due to browser security features.
-   *
-   *     var other = window.open('http://www.example.com', 'foo');
-   *     // Closes other window, as it is script-closeable.
-   *     other.close();
-   *     print(other.closed()); // 'true'
-   *
-   *     window.location('http://www.mysite.com', 'foo');
-   *     // Does not close this window, as the history has changed.
-   *     window.close();
-   *     print(window.closed()); // 'false'
-   *
-   * See also:
-   *
-   * * [Window close discussion](http://www.w3.org/TR/html5/browsers.html#dom-window-close) from the W3C
-   */
-  void close();
-
-  /**
-   * Sends a cross-origin message.
-   *
-   * ## Other resources
-   *
-   * * [window.postMessage](https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage)
-   *   from MDN.
-   * * [Cross-document messaging](https://html.spec.whatwg.org/multipage/comms.html#web-messaging)
-   *   from WHATWG.
-   */
-  void postMessage(var message, String targetOrigin,
-      [List<MessagePort> messagePorts]);
-}
-
-abstract class LocationBase {
-  void set href(String val);
-}
-
-abstract class HistoryBase {
-  void back();
-  void forward();
-  void go(int distance);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/** A Set that stores the CSS class names for an element. */
-abstract class CssClassSet implements Set<String> {
-  /**
-   * Adds the class [value] to the element if it is not on it, removes it if it
-   * is.
-   *
-   * If [shouldAdd] is true, then we always add that [value] to the element. If
-   * [shouldAdd] is false then we always remove [value] from the element.
-   *
-   * If this corresponds to one element, returns `true` if [value] is present
-   * after the operation, and returns `false` if [value] is absent after the
-   * operation.
-   *
-   * If this corresponds to many elements, `null` is always returned.
-   *
-   * [value] must be a valid 'token' representing a single class, i.e. a
-   * non-empty string containing no whitespace.  To toggle multiple classes, use
-   * [toggleAll].
-   */
-  bool toggle(String value, [bool shouldAdd]);
-
-  /**
-   * Returns [:true:] if classes cannot be added or removed from this
-   * [:CssClassSet:].
-   */
-  bool get frozen;
-
-  /**
-   * Determine if this element contains the class [value].
-   *
-   * This is the Dart equivalent of jQuery's
-   * [hasClass](http://api.jquery.com/hasClass/).
-   *
-   * [value] must be a valid 'token' representing a single class, i.e. a
-   * non-empty string containing no whitespace.
-   */
-  bool contains(Object value);
-
-  /**
-   * Add the class [value] to element.
-   *
-   * [add] and [addAll] are the Dart equivalent of jQuery's
-   * [addClass](http://api.jquery.com/addClass/).
-   *
-   * If this CssClassSet corresponds to one element. Returns true if [value] was
-   * added to the set, otherwise false.
-   *
-   * If this corresponds to many elements, `null` is always returned.
-   *
-   * [value] must be a valid 'token' representing a single class, i.e. a
-   * non-empty string containing no whitespace.  To add multiple classes use
-   * [addAll].
-   */
-  bool add(String value);
-
-  /**
-   * Remove the class [value] from element, and return true on successful
-   * removal.
-   *
-   * [remove] and [removeAll] are the Dart equivalent of jQuery's
-   * [removeClass](http://api.jquery.com/removeClass/).
-   *
-   * [value] must be a valid 'token' representing a single class, i.e. a
-   * non-empty string containing no whitespace.  To remove multiple classes, use
-   * [removeAll].
-   */
-  bool remove(Object value);
-
-  /**
-   * Add all classes specified in [iterable] to element.
-   *
-   * [add] and [addAll] are the Dart equivalent of jQuery's
-   * [addClass](http://api.jquery.com/addClass/).
-   *
-   * Each element of [iterable] must be a valid 'token' representing a single
-   * class, i.e. a non-empty string containing no whitespace.
-   */
-  void addAll(Iterable<String> iterable);
-
-  /**
-   * Remove all classes specified in [iterable] from element.
-   *
-   * [remove] and [removeAll] are the Dart equivalent of jQuery's
-   * [removeClass](http://api.jquery.com/removeClass/).
-   *
-   * Each element of [iterable] must be a valid 'token' representing a single
-   * class, i.e. a non-empty string containing no whitespace.
-   */
-  void removeAll(Iterable<Object> iterable);
-
-  /**
-   * Toggles all classes specified in [iterable] on element.
-   *
-   * Iterate through [iterable]'s items, and add it if it is not on it, or
-   * remove it if it is. This is the Dart equivalent of jQuery's
-   * [toggleClass](http://api.jquery.com/toggleClass/).
-   * If [shouldAdd] is true, then we always add all the classes in [iterable]
-   * element. If [shouldAdd] is false then we always remove all the classes in
-   * [iterable] from the element.
-   *
-   * Each element of [iterable] must be a valid 'token' representing a single
-   * class, i.e. a non-empty string containing no whitespace.
-   */
-  void toggleAll(Iterable<String> iterable, [bool shouldAdd]);
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/**
- * A rectangle representing all the content of the element in the
- * [box model](http://www.w3.org/TR/CSS2/box.html).
- */
-class _ContentCssRect extends CssRect {
-  _ContentCssRect(Element element) : super(element);
-
-  num get height =>
-      _element.offsetHeight + _addOrSubtractToBoxModel(_HEIGHT, _CONTENT);
-
-  num get width =>
-      _element.offsetWidth + _addOrSubtractToBoxModel(_WIDTH, _CONTENT);
-
-  /**
-   * Set the height to `newHeight`.
-   *
-   * newHeight can be either a [num] representing the height in pixels or a
-   * [Dimension] object. Values of newHeight that are less than zero are
-   * converted to effectively setting the height to 0. This is equivalent to the
-   * `height` function in jQuery and the calculated `height` CSS value,
-   * converted to a num in pixels.
-   */
-  set height(dynamic newHeight) {
-    if (newHeight is Dimension) {
-      Dimension newHeightAsDimension = newHeight;
-      if (newHeightAsDimension.value < 0) newHeight = new Dimension.px(0);
-      _element.style.height = newHeight.toString();
-    } else if (newHeight is num) {
-      if (newHeight < 0) newHeight = 0;
-      _element.style.height = '${newHeight}px';
-    } else {
-      throw new ArgumentError("newHeight is not a Dimension or num");
-    }
-  }
-
-  /**
-   * Set the current computed width in pixels of this element.
-   *
-   * newWidth can be either a [num] representing the width in pixels or a
-   * [Dimension] object. This is equivalent to the `width` function in jQuery
-   * and the calculated
-   * `width` CSS value, converted to a dimensionless num in pixels.
-   */
-  set width(dynamic newWidth) {
-    if (newWidth is Dimension) {
-      Dimension newWidthAsDimension = newWidth;
-      if (newWidthAsDimension.value < 0) newWidth = new Dimension.px(0);
-      _element.style.width = newWidth.toString();
-    } else if (newWidth is num) {
-      if (newWidth < 0) newWidth = 0;
-      _element.style.width = '${newWidth}px';
-    } else {
-      throw new ArgumentError("newWidth is not a Dimension or num");
-    }
-  }
-
-  num get left =>
-      _element.getBoundingClientRect().left -
-      _addOrSubtractToBoxModel(['left'], _CONTENT);
-  num get top =>
-      _element.getBoundingClientRect().top -
-      _addOrSubtractToBoxModel(['top'], _CONTENT);
-}
-
-/**
- * A list of element content rectangles in the
- * [box model](http://www.w3.org/TR/CSS2/box.html).
- */
-class _ContentCssListRect extends _ContentCssRect {
-  List<Element> _elementList;
-
-  _ContentCssListRect(List<Element> elementList) : super(elementList.first) {
-    _elementList = elementList;
-  }
-
-  /**
-   * Set the height to `newHeight`.
-   *
-   * Values of newHeight that are less than zero are converted to effectively
-   * setting the height to 0. This is equivalent to the `height`
-   * function in jQuery and the calculated `height` CSS value, converted to a
-   * num in pixels.
-   */
-  set height(newHeight) {
-    _elementList.forEach((e) => e.contentEdge.height = newHeight);
-  }
-
-  /**
-   * Set the current computed width in pixels of this element.
-   *
-   * This is equivalent to the `width` function in jQuery and the calculated
-   * `width` CSS value, converted to a dimensionless num in pixels.
-   */
-  set width(newWidth) {
-    _elementList.forEach((e) => e.contentEdge.width = newWidth);
-  }
-}
-
-/**
- * A rectangle representing the dimensions of the space occupied by the
- * element's content + padding in the
- * [box model](http://www.w3.org/TR/CSS2/box.html).
- */
-class _PaddingCssRect extends CssRect {
-  _PaddingCssRect(element) : super(element);
-  num get height =>
-      _element.offsetHeight + _addOrSubtractToBoxModel(_HEIGHT, _PADDING);
-  num get width =>
-      _element.offsetWidth + _addOrSubtractToBoxModel(_WIDTH, _PADDING);
-
-  num get left =>
-      _element.getBoundingClientRect().left -
-      _addOrSubtractToBoxModel(['left'], _PADDING);
-  num get top =>
-      _element.getBoundingClientRect().top -
-      _addOrSubtractToBoxModel(['top'], _PADDING);
-}
-
-/**
- * A rectangle representing the dimensions of the space occupied by the
- * element's content + padding + border in the
- * [box model](http://www.w3.org/TR/CSS2/box.html).
- */
-class _BorderCssRect extends CssRect {
-  _BorderCssRect(element) : super(element);
-  num get height => _element.offsetHeight;
-  num get width => _element.offsetWidth;
-
-  num get left => _element.getBoundingClientRect().left;
-  num get top => _element.getBoundingClientRect().top;
-}
-
-/**
- * A rectangle representing the dimensions of the space occupied by the
- * element's content + padding + border + margin in the
- * [box model](http://www.w3.org/TR/CSS2/box.html).
- */
-class _MarginCssRect extends CssRect {
-  _MarginCssRect(element) : super(element);
-  num get height =>
-      _element.offsetHeight + _addOrSubtractToBoxModel(_HEIGHT, _MARGIN);
-  num get width =>
-      _element.offsetWidth + _addOrSubtractToBoxModel(_WIDTH, _MARGIN);
-
-  num get left =>
-      _element.getBoundingClientRect().left -
-      _addOrSubtractToBoxModel(['left'], _MARGIN);
-  num get top =>
-      _element.getBoundingClientRect().top -
-      _addOrSubtractToBoxModel(['top'], _MARGIN);
-}
-
-/**
- * A class for representing CSS dimensions.
- *
- * In contrast to the more general purpose [Rectangle] class, this class's
- * values are mutable, so one can change the height of an element
- * programmatically.
- *
- * _Important_ _note_: use of these methods will perform CSS calculations that
- * can trigger a browser reflow. Therefore, use of these properties _during_ an
- * animation frame is discouraged. See also:
- * [Browser Reflow](https://developers.google.com/speed/articles/reflow)
- */
-abstract class CssRect implements Rectangle<num> {
-  Element _element;
-
-  CssRect(this._element);
-
-  num get left;
-
-  num get top;
-
-  /**
-   * The height of this rectangle.
-   *
-   * This is equivalent to the `height` function in jQuery and the calculated
-   * `height` CSS value, converted to a dimensionless num in pixels. Unlike
-   * [getBoundingClientRect], `height` will return the same numerical width if
-   * the element is hidden or not.
-   */
-  num get height;
-
-  /**
-   * The width of this rectangle.
-   *
-   * This is equivalent to the `width` function in jQuery and the calculated
-   * `width` CSS value, converted to a dimensionless num in pixels. Unlike
-   * [getBoundingClientRect], `width` will return the same numerical width if
-   * the element is hidden or not.
-   */
-  num get width;
-
-  /**
-   * Set the height to `newHeight`.
-   *
-   * newHeight can be either a [num] representing the height in pixels or a
-   * [Dimension] object. Values of newHeight that are less than zero are
-   * converted to effectively setting the height to 0. This is equivalent to the
-   * `height` function in jQuery and the calculated `height` CSS value,
-   * converted to a num in pixels.
-   *
-   * Note that only the content height can actually be set via this method.
-   */
-  set height(dynamic newHeight) {
-    throw new UnsupportedError("Can only set height for content rect.");
-  }
-
-  /**
-   * Set the current computed width in pixels of this element.
-   *
-   * newWidth can be either a [num] representing the width in pixels or a
-   * [Dimension] object. This is equivalent to the `width` function in jQuery
-   * and the calculated
-   * `width` CSS value, converted to a dimensionless num in pixels.
-   *
-   * Note that only the content width can be set via this method.
-   */
-  set width(dynamic newWidth) {
-    throw new UnsupportedError("Can only set width for content rect.");
-  }
-
-  /**
-   * Return a value that is used to modify the initial height or width
-   * measurement of an element. Depending on the value (ideally an enum) passed
-   * to augmentingMeasurement, we may need to add or subtract margin, padding,
-   * or border values, depending on the measurement we're trying to obtain.
-   */
-  num _addOrSubtractToBoxModel(
-      List<String> dimensions, String augmentingMeasurement) {
-    // getComputedStyle always returns pixel values (hence, computed), so we're
-    // always dealing with pixels in this method.
-    var styles = _element.getComputedStyle();
-
-    var val = 0;
-
-    for (String measurement in dimensions) {
-      // The border-box and default box model both exclude margin in the regular
-      // height/width calculation, so add it if we want it for this measurement.
-      if (augmentingMeasurement == _MARGIN) {
-        val += new Dimension.css(
-                styles.getPropertyValue('$augmentingMeasurement-$measurement'))
-            .value;
-      }
-
-      // The border-box includes padding and border, so remove it if we want
-      // just the content itself.
-      if (augmentingMeasurement == _CONTENT) {
-        val -= new Dimension.css(
-                styles.getPropertyValue('${_PADDING}-$measurement'))
-            .value;
-      }
-
-      // At this point, we don't wan't to augment with border or margin,
-      // so remove border.
-      if (augmentingMeasurement != _MARGIN) {
-        val -= new Dimension.css(
-                styles.getPropertyValue('border-${measurement}-width'))
-            .value;
-      }
-    }
-    return val;
-  }
-
-  // TODO(jacobr): these methods are duplicated from _RectangleBase in dart:math
-  // Ideally we would provide a RectangleMixin class that provides this implementation.
-  // In an ideal world we would exp
-  /** The x-coordinate of the right edge. */
-  num get right => left + width;
-  /** The y-coordinate of the bottom edge. */
-  num get bottom => top + height;
-
-  String toString() {
-    return 'Rectangle ($left, $top) $width x $height';
-  }
-
-  bool operator ==(other) {
-    if (other is! Rectangle) return false;
-    return left == other.left &&
-        top == other.top &&
-        right == other.right &&
-        bottom == other.bottom;
-  }
-
-  int get hashCode => _JenkinsSmiHash.hash4(
-      left.hashCode, top.hashCode, right.hashCode, bottom.hashCode);
-
-  /**
-   * Computes the intersection of `this` and [other].
-   *
-   * The intersection of two axis-aligned rectangles, if any, is always another
-   * axis-aligned rectangle.
-   *
-   * Returns the intersection of this and `other`, or `null` if they don't
-   * intersect.
-   */
-  Rectangle<num> intersection(Rectangle<num> other) {
-    var x0 = max(left, other.left);
-    var x1 = min(left + width, other.left + other.width);
-
-    if (x0 <= x1) {
-      var y0 = max(top, other.top);
-      var y1 = min(top + height, other.top + other.height);
-
-      if (y0 <= y1) {
-        return new Rectangle<num>(x0, y0, x1 - x0, y1 - y0);
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Returns true if `this` intersects [other].
-   */
-  bool intersects(Rectangle<num> other) {
-    return (left <= other.left + other.width &&
-        other.left <= left + width &&
-        top <= other.top + other.height &&
-        other.top <= top + height);
-  }
-
-  /**
-   * Returns a new rectangle which completely contains `this` and [other].
-   */
-  Rectangle<num> boundingBox(Rectangle<num> other) {
-    var right = max(this.left + this.width, other.left + other.width);
-    var bottom = max(this.top + this.height, other.top + other.height);
-
-    var left = min(this.left, other.left);
-    var top = min(this.top, other.top);
-
-    return new Rectangle<num>(left, top, right - left, bottom - top);
-  }
-
-  /**
-   * Tests whether `this` entirely contains [another].
-   */
-  bool containsRectangle(Rectangle<num> another) {
-    return left <= another.left &&
-        left + width >= another.left + another.width &&
-        top <= another.top &&
-        top + height >= another.top + another.height;
-  }
-
-  /**
-   * Tests whether [another] is inside or along the edges of `this`.
-   */
-  bool containsPoint(Point<num> another) {
-    return another.x >= left &&
-        another.x <= left + width &&
-        another.y >= top &&
-        another.y <= top + height;
-  }
-
-  Point<num> get topLeft => new Point<num>(this.left, this.top);
-  Point<num> get topRight => new Point<num>(this.left + this.width, this.top);
-  Point<num> get bottomRight =>
-      new Point<num>(this.left + this.width, this.top + this.height);
-  Point<num> get bottomLeft =>
-      new Point<num>(this.left, this.top + this.height);
-}
-
-final _HEIGHT = ['top', 'bottom'];
-final _WIDTH = ['right', 'left'];
-final _CONTENT = 'content';
-final _PADDING = 'padding';
-final _MARGIN = 'margin';
-// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/**
- * A set (union) of the CSS classes that are present in a set of elements.
- * Implemented separately from _ElementCssClassSet for performance.
- */
-class _MultiElementCssClassSet extends CssClassSetImpl {
-  final Iterable<Element> _elementIterable;
-
-  // TODO(sra): Perhaps we should store the DomTokenList instead.
-  final List<CssClassSetImpl> _sets;
-
-  factory _MultiElementCssClassSet(Iterable<Element> elements) {
-    return new _MultiElementCssClassSet._(
-        elements, elements.map((Element e) => e.classes).toList());
-  }
-
-  _MultiElementCssClassSet._(this._elementIterable, this._sets);
-
-  Set<String> readClasses() {
-    var s = new LinkedHashSet<String>();
-    _sets.forEach((CssClassSetImpl e) => s.addAll(e.readClasses()));
-    return s;
-  }
-
-  void writeClasses(Set<String> s) {
-    var classes = s.join(' ');
-    for (Element e in _elementIterable) {
-      e.className = classes;
-    }
-  }
-
-  /**
-   * Helper method used to modify the set of css classes on this element.
-   *
-   *   f - callback with:
-   *   s - a Set of all the css class name currently on this element.
-   *
-   *   After f returns, the modified set is written to the
-   *       className property of this element.
-   */
-  modify(f(Set<String> s)) {
-    _sets.forEach((CssClassSetImpl e) => e.modify(f));
-  }
-
-  /**
-   * Adds the class [value] to the element if it is not on it, removes it if it
-   * is.
-   *
-   * TODO(sra): It seems wrong to collect a 'changed' flag like this when the
-   * underlying toggle returns an 'is set' flag.
-   */
-  bool toggle(String value, [bool shouldAdd]) => _sets.fold(
-      false,
-      (bool changed, CssClassSetImpl e) =>
-          e.toggle(value, shouldAdd) || changed);
-
-  /**
-   * Remove the class [value] from element, and return true on successful
-   * removal.
-   *
-   * This is the Dart equivalent of jQuery's
-   * [removeClass](http://api.jquery.com/removeClass/).
-   */
-  bool remove(Object value) => _sets.fold(
-      false, (bool changed, CssClassSetImpl e) => e.remove(value) || changed);
-}
-
-class _ElementCssClassSet extends CssClassSetImpl {
-  final Element _element;
-
-  _ElementCssClassSet(this._element);
-
-  Set<String> readClasses() {
-    var s = new LinkedHashSet<String>();
-    var classname = _element.className;
-
-    for (String name in classname.split(' ')) {
-      String trimmed = name.trim();
-      if (!trimmed.isEmpty) {
-        s.add(trimmed);
-      }
-    }
-    return s;
-  }
-
-  void writeClasses(Set<String> s) {
-    _element.className = s.join(' ');
-  }
-
-  int get length => _classListLength(_classListOf(_element));
-  bool get isEmpty => length == 0;
-  bool get isNotEmpty => length != 0;
-
-  void clear() {
-    _element.className = '';
-  }
-
-  bool contains(Object value) {
-    return _contains(_element, value);
-  }
-
-  bool add(String value) {
-    return _add(_element, value);
-  }
-
-  bool remove(Object value) {
-    return value is String && _remove(_element, value);
-  }
-
-  bool toggle(String value, [bool shouldAdd]) {
-    return _toggle(_element, value, shouldAdd);
-  }
-
-  void addAll(Iterable<String> iterable) {
-    _addAll(_element, iterable);
-  }
-
-  void removeAll(Iterable<Object> iterable) {
-    _removeAll(_element, iterable);
-  }
-
-  void retainAll(Iterable<Object> iterable) {
-    _removeWhere(_element, iterable.toSet().contains, false);
-  }
-
-  void removeWhere(bool test(String name)) {
-    _removeWhere(_element, test, true);
-  }
-
-  void retainWhere(bool test(String name)) {
-    _removeWhere(_element, test, false);
-  }
-
-  static bool _contains(Element _element, Object value) {
-    return value is String && _classListContains(_classListOf(_element), value);
-  }
-
-  @ForceInline()
-  static bool _add(Element _element, String value) {
-    DomTokenList list = _classListOf(_element);
-    // Compute returned result independently of action upon the set.
-    bool added = !_classListContainsBeforeAddOrRemove(list, value);
-    _classListAdd(list, value);
-    return added;
-  }
-
-  @ForceInline()
-  static bool _remove(Element _element, String value) {
-    DomTokenList list = _classListOf(_element);
-    bool removed = _classListContainsBeforeAddOrRemove(list, value);
-    _classListRemove(list, value);
-    return removed;
-  }
-
-  static bool _toggle(Element _element, String value, bool shouldAdd) {
-    // There is no value that can be passed as the second argument of
-    // DomTokenList.toggle that behaves the same as passing one argument.
-    // `null` is seen as false, meaning 'remove'.
-    return shouldAdd == null
-        ? _toggleDefault(_element, value)
-        : _toggleOnOff(_element, value, shouldAdd);
-  }
-
-  static bool _toggleDefault(Element _element, String value) {
-    DomTokenList list = _classListOf(_element);
-    return _classListToggle1(list, value);
-  }
-
-  static bool _toggleOnOff(Element _element, String value, bool shouldAdd) {
-    DomTokenList list = _classListOf(_element);
-    // IE's toggle does not take a second parameter. We would prefer:
-    //
-    //    return _classListToggle2(list, value, shouldAdd);
-    //
-    if (shouldAdd) {
-      _classListAdd(list, value);
-      return true;
-    } else {
-      _classListRemove(list, value);
-      return false;
-    }
-  }
-
-  static void _addAll(Element _element, Iterable<String> iterable) {
-    DomTokenList list = _classListOf(_element);
-    for (String value in iterable) {
-      _classListAdd(list, value);
-    }
-  }
-
-  static void _removeAll(Element _element, Iterable<String> iterable) {
-    DomTokenList list = _classListOf(_element);
-    for (var value in iterable) {
-      _classListRemove(list, value);
-    }
-  }
-
-  static void _removeWhere(
-      Element _element, bool test(String name), bool doRemove) {
-    DomTokenList list = _classListOf(_element);
-    int i = 0;
-    while (i < _classListLength(list)) {
-      String item = list.item(i);
-      if (doRemove == test(item)) {
-        _classListRemove(list, item);
-      } else {
-        ++i;
-      }
-    }
-  }
-
-  // A collection of static methods for DomTokenList. These methods are a
-  // work-around for the lack of annotations to express the full behaviour of
-  // the DomTokenList methods.
-
-  static DomTokenList _classListOf(Element e) => JS(
-      'returns:DomTokenList;creates:DomTokenList;effects:none;depends:all;',
-      '#.classList',
-      e);
-
-  static int _classListLength(DomTokenList list) =>
-      JS('returns:JSUInt31;effects:none;depends:all;', '#.length', list);
-
-  static bool _classListContains(DomTokenList list, String value) =>
-      JS('returns:bool;effects:none;depends:all', '#.contains(#)', list, value);
-
-  static bool _classListContainsBeforeAddOrRemove(
-          DomTokenList list, String value) =>
-      // 'throws:never' is a lie, since 'contains' will throw on an illegal
-      // token.  However, we always call this function immediately prior to
-      // add/remove/toggle with the same token.  Often the result of 'contains'
-      // is unused and the lie makes it possible for the 'contains' instruction
-      // to be removed.
-      JS('returns:bool;effects:none;depends:all;throws:null(1)',
-          '#.contains(#)', list, value);
-
-  static void _classListAdd(DomTokenList list, String value) {
-    // list.add(value);
-    JS('', '#.add(#)', list, value);
-  }
-
-  static void _classListRemove(DomTokenList list, String value) {
-    // list.remove(value);
-    JS('', '#.remove(#)', list, value);
-  }
-
-  static bool _classListToggle1(DomTokenList list, String value) {
-    return JS('bool', '#.toggle(#)', list, value);
-  }
-
-  static bool _classListToggle2(
-      DomTokenList list, String value, bool shouldAdd) {
-    return JS('bool', '#.toggle(#, #)', list, value, shouldAdd);
-  }
-}
-
-/**
- * Class representing a
- * [length measurement](https://developer.mozilla.org/en-US/docs/Web/CSS/length)
- * in CSS.
- */
-@Experimental()
-class Dimension {
-  num _value;
-  String _unit;
-
-  /** Set this CSS Dimension to a percentage `value`. */
-  Dimension.percent(this._value) : _unit = '%';
-
-  /** Set this CSS Dimension to a pixel `value`. */
-  Dimension.px(this._value) : _unit = 'px';
-
-  /** Set this CSS Dimension to a pica `value`. */
-  Dimension.pc(this._value) : _unit = 'pc';
-
-  /** Set this CSS Dimension to a point `value`. */
-  Dimension.pt(this._value) : _unit = 'pt';
-
-  /** Set this CSS Dimension to an inch `value`. */
-  Dimension.inch(this._value) : _unit = 'in';
-
-  /** Set this CSS Dimension to a centimeter `value`. */
-  Dimension.cm(this._value) : _unit = 'cm';
-
-  /** Set this CSS Dimension to a millimeter `value`. */
-  Dimension.mm(this._value) : _unit = 'mm';
-
-  /**
-   * Set this CSS Dimension to the specified number of ems.
-   *
-   * 1em is equal to the current font size. (So 2ems is equal to double the font
-   * size). This is useful for producing website layouts that scale nicely with
-   * the user's desired font size.
-   */
-  Dimension.em(this._value) : _unit = 'em';
-
-  /**
-   * Set this CSS Dimension to the specified number of x-heights.
-   *
-   * One ex is equal to the x-height of a font's baseline to its mean line,
-   * generally the height of the letter "x" in the font, which is usually about
-   * half the font-size.
-   */
-  Dimension.ex(this._value) : _unit = 'ex';
-
-  /**
-   * Construct a Dimension object from the valid, simple CSS string `cssValue`
-   * that represents a distance measurement.
-   *
-   * This constructor is intended as a convenience method for working with
-   * simplistic CSS length measurements. Non-numeric values such as `auto` or
-   * `inherit` or invalid CSS will cause this constructor to throw a
-   * FormatError.
-   */
-  Dimension.css(String cssValue) {
-    if (cssValue == '') cssValue = '0px';
-    if (cssValue.endsWith('%')) {
-      _unit = '%';
-    } else {
-      _unit = cssValue.substring(cssValue.length - 2);
-    }
-    if (cssValue.contains('.')) {
-      _value =
-          double.parse(cssValue.substring(0, cssValue.length - _unit.length));
-    } else {
-      _value = int.parse(cssValue.substring(0, cssValue.length - _unit.length));
-    }
-  }
-
-  /** Print out the CSS String representation of this value. */
-  String toString() {
-    return '${_value}${_unit}';
-  }
-
-  /** Return a unitless, numerical value of this CSS value. */
-  num get value => this._value;
-}
-// Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-typedef EventListener(Event event);
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/**
- * A factory to expose DOM events as Streams.
- */
-class EventStreamProvider<T extends Event> {
-  final String _eventType;
-
-  const EventStreamProvider(this._eventType);
-
-  /**
-   * Gets a [Stream] for this event type, on the specified target.
-   *
-   * This will always return a broadcast stream so multiple listeners can be
-   * used simultaneously.
-   *
-   * This may be used to capture DOM events:
-   *
-   *     Element.keyDownEvent.forTarget(element, useCapture: true).listen(...);
-   *
-   *     // Alternate method:
-   *     Element.keyDownEvent.forTarget(element).capture(...);
-   *
-   * Or for listening to an event which will bubble through the DOM tree:
-   *
-   *     MediaElement.pauseEvent.forTarget(document.body).listen(...);
-   *
-   * See also:
-   *
-   * [addEventListener](http://docs.webplatform.org/wiki/dom/methods/addEventListener)
-   */
-  Stream<T> forTarget(EventTarget e, {bool useCapture: false}) =>
-      new _EventStream<T>(e, _eventType, useCapture);
-
-  /**
-   * Gets an [ElementEventStream] for this event type, on the specified element.
-   *
-   * This will always return a broadcast stream so multiple listeners can be
-   * used simultaneously.
-   *
-   * This may be used to capture DOM events:
-   *
-   *     Element.keyDownEvent.forElement(element, useCapture: true).listen(...);
-   *
-   *     // Alternate method:
-   *     Element.keyDownEvent.forElement(element).capture(...);
-   *
-   * Or for listening to an event which will bubble through the DOM tree:
-   *
-   *     MediaElement.pauseEvent.forElement(document.body).listen(...);
-   *
-   * See also:
-   *
-   * [addEventListener](http://docs.webplatform.org/wiki/dom/methods/addEventListener)
-   */
-  ElementStream<T> forElement(Element e, {bool useCapture: false}) {
-    return new _ElementEventStreamImpl<T>(e, _eventType, useCapture);
-  }
-
-  /**
-   * Gets an [ElementEventStream] for this event type, on the list of elements.
-   *
-   * This will always return a broadcast stream so multiple listeners can be
-   * used simultaneously.
-   *
-   * This may be used to capture DOM events:
-   *
-   *     Element.keyDownEvent._forElementList(element, useCapture: true).listen(...);
-   *
-   * See also:
-   *
-   * [addEventListener](http://docs.webplatform.org/wiki/dom/methods/addEventListener)
-   */
-  ElementStream<T> _forElementList(ElementList e, {bool useCapture: false}) {
-    return new _ElementListEventStreamImpl<T>(e, _eventType, useCapture);
-  }
-
-  /**
-   * Gets the type of the event which this would listen for on the specified
-   * event target.
-   *
-   * The target is necessary because some browsers may use different event names
-   * for the same purpose and the target allows differentiating browser support.
-   */
-  String getEventType(EventTarget target) {
-    return _eventType;
-  }
-}
-
-/** A specialized Stream available to [Element]s to enable event delegation. */
-abstract class ElementStream<T extends Event> implements Stream<T> {
-  /**
-   * Return a stream that only fires when the particular event fires for
-   * elements matching the specified CSS selector.
-   *
-   * This is the Dart equivalent to jQuery's
-   * [delegate](http://api.jquery.com/delegate/).
-   */
-  Stream<T> matches(String selector);
-
-  /**
-   * Adds a capturing subscription to this stream.
-   *
-   * If the target of the event is a descendant of the element from which this
-   * stream derives then [onData] is called before the event propagates down to
-   * the target. This is the opposite of bubbling behavior, where the event
-   * is first processed for the event target and then bubbles upward.
-   *
-   * ## Other resources
-   *
-   * * [Event Capture](http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-flow-capture)
-   *   from the W3C DOM Events specification.
-   */
-  StreamSubscription<T> capture(void onData(T event));
-}
-
-/**
- * Adapter for exposing DOM events as Dart streams.
- */
-class _EventStream<T extends Event> extends Stream<T> {
-  final EventTarget _target;
-  final String _eventType;
-  final bool _useCapture;
-
-  _EventStream(this._target, this._eventType, this._useCapture);
-
-  // DOM events are inherently multi-subscribers.
-  Stream<T> asBroadcastStream(
-          {void onListen(StreamSubscription<T> subscription),
-          void onCancel(StreamSubscription<T> subscription)}) =>
-      this;
-  bool get isBroadcast => true;
-
-  StreamSubscription<T> listen(void onData(T event),
-      {Function onError, void onDone(), bool cancelOnError}) {
-    return new _EventStreamSubscription<T>(
-        this._target, this._eventType, onData, this._useCapture);
-  }
-}
-
-bool _matchesWithAncestors(Event event, String selector) {
-  var target = event.target;
-  return target is Element ? target.matchesWithAncestors(selector) : false;
-}
-
-/**
- * Adapter for exposing DOM Element events as streams, while also allowing
- * event delegation.
- */
-class _ElementEventStreamImpl<T extends Event> extends _EventStream<T>
-    implements ElementStream<T> {
-  _ElementEventStreamImpl(target, eventType, useCapture)
-      : super(target, eventType, useCapture);
-
-  Stream<T> matches(String selector) =>
-      this.where((event) => _matchesWithAncestors(event, selector)).map((e) {
-        e._selector = selector;
-        return e;
-      });
-
-  StreamSubscription<T> capture(void onData(T event)) =>
-      new _EventStreamSubscription<T>(
-          this._target, this._eventType, onData, true);
-}
-
-/**
- * Adapter for exposing events on a collection of DOM Elements as streams,
- * while also allowing event delegation.
- */
-class _ElementListEventStreamImpl<T extends Event> extends Stream<T>
-    implements ElementStream<T> {
-  final Iterable<Element> _targetList;
-  final bool _useCapture;
-  final String _eventType;
-
-  _ElementListEventStreamImpl(
-      this._targetList, this._eventType, this._useCapture);
-
-  Stream<T> matches(String selector) =>
-      this.where((event) => _matchesWithAncestors(event, selector)).map((e) {
-        e._selector = selector;
-        return e;
-      });
-
-  // Delegate all regular Stream behavior to a wrapped Stream.
-  StreamSubscription<T> listen(void onData(T event),
-      {Function onError, void onDone(), bool cancelOnError}) {
-    var pool = new _StreamPool<T>.broadcast();
-    for (var target in _targetList) {
-      pool.add(new _EventStream<T>(target, _eventType, _useCapture));
-    }
-    return pool.stream.listen(onData,
-        onError: onError, onDone: onDone, cancelOnError: cancelOnError);
-  }
-
-  StreamSubscription<T> capture(void onData(T event)) {
-    var pool = new _StreamPool<T>.broadcast();
-    for (var target in _targetList) {
-      pool.add(new _EventStream<T>(target, _eventType, true));
-    }
-    return pool.stream.listen(onData);
-  }
-
-  Stream<T> asBroadcastStream(
-          {void onListen(StreamSubscription<T> subscription),
-          void onCancel(StreamSubscription<T> subscription)}) =>
-      this;
-  bool get isBroadcast => true;
-}
-
-// We would like this to just be EventListener<T> but that typdef cannot
-// use generics until dartbug/26276 is fixed.
-typedef _EventListener<T extends Event>(T event);
-
-class _EventStreamSubscription<T extends Event> extends StreamSubscription<T> {
-  int _pauseCount = 0;
-  EventTarget _target;
-  final String _eventType;
-  EventListener _onData;
-  final bool _useCapture;
-
-  // TODO(leafp): It would be better to write this as
-  // _onData = onData == null ? null :
-  //   onData is void Function(Event)
-  //     ? _wrapZone<Event>(onData)
-  //     : _wrapZone<Event>((e) => onData(e as T))
-  // In order to support existing tests which pass the wrong type of events but
-  // use a more general listener, without causing as much slowdown for things
-  // which are typed correctly.  But this currently runs afoul of restrictions
-  // on is checks for compatibility with the VM.
-  _EventStreamSubscription(
-      this._target, this._eventType, void onData(T event), this._useCapture)
-      : _onData = onData == null
-            ? null
-            : _wrapZone<Event>((e) => (onData as dynamic)(e)) {
-    _tryResume();
-  }
-
-  Future cancel() {
-    if (_canceled) return null;
-
-    _unlisten();
-    // Clear out the target to indicate this is complete.
-    _target = null;
-    _onData = null;
-    return null;
-  }
-
-  bool get _canceled => _target == null;
-
-  void onData(void handleData(T event)) {
-    if (_canceled) {
-      throw new StateError("Subscription has been canceled.");
-    }
-    // Remove current event listener.
-    _unlisten();
-    _onData = _wrapZone<Event>(handleData);
-    _tryResume();
-  }
-
-  /// Has no effect.
-  void onError(Function handleError) {}
-
-  /// Has no effect.
-  void onDone(void handleDone()) {}
-
-  void pause([Future resumeSignal]) {
-    if (_canceled) return;
-    ++_pauseCount;
-    _unlisten();
-
-    if (resumeSignal != null) {
-      resumeSignal.whenComplete(resume);
-    }
-  }
-
-  bool get isPaused => _pauseCount > 0;
-
-  void resume() {
-    if (_canceled || !isPaused) return;
-    --_pauseCount;
-    _tryResume();
-  }
-
-  void _tryResume() {
-    if (_onData != null && !isPaused) {
-      _target.addEventListener(_eventType, _onData, _useCapture);
-    }
-  }
-
-  void _unlisten() {
-    if (_onData != null) {
-      _target.removeEventListener(_eventType, _onData, _useCapture);
-    }
-  }
-
-  Future<E> asFuture<E>([E futureValue]) {
-    // We just need a future that will never succeed or fail.
-    var completer = new Completer<E>();
-    return completer.future;
-  }
-}
-
-/**
- * A stream of custom events, which enables the user to "fire" (add) their own
- * custom events to a stream.
- */
-abstract class CustomStream<T extends Event> implements Stream<T> {
-  /**
-   * Add the following custom event to the stream for dispatching to interested
-   * listeners.
-   */
-  void add(T event);
-}
-
-class _CustomEventStreamImpl<T extends Event> extends Stream<T>
-    implements CustomStream<T> {
-  StreamController<T> _streamController;
-  /** The type of event this stream is providing (e.g. "keydown"). */
-  String _type;
-
-  _CustomEventStreamImpl(String type) {
-    _type = type;
-    _streamController = new StreamController.broadcast(sync: true);
-  }
-
-  // Delegate all regular Stream behavior to our wrapped Stream.
-  StreamSubscription<T> listen(void onData(T event),
-      {Function onError, void onDone(), bool cancelOnError}) {
-    return _streamController.stream.listen(onData,
-        onError: onError, onDone: onDone, cancelOnError: cancelOnError);
-  }
-
-  Stream<T> asBroadcastStream(
-          {void onListen(StreamSubscription<T> subscription),
-          void onCancel(StreamSubscription<T> subscription)}) =>
-      _streamController.stream;
-
-  bool get isBroadcast => true;
-
-  void add(T event) {
-    if (event.type == _type) _streamController.add(event);
-  }
-}
-
-class _CustomKeyEventStreamImpl extends _CustomEventStreamImpl<KeyEvent>
-    implements CustomStream<KeyEvent> {
-  _CustomKeyEventStreamImpl(String type) : super(type);
-
-  void add(KeyEvent event) {
-    if (event.type == _type) {
-      event.currentTarget.dispatchEvent(event._parent);
-      _streamController.add(event);
-    }
-  }
-}
-
-/**
- * A pool of streams whose events are unified and emitted through a central
- * stream.
- */
-// TODO (efortuna): Remove this when Issue 12218 is addressed.
-class _StreamPool<T> {
-  StreamController<T> _controller;
-
-  /// Subscriptions to the streams that make up the pool.
-  var _subscriptions = new Map<Stream<T>, StreamSubscription<T>>();
-
-  /**
-   * Creates a new stream pool where [stream] can be listened to more than
-   * once.
-   *
-   * Any events from buffered streams in the pool will be emitted immediately,
-   * regardless of whether [stream] has any subscribers.
-   */
-  _StreamPool.broadcast() {
-    _controller =
-        new StreamController<T>.broadcast(sync: true, onCancel: close);
-  }
-
-  /**
-   * The stream through which all events from streams in the pool are emitted.
-   */
-  Stream<T> get stream => _controller.stream;
-
-  /**
-   * Adds [stream] as a member of this pool.
-   *
-   * Any events from [stream] will be emitted through [this.stream]. If
-   * [stream] is sync, they'll be emitted synchronously; if [stream] is async,
-   * they'll be emitted asynchronously.
-   */
-  void add(Stream<T> stream) {
-    if (_subscriptions.containsKey(stream)) return;
-    _subscriptions[stream] = stream.listen(_controller.add,
-        onError: _controller.addError, onDone: () => remove(stream));
-  }
-
-  /** Removes [stream] as a member of this pool. */
-  void remove(Stream<T> stream) {
-    var subscription = _subscriptions.remove(stream);
-    if (subscription != null) subscription.cancel();
-  }
-
-  /** Removes all streams from this pool and closes [stream]. */
-  void close() {
-    for (var subscription in _subscriptions.values) {
-      subscription.cancel();
-    }
-    _subscriptions.clear();
-    _controller.close();
-  }
-}
-
-/**
- * A factory to expose DOM events as streams, where the DOM event name has to
- * be determined on the fly (for example, mouse wheel events).
- */
-class _CustomEventStreamProvider<T extends Event>
-    implements EventStreamProvider<T> {
-  final _eventTypeGetter;
-  const _CustomEventStreamProvider(this._eventTypeGetter);
-
-  Stream<T> forTarget(EventTarget e, {bool useCapture: false}) {
-    return new _EventStream<T>(e, _eventTypeGetter(e), useCapture);
-  }
-
-  ElementStream<T> forElement(Element e, {bool useCapture: false}) {
-    return new _ElementEventStreamImpl<T>(e, _eventTypeGetter(e), useCapture);
-  }
-
-  ElementStream<T> _forElementList(ElementList e, {bool useCapture: false}) {
-    return new _ElementListEventStreamImpl<T>(
-        e, _eventTypeGetter(e), useCapture);
-  }
-
-  String getEventType(EventTarget target) {
-    return _eventTypeGetter(target);
-  }
-
-  String get _eventType =>
-      throw new UnsupportedError('Access type through getEventType method.');
-}
-// DO NOT EDIT- this file is generated from running tool/generator.sh.
-
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/**
- * A Dart DOM validator generated from Caja whitelists.
- *
- * This contains a whitelist of known HTML tagNames and attributes and will only
- * accept known good values.
- *
- * See also:
- *
- * * <https://code.google.com/p/google-caja/wiki/CajaWhitelists>
- */
-class _Html5NodeValidator implements NodeValidator {
-  static final Set<String> _allowedElements = new Set.from([
-    'A',
-    'ABBR',
-    'ACRONYM',
-    'ADDRESS',
-    'AREA',
-    'ARTICLE',
-    'ASIDE',
-    'AUDIO',
-    'B',
-    'BDI',
-    'BDO',
-    'BIG',
-    'BLOCKQUOTE',
-    'BR',
-    'BUTTON',
-    'CANVAS',
-    'CAPTION',
-    'CENTER',
-    'CITE',
-    'CODE',
-    'COL',
-    'COLGROUP',
-    'COMMAND',
-    'DATA',
-    'DATALIST',
-    'DD',
-    'DEL',
-    'DETAILS',
-    'DFN',
-    'DIR',
-    'DIV',
-    'DL',
-    'DT',
-    'EM',
-    'FIELDSET',
-    'FIGCAPTION',
-    'FIGURE',
-    'FONT',
-    'FOOTER',
-    'FORM',
-    'H1',
-    'H2',
-    'H3',
-    'H4',
-    'H5',
-    'H6',
-    'HEADER',
-    'HGROUP',
-    'HR',
-    'I',
-    'IFRAME',
-    'IMG',
-    'INPUT',
-    'INS',
-    'KBD',
-    'LABEL',
-    'LEGEND',
-    'LI',
-    'MAP',
-    'MARK',
-    'MENU',
-    'METER',
-    'NAV',
-    'NOBR',
-    'OL',
-    'OPTGROUP',
-    'OPTION',
-    'OUTPUT',
-    'P',
-    'PRE',
-    'PROGRESS',
-    'Q',
-    'S',
-    'SAMP',
-    'SECTION',
-    'SELECT',
-    'SMALL',
-    'SOURCE',
-    'SPAN',
-    'STRIKE',
-    'STRONG',
-    'SUB',
-    'SUMMARY',
-    'SUP',
-    'TABLE',
-    'TBODY',
-    'TD',
-    'TEXTAREA',
-    'TFOOT',
-    'TH',
-    'THEAD',
-    'TIME',
-    'TR',
-    'TRACK',
-    'TT',
-    'U',
-    'UL',
-    'VAR',
-    'VIDEO',
-    'WBR',
-  ]);
-
-  static const _standardAttributes = const <String>[
-    '*::class',
-    '*::dir',
-    '*::draggable',
-    '*::hidden',
-    '*::id',
-    '*::inert',
-    '*::itemprop',
-    '*::itemref',
-    '*::itemscope',
-    '*::lang',
-    '*::spellcheck',
-    '*::title',
-    '*::translate',
-    'A::accesskey',
-    'A::coords',
-    'A::hreflang',
-    'A::name',
-    'A::shape',
-    'A::tabindex',
-    'A::target',
-    'A::type',
-    'AREA::accesskey',
-    'AREA::alt',
-    'AREA::coords',
-    'AREA::nohref',
-    'AREA::shape',
-    'AREA::tabindex',
-    'AREA::target',
-    'AUDIO::controls',
-    'AUDIO::loop',
-    'AUDIO::mediagroup',
-    'AUDIO::muted',
-    'AUDIO::preload',
-    'BDO::dir',
-    'BODY::alink',
-    'BODY::bgcolor',
-    'BODY::link',
-    'BODY::text',
-    'BODY::vlink',
-    'BR::clear',
-    'BUTTON::accesskey',
-    'BUTTON::disabled',
-    'BUTTON::name',
-    'BUTTON::tabindex',
-    'BUTTON::type',
-    'BUTTON::value',
-    'CANVAS::height',
-    'CANVAS::width',
-    'CAPTION::align',
-    'COL::align',
-    'COL::char',
-    'COL::charoff',
-    'COL::span',
-    'COL::valign',
-    'COL::width',
-    'COLGROUP::align',
-    'COLGROUP::char',
-    'COLGROUP::charoff',
-    'COLGROUP::span',
-    'COLGROUP::valign',
-    'COLGROUP::width',
-    'COMMAND::checked',
-    'COMMAND::command',
-    'COMMAND::disabled',
-    'COMMAND::label',
-    'COMMAND::radiogroup',
-    'COMMAND::type',
-    'DATA::value',
-    'DEL::datetime',
-    'DETAILS::open',
-    'DIR::compact',
-    'DIV::align',
-    'DL::compact',
-    'FIELDSET::disabled',
-    'FONT::color',
-    'FONT::face',
-    'FONT::size',
-    'FORM::accept',
-    'FORM::autocomplete',
-    'FORM::enctype',
-    'FORM::method',
-    'FORM::name',
-    'FORM::novalidate',
-    'FORM::target',
-    'FRAME::name',
-    'H1::align',
-    'H2::align',
-    'H3::align',
-    'H4::align',
-    'H5::align',
-    'H6::align',
-    'HR::align',
-    'HR::noshade',
-    'HR::size',
-    'HR::width',
-    'HTML::version',
-    'IFRAME::align',
-    'IFRAME::frameborder',
-    'IFRAME::height',
-    'IFRAME::marginheight',
-    'IFRAME::marginwidth',
-    'IFRAME::width',
-    'IMG::align',
-    'IMG::alt',
-    'IMG::border',
-    'IMG::height',
-    'IMG::hspace',
-    'IMG::ismap',
-    'IMG::name',
-    'IMG::usemap',
-    'IMG::vspace',
-    'IMG::width',
-    'INPUT::accept',
-    'INPUT::accesskey',
-    'INPUT::align',
-    'INPUT::alt',
-    'INPUT::autocomplete',
-    'INPUT::autofocus',
-    'INPUT::checked',
-    'INPUT::disabled',
-    'INPUT::inputmode',
-    'INPUT::ismap',
-    'INPUT::list',
-    'INPUT::max',
-    'INPUT::maxlength',
-    'INPUT::min',
-    'INPUT::multiple',
-    'INPUT::name',
-    'INPUT::placeholder',
-    'INPUT::readonly',
-    'INPUT::required',
-    'INPUT::size',
-    'INPUT::step',
-    'INPUT::tabindex',
-    'INPUT::type',
-    'INPUT::usemap',
-    'INPUT::value',
-    'INS::datetime',
-    'KEYGEN::disabled',
-    'KEYGEN::keytype',
-    'KEYGEN::name',
-    'LABEL::accesskey',
-    'LABEL::for',
-    'LEGEND::accesskey',
-    'LEGEND::align',
-    'LI::type',
-    'LI::value',
-    'LINK::sizes',
-    'MAP::name',
-    'MENU::compact',
-    'MENU::label',
-    'MENU::type',
-    'METER::high',
-    'METER::low',
-    'METER::max',
-    'METER::min',
-    'METER::value',
-    'OBJECT::typemustmatch',
-    'OL::compact',
-    'OL::reversed',
-    'OL::start',
-    'OL::type',
-    'OPTGROUP::disabled',
-    'OPTGROUP::label',
-    'OPTION::disabled',
-    'OPTION::label',
-    'OPTION::selected',
-    'OPTION::value',
-    'OUTPUT::for',
-    'OUTPUT::name',
-    'P::align',
-    'PRE::width',
-    'PROGRESS::max',
-    'PROGRESS::min',
-    'PROGRESS::value',
-    'SELECT::autocomplete',
-    'SELECT::disabled',
-    'SELECT::multiple',
-    'SELECT::name',
-    'SELECT::required',
-    'SELECT::size',
-    'SELECT::tabindex',
-    'SOURCE::type',
-    'TABLE::align',
-    'TABLE::bgcolor',
-    'TABLE::border',
-    'TABLE::cellpadding',
-    'TABLE::cellspacing',
-    'TABLE::frame',
-    'TABLE::rules',
-    'TABLE::summary',
-    'TABLE::width',
-    'TBODY::align',
-    'TBODY::char',
-    'TBODY::charoff',
-    'TBODY::valign',
-    'TD::abbr',
-    'TD::align',
-    'TD::axis',
-    'TD::bgcolor',
-    'TD::char',
-    'TD::charoff',
-    'TD::colspan',
-    'TD::headers',
-    'TD::height',
-    'TD::nowrap',
-    'TD::rowspan',
-    'TD::scope',
-    'TD::valign',
-    'TD::width',
-    'TEXTAREA::accesskey',
-    'TEXTAREA::autocomplete',
-    'TEXTAREA::cols',
-    'TEXTAREA::disabled',
-    'TEXTAREA::inputmode',
-    'TEXTAREA::name',
-    'TEXTAREA::placeholder',
-    'TEXTAREA::readonly',
-    'TEXTAREA::required',
-    'TEXTAREA::rows',
-    'TEXTAREA::tabindex',
-    'TEXTAREA::wrap',
-    'TFOOT::align',
-    'TFOOT::char',
-    'TFOOT::charoff',
-    'TFOOT::valign',
-    'TH::abbr',
-    'TH::align',
-    'TH::axis',
-    'TH::bgcolor',
-    'TH::char',
-    'TH::charoff',
-    'TH::colspan',
-    'TH::headers',
-    'TH::height',
-    'TH::nowrap',
-    'TH::rowspan',
-    'TH::scope',
-    'TH::valign',
-    'TH::width',
-    'THEAD::align',
-    'THEAD::char',
-    'THEAD::charoff',
-    'THEAD::valign',
-    'TR::align',
-    'TR::bgcolor',
-    'TR::char',
-    'TR::charoff',
-    'TR::valign',
-    'TRACK::default',
-    'TRACK::kind',
-    'TRACK::label',
-    'TRACK::srclang',
-    'UL::compact',
-    'UL::type',
-    'VIDEO::controls',
-    'VIDEO::height',
-    'VIDEO::loop',
-    'VIDEO::mediagroup',
-    'VIDEO::muted',
-    'VIDEO::preload',
-    'VIDEO::width',
-  ];
-
-  static const _uriAttributes = const <String>[
-    'A::href',
-    'AREA::href',
-    'BLOCKQUOTE::cite',
-    'BODY::background',
-    'COMMAND::icon',
-    'DEL::cite',
-    'FORM::action',
-    'IMG::src',
-    'INPUT::src',
-    'INS::cite',
-    'Q::cite',
-    'VIDEO::poster',
-  ];
-
-  final UriPolicy uriPolicy;
-
-  static final Map<String, Function> _attributeValidators = {};
-
-  /**
-   * All known URI attributes will be validated against the UriPolicy, if
-   * [uriPolicy] is null then a default UriPolicy will be used.
-   */
-  _Html5NodeValidator({UriPolicy uriPolicy})
-      : uriPolicy = uriPolicy != null ? uriPolicy : new UriPolicy() {
-    if (_attributeValidators.isEmpty) {
-      for (var attr in _standardAttributes) {
-        _attributeValidators[attr] = _standardAttributeValidator;
-      }
-
-      for (var attr in _uriAttributes) {
-        _attributeValidators[attr] = _uriAttributeValidator;
-      }
-    }
-  }
-
-  bool allowsElement(Element element) {
-    return _allowedElements.contains(Element._safeTagName(element));
-  }
-
-  bool allowsAttribute(Element element, String attributeName, String value) {
-    var tagName = Element._safeTagName(element);
-    var validator = _attributeValidators['$tagName::$attributeName'];
-    if (validator == null) {
-      validator = _attributeValidators['*::$attributeName'];
-    }
-    if (validator == null) {
-      return false;
-    }
-    return validator(element, attributeName, value, this);
-  }
-
-  static bool _standardAttributeValidator(Element element, String attributeName,
-      String value, _Html5NodeValidator context) {
-    return true;
-  }
-
-  static bool _uriAttributeValidator(Element element, String attributeName,
-      String value, _Html5NodeValidator context) {
-    return context.uriPolicy.allowsUri(value);
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-abstract class ImmutableListMixin<E> implements List<E> {
-  // From Iterable<$E>:
-  Iterator<E> get iterator {
-    // Note: NodeLists are not fixed size. And most probably length shouldn't
-    // be cached in both iterator _and_ forEach method. For now caching it
-    // for consistency.
-    return new FixedSizeListIterator<E>(this);
-  }
-
-  // From Collection<E>:
-  void add(E value) {
-    throw new UnsupportedError("Cannot add to immutable List.");
-  }
-
-  void addAll(Iterable<E> iterable) {
-    throw new UnsupportedError("Cannot add to immutable List.");
-  }
-
-  // From List<E>:
-  void sort([int compare(E a, E b)]) {
-    throw new UnsupportedError("Cannot sort immutable List.");
-  }
-
-  void shuffle([Random random]) {
-    throw new UnsupportedError("Cannot shuffle immutable List.");
-  }
-
-  void insert(int index, E element) {
-    throw new UnsupportedError("Cannot add to immutable List.");
-  }
-
-  void insertAll(int index, Iterable<E> iterable) {
-    throw new UnsupportedError("Cannot add to immutable List.");
-  }
-
-  void setAll(int index, Iterable<E> iterable) {
-    throw new UnsupportedError("Cannot modify an immutable List.");
-  }
-
-  E removeAt(int pos) {
-    throw new UnsupportedError("Cannot remove from immutable List.");
-  }
-
-  E removeLast() {
-    throw new UnsupportedError("Cannot remove from immutable List.");
-  }
-
-  bool remove(Object object) {
-    throw new UnsupportedError("Cannot remove from immutable List.");
-  }
-
-  void removeWhere(bool test(E element)) {
-    throw new UnsupportedError("Cannot remove from immutable List.");
-  }
-
-  void retainWhere(bool test(E element)) {
-    throw new UnsupportedError("Cannot remove from immutable List.");
-  }
-
-  void setRange(int start, int end, Iterable<E> iterable, [int skipCount = 0]) {
-    throw new UnsupportedError("Cannot setRange on immutable List.");
-  }
-
-  void removeRange(int start, int end) {
-    throw new UnsupportedError("Cannot removeRange on immutable List.");
-  }
-
-  void replaceRange(int start, int end, Iterable<E> iterable) {
-    throw new UnsupportedError("Cannot modify an immutable List.");
-  }
-
-  void fillRange(int start, int end, [E fillValue]) {
-    throw new UnsupportedError("Cannot modify an immutable List.");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/**
- * Defines the keycode values for keys that are returned by
- * KeyboardEvent.keyCode.
- *
- * Important note: There is substantial divergence in how different browsers
- * handle keycodes and their variants in different locales/keyboard layouts. We
- * provide these constants to help make code processing keys more readable.
- */
-abstract class KeyCode {
-  // These constant names were borrowed from Closure's Keycode enumeration
-  // class.
-  // http://closure-library.googlecode.com/svn/docs/closure_goog_events_keycodes.js.source.html
-  static const int WIN_KEY_FF_LINUX = 0;
-  static const int MAC_ENTER = 3;
-  static const int BACKSPACE = 8;
-  static const int TAB = 9;
-  /** NUM_CENTER is also NUMLOCK for FF and Safari on Mac. */
-  static const int NUM_CENTER = 12;
-  static const int ENTER = 13;
-  static const int SHIFT = 16;
-  static const int CTRL = 17;
-  static const int ALT = 18;
-  static const int PAUSE = 19;
-  static const int CAPS_LOCK = 20;
-  static const int ESC = 27;
-  static const int SPACE = 32;
-  static const int PAGE_UP = 33;
-  static const int PAGE_DOWN = 34;
-  static const int END = 35;
-  static const int HOME = 36;
-  static const int LEFT = 37;
-  static const int UP = 38;
-  static const int RIGHT = 39;
-  static const int DOWN = 40;
-  static const int NUM_NORTH_EAST = 33;
-  static const int NUM_SOUTH_EAST = 34;
-  static const int NUM_SOUTH_WEST = 35;
-  static const int NUM_NORTH_WEST = 36;
-  static const int NUM_WEST = 37;
-  static const int NUM_NORTH = 38;
-  static const int NUM_EAST = 39;
-  static const int NUM_SOUTH = 40;
-  static const int PRINT_SCREEN = 44;
-  static const int INSERT = 45;
-  static const int NUM_INSERT = 45;
-  static const int DELETE = 46;
-  static const int NUM_DELETE = 46;
-  static const int ZERO = 48;
-  static const int ONE = 49;
-  static const int TWO = 50;
-  static const int THREE = 51;
-  static const int FOUR = 52;
-  static const int FIVE = 53;
-  static const int SIX = 54;
-  static const int SEVEN = 55;
-  static const int EIGHT = 56;
-  static const int NINE = 57;
-  static const int FF_SEMICOLON = 59;
-  static const int FF_EQUALS = 61;
-  /**
-   * CAUTION: The question mark is for US-keyboard layouts. It varies
-   * for other locales and keyboard layouts.
-   */
-  static const int QUESTION_MARK = 63;
-  static const int A = 65;
-  static const int B = 66;
-  static const int C = 67;
-  static const int D = 68;
-  static const int E = 69;
-  static const int F = 70;
-  static const int G = 71;
-  static const int H = 72;
-  static const int I = 73;
-  static const int J = 74;
-  static const int K = 75;
-  static const int L = 76;
-  static const int M = 77;
-  static const int N = 78;
-  static const int O = 79;
-  static const int P = 80;
-  static const int Q = 81;
-  static const int R = 82;
-  static const int S = 83;
-  static const int T = 84;
-  static const int U = 85;
-  static const int V = 86;
-  static const int W = 87;
-  static const int X = 88;
-  static const int Y = 89;
-  static const int Z = 90;
-  static const int META = 91;
-  static const int WIN_KEY_LEFT = 91;
-  static const int WIN_KEY_RIGHT = 92;
-  static const int CONTEXT_MENU = 93;
-  static const int NUM_ZERO = 96;
-  static const int NUM_ONE = 97;
-  static const int NUM_TWO = 98;
-  static const int NUM_THREE = 99;
-  static const int NUM_FOUR = 100;
-  static const int NUM_FIVE = 101;
-  static const int NUM_SIX = 102;
-  static const int NUM_SEVEN = 103;
-  static const int NUM_EIGHT = 104;
-  static const int NUM_NINE = 105;
-  static const int NUM_MULTIPLY = 106;
-  static const int NUM_PLUS = 107;
-  static const int NUM_MINUS = 109;
-  static const int NUM_PERIOD = 110;
-  static const int NUM_DIVISION = 111;
-  static const int F1 = 112;
-  static const int F2 = 113;
-  static const int F3 = 114;
-  static const int F4 = 115;
-  static const int F5 = 116;
-  static const int F6 = 117;
-  static const int F7 = 118;
-  static const int F8 = 119;
-  static const int F9 = 120;
-  static const int F10 = 121;
-  static const int F11 = 122;
-  static const int F12 = 123;
-  static const int NUMLOCK = 144;
-  static const int SCROLL_LOCK = 145;
-
-  // OS-specific media keys like volume controls and browser controls.
-  static const int FIRST_MEDIA_KEY = 166;
-  static const int LAST_MEDIA_KEY = 183;
-
-  /**
-   * CAUTION: This constant requires localization for other locales and keyboard
-   * layouts.
-   */
-  static const int SEMICOLON = 186;
-  /**
-   * CAUTION: This constant requires localization for other locales and keyboard
-   * layouts.
-   */
-  static const int DASH = 189;
-  /**
-   * CAUTION: This constant requires localization for other locales and keyboard
-   * layouts.
-   */
-  static const int EQUALS = 187;
-  /**
-   * CAUTION: This constant requires localization for other locales and keyboard
-   * layouts.
-   */
-  static const int COMMA = 188;
-  /**
-   * CAUTION: This constant requires localization for other locales and keyboard
-   * layouts.
-   */
-  static const int PERIOD = 190;
-  /**
-   * CAUTION: This constant requires localization for other locales and keyboard
-   * layouts.
-   */
-  static const int SLASH = 191;
-  /**
-   * CAUTION: This constant requires localization for other locales and keyboard
-   * layouts.
-   */
-  static const int APOSTROPHE = 192;
-  /**
-   * CAUTION: This constant requires localization for other locales and keyboard
-   * layouts.
-   */
-  static const int TILDE = 192;
-  /**
-   * CAUTION: This constant requires localization for other locales and keyboard
-   * layouts.
-   */
-  static const int SINGLE_QUOTE = 222;
-  /**
-   * CAUTION: This constant requires localization for other locales and keyboard
-   * layouts.
-   */
-  static const int OPEN_SQUARE_BRACKET = 219;
-  /**
-   * CAUTION: This constant requires localization for other locales and keyboard
-   * layouts.
-   */
-  static const int BACKSLASH = 220;
-  /**
-   * CAUTION: This constant requires localization for other locales and keyboard
-   * layouts.
-   */
-  static const int CLOSE_SQUARE_BRACKET = 221;
-  static const int WIN_KEY = 224;
-  static const int MAC_FF_META = 224;
-  static const int WIN_IME = 229;
-
-  /** A sentinel value if the keycode could not be determined. */
-  static const int UNKNOWN = -1;
-
-  /**
-   * Returns true if the keyCode produces a (US keyboard) character.
-   * Note: This does not (yet) cover characters on non-US keyboards (Russian,
-   * Hebrew, etc.).
-   */
-  static bool isCharacterKey(int keyCode) {
-    if ((keyCode >= ZERO && keyCode <= NINE) ||
-        (keyCode >= NUM_ZERO && keyCode <= NUM_MULTIPLY) ||
-        (keyCode >= A && keyCode <= Z)) {
-      return true;
-    }
-
-    // Safari sends zero key code for non-latin characters.
-    if (Device.isWebKit && keyCode == 0) {
-      return true;
-    }
-
-    return (keyCode == SPACE ||
-        keyCode == QUESTION_MARK ||
-        keyCode == NUM_PLUS ||
-        keyCode == NUM_MINUS ||
-        keyCode == NUM_PERIOD ||
-        keyCode == NUM_DIVISION ||
-        keyCode == SEMICOLON ||
-        keyCode == FF_SEMICOLON ||
-        keyCode == DASH ||
-        keyCode == EQUALS ||
-        keyCode == FF_EQUALS ||
-        keyCode == COMMA ||
-        keyCode == PERIOD ||
-        keyCode == SLASH ||
-        keyCode == APOSTROPHE ||
-        keyCode == SINGLE_QUOTE ||
-        keyCode == OPEN_SQUARE_BRACKET ||
-        keyCode == BACKSLASH ||
-        keyCode == CLOSE_SQUARE_BRACKET);
-  }
-
-  /**
-   * Experimental helper function for converting keyCodes to keyNames for the
-   * keyIdentifier attribute still used in browsers not updated with current
-   * spec. This is an imperfect conversion! It will need to be refined, but
-   * hopefully it can just completely go away once all the browsers update to
-   * follow the DOM3 spec.
-   */
-  static String _convertKeyCodeToKeyName(int keyCode) {
-    switch (keyCode) {
-      case KeyCode.ALT:
-        return _KeyName.ALT;
-      case KeyCode.BACKSPACE:
-        return _KeyName.BACKSPACE;
-      case KeyCode.CAPS_LOCK:
-        return _KeyName.CAPS_LOCK;
-      case KeyCode.CTRL:
-        return _KeyName.CONTROL;
-      case KeyCode.DELETE:
-        return _KeyName.DEL;
-      case KeyCode.DOWN:
-        return _KeyName.DOWN;
-      case KeyCode.END:
-        return _KeyName.END;
-      case KeyCode.ENTER:
-        return _KeyName.ENTER;
-      case KeyCode.ESC:
-        return _KeyName.ESC;
-      case KeyCode.F1:
-        return _KeyName.F1;
-      case KeyCode.F2:
-        return _KeyName.F2;
-      case KeyCode.F3:
-        return _KeyName.F3;
-      case KeyCode.F4:
-        return _KeyName.F4;
-      case KeyCode.F5:
-        return _KeyName.F5;
-      case KeyCode.F6:
-        return _KeyName.F6;
-      case KeyCode.F7:
-        return _KeyName.F7;
-      case KeyCode.F8:
-        return _KeyName.F8;
-      case KeyCode.F9:
-        return _KeyName.F9;
-      case KeyCode.F10:
-        return _KeyName.F10;
-      case KeyCode.F11:
-        return _KeyName.F11;
-      case KeyCode.F12:
-        return _KeyName.F12;
-      case KeyCode.HOME:
-        return _KeyName.HOME;
-      case KeyCode.INSERT:
-        return _KeyName.INSERT;
-      case KeyCode.LEFT:
-        return _KeyName.LEFT;
-      case KeyCode.META:
-        return _KeyName.META;
-      case KeyCode.NUMLOCK:
-        return _KeyName.NUM_LOCK;
-      case KeyCode.PAGE_DOWN:
-        return _KeyName.PAGE_DOWN;
-      case KeyCode.PAGE_UP:
-        return _KeyName.PAGE_UP;
-      case KeyCode.PAUSE:
-        return _KeyName.PAUSE;
-      case KeyCode.PRINT_SCREEN:
-        return _KeyName.PRINT_SCREEN;
-      case KeyCode.RIGHT:
-        return _KeyName.RIGHT;
-      case KeyCode.SCROLL_LOCK:
-        return _KeyName.SCROLL;
-      case KeyCode.SHIFT:
-        return _KeyName.SHIFT;
-      case KeyCode.SPACE:
-        return _KeyName.SPACEBAR;
-      case KeyCode.TAB:
-        return _KeyName.TAB;
-      case KeyCode.UP:
-        return _KeyName.UP;
-      case KeyCode.WIN_IME:
-      case KeyCode.WIN_KEY:
-      case KeyCode.WIN_KEY_LEFT:
-      case KeyCode.WIN_KEY_RIGHT:
-        return _KeyName.WIN;
-      default:
-        return _KeyName.UNIDENTIFIED;
-    }
-    return _KeyName.UNIDENTIFIED;
-  }
-}
-// Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/**
- * Defines the standard key locations returned by
- * KeyboardEvent.getKeyLocation.
- */
-abstract class KeyLocation {
-  /**
-   * The event key is not distinguished as the left or right version
-   * of the key, and did not originate from the numeric keypad (or did not
-   * originate with a virtual key corresponding to the numeric keypad).
-   */
-  static const int STANDARD = 0;
-
-  /**
-   * The event key is in the left key location.
-   */
-  static const int LEFT = 1;
-
-  /**
-   * The event key is in the right key location.
-   */
-  static const int RIGHT = 2;
-
-  /**
-   * The event key originated on the numeric keypad or with a virtual key
-   * corresponding to the numeric keypad.
-   */
-  static const int NUMPAD = 3;
-
-  /**
-   * The event key originated on a mobile device, either on a physical
-   * keypad or a virtual keyboard.
-   */
-  static const int MOBILE = 4;
-
-  /**
-   * The event key originated on a game controller or a joystick on a mobile
-   * device.
-   */
-  static const int JOYSTICK = 5;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/**
- * Defines the standard keyboard identifier names for keys that are returned
- * by KeyboardEvent.getKeyboardIdentifier when the key does not have a direct
- * unicode mapping.
- */
-abstract class _KeyName {
-  /** The Accept (Commit, OK) key */
-  static const String ACCEPT = "Accept";
-
-  /** The Add key */
-  static const String ADD = "Add";
-
-  /** The Again key */
-  static const String AGAIN = "Again";
-
-  /** The All Candidates key */
-  static const String ALL_CANDIDATES = "AllCandidates";
-
-  /** The Alphanumeric key */
-  static const String ALPHANUMERIC = "Alphanumeric";
-
-  /** The Alt (Menu) key */
-  static const String ALT = "Alt";
-
-  /** The Alt-Graph key */
-  static const String ALT_GRAPH = "AltGraph";
-
-  /** The Application key */
-  static const String APPS = "Apps";
-
-  /** The ATTN key */
-  static const String ATTN = "Attn";
-
-  /** The Browser Back key */
-  static const String BROWSER_BACK = "BrowserBack";
-
-  /** The Browser Favorites key */
-  static const String BROWSER_FAVORTIES = "BrowserFavorites";
-
-  /** The Browser Forward key */
-  static const String BROWSER_FORWARD = "BrowserForward";
-
-  /** The Browser Home key */
-  static const String BROWSER_NAME = "BrowserHome";
-
-  /** The Browser Refresh key */
-  static const String BROWSER_REFRESH = "BrowserRefresh";
-
-  /** The Browser Search key */
-  static const String BROWSER_SEARCH = "BrowserSearch";
-
-  /** The Browser Stop key */
-  static const String BROWSER_STOP = "BrowserStop";
-
-  /** The Camera key */
-  static const String CAMERA = "Camera";
-
-  /** The Caps Lock (Capital) key */
-  static const String CAPS_LOCK = "CapsLock";
-
-  /** The Clear key */
-  static const String CLEAR = "Clear";
-
-  /** The Code Input key */
-  static const String CODE_INPUT = "CodeInput";
-
-  /** The Compose key */
-  static const String COMPOSE = "Compose";
-
-  /** The Control (Ctrl) key */
-  static const String CONTROL = "Control";
-
-  /** The Crsel key */
-  static const String CRSEL = "Crsel";
-
-  /** The Convert key */
-  static const String CONVERT = "Convert";
-
-  /** The Copy key */
-  static const String COPY = "Copy";
-
-  /** The Cut key */
-  static const String CUT = "Cut";
-
-  /** The Decimal key */
-  static const String DECIMAL = "Decimal";
-
-  /** The Divide key */
-  static const String DIVIDE = "Divide";
-
-  /** The Down Arrow key */
-  static const String DOWN = "Down";
-
-  /** The diagonal Down-Left Arrow key */
-  static const String DOWN_LEFT = "DownLeft";
-
-  /** The diagonal Down-Right Arrow key */
-  static const String DOWN_RIGHT = "DownRight";
-
-  /** The Eject key */
-  static const String EJECT = "Eject";
-
-  /** The End key */
-  static const String END = "End";
-
-  /**
-   * The Enter key. Note: This key value must also be used for the Return
-   *  (Macintosh numpad) key
-   */
-  static const String ENTER = "Enter";
-
-  /** The Erase EOF key */
-  static const String ERASE_EOF = "EraseEof";
-
-  /** The Execute key */
-  static const String EXECUTE = "Execute";
-
-  /** The Exsel key */
-  static const String EXSEL = "Exsel";
-
-  /** The Function switch key */
-  static const String FN = "Fn";
-
-  /** The F1 key */
-  static const String F1 = "F1";
-
-  /** The F2 key */
-  static const String F2 = "F2";
-
-  /** The F3 key */
-  static const String F3 = "F3";
-
-  /** The F4 key */
-  static const String F4 = "F4";
-
-  /** The F5 key */
-  static const String F5 = "F5";
-
-  /** The F6 key */
-  static const String F6 = "F6";
-
-  /** The F7 key */
-  static const String F7 = "F7";
-
-  /** The F8 key */
-  static const String F8 = "F8";
-
-  /** The F9 key */
-  static const String F9 = "F9";
-
-  /** The F10 key */
-  static const String F10 = "F10";
-
-  /** The F11 key */
-  static const String F11 = "F11";
-
-  /** The F12 key */
-  static const String F12 = "F12";
-
-  /** The F13 key */
-  static const String F13 = "F13";
-
-  /** The F14 key */
-  static const String F14 = "F14";
-
-  /** The F15 key */
-  static const String F15 = "F15";
-
-  /** The F16 key */
-  static const String F16 = "F16";
-
-  /** The F17 key */
-  static const String F17 = "F17";
-
-  /** The F18 key */
-  static const String F18 = "F18";
-
-  /** The F19 key */
-  static const String F19 = "F19";
-
-  /** The F20 key */
-  static const String F20 = "F20";
-
-  /** The F21 key */
-  static const String F21 = "F21";
-
-  /** The F22 key */
-  static const String F22 = "F22";
-
-  /** The F23 key */
-  static const String F23 = "F23";
-
-  /** The F24 key */
-  static const String F24 = "F24";
-
-  /** The Final Mode (Final) key used on some asian keyboards */
-  static const String FINAL_MODE = "FinalMode";
-
-  /** The Find key */
-  static const String FIND = "Find";
-
-  /** The Full-Width Characters key */
-  static const String FULL_WIDTH = "FullWidth";
-
-  /** The Half-Width Characters key */
-  static const String HALF_WIDTH = "HalfWidth";
-
-  /** The Hangul (Korean characters) Mode key */
-  static const String HANGUL_MODE = "HangulMode";
-
-  /** The Hanja (Korean characters) Mode key */
-  static const String HANJA_MODE = "HanjaMode";
-
-  /** The Help key */
-  static const String HELP = "Help";
-
-  /** The Hiragana (Japanese Kana characters) key */
-  static const String HIRAGANA = "Hiragana";
-
-  /** The Home key */
-  static const String HOME = "Home";
-
-  /** The Insert (Ins) key */
-  static const String INSERT = "Insert";
-
-  /** The Japanese-Hiragana key */
-  static const String JAPANESE_HIRAGANA = "JapaneseHiragana";
-
-  /** The Japanese-Katakana key */
-  static const String JAPANESE_KATAKANA = "JapaneseKatakana";
-
-  /** The Japanese-Romaji key */
-  static const String JAPANESE_ROMAJI = "JapaneseRomaji";
-
-  /** The Junja Mode key */
-  static const String JUNJA_MODE = "JunjaMode";
-
-  /** The Kana Mode (Kana Lock) key */
-  static const String KANA_MODE = "KanaMode";
-
-  /**
-   * The Kanji (Japanese name for ideographic characters of Chinese origin)
-   * Mode key
-   */
-  static const String KANJI_MODE = "KanjiMode";
-
-  /** The Katakana (Japanese Kana characters) key */
-  static const String KATAKANA = "Katakana";
-
-  /** The Start Application One key */
-  static const String LAUNCH_APPLICATION_1 = "LaunchApplication1";
-
-  /** The Start Application Two key */
-  static const String LAUNCH_APPLICATION_2 = "LaunchApplication2";
-
-  /** The Start Mail key */
-  static const String LAUNCH_MAIL = "LaunchMail";
-
-  /** The Left Arrow key */
-  static const String LEFT = "Left";
-
-  /** The Menu key */
-  static const String MENU = "Menu";
-
-  /**
-   * The Meta key. Note: This key value shall be also used for the Apple
-   * Command key
-   */
-  static const String META = "Meta";
-
-  /** The Media Next Track key */
-  static const String MEDIA_NEXT_TRACK = "MediaNextTrack";
-
-  /** The Media Play Pause key */
-  static const String MEDIA_PAUSE_PLAY = "MediaPlayPause";
-
-  /** The Media Previous Track key */
-  static const String MEDIA_PREVIOUS_TRACK = "MediaPreviousTrack";
-
-  /** The Media Stop key */
-  static const String MEDIA_STOP = "MediaStop";
-
-  /** The Mode Change key */
-  static const String MODE_CHANGE = "ModeChange";
-
-  /** The Next Candidate function key */
-  static const String NEXT_CANDIDATE = "NextCandidate";
-
-  /** The Nonconvert (Don't Convert) key */
-  static const String NON_CONVERT = "Nonconvert";
-
-  /** The Number Lock key */
-  static const String NUM_LOCK = "NumLock";
-
-  /** The Page Down (Next) key */
-  static const String PAGE_DOWN = "PageDown";
-
-  /** The Page Up key */
-  static const String PAGE_UP = "PageUp";
-
-  /** The Paste key */
-  static const String PASTE = "Paste";
-
-  /** The Pause key */
-  static const String PAUSE = "Pause";
-
-  /** The Play key */
-  static const String PLAY = "Play";
-
-  /**
-   * The Power key. Note: Some devices may not expose this key to the
-   * operating environment
-   */
-  static const String POWER = "Power";
-
-  /** The Previous Candidate function key */
-  static const String PREVIOUS_CANDIDATE = "PreviousCandidate";
-
-  /** The Print Screen (PrintScrn, SnapShot) key */
-  static const String PRINT_SCREEN = "PrintScreen";
-
-  /** The Process key */
-  static const String PROCESS = "Process";
-
-  /** The Props key */
-  static const String PROPS = "Props";
-
-  /** The Right Arrow key */
-  static const String RIGHT = "Right";
-
-  /** The Roman Characters function key */
-  static const String ROMAN_CHARACTERS = "RomanCharacters";
-
-  /** The Scroll Lock key */
-  static const String SCROLL = "Scroll";
-
-  /** The Select key */
-  static const String SELECT = "Select";
-
-  /** The Select Media key */
-  static const String SELECT_MEDIA = "SelectMedia";
-
-  /** The Separator key */
-  static const String SEPARATOR = "Separator";
-
-  /** The Shift key */
-  static const String SHIFT = "Shift";
-
-  /** The Soft1 key */
-  static const String SOFT_1 = "Soft1";
-
-  /** The Soft2 key */
-  static const String SOFT_2 = "Soft2";
-
-  /** The Soft3 key */
-  static const String SOFT_3 = "Soft3";
-
-  /** The Soft4 key */
-  static const String SOFT_4 = "Soft4";
-
-  /** The Stop key */
-  static const String STOP = "Stop";
-
-  /** The Subtract key */
-  static const String SUBTRACT = "Subtract";
-
-  /** The Symbol Lock key */
-  static const String SYMBOL_LOCK = "SymbolLock";
-
-  /** The Up Arrow key */
-  static const String UP = "Up";
-
-  /** The diagonal Up-Left Arrow key */
-  static const String UP_LEFT = "UpLeft";
-
-  /** The diagonal Up-Right Arrow key */
-  static const String UP_RIGHT = "UpRight";
-
-  /** The Undo key */
-  static const String UNDO = "Undo";
-
-  /** The Volume Down key */
-  static const String VOLUME_DOWN = "VolumeDown";
-
-  /** The Volume Mute key */
-  static const String VOLUMN_MUTE = "VolumeMute";
-
-  /** The Volume Up key */
-  static const String VOLUMN_UP = "VolumeUp";
-
-  /** The Windows Logo key */
-  static const String WIN = "Win";
-
-  /** The Zoom key */
-  static const String ZOOM = "Zoom";
-
-  /**
-   * The Backspace (Back) key. Note: This key value shall be also used for the
-   * key labeled 'delete' MacOS keyboards when not modified by the 'Fn' key
-   */
-  static const String BACKSPACE = "Backspace";
-
-  /** The Horizontal Tabulation (Tab) key */
-  static const String TAB = "Tab";
-
-  /** The Cancel key */
-  static const String CANCEL = "Cancel";
-
-  /** The Escape (Esc) key */
-  static const String ESC = "Esc";
-
-  /** The Space (Spacebar) key:   */
-  static const String SPACEBAR = "Spacebar";
-
-  /**
-   * The Delete (Del) Key. Note: This key value shall be also used for the key
-   * labeled 'delete' MacOS keyboards when modified by the 'Fn' key
-   */
-  static const String DEL = "Del";
-
-  /** The Combining Grave Accent (Greek Varia, Dead Grave) key */
-  static const String DEAD_GRAVE = "DeadGrave";
-
-  /**
-   * The Combining Acute Accent (Stress Mark, Greek Oxia, Tonos, Dead Eacute)
-   * key
-   */
-  static const String DEAD_EACUTE = "DeadEacute";
-
-  /** The Combining Circumflex Accent (Hat, Dead Circumflex) key */
-  static const String DEAD_CIRCUMFLEX = "DeadCircumflex";
-
-  /** The Combining Tilde (Dead Tilde) key */
-  static const String DEAD_TILDE = "DeadTilde";
-
-  /** The Combining Macron (Long, Dead Macron) key */
-  static const String DEAD_MACRON = "DeadMacron";
-
-  /** The Combining Breve (Short, Dead Breve) key */
-  static const String DEAD_BREVE = "DeadBreve";
-
-  /** The Combining Dot Above (Derivative, Dead Above Dot) key */
-  static const String DEAD_ABOVE_DOT = "DeadAboveDot";
-
-  /**
-   * The Combining Diaeresis (Double Dot Abode, Umlaut, Greek Dialytika,
-   * Double Derivative, Dead Diaeresis) key
-   */
-  static const String DEAD_UMLAUT = "DeadUmlaut";
-
-  /** The Combining Ring Above (Dead Above Ring) key */
-  static const String DEAD_ABOVE_RING = "DeadAboveRing";
-
-  /** The Combining Double Acute Accent (Dead Doubleacute) key */
-  static const String DEAD_DOUBLEACUTE = "DeadDoubleacute";
-
-  /** The Combining Caron (Hacek, V Above, Dead Caron) key */
-  static const String DEAD_CARON = "DeadCaron";
-
-  /** The Combining Cedilla (Dead Cedilla) key */
-  static const String DEAD_CEDILLA = "DeadCedilla";
-
-  /** The Combining Ogonek (Nasal Hook, Dead Ogonek) key */
-  static const String DEAD_OGONEK = "DeadOgonek";
-
-  /**
-   * The Combining Greek Ypogegrammeni (Greek Non-Spacing Iota Below, Iota
-   * Subscript, Dead Iota) key
-   */
-  static const String DEAD_IOTA = "DeadIota";
-
-  /**
-   * The Combining Katakana-Hiragana Voiced Sound Mark (Dead Voiced Sound) key
-   */
-  static const String DEAD_VOICED_SOUND = "DeadVoicedSound";
-
-  /**
-   * The Combining Katakana-Hiragana Semi-Voiced Sound Mark (Dead Semivoiced
-   * Sound) key
-   */
-  static const String DEC_SEMIVOICED_SOUND = "DeadSemivoicedSound";
-
-  /**
-   * Key value used when an implementation is unable to identify another key
-   * value, due to either hardware, platform, or software constraints
-   */
-  static const String UNIDENTIFIED = "Unidentified";
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/**
- * Internal class that does the actual calculations to determine keyCode and
- * charCode for keydown, keypress, and keyup events for all browsers.
- */
-class _KeyboardEventHandler extends EventStreamProvider<KeyEvent> {
-  // This code inspired by Closure's KeyHandling library.
-  // http://closure-library.googlecode.com/svn/docs/closure_goog_events_keyhandler.js.source.html
-
-  /**
-   * The set of keys that have been pressed down without seeing their
-   * corresponding keyup event.
-   */
-  final List<KeyEvent> _keyDownList = <KeyEvent>[];
-
-  /** The type of KeyEvent we are tracking (keyup, keydown, keypress). */
-  final String _type;
-
-  /** The element we are watching for events to happen on. */
-  final EventTarget _target;
-
-  // The distance to shift from upper case alphabet Roman letters to lower case.
-  static final int _ROMAN_ALPHABET_OFFSET = "a".codeUnits[0] - "A".codeUnits[0];
-
-  /** Custom Stream (Controller) to produce KeyEvents for the stream. */
-  _CustomKeyEventStreamImpl _stream;
-
-  static const _EVENT_TYPE = 'KeyEvent';
-
-  /**
-   * An enumeration of key identifiers currently part of the W3C draft for DOM3
-   * and their mappings to keyCodes.
-   * http://www.w3.org/TR/DOM-Level-3-Events/keyset.html#KeySet-Set
-   */
-  static const Map<String, int> _keyIdentifier = const {
-    'Up': KeyCode.UP,
-    'Down': KeyCode.DOWN,
-    'Left': KeyCode.LEFT,
-    'Right': KeyCode.RIGHT,
-    'Enter': KeyCode.ENTER,
-    'F1': KeyCode.F1,
-    'F2': KeyCode.F2,
-    'F3': KeyCode.F3,
-    'F4': KeyCode.F4,
-    'F5': KeyCode.F5,
-    'F6': KeyCode.F6,
-    'F7': KeyCode.F7,
-    'F8': KeyCode.F8,
-    'F9': KeyCode.F9,
-    'F10': KeyCode.F10,
-    'F11': KeyCode.F11,
-    'F12': KeyCode.F12,
-    'U+007F': KeyCode.DELETE,
-    'Home': KeyCode.HOME,
-    'End': KeyCode.END,
-    'PageUp': KeyCode.PAGE_UP,
-    'PageDown': KeyCode.PAGE_DOWN,
-    'Insert': KeyCode.INSERT
-  };
-
-  /** Return a stream for KeyEvents for the specified target. */
-  // Note: this actually functions like a factory constructor.
-  CustomStream<KeyEvent> forTarget(EventTarget e, {bool useCapture: false}) {
-    var handler =
-        new _KeyboardEventHandler.initializeAllEventListeners(_type, e);
-    return handler._stream;
-  }
-
-  /**
-   * General constructor, performs basic initialization for our improved
-   * KeyboardEvent controller.
-   */
-  _KeyboardEventHandler(this._type)
-      : _stream = new _CustomKeyEventStreamImpl('event'),
-        _target = null,
-        super(_EVENT_TYPE);
-
-  /**
-   * Hook up all event listeners under the covers so we can estimate keycodes
-   * and charcodes when they are not provided.
-   */
-  _KeyboardEventHandler.initializeAllEventListeners(this._type, this._target)
-      : super(_EVENT_TYPE) {
-    Element.keyDownEvent
-        .forTarget(_target, useCapture: true)
-        .listen(processKeyDown);
-    Element.keyPressEvent
-        .forTarget(_target, useCapture: true)
-        .listen(processKeyPress);
-    Element.keyUpEvent
-        .forTarget(_target, useCapture: true)
-        .listen(processKeyUp);
-    _stream = new _CustomKeyEventStreamImpl(_type);
-  }
-
-  /** Determine if caps lock is one of the currently depressed keys. */
-  bool get _capsLockOn =>
-      _keyDownList.any((var element) => element.keyCode == KeyCode.CAPS_LOCK);
-
-  /**
-   * Given the previously recorded keydown key codes, see if we can determine
-   * the keycode of this keypress [event]. (Generally browsers only provide
-   * charCode information for keypress events, but with a little
-   * reverse-engineering, we can also determine the keyCode.) Returns
-   * KeyCode.UNKNOWN if the keycode could not be determined.
-   */
-  int _determineKeyCodeForKeypress(KeyboardEvent event) {
-    // Note: This function is a work in progress. We'll expand this function
-    // once we get more information about other keyboards.
-    for (var prevEvent in _keyDownList) {
-      if (prevEvent._shadowCharCode == event.charCode) {
-        return prevEvent.keyCode;
-      }
-      if ((event.shiftKey || _capsLockOn) &&
-          event.charCode >= "A".codeUnits[0] &&
-          event.charCode <= "Z".codeUnits[0] &&
-          event.charCode + _ROMAN_ALPHABET_OFFSET ==
-              prevEvent._shadowCharCode) {
-        return prevEvent.keyCode;
-      }
-    }
-    return KeyCode.UNKNOWN;
-  }
-
-  /**
-   * Given the character code returned from a keyDown [event], try to ascertain
-   * and return the corresponding charCode for the character that was pressed.
-   * This information is not shown to the user, but used to help polyfill
-   * keypress events.
-   */
-  int _findCharCodeKeyDown(KeyboardEvent event) {
-    if (event.location == 3) {
-      // Numpad keys.
-      switch (event.keyCode) {
-        case KeyCode.NUM_ZERO:
-          // Even though this function returns _charCodes_, for some cases the
-          // KeyCode == the charCode we want, in which case we use the keycode
-          // constant for readability.
-          return KeyCode.ZERO;
-        case KeyCode.NUM_ONE:
-          return KeyCode.ONE;
-        case KeyCode.NUM_TWO:
-          return KeyCode.TWO;
-        case KeyCode.NUM_THREE:
-          return KeyCode.THREE;
-        case KeyCode.NUM_FOUR:
-          return KeyCode.FOUR;
-        case KeyCode.NUM_FIVE:
-          return KeyCode.FIVE;
-        case KeyCode.NUM_SIX:
-          return KeyCode.SIX;
-        case KeyCode.NUM_SEVEN:
-          return KeyCode.SEVEN;
-        case KeyCode.NUM_EIGHT:
-          return KeyCode.EIGHT;
-        case KeyCode.NUM_NINE:
-          return KeyCode.NINE;
-        case KeyCode.NUM_MULTIPLY:
-          return 42; // Char code for *
-        case KeyCode.NUM_PLUS:
-          return 43; // +
-        case KeyCode.NUM_MINUS:
-          return 45; // -
-        case KeyCode.NUM_PERIOD:
-          return 46; // .
-        case KeyCode.NUM_DIVISION:
-          return 47; // /
-      }
-    } else if (event.keyCode >= 65 && event.keyCode <= 90) {
-      // Set the "char code" for key down as the lower case letter. Again, this
-      // will not show up for the user, but will be helpful in estimating
-      // keyCode locations and other information during the keyPress event.
-      return event.keyCode + _ROMAN_ALPHABET_OFFSET;
-    }
-    switch (event.keyCode) {
-      case KeyCode.SEMICOLON:
-        return KeyCode.FF_SEMICOLON;
-      case KeyCode.EQUALS:
-        return KeyCode.FF_EQUALS;
-      case KeyCode.COMMA:
-        return 44; // Ascii value for ,
-      case KeyCode.DASH:
-        return 45; // -
-      case KeyCode.PERIOD:
-        return 46; // .
-      case KeyCode.SLASH:
-        return 47; // /
-      case KeyCode.APOSTROPHE:
-        return 96; // `
-      case KeyCode.OPEN_SQUARE_BRACKET:
-        return 91; // [
-      case KeyCode.BACKSLASH:
-        return 92; // \
-      case KeyCode.CLOSE_SQUARE_BRACKET:
-        return 93; // ]
-      case KeyCode.SINGLE_QUOTE:
-        return 39; // '
-    }
-    return event.keyCode;
-  }
-
-  /**
-   * Returns true if the key fires a keypress event in the current browser.
-   */
-  bool _firesKeyPressEvent(KeyEvent event) {
-    if (!Device.isIE && !Device.isWebKit) {
-      return true;
-    }
-
-    if (Device.userAgent.contains('Mac') && event.altKey) {
-      return KeyCode.isCharacterKey(event.keyCode);
-    }
-
-    // Alt but not AltGr which is represented as Alt+Ctrl.
-    if (event.altKey && !event.ctrlKey) {
-      return false;
-    }
-
-    // Saves Ctrl or Alt + key for IE and WebKit, which won't fire keypress.
-    if (!event.shiftKey &&
-        (_keyDownList.last.keyCode == KeyCode.CTRL ||
-            _keyDownList.last.keyCode == KeyCode.ALT ||
-            Device.userAgent.contains('Mac') &&
-                _keyDownList.last.keyCode == KeyCode.META)) {
-      return false;
-    }
-
-    // Some keys with Ctrl/Shift do not issue keypress in WebKit.
-    if (Device.isWebKit &&
-        event.ctrlKey &&
-        event.shiftKey &&
-        (event.keyCode == KeyCode.BACKSLASH ||
-            event.keyCode == KeyCode.OPEN_SQUARE_BRACKET ||
-            event.keyCode == KeyCode.CLOSE_SQUARE_BRACKET ||
-            event.keyCode == KeyCode.TILDE ||
-            event.keyCode == KeyCode.SEMICOLON ||
-            event.keyCode == KeyCode.DASH ||
-            event.keyCode == KeyCode.EQUALS ||
-            event.keyCode == KeyCode.COMMA ||
-            event.keyCode == KeyCode.PERIOD ||
-            event.keyCode == KeyCode.SLASH ||
-            event.keyCode == KeyCode.APOSTROPHE ||
-            event.keyCode == KeyCode.SINGLE_QUOTE)) {
-      return false;
-    }
-
-    switch (event.keyCode) {
-      case KeyCode.ENTER:
-        // IE9 does not fire keypress on ENTER.
-        return !Device.isIE;
-      case KeyCode.ESC:
-        return !Device.isWebKit;
-    }
-
-    return KeyCode.isCharacterKey(event.keyCode);
-  }
-
-  /**
-   * Normalize the keycodes to the IE KeyCodes (this is what Chrome, IE, and
-   * Opera all use).
-   */
-  int _normalizeKeyCodes(KeyboardEvent event) {
-    // Note: This may change once we get input about non-US keyboards.
-    if (Device.isFirefox) {
-      switch (event.keyCode) {
-        case KeyCode.FF_EQUALS:
-          return KeyCode.EQUALS;
-        case KeyCode.FF_SEMICOLON:
-          return KeyCode.SEMICOLON;
-        case KeyCode.MAC_FF_META:
-          return KeyCode.META;
-        case KeyCode.WIN_KEY_FF_LINUX:
-          return KeyCode.WIN_KEY;
-      }
-    }
-    return event.keyCode;
-  }
-
-  /** Handle keydown events. */
-  void processKeyDown(KeyboardEvent e) {
-    // Ctrl-Tab and Alt-Tab can cause the focus to be moved to another window
-    // before we've caught a key-up event.  If the last-key was one of these
-    // we reset the state.
-    if (_keyDownList.length > 0 &&
-        (_keyDownList.last.keyCode == KeyCode.CTRL && !e.ctrlKey ||
-            _keyDownList.last.keyCode == KeyCode.ALT && !e.altKey ||
-            Device.userAgent.contains('Mac') &&
-                _keyDownList.last.keyCode == KeyCode.META &&
-                !e.metaKey)) {
-      _keyDownList.clear();
-    }
-
-    var event = new KeyEvent.wrap(e);
-    event._shadowKeyCode = _normalizeKeyCodes(event);
-    // Technically a "keydown" event doesn't have a charCode. This is
-    // calculated nonetheless to provide us with more information in giving
-    // as much information as possible on keypress about keycode and also
-    // charCode.
-    event._shadowCharCode = _findCharCodeKeyDown(event);
-    if (_keyDownList.length > 0 &&
-        event.keyCode != _keyDownList.last.keyCode &&
-        !_firesKeyPressEvent(event)) {
-      // Some browsers have quirks not firing keypress events where all other
-      // browsers do. This makes them more consistent.
-      processKeyPress(e);
-    }
-    _keyDownList.add(event);
-    _stream.add(event);
-  }
-
-  /** Handle keypress events. */
-  void processKeyPress(KeyboardEvent event) {
-    var e = new KeyEvent.wrap(event);
-    // IE reports the character code in the keyCode field for keypress events.
-    // There are two exceptions however, Enter and Escape.
-    if (Device.isIE) {
-      if (e.keyCode == KeyCode.ENTER || e.keyCode == KeyCode.ESC) {
-        e._shadowCharCode = 0;
-      } else {
-        e._shadowCharCode = e.keyCode;
-      }
-    } else if (Device.isOpera) {
-      // Opera reports the character code in the keyCode field.
-      e._shadowCharCode = KeyCode.isCharacterKey(e.keyCode) ? e.keyCode : 0;
-    }
-    // Now we guesstimate about what the keycode is that was actually
-    // pressed, given previous keydown information.
-    e._shadowKeyCode = _determineKeyCodeForKeypress(e);
-
-    // Correct the key value for certain browser-specific quirks.
-    if (e._shadowKeyIdentifier != null &&
-        _keyIdentifier.containsKey(e._shadowKeyIdentifier)) {
-      // This is needed for Safari Windows because it currently doesn't give a
-      // keyCode/which for non printable keys.
-      e._shadowKeyCode = _keyIdentifier[e._shadowKeyIdentifier];
-    }
-    e._shadowAltKey = _keyDownList.any((var element) => element.altKey);
-    _stream.add(e);
-  }
-
-  /** Handle keyup events. */
-  void processKeyUp(KeyboardEvent event) {
-    var e = new KeyEvent.wrap(event);
-    KeyboardEvent toRemove = null;
-    for (var key in _keyDownList) {
-      if (key.keyCode == e.keyCode) {
-        toRemove = key;
-      }
-    }
-    if (toRemove != null) {
-      _keyDownList.removeWhere((element) => element == toRemove);
-    } else if (_keyDownList.length > 0) {
-      // This happens when we've reached some international keyboard case we
-      // haven't accounted for or we haven't correctly eliminated all browser
-      // inconsistencies. Filing bugs on when this is reached is welcome!
-      _keyDownList.removeLast();
-    }
-    _stream.add(e);
-  }
-}
-
-/**
- * Records KeyboardEvents that occur on a particular element, and provides a
- * stream of outgoing KeyEvents with cross-browser consistent keyCode and
- * charCode values despite the fact that a multitude of browsers that have
- * varying keyboard default behavior.
- *
- * Example usage:
- *
- *     KeyboardEventStream.onKeyDown(document.body).listen(
- *         keydownHandlerTest);
- *
- * This class is very much a work in progress, and we'd love to get information
- * on how we can make this class work with as many international keyboards as
- * possible. Bugs welcome!
- */
-class KeyboardEventStream {
-  /** Named constructor to produce a stream for onKeyPress events. */
-  static CustomStream<KeyEvent> onKeyPress(EventTarget target) =>
-      new _KeyboardEventHandler('keypress').forTarget(target);
-
-  /** Named constructor to produce a stream for onKeyUp events. */
-  static CustomStream<KeyEvent> onKeyUp(EventTarget target) =>
-      new _KeyboardEventHandler('keyup').forTarget(target);
-
-  /** Named constructor to produce a stream for onKeyDown events. */
-  static CustomStream<KeyEvent> onKeyDown(EventTarget target) =>
-      new _KeyboardEventHandler('keydown').forTarget(target);
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/**
- * Class which helps construct standard node validation policies.
- *
- * By default this will not accept anything, but the 'allow*' functions can be
- * used to expand what types of elements or attributes are allowed.
- *
- * All allow functions are additive- elements will be accepted if they are
- * accepted by any specific rule.
- *
- * It is important to remember that sanitization is not just intended to prevent
- * cross-site scripting attacks, but also to prevent information from being
- * displayed in unexpected ways. For example something displaying basic
- * formatted text may not expect `<video>` tags to appear. In this case an
- * empty NodeValidatorBuilder with just [allowTextElements] might be
- * appropriate.
- */
-class NodeValidatorBuilder implements NodeValidator {
-  final List<NodeValidator> _validators = <NodeValidator>[];
-
-  NodeValidatorBuilder() {}
-
-  /**
-   * Creates a new NodeValidatorBuilder which accepts common constructs.
-   *
-   * By default this will accept HTML5 elements and attributes with the default
-   * [UriPolicy] and templating elements.
-   *
-   * Notable syntax which is filtered:
-   *
-   * * Only known-good HTML5 elements and attributes are allowed.
-   * * All URLs must be same-origin, use [allowNavigation] and [allowImages] to
-   * specify additional URI policies.
-   * * Inline-styles are not allowed.
-   * * Custom element tags are disallowed, use [allowCustomElement].
-   * * Custom tags extensions are disallowed, use [allowTagExtension].
-   * * SVG Elements are not allowed, use [allowSvg].
-   *
-   * For scenarios where the HTML should only contain formatted text
-   * [allowTextElements] is more appropriate.
-   *
-   * Use [allowSvg] to allow SVG elements.
-   */
-  NodeValidatorBuilder.common() {
-    allowHtml5();
-    allowTemplating();
-  }
-
-  /**
-   * Allows navigation elements- Form and Anchor tags, along with common
-   * attributes.
-   *
-   * The UriPolicy can be used to restrict the locations the navigation elements
-   * are allowed to direct to. By default this will use the default [UriPolicy].
-   */
-  void allowNavigation([UriPolicy uriPolicy]) {
-    if (uriPolicy == null) {
-      uriPolicy = new UriPolicy();
-    }
-    add(new _SimpleNodeValidator.allowNavigation(uriPolicy));
-  }
-
-  /**
-   * Allows image elements.
-   *
-   * The UriPolicy can be used to restrict the locations the images may be
-   * loaded from. By default this will use the default [UriPolicy].
-   */
-  void allowImages([UriPolicy uriPolicy]) {
-    if (uriPolicy == null) {
-      uriPolicy = new UriPolicy();
-    }
-    add(new _SimpleNodeValidator.allowImages(uriPolicy));
-  }
-
-  /**
-   * Allow basic text elements.
-   *
-   * This allows a subset of HTML5 elements, specifically just these tags and
-   * no attributes.
-   *
-   * * B
-   * * BLOCKQUOTE
-   * * BR
-   * * EM
-   * * H1
-   * * H2
-   * * H3
-   * * H4
-   * * H5
-   * * H6
-   * * HR
-   * * I
-   * * LI
-   * * OL
-   * * P
-   * * SPAN
-   * * UL
-   */
-  void allowTextElements() {
-    add(new _SimpleNodeValidator.allowTextElements());
-  }
-
-  /**
-   * Allow inline styles on elements.
-   *
-   * If [tagName] is not specified then this allows inline styles on all
-   * elements. Otherwise tagName limits the styles to the specified elements.
-   */
-  void allowInlineStyles({String tagName}) {
-    if (tagName == null) {
-      tagName = '*';
-    } else {
-      tagName = tagName.toUpperCase();
-    }
-    add(new _SimpleNodeValidator(null, allowedAttributes: ['$tagName::style']));
-  }
-
-  /**
-   * Allow common safe HTML5 elements and attributes.
-   *
-   * This list is based off of the Caja whitelists at:
-   * https://code.google.com/p/google-caja/wiki/CajaWhitelists.
-   *
-   * Common things which are not allowed are script elements, style attributes
-   * and any script handlers.
-   */
-  void allowHtml5({UriPolicy uriPolicy}) {
-    add(new _Html5NodeValidator(uriPolicy: uriPolicy));
-  }
-
-  /**
-   * Allow SVG elements and attributes except for known bad ones.
-   */
-  void allowSvg() {
-    add(new _SvgNodeValidator());
-  }
-
-  /**
-   * Allow custom elements with the specified tag name and specified attributes.
-   *
-   * This will allow the elements as custom tags (such as <x-foo></x-foo>),
-   * but will not allow tag extensions. Use [allowTagExtension] to allow
-   * tag extensions.
-   */
-  void allowCustomElement(String tagName,
-      {UriPolicy uriPolicy,
-      Iterable<String> attributes,
-      Iterable<String> uriAttributes}) {
-    var tagNameUpper = tagName.toUpperCase();
-    var attrs = attributes
-        ?.map/*<String>*/((name) => '$tagNameUpper::${name.toLowerCase()}');
-    var uriAttrs = uriAttributes
-        ?.map/*<String>*/((name) => '$tagNameUpper::${name.toLowerCase()}');
-    if (uriPolicy == null) {
-      uriPolicy = new UriPolicy();
-    }
-
-    add(new _CustomElementNodeValidator(
-        uriPolicy, [tagNameUpper], attrs, uriAttrs, false, true));
-  }
-
-  /**
-   * Allow custom tag extensions with the specified type name and specified
-   * attributes.
-   *
-   * This will allow tag extensions (such as <div is="x-foo"></div>),
-   * but will not allow custom tags. Use [allowCustomElement] to allow
-   * custom tags.
-   */
-  void allowTagExtension(String tagName, String baseName,
-      {UriPolicy uriPolicy,
-      Iterable<String> attributes,
-      Iterable<String> uriAttributes}) {
-    var baseNameUpper = baseName.toUpperCase();
-    var tagNameUpper = tagName.toUpperCase();
-    var attrs = attributes
-        ?.map/*<String>*/((name) => '$baseNameUpper::${name.toLowerCase()}');
-    var uriAttrs = uriAttributes
-        ?.map/*<String>*/((name) => '$baseNameUpper::${name.toLowerCase()}');
-    if (uriPolicy == null) {
-      uriPolicy = new UriPolicy();
-    }
-
-    add(new _CustomElementNodeValidator(uriPolicy,
-        [tagNameUpper, baseNameUpper], attrs, uriAttrs, true, false));
-  }
-
-  void allowElement(String tagName,
-      {UriPolicy uriPolicy,
-      Iterable<String> attributes,
-      Iterable<String> uriAttributes}) {
-    allowCustomElement(tagName,
-        uriPolicy: uriPolicy,
-        attributes: attributes,
-        uriAttributes: uriAttributes);
-  }
-
-  /**
-   * Allow templating elements (such as <template> and template-related
-   * attributes.
-   *
-   * This still requires other validators to allow regular attributes to be
-   * bound (such as [allowHtml5]).
-   */
-  void allowTemplating() {
-    add(new _TemplatingNodeValidator());
-  }
-
-  /**
-   * Add an additional validator to the current list of validators.
-   *
-   * Elements and attributes will be accepted if they are accepted by any
-   * validators.
-   */
-  void add(NodeValidator validator) {
-    _validators.add(validator);
-  }
-
-  bool allowsElement(Element element) {
-    return _validators.any((v) => v.allowsElement(element));
-  }
-
-  bool allowsAttribute(Element element, String attributeName, String value) {
-    return _validators
-        .any((v) => v.allowsAttribute(element, attributeName, value));
-  }
-}
-
-class _SimpleNodeValidator implements NodeValidator {
-  final Set<String> allowedElements = new Set<String>();
-  final Set<String> allowedAttributes = new Set<String>();
-  final Set<String> allowedUriAttributes = new Set<String>();
-  final UriPolicy uriPolicy;
-
-  factory _SimpleNodeValidator.allowNavigation(UriPolicy uriPolicy) {
-    return new _SimpleNodeValidator(uriPolicy, allowedElements: const [
-      'A',
-      'FORM'
-    ], allowedAttributes: const [
-      'A::accesskey',
-      'A::coords',
-      'A::hreflang',
-      'A::name',
-      'A::shape',
-      'A::tabindex',
-      'A::target',
-      'A::type',
-      'FORM::accept',
-      'FORM::autocomplete',
-      'FORM::enctype',
-      'FORM::method',
-      'FORM::name',
-      'FORM::novalidate',
-      'FORM::target',
-    ], allowedUriAttributes: const [
-      'A::href',
-      'FORM::action',
-    ]);
-  }
-
-  factory _SimpleNodeValidator.allowImages(UriPolicy uriPolicy) {
-    return new _SimpleNodeValidator(uriPolicy, allowedElements: const [
-      'IMG'
-    ], allowedAttributes: const [
-      'IMG::align',
-      'IMG::alt',
-      'IMG::border',
-      'IMG::height',
-      'IMG::hspace',
-      'IMG::ismap',
-      'IMG::name',
-      'IMG::usemap',
-      'IMG::vspace',
-      'IMG::width',
-    ], allowedUriAttributes: const [
-      'IMG::src',
-    ]);
-  }
-
-  factory _SimpleNodeValidator.allowTextElements() {
-    return new _SimpleNodeValidator(null, allowedElements: const [
-      'B',
-      'BLOCKQUOTE',
-      'BR',
-      'EM',
-      'H1',
-      'H2',
-      'H3',
-      'H4',
-      'H5',
-      'H6',
-      'HR',
-      'I',
-      'LI',
-      'OL',
-      'P',
-      'SPAN',
-      'UL',
-    ]);
-  }
-
-  /**
-   * Elements must be uppercased tag names. For example `'IMG'`.
-   * Attributes must be uppercased tag name followed by :: followed by
-   * lowercase attribute name. For example `'IMG:src'`.
-   */
-  _SimpleNodeValidator(this.uriPolicy,
-      {Iterable<String> allowedElements,
-      Iterable<String> allowedAttributes,
-      Iterable<String> allowedUriAttributes}) {
-    this.allowedElements.addAll(allowedElements ?? const []);
-    allowedAttributes = allowedAttributes ?? const [];
-    allowedUriAttributes = allowedUriAttributes ?? const [];
-    var legalAttributes = allowedAttributes
-        .where((x) => !_Html5NodeValidator._uriAttributes.contains(x));
-    var extraUriAttributes = allowedAttributes
-        .where((x) => _Html5NodeValidator._uriAttributes.contains(x));
-    this.allowedAttributes.addAll(legalAttributes);
-    this.allowedUriAttributes.addAll(allowedUriAttributes);
-    this.allowedUriAttributes.addAll(extraUriAttributes);
-  }
-
-  bool allowsElement(Element element) {
-    return allowedElements.contains(Element._safeTagName(element));
-  }
-
-  bool allowsAttribute(Element element, String attributeName, String value) {
-    var tagName = Element._safeTagName(element);
-    if (allowedUriAttributes.contains('$tagName::$attributeName')) {
-      return uriPolicy.allowsUri(value);
-    } else if (allowedUriAttributes.contains('*::$attributeName')) {
-      return uriPolicy.allowsUri(value);
-    } else if (allowedAttributes.contains('$tagName::$attributeName')) {
-      return true;
-    } else if (allowedAttributes.contains('*::$attributeName')) {
-      return true;
-    } else if (allowedAttributes.contains('$tagName::*')) {
-      return true;
-    } else if (allowedAttributes.contains('*::*')) {
-      return true;
-    }
-    return false;
-  }
-}
-
-class _CustomElementNodeValidator extends _SimpleNodeValidator {
-  final bool allowTypeExtension;
-  final bool allowCustomTag;
-
-  _CustomElementNodeValidator(
-      UriPolicy uriPolicy,
-      Iterable<String> allowedElements,
-      Iterable<String> allowedAttributes,
-      Iterable<String> allowedUriAttributes,
-      bool allowTypeExtension,
-      bool allowCustomTag)
-      : this.allowTypeExtension = allowTypeExtension == true,
-        this.allowCustomTag = allowCustomTag == true,
-        super(uriPolicy,
-            allowedElements: allowedElements,
-            allowedAttributes: allowedAttributes,
-            allowedUriAttributes: allowedUriAttributes);
-
-  bool allowsElement(Element element) {
-    if (allowTypeExtension) {
-      var isAttr = element.attributes['is'];
-      if (isAttr != null) {
-        return allowedElements.contains(isAttr.toUpperCase()) &&
-            allowedElements.contains(Element._safeTagName(element));
-      }
-    }
-    return allowCustomTag &&
-        allowedElements.contains(Element._safeTagName(element));
-  }
-
-  bool allowsAttribute(Element element, String attributeName, String value) {
-    if (allowsElement(element)) {
-      if (allowTypeExtension &&
-          attributeName == 'is' &&
-          allowedElements.contains(value.toUpperCase())) {
-        return true;
-      }
-      return super.allowsAttribute(element, attributeName, value);
-    }
-    return false;
-  }
-}
-
-class _TemplatingNodeValidator extends _SimpleNodeValidator {
-  static const _TEMPLATE_ATTRS = const <String>[
-    'bind',
-    'if',
-    'ref',
-    'repeat',
-    'syntax'
-  ];
-
-  final Set<String> _templateAttrs;
-
-  _TemplatingNodeValidator()
-      : _templateAttrs = new Set<String>.from(_TEMPLATE_ATTRS),
-        super(null,
-            allowedElements: ['TEMPLATE'],
-            allowedAttributes:
-                _TEMPLATE_ATTRS.map((attr) => 'TEMPLATE::$attr')) {}
-
-  bool allowsAttribute(Element element, String attributeName, String value) {
-    if (super.allowsAttribute(element, attributeName, value)) {
-      return true;
-    }
-
-    if (attributeName == 'template' && value == "") {
-      return true;
-    }
-
-    if (element.attributes['template'] == "") {
-      return _templateAttrs.contains(attributeName);
-    }
-    return false;
-  }
-}
-
-class _SvgNodeValidator implements NodeValidator {
-  bool allowsElement(Element element) {
-    if (element is svg.ScriptElement) {
-      return false;
-    }
-    // Firefox 37 has issues with creating foreign elements inside a
-    // foreignobject tag as SvgElement. We don't want foreignobject contents
-    // anyway, so just remove the whole tree outright. And we can't rely
-    // on IE recognizing the SvgForeignObject type, so go by tagName. Bug 23144
-    if (element is svg.SvgElement &&
-        Element._safeTagName(element) == 'foreignObject') {
-      return false;
-    }
-    if (element is svg.SvgElement) {
-      return true;
-    }
-    return false;
-  }
-
-  bool allowsAttribute(Element element, String attributeName, String value) {
-    if (attributeName == 'is' || attributeName.startsWith('on')) {
-      return false;
-    }
-    return allowsElement(element);
-  }
-}
-// Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/**
- * Contains the set of standard values returned by HTMLDocument.getReadyState.
- */
-abstract class ReadyState {
-  /**
-   * Indicates the document is still loading and parsing.
-   */
-  static const String LOADING = "loading";
-
-  /**
-   * Indicates the document is finished parsing but is still loading
-   * subresources.
-   */
-  static const String INTERACTIVE = "interactive";
-
-  /**
-   * Indicates the document and all subresources have been loaded.
-   */
-  static const String COMPLETE = "complete";
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/**
- * A list which just wraps another list, for either intercepting list calls or
- * retyping the list (for example, from List<A> to List<B> where B extends A).
- */
-class _WrappedList<E extends Node> extends ListBase<E>
-    implements NodeListWrapper {
-  final List<Node> _list;
-
-  _WrappedList(this._list);
-
-  // Iterable APIs
-
-  Iterator<E> get iterator => new _WrappedIterator<E>(_list.iterator);
-
-  int get length => _list.length;
-
-  // Collection APIs
-
-  void add(E element) {
-    _list.add(element);
-  }
-
-  bool remove(Object element) => _list.remove(element);
-
-  void clear() {
-    _list.clear();
-  }
-
-  // List APIs
-
-  E operator [](int index) => _downcast/*<Node, E>*/(_list[index]);
-
-  void operator []=(int index, E value) {
-    _list[index] = value;
-  }
-
-  set length(int newLength) {
-    _list.length = newLength;
-  }
-
-  void sort([int compare(E a, E b)]) {
-    _list.sort((Node a, Node b) =>
-        compare(_downcast/*<Node, E>*/(a), _downcast/*<Node, E>*/(b)));
-  }
-
-  int indexOf(Object element, [int start = 0]) => _list.indexOf(element, start);
-
-  int lastIndexOf(Object element, [int start]) =>
-      _list.lastIndexOf(element, start);
-
-  void insert(int index, E element) => _list.insert(index, element);
-
-  E removeAt(int index) => _downcast/*<Node, E>*/(_list.removeAt(index));
-
-  void setRange(int start, int end, Iterable<E> iterable, [int skipCount = 0]) {
-    _list.setRange(start, end, iterable, skipCount);
-  }
-
-  void removeRange(int start, int end) {
-    _list.removeRange(start, end);
-  }
-
-  void replaceRange(int start, int end, Iterable<E> iterable) {
-    _list.replaceRange(start, end, iterable);
-  }
-
-  void fillRange(int start, int end, [E fillValue]) {
-    _list.fillRange(start, end, fillValue);
-  }
-
-  List<Node> get rawList => _list;
-}
-
-/**
- * Iterator wrapper for _WrappedList.
- */
-class _WrappedIterator<E extends Node> implements Iterator<E> {
-  Iterator<Node> _iterator;
-
-  _WrappedIterator(this._iterator);
-
-  bool moveNext() {
-    return _iterator.moveNext();
-  }
-
-  E get current => _downcast/*<Node, E>*/(_iterator.current);
-}
-
-// ignore: STRONG_MODE_DOWN_CAST_COMPOSITE
-/*=To*/ _downcast/*<From, To extends From>*/(dynamic/*=From*/ x) => x;
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-class _HttpRequestUtils {
-  // Helper for factory HttpRequest.get
-  static HttpRequest get(
-      String url, onComplete(HttpRequest request), bool withCredentials) {
-    final request = new HttpRequest();
-    request.open('GET', url, async: true);
-
-    request.withCredentials = withCredentials;
-
-    request.onReadyStateChange.listen((e) {
-      if (request.readyState == HttpRequest.DONE) {
-        onComplete(request);
-      }
-    });
-
-    request.send();
-
-    return request;
-  }
-}
-// Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// Iterator for arrays with fixed size.
-class FixedSizeListIterator<T> implements Iterator<T> {
-  final List<T> _array;
-  final int _length; // Cache array length for faster access.
-  int _position;
-  T _current;
-
-  FixedSizeListIterator(List<T> array)
-      : _array = array,
-        _position = -1,
-        _length = array.length;
-
-  bool moveNext() {
-    int nextPosition = _position + 1;
-    if (nextPosition < _length) {
-      _current = _array[nextPosition];
-      _position = nextPosition;
-      return true;
-    }
-    _current = null;
-    _position = _length;
-    return false;
-  }
-
-  T get current => _current;
-}
-
-// Iterator for arrays with variable size.
-class _VariableSizeListIterator<T> implements Iterator<T> {
-  final List<T> _array;
-  int _position;
-  T _current;
-
-  _VariableSizeListIterator(List<T> array)
-      : _array = array,
-        _position = -1;
-
-  bool moveNext() {
-    int nextPosition = _position + 1;
-    if (nextPosition < _array.length) {
-      _current = _array[nextPosition];
-      _position = nextPosition;
-      return true;
-    }
-    _current = null;
-    _position = _array.length;
-    return false;
-  }
-
-  T get current => _current;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// Conversions for Window.  These check if the window is the local
-// window, and if it's not, wraps or unwraps it with a secure wrapper.
-// We need to test for EventTarget here as well as it's a base type.
-// We omit an unwrapper for Window as no methods take a non-local
-// window as a parameter.
-
-WindowBase _convertNativeToDart_Window(win) {
-  if (win == null) return null;
-  return _DOMWindowCrossFrame._createSafe(win);
-}
-
-EventTarget _convertNativeToDart_EventTarget(e) {
-  if (e == null) {
-    return null;
-  }
-  // Assume it's a Window if it contains the postMessage property.  It may be
-  // from a different frame - without a patched prototype - so we cannot
-  // rely on Dart type checking.
-  if (JS('bool', r'"postMessage" in #', e)) {
-    var window = _DOMWindowCrossFrame._createSafe(e);
-    // If it's a native window.
-    if (window is EventTarget) {
-      return window;
-    }
-    return null;
-  } else
-    return e;
-}
-
-EventTarget _convertDartToNative_EventTarget(e) {
-  if (e is _DOMWindowCrossFrame) {
-    return e._window;
-  } else {
-    return e;
-  }
-}
-
-_convertNativeToDart_XHR_Response(o) {
-  if (o is Document) {
-    return o;
-  }
-  return convertNativeToDart_SerializedScriptValue(o);
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-_callConstructor(constructor, interceptor) {
-  return (receiver) {
-    setNativeSubclassDispatchRecord(receiver, interceptor);
-
-    // Mirrors uses the constructor property to cache lookups, so we need it to
-    // be set correctly, including on IE where it is not automatically picked
-    // up from the __proto__.
-    JS('', '#.constructor = #.__proto__.constructor', receiver, receiver);
-    return JS('', '#(#)', constructor, receiver);
-  };
-}
-
-_callAttached(receiver) {
-  return receiver.attached();
-}
-
-_callDetached(receiver) {
-  return receiver.detached();
-}
-
-_callAttributeChanged(receiver, name, oldValue, newValue) {
-  return receiver.attributeChanged(name, oldValue, newValue);
-}
-
-_makeCallbackMethod(callback) {
-  return JS(
-      '',
-      '''((function(invokeCallback) {
-             return function() {
-               return invokeCallback(this);
-             };
-          })(#))''',
-      convertDartClosureToJS(callback, 1));
-}
-
-_makeCallbackMethod3(callback) {
-  return JS(
-      '',
-      '''((function(invokeCallback) {
-             return function(arg1, arg2, arg3) {
-               return invokeCallback(this, arg1, arg2, arg3);
-             };
-          })(#))''',
-      convertDartClosureToJS(callback, 4));
-}
-
-/// Checks whether the given [element] correctly extends from the native class
-/// with the given [baseClassName]. This method will throw if the base class
-/// doesn't match, except when the element extends from `template` and it's base
-/// class is `HTMLUnknownElement`. This exclusion is needed to support extension
-/// of template elements (used heavily in Polymer 1.0) on IE11 when using the
-/// webcomponents-lite.js polyfill.
-void _checkExtendsNativeClassOrTemplate(
-    Element element, String extendsTag, String baseClassName) {
-  if (!JS('bool', '(# instanceof window[#])', element, baseClassName) &&
-      !((extendsTag == 'template' &&
-          JS('bool', '(# instanceof window["HTMLUnknownElement"])',
-              element)))) {
-    throw new UnsupportedError('extendsTag does not match base native class');
-  }
-}
-
-void _registerCustomElement(
-    context, document, String tag, Type type, String extendsTagName) {
-  // Function follows the same pattern as the following JavaScript code for
-  // registering a custom element.
-  //
-  //    var proto = Object.create(HTMLElement.prototype, {
-  //        createdCallback: {
-  //          value: function() {
-  //            window.console.log('here');
-  //          }
-  //        }
-  //    });
-  //    document.registerElement('x-foo', { prototype: proto });
-  //    ...
-  //    var e = document.createElement('x-foo');
-
-  var interceptorClass = findInterceptorConstructorForType(type);
-  if (interceptorClass == null) {
-    throw new ArgumentError(type);
-  }
-
-  var interceptor = JS('=Object', '#.prototype', interceptorClass);
-
-  var constructor = findConstructorForNativeSubclassType(type, 'created');
-  if (constructor == null) {
-    throw new ArgumentError("$type has no constructor called 'created'");
-  }
-
-  // Workaround for 13190- use an article element to ensure that HTMLElement's
-  // interceptor is resolved correctly.
-  getNativeInterceptor(new Element.tag('article'));
-
-  String baseClassName = findDispatchTagForInterceptorClass(interceptorClass);
-  if (baseClassName == null) {
-    throw new ArgumentError(type);
-  }
-
-  if (extendsTagName == null) {
-    if (baseClassName != 'HTMLElement') {
-      throw new UnsupportedError('Class must provide extendsTag if base '
-          'native class is not HtmlElement');
-    }
-  } else {
-    var element = document.createElement(extendsTagName);
-    _checkExtendsNativeClassOrTemplate(element, extendsTagName, baseClassName);
-  }
-
-  var baseConstructor = JS('=Object', '#[#]', context, baseClassName);
-
-  var properties = JS('=Object', '{}');
-
-  JS(
-      'void',
-      '#.createdCallback = #',
-      properties,
-      JS('=Object', '{value: #}',
-          _makeCallbackMethod(_callConstructor(constructor, interceptor))));
-  JS('void', '#.attachedCallback = #', properties,
-      JS('=Object', '{value: #}', _makeCallbackMethod(_callAttached)));
-  JS('void', '#.detachedCallback = #', properties,
-      JS('=Object', '{value: #}', _makeCallbackMethod(_callDetached)));
-  JS('void', '#.attributeChangedCallback = #', properties,
-      JS('=Object', '{value: #}', _makeCallbackMethod3(_callAttributeChanged)));
-
-  var baseProto = JS('=Object', '#.prototype', baseConstructor);
-  var proto = JS('=Object', 'Object.create(#, #)', baseProto, properties);
-
-  setNativeSubclassDispatchRecord(proto, interceptor);
-
-  var options = JS('=Object', '{prototype: #}', proto);
-
-  if (extendsTagName != null) {
-    JS('=Object', '#.extends = #', options, extendsTagName);
-  }
-
-  JS('void', '#.registerElement(#, #)', document, tag, options);
-}
-
-//// Called by Element.created to do validation & initialization.
-void _initializeCustomElement(Element e) {
-  // TODO(blois): Add validation that this is only in response to an upgrade.
-}
-
-/// Dart2JS implementation of ElementUpgrader
-class _JSElementUpgrader implements ElementUpgrader {
-  var _interceptor;
-  var _constructor;
-  var _nativeType;
-
-  _JSElementUpgrader(Document document, Type type, String extendsTag) {
-    var interceptorClass = findInterceptorConstructorForType(type);
-    if (interceptorClass == null) {
-      throw new ArgumentError(type);
-    }
-
-    _constructor = findConstructorForNativeSubclassType(type, 'created');
-    if (_constructor == null) {
-      throw new ArgumentError("$type has no constructor called 'created'");
-    }
-
-    // Workaround for 13190- use an article element to ensure that HTMLElement's
-    // interceptor is resolved correctly.
-    getNativeInterceptor(new Element.tag('article'));
-
-    var baseClassName = findDispatchTagForInterceptorClass(interceptorClass);
-    if (baseClassName == null) {
-      throw new ArgumentError(type);
-    }
-
-    if (extendsTag == null) {
-      if (baseClassName != 'HTMLElement') {
-        throw new UnsupportedError('Class must provide extendsTag if base '
-            'native class is not HtmlElement');
-      }
-      _nativeType = HtmlElement;
-    } else {
-      var element = document.createElement(extendsTag);
-      _checkExtendsNativeClassOrTemplate(element, extendsTag, baseClassName);
-      _nativeType = element.runtimeType;
-    }
-
-    _interceptor = JS('=Object', '#.prototype', interceptorClass);
-  }
-
-  Element upgrade(Element element) {
-    // Only exact type matches are supported- cannot be a subclass.
-    if (element.runtimeType != _nativeType) {
-      throw new ArgumentError('element is not subclass of $_nativeType');
-    }
-
-    setNativeSubclassDispatchRecord(element, _interceptor);
-    JS('', '#(#)', _constructor, element);
-    return element;
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// TODO(vsm): Unify with Dartium version.
-class _DOMWindowCrossFrame implements WindowBase {
-  // Private window.  Note, this is a window in another frame, so it
-  // cannot be typed as "Window" as its prototype is not patched
-  // properly.  Its fields and methods can only be accessed via JavaScript.
-  final _window;
-
-  // Fields.
-  HistoryBase get history =>
-      _HistoryCrossFrame._createSafe(JS('HistoryBase', '#.history', _window));
-  LocationBase get location => _LocationCrossFrame
-      ._createSafe(JS('LocationBase', '#.location', _window));
-
-  // TODO(vsm): Add frames to navigate subframes.  See 2312.
-
-  bool get closed => JS('bool', '#.closed', _window);
-
-  WindowBase get opener => _createSafe(JS('WindowBase', '#.opener', _window));
-
-  WindowBase get parent => _createSafe(JS('WindowBase', '#.parent', _window));
-
-  WindowBase get top => _createSafe(JS('WindowBase', '#.top', _window));
-
-  // Methods.
-  void close() => JS('void', '#.close()', _window);
-
-  void postMessage(var message, String targetOrigin,
-      [List messagePorts = null]) {
-    if (messagePorts == null) {
-      JS('void', '#.postMessage(#,#)', _window,
-          convertDartToNative_SerializedScriptValue(message), targetOrigin);
-    } else {
-      JS(
-          'void',
-          '#.postMessage(#,#,#)',
-          _window,
-          convertDartToNative_SerializedScriptValue(message),
-          targetOrigin,
-          messagePorts);
-    }
-  }
-
-  // Implementation support.
-  _DOMWindowCrossFrame(this._window);
-
-  static WindowBase _createSafe(w) {
-    if (identical(w, window)) {
-      return w;
-    } else {
-      // TODO(vsm): Cache or implement equality.
-      registerGlobalObject(w);
-      return new _DOMWindowCrossFrame(w);
-    }
-  }
-
-  // TODO(efortuna): Remove this method. dartbug.com/16814
-  Events get on => throw new UnsupportedError(
-      'You can only attach EventListeners to your own window.');
-  // TODO(efortuna): Remove this method. dartbug.com/16814
-  void _addEventListener(String type, EventListener listener,
-          [bool useCapture]) =>
-      throw new UnsupportedError(
-          'You can only attach EventListeners to your own window.');
-  // TODO(efortuna): Remove this method. dartbug.com/16814
-  void addEventListener(String type, EventListener listener,
-          [bool useCapture]) =>
-      throw new UnsupportedError(
-          'You can only attach EventListeners to your own window.');
-  // TODO(efortuna): Remove this method. dartbug.com/16814
-  bool dispatchEvent(Event event) => throw new UnsupportedError(
-      'You can only attach EventListeners to your own window.');
-  // TODO(efortuna): Remove this method. dartbug.com/16814
-  void _removeEventListener(String type, EventListener listener,
-          [bool useCapture]) =>
-      throw new UnsupportedError(
-          'You can only attach EventListeners to your own window.');
-  // TODO(efortuna): Remove this method. dartbug.com/16814
-  void removeEventListener(String type, EventListener listener,
-          [bool useCapture]) =>
-      throw new UnsupportedError(
-          'You can only attach EventListeners to your own window.');
-}
-
-class _LocationCrossFrame implements LocationBase {
-  // Private location.  Note, this is a location object in another frame, so it
-  // cannot be typed as "Location" as its prototype is not patched
-  // properly.  Its fields and methods can only be accessed via JavaScript.
-  var _location;
-
-  set href(String val) => _setHref(_location, val);
-  static void _setHref(location, val) {
-    JS('void', '#.href = #', location, val);
-  }
-
-  // Implementation support.
-  _LocationCrossFrame(this._location);
-
-  static LocationBase _createSafe(location) {
-    if (identical(location, window.location)) {
-      return location;
-    } else {
-      // TODO(vsm): Cache or implement equality.
-      return new _LocationCrossFrame(location);
-    }
-  }
-}
-
-class _HistoryCrossFrame implements HistoryBase {
-  // Private history.  Note, this is a history object in another frame, so it
-  // cannot be typed as "History" as its prototype is not patched
-  // properly.  Its fields and methods can only be accessed via JavaScript.
-  var _history;
-
-  void back() => JS('void', '#.back()', _history);
-
-  void forward() => JS('void', '#.forward()', _history);
-
-  void go(int distance) => JS('void', '#.go(#)', _history, distance);
-
-  // Implementation support.
-  _HistoryCrossFrame(this._history);
-
-  static HistoryBase _createSafe(h) {
-    if (identical(h, window.history)) {
-      return h;
-    } else {
-      // TODO(vsm): Cache or implement equality.
-      return new _HistoryCrossFrame(h);
-    }
-  }
-}
-
-/**
- * A custom KeyboardEvent that attempts to eliminate cross-browser
- * inconsistencies, and also provide both keyCode and charCode information
- * for all key events (when such information can be determined).
- *
- * KeyEvent tries to provide a higher level, more polished keyboard event
- * information on top of the "raw" [KeyboardEvent].
- *
- * The mechanics of using KeyEvents is a little different from the underlying
- * [KeyboardEvent]. To use KeyEvents, you need to create a stream and then add
- * KeyEvents to the stream, rather than using the [EventTarget.dispatchEvent].
- * Here's an example usage:
- *
- *     // Initialize a stream for the KeyEvents:
- *     var stream = KeyEvent.keyPressEvent.forTarget(document.body);
- *     // Start listening to the stream of KeyEvents.
- *     stream.listen((keyEvent) =>
- *         window.console.log('KeyPress event detected ${keyEvent.charCode}'));
- *     ...
- *     // Add a new KeyEvent of someone pressing the 'A' key to the stream so
- *     // listeners can know a KeyEvent happened.
- *     stream.add(new KeyEvent('keypress', keyCode: 65, charCode: 97));
- *
- * This class is very much a work in progress, and we'd love to get information
- * on how we can make this class work with as many international keyboards as
- * possible. Bugs welcome!
- */
-@Experimental()
-class KeyEvent extends _WrappedEvent implements KeyboardEvent {
-  /** The parent KeyboardEvent that this KeyEvent is wrapping and "fixing". */
-  KeyboardEvent _parent;
-
-  /** The "fixed" value of whether the alt key is being pressed. */
-  bool _shadowAltKey;
-
-  /** Calculated value of what the estimated charCode is for this event. */
-  int _shadowCharCode;
-
-  /** Calculated value of what the estimated keyCode is for this event. */
-  int _shadowKeyCode;
-
-  /** Calculated value of what the estimated keyCode is for this event. */
-  int get keyCode => _shadowKeyCode;
-
-  /** Calculated value of what the estimated charCode is for this event. */
-  int get charCode => this.type == 'keypress' ? _shadowCharCode : 0;
-
-  /** Calculated value of whether the alt key is pressed is for this event. */
-  bool get altKey => _shadowAltKey;
-
-  /** Calculated value of what the estimated keyCode is for this event. */
-  int get which => keyCode;
-
-  /** Accessor to the underlying keyCode value is the parent event. */
-  int get _realKeyCode => JS('int', '#.keyCode', _parent);
-
-  /** Accessor to the underlying charCode value is the parent event. */
-  int get _realCharCode => JS('int', '#.charCode', _parent);
-
-  /** Accessor to the underlying altKey value is the parent event. */
-  bool get _realAltKey => JS('bool', '#.altKey', _parent);
-
-  /** Shadows on top of the parent's currentTarget. */
-  EventTarget _currentTarget;
-
-  final InputDeviceCapabilities sourceCapabilities;
-
-  /**
-   * The value we want to use for this object's dispatch. Created here so it is
-   * only invoked once.
-   */
-  static final _keyboardEventDispatchRecord = _makeRecord();
-
-  /** Helper to statically create the dispatch record. */
-  static _makeRecord() {
-    var interceptor = JS_INTERCEPTOR_CONSTANT(KeyboardEvent);
-    return makeLeafDispatchRecord(interceptor);
-  }
-
-  /** Construct a KeyEvent with [parent] as the event we're emulating. */
-  KeyEvent.wrap(KeyboardEvent parent) : super(parent) {
-    _parent = parent;
-    _shadowAltKey = _realAltKey;
-    _shadowCharCode = _realCharCode;
-    _shadowKeyCode = _realKeyCode;
-    _currentTarget = _parent.currentTarget;
-  }
-
-  /** Programmatically create a new KeyEvent (and KeyboardEvent). */
-  factory KeyEvent(String type,
-      {Window view,
-      bool canBubble: true,
-      bool cancelable: true,
-      int keyCode: 0,
-      int charCode: 0,
-      int location: 1,
-      bool ctrlKey: false,
-      bool altKey: false,
-      bool shiftKey: false,
-      bool metaKey: false,
-      EventTarget currentTarget}) {
-    if (view == null) {
-      view = window;
-    }
-
-    var eventObj;
-    // In these two branches we create an underlying native KeyboardEvent, but
-    // we set it with our specified values. Because we are doing custom setting
-    // of certain values (charCode/keyCode, etc) only in this class (as opposed
-    // to KeyboardEvent) and the way we set these custom values depends on the
-    // type of underlying JS object, we do all the construction for the
-    // underlying KeyboardEvent here.
-    if (canUseDispatchEvent) {
-      // Currently works in everything but Internet Explorer.
-      eventObj = new Event.eventType('Event', type,
-          canBubble: canBubble, cancelable: cancelable);
-
-      JS('void', '#.keyCode = #', eventObj, keyCode);
-      JS('void', '#.which = #', eventObj, keyCode);
-      JS('void', '#.charCode = #', eventObj, charCode);
-
-      JS('void', '#.location = #', eventObj, location);
-      JS('void', '#.ctrlKey = #', eventObj, ctrlKey);
-      JS('void', '#.altKey = #', eventObj, altKey);
-      JS('void', '#.shiftKey = #', eventObj, shiftKey);
-      JS('void', '#.metaKey = #', eventObj, metaKey);
-    } else {
-      // Currently this works on everything but Safari. Safari throws an
-      // "Attempting to change access mechanism for an unconfigurable property"
-      // TypeError when trying to do the Object.defineProperty hack, so we avoid
-      // this branch if possible.
-      // Also, if we want this branch to work in FF, we also need to modify
-      // _initKeyboardEvent to also take charCode and keyCode values to
-      // initialize initKeyEvent.
-
-      eventObj = new Event.eventType('KeyboardEvent', type,
-          canBubble: canBubble, cancelable: cancelable);
-
-      // Chromium Hack
-      JS(
-          'void',
-          "Object.defineProperty(#, 'keyCode', {"
-          "  get : function() { return this.keyCodeVal; } })",
-          eventObj);
-      JS(
-          'void',
-          "Object.defineProperty(#, 'which', {"
-          "  get : function() { return this.keyCodeVal; } })",
-          eventObj);
-      JS(
-          'void',
-          "Object.defineProperty(#, 'charCode', {"
-          "  get : function() { return this.charCodeVal; } })",
-          eventObj);
-
-      var keyIdentifier = _convertToHexString(charCode, keyCode);
-      eventObj._initKeyboardEvent(type, canBubble, cancelable, view,
-          keyIdentifier, location, ctrlKey, altKey, shiftKey, metaKey);
-      JS('void', '#.keyCodeVal = #', eventObj, keyCode);
-      JS('void', '#.charCodeVal = #', eventObj, charCode);
-    }
-    // Tell dart2js that it smells like a KeyboardEvent!
-    setDispatchProperty(eventObj, _keyboardEventDispatchRecord);
-
-    var keyEvent = new KeyEvent.wrap(eventObj);
-    if (keyEvent._currentTarget == null) {
-      keyEvent._currentTarget = currentTarget == null ? window : currentTarget;
-    }
-    return keyEvent;
-  }
-
-  // Currently known to work on all browsers but IE.
-  static bool get canUseDispatchEvent => JS(
-      'bool',
-      '(typeof document.body.dispatchEvent == "function")'
-      '&& document.body.dispatchEvent.length > 0');
-
-  /** The currently registered target for this event. */
-  EventTarget get currentTarget => _currentTarget;
-
-  // This is an experimental method to be sure.
-  static String _convertToHexString(int charCode, int keyCode) {
-    if (charCode != -1) {
-      var hex = charCode.toRadixString(16); // Convert to hexadecimal.
-      StringBuffer sb = new StringBuffer('U+');
-      for (int i = 0; i < 4 - hex.length; i++) sb.write('0');
-      sb.write(hex);
-      return sb.toString();
-    } else {
-      return KeyCode._convertKeyCodeToKeyName(keyCode);
-    }
-  }
-
-  // TODO(efortuna): If KeyEvent is sufficiently successful that we want to make
-  // it the default keyboard event handling, move these methods over to Element.
-  /** Accessor to provide a stream of KeyEvents on the desired target. */
-  static EventStreamProvider<KeyEvent> keyDownEvent =
-      new _KeyboardEventHandler('keydown');
-  /** Accessor to provide a stream of KeyEvents on the desired target. */
-  static EventStreamProvider<KeyEvent> keyUpEvent =
-      new _KeyboardEventHandler('keyup');
-  /** Accessor to provide a stream of KeyEvents on the desired target. */
-  static EventStreamProvider<KeyEvent> keyPressEvent =
-      new _KeyboardEventHandler('keypress');
-
-  String get code => _parent.code;
-  /** True if the ctrl key is pressed during this event. */
-  bool get ctrlKey => _parent.ctrlKey;
-  int get detail => _parent.detail;
-  String get key => _parent.key;
-  /**
-   * Accessor to the part of the keyboard that the key was pressed from (one of
-   * KeyLocation.STANDARD, KeyLocation.RIGHT, KeyLocation.LEFT,
-   * KeyLocation.NUMPAD, KeyLocation.MOBILE, KeyLocation.JOYSTICK).
-   */
-  int get location => _parent.location;
-  /** True if the Meta (or Mac command) key is pressed during this event. */
-  bool get metaKey => _parent.metaKey;
-  /** True if the shift key was pressed during this event. */
-  bool get shiftKey => _parent.shiftKey;
-  Window get view => _parent.view;
-  void _initUIEvent(
-      String type, bool canBubble, bool cancelable, Window view, int detail) {
-    throw new UnsupportedError("Cannot initialize a UI Event from a KeyEvent.");
-  }
-
-  String get _shadowKeyIdentifier => JS('String', '#.keyIdentifier', _parent);
-
-  int get _charCode => charCode;
-  int get _keyCode => keyCode;
-  int get _which => which;
-
-  String get _keyIdentifier {
-    throw new UnsupportedError("keyIdentifier is unsupported.");
-  }
-
-  void _initKeyboardEvent(
-      String type,
-      bool canBubble,
-      bool cancelable,
-      Window view,
-      String keyIdentifier,
-      int location,
-      bool ctrlKey,
-      bool altKey,
-      bool shiftKey,
-      bool metaKey) {
-    throw new UnsupportedError(
-        "Cannot initialize a KeyboardEvent from a KeyEvent.");
-  }
-
-  @Experimental() // untriaged
-  bool getModifierState(String keyArgument) => throw new UnimplementedError();
-
-  @Experimental() // untriaged
-  bool get repeat => throw new UnimplementedError();
-  dynamic get _get_view => throw new UnimplementedError();
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-class Platform {
-  /**
-   * Returns true if dart:typed_data types are supported on this
-   * browser.  If false, using these types will generate a runtime
-   * error.
-   */
-  static final supportsTypedData = JS('bool', '!!(window.ArrayBuffer)');
-
-  /**
-   * Returns true if SIMD types in dart:typed_data types are supported
-   * on this browser.  If false, using these types will generate a runtime
-   * error.
-   */
-  static final supportsSimd = false;
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/**
- * Helper class to implement custom events which wrap DOM events.
- */
-class _WrappedEvent implements Event {
-  final Event wrapped;
-
-  /** The CSS selector involved with event delegation. */
-  String _selector;
-
-  _WrappedEvent(this.wrapped);
-
-  bool get bubbles => wrapped.bubbles;
-
-  bool get cancelable => wrapped.cancelable;
-
-  EventTarget get currentTarget => wrapped.currentTarget;
-
-  List<EventTarget> deepPath() {
-    return wrapped.deepPath();
-  }
-
-  bool get defaultPrevented => wrapped.defaultPrevented;
-
-  int get eventPhase => wrapped.eventPhase;
-
-  bool get isTrusted => wrapped.isTrusted;
-
-  bool get scoped => wrapped.scoped;
-
-  EventTarget get target => wrapped.target;
-
-  double get timeStamp => wrapped.timeStamp;
-
-  String get type => wrapped.type;
-
-  void _initEvent(String eventTypeArg, bool canBubbleArg, bool cancelableArg) {
-    throw new UnsupportedError('Cannot initialize this Event.');
-  }
-
-  void preventDefault() {
-    wrapped.preventDefault();
-  }
-
-  void stopImmediatePropagation() {
-    wrapped.stopImmediatePropagation();
-  }
-
-  void stopPropagation() {
-    wrapped.stopPropagation();
-  }
-
-  /**
-   * A pointer to the element whose CSS selector matched within which an event
-   * was fired. If this Event was not associated with any Event delegation,
-   * accessing this value will throw an [UnsupportedError].
-   */
-  Element get matchingTarget {
-    if (_selector == null) {
-      throw new UnsupportedError('Cannot call matchingTarget if this Event did'
-          ' not arise as a result of event delegation.');
-    }
-    Element currentTarget = this.currentTarget;
-    Element target = this.target;
-    var matchedTarget;
-    do {
-      if (target.matches(_selector)) return target;
-      target = target.parent;
-    } while (target != null && target != currentTarget.parent);
-    throw new StateError('No selector matched for populating matchedTarget.');
-  }
-
-  /**
-   * This event's path, taking into account shadow DOM.
-   *
-   * ## Other resources
-   *
-   * * [Shadow DOM extensions to
-   *   Event](http://w3c.github.io/webcomponents/spec/shadow/#extensions-to-event)
-   *   from W3C.
-   */
-  // https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#extensions-to-event
-  @Experimental()
-  List<Node> get path => wrapped.path;
-
-  dynamic get _get_currentTarget => wrapped._get_currentTarget;
-
-  dynamic get _get_target => wrapped._get_target;
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-void Function(T) _wrapZone<T>(void Function(T) callback) {
-  // For performance reasons avoid wrapping if we are in the root zone.
-  if (Zone.current == Zone.ROOT) return callback;
-  if (callback == null) return null;
-  return Zone.current.bindUnaryCallbackGuarded(callback);
-}
-
-void Function(T1, T2) _wrapBinaryZone<T1, T2>(void Function(T1, T2) callback) {
-  // For performance reasons avoid wrapping if we are in the root zone.
-  if (Zone.current == Zone.ROOT) return callback;
-  if (callback == null) return null;
-  return Zone.current.bindBinaryCallbackGuarded(callback);
-}
-
-/**
- * Alias for [querySelector]. Note this function is deprecated because its
- * semantics will be changing in the future.
- */
-@deprecated
-@Experimental()
-Element query(String relativeSelectors) => document.query(relativeSelectors);
-/**
- * Alias for [querySelectorAll]. Note this function is deprecated because its
- * semantics will be changing in the future.
- */
-@deprecated
-@Experimental()
-ElementList<Element> queryAll(String relativeSelectors) =>
-    document.queryAll(relativeSelectors);
-
-/**
- * Finds the first descendant element of this document that matches the
- * specified group of selectors.
- *
- * Unless your webpage contains multiple documents, the top-level
- * [querySelector]
- * method behaves the same as this method, so you should use it instead to
- * save typing a few characters.
- *
- * [selectors] should be a string using CSS selector syntax.
- *
- *     var element1 = document.querySelector('.className');
- *     var element2 = document.querySelector('#id');
- *
- * For details about CSS selector syntax, see the
- * [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
- */
-Element querySelector(String selectors) => document.querySelector(selectors);
-
-/**
- * Finds all descendant elements of this document that match the specified
- * group of selectors.
- *
- * Unless your webpage contains multiple documents, the top-level
- * [querySelectorAll]
- * method behaves the same as this method, so you should use it instead to
- * save typing a few characters.
- *
- * [selectors] should be a string using CSS selector syntax.
- *
- *     var items = document.querySelectorAll('.itemClassName');
- *
- * For details about CSS selector syntax, see the
- * [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
- */
-ElementList<Element> querySelectorAll(String selectors) =>
-    document.querySelectorAll(selectors);
-
-/// A utility for changing the Dart wrapper type for elements.
-abstract class ElementUpgrader {
-  /// Upgrade the specified element to be of the Dart type this was created for.
-  ///
-  /// After upgrading the element passed in is invalid and the returned value
-  /// should be used instead.
-  Element upgrade(Element element);
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/**
- * Interface used to validate that only accepted elements and attributes are
- * allowed while parsing HTML strings into DOM nodes.
- *
- * In general, customization of validation behavior should be done via the
- * [NodeValidatorBuilder] class to mitigate the chances of incorrectly
- * implementing validation rules.
- */
-abstract class NodeValidator {
-  /**
-   * Construct a default NodeValidator which only accepts whitelisted HTML5
-   * elements and attributes.
-   *
-   * If a uriPolicy is not specified then the default uriPolicy will be used.
-   */
-  factory NodeValidator({UriPolicy uriPolicy}) =>
-      new _Html5NodeValidator(uriPolicy: uriPolicy);
-
-  factory NodeValidator.throws(NodeValidator base) =>
-      new _ThrowsNodeValidator(base);
-
-  /**
-   * Returns true if the tagName is an accepted type.
-   */
-  bool allowsElement(Element element);
-
-  /**
-   * Returns true if the attribute is allowed.
-   *
-   * The attributeName parameter will always be in lowercase.
-   *
-   * See [allowsElement] for format of tagName.
-   */
-  bool allowsAttribute(Element element, String attributeName, String value);
-}
-
-/**
- * Performs sanitization of a node tree after construction to ensure that it
- * does not contain any disallowed elements or attributes.
- *
- * In general custom implementations of this class should not be necessary and
- * all validation customization should be done in custom NodeValidators, but
- * custom implementations of this class can be created to perform more complex
- * tree sanitization.
- */
-abstract class NodeTreeSanitizer {
-  /**
-   * Constructs a default tree sanitizer which will remove all elements and
-   * attributes which are not allowed by the provided validator.
-   */
-  factory NodeTreeSanitizer(NodeValidator validator) =>
-      new _ValidatingTreeSanitizer(validator);
-
-  /**
-   * Called with the root of the tree which is to be sanitized.
-   *
-   * This method needs to walk the entire tree and either remove elements and
-   * attributes which are not recognized as safe or throw an exception which
-   * will mark the entire tree as unsafe.
-   */
-  void sanitizeTree(Node node);
-
-  /**
-   * A sanitizer for trees that we trust. It does no validation and allows
-   * any elements. It is also more efficient, since it can pass the text
-   * directly through to the underlying APIs without creating a document
-   * fragment to be sanitized.
-   */
-  static const trusted = const _TrustedHtmlTreeSanitizer();
-}
-
-/**
- * A sanitizer for trees that we trust. It does no validation and allows
- * any elements.
- */
-class _TrustedHtmlTreeSanitizer implements NodeTreeSanitizer {
-  const _TrustedHtmlTreeSanitizer();
-
-  sanitizeTree(Node node) {}
-}
-
-/**
- * Defines the policy for what types of uris are allowed for particular
- * attribute values.
- *
- * This can be used to provide custom rules such as allowing all http:// URIs
- * for image attributes but only same-origin URIs for anchor tags.
- */
-abstract class UriPolicy {
-  /**
-   * Constructs the default UriPolicy which is to only allow Uris to the same
-   * origin as the application was launched from.
-   *
-   * This will block all ftp: mailto: URIs. It will also block accessing
-   * https://example.com if the app is running from http://example.com.
-   */
-  factory UriPolicy() => new _SameOriginUriPolicy();
-
-  /**
-   * Checks if the uri is allowed on the specified attribute.
-   *
-   * The uri provided may or may not be a relative path.
-   */
-  bool allowsUri(String uri);
-}
-
-/**
- * Allows URIs to the same origin as the current application was loaded from
- * (such as https://example.com:80).
- */
-class _SameOriginUriPolicy implements UriPolicy {
-  final AnchorElement _hiddenAnchor = new AnchorElement();
-  final Location _loc = window.location;
-
-  bool allowsUri(String uri) {
-    _hiddenAnchor.href = uri;
-    // IE leaves an empty hostname for same-origin URIs.
-    return (_hiddenAnchor.hostname == _loc.hostname &&
-            _hiddenAnchor.port == _loc.port &&
-            _hiddenAnchor.protocol == _loc.protocol) ||
-        (_hiddenAnchor.hostname == '' &&
-            _hiddenAnchor.port == '' &&
-            (_hiddenAnchor.protocol == ':' || _hiddenAnchor.protocol == ''));
-  }
-}
-
-class _ThrowsNodeValidator implements NodeValidator {
-  final NodeValidator validator;
-
-  _ThrowsNodeValidator(this.validator) {}
-
-  bool allowsElement(Element element) {
-    if (!validator.allowsElement(element)) {
-      throw new ArgumentError(Element._safeTagName(element));
-    }
-    return true;
-  }
-
-  bool allowsAttribute(Element element, String attributeName, String value) {
-    if (!validator.allowsAttribute(element, attributeName, value)) {
-      throw new ArgumentError(
-          '${Element._safeTagName(element)}[$attributeName="$value"]');
-    }
-  }
-}
-
-/**
- * Standard tree sanitizer which validates a node tree against the provided
- * validator and removes any nodes or attributes which are not allowed.
- */
-class _ValidatingTreeSanitizer implements NodeTreeSanitizer {
-  NodeValidator validator;
-  _ValidatingTreeSanitizer(this.validator) {}
-
-  void sanitizeTree(Node node) {
-    void walk(Node node, Node parent) {
-      sanitizeNode(node, parent);
-
-      var child = node.lastChild;
-      while (null != child) {
-        var nextChild;
-        try {
-          // Child may be removed during the walk, and we may not
-          // even be able to get its previousNode.
-          nextChild = child.previousNode;
-        } catch (e) {
-          // Child appears bad, remove it. We want to check the rest of the
-          // children of node and, but we have no way of getting to the next
-          // child, so start again from the last child.
-          _removeNode(child, node);
-          child = null;
-          nextChild = node.lastChild;
-        }
-        if (child != null) walk(child, node);
-        child = nextChild;
-      }
-    }
-
-    walk(node, null);
-  }
-
-  /// Aggressively try to remove node.
-  void _removeNode(Node node, Node parent) {
-    // If we have the parent, it's presumably already passed more sanitization
-    // or is the fragment, so ask it to remove the child. And if that fails
-    // try to set the outer html.
-    if (parent == null) {
-      node.remove();
-    } else {
-      parent._removeChild(node);
-    }
-  }
-
-  /// Sanitize the element, assuming we can't trust anything about it.
-  void _sanitizeUntrustedElement(/* Element */ element, Node parent) {
-    // If the _hasCorruptedAttributes does not successfully return false,
-    // then we consider it corrupted and remove.
-    // TODO(alanknight): This is a workaround because on Firefox
-    // embed/object
-    // tags typeof is "function", not "object". We don't recognize them, and
-    // can't call methods. This does mean that you can't explicitly allow an
-    // embed tag. The only thing that will let it through is a null
-    // sanitizer that doesn't traverse the tree at all. But sanitizing while
-    // allowing embeds seems quite unlikely. This is also the reason that we
-    // can't declare the type of element, as an embed won't pass any type
-    // check in dart2js.
-    var corrupted = true;
-    var attrs;
-    var isAttr;
-    try {
-      // If getting/indexing attributes throws, count that as corrupt.
-      attrs = element.attributes;
-      isAttr = attrs['is'];
-      var corruptedTest1 = Element._hasCorruptedAttributes(element);
-
-      // On IE, erratically, the hasCorruptedAttributes test can return false,
-      // even though it clearly is corrupted. A separate copy of the test
-      // inlining just the basic check seems to help.
-      corrupted = corruptedTest1
-          ? true
-          : Element._hasCorruptedAttributesAdditionalCheck(element);
-    } catch (e) {}
-    var elementText = 'element unprintable';
-    try {
-      elementText = element.toString();
-    } catch (e) {}
-    try {
-      var elementTagName = Element._safeTagName(element);
-      _sanitizeElement(element, parent, corrupted, elementText, elementTagName,
-          attrs, isAttr);
-    } on ArgumentError {
-      // Thrown by _ThrowsNodeValidator
-      rethrow;
-    } catch (e) {
-      // Unexpected exception sanitizing -> remove
-      _removeNode(element, parent);
-      window.console.warn('Removing corrupted element $elementText');
-    }
-  }
-
-  /// Having done basic sanity checking on the element, and computed the
-  /// important attributes we want to check, remove it if it's not valid
-  /// or not allowed, either as a whole or particular attributes.
-  void _sanitizeElement(Element element, Node parent, bool corrupted,
-      String text, String tag, Map attrs, String isAttr) {
-    if (false != corrupted) {
-      _removeNode(element, parent);
-      window.console
-          .warn('Removing element due to corrupted attributes on <$text>');
-      return;
-    }
-    if (!validator.allowsElement(element)) {
-      _removeNode(element, parent);
-      window.console.warn('Removing disallowed element <$tag> from $parent');
-      return;
-    }
-
-    if (isAttr != null) {
-      if (!validator.allowsAttribute(element, 'is', isAttr)) {
-        _removeNode(element, parent);
-        window.console.warn('Removing disallowed type extension '
-            '<$tag is="$isAttr">');
-        return;
-      }
-    }
-
-    // TODO(blois): Need to be able to get all attributes, irrespective of
-    // XMLNS.
-    var keys = attrs.keys.toList();
-    for (var i = attrs.length - 1; i >= 0; --i) {
-      var name = keys[i];
-      if (!validator.allowsAttribute(
-          element, name.toLowerCase(), attrs[name])) {
-        window.console.warn('Removing disallowed attribute '
-            '<$tag $name="${attrs[name]}">');
-        attrs.remove(name);
-      }
-    }
-
-    if (element is TemplateElement) {
-      TemplateElement template = element;
-      sanitizeTree(template.content);
-    }
-  }
-
-  /// Sanitize the node and its children recursively.
-  void sanitizeNode(Node node, Node parent) {
-    switch (node.nodeType) {
-      case Node.ELEMENT_NODE:
-        _sanitizeUntrustedElement(node, parent);
-        break;
-      case Node.COMMENT_NODE:
-      case Node.DOCUMENT_FRAGMENT_NODE:
-      case Node.TEXT_NODE:
-      case Node.CDATA_SECTION_NODE:
-        break;
-      default:
-        _removeNode(node, parent);
-    }
-  }
-}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/html/dart2js/nativewrappers.dart b/pkg/dev_compiler/tool/input_sdk/lib/html/dart2js/nativewrappers.dart
deleted file mode 100644
index bd33769..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/html/dart2js/nativewrappers.dart
+++ /dev/null
@@ -1,7 +0,0 @@
-// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// This is a dummy library that is referred from dart:io.  It's only used for
-// the VM.
-library dart.nativewrappers;
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/conversions.dart b/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/conversions.dart
deleted file mode 100644
index 22f0181..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/conversions.dart
+++ /dev/null
@@ -1,369 +0,0 @@
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// Conversions for IDBKey.
-//
-// Per http://www.w3.org/TR/IndexedDB/#key-construct
-//
-// "A value is said to be a valid key if it is one of the following types: Array
-// JavaScript objects [ECMA-262], DOMString [WEBIDL], Date [ECMA-262] or float
-// [WEBIDL]. However Arrays are only valid keys if every item in the array is
-// defined and is a valid key (i.e. sparse arrays can not be valid keys) and if
-// the Array doesn't directly or indirectly contain itself. Any non-numeric
-// properties are ignored, and thus does not affect whether the Array is a valid
-// key. Additionally, if the value is of type float, it is only a valid key if
-// it is not NaN, and if the value is of type Date it is only a valid key if its
-// [[PrimitiveValue]] internal property, as defined by [ECMA-262], is not NaN."
-
-// What is required is to ensure that an Lists in the key are actually
-// JavaScript arrays, and any Dates are JavaScript Dates.
-
-// Conversions for Window.  These check if the window is the local
-// window, and if it's not, wraps or unwraps it with a secure wrapper.
-// We need to test for EventTarget here as well as it's a base type.
-// We omit an unwrapper for Window as no methods take a non-local
-// window as a parameter.
-
-part of html_common;
-
-/// Converts a Dart value into a JavaScript SerializedScriptValue.
-convertDartToNative_SerializedScriptValue(value) {
-  return convertDartToNative_PrepareForStructuredClone(value);
-}
-
-/// Since the source object may be viewed via a JavaScript event listener the
-/// original may not be modified.
-convertNativeToDart_SerializedScriptValue(object) {
-  return convertNativeToDart_AcceptStructuredClone(object, mustCopy: true);
-}
-
-/**
- * Converts a Dart value into a JavaScript SerializedScriptValue.  Returns the
- * original input or a functional 'copy'.  Does not mutate the original.
- *
- * The main transformation is the translation of Dart Maps are converted to
- * JavaScript Objects.
- *
- * The algorithm is essentially a dry-run of the structured clone algorithm
- * described at
- * http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#structured-clone
- * https://www.khronos.org/registry/typedarray/specs/latest/#9
- *
- * Since the result of this function is expected to be passed only to JavaScript
- * operations that perform the structured clone algorithm which does not mutate
- * its output, the result may share structure with the input [value].
- */
-abstract class _StructuredClone {
-  // TODO(sra): Replace slots with identity hash table.
-  var values = [];
-  var copies = []; // initially 'null', 'true' during initial DFS, then a copy.
-
-  int findSlot(value) {
-    int length = values.length;
-    for (int i = 0; i < length; i++) {
-      if (identical(values[i], value)) return i;
-    }
-    values.add(value);
-    copies.add(null);
-    return length;
-  }
-
-  readSlot(int i) => copies[i];
-  writeSlot(int i, x) {
-    copies[i] = x;
-  }
-
-  cleanupSlots() {} // Will be needed if we mark objects with a property.
-  bool cloneNotRequired(object);
-  newJsMap();
-  List newJsList(length);
-  void putIntoMap(map, key, value);
-
-  // Returns the input, or a clone of the input.
-  walk(e) {
-    if (e == null) return e;
-    if (e is bool) return e;
-    if (e is num) return e;
-    if (e is String) return e;
-    if (e is DateTime) {
-      return convertDartToNative_DateTime(e);
-    }
-    if (e is RegExp) {
-      // TODO(sra).
-      throw new UnimplementedError('structured clone of RegExp');
-    }
-
-    // The browser's internal structured cloning algorithm will copy certain
-    // types of object, but it will copy only its own implementations and not
-    // just any Dart implementations of the interface.
-
-    // TODO(sra): The JavaScript objects suitable for direct cloning by the
-    // structured clone algorithm could be tagged with an private interface.
-
-    if (e is File) return e;
-    if (e is Blob) return e;
-    if (e is FileList) return e;
-
-    // TODO(sra): Firefox: How to convert _TypedImageData on the other end?
-    if (e is ImageData) return e;
-    if (cloneNotRequired(e)) return e;
-
-    if (e is Map) {
-      var slot = findSlot(e);
-      var copy = readSlot(slot);
-      if (copy != null) return copy;
-      copy = newJsMap();
-      writeSlot(slot, copy);
-      e.forEach((key, value) {
-        putIntoMap(copy, key, walk(value));
-      });
-      return copy;
-    }
-
-    if (e is List) {
-      // Since a JavaScript Array is an instance of Dart List it is tempting
-      // in dart2js to avoid making a copy of the list if there is no need
-      // to copy anything reachable from the array.  However, the list may have
-      // non-native properties or methods from interceptors and such, e.g.
-      // an immutability marker. So we  had to stop doing that.
-      var slot = findSlot(e);
-      var copy = JS('List', '#', readSlot(slot));
-      if (copy != null) return copy;
-      copy = copyList(e, slot);
-      return copy;
-    }
-
-    throw new UnimplementedError('structured clone of other type');
-  }
-
-  List copyList(List e, int slot) {
-    int i = 0;
-    int length = e.length;
-    var copy = newJsList(length);
-    writeSlot(slot, copy);
-    for (; i < length; i++) {
-      copy[i] = walk(e[i]);
-    }
-    return copy;
-  }
-
-  convertDartToNative_PrepareForStructuredClone(value) {
-    var copy = walk(value);
-    cleanupSlots();
-    return copy;
-  }
-}
-
-/**
- * Converts a native value into a Dart object.
- *
- * If [mustCopy] is [:false:], may return the original input.  May mutate the
- * original input (but will be idempotent if mutation occurs).  It is assumed
- * that this conversion happens on native serializable script values such values
- * from native DOM calls.
- *
- * [object] is the result of a structured clone operation.
- *
- * If necessary, JavaScript Dates are converted into Dart Dates.
- *
- * If [mustCopy] is [:true:], the entire object is copied and the original input
- * is not mutated.  This should be the case where Dart and JavaScript code can
- * access the value, for example, via multiple event listeners for
- * MessageEvents.  Mutating the object to make it more 'Dart-like' would corrupt
- * the value as seen from the JavaScript listeners.
- */
-abstract class _AcceptStructuredClone {
-  // TODO(sra): Replace slots with identity hash table.
-  var values = [];
-  var copies = []; // initially 'null', 'true' during initial DFS, then a copy.
-  bool mustCopy = false;
-
-  int findSlot(value) {
-    int length = values.length;
-    for (int i = 0; i < length; i++) {
-      if (identicalInJs(values[i], value)) return i;
-    }
-    values.add(value);
-    copies.add(null);
-    return length;
-  }
-
-  /// Are the two objects identical, but taking into account that two JsObject
-  /// wrappers may not be identical, but their underlying Js Object might be.
-  bool identicalInJs(a, b);
-  readSlot(int i) => copies[i];
-  writeSlot(int i, x) {
-    copies[i] = x;
-  }
-
-  /// Iterate over the JS properties.
-  forEachJsField(object, action(key, value));
-
-  /// Create a new Dart list of the given length. May create a native List or
-  /// a JsArray, depending if we're in Dartium or dart2js.
-  List newDartList(length);
-
-  walk(e) {
-    if (e == null) return e;
-    if (e is bool) return e;
-    if (e is num) return e;
-    if (e is String) return e;
-
-    if (isJavaScriptDate(e)) {
-      return convertNativeToDart_DateTime(e);
-    }
-
-    if (isJavaScriptRegExp(e)) {
-      // TODO(sra).
-      throw new UnimplementedError('structured clone of RegExp');
-    }
-
-    if (isJavaScriptPromise(e)) {
-      return convertNativePromiseToDartFuture(e);
-    }
-
-    if (isJavaScriptSimpleObject(e)) {
-      // TODO(sra): If mustCopy is false, swizzle the prototype for one of a Map
-      // implementation that uses the properies as storage.
-      var slot = findSlot(e);
-      var copy = readSlot(slot);
-      if (copy != null) return copy;
-      copy = {};
-
-      writeSlot(slot, copy);
-      forEachJsField(e, (key, value) => copy[key] = walk(value));
-      return copy;
-    }
-
-    if (isJavaScriptArray(e)) {
-      var l = JS('List', '#', e);
-      var slot = findSlot(l);
-      var copy = JS('List', '#', readSlot(slot));
-      if (copy != null) return copy;
-
-      int length = l.length;
-      // Since a JavaScript Array is an instance of Dart List, we can modify it
-      // in-place unless we must copy.
-      copy = mustCopy ? newDartList(length) : l;
-      writeSlot(slot, copy);
-
-      for (int i = 0; i < length; i++) {
-        copy[i] = walk(l[i]);
-      }
-      return copy;
-    }
-
-    // Assume anything else is already a valid Dart object, either by having
-    // already been processed, or e.g. a clonable native class.
-    return e;
-  }
-
-  convertNativeToDart_AcceptStructuredClone(object, {mustCopy: false}) {
-    this.mustCopy = mustCopy;
-    var copy = walk(object);
-    return copy;
-  }
-}
-
-// Conversions for ContextAttributes.
-//
-// On Firefox, the returned ContextAttributes is a plain object.
-class ContextAttributes {
-  bool alpha;
-  bool antialias;
-  bool depth;
-  bool premultipliedAlpha;
-  bool preserveDrawingBuffer;
-  bool stencil;
-  bool failIfMajorPerformanceCaveat;
-
-  ContextAttributes(
-      this.alpha,
-      this.antialias,
-      this.depth,
-      this.failIfMajorPerformanceCaveat,
-      this.premultipliedAlpha,
-      this.preserveDrawingBuffer,
-      this.stencil);
-}
-
-convertNativeToDart_ContextAttributes(nativeContextAttributes) {
-  // On Firefox the above test fails because ContextAttributes is a plain
-  // object so we create a _TypedContextAttributes.
-
-  return new ContextAttributes(
-      JS('var', '#.alpha', nativeContextAttributes),
-      JS('var', '#.antialias', nativeContextAttributes),
-      JS('var', '#.depth', nativeContextAttributes),
-      JS('var', '#.failIfMajorPerformanceCaveat', nativeContextAttributes),
-      JS('var', '#.premultipliedAlpha', nativeContextAttributes),
-      JS('var', '#.preserveDrawingBuffer', nativeContextAttributes),
-      JS('var', '#.stencil', nativeContextAttributes));
-}
-
-// Conversions for ImageData
-//
-// On Firefox, the returned ImageData is a plain object.
-
-class _TypedImageData implements ImageData {
-  final Uint8ClampedList data;
-  final int height;
-  final int width;
-
-  _TypedImageData(this.data, this.height, this.width);
-}
-
-ImageData convertNativeToDart_ImageData(nativeImageData) {
-  // None of the native getters that return ImageData are declared as returning
-  // [ImageData] since that is incorrect for FireFox, which returns a plain
-  // Object.  So we need something that tells the compiler that the ImageData
-  // class has been instantiated.
-  // TODO(sra): Remove this when all the ImageData returning APIs have been
-  // annotated as returning the union ImageData + Object.
-  JS('ImageData', '0');
-
-  if (nativeImageData is ImageData) {
-    // Fix for Issue 16069: on IE, the `data` field is a CanvasPixelArray which
-    // has Array as the constructor property.  This interferes with finding the
-    // correct interceptor.  Fix it by overwriting the constructor property.
-    var data = nativeImageData.data;
-    if (JS('bool', '#.constructor === Array', data)) {
-      if (JS('bool', 'typeof CanvasPixelArray !== "undefined"')) {
-        JS('void', '#.constructor = CanvasPixelArray', data);
-        // This TypedArray property is missing from CanvasPixelArray.
-        JS('void', '#.BYTES_PER_ELEMENT = 1', data);
-      }
-    }
-
-    return nativeImageData;
-  }
-
-  // On Firefox the above test fails because [nativeImageData] is a plain
-  // object.  So we create a _TypedImageData.
-
-  return new _TypedImageData(
-      JS('NativeUint8ClampedList', '#.data', nativeImageData),
-      JS('var', '#.height', nativeImageData),
-      JS('var', '#.width', nativeImageData));
-}
-
-// We can get rid of this conversion if _TypedImageData implements the fields
-// with native names.
-convertDartToNative_ImageData(ImageData imageData) {
-  if (imageData is _TypedImageData) {
-    return JS('', '{data: #, height: #, width: #}', imageData.data,
-        imageData.height, imageData.width);
-  }
-  return imageData;
-}
-
-const String _serializedScriptValue = 'num|String|bool|'
-    'JSExtendableArray|=Object|'
-    'Blob|File|NativeByteBuffer|NativeTypedData'
-    // TODO(sra): Add Date, RegExp.
-    ;
-const annotation_Creates_SerializedScriptValue =
-    const Creates(_serializedScriptValue);
-const annotation_Returns_SerializedScriptValue =
-    const Returns(_serializedScriptValue);
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/conversions_dart2js.dart b/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/conversions_dart2js.dart
deleted file mode 100644
index 5068a9d..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/conversions_dart2js.dart
+++ /dev/null
@@ -1,95 +0,0 @@
-part of html_common;
-
-/// Converts a JavaScript object with properties into a Dart Map.
-/// Not suitable for nested objects.
-Map convertNativeToDart_Dictionary(object) {
-  if (object == null) return null;
-  var dict = {};
-  var keys = JS('JSExtendableArray', 'Object.getOwnPropertyNames(#)', object);
-  for (final key in keys) {
-    dict[key] = JS('var', '#[#]', object, key);
-  }
-  return dict;
-}
-
-/// Converts a flat Dart map into a JavaScript object with properties.
-convertDartToNative_Dictionary(Map dict, [void postCreate(Object f)]) {
-  if (dict == null) return null;
-  var object = JS('var', '{}');
-  if (postCreate != null) {
-    postCreate(object);
-  }
-  dict.forEach((key, value) {
-    JS('void', '#[#] = #', object, key, value);
-  });
-  return object;
-}
-
-/**
- * Ensures that the input is a JavaScript Array.
- *
- * Creates a new JavaScript array if necessary, otherwise returns the original.
- */
-List convertDartToNative_StringArray(List<String> input) {
-  // TODO(sra).  Implement this.
-  return input;
-}
-
-DateTime convertNativeToDart_DateTime(date) {
-  var millisSinceEpoch = JS('int', '#.getTime()', date);
-  return new DateTime.fromMillisecondsSinceEpoch(millisSinceEpoch, isUtc: true);
-}
-
-convertDartToNative_DateTime(DateTime date) {
-  return JS('', 'new Date(#)', date.millisecondsSinceEpoch);
-}
-
-convertDartToNative_PrepareForStructuredClone(value) =>
-    new _StructuredCloneDart2Js()
-        .convertDartToNative_PrepareForStructuredClone(value);
-
-convertNativeToDart_AcceptStructuredClone(object, {mustCopy: false}) =>
-    new _AcceptStructuredCloneDart2Js()
-        .convertNativeToDart_AcceptStructuredClone(object, mustCopy: mustCopy);
-
-class _StructuredCloneDart2Js extends _StructuredClone {
-  newJsMap() => JS('var', '{}');
-  putIntoMap(map, key, value) => JS('void', '#[#] = #', map, key, value);
-  newJsList(length) => JS('JSExtendableArray', 'new Array(#)', length);
-  cloneNotRequired(e) => (e is NativeByteBuffer || e is NativeTypedData);
-}
-
-class _AcceptStructuredCloneDart2Js extends _AcceptStructuredClone {
-  List newJsList(length) => JS('JSExtendableArray', 'new Array(#)', length);
-  List newDartList(length) => newJsList(length);
-  bool identicalInJs(a, b) => identical(a, b);
-
-  void forEachJsField(object, action(key, value)) {
-    for (final key in JS('JSExtendableArray', 'Object.keys(#)', object)) {
-      action(key, JS('var', '#[#]', object, key));
-    }
-  }
-}
-
-bool isJavaScriptDate(value) => JS('bool', '# instanceof Date', value);
-bool isJavaScriptRegExp(value) => JS('bool', '# instanceof RegExp', value);
-bool isJavaScriptArray(value) => JS('bool', '# instanceof Array', value);
-bool isJavaScriptSimpleObject(value) {
-  var proto = JS('', 'Object.getPrototypeOf(#)', value);
-  return JS('bool', '# === Object.prototype', proto) ||
-      JS('bool', '# === null', proto);
-}
-
-bool isImmutableJavaScriptArray(value) =>
-    JS('bool', r'!!(#.immutable$list)', value);
-bool isJavaScriptPromise(value) =>
-    JS('bool', r'typeof Promise != "undefined" && # instanceof Promise', value);
-
-Future convertNativePromiseToDartFuture(promise) {
-  var completer = new Completer();
-  var then = convertDartClosureToJS((result) => completer.complete(result), 1);
-  var error =
-      convertDartClosureToJS((result) => completer.completeError(result), 1);
-  var newPromise = JS('', '#.then(#)["catch"](#)', promise, then, error);
-  return completer.future;
-}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/css_class_set.dart b/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/css_class_set.dart
deleted file mode 100644
index 11c35cb..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/css_class_set.dart
+++ /dev/null
@@ -1,242 +0,0 @@
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-part of html_common;
-
-abstract class CssClassSetImpl implements CssClassSet {
-  static final RegExp _validTokenRE = new RegExp(r'^\S+$');
-
-  String _validateToken(String value) {
-    if (_validTokenRE.hasMatch(value)) return value;
-    throw new ArgumentError.value(value, 'value', 'Not a valid class token');
-  }
-
-  String toString() {
-    return readClasses().join(' ');
-  }
-
-  /**
-   * Adds the class [value] to the element if it is not on it, removes it if it
-   * is.
-   *
-   * If [shouldAdd] is true, then we always add that [value] to the element. If
-   * [shouldAdd] is false then we always remove [value] from the element.
-   */
-  bool toggle(String value, [bool shouldAdd]) {
-    _validateToken(value);
-    Set<String> s = readClasses();
-    bool result = false;
-    if (shouldAdd == null) shouldAdd = !s.contains(value);
-    if (shouldAdd) {
-      s.add(value);
-      result = true;
-    } else {
-      s.remove(value);
-    }
-    writeClasses(s);
-    return result;
-  }
-
-  /**
-   * Returns [:true:] if classes cannot be added or removed from this
-   * [:CssClassSet:].
-   */
-  bool get frozen => false;
-
-  // interface Iterable - BEGIN
-  Iterator<String> get iterator => readClasses().iterator;
-  // interface Iterable - END
-
-  // interface Collection - BEGIN
-  void forEach(void f(String element)) {
-    readClasses().forEach(f);
-  }
-
-  String join([String separator = ""]) => readClasses().join(separator);
-
-  Iterable<T> map<T>(T f(String e)) => readClasses().map<T>(f);
-
-  Iterable<String> where(bool f(String element)) => readClasses().where(f);
-
-  Iterable<T> expand<T>(Iterable<T> f(String element)) =>
-      readClasses().expand<T>(f);
-
-  bool every(bool f(String element)) => readClasses().every(f);
-
-  bool any(bool f(String element)) => readClasses().any(f);
-
-  bool get isEmpty => readClasses().isEmpty;
-
-  bool get isNotEmpty => readClasses().isNotEmpty;
-
-  int get length => readClasses().length;
-
-  String reduce(String combine(String value, String element)) {
-    return readClasses().reduce(combine);
-  }
-
-  T fold<T>(T initialValue, T combine(T previousValue, String element)) {
-    return readClasses().fold<T>(initialValue, combine);
-  }
-
-  // interface Collection - END
-
-  // interface Set - BEGIN
-  /**
-   * Determine if this element contains the class [value].
-   *
-   * This is the Dart equivalent of jQuery's
-   * [hasClass](http://api.jquery.com/hasClass/).
-   */
-  bool contains(Object value) {
-    if (value is! String) return false;
-    _validateToken(value);
-    return readClasses().contains(value);
-  }
-
-  /** Lookup from the Set interface. Not interesting for a String set. */
-  String lookup(Object value) => contains(value) ? value : null;
-
-  /**
-   * Add the class [value] to element.
-   *
-   * This is the Dart equivalent of jQuery's
-   * [addClass](http://api.jquery.com/addClass/).
-   */
-  bool add(String value) {
-    _validateToken(value);
-    // TODO - figure out if we need to do any validation here
-    // or if the browser natively does enough.
-    return modify((s) => s.add(value));
-  }
-
-  /**
-   * Remove the class [value] from element, and return true on successful
-   * removal.
-   *
-   * This is the Dart equivalent of jQuery's
-   * [removeClass](http://api.jquery.com/removeClass/).
-   */
-  bool remove(Object value) {
-    _validateToken(value);
-    if (value is! String) return false;
-    Set<String> s = readClasses();
-    bool result = s.remove(value);
-    writeClasses(s);
-    return result;
-  }
-
-  /**
-   * Add all classes specified in [iterable] to element.
-   *
-   * This is the Dart equivalent of jQuery's
-   * [addClass](http://api.jquery.com/addClass/).
-   */
-  void addAll(Iterable<String> iterable) {
-    // TODO - see comment above about validation.
-    modify((s) => s.addAll(iterable.map(_validateToken)));
-  }
-
-  /**
-   * Remove all classes specified in [iterable] from element.
-   *
-   * This is the Dart equivalent of jQuery's
-   * [removeClass](http://api.jquery.com/removeClass/).
-   */
-  void removeAll(Iterable<Object> iterable) {
-    modify((s) => s.removeAll(iterable));
-  }
-
-  /**
-   * Toggles all classes specified in [iterable] on element.
-   *
-   * Iterate through [iterable]'s items, and add it if it is not on it, or
-   * remove it if it is. This is the Dart equivalent of jQuery's
-   * [toggleClass](http://api.jquery.com/toggleClass/).
-   * If [shouldAdd] is true, then we always add all the classes in [iterable]
-   * element. If [shouldAdd] is false then we always remove all the classes in
-   * [iterable] from the element.
-   */
-  void toggleAll(Iterable<String> iterable, [bool shouldAdd]) {
-    iterable.forEach((e) => toggle(e, shouldAdd));
-  }
-
-  void retainAll(Iterable<Object> iterable) {
-    modify((s) => s.retainAll(iterable));
-  }
-
-  void removeWhere(bool test(String name)) {
-    modify((s) => s.removeWhere(test));
-  }
-
-  void retainWhere(bool test(String name)) {
-    modify((s) => s.retainWhere(test));
-  }
-
-  bool containsAll(Iterable<Object> collection) =>
-      readClasses().containsAll(collection);
-
-  Set<String> intersection(Set<Object> other) =>
-      readClasses().intersection(other);
-
-  Set<String> union(Set<String> other) => readClasses().union(other);
-
-  Set<String> difference(Set<Object> other) => readClasses().difference(other);
-
-  String get first => readClasses().first;
-  String get last => readClasses().last;
-  String get single => readClasses().single;
-  List<String> toList({bool growable: true}) =>
-      readClasses().toList(growable: growable);
-  Set<String> toSet() => readClasses().toSet();
-  Iterable<String> take(int n) => readClasses().take(n);
-  Iterable<String> takeWhile(bool test(String value)) =>
-      readClasses().takeWhile(test);
-  Iterable<String> skip(int n) => readClasses().skip(n);
-  Iterable<String> skipWhile(bool test(String value)) =>
-      readClasses().skipWhile(test);
-  String firstWhere(bool test(String value), {String orElse()}) =>
-      readClasses().firstWhere(test, orElse: orElse);
-  String lastWhere(bool test(String value), {String orElse()}) =>
-      readClasses().lastWhere(test, orElse: orElse);
-  String singleWhere(bool test(String value)) =>
-      readClasses().singleWhere(test);
-  String elementAt(int index) => readClasses().elementAt(index);
-
-  void clear() {
-    // TODO(sra): Do this without reading the classes.
-    modify((s) => s.clear());
-  }
-  // interface Set - END
-
-  /**
-   * Helper method used to modify the set of css classes on this element.
-   *
-   *   f - callback with:
-   *   s - a Set of all the css class name currently on this element.
-   *
-   *   After f returns, the modified set is written to the
-   *       className property of this element.
-   */
-  modify(f(Set<String> s)) {
-    Set<String> s = readClasses();
-    var ret = f(s);
-    writeClasses(s);
-    return ret;
-  }
-
-  /**
-   * Read the class names from the Element class property,
-   * and put them into a set (duplicates are discarded).
-   * This is intended to be overridden by specific implementations.
-   */
-  Set<String> readClasses();
-
-  /**
-   * Join all the elements of a set into one string and write
-   * back to the element.
-   * This is intended to be overridden by specific implementations.
-   */
-  void writeClasses(Set<String> s);
-}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/device.dart b/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/device.dart
deleted file mode 100644
index 123a5db..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/device.dart
+++ /dev/null
@@ -1,112 +0,0 @@
-// Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-part of html_common;
-
-/**
- * Utils for device detection.
- */
-class Device {
-  static bool _isOpera;
-  static bool _isIE;
-  static bool _isFirefox;
-  static bool _isWebKit;
-  static String _cachedCssPrefix;
-  static String _cachedPropertyPrefix;
-
-  /**
-   * Gets the browser's user agent. Using this function allows tests to inject
-   * the user agent.
- * Returns the user agent.
-   */
-  static String get userAgent => window.navigator.userAgent;
-
-  /**
-   * Determines if the current device is running Opera.
-   */
-  static bool get isOpera {
-    if (_isOpera == null) {
-      _isOpera = userAgent.contains("Opera", 0);
-    }
-    return _isOpera;
-  }
-
-  /**
-   * Determines if the current device is running Internet Explorer.
-   */
-  static bool get isIE {
-    if (_isIE == null) {
-      _isIE = !isOpera && userAgent.contains("Trident/", 0);
-    }
-    return _isIE;
-  }
-
-  /**
-   * Determines if the current device is running Firefox.
-   */
-  static bool get isFirefox {
-    if (_isFirefox == null) {
-      _isFirefox = userAgent.contains("Firefox", 0);
-    }
-    return _isFirefox;
-  }
-
-  /**
-   * Determines if the current device is running WebKit.
-   */
-  static bool get isWebKit {
-    if (_isWebKit == null) {
-      _isWebKit = !isOpera && userAgent.contains("WebKit", 0);
-    }
-    return _isWebKit;
-  }
-
-  /**
-   * Gets the CSS property prefix for the current platform.
-   */
-  static String get cssPrefix {
-    String prefix = _cachedCssPrefix;
-    if (prefix != null) return prefix;
-    if (isFirefox) {
-      prefix = '-moz-';
-    } else if (isIE) {
-      prefix = '-ms-';
-    } else if (isOpera) {
-      prefix = '-o-';
-    } else {
-      prefix = '-webkit-';
-    }
-    return _cachedCssPrefix = prefix;
-  }
-
-  /**
-   * Prefix as used for JS property names.
-   */
-  static String get propertyPrefix {
-    String prefix = _cachedPropertyPrefix;
-    if (prefix != null) return prefix;
-    if (isFirefox) {
-      prefix = 'moz';
-    } else if (isIE) {
-      prefix = 'ms';
-    } else if (isOpera) {
-      prefix = 'o';
-    } else {
-      prefix = 'webkit';
-    }
-    return _cachedPropertyPrefix = prefix;
-  }
-
-  /**
-   * Checks to see if the event class is supported by the current platform.
-   */
-  static bool isEventTypeSupported(String eventType) {
-    // Browsers throw for unsupported event names.
-    try {
-      var e = new Event.eventType(eventType, '');
-      return e is Event;
-    } catch (_) {}
-    return false;
-  }
-}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/filtered_element_list.dart b/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/filtered_element_list.dart
deleted file mode 100644
index f70d820..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/filtered_element_list.dart
+++ /dev/null
@@ -1,151 +0,0 @@
-// Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-part of html_common;
-
-/**
- * An indexable collection of a node's direct descendants in the document tree,
- * filtered so that only elements are in the collection.
- */
-class FilteredElementList extends ListBase<Element> implements NodeListWrapper {
-  final Node _node;
-  final List<Node> _childNodes;
-
-  /**
-   * Creates a collection of the elements that descend from a node.
-   *
-   * Example usage:
-   *
-   *     var filteredElements = new FilteredElementList(query("#container"));
-   *     // filteredElements is [a, b, c].
-   */
-  FilteredElementList(Node node)
-      : _childNodes = node.nodes,
-        _node = node;
-
-  // We can't memoize this, since it's possible that children will be messed
-  // with externally to this class.
-  Iterable<Element> get _iterable => _childNodes
-      .where((n) => n is Element)
-      .map/*<Element>*/((n) => n as Element);
-  List<Element> get _filtered =>
-      new List<Element>.from(_iterable, growable: false);
-
-  void forEach(void f(Element element)) {
-    // This cannot use the iterator, because operations during iteration might
-    // modify the collection, e.g. addAll might append a node to another parent.
-    _filtered.forEach(f);
-  }
-
-  void operator []=(int index, Element value) {
-    this[index].replaceWith(value);
-  }
-
-  set length(int newLength) {
-    final len = this.length;
-    if (newLength >= len) {
-      return;
-    } else if (newLength < 0) {
-      throw new ArgumentError("Invalid list length");
-    }
-
-    removeRange(newLength, len);
-  }
-
-  void add(Element value) {
-    _childNodes.add(value);
-  }
-
-  void addAll(Iterable<Element> iterable) {
-    for (Element element in iterable) {
-      add(element);
-    }
-  }
-
-  bool contains(Object needle) {
-    if (needle is! Element) return false;
-    Element element = needle;
-    return element.parentNode == _node;
-  }
-
-  Iterable<Element> get reversed => _filtered.reversed;
-
-  void sort([int compare(Element a, Element b)]) {
-    throw new UnsupportedError('Cannot sort filtered list');
-  }
-
-  void setRange(int start, int end, Iterable<Element> iterable,
-      [int skipCount = 0]) {
-    throw new UnsupportedError('Cannot setRange on filtered list');
-  }
-
-  void fillRange(int start, int end, [Element fillValue]) {
-    throw new UnsupportedError('Cannot fillRange on filtered list');
-  }
-
-  void replaceRange(int start, int end, Iterable<Element> iterable) {
-    throw new UnsupportedError('Cannot replaceRange on filtered list');
-  }
-
-  void removeRange(int start, int end) {
-    new List.from(_iterable.skip(start).take(end - start))
-        .forEach((el) => el.remove());
-  }
-
-  void clear() {
-    // Currently, ElementList#clear clears even non-element nodes, so we follow
-    // that behavior.
-    _childNodes.clear();
-  }
-
-  Element removeLast() {
-    final result = _iterable.last;
-    if (result != null) {
-      result.remove();
-    }
-    return result;
-  }
-
-  void insert(int index, Element value) {
-    if (index == length) {
-      add(value);
-    } else {
-      var element = _iterable.elementAt(index);
-      element.parentNode.insertBefore(value, element);
-    }
-  }
-
-  void insertAll(int index, Iterable<Element> iterable) {
-    if (index == length) {
-      addAll(iterable);
-    } else {
-      var element = _iterable.elementAt(index);
-      element.parentNode.insertAllBefore(iterable, element);
-    }
-  }
-
-  Element removeAt(int index) {
-    final result = this[index];
-    result.remove();
-    return result;
-  }
-
-  bool remove(Object element) {
-    if (element is! Element) return false;
-    if (contains(element)) {
-      (element as Element).remove(); // Placate the type checker
-      return true;
-    } else {
-      return false;
-    }
-  }
-
-  int get length => _iterable.length;
-  Element operator [](int index) => _iterable.elementAt(index);
-  // This cannot use the iterator, because operations during iteration might
-  // modify the collection, e.g. addAll might append a node to another parent.
-  Iterator<Element> get iterator => _filtered.iterator;
-
-  List<Node> get rawList => _node.childNodes;
-}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/html_common.dart b/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/html_common.dart
deleted file mode 100644
index 7e7bbcc..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/html_common.dart
+++ /dev/null
@@ -1,23 +0,0 @@
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library html_common;
-
-import 'dart:async';
-import 'dart:collection';
-import 'dart:html';
-import 'dart:js' as js;
-import 'dart:_internal' show WhereIterable;
-import 'dart:nativewrappers';
-import 'dart:typed_data';
-import 'dart:web_gl' as gl;
-
-import 'metadata.dart';
-export 'metadata.dart';
-
-part 'css_class_set.dart';
-part 'device.dart';
-part 'filtered_element_list.dart';
-part 'lists.dart';
-part 'conversions.dart';
-part 'conversions_dartium.dart';
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/html_common_dart2js.dart b/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/html_common_dart2js.dart
deleted file mode 100644
index f162ad8..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/html_common_dart2js.dart
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library html_common;
-
-import 'dart:async';
-import 'dart:collection';
-import 'dart:html';
-import 'dart:_internal' show WhereIterable;
-import 'dart:web_gl' as gl;
-import 'dart:typed_data';
-import 'dart:_native_typed_data';
-import 'dart:_js_helper' show Creates, Returns, convertDartClosureToJS;
-import 'dart:_foreign_helper' show JS;
-import 'dart:_interceptors' show Interceptor, JSExtendableArray;
-
-import 'dart:_metadata';
-export 'dart:_metadata';
-
-part 'css_class_set.dart';
-part 'conversions.dart';
-part 'conversions_dart2js.dart';
-part 'device.dart';
-part 'filtered_element_list.dart';
-part 'lists.dart';
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/html_common_ddc.dart b/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/html_common_ddc.dart
deleted file mode 100644
index 6d2f2f8..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/html_common_ddc.dart
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library html_common;
-
-import 'dart:async';
-import 'dart:collection';
-import 'dart:html';
-import 'dart:_internal' show WhereIterable;
-import 'dart:web_gl' as gl;
-import 'dart:typed_data';
-import 'dart:_native_typed_data';
-import 'dart:_js_helper' show Creates, Returns, convertDartClosureToJS;
-import 'dart:_foreign_helper' show JS;
-import 'dart:_interceptors' show Interceptor, JSExtendableArray;
-
-import 'dart:_metadata';
-export 'dart:_metadata';
-
-part 'css_class_set.dart';
-part 'conversions.dart';
-part 'conversions_dart2js.dart';
-part 'device.dart';
-part 'filtered_element_list.dart';
-part 'lists.dart';
-
-class DartHtmlObject {
-  // FIXME(vsm): Make this final at least.  Private?
-  dynamic raw;
-}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/lists.dart b/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/lists.dart
deleted file mode 100644
index c7abc41..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/lists.dart
+++ /dev/null
@@ -1,71 +0,0 @@
-// Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-part of html_common;
-
-class Lists {
-  /**
-   * Returns the index in the array [a] of the given [element], starting
-   * the search at index [startIndex] to [endIndex] (exclusive).
-   * Returns -1 if [element] is not found.
-   */
-  static int indexOf(List a, Object element, int startIndex, int endIndex) {
-    if (startIndex >= a.length) {
-      return -1;
-    }
-    if (startIndex < 0) {
-      startIndex = 0;
-    }
-    for (int i = startIndex; i < endIndex; i++) {
-      if (a[i] == element) {
-        return i;
-      }
-    }
-    return -1;
-  }
-
-  /**
-   * Returns the last index in the array [a] of the given [element], starting
-   * the search at index [startIndex] to 0.
-   * Returns -1 if [element] is not found.
-   */
-  static int lastIndexOf(List a, Object element, int startIndex) {
-    if (startIndex < 0) {
-      return -1;
-    }
-    if (startIndex >= a.length) {
-      startIndex = a.length - 1;
-    }
-    for (int i = startIndex; i >= 0; i--) {
-      if (a[i] == element) {
-        return i;
-      }
-    }
-    return -1;
-  }
-
-  /**
-   * Returns a sub list copy of this list, from [start] to
-   * [end] ([end] not inclusive).
-   * Returns an empty list if [length] is 0.
-   * It is an error if indices are not valid for the list, or
-   * if [end] is before [start].
-   */
-  static List getRange(List a, int start, int end, List accumulator) {
-    if (start < 0) throw new RangeError.value(start);
-    if (end < start) throw new RangeError.value(end);
-    if (end > a.length) throw new RangeError.value(end);
-    for (int i = start; i < end; i++) {
-      accumulator.add(a[i]);
-    }
-    return accumulator;
-  }
-}
-
-/**
- * For accessing underlying node lists, for dart:js interop.
- */
-abstract class NodeListWrapper {
-  List<Node> get rawList;
-}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/metadata.dart b/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/metadata.dart
deleted file mode 100644
index b5542dc..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/metadata.dart
+++ /dev/null
@@ -1,71 +0,0 @@
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library metadata;
-
-/**
- * An annotation used to mark a feature as only being supported by a subset
- * of the browsers that Dart supports by default.
- *
- * If an API is not annotated with [SupportedBrowser] then it is assumed to
- * work on all browsers Dart supports.
- */
-class SupportedBrowser {
-  static const String CHROME = "Chrome";
-  static const String FIREFOX = "Firefox";
-  static const String IE = "Internet Explorer";
-  static const String OPERA = "Opera";
-  static const String SAFARI = "Safari";
-
-  /// The name of the browser.
-  final String browserName;
-
-  /// The minimum version of the browser that supports the feature, or null
-  /// if supported on all versions.
-  final String minimumVersion;
-
-  const SupportedBrowser(this.browserName, [this.minimumVersion]);
-}
-
-/**
- * An annotation used to mark an API as being experimental.
- *
- * An API is considered to be experimental if it is still going through the
- * process of stabilizing and is subject to change or removal.
- *
- * See also:
- *
- * * [W3C recommendation](http://en.wikipedia.org/wiki/W3C_recommendation)
- */
-class Experimental {
-  const Experimental();
-}
-
-/**
- * Annotation that specifies that a member is editable through generate files.
- *
- * This is used for API generation.
- *
- * [name] should be formatted as `interface.member`.
- */
-class DomName {
-  final String name;
-  const DomName(this.name);
-}
-
-/**
- * Metadata that specifies that that member is editable through generated
- * files.
- */
-class DocsEditable {
-  const DocsEditable();
-}
-
-/**
- * Annotation that indicates that an API is not expected to change but has
- * not undergone enough testing to be considered stable.
- */
-class Unstable {
-  const Unstable();
-}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart b/pkg/dev_compiler/tool/input_sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart
deleted file mode 100644
index c540bb0..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart
+++ /dev/null
@@ -1,1506 +0,0 @@
-/**
- * A client-side key-value store with support for indexes.
- *
- * Many browsers support IndexedDB&mdash;a web standard for
- * an indexed database.
- * By storing data on the client in an IndexedDB,
- * a web app gets some advantages, such as faster performance and persistence.
- * To find out which browsers support IndexedDB,
- * refer to [Can I Use?](http://caniuse.com/#feat=indexeddb)
- *
- * In IndexedDB, each record is identified by a unique index or key,
- * making data retrieval speedy.
- * You can store structured data,
- * such as images, arrays, and maps using IndexedDB.
- * The standard does not specify size limits for individual data items
- * or for the database itself, but browsers may impose storage limits.
- *
- * ## Using indexed_db
- *
- * The classes in this library provide an interface
- * to the browser's IndexedDB, if it has one.
- * To use this library in your code:
- *
- *     import 'dart:indexed_db';
- *
- * A web app can determine if the browser supports
- * IndexedDB with [IdbFactory.supported]:
- *
- *     if (IdbFactory.supported)
- *       // Use indexeddb.
- *     else
- *       // Find an alternative.
- *
- * Access to the browser's IndexedDB is provided by the app's top-level
- * [Window] object, which your code can refer to with `window.indexedDB`.
- * So, for example,
- * here's how to use window.indexedDB to open a database:
- *
- *     Future open() {
- *       return window.indexedDB.open('myIndexedDB',
- *           version: 1,
- *           onUpgradeNeeded: _initializeDatabase)
- *         .then(_loadFromDB);
- *     }
- *     void _initializeDatabase(VersionChangeEvent e) {
- *       ...
- *     }
- *     Future _loadFromDB(Database db) {
- *       ...
- *     }
- *
- *
- * All data in an IndexedDB is stored within an [ObjectStore].
- * To manipulate the database use [Transaction]s.
- *
- * ## Other resources
- *
- * Other options for client-side data storage include:
- *
- * * [Window.localStorage]&mdash;a
- * basic mechanism that stores data as a [Map],
- * and where both the keys and the values are strings.
- *
- * * [dart:web_sql]&mdash;a database that can be queried with SQL.
- * 
- * For a tutorial about using the indexed_db library with Dart,
- * check out
- * [Use IndexedDB](http://www.dartlang.org/docs/tutorials/indexeddb/).
- *
- * [IndexedDB reference](http://docs.webplatform.org/wiki/apis/indexeddb)
- * provides wiki-style docs about indexedDB
- */
-library dart.dom.indexed_db;
-
-import 'dart:async';
-import 'dart:html';
-import 'dart:html_common';
-import 'dart:_native_typed_data';
-import 'dart:typed_data';
-import 'dart:_js_helper' show Creates, Returns, JSName, Native;
-import 'dart:_foreign_helper' show JS;
-import 'dart:_interceptors' show Interceptor, JSExtendableArray;
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// DO NOT EDIT - unless you are editing documentation as per:
-// https://code.google.com/p/dart/wiki/ContributingHTMLDocumentation
-// Auto-generated dart:svg library.
-
-class _KeyRangeFactoryProvider {
-  static KeyRange createKeyRange_only(/*Key*/ value) =>
-      _only(_class(), _translateKey(value));
-
-  static KeyRange createKeyRange_lowerBound(
-          /*Key*/ bound,
-          [bool open = false]) =>
-      _lowerBound(_class(), _translateKey(bound), open);
-
-  static KeyRange createKeyRange_upperBound(
-          /*Key*/ bound,
-          [bool open = false]) =>
-      _upperBound(_class(), _translateKey(bound), open);
-
-  static KeyRange createKeyRange_bound(/*Key*/ lower, /*Key*/ upper,
-          [bool lowerOpen = false, bool upperOpen = false]) =>
-      _bound(_class(), _translateKey(lower), _translateKey(upper), lowerOpen,
-          upperOpen);
-
-  static var _cachedClass;
-
-  static _class() {
-    if (_cachedClass != null) return _cachedClass;
-    return _cachedClass = _uncachedClass();
-  }
-
-  static _uncachedClass() => JS(
-      'var',
-      '''window.webkitIDBKeyRange || window.mozIDBKeyRange ||
-          window.msIDBKeyRange || window.IDBKeyRange''');
-
-  static _translateKey(idbkey) => idbkey; // TODO: fixme.
-
-  static KeyRange _only(cls, value) => JS('KeyRange', '#.only(#)', cls, value);
-
-  static KeyRange _lowerBound(cls, bound, open) =>
-      JS('KeyRange', '#.lowerBound(#, #)', cls, bound, open);
-
-  static KeyRange _upperBound(cls, bound, open) =>
-      JS('KeyRange', '#.upperBound(#, #)', cls, bound, open);
-
-  static KeyRange _bound(cls, lower, upper, lowerOpen, upperOpen) => JS(
-      'KeyRange',
-      '#.bound(#, #, #, #)',
-      cls,
-      lower,
-      upper,
-      lowerOpen,
-      upperOpen);
-}
-
-// Conversions for IDBKey.
-//
-// Per http://www.w3.org/TR/IndexedDB/#key-construct
-//
-// "A value is said to be a valid key if it is one of the following types: Array
-// JavaScript objects [ECMA-262], DOMString [WEBIDL], Date [ECMA-262] or float
-// [WEBIDL]. However Arrays are only valid keys if every item in the array is
-// defined and is a valid key (i.e. sparse arrays can not be valid keys) and if
-// the Array doesn't directly or indirectly contain itself. Any non-numeric
-// properties are ignored, and thus does not affect whether the Array is a valid
-// key. Additionally, if the value is of type float, it is only a valid key if
-// it is not NaN, and if the value is of type Date it is only a valid key if its
-// [[PrimitiveValue]] internal property, as defined by [ECMA-262], is not NaN."
-
-// What is required is to ensure that an Lists in the key are actually
-// JavaScript arrays, and any Dates are JavaScript Dates.
-
-/**
- * Converts a native IDBKey into a Dart object.
- *
- * May return the original input.  May mutate the original input (but will be
- * idempotent if mutation occurs).  It is assumed that this conversion happens
- * on native IDBKeys on all paths that return IDBKeys from native DOM calls.
- *
- * If necessary, JavaScript Dates are converted into Dart Dates.
- */
-_convertNativeToDart_IDBKey(nativeKey) {
-  containsDate(object) {
-    if (isJavaScriptDate(object)) return true;
-    if (object is List) {
-      for (int i = 0; i < object.length; i++) {
-        if (containsDate(object[i])) return true;
-      }
-    }
-    return false; // number, string.
-  }
-
-  if (containsDate(nativeKey)) {
-    throw new UnimplementedError('Key containing DateTime');
-  }
-  // TODO: Cache conversion somewhere?
-  return nativeKey;
-}
-
-/**
- * Converts a Dart object into a valid IDBKey.
- *
- * May return the original input.  Does not mutate input.
- *
- * If necessary, [dartKey] may be copied to ensure all lists are converted into
- * JavaScript Arrays and Dart Dates into JavaScript Dates.
- */
-_convertDartToNative_IDBKey(dartKey) {
-  // TODO: Implement.
-  return dartKey;
-}
-
-/// May modify original.  If so, action is idempotent.
-_convertNativeToDart_IDBAny(object) {
-  return convertNativeToDart_AcceptStructuredClone(object, mustCopy: false);
-}
-
-// TODO(sra): Add DateTime.
-const String _idbKey = 'JSExtendableArray|=Object|num|String';
-const _annotation_Creates_IDBKey = const Creates(_idbKey);
-const _annotation_Returns_IDBKey = const Returns(_idbKey);
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('IDBCursor')
-@Unstable()
-@Native("IDBCursor")
-class Cursor extends Interceptor {
-  @DomName('IDBCursor.delete')
-  Future delete() {
-    try {
-      return _completeRequest(_delete());
-    } catch (e, stacktrace) {
-      return new Future.error(e, stacktrace);
-    }
-  }
-
-  @DomName('IDBCursor.value')
-  Future update(value) {
-    try {
-      return _completeRequest(_update(value));
-    } catch (e, stacktrace) {
-      return new Future.error(e, stacktrace);
-    }
-  }
-
-  @JSName('continue')
-  @DomName('IDBCursor.continue')
-  void next([Object key]) {
-    if (key == null) {
-      JS('void', '#.continue()', this);
-    } else {
-      JS('void', '#.continue(#)', this, key);
-    }
-  }
-
-  // To suppress missing implicit constructor warnings.
-  factory Cursor._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('IDBCursor.direction')
-  @DocsEditable()
-  final String direction;
-
-  @DomName('IDBCursor.key')
-  @DocsEditable()
-  @_annotation_Creates_IDBKey
-  @_annotation_Returns_IDBKey
-  final Object key;
-
-  @DomName('IDBCursor.primaryKey')
-  @DocsEditable()
-  @_annotation_Creates_IDBKey
-  @_annotation_Returns_IDBKey
-  final Object primaryKey;
-
-  @DomName('IDBCursor.source')
-  @DocsEditable()
-  @Creates('Null')
-  @Returns('ObjectStore|Index|Null')
-  final Object source;
-
-  @DomName('IDBCursor.advance')
-  @DocsEditable()
-  void advance(int count) native;
-
-  @DomName('IDBCursor.continuePrimaryKey')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void continuePrimaryKey(Object key, Object primaryKey) native;
-
-  @JSName('delete')
-  @DomName('IDBCursor.delete')
-  @DocsEditable()
-  Request _delete() native;
-
-  @DomName('IDBCursor.update')
-  @DocsEditable()
-  Request _update(/*any*/ value) {
-    var value_1 = convertDartToNative_SerializedScriptValue(value);
-    return _update_1(value_1);
-  }
-
-  @JSName('update')
-  @DomName('IDBCursor.update')
-  @DocsEditable()
-  Request _update_1(value) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('IDBCursorWithValue')
-@Unstable()
-@Native("IDBCursorWithValue")
-class CursorWithValue extends Cursor {
-  // To suppress missing implicit constructor warnings.
-  factory CursorWithValue._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('IDBCursorWithValue.value')
-  @DocsEditable()
-  dynamic get value => _convertNativeToDart_IDBAny(this._get_value);
-  @JSName('value')
-  @DomName('IDBCursorWithValue.value')
-  @DocsEditable()
-  @annotation_Creates_SerializedScriptValue
-  @annotation_Returns_SerializedScriptValue
-  final dynamic _get_value;
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-/**
- * An indexed database object for storing client-side data
- * in web apps.
- */
-@DomName('IDBDatabase')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX, '15')
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@Experimental()
-@Unstable()
-@Native("IDBDatabase")
-class Database extends EventTarget {
-  @DomName('IDBDatabase.createObjectStore')
-  @DocsEditable()
-  ObjectStore createObjectStore(String name,
-      {String keyPath, bool autoIncrement}) {
-    var options = {};
-    if (keyPath != null) {
-      options['keyPath'] = keyPath;
-    }
-    if (autoIncrement != null) {
-      options['autoIncrement'] = autoIncrement;
-    }
-
-    return _createObjectStore(name, options);
-  }
-
-  Transaction transaction(storeName_OR_storeNames, String mode) {
-    if (mode != 'readonly' && mode != 'readwrite') {
-      throw new ArgumentError(mode);
-    }
-
-    // TODO(sra): Ensure storeName_OR_storeNames is a string or List<String>,
-    // and copy to JavaScript array if necessary.
-
-    // Try and create a transaction with a string mode.  Browsers that expect a
-    // numeric mode tend to convert the string into a number.  This fails
-    // silently, resulting in zero ('readonly').
-    return _transaction(storeName_OR_storeNames, mode);
-  }
-
-  Transaction transactionStore(String storeName, String mode) {
-    if (mode != 'readonly' && mode != 'readwrite') {
-      throw new ArgumentError(mode);
-    }
-    // Try and create a transaction with a string mode.  Browsers that expect a
-    // numeric mode tend to convert the string into a number.  This fails
-    // silently, resulting in zero ('readonly').
-    return _transaction(storeName, mode);
-  }
-
-  Transaction transactionList(List<String> storeNames, String mode) {
-    if (mode != 'readonly' && mode != 'readwrite') {
-      throw new ArgumentError(mode);
-    }
-    List storeNames_1 = convertDartToNative_StringArray(storeNames);
-    return _transaction(storeNames_1, mode);
-  }
-
-  Transaction transactionStores(DomStringList storeNames, String mode) {
-    if (mode != 'readonly' && mode != 'readwrite') {
-      throw new ArgumentError(mode);
-    }
-    return _transaction(storeNames, mode);
-  }
-
-  @JSName('transaction')
-  Transaction _transaction(stores, mode) native;
-
-  // To suppress missing implicit constructor warnings.
-  factory Database._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `abort` events to event
-   * handlers that are not necessarily instances of [Database].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('IDBDatabase.abortEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> abortEvent =
-      const EventStreamProvider<Event>('abort');
-
-  /**
-   * Static factory designed to expose `close` events to event
-   * handlers that are not necessarily instances of [Database].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('IDBDatabase.closeEvent')
-  @DocsEditable()
-  // https://www.w3.org/Bugs/Public/show_bug.cgi?id=22540
-  @Experimental()
-  static const EventStreamProvider<Event> closeEvent =
-      const EventStreamProvider<Event>('close');
-
-  /**
-   * Static factory designed to expose `error` events to event
-   * handlers that are not necessarily instances of [Database].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('IDBDatabase.errorEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> errorEvent =
-      const EventStreamProvider<Event>('error');
-
-  /**
-   * Static factory designed to expose `versionchange` events to event
-   * handlers that are not necessarily instances of [Database].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('IDBDatabase.versionchangeEvent')
-  @DocsEditable()
-  static const EventStreamProvider<VersionChangeEvent> versionChangeEvent =
-      const EventStreamProvider<VersionChangeEvent>('versionchange');
-
-  @DomName('IDBDatabase.name')
-  @DocsEditable()
-  final String name;
-
-  @DomName('IDBDatabase.objectStoreNames')
-  @DocsEditable()
-  @Returns('DomStringList|Null')
-  @Creates('DomStringList')
-  final List<String> objectStoreNames;
-
-  @DomName('IDBDatabase.version')
-  @DocsEditable()
-  @Creates('int|String|Null')
-  @Returns('int|String|Null')
-  final int version;
-
-  @DomName('IDBDatabase.close')
-  @DocsEditable()
-  void close() native;
-
-  @DomName('IDBDatabase.createObjectStore')
-  @DocsEditable()
-  ObjectStore _createObjectStore(String name, [Map options]) {
-    if (options != null) {
-      var options_1 = convertDartToNative_Dictionary(options);
-      return _createObjectStore_1(name, options_1);
-    }
-    return _createObjectStore_2(name);
-  }
-
-  @JSName('createObjectStore')
-  @DomName('IDBDatabase.createObjectStore')
-  @DocsEditable()
-  ObjectStore _createObjectStore_1(name, options) native;
-  @JSName('createObjectStore')
-  @DomName('IDBDatabase.createObjectStore')
-  @DocsEditable()
-  ObjectStore _createObjectStore_2(name) native;
-
-  @DomName('IDBDatabase.deleteObjectStore')
-  @DocsEditable()
-  void deleteObjectStore(String name) native;
-
-  /// Stream of `abort` events handled by this [Database].
-  @DomName('IDBDatabase.onabort')
-  @DocsEditable()
-  Stream<Event> get onAbort => abortEvent.forTarget(this);
-
-  /// Stream of `close` events handled by this [Database].
-  @DomName('IDBDatabase.onclose')
-  @DocsEditable()
-  // https://www.w3.org/Bugs/Public/show_bug.cgi?id=22540
-  @Experimental()
-  Stream<Event> get onClose => closeEvent.forTarget(this);
-
-  /// Stream of `error` events handled by this [Database].
-  @DomName('IDBDatabase.onerror')
-  @DocsEditable()
-  Stream<Event> get onError => errorEvent.forTarget(this);
-
-  /// Stream of `versionchange` events handled by this [Database].
-  @DomName('IDBDatabase.onversionchange')
-  @DocsEditable()
-  Stream<VersionChangeEvent> get onVersionChange =>
-      versionChangeEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('IDBFactory')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX, '15')
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@Experimental()
-@Unstable()
-@Native("IDBFactory")
-class IdbFactory extends Interceptor {
-  /**
-   * Checks to see if Indexed DB is supported on the current platform.
-   */
-  static bool get supported {
-    return JS(
-        'bool',
-        '!!(window.indexedDB || '
-        'window.webkitIndexedDB || '
-        'window.mozIndexedDB)');
-  }
-
-  @DomName('IDBFactory.open')
-  Future<Database> open(String name,
-      {int version,
-      void onUpgradeNeeded(VersionChangeEvent),
-      void onBlocked(Event)}) {
-    if ((version == null) != (onUpgradeNeeded == null)) {
-      return new Future.error(new ArgumentError(
-          'version and onUpgradeNeeded must be specified together'));
-    }
-    try {
-      var request;
-      if (version != null) {
-        request = _open(name, version);
-      } else {
-        request = _open(name);
-      }
-
-      if (onUpgradeNeeded != null) {
-        request.onUpgradeNeeded.listen(onUpgradeNeeded);
-      }
-      if (onBlocked != null) {
-        request.onBlocked.listen(onBlocked);
-      }
-      return _completeRequest(request);
-    } catch (e, stacktrace) {
-      return new Future.error(e, stacktrace);
-    }
-  }
-
-  @DomName('IDBFactory.deleteDatabase')
-  Future<IdbFactory> deleteDatabase(String name, {void onBlocked(Event e)}) {
-    try {
-      var request = _deleteDatabase(name);
-
-      if (onBlocked != null) {
-        request.onBlocked.listen(onBlocked);
-      }
-      var completer = new Completer<IdbFactory>.sync();
-      request.onSuccess.listen((e) {
-        completer.complete(this);
-      });
-      request.onError.listen(completer.completeError);
-      return completer.future;
-    } catch (e, stacktrace) {
-      return new Future.error(e, stacktrace);
-    }
-  }
-
-  @DomName('IDBFactory.getDatabaseNames')
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @Experimental()
-  Future<List<String>> getDatabaseNames() {
-    try {
-      var request = _webkitGetDatabaseNames();
-
-      return _completeRequest(request);
-    } catch (e, stacktrace) {
-      return new Future.error(e, stacktrace);
-    }
-  }
-
-  /**
-   * Checks to see if getDatabaseNames is supported by the current platform.
-   */
-  bool get supportsDatabaseNames {
-    return supported &&
-        JS('bool', '!!(#.getDatabaseNames || #.webkitGetDatabaseNames)', this,
-            this);
-  }
-
-  // To suppress missing implicit constructor warnings.
-  factory IdbFactory._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('IDBFactory.cmp')
-  @DocsEditable()
-  int cmp(Object first, Object second) native;
-
-  @JSName('deleteDatabase')
-  @DomName('IDBFactory.deleteDatabase')
-  @DocsEditable()
-  OpenDBRequest _deleteDatabase(String name) native;
-
-  @JSName('open')
-  @DomName('IDBFactory.open')
-  @DocsEditable()
-  @Returns('Request')
-  @Creates('Request')
-  @Creates('Database')
-  OpenDBRequest _open(String name, [int version]) native;
-
-  @JSName('webkitGetDatabaseNames')
-  @DomName('IDBFactory.webkitGetDatabaseNames')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  @Returns('Request')
-  @Creates('Request')
-  @Creates('DomStringList')
-  Request _webkitGetDatabaseNames() native;
-}
-
-/**
- * Ties a request to a completer, so the completer is completed when it succeeds
- * and errors out when the request errors.
- */
-Future/*<T>*/ _completeRequest/*<T>*/(Request request) {
-  var completer = new Completer/*<T>*/ .sync();
-  // TODO: make sure that completer.complete is synchronous as transactions
-  // may be committed if the result is not processed immediately.
-  request.onSuccess.listen((e) {
-    var result = _cast/*<T>*/(request.result);
-    completer.complete(result);
-  });
-  request.onError.listen(completer.completeError);
-  return completer.future;
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('IDBIndex')
-@Unstable()
-@Native("IDBIndex")
-class Index extends Interceptor {
-  @DomName('IDBIndex.count')
-  Future<int> count([key_OR_range]) {
-    try {
-      var request = _count(key_OR_range);
-      return _completeRequest(request);
-    } catch (e, stacktrace) {
-      return new Future.error(e, stacktrace);
-    }
-  }
-
-  @DomName('IDBIndex.get')
-  Future get(key) {
-    try {
-      var request = _get(key);
-
-      return _completeRequest(request);
-    } catch (e, stacktrace) {
-      return new Future.error(e, stacktrace);
-    }
-  }
-
-  @DomName('IDBIndex.getKey')
-  Future getKey(key) {
-    try {
-      var request = _getKey(key);
-
-      return _completeRequest(request);
-    } catch (e, stacktrace) {
-      return new Future.error(e, stacktrace);
-    }
-  }
-
-  /**
-   * Creates a stream of cursors over the records in this object store.
-   *
-   * See also:
-   *
-   * * [ObjectStore.openCursor]
-   */
-  Stream<CursorWithValue> openCursor(
-      {key, KeyRange range, String direction, bool autoAdvance}) {
-    var key_OR_range = null;
-    if (key != null) {
-      if (range != null) {
-        throw new ArgumentError('Cannot specify both key and range.');
-      }
-      key_OR_range = key;
-    } else {
-      key_OR_range = range;
-    }
-    var request;
-    if (direction == null) {
-      // FIXME: Passing in "next" should be unnecessary.
-      request = _openCursor(key_OR_range, "next");
-    } else {
-      request = _openCursor(key_OR_range, direction);
-    }
-    return ObjectStore._cursorStreamFromResult(request, autoAdvance);
-  }
-
-  /**
-   * Creates a stream of cursors over the records in this object store.
-   *
-   * See also:
-   *
-   * * [ObjectStore.openCursor]
-   */
-  Stream<Cursor> openKeyCursor(
-      {key, KeyRange range, String direction, bool autoAdvance}) {
-    var key_OR_range = null;
-    if (key != null) {
-      if (range != null) {
-        throw new ArgumentError('Cannot specify both key and range.');
-      }
-      key_OR_range = key;
-    } else {
-      key_OR_range = range;
-    }
-    var request;
-    if (direction == null) {
-      // FIXME: Passing in "next" should be unnecessary.
-      request = _openKeyCursor(key_OR_range, "next");
-    } else {
-      request = _openKeyCursor(key_OR_range, direction);
-    }
-    return ObjectStore._cursorStreamFromResult(request, autoAdvance);
-  }
-
-  // To suppress missing implicit constructor warnings.
-  factory Index._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('IDBIndex.keyPath')
-  @DocsEditable()
-  @annotation_Creates_SerializedScriptValue
-  final Object keyPath;
-
-  @DomName('IDBIndex.multiEntry')
-  @DocsEditable()
-  final bool multiEntry;
-
-  @DomName('IDBIndex.name')
-  @DocsEditable()
-  final String name;
-
-  @DomName('IDBIndex.objectStore')
-  @DocsEditable()
-  final ObjectStore objectStore;
-
-  @DomName('IDBIndex.unique')
-  @DocsEditable()
-  final bool unique;
-
-  @JSName('count')
-  @DomName('IDBIndex.count')
-  @DocsEditable()
-  Request _count(Object key) native;
-
-  @JSName('get')
-  @DomName('IDBIndex.get')
-  @DocsEditable()
-  @Returns('Request')
-  @Creates('Request')
-  @annotation_Creates_SerializedScriptValue
-  Request _get(Object key) native;
-
-  @DomName('IDBIndex.getAll')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Request getAll(Object range, [int maxCount]) native;
-
-  @DomName('IDBIndex.getAllKeys')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Request getAllKeys(Object range, [int maxCount]) native;
-
-  @JSName('getKey')
-  @DomName('IDBIndex.getKey')
-  @DocsEditable()
-  @Returns('Request')
-  @Creates('Request')
-  @annotation_Creates_SerializedScriptValue
-  @Creates('ObjectStore')
-  Request _getKey(Object key) native;
-
-  @JSName('openCursor')
-  @DomName('IDBIndex.openCursor')
-  @DocsEditable()
-  @Returns('Request')
-  @Creates('Request')
-  @Creates('Cursor')
-  Request _openCursor(Object range, [String direction]) native;
-
-  @JSName('openKeyCursor')
-  @DomName('IDBIndex.openKeyCursor')
-  @DocsEditable()
-  @Returns('Request')
-  @Creates('Request')
-  @Creates('Cursor')
-  Request _openKeyCursor(Object range, [String direction]) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('IDBKeyRange')
-@Unstable()
-@Native("IDBKeyRange")
-class KeyRange extends Interceptor {
-  @DomName('IDBKeyRange.only')
-  factory KeyRange.only(/*Key*/ value) =>
-      _KeyRangeFactoryProvider.createKeyRange_only(value);
-
-  @DomName('IDBKeyRange.lowerBound')
-  factory KeyRange.lowerBound(/*Key*/ bound, [bool open = false]) =>
-      _KeyRangeFactoryProvider.createKeyRange_lowerBound(bound, open);
-
-  @DomName('IDBKeyRange.upperBound')
-  factory KeyRange.upperBound(/*Key*/ bound, [bool open = false]) =>
-      _KeyRangeFactoryProvider.createKeyRange_upperBound(bound, open);
-
-  @DomName('KeyRange.bound')
-  factory KeyRange.bound(/*Key*/ lower, /*Key*/ upper,
-          [bool lowerOpen = false, bool upperOpen = false]) =>
-      _KeyRangeFactoryProvider.createKeyRange_bound(
-          lower, upper, lowerOpen, upperOpen);
-
-  // To suppress missing implicit constructor warnings.
-  factory KeyRange._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('IDBKeyRange.lower')
-  @DocsEditable()
-  @annotation_Creates_SerializedScriptValue
-  final Object lower;
-
-  @DomName('IDBKeyRange.lowerOpen')
-  @DocsEditable()
-  final bool lowerOpen;
-
-  @DomName('IDBKeyRange.upper')
-  @DocsEditable()
-  @annotation_Creates_SerializedScriptValue
-  final Object upper;
-
-  @DomName('IDBKeyRange.upperOpen')
-  @DocsEditable()
-  final bool upperOpen;
-
-  @JSName('bound')
-  @DomName('IDBKeyRange.bound')
-  @DocsEditable()
-  static KeyRange bound_(Object lower, Object upper,
-      [bool lowerOpen, bool upperOpen]) native;
-
-  @JSName('lowerBound')
-  @DomName('IDBKeyRange.lowerBound')
-  @DocsEditable()
-  static KeyRange lowerBound_(Object bound, [bool open]) native;
-
-  @JSName('only')
-  @DomName('IDBKeyRange.only')
-  @DocsEditable()
-  static KeyRange only_(Object value) native;
-
-  @JSName('upperBound')
-  @DomName('IDBKeyRange.upperBound')
-  @DocsEditable()
-  static KeyRange upperBound_(Object bound, [bool open]) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('IDBObjectStore')
-@Unstable()
-@Native("IDBObjectStore")
-class ObjectStore extends Interceptor {
-  @DomName('IDBObjectStore.add')
-  Future add(value, [key]) {
-    try {
-      var request;
-      if (key != null) {
-        request = _add(value, key);
-      } else {
-        request = _add(value);
-      }
-      return _completeRequest(request);
-    } catch (e, stacktrace) {
-      return new Future.error(e, stacktrace);
-    }
-  }
-
-  @DomName('IDBObjectStore.clear')
-  Future clear() {
-    try {
-      return _completeRequest(_clear());
-    } catch (e, stacktrace) {
-      return new Future.error(e, stacktrace);
-    }
-  }
-
-  @DomName('IDBObjectStore.delete')
-  Future delete(key_OR_keyRange) {
-    try {
-      return _completeRequest(_delete(key_OR_keyRange));
-    } catch (e, stacktrace) {
-      return new Future.error(e, stacktrace);
-    }
-  }
-
-  @DomName('IDBObjectStore.count')
-  Future<int> count([key_OR_range]) {
-    try {
-      var request = _count(key_OR_range);
-      return _completeRequest(request);
-    } catch (e, stacktrace) {
-      return new Future.error(e, stacktrace);
-    }
-  }
-
-  @DomName('IDBObjectStore.put')
-  Future put(value, [key]) {
-    try {
-      var request;
-      if (key != null) {
-        request = _put(value, key);
-      } else {
-        request = _put(value);
-      }
-      return _completeRequest(request);
-    } catch (e, stacktrace) {
-      return new Future.error(e, stacktrace);
-    }
-  }
-
-  @DomName('IDBObjectStore.get')
-  Future getObject(key) {
-    try {
-      var request = _get(key);
-
-      return _completeRequest(request);
-    } catch (e, stacktrace) {
-      return new Future.error(e, stacktrace);
-    }
-  }
-
-  /**
-   * Creates a stream of cursors over the records in this object store.
-   *
-   * **The stream must be manually advanced by calling [Cursor.next] after
-   * each item or by specifying autoAdvance to be true.**
-   *
-   *     var cursors = objectStore.openCursor().listen(
-   *       (cursor) {
-   *         // ...some processing with the cursor
-   *         cursor.next(); // advance onto the next cursor.
-   *       },
-   *       onDone: () {
-   *         // called when there are no more cursors.
-   *         print('all done!');
-   *       });
-   *
-   * Asynchronous operations which are not related to the current transaction
-   * will cause the transaction to automatically be committed-- all processing
-   * must be done synchronously unless they are additional async requests to
-   * the current transaction.
-   */
-  @DomName('IDBObjectStore.openCursor')
-  Stream<CursorWithValue> openCursor(
-      {key, KeyRange range, String direction, bool autoAdvance}) {
-    var key_OR_range = null;
-    if (key != null) {
-      if (range != null) {
-        throw new ArgumentError('Cannot specify both key and range.');
-      }
-      key_OR_range = key;
-    } else {
-      key_OR_range = range;
-    }
-
-    // TODO: try/catch this and return a stream with an immediate error.
-    var request;
-    if (direction == null) {
-      request = _openCursor(key_OR_range);
-    } else {
-      request = _openCursor(key_OR_range, direction);
-    }
-    return _cursorStreamFromResult(request, autoAdvance);
-  }
-
-  @DomName('IDBObjectStore.createIndex')
-  Index createIndex(String name, keyPath, {bool unique, bool multiEntry}) {
-    var options = {};
-    if (unique != null) {
-      options['unique'] = unique;
-    }
-    if (multiEntry != null) {
-      options['multiEntry'] = multiEntry;
-    }
-
-    return _createIndex(name, keyPath, options);
-  }
-
-  // To suppress missing implicit constructor warnings.
-  factory ObjectStore._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('IDBObjectStore.autoIncrement')
-  @DocsEditable()
-  final bool autoIncrement;
-
-  @DomName('IDBObjectStore.indexNames')
-  @DocsEditable()
-  @Returns('DomStringList|Null')
-  @Creates('DomStringList')
-  final List<String> indexNames;
-
-  @DomName('IDBObjectStore.keyPath')
-  @DocsEditable()
-  @annotation_Creates_SerializedScriptValue
-  final Object keyPath;
-
-  @DomName('IDBObjectStore.name')
-  @DocsEditable()
-  final String name;
-
-  @DomName('IDBObjectStore.transaction')
-  @DocsEditable()
-  final Transaction transaction;
-
-  @DomName('IDBObjectStore.add')
-  @DocsEditable()
-  @Returns('Request')
-  @Creates('Request')
-  @_annotation_Creates_IDBKey
-  Request _add(/*any*/ value, [/*any*/ key]) {
-    if (key != null) {
-      var value_1 = convertDartToNative_SerializedScriptValue(value);
-      var key_2 = convertDartToNative_SerializedScriptValue(key);
-      return _add_1(value_1, key_2);
-    }
-    var value_1 = convertDartToNative_SerializedScriptValue(value);
-    return _add_2(value_1);
-  }
-
-  @JSName('add')
-  @DomName('IDBObjectStore.add')
-  @DocsEditable()
-  @Returns('Request')
-  @Creates('Request')
-  @_annotation_Creates_IDBKey
-  Request _add_1(value, key) native;
-  @JSName('add')
-  @DomName('IDBObjectStore.add')
-  @DocsEditable()
-  @Returns('Request')
-  @Creates('Request')
-  @_annotation_Creates_IDBKey
-  Request _add_2(value) native;
-
-  @JSName('clear')
-  @DomName('IDBObjectStore.clear')
-  @DocsEditable()
-  Request _clear() native;
-
-  @JSName('count')
-  @DomName('IDBObjectStore.count')
-  @DocsEditable()
-  Request _count(Object key) native;
-
-  @DomName('IDBObjectStore.createIndex')
-  @DocsEditable()
-  Index _createIndex(String name, Object keyPath, [Map options]) {
-    if (options != null) {
-      var options_1 = convertDartToNative_Dictionary(options);
-      return _createIndex_1(name, keyPath, options_1);
-    }
-    return _createIndex_2(name, keyPath);
-  }
-
-  @JSName('createIndex')
-  @DomName('IDBObjectStore.createIndex')
-  @DocsEditable()
-  Index _createIndex_1(name, keyPath, options) native;
-  @JSName('createIndex')
-  @DomName('IDBObjectStore.createIndex')
-  @DocsEditable()
-  Index _createIndex_2(name, keyPath) native;
-
-  @JSName('delete')
-  @DomName('IDBObjectStore.delete')
-  @DocsEditable()
-  Request _delete(Object key) native;
-
-  @DomName('IDBObjectStore.deleteIndex')
-  @DocsEditable()
-  void deleteIndex(String name) native;
-
-  @JSName('get')
-  @DomName('IDBObjectStore.get')
-  @DocsEditable()
-  @Returns('Request')
-  @Creates('Request')
-  @annotation_Creates_SerializedScriptValue
-  Request _get(Object key) native;
-
-  @DomName('IDBObjectStore.getAll')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Request getAll(Object range, [int maxCount]) native;
-
-  @DomName('IDBObjectStore.getAllKeys')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Request getAllKeys(Object range, [int maxCount]) native;
-
-  @DomName('IDBObjectStore.index')
-  @DocsEditable()
-  Index index(String name) native;
-
-  @JSName('openCursor')
-  @DomName('IDBObjectStore.openCursor')
-  @DocsEditable()
-  @Returns('Request')
-  @Creates('Request')
-  @Creates('Cursor')
-  Request _openCursor(Object range, [String direction]) native;
-
-  @DomName('IDBObjectStore.openKeyCursor')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Request openKeyCursor(Object range, [String direction]) native;
-
-  @DomName('IDBObjectStore.put')
-  @DocsEditable()
-  @Returns('Request')
-  @Creates('Request')
-  @_annotation_Creates_IDBKey
-  Request _put(/*any*/ value, [/*any*/ key]) {
-    if (key != null) {
-      var value_1 = convertDartToNative_SerializedScriptValue(value);
-      var key_2 = convertDartToNative_SerializedScriptValue(key);
-      return _put_1(value_1, key_2);
-    }
-    var value_1 = convertDartToNative_SerializedScriptValue(value);
-    return _put_2(value_1);
-  }
-
-  @JSName('put')
-  @DomName('IDBObjectStore.put')
-  @DocsEditable()
-  @Returns('Request')
-  @Creates('Request')
-  @_annotation_Creates_IDBKey
-  Request _put_1(value, key) native;
-  @JSName('put')
-  @DomName('IDBObjectStore.put')
-  @DocsEditable()
-  @Returns('Request')
-  @Creates('Request')
-  @_annotation_Creates_IDBKey
-  Request _put_2(value) native;
-
-  /**
-   * Helper for iterating over cursors in a request.
-   */
-  static Stream/*<T>*/ _cursorStreamFromResult/*<T extends Cursor>*/(
-      Request request, bool autoAdvance) {
-    // TODO: need to guarantee that the controller provides the values
-    // immediately as waiting until the next tick will cause the transaction to
-    // close.
-    var controller = new StreamController/*<T>*/(sync: true);
-
-    //TODO: Report stacktrace once issue 4061 is resolved.
-    request.onError.listen(controller.addError);
-
-    request.onSuccess.listen((e) {
-      var cursor = _cast/*<T>*/(request.result);
-      if (cursor == null) {
-        controller.close();
-      } else {
-        controller.add(cursor);
-        if (autoAdvance == true && controller.hasListener) {
-          cursor.next();
-        }
-      }
-    });
-    return controller.stream;
-  }
-}
-
-// ignore: STRONG_MODE_DOWN_CAST_COMPOSITE
-/*=To*/ _cast/*<To>*/(dynamic x) => x;
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('IDBOpenDBRequest')
-@Unstable()
-@Native("IDBOpenDBRequest,IDBVersionChangeRequest")
-class OpenDBRequest extends Request {
-  // To suppress missing implicit constructor warnings.
-  factory OpenDBRequest._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `blocked` events to event
-   * handlers that are not necessarily instances of [OpenDBRequest].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('IDBOpenDBRequest.blockedEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> blockedEvent =
-      const EventStreamProvider<Event>('blocked');
-
-  /**
-   * Static factory designed to expose `upgradeneeded` events to event
-   * handlers that are not necessarily instances of [OpenDBRequest].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('IDBOpenDBRequest.upgradeneededEvent')
-  @DocsEditable()
-  static const EventStreamProvider<VersionChangeEvent> upgradeNeededEvent =
-      const EventStreamProvider<VersionChangeEvent>('upgradeneeded');
-
-  /// Stream of `blocked` events handled by this [OpenDBRequest].
-  @DomName('IDBOpenDBRequest.onblocked')
-  @DocsEditable()
-  Stream<Event> get onBlocked => blockedEvent.forTarget(this);
-
-  /// Stream of `upgradeneeded` events handled by this [OpenDBRequest].
-  @DomName('IDBOpenDBRequest.onupgradeneeded')
-  @DocsEditable()
-  Stream<VersionChangeEvent> get onUpgradeNeeded =>
-      upgradeNeededEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('IDBRequest')
-@Unstable()
-@Native("IDBRequest")
-class Request extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory Request._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `error` events to event
-   * handlers that are not necessarily instances of [Request].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('IDBRequest.errorEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> errorEvent =
-      const EventStreamProvider<Event>('error');
-
-  /**
-   * Static factory designed to expose `success` events to event
-   * handlers that are not necessarily instances of [Request].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('IDBRequest.successEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> successEvent =
-      const EventStreamProvider<Event>('success');
-
-  @DomName('IDBRequest.error')
-  @DocsEditable()
-  final DomException error;
-
-  @DomName('IDBRequest.readyState')
-  @DocsEditable()
-  final String readyState;
-
-  @DomName('IDBRequest.result')
-  @DocsEditable()
-  dynamic get result => _convertNativeToDart_IDBAny(this._get_result);
-  @JSName('result')
-  @DomName('IDBRequest.result')
-  @DocsEditable()
-  @Creates('Null')
-  final dynamic _get_result;
-
-  @DomName('IDBRequest.source')
-  @DocsEditable()
-  @Creates('Null')
-  final Object source;
-
-  @DomName('IDBRequest.transaction')
-  @DocsEditable()
-  final Transaction transaction;
-
-  /// Stream of `error` events handled by this [Request].
-  @DomName('IDBRequest.onerror')
-  @DocsEditable()
-  Stream<Event> get onError => errorEvent.forTarget(this);
-
-  /// Stream of `success` events handled by this [Request].
-  @DomName('IDBRequest.onsuccess')
-  @DocsEditable()
-  Stream<Event> get onSuccess => successEvent.forTarget(this);
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('IDBTransaction')
-@Unstable()
-@Native("IDBTransaction")
-class Transaction extends EventTarget {
-  /**
-   * Provides a Future which will be completed once the transaction has
-   * completed.
-   *
-   * The future will error if an error occurrs on the transaction or if the
-   * transaction is aborted.
-   */
-  Future<Database> get completed {
-    var completer = new Completer<Database>();
-
-    this.onComplete.first.then((_) {
-      completer.complete(db);
-    });
-
-    this.onError.first.then((e) {
-      completer.completeError(e);
-    });
-
-    this.onAbort.first.then((e) {
-      // Avoid completing twice if an error occurs.
-      if (!completer.isCompleted) {
-        completer.completeError(e);
-      }
-    });
-
-    return completer.future;
-  }
-
-  // To suppress missing implicit constructor warnings.
-  factory Transaction._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `abort` events to event
-   * handlers that are not necessarily instances of [Transaction].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('IDBTransaction.abortEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> abortEvent =
-      const EventStreamProvider<Event>('abort');
-
-  /**
-   * Static factory designed to expose `complete` events to event
-   * handlers that are not necessarily instances of [Transaction].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('IDBTransaction.completeEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> completeEvent =
-      const EventStreamProvider<Event>('complete');
-
-  /**
-   * Static factory designed to expose `error` events to event
-   * handlers that are not necessarily instances of [Transaction].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('IDBTransaction.errorEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> errorEvent =
-      const EventStreamProvider<Event>('error');
-
-  @DomName('IDBTransaction.db')
-  @DocsEditable()
-  final Database db;
-
-  @DomName('IDBTransaction.error')
-  @DocsEditable()
-  final DomException error;
-
-  @DomName('IDBTransaction.mode')
-  @DocsEditable()
-  final String mode;
-
-  @DomName('IDBTransaction.objectStoreNames')
-  @DocsEditable()
-  @Experimental() // untriaged
-  @Returns('DomStringList|Null')
-  @Creates('DomStringList')
-  final List<String> objectStoreNames;
-
-  @DomName('IDBTransaction.abort')
-  @DocsEditable()
-  void abort() native;
-
-  @DomName('IDBTransaction.objectStore')
-  @DocsEditable()
-  ObjectStore objectStore(String name) native;
-
-  /// Stream of `abort` events handled by this [Transaction].
-  @DomName('IDBTransaction.onabort')
-  @DocsEditable()
-  Stream<Event> get onAbort => abortEvent.forTarget(this);
-
-  /// Stream of `complete` events handled by this [Transaction].
-  @DomName('IDBTransaction.oncomplete')
-  @DocsEditable()
-  Stream<Event> get onComplete => completeEvent.forTarget(this);
-
-  /// Stream of `error` events handled by this [Transaction].
-  @DomName('IDBTransaction.onerror')
-  @DocsEditable()
-  Stream<Event> get onError => errorEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('IDBVersionChangeEvent')
-@Unstable()
-@Native("IDBVersionChangeEvent")
-class VersionChangeEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory VersionChangeEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('IDBVersionChangeEvent.IDBVersionChangeEvent')
-  @DocsEditable()
-  factory VersionChangeEvent(String type, [Map eventInitDict]) {
-    if (eventInitDict != null) {
-      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
-      return VersionChangeEvent._create_1(type, eventInitDict_1);
-    }
-    return VersionChangeEvent._create_2(type);
-  }
-  static VersionChangeEvent _create_1(type, eventInitDict) => JS(
-      'VersionChangeEvent',
-      'new IDBVersionChangeEvent(#,#)',
-      type,
-      eventInitDict);
-  static VersionChangeEvent _create_2(type) =>
-      JS('VersionChangeEvent', 'new IDBVersionChangeEvent(#)', type);
-
-  @DomName('IDBVersionChangeEvent.dataLoss')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String dataLoss;
-
-  @DomName('IDBVersionChangeEvent.dataLossMessage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String dataLossMessage;
-
-  @DomName('IDBVersionChangeEvent.newVersion')
-  @DocsEditable()
-  @Creates('int|String|Null')
-  @Returns('int|String|Null')
-  final int newVersion;
-
-  @DomName('IDBVersionChangeEvent.oldVersion')
-  @DocsEditable()
-  @Creates('int|String|Null')
-  @Returns('int|String|Null')
-  final int oldVersion;
-}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/libraries.json b/pkg/dev_compiler/tool/input_sdk/lib/libraries.json
index 864cc81..1a51699 100644
--- a/pkg/dev_compiler/tool/input_sdk/lib/libraries.json
+++ b/pkg/dev_compiler/tool/input_sdk/lib/libraries.json
@@ -36,7 +36,7 @@
         "uri": "../private/js_primitives.dart"
       },
       "_metadata": {
-        "uri": "html/html_common/metadata.dart"
+        "uri": "../../../../../sdk/lib/html/html_common/metadata.dart"
       },
       "_native_typed_data": {
         "uri": "../private/native_typed_data.dart"
@@ -82,13 +82,13 @@
         "patch": "../patch/typed_data_patch.dart"
       },
       "html": {
-        "uri": "html/dart2js/html_dart2js.dart"
+        "uri": "../../../../../sdk/lib/html/dart2js/html_dart2js.dart"
       },
       "html_common": {
-        "uri": "html/html_common/html_common_dart2js.dart"
+        "uri": "../../../../../sdk/lib/html/html_common/html_common_dart2js.dart"
       },
       "indexed_db": {
-        "uri": "indexed_db/dart2js/indexed_db_dart2js.dart"
+        "uri": "../../../../../sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart"
       },
       "js": {
         "uri": "js/dart2js/js_dart2js.dart"
@@ -97,16 +97,16 @@
         "uri": "js_util/dart2js/js_util_dart2js.dart"
       },
       "svg": {
-        "uri": "svg/dart2js/svg_dart2js.dart"
+        "uri": "../../../../../sdk/lib/svg/dart2js/svg_dart2js.dart"
       },
       "web_audio": {
-        "uri": "web_audio/dart2js/web_audio_dart2js.dart"
+        "uri": "../../../../../sdk/lib/web_audio/dart2js/web_audio_dart2js.dart"
       },
       "web_gl": {
-        "uri": "web_gl/dart2js/web_gl_dart2js.dart"
+        "uri": "../../../../../sdk/lib/web_gl/dart2js/web_gl_dart2js.dart"
       },
       "web_sql": {
-        "uri": "web_sql/dart2js/web_sql_dart2js.dart"
+        "uri": "../../../../../sdk/lib/web_sql/dart2js/web_sql_dart2js.dart"
       }
     }
   }
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/svg/dart2js/svg_dart2js.dart b/pkg/dev_compiler/tool/input_sdk/lib/svg/dart2js/svg_dart2js.dart
deleted file mode 100644
index 0a0a937..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/svg/dart2js/svg_dart2js.dart
+++ /dev/null
@@ -1,5971 +0,0 @@
-/**
- * Scalable Vector Graphics:
- * Two-dimensional vector graphics with support for events and animation.
- *
- * For details about the features and syntax of SVG, a W3C standard,
- * refer to the
- * [Scalable Vector Graphics Specification](http://www.w3.org/TR/SVG/).
- */
-library dart.dom.svg;
-
-import 'dart:async';
-import 'dart:collection';
-import 'dart:_internal';
-import 'dart:html';
-import 'dart:html_common';
-import 'dart:_js_helper' show Creates, Returns, JSName, Native;
-import 'dart:_foreign_helper' show JS;
-import 'dart:_interceptors' show Interceptor;
-// DO NOT EDIT - unless you are editing documentation as per:
-// https://code.google.com/p/dart/wiki/ContributingHTMLDocumentation
-// Auto-generated dart:svg library.
-
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-class _SvgElementFactoryProvider {
-  static SvgElement createSvgElement_tag(String tag) {
-    final Element temp =
-        document.createElementNS("http://www.w3.org/2000/svg", tag);
-    return temp;
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGAElement')
-@Unstable()
-@Native("SVGAElement")
-class AElement extends GraphicsElement implements UriReference {
-  // To suppress missing implicit constructor warnings.
-  factory AElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGAElement.SVGAElement')
-  @DocsEditable()
-  factory AElement() => _SvgElementFactoryProvider.createSvgElement_tag("a");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  AElement.created() : super.created();
-
-  @DomName('SVGAElement.target')
-  @DocsEditable()
-  final AnimatedString target;
-
-  // From SVGURIReference
-
-  @DomName('SVGAElement.href')
-  @DocsEditable()
-  final AnimatedString href;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGAngle')
-@Unstable()
-@Native("SVGAngle")
-class Angle extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Angle._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGAngle.SVG_ANGLETYPE_DEG')
-  @DocsEditable()
-  static const int SVG_ANGLETYPE_DEG = 2;
-
-  @DomName('SVGAngle.SVG_ANGLETYPE_GRAD')
-  @DocsEditable()
-  static const int SVG_ANGLETYPE_GRAD = 4;
-
-  @DomName('SVGAngle.SVG_ANGLETYPE_RAD')
-  @DocsEditable()
-  static const int SVG_ANGLETYPE_RAD = 3;
-
-  @DomName('SVGAngle.SVG_ANGLETYPE_UNKNOWN')
-  @DocsEditable()
-  static const int SVG_ANGLETYPE_UNKNOWN = 0;
-
-  @DomName('SVGAngle.SVG_ANGLETYPE_UNSPECIFIED')
-  @DocsEditable()
-  static const int SVG_ANGLETYPE_UNSPECIFIED = 1;
-
-  @DomName('SVGAngle.unitType')
-  @DocsEditable()
-  final int unitType;
-
-  @DomName('SVGAngle.value')
-  @DocsEditable()
-  num value;
-
-  @DomName('SVGAngle.valueAsString')
-  @DocsEditable()
-  String valueAsString;
-
-  @DomName('SVGAngle.valueInSpecifiedUnits')
-  @DocsEditable()
-  num valueInSpecifiedUnits;
-
-  @DomName('SVGAngle.convertToSpecifiedUnits')
-  @DocsEditable()
-  void convertToSpecifiedUnits(int unitType) native;
-
-  @DomName('SVGAngle.newValueSpecifiedUnits')
-  @DocsEditable()
-  void newValueSpecifiedUnits(int unitType, num valueInSpecifiedUnits) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGAnimateElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGAnimateElement")
-class AnimateElement extends AnimationElement {
-  // To suppress missing implicit constructor warnings.
-  factory AnimateElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGAnimateElement.SVGAnimateElement')
-  @DocsEditable()
-  factory AnimateElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("animate");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  AnimateElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('animate') &&
-      (new SvgElement.tag('animate') is AnimateElement);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGAnimateMotionElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGAnimateMotionElement")
-class AnimateMotionElement extends AnimationElement {
-  // To suppress missing implicit constructor warnings.
-  factory AnimateMotionElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGAnimateMotionElement.SVGAnimateMotionElement')
-  @DocsEditable()
-  factory AnimateMotionElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("animateMotion");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  AnimateMotionElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('animateMotion') &&
-      (new SvgElement.tag('animateMotion') is AnimateMotionElement);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGAnimateTransformElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGAnimateTransformElement")
-class AnimateTransformElement extends AnimationElement {
-  // To suppress missing implicit constructor warnings.
-  factory AnimateTransformElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGAnimateTransformElement.SVGAnimateTransformElement')
-  @DocsEditable()
-  factory AnimateTransformElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("animateTransform");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  AnimateTransformElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('animateTransform') &&
-      (new SvgElement.tag('animateTransform') is AnimateTransformElement);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGAnimatedAngle')
-@Unstable()
-@Native("SVGAnimatedAngle")
-class AnimatedAngle extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory AnimatedAngle._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGAnimatedAngle.animVal')
-  @DocsEditable()
-  final Angle animVal;
-
-  @DomName('SVGAnimatedAngle.baseVal')
-  @DocsEditable()
-  final Angle baseVal;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGAnimatedBoolean')
-@Unstable()
-@Native("SVGAnimatedBoolean")
-class AnimatedBoolean extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory AnimatedBoolean._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGAnimatedBoolean.animVal')
-  @DocsEditable()
-  final bool animVal;
-
-  @DomName('SVGAnimatedBoolean.baseVal')
-  @DocsEditable()
-  bool baseVal;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGAnimatedEnumeration')
-@Unstable()
-@Native("SVGAnimatedEnumeration")
-class AnimatedEnumeration extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory AnimatedEnumeration._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGAnimatedEnumeration.animVal')
-  @DocsEditable()
-  final int animVal;
-
-  @DomName('SVGAnimatedEnumeration.baseVal')
-  @DocsEditable()
-  int baseVal;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGAnimatedInteger')
-@Unstable()
-@Native("SVGAnimatedInteger")
-class AnimatedInteger extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory AnimatedInteger._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGAnimatedInteger.animVal')
-  @DocsEditable()
-  final int animVal;
-
-  @DomName('SVGAnimatedInteger.baseVal')
-  @DocsEditable()
-  int baseVal;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGAnimatedLength')
-@Unstable()
-@Native("SVGAnimatedLength")
-class AnimatedLength extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory AnimatedLength._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGAnimatedLength.animVal')
-  @DocsEditable()
-  final Length animVal;
-
-  @DomName('SVGAnimatedLength.baseVal')
-  @DocsEditable()
-  final Length baseVal;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGAnimatedLengthList')
-@Unstable()
-@Native("SVGAnimatedLengthList")
-class AnimatedLengthList extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory AnimatedLengthList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGAnimatedLengthList.animVal')
-  @DocsEditable()
-  final LengthList animVal;
-
-  @DomName('SVGAnimatedLengthList.baseVal')
-  @DocsEditable()
-  final LengthList baseVal;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGAnimatedNumber')
-@Unstable()
-@Native("SVGAnimatedNumber")
-class AnimatedNumber extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory AnimatedNumber._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGAnimatedNumber.animVal')
-  @DocsEditable()
-  final double animVal;
-
-  @DomName('SVGAnimatedNumber.baseVal')
-  @DocsEditable()
-  num baseVal;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGAnimatedNumberList')
-@Unstable()
-@Native("SVGAnimatedNumberList")
-class AnimatedNumberList extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory AnimatedNumberList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGAnimatedNumberList.animVal')
-  @DocsEditable()
-  final NumberList animVal;
-
-  @DomName('SVGAnimatedNumberList.baseVal')
-  @DocsEditable()
-  final NumberList baseVal;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGAnimatedPreserveAspectRatio')
-@Unstable()
-@Native("SVGAnimatedPreserveAspectRatio")
-class AnimatedPreserveAspectRatio extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory AnimatedPreserveAspectRatio._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGAnimatedPreserveAspectRatio.animVal')
-  @DocsEditable()
-  final PreserveAspectRatio animVal;
-
-  @DomName('SVGAnimatedPreserveAspectRatio.baseVal')
-  @DocsEditable()
-  final PreserveAspectRatio baseVal;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGAnimatedRect')
-@Unstable()
-@Native("SVGAnimatedRect")
-class AnimatedRect extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory AnimatedRect._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGAnimatedRect.animVal')
-  @DocsEditable()
-  final Rect animVal;
-
-  @DomName('SVGAnimatedRect.baseVal')
-  @DocsEditable()
-  final Rect baseVal;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGAnimatedString')
-@Unstable()
-@Native("SVGAnimatedString")
-class AnimatedString extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory AnimatedString._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGAnimatedString.animVal')
-  @DocsEditable()
-  final String animVal;
-
-  @DomName('SVGAnimatedString.baseVal')
-  @DocsEditable()
-  String baseVal;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGAnimatedTransformList')
-@Unstable()
-@Native("SVGAnimatedTransformList")
-class AnimatedTransformList extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory AnimatedTransformList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGAnimatedTransformList.animVal')
-  @DocsEditable()
-  final TransformList animVal;
-
-  @DomName('SVGAnimatedTransformList.baseVal')
-  @DocsEditable()
-  final TransformList baseVal;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGAnimationElement')
-@Unstable()
-@Native("SVGAnimationElement")
-class AnimationElement extends SvgElement implements Tests {
-  // To suppress missing implicit constructor warnings.
-  factory AnimationElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGAnimationElement.SVGAnimationElement')
-  @DocsEditable()
-  factory AnimationElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("animation");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  AnimationElement.created() : super.created();
-
-  @DomName('SVGAnimationElement.targetElement')
-  @DocsEditable()
-  final SvgElement targetElement;
-
-  @DomName('SVGAnimationElement.beginElement')
-  @DocsEditable()
-  void beginElement() native;
-
-  @DomName('SVGAnimationElement.beginElementAt')
-  @DocsEditable()
-  void beginElementAt(num offset) native;
-
-  @DomName('SVGAnimationElement.endElement')
-  @DocsEditable()
-  void endElement() native;
-
-  @DomName('SVGAnimationElement.endElementAt')
-  @DocsEditable()
-  void endElementAt(num offset) native;
-
-  @DomName('SVGAnimationElement.getCurrentTime')
-  @DocsEditable()
-  double getCurrentTime() native;
-
-  @DomName('SVGAnimationElement.getSimpleDuration')
-  @DocsEditable()
-  double getSimpleDuration() native;
-
-  @DomName('SVGAnimationElement.getStartTime')
-  @DocsEditable()
-  double getStartTime() native;
-
-  // From SVGTests
-
-  @DomName('SVGAnimationElement.requiredExtensions')
-  @DocsEditable()
-  final StringList requiredExtensions;
-
-  @DomName('SVGAnimationElement.requiredFeatures')
-  @DocsEditable()
-  final StringList requiredFeatures;
-
-  @DomName('SVGAnimationElement.systemLanguage')
-  @DocsEditable()
-  final StringList systemLanguage;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGCircleElement')
-@Unstable()
-@Native("SVGCircleElement")
-class CircleElement extends GeometryElement {
-  // To suppress missing implicit constructor warnings.
-  factory CircleElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGCircleElement.SVGCircleElement')
-  @DocsEditable()
-  factory CircleElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("circle");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  CircleElement.created() : super.created();
-
-  @DomName('SVGCircleElement.cx')
-  @DocsEditable()
-  final AnimatedLength cx;
-
-  @DomName('SVGCircleElement.cy')
-  @DocsEditable()
-  final AnimatedLength cy;
-
-  @DomName('SVGCircleElement.r')
-  @DocsEditable()
-  final AnimatedLength r;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGClipPathElement')
-@Unstable()
-@Native("SVGClipPathElement")
-class ClipPathElement extends GraphicsElement {
-  // To suppress missing implicit constructor warnings.
-  factory ClipPathElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGClipPathElement.SVGClipPathElement')
-  @DocsEditable()
-  factory ClipPathElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("clipPath");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  ClipPathElement.created() : super.created();
-
-  @DomName('SVGClipPathElement.clipPathUnits')
-  @DocsEditable()
-  final AnimatedEnumeration clipPathUnits;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGDefsElement')
-@Unstable()
-@Native("SVGDefsElement")
-class DefsElement extends GraphicsElement {
-  // To suppress missing implicit constructor warnings.
-  factory DefsElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGDefsElement.SVGDefsElement')
-  @DocsEditable()
-  factory DefsElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("defs");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  DefsElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGDescElement')
-@Unstable()
-@Native("SVGDescElement")
-class DescElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory DescElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGDescElement.SVGDescElement')
-  @DocsEditable()
-  factory DescElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("desc");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  DescElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGDiscardElement')
-@Experimental() // untriaged
-@Native("SVGDiscardElement")
-class DiscardElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory DiscardElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  DiscardElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGEllipseElement')
-@Unstable()
-@Native("SVGEllipseElement")
-class EllipseElement extends GeometryElement {
-  // To suppress missing implicit constructor warnings.
-  factory EllipseElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGEllipseElement.SVGEllipseElement')
-  @DocsEditable()
-  factory EllipseElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("ellipse");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  EllipseElement.created() : super.created();
-
-  @DomName('SVGEllipseElement.cx')
-  @DocsEditable()
-  final AnimatedLength cx;
-
-  @DomName('SVGEllipseElement.cy')
-  @DocsEditable()
-  final AnimatedLength cy;
-
-  @DomName('SVGEllipseElement.rx')
-  @DocsEditable()
-  final AnimatedLength rx;
-
-  @DomName('SVGEllipseElement.ry')
-  @DocsEditable()
-  final AnimatedLength ry;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGFEBlendElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEBlendElement")
-class FEBlendElement extends SvgElement
-    implements FilterPrimitiveStandardAttributes {
-  // To suppress missing implicit constructor warnings.
-  factory FEBlendElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGFEBlendElement.SVGFEBlendElement')
-  @DocsEditable()
-  factory FEBlendElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("feBlend");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  FEBlendElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('feBlend') &&
-      (new SvgElement.tag('feBlend') is FEBlendElement);
-
-  @DomName('SVGFEBlendElement.SVG_FEBLEND_MODE_DARKEN')
-  @DocsEditable()
-  static const int SVG_FEBLEND_MODE_DARKEN = 4;
-
-  @DomName('SVGFEBlendElement.SVG_FEBLEND_MODE_LIGHTEN')
-  @DocsEditable()
-  static const int SVG_FEBLEND_MODE_LIGHTEN = 5;
-
-  @DomName('SVGFEBlendElement.SVG_FEBLEND_MODE_MULTIPLY')
-  @DocsEditable()
-  static const int SVG_FEBLEND_MODE_MULTIPLY = 2;
-
-  @DomName('SVGFEBlendElement.SVG_FEBLEND_MODE_NORMAL')
-  @DocsEditable()
-  static const int SVG_FEBLEND_MODE_NORMAL = 1;
-
-  @DomName('SVGFEBlendElement.SVG_FEBLEND_MODE_SCREEN')
-  @DocsEditable()
-  static const int SVG_FEBLEND_MODE_SCREEN = 3;
-
-  @DomName('SVGFEBlendElement.SVG_FEBLEND_MODE_UNKNOWN')
-  @DocsEditable()
-  static const int SVG_FEBLEND_MODE_UNKNOWN = 0;
-
-  @DomName('SVGFEBlendElement.in1')
-  @DocsEditable()
-  final AnimatedString in1;
-
-  @DomName('SVGFEBlendElement.in2')
-  @DocsEditable()
-  final AnimatedString in2;
-
-  @DomName('SVGFEBlendElement.mode')
-  @DocsEditable()
-  final AnimatedEnumeration mode;
-
-  // From SVGFilterPrimitiveStandardAttributes
-
-  @DomName('SVGFEBlendElement.height')
-  @DocsEditable()
-  final AnimatedLength height;
-
-  @DomName('SVGFEBlendElement.result')
-  @DocsEditable()
-  final AnimatedString result;
-
-  @DomName('SVGFEBlendElement.width')
-  @DocsEditable()
-  final AnimatedLength width;
-
-  @DomName('SVGFEBlendElement.x')
-  @DocsEditable()
-  final AnimatedLength x;
-
-  @DomName('SVGFEBlendElement.y')
-  @DocsEditable()
-  final AnimatedLength y;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGFEColorMatrixElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEColorMatrixElement")
-class FEColorMatrixElement extends SvgElement
-    implements FilterPrimitiveStandardAttributes {
-  // To suppress missing implicit constructor warnings.
-  factory FEColorMatrixElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGFEColorMatrixElement.SVGFEColorMatrixElement')
-  @DocsEditable()
-  factory FEColorMatrixElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("feColorMatrix");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  FEColorMatrixElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('feColorMatrix') &&
-      (new SvgElement.tag('feColorMatrix') is FEColorMatrixElement);
-
-  @DomName('SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_HUEROTATE')
-  @DocsEditable()
-  static const int SVG_FECOLORMATRIX_TYPE_HUEROTATE = 3;
-
-  @DomName('SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA')
-  @DocsEditable()
-  static const int SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4;
-
-  @DomName('SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_MATRIX')
-  @DocsEditable()
-  static const int SVG_FECOLORMATRIX_TYPE_MATRIX = 1;
-
-  @DomName('SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_SATURATE')
-  @DocsEditable()
-  static const int SVG_FECOLORMATRIX_TYPE_SATURATE = 2;
-
-  @DomName('SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_UNKNOWN')
-  @DocsEditable()
-  static const int SVG_FECOLORMATRIX_TYPE_UNKNOWN = 0;
-
-  @DomName('SVGFEColorMatrixElement.in1')
-  @DocsEditable()
-  final AnimatedString in1;
-
-  @DomName('SVGFEColorMatrixElement.type')
-  @DocsEditable()
-  final AnimatedEnumeration type;
-
-  @DomName('SVGFEColorMatrixElement.values')
-  @DocsEditable()
-  final AnimatedNumberList values;
-
-  // From SVGFilterPrimitiveStandardAttributes
-
-  @DomName('SVGFEColorMatrixElement.height')
-  @DocsEditable()
-  final AnimatedLength height;
-
-  @DomName('SVGFEColorMatrixElement.result')
-  @DocsEditable()
-  final AnimatedString result;
-
-  @DomName('SVGFEColorMatrixElement.width')
-  @DocsEditable()
-  final AnimatedLength width;
-
-  @DomName('SVGFEColorMatrixElement.x')
-  @DocsEditable()
-  final AnimatedLength x;
-
-  @DomName('SVGFEColorMatrixElement.y')
-  @DocsEditable()
-  final AnimatedLength y;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGFEComponentTransferElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEComponentTransferElement")
-class FEComponentTransferElement extends SvgElement
-    implements FilterPrimitiveStandardAttributes {
-  // To suppress missing implicit constructor warnings.
-  factory FEComponentTransferElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGFEComponentTransferElement.SVGFEComponentTransferElement')
-  @DocsEditable()
-  factory FEComponentTransferElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("feComponentTransfer");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  FEComponentTransferElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('feComponentTransfer') &&
-      (new SvgElement.tag('feComponentTransfer') is FEComponentTransferElement);
-
-  @DomName('SVGFEComponentTransferElement.in1')
-  @DocsEditable()
-  final AnimatedString in1;
-
-  // From SVGFilterPrimitiveStandardAttributes
-
-  @DomName('SVGFEComponentTransferElement.height')
-  @DocsEditable()
-  final AnimatedLength height;
-
-  @DomName('SVGFEComponentTransferElement.result')
-  @DocsEditable()
-  final AnimatedString result;
-
-  @DomName('SVGFEComponentTransferElement.width')
-  @DocsEditable()
-  final AnimatedLength width;
-
-  @DomName('SVGFEComponentTransferElement.x')
-  @DocsEditable()
-  final AnimatedLength x;
-
-  @DomName('SVGFEComponentTransferElement.y')
-  @DocsEditable()
-  final AnimatedLength y;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGFECompositeElement')
-@Unstable()
-@Native("SVGFECompositeElement")
-class FECompositeElement extends SvgElement
-    implements FilterPrimitiveStandardAttributes {
-  // To suppress missing implicit constructor warnings.
-  factory FECompositeElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  FECompositeElement.created() : super.created();
-
-  @DomName('SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_ARITHMETIC')
-  @DocsEditable()
-  static const int SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6;
-
-  @DomName('SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_ATOP')
-  @DocsEditable()
-  static const int SVG_FECOMPOSITE_OPERATOR_ATOP = 4;
-
-  @DomName('SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_IN')
-  @DocsEditable()
-  static const int SVG_FECOMPOSITE_OPERATOR_IN = 2;
-
-  @DomName('SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_OUT')
-  @DocsEditable()
-  static const int SVG_FECOMPOSITE_OPERATOR_OUT = 3;
-
-  @DomName('SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_OVER')
-  @DocsEditable()
-  static const int SVG_FECOMPOSITE_OPERATOR_OVER = 1;
-
-  @DomName('SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_UNKNOWN')
-  @DocsEditable()
-  static const int SVG_FECOMPOSITE_OPERATOR_UNKNOWN = 0;
-
-  @DomName('SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_XOR')
-  @DocsEditable()
-  static const int SVG_FECOMPOSITE_OPERATOR_XOR = 5;
-
-  @DomName('SVGFECompositeElement.in1')
-  @DocsEditable()
-  final AnimatedString in1;
-
-  @DomName('SVGFECompositeElement.in2')
-  @DocsEditable()
-  final AnimatedString in2;
-
-  @DomName('SVGFECompositeElement.k1')
-  @DocsEditable()
-  final AnimatedNumber k1;
-
-  @DomName('SVGFECompositeElement.k2')
-  @DocsEditable()
-  final AnimatedNumber k2;
-
-  @DomName('SVGFECompositeElement.k3')
-  @DocsEditable()
-  final AnimatedNumber k3;
-
-  @DomName('SVGFECompositeElement.k4')
-  @DocsEditable()
-  final AnimatedNumber k4;
-
-  @DomName('SVGFECompositeElement.operator')
-  @DocsEditable()
-  final AnimatedEnumeration operator;
-
-  // From SVGFilterPrimitiveStandardAttributes
-
-  @DomName('SVGFECompositeElement.height')
-  @DocsEditable()
-  final AnimatedLength height;
-
-  @DomName('SVGFECompositeElement.result')
-  @DocsEditable()
-  final AnimatedString result;
-
-  @DomName('SVGFECompositeElement.width')
-  @DocsEditable()
-  final AnimatedLength width;
-
-  @DomName('SVGFECompositeElement.x')
-  @DocsEditable()
-  final AnimatedLength x;
-
-  @DomName('SVGFECompositeElement.y')
-  @DocsEditable()
-  final AnimatedLength y;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGFEConvolveMatrixElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEConvolveMatrixElement")
-class FEConvolveMatrixElement extends SvgElement
-    implements FilterPrimitiveStandardAttributes {
-  // To suppress missing implicit constructor warnings.
-  factory FEConvolveMatrixElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGFEConvolveMatrixElement.SVGFEConvolveMatrixElement')
-  @DocsEditable()
-  factory FEConvolveMatrixElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("feConvolveMatrix");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  FEConvolveMatrixElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('feConvolveMatrix') &&
-      (new SvgElement.tag('feConvolveMatrix') is FEConvolveMatrixElement);
-
-  @DomName('SVGFEConvolveMatrixElement.SVG_EDGEMODE_DUPLICATE')
-  @DocsEditable()
-  static const int SVG_EDGEMODE_DUPLICATE = 1;
-
-  @DomName('SVGFEConvolveMatrixElement.SVG_EDGEMODE_NONE')
-  @DocsEditable()
-  static const int SVG_EDGEMODE_NONE = 3;
-
-  @DomName('SVGFEConvolveMatrixElement.SVG_EDGEMODE_UNKNOWN')
-  @DocsEditable()
-  static const int SVG_EDGEMODE_UNKNOWN = 0;
-
-  @DomName('SVGFEConvolveMatrixElement.SVG_EDGEMODE_WRAP')
-  @DocsEditable()
-  static const int SVG_EDGEMODE_WRAP = 2;
-
-  @DomName('SVGFEConvolveMatrixElement.bias')
-  @DocsEditable()
-  final AnimatedNumber bias;
-
-  @DomName('SVGFEConvolveMatrixElement.divisor')
-  @DocsEditable()
-  final AnimatedNumber divisor;
-
-  @DomName('SVGFEConvolveMatrixElement.edgeMode')
-  @DocsEditable()
-  final AnimatedEnumeration edgeMode;
-
-  @DomName('SVGFEConvolveMatrixElement.in1')
-  @DocsEditable()
-  final AnimatedString in1;
-
-  @DomName('SVGFEConvolveMatrixElement.kernelMatrix')
-  @DocsEditable()
-  final AnimatedNumberList kernelMatrix;
-
-  @DomName('SVGFEConvolveMatrixElement.kernelUnitLengthX')
-  @DocsEditable()
-  final AnimatedNumber kernelUnitLengthX;
-
-  @DomName('SVGFEConvolveMatrixElement.kernelUnitLengthY')
-  @DocsEditable()
-  final AnimatedNumber kernelUnitLengthY;
-
-  @DomName('SVGFEConvolveMatrixElement.orderX')
-  @DocsEditable()
-  final AnimatedInteger orderX;
-
-  @DomName('SVGFEConvolveMatrixElement.orderY')
-  @DocsEditable()
-  final AnimatedInteger orderY;
-
-  @DomName('SVGFEConvolveMatrixElement.preserveAlpha')
-  @DocsEditable()
-  final AnimatedBoolean preserveAlpha;
-
-  @DomName('SVGFEConvolveMatrixElement.targetX')
-  @DocsEditable()
-  final AnimatedInteger targetX;
-
-  @DomName('SVGFEConvolveMatrixElement.targetY')
-  @DocsEditable()
-  final AnimatedInteger targetY;
-
-  // From SVGFilterPrimitiveStandardAttributes
-
-  @DomName('SVGFEConvolveMatrixElement.height')
-  @DocsEditable()
-  final AnimatedLength height;
-
-  @DomName('SVGFEConvolveMatrixElement.result')
-  @DocsEditable()
-  final AnimatedString result;
-
-  @DomName('SVGFEConvolveMatrixElement.width')
-  @DocsEditable()
-  final AnimatedLength width;
-
-  @DomName('SVGFEConvolveMatrixElement.x')
-  @DocsEditable()
-  final AnimatedLength x;
-
-  @DomName('SVGFEConvolveMatrixElement.y')
-  @DocsEditable()
-  final AnimatedLength y;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGFEDiffuseLightingElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEDiffuseLightingElement")
-class FEDiffuseLightingElement extends SvgElement
-    implements FilterPrimitiveStandardAttributes {
-  // To suppress missing implicit constructor warnings.
-  factory FEDiffuseLightingElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGFEDiffuseLightingElement.SVGFEDiffuseLightingElement')
-  @DocsEditable()
-  factory FEDiffuseLightingElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("feDiffuseLighting");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  FEDiffuseLightingElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('feDiffuseLighting') &&
-      (new SvgElement.tag('feDiffuseLighting') is FEDiffuseLightingElement);
-
-  @DomName('SVGFEDiffuseLightingElement.diffuseConstant')
-  @DocsEditable()
-  final AnimatedNumber diffuseConstant;
-
-  @DomName('SVGFEDiffuseLightingElement.in1')
-  @DocsEditable()
-  final AnimatedString in1;
-
-  @DomName('SVGFEDiffuseLightingElement.kernelUnitLengthX')
-  @DocsEditable()
-  final AnimatedNumber kernelUnitLengthX;
-
-  @DomName('SVGFEDiffuseLightingElement.kernelUnitLengthY')
-  @DocsEditable()
-  final AnimatedNumber kernelUnitLengthY;
-
-  @DomName('SVGFEDiffuseLightingElement.surfaceScale')
-  @DocsEditable()
-  final AnimatedNumber surfaceScale;
-
-  // From SVGFilterPrimitiveStandardAttributes
-
-  @DomName('SVGFEDiffuseLightingElement.height')
-  @DocsEditable()
-  final AnimatedLength height;
-
-  @DomName('SVGFEDiffuseLightingElement.result')
-  @DocsEditable()
-  final AnimatedString result;
-
-  @DomName('SVGFEDiffuseLightingElement.width')
-  @DocsEditable()
-  final AnimatedLength width;
-
-  @DomName('SVGFEDiffuseLightingElement.x')
-  @DocsEditable()
-  final AnimatedLength x;
-
-  @DomName('SVGFEDiffuseLightingElement.y')
-  @DocsEditable()
-  final AnimatedLength y;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGFEDisplacementMapElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEDisplacementMapElement")
-class FEDisplacementMapElement extends SvgElement
-    implements FilterPrimitiveStandardAttributes {
-  // To suppress missing implicit constructor warnings.
-  factory FEDisplacementMapElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGFEDisplacementMapElement.SVGFEDisplacementMapElement')
-  @DocsEditable()
-  factory FEDisplacementMapElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("feDisplacementMap");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  FEDisplacementMapElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('feDisplacementMap') &&
-      (new SvgElement.tag('feDisplacementMap') is FEDisplacementMapElement);
-
-  @DomName('SVGFEDisplacementMapElement.SVG_CHANNEL_A')
-  @DocsEditable()
-  static const int SVG_CHANNEL_A = 4;
-
-  @DomName('SVGFEDisplacementMapElement.SVG_CHANNEL_B')
-  @DocsEditable()
-  static const int SVG_CHANNEL_B = 3;
-
-  @DomName('SVGFEDisplacementMapElement.SVG_CHANNEL_G')
-  @DocsEditable()
-  static const int SVG_CHANNEL_G = 2;
-
-  @DomName('SVGFEDisplacementMapElement.SVG_CHANNEL_R')
-  @DocsEditable()
-  static const int SVG_CHANNEL_R = 1;
-
-  @DomName('SVGFEDisplacementMapElement.SVG_CHANNEL_UNKNOWN')
-  @DocsEditable()
-  static const int SVG_CHANNEL_UNKNOWN = 0;
-
-  @DomName('SVGFEDisplacementMapElement.in1')
-  @DocsEditable()
-  final AnimatedString in1;
-
-  @DomName('SVGFEDisplacementMapElement.in2')
-  @DocsEditable()
-  final AnimatedString in2;
-
-  @DomName('SVGFEDisplacementMapElement.scale')
-  @DocsEditable()
-  final AnimatedNumber scale;
-
-  @DomName('SVGFEDisplacementMapElement.xChannelSelector')
-  @DocsEditable()
-  final AnimatedEnumeration xChannelSelector;
-
-  @DomName('SVGFEDisplacementMapElement.yChannelSelector')
-  @DocsEditable()
-  final AnimatedEnumeration yChannelSelector;
-
-  // From SVGFilterPrimitiveStandardAttributes
-
-  @DomName('SVGFEDisplacementMapElement.height')
-  @DocsEditable()
-  final AnimatedLength height;
-
-  @DomName('SVGFEDisplacementMapElement.result')
-  @DocsEditable()
-  final AnimatedString result;
-
-  @DomName('SVGFEDisplacementMapElement.width')
-  @DocsEditable()
-  final AnimatedLength width;
-
-  @DomName('SVGFEDisplacementMapElement.x')
-  @DocsEditable()
-  final AnimatedLength x;
-
-  @DomName('SVGFEDisplacementMapElement.y')
-  @DocsEditable()
-  final AnimatedLength y;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGFEDistantLightElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEDistantLightElement")
-class FEDistantLightElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory FEDistantLightElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGFEDistantLightElement.SVGFEDistantLightElement')
-  @DocsEditable()
-  factory FEDistantLightElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("feDistantLight");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  FEDistantLightElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('feDistantLight') &&
-      (new SvgElement.tag('feDistantLight') is FEDistantLightElement);
-
-  @DomName('SVGFEDistantLightElement.azimuth')
-  @DocsEditable()
-  final AnimatedNumber azimuth;
-
-  @DomName('SVGFEDistantLightElement.elevation')
-  @DocsEditable()
-  final AnimatedNumber elevation;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGFEFloodElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEFloodElement")
-class FEFloodElement extends SvgElement
-    implements FilterPrimitiveStandardAttributes {
-  // To suppress missing implicit constructor warnings.
-  factory FEFloodElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGFEFloodElement.SVGFEFloodElement')
-  @DocsEditable()
-  factory FEFloodElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("feFlood");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  FEFloodElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('feFlood') &&
-      (new SvgElement.tag('feFlood') is FEFloodElement);
-
-  // From SVGFilterPrimitiveStandardAttributes
-
-  @DomName('SVGFEFloodElement.height')
-  @DocsEditable()
-  final AnimatedLength height;
-
-  @DomName('SVGFEFloodElement.result')
-  @DocsEditable()
-  final AnimatedString result;
-
-  @DomName('SVGFEFloodElement.width')
-  @DocsEditable()
-  final AnimatedLength width;
-
-  @DomName('SVGFEFloodElement.x')
-  @DocsEditable()
-  final AnimatedLength x;
-
-  @DomName('SVGFEFloodElement.y')
-  @DocsEditable()
-  final AnimatedLength y;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGFEFuncAElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEFuncAElement")
-class FEFuncAElement extends _SVGComponentTransferFunctionElement {
-  // To suppress missing implicit constructor warnings.
-  factory FEFuncAElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGFEFuncAElement.SVGFEFuncAElement')
-  @DocsEditable()
-  factory FEFuncAElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("feFuncA");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  FEFuncAElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('feFuncA') &&
-      (new SvgElement.tag('feFuncA') is FEFuncAElement);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGFEFuncBElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEFuncBElement")
-class FEFuncBElement extends _SVGComponentTransferFunctionElement {
-  // To suppress missing implicit constructor warnings.
-  factory FEFuncBElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGFEFuncBElement.SVGFEFuncBElement')
-  @DocsEditable()
-  factory FEFuncBElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("feFuncB");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  FEFuncBElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('feFuncB') &&
-      (new SvgElement.tag('feFuncB') is FEFuncBElement);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGFEFuncGElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEFuncGElement")
-class FEFuncGElement extends _SVGComponentTransferFunctionElement {
-  // To suppress missing implicit constructor warnings.
-  factory FEFuncGElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGFEFuncGElement.SVGFEFuncGElement')
-  @DocsEditable()
-  factory FEFuncGElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("feFuncG");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  FEFuncGElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('feFuncG') &&
-      (new SvgElement.tag('feFuncG') is FEFuncGElement);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGFEFuncRElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEFuncRElement")
-class FEFuncRElement extends _SVGComponentTransferFunctionElement {
-  // To suppress missing implicit constructor warnings.
-  factory FEFuncRElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGFEFuncRElement.SVGFEFuncRElement')
-  @DocsEditable()
-  factory FEFuncRElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("feFuncR");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  FEFuncRElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('feFuncR') &&
-      (new SvgElement.tag('feFuncR') is FEFuncRElement);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGFEGaussianBlurElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEGaussianBlurElement")
-class FEGaussianBlurElement extends SvgElement
-    implements FilterPrimitiveStandardAttributes {
-  // To suppress missing implicit constructor warnings.
-  factory FEGaussianBlurElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGFEGaussianBlurElement.SVGFEGaussianBlurElement')
-  @DocsEditable()
-  factory FEGaussianBlurElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("feGaussianBlur");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  FEGaussianBlurElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('feGaussianBlur') &&
-      (new SvgElement.tag('feGaussianBlur') is FEGaussianBlurElement);
-
-  @DomName('SVGFEGaussianBlurElement.in1')
-  @DocsEditable()
-  final AnimatedString in1;
-
-  @DomName('SVGFEGaussianBlurElement.stdDeviationX')
-  @DocsEditable()
-  final AnimatedNumber stdDeviationX;
-
-  @DomName('SVGFEGaussianBlurElement.stdDeviationY')
-  @DocsEditable()
-  final AnimatedNumber stdDeviationY;
-
-  @DomName('SVGFEGaussianBlurElement.setStdDeviation')
-  @DocsEditable()
-  void setStdDeviation(num stdDeviationX, num stdDeviationY) native;
-
-  // From SVGFilterPrimitiveStandardAttributes
-
-  @DomName('SVGFEGaussianBlurElement.height')
-  @DocsEditable()
-  final AnimatedLength height;
-
-  @DomName('SVGFEGaussianBlurElement.result')
-  @DocsEditable()
-  final AnimatedString result;
-
-  @DomName('SVGFEGaussianBlurElement.width')
-  @DocsEditable()
-  final AnimatedLength width;
-
-  @DomName('SVGFEGaussianBlurElement.x')
-  @DocsEditable()
-  final AnimatedLength x;
-
-  @DomName('SVGFEGaussianBlurElement.y')
-  @DocsEditable()
-  final AnimatedLength y;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGFEImageElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEImageElement")
-class FEImageElement extends SvgElement
-    implements FilterPrimitiveStandardAttributes, UriReference {
-  // To suppress missing implicit constructor warnings.
-  factory FEImageElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGFEImageElement.SVGFEImageElement')
-  @DocsEditable()
-  factory FEImageElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("feImage");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  FEImageElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('feImage') &&
-      (new SvgElement.tag('feImage') is FEImageElement);
-
-  @DomName('SVGFEImageElement.preserveAspectRatio')
-  @DocsEditable()
-  final AnimatedPreserveAspectRatio preserveAspectRatio;
-
-  // From SVGFilterPrimitiveStandardAttributes
-
-  @DomName('SVGFEImageElement.height')
-  @DocsEditable()
-  final AnimatedLength height;
-
-  @DomName('SVGFEImageElement.result')
-  @DocsEditable()
-  final AnimatedString result;
-
-  @DomName('SVGFEImageElement.width')
-  @DocsEditable()
-  final AnimatedLength width;
-
-  @DomName('SVGFEImageElement.x')
-  @DocsEditable()
-  final AnimatedLength x;
-
-  @DomName('SVGFEImageElement.y')
-  @DocsEditable()
-  final AnimatedLength y;
-
-  // From SVGURIReference
-
-  @DomName('SVGFEImageElement.href')
-  @DocsEditable()
-  final AnimatedString href;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGFEMergeElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEMergeElement")
-class FEMergeElement extends SvgElement
-    implements FilterPrimitiveStandardAttributes {
-  // To suppress missing implicit constructor warnings.
-  factory FEMergeElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGFEMergeElement.SVGFEMergeElement')
-  @DocsEditable()
-  factory FEMergeElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("feMerge");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  FEMergeElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('feMerge') &&
-      (new SvgElement.tag('feMerge') is FEMergeElement);
-
-  // From SVGFilterPrimitiveStandardAttributes
-
-  @DomName('SVGFEMergeElement.height')
-  @DocsEditable()
-  final AnimatedLength height;
-
-  @DomName('SVGFEMergeElement.result')
-  @DocsEditable()
-  final AnimatedString result;
-
-  @DomName('SVGFEMergeElement.width')
-  @DocsEditable()
-  final AnimatedLength width;
-
-  @DomName('SVGFEMergeElement.x')
-  @DocsEditable()
-  final AnimatedLength x;
-
-  @DomName('SVGFEMergeElement.y')
-  @DocsEditable()
-  final AnimatedLength y;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGFEMergeNodeElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEMergeNodeElement")
-class FEMergeNodeElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory FEMergeNodeElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGFEMergeNodeElement.SVGFEMergeNodeElement')
-  @DocsEditable()
-  factory FEMergeNodeElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("feMergeNode");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  FEMergeNodeElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('feMergeNode') &&
-      (new SvgElement.tag('feMergeNode') is FEMergeNodeElement);
-
-  @DomName('SVGFEMergeNodeElement.in1')
-  @DocsEditable()
-  final AnimatedString in1;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGFEMorphologyElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEMorphologyElement")
-class FEMorphologyElement extends SvgElement
-    implements FilterPrimitiveStandardAttributes {
-  // To suppress missing implicit constructor warnings.
-  factory FEMorphologyElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  FEMorphologyElement.created() : super.created();
-
-  @DomName('SVGFEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_DILATE')
-  @DocsEditable()
-  static const int SVG_MORPHOLOGY_OPERATOR_DILATE = 2;
-
-  @DomName('SVGFEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_ERODE')
-  @DocsEditable()
-  static const int SVG_MORPHOLOGY_OPERATOR_ERODE = 1;
-
-  @DomName('SVGFEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_UNKNOWN')
-  @DocsEditable()
-  static const int SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0;
-
-  @DomName('SVGFEMorphologyElement.in1')
-  @DocsEditable()
-  final AnimatedString in1;
-
-  @DomName('SVGFEMorphologyElement.operator')
-  @DocsEditable()
-  final AnimatedEnumeration operator;
-
-  @DomName('SVGFEMorphologyElement.radiusX')
-  @DocsEditable()
-  final AnimatedNumber radiusX;
-
-  @DomName('SVGFEMorphologyElement.radiusY')
-  @DocsEditable()
-  final AnimatedNumber radiusY;
-
-  // From SVGFilterPrimitiveStandardAttributes
-
-  @DomName('SVGFEMorphologyElement.height')
-  @DocsEditable()
-  final AnimatedLength height;
-
-  @DomName('SVGFEMorphologyElement.result')
-  @DocsEditable()
-  final AnimatedString result;
-
-  @DomName('SVGFEMorphologyElement.width')
-  @DocsEditable()
-  final AnimatedLength width;
-
-  @DomName('SVGFEMorphologyElement.x')
-  @DocsEditable()
-  final AnimatedLength x;
-
-  @DomName('SVGFEMorphologyElement.y')
-  @DocsEditable()
-  final AnimatedLength y;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGFEOffsetElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEOffsetElement")
-class FEOffsetElement extends SvgElement
-    implements FilterPrimitiveStandardAttributes {
-  // To suppress missing implicit constructor warnings.
-  factory FEOffsetElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGFEOffsetElement.SVGFEOffsetElement')
-  @DocsEditable()
-  factory FEOffsetElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("feOffset");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  FEOffsetElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('feOffset') &&
-      (new SvgElement.tag('feOffset') is FEOffsetElement);
-
-  @DomName('SVGFEOffsetElement.dx')
-  @DocsEditable()
-  final AnimatedNumber dx;
-
-  @DomName('SVGFEOffsetElement.dy')
-  @DocsEditable()
-  final AnimatedNumber dy;
-
-  @DomName('SVGFEOffsetElement.in1')
-  @DocsEditable()
-  final AnimatedString in1;
-
-  // From SVGFilterPrimitiveStandardAttributes
-
-  @DomName('SVGFEOffsetElement.height')
-  @DocsEditable()
-  final AnimatedLength height;
-
-  @DomName('SVGFEOffsetElement.result')
-  @DocsEditable()
-  final AnimatedString result;
-
-  @DomName('SVGFEOffsetElement.width')
-  @DocsEditable()
-  final AnimatedLength width;
-
-  @DomName('SVGFEOffsetElement.x')
-  @DocsEditable()
-  final AnimatedLength x;
-
-  @DomName('SVGFEOffsetElement.y')
-  @DocsEditable()
-  final AnimatedLength y;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGFEPointLightElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEPointLightElement")
-class FEPointLightElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory FEPointLightElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGFEPointLightElement.SVGFEPointLightElement')
-  @DocsEditable()
-  factory FEPointLightElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("fePointLight");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  FEPointLightElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('fePointLight') &&
-      (new SvgElement.tag('fePointLight') is FEPointLightElement);
-
-  @DomName('SVGFEPointLightElement.x')
-  @DocsEditable()
-  final AnimatedNumber x;
-
-  @DomName('SVGFEPointLightElement.y')
-  @DocsEditable()
-  final AnimatedNumber y;
-
-  @DomName('SVGFEPointLightElement.z')
-  @DocsEditable()
-  final AnimatedNumber z;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGFESpecularLightingElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFESpecularLightingElement")
-class FESpecularLightingElement extends SvgElement
-    implements FilterPrimitiveStandardAttributes {
-  // To suppress missing implicit constructor warnings.
-  factory FESpecularLightingElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGFESpecularLightingElement.SVGFESpecularLightingElement')
-  @DocsEditable()
-  factory FESpecularLightingElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("feSpecularLighting");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  FESpecularLightingElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('feSpecularLighting') &&
-      (new SvgElement.tag('feSpecularLighting') is FESpecularLightingElement);
-
-  @DomName('SVGFESpecularLightingElement.in1')
-  @DocsEditable()
-  final AnimatedString in1;
-
-  @DomName('SVGFESpecularLightingElement.kernelUnitLengthX')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final AnimatedNumber kernelUnitLengthX;
-
-  @DomName('SVGFESpecularLightingElement.kernelUnitLengthY')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final AnimatedNumber kernelUnitLengthY;
-
-  @DomName('SVGFESpecularLightingElement.specularConstant')
-  @DocsEditable()
-  final AnimatedNumber specularConstant;
-
-  @DomName('SVGFESpecularLightingElement.specularExponent')
-  @DocsEditable()
-  final AnimatedNumber specularExponent;
-
-  @DomName('SVGFESpecularLightingElement.surfaceScale')
-  @DocsEditable()
-  final AnimatedNumber surfaceScale;
-
-  // From SVGFilterPrimitiveStandardAttributes
-
-  @DomName('SVGFESpecularLightingElement.height')
-  @DocsEditable()
-  final AnimatedLength height;
-
-  @DomName('SVGFESpecularLightingElement.result')
-  @DocsEditable()
-  final AnimatedString result;
-
-  @DomName('SVGFESpecularLightingElement.width')
-  @DocsEditable()
-  final AnimatedLength width;
-
-  @DomName('SVGFESpecularLightingElement.x')
-  @DocsEditable()
-  final AnimatedLength x;
-
-  @DomName('SVGFESpecularLightingElement.y')
-  @DocsEditable()
-  final AnimatedLength y;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGFESpotLightElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFESpotLightElement")
-class FESpotLightElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory FESpotLightElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGFESpotLightElement.SVGFESpotLightElement')
-  @DocsEditable()
-  factory FESpotLightElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("feSpotLight");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  FESpotLightElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('feSpotLight') &&
-      (new SvgElement.tag('feSpotLight') is FESpotLightElement);
-
-  @DomName('SVGFESpotLightElement.limitingConeAngle')
-  @DocsEditable()
-  final AnimatedNumber limitingConeAngle;
-
-  @DomName('SVGFESpotLightElement.pointsAtX')
-  @DocsEditable()
-  final AnimatedNumber pointsAtX;
-
-  @DomName('SVGFESpotLightElement.pointsAtY')
-  @DocsEditable()
-  final AnimatedNumber pointsAtY;
-
-  @DomName('SVGFESpotLightElement.pointsAtZ')
-  @DocsEditable()
-  final AnimatedNumber pointsAtZ;
-
-  @DomName('SVGFESpotLightElement.specularExponent')
-  @DocsEditable()
-  final AnimatedNumber specularExponent;
-
-  @DomName('SVGFESpotLightElement.x')
-  @DocsEditable()
-  final AnimatedNumber x;
-
-  @DomName('SVGFESpotLightElement.y')
-  @DocsEditable()
-  final AnimatedNumber y;
-
-  @DomName('SVGFESpotLightElement.z')
-  @DocsEditable()
-  final AnimatedNumber z;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGFETileElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFETileElement")
-class FETileElement extends SvgElement
-    implements FilterPrimitiveStandardAttributes {
-  // To suppress missing implicit constructor warnings.
-  factory FETileElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGFETileElement.SVGFETileElement')
-  @DocsEditable()
-  factory FETileElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("feTile");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  FETileElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('feTile') &&
-      (new SvgElement.tag('feTile') is FETileElement);
-
-  @DomName('SVGFETileElement.in1')
-  @DocsEditable()
-  final AnimatedString in1;
-
-  // From SVGFilterPrimitiveStandardAttributes
-
-  @DomName('SVGFETileElement.height')
-  @DocsEditable()
-  final AnimatedLength height;
-
-  @DomName('SVGFETileElement.result')
-  @DocsEditable()
-  final AnimatedString result;
-
-  @DomName('SVGFETileElement.width')
-  @DocsEditable()
-  final AnimatedLength width;
-
-  @DomName('SVGFETileElement.x')
-  @DocsEditable()
-  final AnimatedLength x;
-
-  @DomName('SVGFETileElement.y')
-  @DocsEditable()
-  final AnimatedLength y;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGFETurbulenceElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFETurbulenceElement")
-class FETurbulenceElement extends SvgElement
-    implements FilterPrimitiveStandardAttributes {
-  // To suppress missing implicit constructor warnings.
-  factory FETurbulenceElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGFETurbulenceElement.SVGFETurbulenceElement')
-  @DocsEditable()
-  factory FETurbulenceElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("feTurbulence");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  FETurbulenceElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('feTurbulence') &&
-      (new SvgElement.tag('feTurbulence') is FETurbulenceElement);
-
-  @DomName('SVGFETurbulenceElement.SVG_STITCHTYPE_NOSTITCH')
-  @DocsEditable()
-  static const int SVG_STITCHTYPE_NOSTITCH = 2;
-
-  @DomName('SVGFETurbulenceElement.SVG_STITCHTYPE_STITCH')
-  @DocsEditable()
-  static const int SVG_STITCHTYPE_STITCH = 1;
-
-  @DomName('SVGFETurbulenceElement.SVG_STITCHTYPE_UNKNOWN')
-  @DocsEditable()
-  static const int SVG_STITCHTYPE_UNKNOWN = 0;
-
-  @DomName('SVGFETurbulenceElement.SVG_TURBULENCE_TYPE_FRACTALNOISE')
-  @DocsEditable()
-  static const int SVG_TURBULENCE_TYPE_FRACTALNOISE = 1;
-
-  @DomName('SVGFETurbulenceElement.SVG_TURBULENCE_TYPE_TURBULENCE')
-  @DocsEditable()
-  static const int SVG_TURBULENCE_TYPE_TURBULENCE = 2;
-
-  @DomName('SVGFETurbulenceElement.SVG_TURBULENCE_TYPE_UNKNOWN')
-  @DocsEditable()
-  static const int SVG_TURBULENCE_TYPE_UNKNOWN = 0;
-
-  @DomName('SVGFETurbulenceElement.baseFrequencyX')
-  @DocsEditable()
-  final AnimatedNumber baseFrequencyX;
-
-  @DomName('SVGFETurbulenceElement.baseFrequencyY')
-  @DocsEditable()
-  final AnimatedNumber baseFrequencyY;
-
-  @DomName('SVGFETurbulenceElement.numOctaves')
-  @DocsEditable()
-  final AnimatedInteger numOctaves;
-
-  @DomName('SVGFETurbulenceElement.seed')
-  @DocsEditable()
-  final AnimatedNumber seed;
-
-  @DomName('SVGFETurbulenceElement.stitchTiles')
-  @DocsEditable()
-  final AnimatedEnumeration stitchTiles;
-
-  @DomName('SVGFETurbulenceElement.type')
-  @DocsEditable()
-  final AnimatedEnumeration type;
-
-  // From SVGFilterPrimitiveStandardAttributes
-
-  @DomName('SVGFETurbulenceElement.height')
-  @DocsEditable()
-  final AnimatedLength height;
-
-  @DomName('SVGFETurbulenceElement.result')
-  @DocsEditable()
-  final AnimatedString result;
-
-  @DomName('SVGFETurbulenceElement.width')
-  @DocsEditable()
-  final AnimatedLength width;
-
-  @DomName('SVGFETurbulenceElement.x')
-  @DocsEditable()
-  final AnimatedLength x;
-
-  @DomName('SVGFETurbulenceElement.y')
-  @DocsEditable()
-  final AnimatedLength y;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGFilterElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFilterElement")
-class FilterElement extends SvgElement implements UriReference {
-  // To suppress missing implicit constructor warnings.
-  factory FilterElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGFilterElement.SVGFilterElement')
-  @DocsEditable()
-  factory FilterElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("filter");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  FilterElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('filter') &&
-      (new SvgElement.tag('filter') is FilterElement);
-
-  @DomName('SVGFilterElement.filterUnits')
-  @DocsEditable()
-  final AnimatedEnumeration filterUnits;
-
-  @DomName('SVGFilterElement.height')
-  @DocsEditable()
-  final AnimatedLength height;
-
-  @DomName('SVGFilterElement.primitiveUnits')
-  @DocsEditable()
-  final AnimatedEnumeration primitiveUnits;
-
-  @DomName('SVGFilterElement.width')
-  @DocsEditable()
-  final AnimatedLength width;
-
-  @DomName('SVGFilterElement.x')
-  @DocsEditable()
-  final AnimatedLength x;
-
-  @DomName('SVGFilterElement.y')
-  @DocsEditable()
-  final AnimatedLength y;
-
-  // From SVGURIReference
-
-  @DomName('SVGFilterElement.href')
-  @DocsEditable()
-  final AnimatedString href;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGFilterPrimitiveStandardAttributes')
-@Unstable()
-abstract class FilterPrimitiveStandardAttributes extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory FilterPrimitiveStandardAttributes._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  final AnimatedLength height;
-
-  final AnimatedString result;
-
-  final AnimatedLength width;
-
-  final AnimatedLength x;
-
-  final AnimatedLength y;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGFitToViewBox')
-@Unstable()
-abstract class FitToViewBox extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory FitToViewBox._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  final AnimatedPreserveAspectRatio preserveAspectRatio;
-
-  final AnimatedRect viewBox;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGForeignObjectElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGForeignObjectElement")
-class ForeignObjectElement extends GraphicsElement {
-  // To suppress missing implicit constructor warnings.
-  factory ForeignObjectElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGForeignObjectElement.SVGForeignObjectElement')
-  @DocsEditable()
-  factory ForeignObjectElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("foreignObject");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  ForeignObjectElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('foreignObject') &&
-      (new SvgElement.tag('foreignObject') is ForeignObjectElement);
-
-  @DomName('SVGForeignObjectElement.height')
-  @DocsEditable()
-  final AnimatedLength height;
-
-  @DomName('SVGForeignObjectElement.width')
-  @DocsEditable()
-  final AnimatedLength width;
-
-  @DomName('SVGForeignObjectElement.x')
-  @DocsEditable()
-  final AnimatedLength x;
-
-  @DomName('SVGForeignObjectElement.y')
-  @DocsEditable()
-  final AnimatedLength y;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGGElement')
-@Unstable()
-@Native("SVGGElement")
-class GElement extends GraphicsElement {
-  // To suppress missing implicit constructor warnings.
-  factory GElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGGElement.SVGGElement')
-  @DocsEditable()
-  factory GElement() => _SvgElementFactoryProvider.createSvgElement_tag("g");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  GElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGGeometryElement')
-@Experimental() // untriaged
-@Native("SVGGeometryElement")
-class GeometryElement extends GraphicsElement {
-  // To suppress missing implicit constructor warnings.
-  factory GeometryElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  GeometryElement.created() : super.created();
-
-  @DomName('SVGGeometryElement.isPointInFill')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool isPointInFill(Point point) native;
-
-  @DomName('SVGGeometryElement.isPointInStroke')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool isPointInStroke(Point point) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGGraphicsElement')
-@Experimental() // untriaged
-@Native("SVGGraphicsElement")
-class GraphicsElement extends SvgElement implements Tests {
-  // To suppress missing implicit constructor warnings.
-  factory GraphicsElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  GraphicsElement.created() : super.created();
-
-  @DomName('SVGGraphicsElement.farthestViewportElement')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final SvgElement farthestViewportElement;
-
-  @DomName('SVGGraphicsElement.nearestViewportElement')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final SvgElement nearestViewportElement;
-
-  @DomName('SVGGraphicsElement.transform')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final AnimatedTransformList transform;
-
-  @DomName('SVGGraphicsElement.getBBox')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Rect getBBox() native;
-
-  @JSName('getCTM')
-  @DomName('SVGGraphicsElement.getCTM')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Matrix getCtm() native;
-
-  @JSName('getScreenCTM')
-  @DomName('SVGGraphicsElement.getScreenCTM')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Matrix getScreenCtm() native;
-
-  // From SVGTests
-
-  @DomName('SVGGraphicsElement.requiredExtensions')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final StringList requiredExtensions;
-
-  @DomName('SVGGraphicsElement.requiredFeatures')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final StringList requiredFeatures;
-
-  @DomName('SVGGraphicsElement.systemLanguage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final StringList systemLanguage;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGImageElement')
-@Unstable()
-@Native("SVGImageElement")
-class ImageElement extends GraphicsElement implements UriReference {
-  // To suppress missing implicit constructor warnings.
-  factory ImageElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGImageElement.SVGImageElement')
-  @DocsEditable()
-  factory ImageElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("image");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  ImageElement.created() : super.created();
-
-  @DomName('SVGImageElement.height')
-  @DocsEditable()
-  final AnimatedLength height;
-
-  @DomName('SVGImageElement.preserveAspectRatio')
-  @DocsEditable()
-  final AnimatedPreserveAspectRatio preserveAspectRatio;
-
-  @DomName('SVGImageElement.width')
-  @DocsEditable()
-  final AnimatedLength width;
-
-  @DomName('SVGImageElement.x')
-  @DocsEditable()
-  final AnimatedLength x;
-
-  @DomName('SVGImageElement.y')
-  @DocsEditable()
-  final AnimatedLength y;
-
-  // From SVGURIReference
-
-  @DomName('SVGImageElement.href')
-  @DocsEditable()
-  final AnimatedString href;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGLength')
-@Unstable()
-@Native("SVGLength")
-class Length extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Length._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGLength.SVG_LENGTHTYPE_CM')
-  @DocsEditable()
-  static const int SVG_LENGTHTYPE_CM = 6;
-
-  @DomName('SVGLength.SVG_LENGTHTYPE_EMS')
-  @DocsEditable()
-  static const int SVG_LENGTHTYPE_EMS = 3;
-
-  @DomName('SVGLength.SVG_LENGTHTYPE_EXS')
-  @DocsEditable()
-  static const int SVG_LENGTHTYPE_EXS = 4;
-
-  @DomName('SVGLength.SVG_LENGTHTYPE_IN')
-  @DocsEditable()
-  static const int SVG_LENGTHTYPE_IN = 8;
-
-  @DomName('SVGLength.SVG_LENGTHTYPE_MM')
-  @DocsEditable()
-  static const int SVG_LENGTHTYPE_MM = 7;
-
-  @DomName('SVGLength.SVG_LENGTHTYPE_NUMBER')
-  @DocsEditable()
-  static const int SVG_LENGTHTYPE_NUMBER = 1;
-
-  @DomName('SVGLength.SVG_LENGTHTYPE_PC')
-  @DocsEditable()
-  static const int SVG_LENGTHTYPE_PC = 10;
-
-  @DomName('SVGLength.SVG_LENGTHTYPE_PERCENTAGE')
-  @DocsEditable()
-  static const int SVG_LENGTHTYPE_PERCENTAGE = 2;
-
-  @DomName('SVGLength.SVG_LENGTHTYPE_PT')
-  @DocsEditable()
-  static const int SVG_LENGTHTYPE_PT = 9;
-
-  @DomName('SVGLength.SVG_LENGTHTYPE_PX')
-  @DocsEditable()
-  static const int SVG_LENGTHTYPE_PX = 5;
-
-  @DomName('SVGLength.SVG_LENGTHTYPE_UNKNOWN')
-  @DocsEditable()
-  static const int SVG_LENGTHTYPE_UNKNOWN = 0;
-
-  @DomName('SVGLength.unitType')
-  @DocsEditable()
-  final int unitType;
-
-  @DomName('SVGLength.value')
-  @DocsEditable()
-  num value;
-
-  @DomName('SVGLength.valueAsString')
-  @DocsEditable()
-  String valueAsString;
-
-  @DomName('SVGLength.valueInSpecifiedUnits')
-  @DocsEditable()
-  num valueInSpecifiedUnits;
-
-  @DomName('SVGLength.convertToSpecifiedUnits')
-  @DocsEditable()
-  void convertToSpecifiedUnits(int unitType) native;
-
-  @DomName('SVGLength.newValueSpecifiedUnits')
-  @DocsEditable()
-  void newValueSpecifiedUnits(int unitType, num valueInSpecifiedUnits) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGLengthList')
-@Unstable()
-@Native("SVGLengthList")
-class LengthList extends Interceptor
-    with ListMixin<Length>, ImmutableListMixin<Length>
-    implements List<Length> {
-  // To suppress missing implicit constructor warnings.
-  factory LengthList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGLengthList.length')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int get length => JS("int", "#.length", this);
-
-  @DomName('SVGLengthList.numberOfItems')
-  @DocsEditable()
-  final int numberOfItems;
-
-  Length operator [](int index) {
-    if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
-      throw new RangeError.index(index, this);
-    return this.getItem(index);
-  }
-
-  void operator []=(int index, Length value) {
-    throw new UnsupportedError("Cannot assign element of immutable List.");
-  }
-  // -- start List<Length> mixins.
-  // Length is the element type.
-
-  set length(int value) {
-    throw new UnsupportedError("Cannot resize immutable List.");
-  }
-
-  Length get first {
-    if (this.length > 0) {
-      return JS('Length', '#[0]', this);
-    }
-    throw new StateError("No elements");
-  }
-
-  Length get last {
-    int len = this.length;
-    if (len > 0) {
-      return JS('Length', '#[#]', this, len - 1);
-    }
-    throw new StateError("No elements");
-  }
-
-  Length get single {
-    int len = this.length;
-    if (len == 1) {
-      return JS('Length', '#[0]', this);
-    }
-    if (len == 0) throw new StateError("No elements");
-    throw new StateError("More than one element");
-  }
-
-  Length elementAt(int index) => this[index];
-  // -- end List<Length> mixins.
-
-  @DomName('SVGLengthList.__setter__')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void __setter__(int index, Length newItem) native;
-
-  @DomName('SVGLengthList.appendItem')
-  @DocsEditable()
-  Length appendItem(Length newItem) native;
-
-  @DomName('SVGLengthList.clear')
-  @DocsEditable()
-  void clear() native;
-
-  @DomName('SVGLengthList.getItem')
-  @DocsEditable()
-  Length getItem(int index) native;
-
-  @DomName('SVGLengthList.initialize')
-  @DocsEditable()
-  Length initialize(Length newItem) native;
-
-  @DomName('SVGLengthList.insertItemBefore')
-  @DocsEditable()
-  Length insertItemBefore(Length newItem, int index) native;
-
-  @DomName('SVGLengthList.removeItem')
-  @DocsEditable()
-  Length removeItem(int index) native;
-
-  @DomName('SVGLengthList.replaceItem')
-  @DocsEditable()
-  Length replaceItem(Length newItem, int index) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGLineElement')
-@Unstable()
-@Native("SVGLineElement")
-class LineElement extends GeometryElement {
-  // To suppress missing implicit constructor warnings.
-  factory LineElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGLineElement.SVGLineElement')
-  @DocsEditable()
-  factory LineElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("line");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  LineElement.created() : super.created();
-
-  @DomName('SVGLineElement.x1')
-  @DocsEditable()
-  final AnimatedLength x1;
-
-  @DomName('SVGLineElement.x2')
-  @DocsEditable()
-  final AnimatedLength x2;
-
-  @DomName('SVGLineElement.y1')
-  @DocsEditable()
-  final AnimatedLength y1;
-
-  @DomName('SVGLineElement.y2')
-  @DocsEditable()
-  final AnimatedLength y2;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGLinearGradientElement')
-@Unstable()
-@Native("SVGLinearGradientElement")
-class LinearGradientElement extends _GradientElement {
-  // To suppress missing implicit constructor warnings.
-  factory LinearGradientElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGLinearGradientElement.SVGLinearGradientElement')
-  @DocsEditable()
-  factory LinearGradientElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("linearGradient");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  LinearGradientElement.created() : super.created();
-
-  @DomName('SVGLinearGradientElement.x1')
-  @DocsEditable()
-  final AnimatedLength x1;
-
-  @DomName('SVGLinearGradientElement.x2')
-  @DocsEditable()
-  final AnimatedLength x2;
-
-  @DomName('SVGLinearGradientElement.y1')
-  @DocsEditable()
-  final AnimatedLength y1;
-
-  @DomName('SVGLinearGradientElement.y2')
-  @DocsEditable()
-  final AnimatedLength y2;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGMarkerElement')
-@Unstable()
-@Native("SVGMarkerElement")
-class MarkerElement extends SvgElement implements FitToViewBox {
-  // To suppress missing implicit constructor warnings.
-  factory MarkerElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGMarkerElement.SVGMarkerElement')
-  @DocsEditable()
-  factory MarkerElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("marker");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  MarkerElement.created() : super.created();
-
-  @DomName('SVGMarkerElement.SVG_MARKERUNITS_STROKEWIDTH')
-  @DocsEditable()
-  static const int SVG_MARKERUNITS_STROKEWIDTH = 2;
-
-  @DomName('SVGMarkerElement.SVG_MARKERUNITS_UNKNOWN')
-  @DocsEditable()
-  static const int SVG_MARKERUNITS_UNKNOWN = 0;
-
-  @DomName('SVGMarkerElement.SVG_MARKERUNITS_USERSPACEONUSE')
-  @DocsEditable()
-  static const int SVG_MARKERUNITS_USERSPACEONUSE = 1;
-
-  @DomName('SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE')
-  @DocsEditable()
-  static const int SVG_MARKER_ORIENT_ANGLE = 2;
-
-  @DomName('SVGMarkerElement.SVG_MARKER_ORIENT_AUTO')
-  @DocsEditable()
-  static const int SVG_MARKER_ORIENT_AUTO = 1;
-
-  @DomName('SVGMarkerElement.SVG_MARKER_ORIENT_UNKNOWN')
-  @DocsEditable()
-  static const int SVG_MARKER_ORIENT_UNKNOWN = 0;
-
-  @DomName('SVGMarkerElement.markerHeight')
-  @DocsEditable()
-  final AnimatedLength markerHeight;
-
-  @DomName('SVGMarkerElement.markerUnits')
-  @DocsEditable()
-  final AnimatedEnumeration markerUnits;
-
-  @DomName('SVGMarkerElement.markerWidth')
-  @DocsEditable()
-  final AnimatedLength markerWidth;
-
-  @DomName('SVGMarkerElement.orientAngle')
-  @DocsEditable()
-  final AnimatedAngle orientAngle;
-
-  @DomName('SVGMarkerElement.orientType')
-  @DocsEditable()
-  final AnimatedEnumeration orientType;
-
-  @DomName('SVGMarkerElement.refX')
-  @DocsEditable()
-  final AnimatedLength refX;
-
-  @DomName('SVGMarkerElement.refY')
-  @DocsEditable()
-  final AnimatedLength refY;
-
-  @DomName('SVGMarkerElement.setOrientToAngle')
-  @DocsEditable()
-  void setOrientToAngle(Angle angle) native;
-
-  @DomName('SVGMarkerElement.setOrientToAuto')
-  @DocsEditable()
-  void setOrientToAuto() native;
-
-  // From SVGFitToViewBox
-
-  @DomName('SVGMarkerElement.preserveAspectRatio')
-  @DocsEditable()
-  final AnimatedPreserveAspectRatio preserveAspectRatio;
-
-  @DomName('SVGMarkerElement.viewBox')
-  @DocsEditable()
-  final AnimatedRect viewBox;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGMaskElement')
-@Unstable()
-@Native("SVGMaskElement")
-class MaskElement extends SvgElement implements Tests {
-  // To suppress missing implicit constructor warnings.
-  factory MaskElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGMaskElement.SVGMaskElement')
-  @DocsEditable()
-  factory MaskElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("mask");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  MaskElement.created() : super.created();
-
-  @DomName('SVGMaskElement.height')
-  @DocsEditable()
-  final AnimatedLength height;
-
-  @DomName('SVGMaskElement.maskContentUnits')
-  @DocsEditable()
-  final AnimatedEnumeration maskContentUnits;
-
-  @DomName('SVGMaskElement.maskUnits')
-  @DocsEditable()
-  final AnimatedEnumeration maskUnits;
-
-  @DomName('SVGMaskElement.width')
-  @DocsEditable()
-  final AnimatedLength width;
-
-  @DomName('SVGMaskElement.x')
-  @DocsEditable()
-  final AnimatedLength x;
-
-  @DomName('SVGMaskElement.y')
-  @DocsEditable()
-  final AnimatedLength y;
-
-  // From SVGTests
-
-  @DomName('SVGMaskElement.requiredExtensions')
-  @DocsEditable()
-  final StringList requiredExtensions;
-
-  @DomName('SVGMaskElement.requiredFeatures')
-  @DocsEditable()
-  final StringList requiredFeatures;
-
-  @DomName('SVGMaskElement.systemLanguage')
-  @DocsEditable()
-  final StringList systemLanguage;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGMatrix')
-@Unstable()
-@Native("SVGMatrix")
-class Matrix extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Matrix._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGMatrix.a')
-  @DocsEditable()
-  num a;
-
-  @DomName('SVGMatrix.b')
-  @DocsEditable()
-  num b;
-
-  @DomName('SVGMatrix.c')
-  @DocsEditable()
-  num c;
-
-  @DomName('SVGMatrix.d')
-  @DocsEditable()
-  num d;
-
-  @DomName('SVGMatrix.e')
-  @DocsEditable()
-  num e;
-
-  @DomName('SVGMatrix.f')
-  @DocsEditable()
-  num f;
-
-  @DomName('SVGMatrix.flipX')
-  @DocsEditable()
-  Matrix flipX() native;
-
-  @DomName('SVGMatrix.flipY')
-  @DocsEditable()
-  Matrix flipY() native;
-
-  @DomName('SVGMatrix.inverse')
-  @DocsEditable()
-  Matrix inverse() native;
-
-  @DomName('SVGMatrix.multiply')
-  @DocsEditable()
-  Matrix multiply(Matrix secondMatrix) native;
-
-  @DomName('SVGMatrix.rotate')
-  @DocsEditable()
-  Matrix rotate(num angle) native;
-
-  @DomName('SVGMatrix.rotateFromVector')
-  @DocsEditable()
-  Matrix rotateFromVector(num x, num y) native;
-
-  @DomName('SVGMatrix.scale')
-  @DocsEditable()
-  Matrix scale(num scaleFactor) native;
-
-  @DomName('SVGMatrix.scaleNonUniform')
-  @DocsEditable()
-  Matrix scaleNonUniform(num scaleFactorX, num scaleFactorY) native;
-
-  @DomName('SVGMatrix.skewX')
-  @DocsEditable()
-  Matrix skewX(num angle) native;
-
-  @DomName('SVGMatrix.skewY')
-  @DocsEditable()
-  Matrix skewY(num angle) native;
-
-  @DomName('SVGMatrix.translate')
-  @DocsEditable()
-  Matrix translate(num x, num y) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGMetadataElement')
-@Unstable()
-@Native("SVGMetadataElement")
-class MetadataElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory MetadataElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  MetadataElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGNumber')
-@Unstable()
-@Native("SVGNumber")
-class Number extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Number._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGNumber.value')
-  @DocsEditable()
-  num value;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGNumberList')
-@Unstable()
-@Native("SVGNumberList")
-class NumberList extends Interceptor
-    with ListMixin<Number>, ImmutableListMixin<Number>
-    implements List<Number> {
-  // To suppress missing implicit constructor warnings.
-  factory NumberList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGNumberList.length')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int get length => JS("int", "#.length", this);
-
-  @DomName('SVGNumberList.numberOfItems')
-  @DocsEditable()
-  final int numberOfItems;
-
-  Number operator [](int index) {
-    if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
-      throw new RangeError.index(index, this);
-    return this.getItem(index);
-  }
-
-  void operator []=(int index, Number value) {
-    throw new UnsupportedError("Cannot assign element of immutable List.");
-  }
-  // -- start List<Number> mixins.
-  // Number is the element type.
-
-  set length(int value) {
-    throw new UnsupportedError("Cannot resize immutable List.");
-  }
-
-  Number get first {
-    if (this.length > 0) {
-      return JS('Number', '#[0]', this);
-    }
-    throw new StateError("No elements");
-  }
-
-  Number get last {
-    int len = this.length;
-    if (len > 0) {
-      return JS('Number', '#[#]', this, len - 1);
-    }
-    throw new StateError("No elements");
-  }
-
-  Number get single {
-    int len = this.length;
-    if (len == 1) {
-      return JS('Number', '#[0]', this);
-    }
-    if (len == 0) throw new StateError("No elements");
-    throw new StateError("More than one element");
-  }
-
-  Number elementAt(int index) => this[index];
-  // -- end List<Number> mixins.
-
-  @DomName('SVGNumberList.__setter__')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void __setter__(int index, Number newItem) native;
-
-  @DomName('SVGNumberList.appendItem')
-  @DocsEditable()
-  Number appendItem(Number newItem) native;
-
-  @DomName('SVGNumberList.clear')
-  @DocsEditable()
-  void clear() native;
-
-  @DomName('SVGNumberList.getItem')
-  @DocsEditable()
-  Number getItem(int index) native;
-
-  @DomName('SVGNumberList.initialize')
-  @DocsEditable()
-  Number initialize(Number newItem) native;
-
-  @DomName('SVGNumberList.insertItemBefore')
-  @DocsEditable()
-  Number insertItemBefore(Number newItem, int index) native;
-
-  @DomName('SVGNumberList.removeItem')
-  @DocsEditable()
-  Number removeItem(int index) native;
-
-  @DomName('SVGNumberList.replaceItem')
-  @DocsEditable()
-  Number replaceItem(Number newItem, int index) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGPathElement')
-@Unstable()
-@Native("SVGPathElement")
-class PathElement extends GeometryElement {
-  // To suppress missing implicit constructor warnings.
-  factory PathElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGPathElement.SVGPathElement')
-  @DocsEditable()
-  factory PathElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("path");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  PathElement.created() : super.created();
-
-  @DomName('SVGPathElement.pathLength')
-  @DocsEditable()
-  final AnimatedNumber pathLength;
-
-  @DomName('SVGPathElement.getPathSegAtLength')
-  @DocsEditable()
-  int getPathSegAtLength(num distance) native;
-
-  @DomName('SVGPathElement.getPointAtLength')
-  @DocsEditable()
-  Point getPointAtLength(num distance) native;
-
-  @DomName('SVGPathElement.getTotalLength')
-  @DocsEditable()
-  double getTotalLength() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGPatternElement')
-@Unstable()
-@Native("SVGPatternElement")
-class PatternElement extends SvgElement
-    implements FitToViewBox, UriReference, Tests {
-  // To suppress missing implicit constructor warnings.
-  factory PatternElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGPatternElement.SVGPatternElement')
-  @DocsEditable()
-  factory PatternElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("pattern");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  PatternElement.created() : super.created();
-
-  @DomName('SVGPatternElement.height')
-  @DocsEditable()
-  final AnimatedLength height;
-
-  @DomName('SVGPatternElement.patternContentUnits')
-  @DocsEditable()
-  final AnimatedEnumeration patternContentUnits;
-
-  @DomName('SVGPatternElement.patternTransform')
-  @DocsEditable()
-  final AnimatedTransformList patternTransform;
-
-  @DomName('SVGPatternElement.patternUnits')
-  @DocsEditable()
-  final AnimatedEnumeration patternUnits;
-
-  @DomName('SVGPatternElement.width')
-  @DocsEditable()
-  final AnimatedLength width;
-
-  @DomName('SVGPatternElement.x')
-  @DocsEditable()
-  final AnimatedLength x;
-
-  @DomName('SVGPatternElement.y')
-  @DocsEditable()
-  final AnimatedLength y;
-
-  // From SVGFitToViewBox
-
-  @DomName('SVGPatternElement.preserveAspectRatio')
-  @DocsEditable()
-  final AnimatedPreserveAspectRatio preserveAspectRatio;
-
-  @DomName('SVGPatternElement.viewBox')
-  @DocsEditable()
-  final AnimatedRect viewBox;
-
-  // From SVGTests
-
-  @DomName('SVGPatternElement.requiredExtensions')
-  @DocsEditable()
-  final StringList requiredExtensions;
-
-  @DomName('SVGPatternElement.requiredFeatures')
-  @DocsEditable()
-  final StringList requiredFeatures;
-
-  @DomName('SVGPatternElement.systemLanguage')
-  @DocsEditable()
-  final StringList systemLanguage;
-
-  // From SVGURIReference
-
-  @DomName('SVGPatternElement.href')
-  @DocsEditable()
-  final AnimatedString href;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGPoint')
-@Unstable()
-@Native("SVGPoint")
-class Point extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Point._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGPoint.x')
-  @DocsEditable()
-  num x;
-
-  @DomName('SVGPoint.y')
-  @DocsEditable()
-  num y;
-
-  @DomName('SVGPoint.matrixTransform')
-  @DocsEditable()
-  Point matrixTransform(Matrix matrix) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGPointList')
-@Unstable()
-@Native("SVGPointList")
-class PointList extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory PointList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGPointList.length')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int length;
-
-  @DomName('SVGPointList.numberOfItems')
-  @DocsEditable()
-  final int numberOfItems;
-
-  @DomName('SVGPointList.__setter__')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void __setter__(int index, Point newItem) native;
-
-  @DomName('SVGPointList.appendItem')
-  @DocsEditable()
-  Point appendItem(Point newItem) native;
-
-  @DomName('SVGPointList.clear')
-  @DocsEditable()
-  void clear() native;
-
-  @DomName('SVGPointList.getItem')
-  @DocsEditable()
-  Point getItem(int index) native;
-
-  @DomName('SVGPointList.initialize')
-  @DocsEditable()
-  Point initialize(Point newItem) native;
-
-  @DomName('SVGPointList.insertItemBefore')
-  @DocsEditable()
-  Point insertItemBefore(Point newItem, int index) native;
-
-  @DomName('SVGPointList.removeItem')
-  @DocsEditable()
-  Point removeItem(int index) native;
-
-  @DomName('SVGPointList.replaceItem')
-  @DocsEditable()
-  Point replaceItem(Point newItem, int index) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGPolygonElement')
-@Unstable()
-@Native("SVGPolygonElement")
-class PolygonElement extends GeometryElement {
-  // To suppress missing implicit constructor warnings.
-  factory PolygonElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGPolygonElement.SVGPolygonElement')
-  @DocsEditable()
-  factory PolygonElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("polygon");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  PolygonElement.created() : super.created();
-
-  @DomName('SVGPolygonElement.animatedPoints')
-  @DocsEditable()
-  final PointList animatedPoints;
-
-  @DomName('SVGPolygonElement.points')
-  @DocsEditable()
-  final PointList points;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGPolylineElement')
-@Unstable()
-@Native("SVGPolylineElement")
-class PolylineElement extends GeometryElement {
-  // To suppress missing implicit constructor warnings.
-  factory PolylineElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGPolylineElement.SVGPolylineElement')
-  @DocsEditable()
-  factory PolylineElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("polyline");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  PolylineElement.created() : super.created();
-
-  @DomName('SVGPolylineElement.animatedPoints')
-  @DocsEditable()
-  final PointList animatedPoints;
-
-  @DomName('SVGPolylineElement.points')
-  @DocsEditable()
-  final PointList points;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGPreserveAspectRatio')
-@Unstable()
-@Native("SVGPreserveAspectRatio")
-class PreserveAspectRatio extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory PreserveAspectRatio._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGPreserveAspectRatio.SVG_MEETORSLICE_MEET')
-  @DocsEditable()
-  static const int SVG_MEETORSLICE_MEET = 1;
-
-  @DomName('SVGPreserveAspectRatio.SVG_MEETORSLICE_SLICE')
-  @DocsEditable()
-  static const int SVG_MEETORSLICE_SLICE = 2;
-
-  @DomName('SVGPreserveAspectRatio.SVG_MEETORSLICE_UNKNOWN')
-  @DocsEditable()
-  static const int SVG_MEETORSLICE_UNKNOWN = 0;
-
-  @DomName('SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_NONE')
-  @DocsEditable()
-  static const int SVG_PRESERVEASPECTRATIO_NONE = 1;
-
-  @DomName('SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_UNKNOWN')
-  @DocsEditable()
-  static const int SVG_PRESERVEASPECTRATIO_UNKNOWN = 0;
-
-  @DomName('SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMAX')
-  @DocsEditable()
-  static const int SVG_PRESERVEASPECTRATIO_XMAXYMAX = 10;
-
-  @DomName('SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMID')
-  @DocsEditable()
-  static const int SVG_PRESERVEASPECTRATIO_XMAXYMID = 7;
-
-  @DomName('SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMIN')
-  @DocsEditable()
-  static const int SVG_PRESERVEASPECTRATIO_XMAXYMIN = 4;
-
-  @DomName('SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMAX')
-  @DocsEditable()
-  static const int SVG_PRESERVEASPECTRATIO_XMIDYMAX = 9;
-
-  @DomName('SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMID')
-  @DocsEditable()
-  static const int SVG_PRESERVEASPECTRATIO_XMIDYMID = 6;
-
-  @DomName('SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMIN')
-  @DocsEditable()
-  static const int SVG_PRESERVEASPECTRATIO_XMIDYMIN = 3;
-
-  @DomName('SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMAX')
-  @DocsEditable()
-  static const int SVG_PRESERVEASPECTRATIO_XMINYMAX = 8;
-
-  @DomName('SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMID')
-  @DocsEditable()
-  static const int SVG_PRESERVEASPECTRATIO_XMINYMID = 5;
-
-  @DomName('SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMIN')
-  @DocsEditable()
-  static const int SVG_PRESERVEASPECTRATIO_XMINYMIN = 2;
-
-  @DomName('SVGPreserveAspectRatio.align')
-  @DocsEditable()
-  int align;
-
-  @DomName('SVGPreserveAspectRatio.meetOrSlice')
-  @DocsEditable()
-  int meetOrSlice;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGRadialGradientElement')
-@Unstable()
-@Native("SVGRadialGradientElement")
-class RadialGradientElement extends _GradientElement {
-  // To suppress missing implicit constructor warnings.
-  factory RadialGradientElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGRadialGradientElement.SVGRadialGradientElement')
-  @DocsEditable()
-  factory RadialGradientElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("radialGradient");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  RadialGradientElement.created() : super.created();
-
-  @DomName('SVGRadialGradientElement.cx')
-  @DocsEditable()
-  final AnimatedLength cx;
-
-  @DomName('SVGRadialGradientElement.cy')
-  @DocsEditable()
-  final AnimatedLength cy;
-
-  @DomName('SVGRadialGradientElement.fr')
-  @DocsEditable()
-  final AnimatedLength fr;
-
-  @DomName('SVGRadialGradientElement.fx')
-  @DocsEditable()
-  final AnimatedLength fx;
-
-  @DomName('SVGRadialGradientElement.fy')
-  @DocsEditable()
-  final AnimatedLength fy;
-
-  @DomName('SVGRadialGradientElement.r')
-  @DocsEditable()
-  final AnimatedLength r;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGRect')
-@Unstable()
-@Native("SVGRect")
-class Rect extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Rect._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGRect.height')
-  @DocsEditable()
-  num height;
-
-  @DomName('SVGRect.width')
-  @DocsEditable()
-  num width;
-
-  @DomName('SVGRect.x')
-  @DocsEditable()
-  num x;
-
-  @DomName('SVGRect.y')
-  @DocsEditable()
-  num y;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGRectElement')
-@Unstable()
-@Native("SVGRectElement")
-class RectElement extends GeometryElement {
-  // To suppress missing implicit constructor warnings.
-  factory RectElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGRectElement.SVGRectElement')
-  @DocsEditable()
-  factory RectElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("rect");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  RectElement.created() : super.created();
-
-  @DomName('SVGRectElement.height')
-  @DocsEditable()
-  final AnimatedLength height;
-
-  @DomName('SVGRectElement.rx')
-  @DocsEditable()
-  final AnimatedLength rx;
-
-  @DomName('SVGRectElement.ry')
-  @DocsEditable()
-  final AnimatedLength ry;
-
-  @DomName('SVGRectElement.width')
-  @DocsEditable()
-  final AnimatedLength width;
-
-  @DomName('SVGRectElement.x')
-  @DocsEditable()
-  final AnimatedLength x;
-
-  @DomName('SVGRectElement.y')
-  @DocsEditable()
-  final AnimatedLength y;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGScriptElement')
-@Unstable()
-@Native("SVGScriptElement")
-class ScriptElement extends SvgElement implements UriReference {
-  // To suppress missing implicit constructor warnings.
-  factory ScriptElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGScriptElement.SVGScriptElement')
-  @DocsEditable()
-  factory ScriptElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("script");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  ScriptElement.created() : super.created();
-
-  @DomName('SVGScriptElement.type')
-  @DocsEditable()
-  String type;
-
-  // From SVGURIReference
-
-  @DomName('SVGScriptElement.href')
-  @DocsEditable()
-  final AnimatedString href;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGSetElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGSetElement")
-class SetElement extends AnimationElement {
-  // To suppress missing implicit constructor warnings.
-  factory SetElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGSetElement.SVGSetElement')
-  @DocsEditable()
-  factory SetElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("set");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  SetElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('set') &&
-      (new SvgElement.tag('set') is SetElement);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGStopElement')
-@Unstable()
-@Native("SVGStopElement")
-class StopElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory StopElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGStopElement.SVGStopElement')
-  @DocsEditable()
-  factory StopElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("stop");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  StopElement.created() : super.created();
-
-  @JSName('offset')
-  @DomName('SVGStopElement.offset')
-  @DocsEditable()
-  final AnimatedNumber gradientOffset;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGStringList')
-@Unstable()
-@Native("SVGStringList")
-class StringList extends Interceptor
-    with ListMixin<String>, ImmutableListMixin<String>
-    implements List<String> {
-  // To suppress missing implicit constructor warnings.
-  factory StringList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGStringList.length')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int get length => JS("int", "#.length", this);
-
-  @DomName('SVGStringList.numberOfItems')
-  @DocsEditable()
-  final int numberOfItems;
-
-  String operator [](int index) {
-    if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
-      throw new RangeError.index(index, this);
-    return this.getItem(index);
-  }
-
-  void operator []=(int index, String value) {
-    throw new UnsupportedError("Cannot assign element of immutable List.");
-  }
-  // -- start List<String> mixins.
-  // String is the element type.
-
-  set length(int value) {
-    throw new UnsupportedError("Cannot resize immutable List.");
-  }
-
-  String get first {
-    if (this.length > 0) {
-      return JS('String', '#[0]', this);
-    }
-    throw new StateError("No elements");
-  }
-
-  String get last {
-    int len = this.length;
-    if (len > 0) {
-      return JS('String', '#[#]', this, len - 1);
-    }
-    throw new StateError("No elements");
-  }
-
-  String get single {
-    int len = this.length;
-    if (len == 1) {
-      return JS('String', '#[0]', this);
-    }
-    if (len == 0) throw new StateError("No elements");
-    throw new StateError("More than one element");
-  }
-
-  String elementAt(int index) => this[index];
-  // -- end List<String> mixins.
-
-  @DomName('SVGStringList.__setter__')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void __setter__(int index, String newItem) native;
-
-  @DomName('SVGStringList.appendItem')
-  @DocsEditable()
-  String appendItem(String newItem) native;
-
-  @DomName('SVGStringList.clear')
-  @DocsEditable()
-  void clear() native;
-
-  @DomName('SVGStringList.getItem')
-  @DocsEditable()
-  String getItem(int index) native;
-
-  @DomName('SVGStringList.initialize')
-  @DocsEditable()
-  String initialize(String newItem) native;
-
-  @DomName('SVGStringList.insertItemBefore')
-  @DocsEditable()
-  String insertItemBefore(String item, int index) native;
-
-  @DomName('SVGStringList.removeItem')
-  @DocsEditable()
-  String removeItem(int index) native;
-
-  @DomName('SVGStringList.replaceItem')
-  @DocsEditable()
-  String replaceItem(String newItem, int index) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGStyleElement')
-// http://www.w3.org/TR/SVG/types.html#InterfaceSVGStylable
-@Experimental() // nonstandard
-@Native("SVGStyleElement")
-class StyleElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory StyleElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGStyleElement.SVGStyleElement')
-  @DocsEditable()
-  factory StyleElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("style");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  StyleElement.created() : super.created();
-
-  @DomName('SVGStyleElement.disabled')
-  @DocsEditable()
-  bool disabled;
-
-  @DomName('SVGStyleElement.media')
-  @DocsEditable()
-  String media;
-
-  @DomName('SVGStyleElement.sheet')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final StyleSheet sheet;
-
-  // Use implementation from Element.
-  // final String title;
-
-  @DomName('SVGStyleElement.type')
-  @DocsEditable()
-  String type;
-}
-// Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-class AttributeClassSet extends CssClassSetImpl {
-  final Element _element;
-
-  AttributeClassSet(this._element);
-
-  Set<String> readClasses() {
-    var classname = _element.attributes['class'];
-    if (classname is AnimatedString) {
-      classname = (classname as AnimatedString).baseVal;
-    }
-
-    Set<String> s = new LinkedHashSet<String>();
-    if (classname == null) {
-      return s;
-    }
-    for (String name in classname.split(' ')) {
-      String trimmed = name.trim();
-      if (!trimmed.isEmpty) {
-        s.add(trimmed);
-      }
-    }
-    return s;
-  }
-
-  void writeClasses(Set s) {
-    _element.setAttribute('class', s.join(' '));
-  }
-}
-
-@DomName('SVGElement')
-@Unstable()
-@Native("SVGElement")
-class SvgElement extends Element implements GlobalEventHandlers {
-  static final _START_TAG_REGEXP = new RegExp('<(\\w+)');
-
-  factory SvgElement.tag(String tag) =>
-      document.createElementNS("http://www.w3.org/2000/svg", tag);
-  factory SvgElement.svg(String svg,
-      {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
-    if (validator == null && treeSanitizer == null) {
-      validator = new NodeValidatorBuilder.common()..allowSvg();
-    }
-
-    final match = _START_TAG_REGEXP.firstMatch(svg);
-    var parentElement;
-    if (match != null && match.group(1).toLowerCase() == 'svg') {
-      parentElement = document.body;
-    } else {
-      parentElement = new SvgSvgElement();
-    }
-    var fragment = parentElement.createFragment(svg,
-        validator: validator, treeSanitizer: treeSanitizer);
-    return fragment.nodes.where((e) => e is SvgElement).single;
-  }
-
-  CssClassSet get classes => new AttributeClassSet(this);
-
-  List<Element> get children => new FilteredElementList(this);
-
-  set children(List<Element> value) {
-    final children = this.children;
-    children.clear();
-    children.addAll(value);
-  }
-
-  String get outerHtml {
-    final container = new DivElement();
-    final SvgElement cloned = this.clone(true);
-    container.children.add(cloned);
-    return container.innerHtml;
-  }
-
-  String get innerHtml {
-    final container = new DivElement();
-    final SvgElement cloned = this.clone(true);
-    container.children.addAll(cloned.children);
-    return container.innerHtml;
-  }
-
-  set innerHtml(String value) {
-    this.setInnerHtml(value);
-  }
-
-  DocumentFragment createFragment(String svg,
-      {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
-    if (treeSanitizer == null) {
-      if (validator == null) {
-        validator = new NodeValidatorBuilder.common()..allowSvg();
-      }
-      treeSanitizer = new NodeTreeSanitizer(validator);
-    }
-
-    // We create a fragment which will parse in the HTML parser
-    var html = '<svg version="1.1">$svg</svg>';
-    var fragment =
-        document.body.createFragment(html, treeSanitizer: treeSanitizer);
-
-    var svgFragment = new DocumentFragment();
-    // The root is the <svg/> element, need to pull out the contents.
-    var root = fragment.nodes.single;
-    while (root.firstChild != null) {
-      svgFragment.append(root.firstChild);
-    }
-    return svgFragment;
-  }
-
-  // Unsupported methods inherited from Element.
-
-  @DomName('Element.insertAdjacentText')
-  void insertAdjacentText(String where, String text) {
-    throw new UnsupportedError("Cannot invoke insertAdjacentText on SVG.");
-  }
-
-  @DomName('Element.insertAdjacentHTML')
-  void insertAdjacentHtml(String where, String text,
-      {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
-    throw new UnsupportedError("Cannot invoke insertAdjacentHtml on SVG.");
-  }
-
-  @DomName('Element.insertAdjacentElement')
-  Element insertAdjacentElement(String where, Element element) {
-    throw new UnsupportedError("Cannot invoke insertAdjacentElement on SVG.");
-  }
-
-  HtmlCollection get _children {
-    throw new UnsupportedError("Cannot get _children on SVG.");
-  }
-
-  bool get isContentEditable => false;
-  void click() {
-    throw new UnsupportedError("Cannot invoke click SVG.");
-  }
-
-  /**
-   * Checks to see if the SVG element type is supported by the current platform.
-   *
-   * The tag should be a valid SVG element tag name.
-   */
-  static bool isTagSupported(String tag) {
-    var e = new SvgElement.tag(tag);
-    return e is SvgElement && !(e is UnknownElement);
-  }
-
-  // To suppress missing implicit constructor warnings.
-  factory SvgElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGElement.abortEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> abortEvent =
-      const EventStreamProvider<Event>('abort');
-
-  @DomName('SVGElement.blurEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> blurEvent =
-      const EventStreamProvider<Event>('blur');
-
-  @DomName('SVGElement.canplayEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> canPlayEvent =
-      const EventStreamProvider<Event>('canplay');
-
-  @DomName('SVGElement.canplaythroughEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> canPlayThroughEvent =
-      const EventStreamProvider<Event>('canplaythrough');
-
-  @DomName('SVGElement.changeEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> changeEvent =
-      const EventStreamProvider<Event>('change');
-
-  @DomName('SVGElement.clickEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> clickEvent =
-      const EventStreamProvider<MouseEvent>('click');
-
-  @DomName('SVGElement.contextmenuEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> contextMenuEvent =
-      const EventStreamProvider<MouseEvent>('contextmenu');
-
-  @DomName('SVGElement.dblclickEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> doubleClickEvent =
-      const EventStreamProvider<Event>('dblclick');
-
-  @DomName('SVGElement.dragEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> dragEvent =
-      const EventStreamProvider<MouseEvent>('drag');
-
-  @DomName('SVGElement.dragendEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> dragEndEvent =
-      const EventStreamProvider<MouseEvent>('dragend');
-
-  @DomName('SVGElement.dragenterEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> dragEnterEvent =
-      const EventStreamProvider<MouseEvent>('dragenter');
-
-  @DomName('SVGElement.dragleaveEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> dragLeaveEvent =
-      const EventStreamProvider<MouseEvent>('dragleave');
-
-  @DomName('SVGElement.dragoverEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> dragOverEvent =
-      const EventStreamProvider<MouseEvent>('dragover');
-
-  @DomName('SVGElement.dragstartEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> dragStartEvent =
-      const EventStreamProvider<MouseEvent>('dragstart');
-
-  @DomName('SVGElement.dropEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> dropEvent =
-      const EventStreamProvider<MouseEvent>('drop');
-
-  @DomName('SVGElement.durationchangeEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> durationChangeEvent =
-      const EventStreamProvider<Event>('durationchange');
-
-  @DomName('SVGElement.emptiedEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> emptiedEvent =
-      const EventStreamProvider<Event>('emptied');
-
-  @DomName('SVGElement.endedEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> endedEvent =
-      const EventStreamProvider<Event>('ended');
-
-  @DomName('SVGElement.errorEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> errorEvent =
-      const EventStreamProvider<Event>('error');
-
-  @DomName('SVGElement.focusEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> focusEvent =
-      const EventStreamProvider<Event>('focus');
-
-  @DomName('SVGElement.inputEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> inputEvent =
-      const EventStreamProvider<Event>('input');
-
-  @DomName('SVGElement.invalidEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> invalidEvent =
-      const EventStreamProvider<Event>('invalid');
-
-  @DomName('SVGElement.keydownEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<KeyboardEvent> keyDownEvent =
-      const EventStreamProvider<KeyboardEvent>('keydown');
-
-  @DomName('SVGElement.keypressEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<KeyboardEvent> keyPressEvent =
-      const EventStreamProvider<KeyboardEvent>('keypress');
-
-  @DomName('SVGElement.keyupEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<KeyboardEvent> keyUpEvent =
-      const EventStreamProvider<KeyboardEvent>('keyup');
-
-  @DomName('SVGElement.loadEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> loadEvent =
-      const EventStreamProvider<Event>('load');
-
-  @DomName('SVGElement.loadeddataEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> loadedDataEvent =
-      const EventStreamProvider<Event>('loadeddata');
-
-  @DomName('SVGElement.loadedmetadataEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> loadedMetadataEvent =
-      const EventStreamProvider<Event>('loadedmetadata');
-
-  @DomName('SVGElement.mousedownEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> mouseDownEvent =
-      const EventStreamProvider<MouseEvent>('mousedown');
-
-  @DomName('SVGElement.mouseenterEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> mouseEnterEvent =
-      const EventStreamProvider<MouseEvent>('mouseenter');
-
-  @DomName('SVGElement.mouseleaveEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> mouseLeaveEvent =
-      const EventStreamProvider<MouseEvent>('mouseleave');
-
-  @DomName('SVGElement.mousemoveEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> mouseMoveEvent =
-      const EventStreamProvider<MouseEvent>('mousemove');
-
-  @DomName('SVGElement.mouseoutEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> mouseOutEvent =
-      const EventStreamProvider<MouseEvent>('mouseout');
-
-  @DomName('SVGElement.mouseoverEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> mouseOverEvent =
-      const EventStreamProvider<MouseEvent>('mouseover');
-
-  @DomName('SVGElement.mouseupEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<MouseEvent> mouseUpEvent =
-      const EventStreamProvider<MouseEvent>('mouseup');
-
-  @DomName('SVGElement.mousewheelEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<WheelEvent> mouseWheelEvent =
-      const EventStreamProvider<WheelEvent>('mousewheel');
-
-  @DomName('SVGElement.pauseEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> pauseEvent =
-      const EventStreamProvider<Event>('pause');
-
-  @DomName('SVGElement.playEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> playEvent =
-      const EventStreamProvider<Event>('play');
-
-  @DomName('SVGElement.playingEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> playingEvent =
-      const EventStreamProvider<Event>('playing');
-
-  @DomName('SVGElement.ratechangeEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> rateChangeEvent =
-      const EventStreamProvider<Event>('ratechange');
-
-  @DomName('SVGElement.resetEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> resetEvent =
-      const EventStreamProvider<Event>('reset');
-
-  @DomName('SVGElement.resizeEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> resizeEvent =
-      const EventStreamProvider<Event>('resize');
-
-  @DomName('SVGElement.scrollEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> scrollEvent =
-      const EventStreamProvider<Event>('scroll');
-
-  @DomName('SVGElement.seekedEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> seekedEvent =
-      const EventStreamProvider<Event>('seeked');
-
-  @DomName('SVGElement.seekingEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> seekingEvent =
-      const EventStreamProvider<Event>('seeking');
-
-  @DomName('SVGElement.selectEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> selectEvent =
-      const EventStreamProvider<Event>('select');
-
-  @DomName('SVGElement.stalledEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> stalledEvent =
-      const EventStreamProvider<Event>('stalled');
-
-  @DomName('SVGElement.submitEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> submitEvent =
-      const EventStreamProvider<Event>('submit');
-
-  @DomName('SVGElement.suspendEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> suspendEvent =
-      const EventStreamProvider<Event>('suspend');
-
-  @DomName('SVGElement.timeupdateEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> timeUpdateEvent =
-      const EventStreamProvider<Event>('timeupdate');
-
-  @DomName('SVGElement.touchcancelEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<TouchEvent> touchCancelEvent =
-      const EventStreamProvider<TouchEvent>('touchcancel');
-
-  @DomName('SVGElement.touchendEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<TouchEvent> touchEndEvent =
-      const EventStreamProvider<TouchEvent>('touchend');
-
-  @DomName('SVGElement.touchmoveEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<TouchEvent> touchMoveEvent =
-      const EventStreamProvider<TouchEvent>('touchmove');
-
-  @DomName('SVGElement.touchstartEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<TouchEvent> touchStartEvent =
-      const EventStreamProvider<TouchEvent>('touchstart');
-
-  @DomName('SVGElement.volumechangeEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> volumeChangeEvent =
-      const EventStreamProvider<Event>('volumechange');
-
-  @DomName('SVGElement.waitingEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> waitingEvent =
-      const EventStreamProvider<Event>('waiting');
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  SvgElement.created() : super.created();
-
-  // Shadowing definition.
-  AnimatedString get _svgClassName => JS("AnimatedString", "#.className", this);
-
-  @JSName('ownerSVGElement')
-  @DomName('SVGElement.ownerSVGElement')
-  @DocsEditable()
-  final SvgSvgElement ownerSvgElement;
-
-  // Use implementation from Element.
-  // final CssStyleDeclaration style;
-
-  // Use implementation from Element.
-  // final int tabIndex;
-
-  @DomName('SVGElement.viewportElement')
-  @DocsEditable()
-  final SvgElement viewportElement;
-
-  @DomName('SVGElement.blur')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void blur() native;
-
-  @DomName('SVGElement.focus')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void focus() native;
-
-  @DomName('SVGElement.onabort')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onAbort => abortEvent.forElement(this);
-
-  @DomName('SVGElement.onblur')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onBlur => blurEvent.forElement(this);
-
-  @DomName('SVGElement.oncanplay')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onCanPlay => canPlayEvent.forElement(this);
-
-  @DomName('SVGElement.oncanplaythrough')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onCanPlayThrough =>
-      canPlayThroughEvent.forElement(this);
-
-  @DomName('SVGElement.onchange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onChange => changeEvent.forElement(this);
-
-  @DomName('SVGElement.onclick')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<MouseEvent> get onClick => clickEvent.forElement(this);
-
-  @DomName('SVGElement.oncontextmenu')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<MouseEvent> get onContextMenu =>
-      contextMenuEvent.forElement(this);
-
-  @DomName('SVGElement.ondblclick')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onDoubleClick => doubleClickEvent.forElement(this);
-
-  @DomName('SVGElement.ondrag')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<MouseEvent> get onDrag => dragEvent.forElement(this);
-
-  @DomName('SVGElement.ondragend')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<MouseEvent> get onDragEnd => dragEndEvent.forElement(this);
-
-  @DomName('SVGElement.ondragenter')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<MouseEvent> get onDragEnter => dragEnterEvent.forElement(this);
-
-  @DomName('SVGElement.ondragleave')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<MouseEvent> get onDragLeave => dragLeaveEvent.forElement(this);
-
-  @DomName('SVGElement.ondragover')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<MouseEvent> get onDragOver => dragOverEvent.forElement(this);
-
-  @DomName('SVGElement.ondragstart')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<MouseEvent> get onDragStart => dragStartEvent.forElement(this);
-
-  @DomName('SVGElement.ondrop')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<MouseEvent> get onDrop => dropEvent.forElement(this);
-
-  @DomName('SVGElement.ondurationchange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onDurationChange =>
-      durationChangeEvent.forElement(this);
-
-  @DomName('SVGElement.onemptied')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onEmptied => emptiedEvent.forElement(this);
-
-  @DomName('SVGElement.onended')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onEnded => endedEvent.forElement(this);
-
-  @DomName('SVGElement.onerror')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onError => errorEvent.forElement(this);
-
-  @DomName('SVGElement.onfocus')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onFocus => focusEvent.forElement(this);
-
-  @DomName('SVGElement.oninput')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onInput => inputEvent.forElement(this);
-
-  @DomName('SVGElement.oninvalid')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onInvalid => invalidEvent.forElement(this);
-
-  @DomName('SVGElement.onkeydown')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<KeyboardEvent> get onKeyDown => keyDownEvent.forElement(this);
-
-  @DomName('SVGElement.onkeypress')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<KeyboardEvent> get onKeyPress => keyPressEvent.forElement(this);
-
-  @DomName('SVGElement.onkeyup')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<KeyboardEvent> get onKeyUp => keyUpEvent.forElement(this);
-
-  @DomName('SVGElement.onload')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onLoad => loadEvent.forElement(this);
-
-  @DomName('SVGElement.onloadeddata')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onLoadedData => loadedDataEvent.forElement(this);
-
-  @DomName('SVGElement.onloadedmetadata')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onLoadedMetadata =>
-      loadedMetadataEvent.forElement(this);
-
-  @DomName('SVGElement.onmousedown')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<MouseEvent> get onMouseDown => mouseDownEvent.forElement(this);
-
-  @DomName('SVGElement.onmouseenter')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<MouseEvent> get onMouseEnter =>
-      mouseEnterEvent.forElement(this);
-
-  @DomName('SVGElement.onmouseleave')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<MouseEvent> get onMouseLeave =>
-      mouseLeaveEvent.forElement(this);
-
-  @DomName('SVGElement.onmousemove')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<MouseEvent> get onMouseMove => mouseMoveEvent.forElement(this);
-
-  @DomName('SVGElement.onmouseout')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<MouseEvent> get onMouseOut => mouseOutEvent.forElement(this);
-
-  @DomName('SVGElement.onmouseover')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<MouseEvent> get onMouseOver => mouseOverEvent.forElement(this);
-
-  @DomName('SVGElement.onmouseup')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<MouseEvent> get onMouseUp => mouseUpEvent.forElement(this);
-
-  @DomName('SVGElement.onmousewheel')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<WheelEvent> get onMouseWheel =>
-      mouseWheelEvent.forElement(this);
-
-  @DomName('SVGElement.onpause')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onPause => pauseEvent.forElement(this);
-
-  @DomName('SVGElement.onplay')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onPlay => playEvent.forElement(this);
-
-  @DomName('SVGElement.onplaying')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onPlaying => playingEvent.forElement(this);
-
-  @DomName('SVGElement.onratechange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onRateChange => rateChangeEvent.forElement(this);
-
-  @DomName('SVGElement.onreset')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onReset => resetEvent.forElement(this);
-
-  @DomName('SVGElement.onresize')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onResize => resizeEvent.forElement(this);
-
-  @DomName('SVGElement.onscroll')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onScroll => scrollEvent.forElement(this);
-
-  @DomName('SVGElement.onseeked')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onSeeked => seekedEvent.forElement(this);
-
-  @DomName('SVGElement.onseeking')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onSeeking => seekingEvent.forElement(this);
-
-  @DomName('SVGElement.onselect')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onSelect => selectEvent.forElement(this);
-
-  @DomName('SVGElement.onstalled')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onStalled => stalledEvent.forElement(this);
-
-  @DomName('SVGElement.onsubmit')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onSubmit => submitEvent.forElement(this);
-
-  @DomName('SVGElement.onsuspend')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onSuspend => suspendEvent.forElement(this);
-
-  @DomName('SVGElement.ontimeupdate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onTimeUpdate => timeUpdateEvent.forElement(this);
-
-  @DomName('SVGElement.ontouchcancel')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<TouchEvent> get onTouchCancel =>
-      touchCancelEvent.forElement(this);
-
-  @DomName('SVGElement.ontouchend')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<TouchEvent> get onTouchEnd => touchEndEvent.forElement(this);
-
-  @DomName('SVGElement.ontouchmove')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<TouchEvent> get onTouchMove => touchMoveEvent.forElement(this);
-
-  @DomName('SVGElement.ontouchstart')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<TouchEvent> get onTouchStart =>
-      touchStartEvent.forElement(this);
-
-  @DomName('SVGElement.onvolumechange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onVolumeChange => volumeChangeEvent.forElement(this);
-
-  @DomName('SVGElement.onwaiting')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ElementStream<Event> get onWaiting => waitingEvent.forElement(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('SVGSVGElement')
-@Unstable()
-@Native("SVGSVGElement")
-class SvgSvgElement extends GraphicsElement
-    implements FitToViewBox, ZoomAndPan {
-  factory SvgSvgElement() {
-    final el = new SvgElement.tag("svg");
-    // The SVG spec requires the version attribute to match the spec version
-    el.attributes['version'] = "1.1";
-    return el;
-  }
-
-  // To suppress missing implicit constructor warnings.
-  factory SvgSvgElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  SvgSvgElement.created() : super.created();
-
-  @DomName('SVGSVGElement.currentScale')
-  @DocsEditable()
-  num currentScale;
-
-  @DomName('SVGSVGElement.currentTranslate')
-  @DocsEditable()
-  final Point currentTranslate;
-
-  @DomName('SVGSVGElement.currentView')
-  @DocsEditable()
-  final ViewSpec currentView;
-
-  @DomName('SVGSVGElement.height')
-  @DocsEditable()
-  final AnimatedLength height;
-
-  @DomName('SVGSVGElement.useCurrentView')
-  @DocsEditable()
-  final bool useCurrentView;
-
-  @DomName('SVGSVGElement.viewport')
-  @DocsEditable()
-  final Rect viewport;
-
-  @DomName('SVGSVGElement.width')
-  @DocsEditable()
-  final AnimatedLength width;
-
-  @DomName('SVGSVGElement.x')
-  @DocsEditable()
-  final AnimatedLength x;
-
-  @DomName('SVGSVGElement.y')
-  @DocsEditable()
-  final AnimatedLength y;
-
-  @DomName('SVGSVGElement.animationsPaused')
-  @DocsEditable()
-  bool animationsPaused() native;
-
-  @DomName('SVGSVGElement.checkEnclosure')
-  @DocsEditable()
-  bool checkEnclosure(SvgElement element, Rect rect) native;
-
-  @DomName('SVGSVGElement.checkIntersection')
-  @DocsEditable()
-  bool checkIntersection(SvgElement element, Rect rect) native;
-
-  @JSName('createSVGAngle')
-  @DomName('SVGSVGElement.createSVGAngle')
-  @DocsEditable()
-  Angle createSvgAngle() native;
-
-  @JSName('createSVGLength')
-  @DomName('SVGSVGElement.createSVGLength')
-  @DocsEditable()
-  Length createSvgLength() native;
-
-  @JSName('createSVGMatrix')
-  @DomName('SVGSVGElement.createSVGMatrix')
-  @DocsEditable()
-  Matrix createSvgMatrix() native;
-
-  @JSName('createSVGNumber')
-  @DomName('SVGSVGElement.createSVGNumber')
-  @DocsEditable()
-  Number createSvgNumber() native;
-
-  @JSName('createSVGPoint')
-  @DomName('SVGSVGElement.createSVGPoint')
-  @DocsEditable()
-  Point createSvgPoint() native;
-
-  @JSName('createSVGRect')
-  @DomName('SVGSVGElement.createSVGRect')
-  @DocsEditable()
-  Rect createSvgRect() native;
-
-  @JSName('createSVGTransform')
-  @DomName('SVGSVGElement.createSVGTransform')
-  @DocsEditable()
-  Transform createSvgTransform() native;
-
-  @JSName('createSVGTransformFromMatrix')
-  @DomName('SVGSVGElement.createSVGTransformFromMatrix')
-  @DocsEditable()
-  Transform createSvgTransformFromMatrix(Matrix matrix) native;
-
-  @DomName('SVGSVGElement.deselectAll')
-  @DocsEditable()
-  void deselectAll() native;
-
-  @DomName('SVGSVGElement.forceRedraw')
-  @DocsEditable()
-  void forceRedraw() native;
-
-  @DomName('SVGSVGElement.getCurrentTime')
-  @DocsEditable()
-  double getCurrentTime() native;
-
-  @DomName('SVGSVGElement.getElementById')
-  @DocsEditable()
-  Element getElementById(String elementId) native;
-
-  @DomName('SVGSVGElement.getEnclosureList')
-  @DocsEditable()
-  @Returns('NodeList|Null')
-  @Creates('NodeList')
-  List<Node> getEnclosureList(Rect rect, SvgElement referenceElement) native;
-
-  @DomName('SVGSVGElement.getIntersectionList')
-  @DocsEditable()
-  @Returns('NodeList|Null')
-  @Creates('NodeList')
-  List<Node> getIntersectionList(Rect rect, SvgElement referenceElement) native;
-
-  @DomName('SVGSVGElement.pauseAnimations')
-  @DocsEditable()
-  void pauseAnimations() native;
-
-  @DomName('SVGSVGElement.setCurrentTime')
-  @DocsEditable()
-  void setCurrentTime(num seconds) native;
-
-  @DomName('SVGSVGElement.suspendRedraw')
-  @DocsEditable()
-  int suspendRedraw(int maxWaitMilliseconds) native;
-
-  @DomName('SVGSVGElement.unpauseAnimations')
-  @DocsEditable()
-  void unpauseAnimations() native;
-
-  @DomName('SVGSVGElement.unsuspendRedraw')
-  @DocsEditable()
-  void unsuspendRedraw(int suspendHandleId) native;
-
-  @DomName('SVGSVGElement.unsuspendRedrawAll')
-  @DocsEditable()
-  void unsuspendRedrawAll() native;
-
-  // From SVGFitToViewBox
-
-  @DomName('SVGSVGElement.preserveAspectRatio')
-  @DocsEditable()
-  final AnimatedPreserveAspectRatio preserveAspectRatio;
-
-  @DomName('SVGSVGElement.viewBox')
-  @DocsEditable()
-  final AnimatedRect viewBox;
-
-  // From SVGZoomAndPan
-
-  @DomName('SVGSVGElement.zoomAndPan')
-  @DocsEditable()
-  int zoomAndPan;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGSwitchElement')
-@Unstable()
-@Native("SVGSwitchElement")
-class SwitchElement extends GraphicsElement {
-  // To suppress missing implicit constructor warnings.
-  factory SwitchElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGSwitchElement.SVGSwitchElement')
-  @DocsEditable()
-  factory SwitchElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("switch");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  SwitchElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGSymbolElement')
-@Unstable()
-@Native("SVGSymbolElement")
-class SymbolElement extends SvgElement implements FitToViewBox {
-  // To suppress missing implicit constructor warnings.
-  factory SymbolElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGSymbolElement.SVGSymbolElement')
-  @DocsEditable()
-  factory SymbolElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("symbol");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  SymbolElement.created() : super.created();
-
-  // From SVGFitToViewBox
-
-  @DomName('SVGSymbolElement.preserveAspectRatio')
-  @DocsEditable()
-  final AnimatedPreserveAspectRatio preserveAspectRatio;
-
-  @DomName('SVGSymbolElement.viewBox')
-  @DocsEditable()
-  final AnimatedRect viewBox;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGTSpanElement')
-@Unstable()
-@Native("SVGTSpanElement")
-class TSpanElement extends TextPositioningElement {
-  // To suppress missing implicit constructor warnings.
-  factory TSpanElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGTSpanElement.SVGTSpanElement')
-  @DocsEditable()
-  factory TSpanElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("tspan");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  TSpanElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGTests')
-@Unstable()
-abstract class Tests extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Tests._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  final StringList requiredExtensions;
-
-  final StringList requiredFeatures;
-
-  final StringList systemLanguage;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGTextContentElement')
-@Unstable()
-@Native("SVGTextContentElement")
-class TextContentElement extends GraphicsElement {
-  // To suppress missing implicit constructor warnings.
-  factory TextContentElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  TextContentElement.created() : super.created();
-
-  @DomName('SVGTextContentElement.LENGTHADJUST_SPACING')
-  @DocsEditable()
-  static const int LENGTHADJUST_SPACING = 1;
-
-  @DomName('SVGTextContentElement.LENGTHADJUST_SPACINGANDGLYPHS')
-  @DocsEditable()
-  static const int LENGTHADJUST_SPACINGANDGLYPHS = 2;
-
-  @DomName('SVGTextContentElement.LENGTHADJUST_UNKNOWN')
-  @DocsEditable()
-  static const int LENGTHADJUST_UNKNOWN = 0;
-
-  @DomName('SVGTextContentElement.lengthAdjust')
-  @DocsEditable()
-  final AnimatedEnumeration lengthAdjust;
-
-  @DomName('SVGTextContentElement.textLength')
-  @DocsEditable()
-  final AnimatedLength textLength;
-
-  @DomName('SVGTextContentElement.getCharNumAtPosition')
-  @DocsEditable()
-  int getCharNumAtPosition(Point point) native;
-
-  @DomName('SVGTextContentElement.getComputedTextLength')
-  @DocsEditable()
-  double getComputedTextLength() native;
-
-  @DomName('SVGTextContentElement.getEndPositionOfChar')
-  @DocsEditable()
-  Point getEndPositionOfChar(int charnum) native;
-
-  @DomName('SVGTextContentElement.getExtentOfChar')
-  @DocsEditable()
-  Rect getExtentOfChar(int charnum) native;
-
-  @DomName('SVGTextContentElement.getNumberOfChars')
-  @DocsEditable()
-  int getNumberOfChars() native;
-
-  @DomName('SVGTextContentElement.getRotationOfChar')
-  @DocsEditable()
-  double getRotationOfChar(int charnum) native;
-
-  @DomName('SVGTextContentElement.getStartPositionOfChar')
-  @DocsEditable()
-  Point getStartPositionOfChar(int charnum) native;
-
-  @DomName('SVGTextContentElement.getSubStringLength')
-  @DocsEditable()
-  double getSubStringLength(int charnum, int nchars) native;
-
-  @DomName('SVGTextContentElement.selectSubString')
-  @DocsEditable()
-  void selectSubString(int charnum, int nchars) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGTextElement')
-@Unstable()
-@Native("SVGTextElement")
-class TextElement extends TextPositioningElement {
-  // To suppress missing implicit constructor warnings.
-  factory TextElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGTextElement.SVGTextElement')
-  @DocsEditable()
-  factory TextElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("text");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  TextElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGTextPathElement')
-@Unstable()
-@Native("SVGTextPathElement")
-class TextPathElement extends TextContentElement implements UriReference {
-  // To suppress missing implicit constructor warnings.
-  factory TextPathElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  TextPathElement.created() : super.created();
-
-  @DomName('SVGTextPathElement.TEXTPATH_METHODTYPE_ALIGN')
-  @DocsEditable()
-  static const int TEXTPATH_METHODTYPE_ALIGN = 1;
-
-  @DomName('SVGTextPathElement.TEXTPATH_METHODTYPE_STRETCH')
-  @DocsEditable()
-  static const int TEXTPATH_METHODTYPE_STRETCH = 2;
-
-  @DomName('SVGTextPathElement.TEXTPATH_METHODTYPE_UNKNOWN')
-  @DocsEditable()
-  static const int TEXTPATH_METHODTYPE_UNKNOWN = 0;
-
-  @DomName('SVGTextPathElement.TEXTPATH_SPACINGTYPE_AUTO')
-  @DocsEditable()
-  static const int TEXTPATH_SPACINGTYPE_AUTO = 1;
-
-  @DomName('SVGTextPathElement.TEXTPATH_SPACINGTYPE_EXACT')
-  @DocsEditable()
-  static const int TEXTPATH_SPACINGTYPE_EXACT = 2;
-
-  @DomName('SVGTextPathElement.TEXTPATH_SPACINGTYPE_UNKNOWN')
-  @DocsEditable()
-  static const int TEXTPATH_SPACINGTYPE_UNKNOWN = 0;
-
-  @DomName('SVGTextPathElement.method')
-  @DocsEditable()
-  final AnimatedEnumeration method;
-
-  @DomName('SVGTextPathElement.spacing')
-  @DocsEditable()
-  final AnimatedEnumeration spacing;
-
-  @DomName('SVGTextPathElement.startOffset')
-  @DocsEditable()
-  final AnimatedLength startOffset;
-
-  // From SVGURIReference
-
-  @DomName('SVGTextPathElement.href')
-  @DocsEditable()
-  final AnimatedString href;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGTextPositioningElement')
-@Unstable()
-@Native("SVGTextPositioningElement")
-class TextPositioningElement extends TextContentElement {
-  // To suppress missing implicit constructor warnings.
-  factory TextPositioningElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  TextPositioningElement.created() : super.created();
-
-  @DomName('SVGTextPositioningElement.dx')
-  @DocsEditable()
-  final AnimatedLengthList dx;
-
-  @DomName('SVGTextPositioningElement.dy')
-  @DocsEditable()
-  final AnimatedLengthList dy;
-
-  @DomName('SVGTextPositioningElement.rotate')
-  @DocsEditable()
-  final AnimatedNumberList rotate;
-
-  @DomName('SVGTextPositioningElement.x')
-  @DocsEditable()
-  final AnimatedLengthList x;
-
-  @DomName('SVGTextPositioningElement.y')
-  @DocsEditable()
-  final AnimatedLengthList y;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGTitleElement')
-@Unstable()
-@Native("SVGTitleElement")
-class TitleElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory TitleElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGTitleElement.SVGTitleElement')
-  @DocsEditable()
-  factory TitleElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("title");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  TitleElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGTransform')
-@Unstable()
-@Native("SVGTransform")
-class Transform extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Transform._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGTransform.SVG_TRANSFORM_MATRIX')
-  @DocsEditable()
-  static const int SVG_TRANSFORM_MATRIX = 1;
-
-  @DomName('SVGTransform.SVG_TRANSFORM_ROTATE')
-  @DocsEditable()
-  static const int SVG_TRANSFORM_ROTATE = 4;
-
-  @DomName('SVGTransform.SVG_TRANSFORM_SCALE')
-  @DocsEditable()
-  static const int SVG_TRANSFORM_SCALE = 3;
-
-  @DomName('SVGTransform.SVG_TRANSFORM_SKEWX')
-  @DocsEditable()
-  static const int SVG_TRANSFORM_SKEWX = 5;
-
-  @DomName('SVGTransform.SVG_TRANSFORM_SKEWY')
-  @DocsEditable()
-  static const int SVG_TRANSFORM_SKEWY = 6;
-
-  @DomName('SVGTransform.SVG_TRANSFORM_TRANSLATE')
-  @DocsEditable()
-  static const int SVG_TRANSFORM_TRANSLATE = 2;
-
-  @DomName('SVGTransform.SVG_TRANSFORM_UNKNOWN')
-  @DocsEditable()
-  static const int SVG_TRANSFORM_UNKNOWN = 0;
-
-  @DomName('SVGTransform.angle')
-  @DocsEditable()
-  final double angle;
-
-  @DomName('SVGTransform.matrix')
-  @DocsEditable()
-  final Matrix matrix;
-
-  @DomName('SVGTransform.type')
-  @DocsEditable()
-  final int type;
-
-  @DomName('SVGTransform.setMatrix')
-  @DocsEditable()
-  void setMatrix(Matrix matrix) native;
-
-  @DomName('SVGTransform.setRotate')
-  @DocsEditable()
-  void setRotate(num angle, num cx, num cy) native;
-
-  @DomName('SVGTransform.setScale')
-  @DocsEditable()
-  void setScale(num sx, num sy) native;
-
-  @DomName('SVGTransform.setSkewX')
-  @DocsEditable()
-  void setSkewX(num angle) native;
-
-  @DomName('SVGTransform.setSkewY')
-  @DocsEditable()
-  void setSkewY(num angle) native;
-
-  @DomName('SVGTransform.setTranslate')
-  @DocsEditable()
-  void setTranslate(num tx, num ty) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGTransformList')
-@Unstable()
-@Native("SVGTransformList")
-class TransformList extends Interceptor
-    with ListMixin<Transform>, ImmutableListMixin<Transform>
-    implements List<Transform> {
-  // To suppress missing implicit constructor warnings.
-  factory TransformList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGTransformList.length')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int get length => JS("int", "#.length", this);
-
-  @DomName('SVGTransformList.numberOfItems')
-  @DocsEditable()
-  final int numberOfItems;
-
-  Transform operator [](int index) {
-    if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
-      throw new RangeError.index(index, this);
-    return this.getItem(index);
-  }
-
-  void operator []=(int index, Transform value) {
-    throw new UnsupportedError("Cannot assign element of immutable List.");
-  }
-  // -- start List<Transform> mixins.
-  // Transform is the element type.
-
-  set length(int value) {
-    throw new UnsupportedError("Cannot resize immutable List.");
-  }
-
-  Transform get first {
-    if (this.length > 0) {
-      return JS('Transform', '#[0]', this);
-    }
-    throw new StateError("No elements");
-  }
-
-  Transform get last {
-    int len = this.length;
-    if (len > 0) {
-      return JS('Transform', '#[#]', this, len - 1);
-    }
-    throw new StateError("No elements");
-  }
-
-  Transform get single {
-    int len = this.length;
-    if (len == 1) {
-      return JS('Transform', '#[0]', this);
-    }
-    if (len == 0) throw new StateError("No elements");
-    throw new StateError("More than one element");
-  }
-
-  Transform elementAt(int index) => this[index];
-  // -- end List<Transform> mixins.
-
-  @DomName('SVGTransformList.__setter__')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void __setter__(int index, Transform newItem) native;
-
-  @DomName('SVGTransformList.appendItem')
-  @DocsEditable()
-  Transform appendItem(Transform newItem) native;
-
-  @DomName('SVGTransformList.clear')
-  @DocsEditable()
-  void clear() native;
-
-  @DomName('SVGTransformList.consolidate')
-  @DocsEditable()
-  Transform consolidate() native;
-
-  @JSName('createSVGTransformFromMatrix')
-  @DomName('SVGTransformList.createSVGTransformFromMatrix')
-  @DocsEditable()
-  Transform createSvgTransformFromMatrix(Matrix matrix) native;
-
-  @DomName('SVGTransformList.getItem')
-  @DocsEditable()
-  Transform getItem(int index) native;
-
-  @DomName('SVGTransformList.initialize')
-  @DocsEditable()
-  Transform initialize(Transform newItem) native;
-
-  @DomName('SVGTransformList.insertItemBefore')
-  @DocsEditable()
-  Transform insertItemBefore(Transform newItem, int index) native;
-
-  @DomName('SVGTransformList.removeItem')
-  @DocsEditable()
-  Transform removeItem(int index) native;
-
-  @DomName('SVGTransformList.replaceItem')
-  @DocsEditable()
-  Transform replaceItem(Transform newItem, int index) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGUnitTypes')
-@Unstable()
-@Native("SVGUnitTypes")
-class UnitTypes extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory UnitTypes._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX')
-  @DocsEditable()
-  static const int SVG_UNIT_TYPE_OBJECTBOUNDINGBOX = 2;
-
-  @DomName('SVGUnitTypes.SVG_UNIT_TYPE_UNKNOWN')
-  @DocsEditable()
-  static const int SVG_UNIT_TYPE_UNKNOWN = 0;
-
-  @DomName('SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE')
-  @DocsEditable()
-  static const int SVG_UNIT_TYPE_USERSPACEONUSE = 1;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGURIReference')
-@Unstable()
-abstract class UriReference extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory UriReference._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  final AnimatedString href;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGUseElement')
-@Unstable()
-@Native("SVGUseElement")
-class UseElement extends GraphicsElement implements UriReference {
-  // To suppress missing implicit constructor warnings.
-  factory UseElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGUseElement.SVGUseElement')
-  @DocsEditable()
-  factory UseElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("use");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  UseElement.created() : super.created();
-
-  @DomName('SVGUseElement.height')
-  @DocsEditable()
-  final AnimatedLength height;
-
-  @DomName('SVGUseElement.width')
-  @DocsEditable()
-  final AnimatedLength width;
-
-  @DomName('SVGUseElement.x')
-  @DocsEditable()
-  final AnimatedLength x;
-
-  @DomName('SVGUseElement.y')
-  @DocsEditable()
-  final AnimatedLength y;
-
-  // From SVGURIReference
-
-  @DomName('SVGUseElement.href')
-  @DocsEditable()
-  final AnimatedString href;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGViewElement')
-@Unstable()
-@Native("SVGViewElement")
-class ViewElement extends SvgElement implements FitToViewBox, ZoomAndPan {
-  // To suppress missing implicit constructor warnings.
-  factory ViewElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGViewElement.SVGViewElement')
-  @DocsEditable()
-  factory ViewElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("view");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  ViewElement.created() : super.created();
-
-  @DomName('SVGViewElement.viewTarget')
-  @DocsEditable()
-  final StringList viewTarget;
-
-  // From SVGFitToViewBox
-
-  @DomName('SVGViewElement.preserveAspectRatio')
-  @DocsEditable()
-  final AnimatedPreserveAspectRatio preserveAspectRatio;
-
-  @DomName('SVGViewElement.viewBox')
-  @DocsEditable()
-  final AnimatedRect viewBox;
-
-  // From SVGZoomAndPan
-
-  @DomName('SVGViewElement.zoomAndPan')
-  @DocsEditable()
-  int zoomAndPan;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGViewSpec')
-@Unstable()
-@Native("SVGViewSpec")
-class ViewSpec extends Interceptor implements FitToViewBox, ZoomAndPan {
-  // To suppress missing implicit constructor warnings.
-  factory ViewSpec._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGViewSpec.preserveAspectRatioString')
-  @DocsEditable()
-  final String preserveAspectRatioString;
-
-  @DomName('SVGViewSpec.transform')
-  @DocsEditable()
-  final TransformList transform;
-
-  @DomName('SVGViewSpec.transformString')
-  @DocsEditable()
-  final String transformString;
-
-  @DomName('SVGViewSpec.viewBoxString')
-  @DocsEditable()
-  final String viewBoxString;
-
-  @DomName('SVGViewSpec.viewTarget')
-  @DocsEditable()
-  final SvgElement viewTarget;
-
-  @DomName('SVGViewSpec.viewTargetString')
-  @DocsEditable()
-  final String viewTargetString;
-
-  // From SVGFitToViewBox
-
-  @DomName('SVGViewSpec.preserveAspectRatio')
-  @DocsEditable()
-  @Experimental() // nonstandard
-  final AnimatedPreserveAspectRatio preserveAspectRatio;
-
-  @DomName('SVGViewSpec.viewBox')
-  @DocsEditable()
-  @Experimental() // nonstandard
-  final AnimatedRect viewBox;
-
-  // From SVGZoomAndPan
-
-  @DomName('SVGViewSpec.zoomAndPan')
-  @DocsEditable()
-  @Experimental() // nonstandard
-  int zoomAndPan;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGZoomAndPan')
-@Unstable()
-abstract class ZoomAndPan extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory ZoomAndPan._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGZoomAndPan.SVG_ZOOMANDPAN_DISABLE')
-  @DocsEditable()
-  static const int SVG_ZOOMANDPAN_DISABLE = 1;
-
-  @DomName('SVGZoomAndPan.SVG_ZOOMANDPAN_MAGNIFY')
-  @DocsEditable()
-  static const int SVG_ZOOMANDPAN_MAGNIFY = 2;
-
-  @DomName('SVGZoomAndPan.SVG_ZOOMANDPAN_UNKNOWN')
-  @DocsEditable()
-  static const int SVG_ZOOMANDPAN_UNKNOWN = 0;
-
-  int zoomAndPan;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGZoomEvent')
-@Unstable()
-@Native("SVGZoomEvent")
-class ZoomEvent extends UIEvent {
-  // To suppress missing implicit constructor warnings.
-  factory ZoomEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGZoomEvent.newScale')
-  @DocsEditable()
-  final double newScale;
-
-  @DomName('SVGZoomEvent.newTranslate')
-  @DocsEditable()
-  final Point newTranslate;
-
-  @DomName('SVGZoomEvent.previousScale')
-  @DocsEditable()
-  final double previousScale;
-
-  @DomName('SVGZoomEvent.previousTranslate')
-  @DocsEditable()
-  final Point previousTranslate;
-
-  @DomName('SVGZoomEvent.zoomRectScreen')
-  @DocsEditable()
-  final Rect zoomRectScreen;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGGradientElement')
-@Unstable()
-@Native("SVGGradientElement")
-class _GradientElement extends SvgElement implements UriReference {
-  // To suppress missing implicit constructor warnings.
-  factory _GradientElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _GradientElement.created() : super.created();
-
-  @DomName('SVGGradientElement.SVG_SPREADMETHOD_PAD')
-  @DocsEditable()
-  static const int SVG_SPREADMETHOD_PAD = 1;
-
-  @DomName('SVGGradientElement.SVG_SPREADMETHOD_REFLECT')
-  @DocsEditable()
-  static const int SVG_SPREADMETHOD_REFLECT = 2;
-
-  @DomName('SVGGradientElement.SVG_SPREADMETHOD_REPEAT')
-  @DocsEditable()
-  static const int SVG_SPREADMETHOD_REPEAT = 3;
-
-  @DomName('SVGGradientElement.SVG_SPREADMETHOD_UNKNOWN')
-  @DocsEditable()
-  static const int SVG_SPREADMETHOD_UNKNOWN = 0;
-
-  @DomName('SVGGradientElement.gradientTransform')
-  @DocsEditable()
-  final AnimatedTransformList gradientTransform;
-
-  @DomName('SVGGradientElement.gradientUnits')
-  @DocsEditable()
-  final AnimatedEnumeration gradientUnits;
-
-  @DomName('SVGGradientElement.spreadMethod')
-  @DocsEditable()
-  final AnimatedEnumeration spreadMethod;
-
-  // From SVGURIReference
-
-  @DomName('SVGGradientElement.href')
-  @DocsEditable()
-  final AnimatedString href;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGComponentTransferFunctionElement')
-@Unstable()
-@Native("SVGComponentTransferFunctionElement")
-abstract class _SVGComponentTransferFunctionElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGComponentTransferFunctionElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGComponentTransferFunctionElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGCursorElement')
-@Unstable()
-@Native("SVGCursorElement")
-abstract class _SVGCursorElement extends SvgElement
-    implements UriReference, Tests {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGCursorElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGCursorElement.SVGCursorElement')
-  @DocsEditable()
-  factory _SVGCursorElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("cursor");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGCursorElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      SvgElement.isTagSupported('cursor') &&
-      (new SvgElement.tag('cursor') is _SVGCursorElement);
-
-  // From SVGTests
-
-  // From SVGURIReference
-
-}
-
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGFEDropShadowElement')
-@Experimental() // nonstandard
-@Native("SVGFEDropShadowElement")
-abstract class _SVGFEDropShadowElement extends SvgElement
-    implements FilterPrimitiveStandardAttributes {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGFEDropShadowElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGFEDropShadowElement.created() : super.created();
-
-  // From SVGFilterPrimitiveStandardAttributes
-
-}
-
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SVGMPathElement')
-@Native("SVGMPathElement")
-abstract class _SVGMPathElement extends SvgElement implements UriReference {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGMPathElement._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SVGMPathElement.SVGMPathElement')
-  @DocsEditable()
-  factory _SVGMPathElement() =>
-      _SvgElementFactoryProvider.createSvgElement_tag("mpath");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGMPathElement.created() : super.created();
-
-  // From SVGURIReference
-
-}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/typed_data/typed_data.dart b/pkg/dev_compiler/tool/input_sdk/lib/typed_data/typed_data.dart
deleted file mode 100644
index 55595423..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/typed_data/typed_data.dart
+++ /dev/null
@@ -1,3246 +0,0 @@
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/// Lists that efficiently handle fixed sized data
-/// (for example, unsigned 8 byte integers) and SIMD numeric types.
-///
-/// To use this library in your code:
-///
-///     import 'dart:typed_data';
-library dart.typed_data;
-
-/**
- * A sequence of bytes underlying a typed data object.
- *
- * Used to process large quantities of binary or numerical data
- * more efficiently using a typed view.
- */
-abstract class ByteBuffer {
-  /**
-   * Returns the length of this byte buffer, in bytes.
-   */
-  int get lengthInBytes;
-
-  /**
-   * Creates a [Uint8List] _view_ of a region of this byte buffer.
-   *
-   * The view is backed by the bytes of this byte buffer.
-   * Any changes made to the `Uint8List` will also change the buffer,
-   * and vice versa.
-   *
-   * The viewed region start at [offsetInBytes] and contains [length] bytes.
-   * If [length] is omitted, the range extends to the end of the buffer.
-   *
-   * The start index and length must describe a valid range of the buffer:
-   *
-   * * `offsetInBytes` must not be negative,
-   * * `length` must not be negative, and
-   * * `offsetInBytes + length` must not be greater than [lengthInBytes].
-   */
-  Uint8List asUint8List([int offsetInBytes = 0, int length]);
-
-  /**
-   * Creates a [Int8List] _view_ of a region of this byte buffer.
-   *
-   * The view is backed by the bytes of this byte buffer.
-   * Any changes made to the `Int8List` will also change the buffer,
-   * and vice versa.
-   *
-   * The viewed region start at [offsetInBytes] and contains [length] bytes.
-   * If [length] is omitted, the range extends to the end of the buffer.
-   *
-   * The start index and length must describe a valid range of the buffer:
-   *
-   * * `offsetInBytes` must not be negative,
-   * * `length` must not be negative, and
-   * * `offsetInBytes + length` must not be greater than [lengthInBytes].
-   */
-  Int8List asInt8List([int offsetInBytes = 0, int length]);
-
-  /**
-   * Creates a [Uint8ClampedList] _view_ of a region of this byte buffer.
-   *
-   * The view is backed by the bytes of this byte buffer.
-   * Any changes made to the `Uint8ClampedList` will also change the buffer,
-   * and vice versa.
-   *
-   * The viewed region start at [offsetInBytes] and contains [length] bytes.
-   * If [length] is omitted, the range extends to the end of the buffer.
-   *
-   * The start index and length must describe a valid range of the buffer:
-   *
-   * * `offsetInBytes` must not be negative,
-   * * `length` must not be negative, and
-   * * `offsetInBytes + length` must not be greater than [lengthInBytes].
-   */
-  Uint8ClampedList asUint8ClampedList([int offsetInBytes = 0, int length]);
-
-  /**
-   * Creates a [Uint16List] _view_ of a region of this byte buffer.
-   *
-   * The view is backed by the bytes of this byte buffer.
-   * Any changes made to the `Uint16List` will also change the buffer,
-   * and vice versa.
-   *
-   * The viewed region start at [offsetInBytes], which must be 16-bit aligned,
-   * and contains [length] 16-bit integers.
-   * If [length] is omitted, the range extends as far towards the end of
-   * the buffer as possible -
-   * if [lengthInBytes] is not even, the last byte can't be part of the view.
-   *
-   * The start index and length must describe a valid 16-bit aligned range
-   * of the buffer:
-   *
-   * * `offsetInBytes` must not be negative,
-   * * `offsetInBytes` must be divisible by two,
-   * * `length` must not be negative, and
-   * * `offsetInBytes + length * 2` must not be greater than [lengthInBytes].
-   */
-  Uint16List asUint16List([int offsetInBytes = 0, int length]);
-
-  /**
-   * Creates a [Int16List] _view_ of a region of this byte buffer.
-   *
-   * The view is backed by the bytes of this byte buffer.
-   * Any changes made to the `Int16List` will also change the buffer,
-   * and vice versa.
-   *
-   * The viewed region start at [offsetInBytes], which must be 16-bit aligned,
-   * and contains [length] 16-bit integers.
-   * If [length] is omitted, the range extends as far towards the end of
-   * the buffer as possible -
-   * if [lengthInBytes] is not even, the last byte can't be part of the view.
-   *
-   * The start index and length must describe a valid 16-bit aligned range
-   * of the buffer:
-   *
-   * * `offsetInBytes` must not be negative,
-   * * `offsetInBytes` must be divisible by two,
-   * * `length` must not be negative, and
-   * * `offsetInBytes + length * 2` must not be greater than [lengthInBytes].
-   */
-  Int16List asInt16List([int offsetInBytes = 0, int length]);
-
-  /**
-   * Creates a [Uint32List] _view_ of a region of this byte buffer.
-   *
-   * The view is backed by the bytes of this byte buffer.
-   * Any changes made to the `Uint32List` will also change the buffer,
-   * and vice versa.
-   *
-   * The viewed region start at [offsetInBytes], which must be 32-bit aligned,
-   * and contains [length] 32-bit integers.
-   * If [length] is omitted, the range extends as far towards the end of
-   * the buffer as possible -
-   * if [lengthInBytes] is not divisible by four, the last bytes can't be part
-   * of the view.
-   *
-   * The start index and length must describe a valid 32-bit aligned range
-   * of the buffer:
-   *
-   * * `offsetInBytes` must not be negative,
-   * * `offsetInBytes` must be divisible by four,
-   * * `length` must not be negative, and
-   * * `offsetInBytes + length * 4` must not be greater than [lengthInBytes].
-   */
-  Uint32List asUint32List([int offsetInBytes = 0, int length]);
-
-  /**
-   * Creates a [Int32List] _view_ of a region of this byte buffer.
-   *
-   * The view is backed by the bytes of this byte buffer.
-   * Any changes made to the `Int32List` will also change the buffer,
-   * and vice versa.
-   *
-   * The viewed region start at [offsetInBytes], which must be 32-bit aligned,
-   * and contains [length] 32-bit integers.
-   * If [length] is omitted, the range extends as far towards the end of
-   * the buffer as possible -
-   * if [lengthInBytes] is not divisible by four, the last bytes can't be part
-   * of the view.
-   *
-   * The start index and length must describe a valid 32-bit aligned range
-   * of the buffer:
-   *
-   * * `offsetInBytes` must not be negative,
-   * * `offsetInBytes` must be divisible by four,
-   * * `length` must not be negative, and
-   * * `offsetInBytes + length * 4` must not be greater than [lengthInBytes].
-   */
-  Int32List asInt32List([int offsetInBytes = 0, int length]);
-
-  /**
-   * Creates a [Uint64List] _view_ of a region of this byte buffer.
-   *
-   * The view is backed by the bytes of this byte buffer.
-   * Any changes made to the `Uint64List` will also change the buffer,
-   * and vice versa.
-   *
-   * The viewed region start at [offsetInBytes], which must be 64-bit aligned,
-   * and contains [length] 64-bit integers.
-   * If [length] is omitted, the range extends as far towards the end of
-   * the buffer as possible -
-   * if [lengthInBytes] is not divisible by eight, the last bytes can't be part
-   * of the view.
-   *
-   * The start index and length must describe a valid 64-bit aligned range
-   * of the buffer:
-   *
-   * * `offsetInBytes` must not be negative,
-   * * `offsetInBytes` must be divisible by eight,
-   * * `length` must not be negative, and
-   * * `offsetInBytes + length * 8` must not be greater than [lengthInBytes].
-   */
-  Uint64List asUint64List([int offsetInBytes = 0, int length]);
-
-  /**
-   * Creates a [Int64List] _view_ of a region of this byte buffer.
-   *
-   * The view is backed by the bytes of this byte buffer.
-   * Any changes made to the `Int64List` will also change the buffer,
-   * and vice versa.
-   *
-   * The viewed region start at [offsetInBytes], which must be 64-bit aligned,
-   * and contains [length] 64-bit integers.
-   * If [length] is omitted, the range extends as far towards the end of
-   * the buffer as possible -
-   * if [lengthInBytes] is not divisible by eight, the last bytes can't be part
-   * of the view.
-   *
-   * The start index and length must describe a valid 64-bit aligned range
-   * of the buffer:
-   *
-   * * `offsetInBytes` must not be negative,
-   * * `offsetInBytes` must be divisible by eight,
-   * * `length` must not be negative, and
-   * * `offsetInBytes + length * 8` must not be greater than [lengthInBytes].
-   */
-  Int64List asInt64List([int offsetInBytes = 0, int length]);
-
-  /**
-   * Creates a [Int32x4List] _view_ of a region of this byte buffer.
-   *
-   * The view is backed by the bytes of this byte buffer.
-   * Any changes made to the `Int32x4List` will also change the buffer,
-   * and vice versa.
-   *
-   * The viewed region start at [offsetInBytes], which must be 128-bit aligned,
-   * and contains [length] 128-bit integers.
-   * If [length] is omitted, the range extends as far towards the end of
-   * the buffer as possible -
-   * if [lengthInBytes] is not divisible by 16, the last bytes can't be part
-   * of the view.
-   *
-   * The start index and length must describe a valid 128-bit aligned range
-   * of the buffer:
-   *
-   * * `offsetInBytes` must not be negative,
-   * * `offsetInBytes` must be divisible by sixteen,
-   * * `length` must not be negative, and
-   * * `offsetInBytes + length * 16` must not be greater than [lengthInBytes].
-   */
-  Int32x4List asInt32x4List([int offsetInBytes = 0, int length]);
-
-  /**
-   * Creates a [Float32List] _view_ of a region of this byte buffer.
-   *
-   * The view is backed by the bytes of this byte buffer.
-   * Any changes made to the `Float32List` will also change the buffer,
-   * and vice versa.
-   *
-   * The viewed region start at [offsetInBytes], which must be 32-bit aligned,
-   * and contains [length] 32-bit integers.
-   * If [length] is omitted, the range extends as far towards the end of
-   * the buffer as possible -
-   * if [lengthInBytes] is not divisible by four, the last bytes can't be part
-   * of the view.
-   *
-   * The start index and length must describe a valid 32-bit aligned range
-   * of the buffer:
-   *
-   * * `offsetInBytes` must not be negative,
-   * * `offsetInBytes` must be divisible by four,
-   * * `length` must not be negative, and
-   * * `offsetInBytes + length * 4` must not be greater than [lengthInBytes].
-   */
-  Float32List asFloat32List([int offsetInBytes = 0, int length]);
-
-  /**
-   * Creates a [Float64List] _view_ of a region of this byte buffer.
-   *
-   * The view is backed by the bytes of this byte buffer.
-   * Any changes made to the `Float64List` will also change the buffer,
-   * and vice versa.
-   *
-   * The viewed region start at [offsetInBytes], which must be 64-bit aligned,
-   * and contains [length] 64-bit integers.
-   * If [length] is omitted, the range extends as far towards the end of
-   * the buffer as possible -
-   * if [lengthInBytes] is not divisible by eight, the last bytes can't be part
-   * of the view.
-   *
-   * The start index and length must describe a valid 64-bit aligned range
-   * of the buffer:
-   *
-   * * `offsetInBytes` must not be negative,
-   * * `offsetInBytes` must be divisible by eight,
-   * * `length` must not be negative, and
-   * * `offsetInBytes + length * 8` must not be greater than [lengthInBytes].
-   */
-  Float64List asFloat64List([int offsetInBytes = 0, int length]);
-
-  /**
-   * Creates a [Float32x4List] _view_ of a region of this byte buffer.
-   *
-   * The view is backed by the bytes of this byte buffer.
-   * Any changes made to the `Float32x4List` will also change the buffer,
-   * and vice versa.
-   *
-   * The viewed region start at [offsetInBytes], which must be 128-bit aligned,
-   * and contains [length] 128-bit integers.
-   * If [length] is omitted, the range extends as far towards the end of
-   * the buffer as possible -
-   * if [lengthInBytes] is not divisible by 16, the last bytes can't be part
-   * of the view.
-   *
-   * The start index and length must describe a valid 128-bit aligned range
-   * of the buffer:
-   *
-   * * `offsetInBytes` must not be negative,
-   * * `offsetInBytes` must be divisible by sixteen,
-   * * `length` must not be negative, and
-   * * `offsetInBytes + length * 16` must not be greater than [lengthInBytes].
-   */
-  Float32x4List asFloat32x4List([int offsetInBytes = 0, int length]);
-
-  /**
-   * Creates a [Float64x2List] _view_ of a region of this byte buffer.
-   *
-   * The view is backed by the bytes of this byte buffer.
-   * Any changes made to the `Float64x2List` will also change the buffer,
-   * and vice versa.
-   *
-   * The viewed region start at [offsetInBytes], which must be 128-bit aligned,
-   * and contains [length] 128-bit integers.
-   * If [length] is omitted, the range extends as far towards the end of
-   * the buffer as possible -
-   * if [lengthInBytes] is not divisible by 16, the last bytes can't be part
-   * of the view.
-   *
-   * The start index and length must describe a valid 128-bit aligned range
-   * of the buffer:
-   *
-   * * `offsetInBytes` must not be negative,
-   * * `offsetInBytes` must be divisible by sixteen,
-   * * `length` must not be negative, and
-   * * `offsetInBytes + length * 16` must not be greater than [lengthInBytes].
-   */
-  Float64x2List asFloat64x2List([int offsetInBytes = 0, int length]);
-
-  /**
-   * Creates a [ByteData] _view_ of a region of this byte buffer.
-   *
-   * The view is backed by the bytes of this byte buffer.
-   * Any changes made to the `ByteData` will also change the buffer,
-   * and vice versa.
-   *
-   * The viewed region start at [offsetInBytes] and contains [length] bytes.
-   * If [length] is omitted, the range extends to the end of the buffer.
-   *
-   * The start index and length must describe a valid range of the buffer:
-   *
-   * * `offsetInBytes` must not be negative,
-   * * `length` must not be negative, and
-   * * `offsetInBytes + length` must not be greater than [lengthInBytes].
-   */
-  ByteData asByteData([int offsetInBytes = 0, int length]);
-}
-
-/**
- * A typed view of a sequence of bytes.
- */
-abstract class TypedData {
-  /**
-   * Returns the number of bytes in the representation of each element in this
-   * list.
-   */
-  int get elementSizeInBytes;
-
-  /**
-   * Returns the offset in bytes into the underlying byte buffer of this view.
-   */
-  int get offsetInBytes;
-
-  /**
-   * Returns the length of this view, in bytes.
-   */
-  int get lengthInBytes;
-
-  /**
-   * Returns the byte buffer associated with this object.
-   */
-  ByteBuffer get buffer;
-}
-
-// TODO(lrn): Remove class for Dart 2.0.
-/** Deprecated, use [Endian] instead. */
-abstract class Endianness {
-  Endianness._(); // prevent construction.
-  /** Deprecated, use [Endian.big] instead. */
-  static const Endian BIG_ENDIAN = Endian.big;
-  /** Deprecated, use [Endian.little] instead. */
-  static const Endian LITTLE_ENDIAN = Endian.little;
-  /** Deprecated, use [Endian.host] instead. */
-  static Endian get HOST_ENDIAN => Endian.host;
-}
-
-/**
- * Describes endianness to be used when accessing or updating a
- * sequence of bytes.
- */
-class Endian implements Endianness {
-  final bool _littleEndian;
-  const Endian._(this._littleEndian);
-
-  static const Endian big = const Endian._(false);
-  static const Endian little = const Endian._(true);
-  static final Endian host =
-      (new ByteData.view(new Uint16List.fromList([1]).buffer)).getInt8(0) == 1
-          ? little
-          : big;
-}
-
-/**
- * A fixed-length, random-access sequence of bytes that also provides random
- * and unaligned access to the fixed-width integers and floating point
- * numbers represented by those bytes.
- *
- * `ByteData` may be used to pack and unpack data from external sources
- * (such as networks or files systems), and to process large quantities
- * of numerical data more efficiently than would be possible
- * with ordinary [List] implementations.
- * `ByteData` can save space, by eliminating the need for object headers,
- * and time, by eliminating the need for data copies.
- * Finally, `ByteData` may be used to intentionally reinterpret the bytes
- * representing one arithmetic type as another.
- * For example this code fragment determine what 32-bit signed integer
- * is represented by the bytes of a 32-bit floating point number:
- *
- *     var buffer = new Uint8List(8).buffer;
- *     var bdata = new ByteData.view(buffer);
- *     bdata.setFloat32(0, 3.04);
- *     int huh = bdata.getInt32(0);
- */
-abstract class ByteData implements TypedData {
-  /**
-   * Creates a [ByteData] of the specified length (in elements), all of
-   * whose bytes are initially zero.
-   */
-  external factory ByteData(int length);
-
-  /**
-   * Creates an [ByteData] _view_ of the specified region in [buffer].
-   *
-   * Changes in the [ByteData] will be visible in the byte
-   * buffer and vice versa.
-   * If the [offsetInBytes] index of the region is not specified,
-   * it defaults to zero (the first byte in the byte buffer).
-   * If the length is not specified, it defaults to `null`,
-   * which indicates that the view extends to the end of the byte buffer.
-   *
-   * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
-   * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
-   * the length of [buffer].
-   */
-  factory ByteData.view(ByteBuffer buffer,
-      [int offsetInBytes = 0, int length]) {
-    return buffer.asByteData(offsetInBytes, length);
-  }
-
-  /**
-   * Returns the (possibly negative) integer represented by the byte at the
-   * specified [byteOffset] in this object, in two's complement binary
-   * representation.
-   *
-   * The return value will be between -128 and 127, inclusive.
-   *
-   * Throws [RangeError] if [byteOffset] is negative, or
-   * greater than or equal to the length of this object.
-   */
-  int getInt8(int byteOffset);
-
-  /**
-   * Sets the byte at the specified [byteOffset] in this object to the
-   * two's complement binary representation of the specified [value], which
-   * must fit in a single byte.
-   *
-   * In other words, [value] must be between -128 and 127, inclusive.
-   *
-   * Throws [RangeError] if [byteOffset] is negative, or
-   * greater than or equal to the length of this object.
-   */
-  void setInt8(int byteOffset, int value);
-
-  /**
-   * Returns the positive integer represented by the byte at the specified
-   * [byteOffset] in this object, in unsigned binary form.
-   *
-   * The return value will be between 0 and 255, inclusive.
-   *
-   * Throws [RangeError] if [byteOffset] is negative, or
-   * greater than or equal to the length of this object.
-   */
-  int getUint8(int byteOffset);
-
-  /**
-   * Sets the byte at the specified [byteOffset] in this object to the
-   * unsigned binary representation of the specified [value], which must fit
-   * in a single byte.
-   *
-   * In other words, [value] must be between 0 and 255, inclusive.
-   *
-   * Throws [RangeError] if [byteOffset] is negative,
-   * or greater than or equal to the length of this object.
-   */
-  void setUint8(int byteOffset, int value);
-
-  /**
-   * Returns the (possibly negative) integer represented by the two bytes at
-   * the specified [byteOffset] in this object, in two's complement binary
-   * form.
-   *
-   * The return value will be between -2<sup>15</sup> and 2<sup>15</sup> - 1,
-   * inclusive.
-   *
-   * Throws [RangeError] if [byteOffset] is negative, or
-   * `byteOffset + 2` is greater than the length of this object.
-   */
-  int getInt16(int byteOffset, [Endian endian = Endian.big]);
-
-  /**
-   * Sets the two bytes starting at the specified [byteOffset] in this
-   * object to the two's complement binary representation of the specified
-   * [value], which must fit in two bytes.
-   *
-   * In other words, [value] must lie
-   * between -2<sup>15</sup> and 2<sup>15</sup> - 1, inclusive.
-   *
-   * Throws [RangeError] if [byteOffset] is negative, or
-   * `byteOffset + 2` is greater than the length of this object.
-   */
-  void setInt16(int byteOffset, int value, [Endian endian = Endian.big]);
-
-  /**
-   * Returns the positive integer represented by the two bytes starting
-   * at the specified [byteOffset] in this object, in unsigned binary
-   * form.
-   *
-   * The return value will be between 0 and  2<sup>16</sup> - 1, inclusive.
-   *
-   * Throws [RangeError] if [byteOffset] is negative, or
-   * `byteOffset + 2` is greater than the length of this object.
-   */
-  int getUint16(int byteOffset, [Endian endian = Endian.big]);
-
-  /**
-   * Sets the two bytes starting at the specified [byteOffset] in this object
-   * to the unsigned binary representation of the specified [value],
-   * which must fit in two bytes.
-   *
-   * In other words, [value] must be between
-   * 0 and 2<sup>16</sup> - 1, inclusive.
-   *
-   * Throws [RangeError] if [byteOffset] is negative, or
-   * `byteOffset + 2` is greater than the length of this object.
-   */
-  void setUint16(int byteOffset, int value, [Endian endian = Endian.big]);
-
-  /**
-   * Returns the (possibly negative) integer represented by the four bytes at
-   * the specified [byteOffset] in this object, in two's complement binary
-   * form.
-   *
-   * The return value will be between -2<sup>31</sup> and 2<sup>31</sup> - 1,
-   * inclusive.
-   *
-   * Throws [RangeError] if [byteOffset] is negative, or
-   * `byteOffset + 4` is greater than the length of this object.
-   */
-  int getInt32(int byteOffset, [Endian endian = Endian.big]);
-
-  /**
-   * Sets the four bytes starting at the specified [byteOffset] in this
-   * object to the two's complement binary representation of the specified
-   * [value], which must fit in four bytes.
-   *
-   * In other words, [value] must lie
-   * between -2<sup>31</sup> and 2<sup>31</sup> - 1, inclusive.
-   *
-   * Throws [RangeError] if [byteOffset] is negative, or
-   * `byteOffset + 4` is greater than the length of this object.
-   */
-  void setInt32(int byteOffset, int value, [Endian endian = Endian.big]);
-
-  /**
-   * Returns the positive integer represented by the four bytes starting
-   * at the specified [byteOffset] in this object, in unsigned binary
-   * form.
-   *
-   * The return value will be between 0 and  2<sup>32</sup> - 1, inclusive.
-   *
-   * Throws [RangeError] if [byteOffset] is negative, or
-   * `byteOffset + 4` is greater than the length of this object.
-   */
-  int getUint32(int byteOffset, [Endian endian = Endian.big]);
-
-  /**
-   * Sets the four bytes starting at the specified [byteOffset] in this object
-   * to the unsigned binary representation of the specified [value],
-   * which must fit in four bytes.
-   *
-   * In other words, [value] must be between
-   * 0 and 2<sup>32</sup> - 1, inclusive.
-   *
-   * Throws [RangeError] if [byteOffset] is negative, or
-   * `byteOffset + 4` is greater than the length of this object.
-   */
-  void setUint32(int byteOffset, int value, [Endian endian = Endian.big]);
-
-  /**
-   * Returns the (possibly negative) integer represented by the eight bytes at
-   * the specified [byteOffset] in this object, in two's complement binary
-   * form.
-   *
-   * The return value will be between -2<sup>63</sup> and 2<sup>63</sup> - 1,
-   * inclusive.
-   *
-   * Throws [RangeError] if [byteOffset] is negative, or
-   * `byteOffset + 8` is greater than the length of this object.
-   */
-  int getInt64(int byteOffset, [Endian endian = Endian.big]);
-
-  /**
-   * Sets the eight bytes starting at the specified [byteOffset] in this
-   * object to the two's complement binary representation of the specified
-   * [value], which must fit in eight bytes.
-   *
-   * In other words, [value] must lie
-   * between -2<sup>63</sup> and 2<sup>63</sup> - 1, inclusive.
-   *
-   * Throws [RangeError] if [byteOffset] is negative, or
-   * `byteOffset + 8` is greater than the length of this object.
-   */
-  void setInt64(int byteOffset, int value, [Endian endian = Endian.big]);
-
-  /**
-   * Returns the positive integer represented by the eight bytes starting
-   * at the specified [byteOffset] in this object, in unsigned binary
-   * form.
-   *
-   * The return value will be between 0 and  2<sup>64</sup> - 1, inclusive.
-   *
-   * Throws [RangeError] if [byteOffset] is negative, or
-   * `byteOffset + 8` is greater than the length of this object.
-   */
-  int getUint64(int byteOffset, [Endian endian = Endian.big]);
-
-  /**
-   * Sets the eight bytes starting at the specified [byteOffset] in this object
-   * to the unsigned binary representation of the specified [value],
-   * which must fit in eight bytes.
-   *
-   * In other words, [value] must be between
-   * 0 and 2<sup>64</sup> - 1, inclusive.
-   *
-   * Throws [RangeError] if [byteOffset] is negative, or
-   * `byteOffset + 8` is greater than the length of this object.
-   */
-  void setUint64(int byteOffset, int value, [Endian endian = Endian.big]);
-
-  /**
-   * Returns the floating point number represented by the four bytes at
-   * the specified [byteOffset] in this object, in IEEE 754
-   * single-precision binary floating-point format (binary32).
-   *
-   * Throws [RangeError] if [byteOffset] is negative, or
-   * `byteOffset + 4` is greater than the length of this object.
-   */
-  double getFloat32(int byteOffset, [Endian endian = Endian.big]);
-
-  /**
-   * Sets the four bytes starting at the specified [byteOffset] in this
-   * object to the IEEE 754 single-precision binary floating-point
-   * (binary32) representation of the specified [value].
-   *
-   * **Note that this method can lose precision.** The input [value] is
-   * a 64-bit floating point value, which will be converted to 32-bit
-   * floating point value by IEEE 754 rounding rules before it is stored.
-   * If [value] cannot be represented exactly as a binary32, it will be
-   * converted to the nearest binary32 value.  If two binary32 values are
-   * equally close, the one whose least significant bit is zero will be used.
-   * Note that finite (but large) values can be converted to infinity, and
-   * small non-zero values can be converted to zero.
-   *
-   * Throws [RangeError] if [byteOffset] is negative, or
-   * `byteOffset + 4` is greater than the length of this object.
-   */
-  void setFloat32(int byteOffset, double value, [Endian endian = Endian.big]);
-
-  /**
-   * Returns the floating point number represented by the eight bytes at
-   * the specified [byteOffset] in this object, in IEEE 754
-   * double-precision binary floating-point format (binary64).
-   *
-   * Throws [RangeError] if [byteOffset] is negative, or
-   * `byteOffset + 8` is greater than the length of this object.
-   */
-  double getFloat64(int byteOffset, [Endian endian = Endian.big]);
-
-  /**
-   * Sets the eight bytes starting at the specified [byteOffset] in this
-   * object to the IEEE 754 double-precision binary floating-point
-   * (binary64) representation of the specified [value].
-   *
-   * Throws [RangeError] if [byteOffset] is negative, or
-   * `byteOffset + 8` is greater than the length of this object.
-   */
-  void setFloat64(int byteOffset, double value, [Endian endian = Endian.big]);
-}
-
-/**
- * A fixed-length list of 8-bit signed integers.
- *
- * For long lists, this implementation can be considerably
- * more space- and time-efficient than the default [List] implementation.
- *
- * Integers stored in the list are truncated to their low eight bits,
- * interpreted as a signed 8-bit two's complement integer with values in the
- * range -128 to +127.
- */
-abstract class Int8List implements List<int>, TypedData {
-  /**
-   * Creates an [Int8List] of the specified length (in elements), all of
-   * whose elements are initially zero.
-   */
-  external factory Int8List(int length);
-
-  /**
-   * Creates a [Int8List] with the same length as the [elements] list
-   * and copies over the elements.
-   *
-   * Values are truncated to fit in the list when they are copied,
-   * the same way storing values truncates them.
-   */
-  external factory Int8List.fromList(List<int> elements);
-
-  /**
-   * Creates an [Int8List] _view_ of the specified region in [buffer].
-   *
-   * Changes in the [Int8List] will be visible in the byte
-   * buffer and vice versa.
-   * If the [offsetInBytes] index of the region is not specified,
-   * it defaults to zero (the first byte in the byte buffer).
-   * If the length is not specified, it defaults to `null`,
-   * which indicates that the view extends to the end of the byte buffer.
-   *
-   * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
-   * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
-   * the length of [buffer].
-   */
-  factory Int8List.view(ByteBuffer buffer,
-      [int offsetInBytes = 0, int length]) {
-    return buffer.asInt8List(offsetInBytes, length);
-  }
-
-  /** Deprecated, use [bytesPerElement] instead. */
-  static const int BYTES_PER_ELEMENT = bytesPerElement;
-  static const int bytesPerElement = 1;
-}
-
-/**
- * A fixed-length list of 8-bit unsigned integers.
- *
- * For long lists, this implementation can be considerably
- * more space- and time-efficient than the default [List] implementation.
- *
- * Integers stored in the list are truncated to their low eight bits,
- * interpreted as an unsigned 8-bit integer with values in the
- * range 0 to 255.
- */
-abstract class Uint8List implements List<int>, TypedData {
-  /**
-   * Creates a [Uint8List] of the specified length (in elements), all of
-   * whose elements are initially zero.
-   */
-  external factory Uint8List(int length);
-
-  /**
-   * Creates a [Uint8List] with the same length as the [elements] list
-   * and copies over the elements.
-   *
-   * Values are truncated to fit in the list when they are copied,
-   * the same way storing values truncates them.
-   */
-  external factory Uint8List.fromList(List<int> elements);
-
-  /**
-   * Creates a [Uint8List] _view_ of the specified region in [buffer].
-   *
-   * Changes in the [Uint8List] will be visible in the byte
-   * buffer and vice versa.
-   * If the [offsetInBytes] index of the region is not specified,
-   * it defaults to zero (the first byte in the byte buffer).
-   * If the length is not specified, it defaults to `null`,
-   * which indicates that the view extends to the end of the byte buffer.
-   *
-   * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
-   * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
-   * the length of [buffer].
-   */
-  factory Uint8List.view(ByteBuffer buffer,
-      [int offsetInBytes = 0, int length]) {
-    return buffer.asUint8List(offsetInBytes, length);
-  }
-
-  /** Deprecated, use [bytesPerElement] instead. */
-  static const int BYTES_PER_ELEMENT = bytesPerElement;
-  static const int bytesPerElement = 1;
-}
-
-/**
- * A fixed-length list of 8-bit unsigned integers.
- *
- * For long lists, this implementation can be considerably
- * more space- and time-efficient than the default [List] implementation.
- *
- * Integers stored in the list are clamped to an unsigned eight bit value.
- * That is, all values below zero are stored as zero
- * and all values above 255 are stored as 255.
- */
-abstract class Uint8ClampedList implements List<int>, TypedData {
-  /**
-   * Creates a [Uint8ClampedList] of the specified length (in elements), all of
-   * whose elements are initially zero.
-   */
-  external factory Uint8ClampedList(int length);
-
-  /**
-   * Creates a [Uint8ClampedList] of the same size as the [elements]
-   * list and copies over the values clamping when needed.
-   *
-   * Values are clamped to fit in the list when they are copied,
-   * the same way storing values clamps them.
-   */
-  external factory Uint8ClampedList.fromList(List<int> elements);
-
-  /**
-   * Creates a [Uint8ClampedList] _view_ of the specified region in the
-   * specified byte [buffer].
-   *
-   * Changes in the [Uint8List] will be visible in the byte buffer
-   * and vice versa.
-   * If the [offsetInBytes] index of the region is not specified,
-   * it defaults to zero (the first byte in the byte buffer).
-   * If the length is not specified, it defaults to `null`,
-   * which indicates that the view extends to the end of the byte buffer.
-   *
-   * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
-   * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
-   * the length of [buffer].
-   */
-  factory Uint8ClampedList.view(ByteBuffer buffer,
-      [int offsetInBytes = 0, int length]) {
-    return buffer.asUint8ClampedList(offsetInBytes, length);
-  }
-
-  /** Deprecated, use [bytesPerElement] instead. */
-  static const int BYTES_PER_ELEMENT = bytesPerElement;
-  static const int bytesPerElement = 1;
-}
-
-/**
- * A fixed-length list of 16-bit signed integers that is viewable as a
- * [TypedData].
- *
- * For long lists, this implementation can be considerably
- * more space- and time-efficient than the default [List] implementation.
- *
- * Integers stored in the list are truncated to their low 16 bits,
- * interpreted as a signed 16-bit two's complement integer with values in the
- * range -32768 to +32767.
- */
-abstract class Int16List implements List<int>, TypedData {
-  /**
-   * Creates an [Int16List] of the specified length (in elements), all of
-   * whose elements are initially zero.
-   */
-  external factory Int16List(int length);
-
-  /**
-   * Creates a [Int16List] with the same length as the [elements] list
-   * and copies over the elements.
-   *
-   * Values are truncated to fit in the list when they are copied,
-   * the same way storing values truncates them.
-   */
-  external factory Int16List.fromList(List<int> elements);
-
-  /**
-   * Creates an [Int16List] _view_ of the specified region in [buffer].
-   *
-   * Changes in the [Int16List] will be visible in the byte
-   * buffer and vice versa.
-   * If the [offsetInBytes] index of the region is not specified,
-   * it defaults to zero (the first byte in the byte buffer).
-   * If the length is not specified, it defaults to `null`,
-   * which indicates that the view extends to the end of the byte buffer.
-   *
-   * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
-   * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
-   * the length of [buffer].
-   *
-   * Throws [ArgumentError] if [offsetInBytes] is not a multiple of
-   * [bytesPerElement].
-   */
-  factory Int16List.view(ByteBuffer buffer,
-      [int offsetInBytes = 0, int length]) {
-    return buffer.asInt16List(offsetInBytes, length);
-  }
-
-  /** Deprecated, use [bytesPerElement] instead. */
-  static const int BYTES_PER_ELEMENT = bytesPerElement;
-  static const int bytesPerElement = 2;
-}
-
-/**
- * A fixed-length list of 16-bit unsigned integers that is viewable as a
- * [TypedData].
- *
- * For long lists, this implementation can be considerably
- * more space- and time-efficient than the default [List] implementation.
- *
- * Integers stored in the list are truncated to their low 16 bits,
- * interpreted as an unsigned 16-bit integer with values in the
- * range 0 to 65536.
- */
-abstract class Uint16List implements List<int>, TypedData {
-  /**
-   * Creates a [Uint16List] of the specified length (in elements), all
-   * of whose elements are initially zero.
-   */
-  external factory Uint16List(int length);
-
-  /**
-   * Creates a [Uint16List] with the same length as the [elements] list
-   * and copies over the elements.
-   *
-   * Values are truncated to fit in the list when they are copied,
-   * the same way storing values truncates them.
-   */
-  external factory Uint16List.fromList(List<int> elements);
-
-  /**
-   * Creates a [Uint16List] _view_ of the specified region in
-   * the specified byte buffer.
-   *
-   * Changes in the [Uint16List] will be visible in the byte buffer
-   * and vice versa.
-   * If the [offsetInBytes] index of the region is not specified,
-   * it defaults to zero (the first byte in the byte buffer).
-   * If the length is not specified, it defaults to `null`,
-   * which indicates that the view extends to the end of the byte buffer.
-   *
-   * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
-   * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
-   * the length of [buffer].
-   *
-   * Throws [ArgumentError] if [offsetInBytes] is not a multiple of
-   * [bytesPerElement].
-   */
-  factory Uint16List.view(ByteBuffer buffer,
-      [int offsetInBytes = 0, int length]) {
-    return buffer.asUint16List(offsetInBytes, length);
-  }
-
-  /** Deprecated, use [bytesPerElement] instead. */
-  static const int BYTES_PER_ELEMENT = bytesPerElement;
-  static const int bytesPerElement = 2;
-}
-
-/**
- * A fixed-length list of 32-bit signed integers that is viewable as a
- * [TypedData].
- *
- * For long lists, this implementation can be considerably
- * more space- and time-efficient than the default [List] implementation.
- *
- * Integers stored in the list are truncated to their low 32 bits,
- * interpreted as a signed 32-bit two's complement integer with values in the
- * range -2147483648 to 2147483647.
- */
-abstract class Int32List implements List<int>, TypedData {
-  /**
-   * Creates an [Int32List] of the specified length (in elements), all of
-   * whose elements are initially zero.
-   */
-  external factory Int32List(int length);
-
-  /**
-   * Creates a [Int32List] with the same length as the [elements] list
-   * and copies over the elements.
-   *
-   * Values are truncated to fit in the list when they are copied,
-   * the same way storing values truncates them.
-   */
-  external factory Int32List.fromList(List<int> elements);
-
-  /**
-   * Creates an [Int32List] _view_ of the specified region in [buffer].
-   *
-   * Changes in the [Int32List] will be visible in the byte
-   * buffer and vice versa.
-   * If the [offsetInBytes] index of the region is not specified,
-   * it defaults to zero (the first byte in the byte buffer).
-   * If the length is not specified, it defaults to `null`,
-   * which indicates that the view extends to the end of the byte buffer.
-   *
-   * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
-   * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
-   * the length of [buffer].
-   *
-   * Throws [ArgumentError] if [offsetInBytes] is not a multiple of
-   * [bytesPerElement].
-   */
-  factory Int32List.view(ByteBuffer buffer,
-      [int offsetInBytes = 0, int length]) {
-    return buffer.asInt32List(offsetInBytes, length);
-  }
-
-  /** Deprecated, use [bytesPerElement] instead. */
-  static const int BYTES_PER_ELEMENT = bytesPerElement;
-  static const int bytesPerElement = 4;
-}
-
-/**
- * A fixed-length list of 32-bit unsigned integers that is viewable as a
- * [TypedData].
- *
- * For long lists, this implementation can be considerably
- * more space- and time-efficient than the default [List] implementation.
- *
- * Integers stored in the list are truncated to their low 32 bits,
- * interpreted as an unsigned 32-bit integer with values in the
- * range 0 to 4294967295.
- */
-abstract class Uint32List implements List<int>, TypedData {
-  /**
-   * Creates a [Uint32List] of the specified length (in elements), all
-   * of whose elements are initially zero.
-   */
-  external factory Uint32List(int length);
-
-  /**
-   * Creates a [Uint32List] with the same length as the [elements] list
-   * and copies over the elements.
-   *
-   * Values are truncated to fit in the list when they are copied,
-   * the same way storing values truncates them.
-   */
-  external factory Uint32List.fromList(List<int> elements);
-
-  /**
-   * Creates a [Uint32List] _view_ of the specified region in
-   * the specified byte buffer.
-   *
-   * Changes in the [Uint32List] will be visible in the byte buffer
-   * and vice versa.
-   * If the [offsetInBytes] index of the region is not specified,
-   * it defaults to zero (the first byte in the byte buffer).
-   * If the length is not specified, it defaults to `null`,
-   * which indicates that the view extends to the end of the byte buffer.
-   *
-   * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
-   * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
-   * the length of [buffer].
-   *
-   * Throws [ArgumentError] if [offsetInBytes] is not a multiple of
-   * [bytesPerElement].
-   */
-  factory Uint32List.view(ByteBuffer buffer,
-      [int offsetInBytes = 0, int length]) {
-    return buffer.asUint32List(offsetInBytes, length);
-  }
-
-  /** Deprecated, use [bytesPerElement] instead. */
-  static const int BYTES_PER_ELEMENT = bytesPerElement;
-  static const int bytesPerElement = 4;
-}
-
-/**
- * A fixed-length list of 64-bit signed integers that is viewable as a
- * [TypedData].
- *
- * For long lists, this implementation can be considerably
- * more space- and time-efficient than the default [List] implementation.
- *
- * Integers stored in the list are truncated to their low 64 bits,
- * interpreted as a signed 64-bit two's complement integer with values in the
- * range -9223372036854775808 to +9223372036854775807.
- */
-abstract class Int64List implements List<int>, TypedData {
-  /**
-   * Creates an [Int64List] of the specified length (in elements), all of
-   * whose elements are initially zero.
-   */
-  external factory Int64List(int length);
-
-  /**
-   * Creates a [Int64List] with the same length as the [elements] list
-   * and copies over the elements.
-   *
-   * Values are truncated to fit in the list when they are copied,
-   * the same way storing values truncates them.
-   */
-  external factory Int64List.fromList(List<int> elements);
-
-  /**
-   * Creates an [Int64List] _view_ of the specified region in [buffer].
-   *
-   * Changes in the [Int64List] will be visible in the byte buffer
-   * and vice versa.
-   * If the [offsetInBytes] index of the region is not specified,
-   * it defaults to zero (the first byte in the byte buffer).
-   * If the length is not specified, it defaults to `null`,
-   * which indicates that the view extends to the end of the byte buffer.
-   *
-   * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
-   * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
-   * the length of [buffer].
-   *
-   * Throws [ArgumentError] if [offsetInBytes] is not a multiple of
-   * [bytesPerElement].
-   */
-  factory Int64List.view(ByteBuffer buffer,
-      [int offsetInBytes = 0, int length]) {
-    return buffer.asInt64List(offsetInBytes, length);
-  }
-
-  /** Deprecated, use [bytesPerElement] instead. */
-  static const int BYTES_PER_ELEMENT = bytesPerElement;
-  static const int bytesPerElement = 8;
-}
-
-/**
- * A fixed-length list of 64-bit unsigned integers that is viewable as a
- * [TypedData].
- *
- * For long lists, this implementation can be considerably
- * more space- and time-efficient than the default [List] implementation.
- *
- * Integers stored in the list are truncated to their low 64 bits,
- * interpreted as an unsigned 64-bit integer with values in the
- * range 0 to 18446744073709551616.
- */
-abstract class Uint64List implements List<int>, TypedData {
-  /**
-   * Creates a [Uint64List] of the specified length (in elements), all
-   * of whose elements are initially zero.
-   */
-  external factory Uint64List(int length);
-
-  /**
-   * Creates a [Uint64List] with the same length as the [elements] list
-   * and copies over the elements.
-   *
-   * Values are truncated to fit in the list when they are copied,
-   * the same way storing values truncates them.
-   */
-  external factory Uint64List.fromList(List<int> elements);
-
-  /**
-   * Creates an [Uint64List] _view_ of the specified region in
-   * the specified byte buffer.
-   *
-   * Changes in the [Uint64List] will be visible in the byte buffer
-   * and vice versa.
-   * If the [offsetInBytes] index of the region is not specified,
-   * it defaults to zero (the first byte in the byte buffer).
-   * If the length is not specified, it defaults to `null`,
-   * which indicates that the view extends to the end of the byte buffer.
-   *
-   * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
-   * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
-   * the length of [buffer].
-   *
-   * Throws [ArgumentError] if [offsetInBytes] is not a multiple of
-   * [bytesPerElement].
-   */
-  factory Uint64List.view(ByteBuffer buffer,
-      [int offsetInBytes = 0, int length]) {
-    return buffer.asUint64List(offsetInBytes, length);
-  }
-
-  /** Deprecated, use [bytesPerElement] instead. */
-  static const int BYTES_PER_ELEMENT = bytesPerElement;
-  static const int bytesPerElement = 8;
-}
-
-/**
- * A fixed-length list of IEEE 754 single-precision binary floating-point
- * numbers that is viewable as a [TypedData].
- *
- * For long lists, this
- * implementation can be considerably more space- and time-efficient than
- * the default [List] implementation.
- *
- * Double values stored in the list are converted to the nearest
- * single-precision value. Values read are converted to a double
- * value with the same value.
- */
-abstract class Float32List implements List<double>, TypedData {
-  /**
-   * Creates a [Float32List] of the specified length (in elements), all of
-   * whose elements are initially zero.
-   */
-  external factory Float32List(int length);
-
-  /**
-   * Creates a [Float32List] with the same length as the [elements] list
-   * and copies over the elements.
-   *
-   * Values are truncated to fit in the list when they are copied,
-   * the same way storing values truncates them.
-   */
-  external factory Float32List.fromList(List<double> elements);
-
-  /**
-   * Creates a [Float32List] _view_ of the specified region in [buffer].
-   *
-   * Changes in the [Float32List] will be visible in the byte
-   * buffer and vice versa.
-   * If the [offsetInBytes] index of the region is not specified,
-   * it defaults to zero (the first byte in the byte buffer).
-   * If the length is not specified, it defaults to `null`,
-   * which indicates that the view extends to the end of the byte buffer.
-   *
-   * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
-   * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
-   * the length of [buffer].
-   *
-   * Throws [ArgumentError] if [offsetInBytes] is not a multiple of
-   * [bytesPerElement].
-   */
-  factory Float32List.view(ByteBuffer buffer,
-      [int offsetInBytes = 0, int length]) {
-    return buffer.asFloat32List(offsetInBytes, length);
-  }
-
-  /** Deprecated, use [bytesPerElement] instead. */
-  static const int BYTES_PER_ELEMENT = bytesPerElement;
-  static const int bytesPerElement = 4;
-}
-
-/**
- * A fixed-length list of IEEE 754 double-precision binary floating-point
- * numbers  that is viewable as a [TypedData].
- *
- * For long lists, this
- * implementation can be considerably more space- and time-efficient than
- * the default [List] implementation.
- */
-abstract class Float64List implements List<double>, TypedData {
-  /**
-   * Creates a [Float64List] of the specified length (in elements), all of
-   * whose elements are initially zero.
-   */
-  external factory Float64List(int length);
-
-  /**
-   * Creates a [Float64List] with the same length as the [elements] list
-   * and copies over the elements.
-   */
-  external factory Float64List.fromList(List<double> elements);
-
-  /**
-   * Creates a [Float64List] _view_ of the specified region in [buffer].
-   *
-   * Changes in the [Float64List] will be visible in the byte
-   * buffer and vice versa.
-   * If the [offsetInBytes] index of the region is not specified,
-   * it defaults to zero (the first byte in the byte buffer).
-   * If the length is not specified, it defaults to `null`,
-   * which indicates that the view extends to the end of the byte buffer.
-   *
-   * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
-   * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
-   * the length of [buffer].
-   *
-   * Throws [ArgumentError] if [offsetInBytes] is not a multiple of
-   * [bytesPerElement].
-   */
-  factory Float64List.view(ByteBuffer buffer,
-      [int offsetInBytes = 0, int length]) {
-    return buffer.asFloat64List(offsetInBytes, length);
-  }
-
-  /** Deprecated, use [bytesPerElement] instead. */
-  static const int BYTES_PER_ELEMENT = bytesPerElement;
-  static const int bytesPerElement = 8;
-}
-
-/**
- * A fixed-length list of Float32x4 numbers that is viewable as a
- * [TypedData].
- *
- * For long lists, this implementation will be considerably more
- * space- and time-efficient than the default [List] implementation.
- */
-abstract class Float32x4List implements List<Float32x4>, TypedData {
-  /**
-   * Creates a [Float32x4List] of the specified length (in elements),
-   * all of whose elements are initially zero.
-   */
-  external factory Float32x4List(int length);
-
-  /**
-   * Creates a [Float32x4List] with the same length as the [elements] list
-   * and copies over the elements.
-   */
-  external factory Float32x4List.fromList(List<Float32x4> elements);
-
-  /**
-   * Creates a [Float32x4List] _view_ of the specified region in [buffer].
-   *
-   * Changes in the [Float32x4List] will be visible in the byte
-   * buffer and vice versa.
-   * If the [offsetInBytes] index of the region is not specified,
-   * it defaults to zero (the first byte in the byte buffer).
-   * If the length is not specified, it defaults to `null`,
-   * which indicates that the view extends to the end of the byte buffer.
-   *
-   * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
-   * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
-   * the length of [buffer].
-   *
-   * Throws [ArgumentError] if [offsetInBytes] is not a multiple of
-   * [bytesPerElement].
-   */
-  factory Float32x4List.view(ByteBuffer buffer,
-      [int offsetInBytes = 0, int length]) {
-    return buffer.asFloat32x4List(offsetInBytes, length);
-  }
-
-  /** Deprecated, use [bytesPerElement] instead. */
-  static const int BYTES_PER_ELEMENT = bytesPerElement;
-  static const int bytesPerElement = 16;
-}
-
-/**
- * A fixed-length list of Int32x4 numbers that is viewable as a
- * [TypedData].
- *
- * For long lists, this implementation will be considerably more
- * space- and time-efficient than the default [List] implementation.
- */
-abstract class Int32x4List implements List<Int32x4>, TypedData {
-  /**
-   * Creates a [Int32x4List] of the specified length (in elements),
-   * all of whose elements are initially zero.
-   */
-  external factory Int32x4List(int length);
-
-  /**
-   * Creates a [Int32x4List] with the same length as the [elements] list
-   * and copies over the elements.
-   */
-  external factory Int32x4List.fromList(List<Int32x4> elements);
-
-  /**
-   * Creates a [Int32x4List] _view_ of the specified region in [buffer].
-   *
-   * Changes in the [Int32x4List] will be visible in the byte
-   * buffer and vice versa.
-   * If the [offsetInBytes] index of the region is not specified,
-   * it defaults to zero (the first byte in the byte buffer).
-   * If the length is not specified, it defaults to `null`,
-   * which indicates that the view extends to the end of the byte buffer.
-   *
-   * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
-   * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
-   * the length of [buffer].
-   *
-   * Throws [ArgumentError] if [offsetInBytes] is not a multiple of
-   * [bytesPerElement].
-   */
-  factory Int32x4List.view(ByteBuffer buffer,
-      [int offsetInBytes = 0, int length]) {
-    return buffer.asInt32x4List(offsetInBytes, length);
-  }
-
-  /** Deprecated, use [bytesPerElement] instead. */
-  static const int BYTES_PER_ELEMENT = bytesPerElement;
-  static const int bytesPerElement = 16;
-}
-
-/**
- * A fixed-length list of Float64x2 numbers that is viewable as a
- * [TypedData].
- *
- * For long lists, this implementation will be considerably more
- * space- and time-efficient than the default [List] implementation.
- */
-abstract class Float64x2List implements List<Float64x2>, TypedData {
-  /**
-   * Creates a [Float64x2List] of the specified length (in elements),
-   * all of whose elements have all lanes set to zero.
-   */
-  external factory Float64x2List(int length);
-
-  /**
-   * Creates a [Float64x2List] with the same length as the [elements] list
-   * and copies over the elements.
-   */
-  external factory Float64x2List.fromList(List<Float64x2> elements);
-
-  /**
-   * Creates a [Float64x2List] _view_ of the specified region in [buffer].
-   *
-   * Changes in the [Float64x2List] will be visible in the byte
-   * buffer and vice versa.
-   * If the [offsetInBytes] index of the region is not specified,
-   * it defaults to zero (the first byte in the byte buffer).
-   * If the length is not specified, it defaults to `null`,
-   * which indicates that the view extends to the end of the byte buffer.
-   *
-   * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
-   * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
-   * the length of [buffer].
-   *
-   * Throws [ArgumentError] if [offsetInBytes] is not a multiple of
-   * [bytesPerElement].
-   */
-  factory Float64x2List.view(ByteBuffer buffer,
-      [int offsetInBytes = 0, int length]) {
-    return buffer.asFloat64x2List(offsetInBytes, length);
-  }
-
-  /** Deprecated, use [bytesPerElement] instead. */
-  static const int BYTES_PER_ELEMENT = bytesPerElement;
-  static const int bytesPerElement = 16;
-}
-
-/**
- * Float32x4 immutable value type and operations.
- *
- * Float32x4 stores 4 32-bit floating point values in "lanes".
- * The lanes are "x", "y", "z", and "w" respectively.
- */
-abstract class Float32x4 {
-  external factory Float32x4(double x, double y, double z, double w);
-  external factory Float32x4.splat(double v);
-  external factory Float32x4.zero();
-  external factory Float32x4.fromInt32x4Bits(Int32x4 x);
-
-  /// Sets the x and y lanes to their respective values in [v] and sets the z
-  /// and w lanes to 0.0.
-  external factory Float32x4.fromFloat64x2(Float64x2 v);
-
-  /// Addition operator.
-  Float32x4 operator +(Float32x4 other);
-
-  /// Negate operator.
-  Float32x4 operator -();
-
-  /// Subtraction operator.
-  Float32x4 operator -(Float32x4 other);
-
-  /// Multiplication operator.
-  Float32x4 operator *(Float32x4 other);
-
-  /// Division operator.
-  Float32x4 operator /(Float32x4 other);
-
-  /// Relational less than.
-  Int32x4 lessThan(Float32x4 other);
-
-  /// Relational less than or equal.
-  Int32x4 lessThanOrEqual(Float32x4 other);
-
-  /// Relational greater than.
-  Int32x4 greaterThan(Float32x4 other);
-
-  /// Relational greater than or equal.
-  Int32x4 greaterThanOrEqual(Float32x4 other);
-
-  /// Relational equal.
-  Int32x4 equal(Float32x4 other);
-
-  /// Relational not-equal.
-  Int32x4 notEqual(Float32x4 other);
-
-  /// Returns a copy of [this] each lane being scaled by [s].
-  /// Equivalent to this * new Float32x4.splat(s)
-  Float32x4 scale(double s);
-
-  /// Returns the lane-wise absolute value of this [Float32x4].
-  Float32x4 abs();
-
-  /// Lane-wise clamp [this] to be in the range [lowerLimit]-[upperLimit].
-  Float32x4 clamp(Float32x4 lowerLimit, Float32x4 upperLimit);
-
-  /// Extracted x value.
-  double get x;
-
-  /// Extracted y value.
-  double get y;
-
-  /// Extracted z value.
-  double get z;
-
-  /// Extracted w value.
-  double get w;
-
-  /// Extract the sign bits from each lane return them in the first 4 bits.
-  /// "x" lane is bit 0.
-  /// "y" lane is bit 1.
-  /// "z" lane is bit 2.
-  /// "w" lane is bit 3.
-  int get signMask;
-
-  /// Mask passed to [shuffle] or [shuffleMix].
-  static const int xxxx = 0x0;
-  static const int xxxy = 0x40;
-  static const int xxxz = 0x80;
-  static const int xxxw = 0xC0;
-  static const int xxyx = 0x10;
-  static const int xxyy = 0x50;
-  static const int xxyz = 0x90;
-  static const int xxyw = 0xD0;
-  static const int xxzx = 0x20;
-  static const int xxzy = 0x60;
-  static const int xxzz = 0xA0;
-  static const int xxzw = 0xE0;
-  static const int xxwx = 0x30;
-  static const int xxwy = 0x70;
-  static const int xxwz = 0xB0;
-  static const int xxww = 0xF0;
-  static const int xyxx = 0x4;
-  static const int xyxy = 0x44;
-  static const int xyxz = 0x84;
-  static const int xyxw = 0xC4;
-  static const int xyyx = 0x14;
-  static const int xyyy = 0x54;
-  static const int xyyz = 0x94;
-  static const int xyyw = 0xD4;
-  static const int xyzx = 0x24;
-  static const int xyzy = 0x64;
-  static const int xyzz = 0xA4;
-  static const int xyzw = 0xE4;
-  static const int xywx = 0x34;
-  static const int xywy = 0x74;
-  static const int xywz = 0xB4;
-  static const int xyww = 0xF4;
-  static const int xzxx = 0x8;
-  static const int xzxy = 0x48;
-  static const int xzxz = 0x88;
-  static const int xzxw = 0xC8;
-  static const int xzyx = 0x18;
-  static const int xzyy = 0x58;
-  static const int xzyz = 0x98;
-  static const int xzyw = 0xD8;
-  static const int xzzx = 0x28;
-  static const int xzzy = 0x68;
-  static const int xzzz = 0xA8;
-  static const int xzzw = 0xE8;
-  static const int xzwx = 0x38;
-  static const int xzwy = 0x78;
-  static const int xzwz = 0xB8;
-  static const int xzww = 0xF8;
-  static const int xwxx = 0xC;
-  static const int xwxy = 0x4C;
-  static const int xwxz = 0x8C;
-  static const int xwxw = 0xCC;
-  static const int xwyx = 0x1C;
-  static const int xwyy = 0x5C;
-  static const int xwyz = 0x9C;
-  static const int xwyw = 0xDC;
-  static const int xwzx = 0x2C;
-  static const int xwzy = 0x6C;
-  static const int xwzz = 0xAC;
-  static const int xwzw = 0xEC;
-  static const int xwwx = 0x3C;
-  static const int xwwy = 0x7C;
-  static const int xwwz = 0xBC;
-  static const int xwww = 0xFC;
-  static const int yxxx = 0x1;
-  static const int yxxy = 0x41;
-  static const int yxxz = 0x81;
-  static const int yxxw = 0xC1;
-  static const int yxyx = 0x11;
-  static const int yxyy = 0x51;
-  static const int yxyz = 0x91;
-  static const int yxyw = 0xD1;
-  static const int yxzx = 0x21;
-  static const int yxzy = 0x61;
-  static const int yxzz = 0xA1;
-  static const int yxzw = 0xE1;
-  static const int yxwx = 0x31;
-  static const int yxwy = 0x71;
-  static const int yxwz = 0xB1;
-  static const int yxww = 0xF1;
-  static const int yyxx = 0x5;
-  static const int yyxy = 0x45;
-  static const int yyxz = 0x85;
-  static const int yyxw = 0xC5;
-  static const int yyyx = 0x15;
-  static const int yyyy = 0x55;
-  static const int yyyz = 0x95;
-  static const int yyyw = 0xD5;
-  static const int yyzx = 0x25;
-  static const int yyzy = 0x65;
-  static const int yyzz = 0xA5;
-  static const int yyzw = 0xE5;
-  static const int yywx = 0x35;
-  static const int yywy = 0x75;
-  static const int yywz = 0xB5;
-  static const int yyww = 0xF5;
-  static const int yzxx = 0x9;
-  static const int yzxy = 0x49;
-  static const int yzxz = 0x89;
-  static const int yzxw = 0xC9;
-  static const int yzyx = 0x19;
-  static const int yzyy = 0x59;
-  static const int yzyz = 0x99;
-  static const int yzyw = 0xD9;
-  static const int yzzx = 0x29;
-  static const int yzzy = 0x69;
-  static const int yzzz = 0xA9;
-  static const int yzzw = 0xE9;
-  static const int yzwx = 0x39;
-  static const int yzwy = 0x79;
-  static const int yzwz = 0xB9;
-  static const int yzww = 0xF9;
-  static const int ywxx = 0xD;
-  static const int ywxy = 0x4D;
-  static const int ywxz = 0x8D;
-  static const int ywxw = 0xCD;
-  static const int ywyx = 0x1D;
-  static const int ywyy = 0x5D;
-  static const int ywyz = 0x9D;
-  static const int ywyw = 0xDD;
-  static const int ywzx = 0x2D;
-  static const int ywzy = 0x6D;
-  static const int ywzz = 0xAD;
-  static const int ywzw = 0xED;
-  static const int ywwx = 0x3D;
-  static const int ywwy = 0x7D;
-  static const int ywwz = 0xBD;
-  static const int ywww = 0xFD;
-  static const int zxxx = 0x2;
-  static const int zxxy = 0x42;
-  static const int zxxz = 0x82;
-  static const int zxxw = 0xC2;
-  static const int zxyx = 0x12;
-  static const int zxyy = 0x52;
-  static const int zxyz = 0x92;
-  static const int zxyw = 0xD2;
-  static const int zxzx = 0x22;
-  static const int zxzy = 0x62;
-  static const int zxzz = 0xA2;
-  static const int zxzw = 0xE2;
-  static const int zxwx = 0x32;
-  static const int zxwy = 0x72;
-  static const int zxwz = 0xB2;
-  static const int zxww = 0xF2;
-  static const int zyxx = 0x6;
-  static const int zyxy = 0x46;
-  static const int zyxz = 0x86;
-  static const int zyxw = 0xC6;
-  static const int zyyx = 0x16;
-  static const int zyyy = 0x56;
-  static const int zyyz = 0x96;
-  static const int zyyw = 0xD6;
-  static const int zyzx = 0x26;
-  static const int zyzy = 0x66;
-  static const int zyzz = 0xA6;
-  static const int zyzw = 0xE6;
-  static const int zywx = 0x36;
-  static const int zywy = 0x76;
-  static const int zywz = 0xB6;
-  static const int zyww = 0xF6;
-  static const int zzxx = 0xA;
-  static const int zzxy = 0x4A;
-  static const int zzxz = 0x8A;
-  static const int zzxw = 0xCA;
-  static const int zzyx = 0x1A;
-  static const int zzyy = 0x5A;
-  static const int zzyz = 0x9A;
-  static const int zzyw = 0xDA;
-  static const int zzzx = 0x2A;
-  static const int zzzy = 0x6A;
-  static const int zzzz = 0xAA;
-  static const int zzzw = 0xEA;
-  static const int zzwx = 0x3A;
-  static const int zzwy = 0x7A;
-  static const int zzwz = 0xBA;
-  static const int zzww = 0xFA;
-  static const int zwxx = 0xE;
-  static const int zwxy = 0x4E;
-  static const int zwxz = 0x8E;
-  static const int zwxw = 0xCE;
-  static const int zwyx = 0x1E;
-  static const int zwyy = 0x5E;
-  static const int zwyz = 0x9E;
-  static const int zwyw = 0xDE;
-  static const int zwzx = 0x2E;
-  static const int zwzy = 0x6E;
-  static const int zwzz = 0xAE;
-  static const int zwzw = 0xEE;
-  static const int zwwx = 0x3E;
-  static const int zwwy = 0x7E;
-  static const int zwwz = 0xBE;
-  static const int zwww = 0xFE;
-  static const int wxxx = 0x3;
-  static const int wxxy = 0x43;
-  static const int wxxz = 0x83;
-  static const int wxxw = 0xC3;
-  static const int wxyx = 0x13;
-  static const int wxyy = 0x53;
-  static const int wxyz = 0x93;
-  static const int wxyw = 0xD3;
-  static const int wxzx = 0x23;
-  static const int wxzy = 0x63;
-  static const int wxzz = 0xA3;
-  static const int wxzw = 0xE3;
-  static const int wxwx = 0x33;
-  static const int wxwy = 0x73;
-  static const int wxwz = 0xB3;
-  static const int wxww = 0xF3;
-  static const int wyxx = 0x7;
-  static const int wyxy = 0x47;
-  static const int wyxz = 0x87;
-  static const int wyxw = 0xC7;
-  static const int wyyx = 0x17;
-  static const int wyyy = 0x57;
-  static const int wyyz = 0x97;
-  static const int wyyw = 0xD7;
-  static const int wyzx = 0x27;
-  static const int wyzy = 0x67;
-  static const int wyzz = 0xA7;
-  static const int wyzw = 0xE7;
-  static const int wywx = 0x37;
-  static const int wywy = 0x77;
-  static const int wywz = 0xB7;
-  static const int wyww = 0xF7;
-  static const int wzxx = 0xB;
-  static const int wzxy = 0x4B;
-  static const int wzxz = 0x8B;
-  static const int wzxw = 0xCB;
-  static const int wzyx = 0x1B;
-  static const int wzyy = 0x5B;
-  static const int wzyz = 0x9B;
-  static const int wzyw = 0xDB;
-  static const int wzzx = 0x2B;
-  static const int wzzy = 0x6B;
-  static const int wzzz = 0xAB;
-  static const int wzzw = 0xEB;
-  static const int wzwx = 0x3B;
-  static const int wzwy = 0x7B;
-  static const int wzwz = 0xBB;
-  static const int wzww = 0xFB;
-  static const int wwxx = 0xF;
-  static const int wwxy = 0x4F;
-  static const int wwxz = 0x8F;
-  static const int wwxw = 0xCF;
-  static const int wwyx = 0x1F;
-  static const int wwyy = 0x5F;
-  static const int wwyz = 0x9F;
-  static const int wwyw = 0xDF;
-  static const int wwzx = 0x2F;
-  static const int wwzy = 0x6F;
-  static const int wwzz = 0xAF;
-  static const int wwzw = 0xEF;
-  static const int wwwx = 0x3F;
-  static const int wwwy = 0x7F;
-  static const int wwwz = 0xBF;
-  static const int wwww = 0xFF;
-  /** Deprecated, use [xxxx] instead. */
-  static const int XXXX = xxxx;
-  /** Deprecated, use [xxxy] instead. */
-  static const int XXXY = xxxy;
-  /** Deprecated, use [xxxz] instead. */
-  static const int XXXZ = xxxz;
-  /** Deprecated, use [xxxw] instead. */
-  static const int XXXW = xxxw;
-  /** Deprecated, use [xxyx] instead. */
-  static const int XXYX = xxyx;
-  /** Deprecated, use [xxyy] instead. */
-  static const int XXYY = xxyy;
-  /** Deprecated, use [xxyz] instead. */
-  static const int XXYZ = xxyz;
-  /** Deprecated, use [xxyw] instead. */
-  static const int XXYW = xxyw;
-  /** Deprecated, use [xxzx] instead. */
-  static const int XXZX = xxzx;
-  /** Deprecated, use [xxzy] instead. */
-  static const int XXZY = xxzy;
-  /** Deprecated, use [xxzz] instead. */
-  static const int XXZZ = xxzz;
-  /** Deprecated, use [xxzw] instead. */
-  static const int XXZW = xxzw;
-  /** Deprecated, use [xxwx] instead. */
-  static const int XXWX = xxwx;
-  /** Deprecated, use [xxwy] instead. */
-  static const int XXWY = xxwy;
-  /** Deprecated, use [xxwz] instead. */
-  static const int XXWZ = xxwz;
-  /** Deprecated, use [xxww] instead. */
-  static const int XXWW = xxww;
-  /** Deprecated, use [xyxx] instead. */
-  static const int XYXX = xyxx;
-  /** Deprecated, use [xyxy] instead. */
-  static const int XYXY = xyxy;
-  /** Deprecated, use [xyxz] instead. */
-  static const int XYXZ = xyxz;
-  /** Deprecated, use [xyxw] instead. */
-  static const int XYXW = xyxw;
-  /** Deprecated, use [xyyx] instead. */
-  static const int XYYX = xyyx;
-  /** Deprecated, use [xyyy] instead. */
-  static const int XYYY = xyyy;
-  /** Deprecated, use [xyyz] instead. */
-  static const int XYYZ = xyyz;
-  /** Deprecated, use [xyyw] instead. */
-  static const int XYYW = xyyw;
-  /** Deprecated, use [xyzx] instead. */
-  static const int XYZX = xyzx;
-  /** Deprecated, use [xyzy] instead. */
-  static const int XYZY = xyzy;
-  /** Deprecated, use [xyzz] instead. */
-  static const int XYZZ = xyzz;
-  /** Deprecated, use [xyzw] instead. */
-  static const int XYZW = xyzw;
-  /** Deprecated, use [xywx] instead. */
-  static const int XYWX = xywx;
-  /** Deprecated, use [xywy] instead. */
-  static const int XYWY = xywy;
-  /** Deprecated, use [xywz] instead. */
-  static const int XYWZ = xywz;
-  /** Deprecated, use [xyww] instead. */
-  static const int XYWW = xyww;
-  /** Deprecated, use [xzxx] instead. */
-  static const int XZXX = xzxx;
-  /** Deprecated, use [xzxy] instead. */
-  static const int XZXY = xzxy;
-  /** Deprecated, use [xzxz] instead. */
-  static const int XZXZ = xzxz;
-  /** Deprecated, use [xzxw] instead. */
-  static const int XZXW = xzxw;
-  /** Deprecated, use [xzyx] instead. */
-  static const int XZYX = xzyx;
-  /** Deprecated, use [xzyy] instead. */
-  static const int XZYY = xzyy;
-  /** Deprecated, use [xzyz] instead. */
-  static const int XZYZ = xzyz;
-  /** Deprecated, use [xzyw] instead. */
-  static const int XZYW = xzyw;
-  /** Deprecated, use [xzzx] instead. */
-  static const int XZZX = xzzx;
-  /** Deprecated, use [xzzy] instead. */
-  static const int XZZY = xzzy;
-  /** Deprecated, use [xzzz] instead. */
-  static const int XZZZ = xzzz;
-  /** Deprecated, use [xzzw] instead. */
-  static const int XZZW = xzzw;
-  /** Deprecated, use [xzwx] instead. */
-  static const int XZWX = xzwx;
-  /** Deprecated, use [xzwy] instead. */
-  static const int XZWY = xzwy;
-  /** Deprecated, use [xzwz] instead. */
-  static const int XZWZ = xzwz;
-  /** Deprecated, use [xzww] instead. */
-  static const int XZWW = xzww;
-  /** Deprecated, use [xwxx] instead. */
-  static const int XWXX = xwxx;
-  /** Deprecated, use [xwxy] instead. */
-  static const int XWXY = xwxy;
-  /** Deprecated, use [xwxz] instead. */
-  static const int XWXZ = xwxz;
-  /** Deprecated, use [xwxw] instead. */
-  static const int XWXW = xwxw;
-  /** Deprecated, use [xwyx] instead. */
-  static const int XWYX = xwyx;
-  /** Deprecated, use [xwyy] instead. */
-  static const int XWYY = xwyy;
-  /** Deprecated, use [xwyz] instead. */
-  static const int XWYZ = xwyz;
-  /** Deprecated, use [xwyw] instead. */
-  static const int XWYW = xwyw;
-  /** Deprecated, use [xwzx] instead. */
-  static const int XWZX = xwzx;
-  /** Deprecated, use [xwzy] instead. */
-  static const int XWZY = xwzy;
-  /** Deprecated, use [xwzz] instead. */
-  static const int XWZZ = xwzz;
-  /** Deprecated, use [xwzw] instead. */
-  static const int XWZW = xwzw;
-  /** Deprecated, use [xwwx] instead. */
-  static const int XWWX = xwwx;
-  /** Deprecated, use [xwwy] instead. */
-  static const int XWWY = xwwy;
-  /** Deprecated, use [xwwz] instead. */
-  static const int XWWZ = xwwz;
-  /** Deprecated, use [xwww] instead. */
-  static const int XWWW = xwww;
-  /** Deprecated, use [yxxx] instead. */
-  static const int YXXX = yxxx;
-  /** Deprecated, use [yxxy] instead. */
-  static const int YXXY = yxxy;
-  /** Deprecated, use [yxxz] instead. */
-  static const int YXXZ = yxxz;
-  /** Deprecated, use [yxxw] instead. */
-  static const int YXXW = yxxw;
-  /** Deprecated, use [yxyx] instead. */
-  static const int YXYX = yxyx;
-  /** Deprecated, use [yxyy] instead. */
-  static const int YXYY = yxyy;
-  /** Deprecated, use [yxyz] instead. */
-  static const int YXYZ = yxyz;
-  /** Deprecated, use [yxyw] instead. */
-  static const int YXYW = yxyw;
-  /** Deprecated, use [yxzx] instead. */
-  static const int YXZX = yxzx;
-  /** Deprecated, use [yxzy] instead. */
-  static const int YXZY = yxzy;
-  /** Deprecated, use [yxzz] instead. */
-  static const int YXZZ = yxzz;
-  /** Deprecated, use [yxzw] instead. */
-  static const int YXZW = yxzw;
-  /** Deprecated, use [yxwx] instead. */
-  static const int YXWX = yxwx;
-  /** Deprecated, use [yxwy] instead. */
-  static const int YXWY = yxwy;
-  /** Deprecated, use [yxwz] instead. */
-  static const int YXWZ = yxwz;
-  /** Deprecated, use [yxww] instead. */
-  static const int YXWW = yxww;
-  /** Deprecated, use [yyxx] instead. */
-  static const int YYXX = yyxx;
-  /** Deprecated, use [yyxy] instead. */
-  static const int YYXY = yyxy;
-  /** Deprecated, use [yyxz] instead. */
-  static const int YYXZ = yyxz;
-  /** Deprecated, use [yyxw] instead. */
-  static const int YYXW = yyxw;
-  /** Deprecated, use [yyyx] instead. */
-  static const int YYYX = yyyx;
-  /** Deprecated, use [yyyy] instead. */
-  static const int YYYY = yyyy;
-  /** Deprecated, use [yyyz] instead. */
-  static const int YYYZ = yyyz;
-  /** Deprecated, use [yyyw] instead. */
-  static const int YYYW = yyyw;
-  /** Deprecated, use [yyzx] instead. */
-  static const int YYZX = yyzx;
-  /** Deprecated, use [yyzy] instead. */
-  static const int YYZY = yyzy;
-  /** Deprecated, use [yyzz] instead. */
-  static const int YYZZ = yyzz;
-  /** Deprecated, use [yyzw] instead. */
-  static const int YYZW = yyzw;
-  /** Deprecated, use [yywx] instead. */
-  static const int YYWX = yywx;
-  /** Deprecated, use [yywy] instead. */
-  static const int YYWY = yywy;
-  /** Deprecated, use [yywz] instead. */
-  static const int YYWZ = yywz;
-  /** Deprecated, use [yyww] instead. */
-  static const int YYWW = yyww;
-  /** Deprecated, use [yzxx] instead. */
-  static const int YZXX = yzxx;
-  /** Deprecated, use [yzxy] instead. */
-  static const int YZXY = yzxy;
-  /** Deprecated, use [yzxz] instead. */
-  static const int YZXZ = yzxz;
-  /** Deprecated, use [yzxw] instead. */
-  static const int YZXW = yzxw;
-  /** Deprecated, use [yzyx] instead. */
-  static const int YZYX = yzyx;
-  /** Deprecated, use [yzyy] instead. */
-  static const int YZYY = yzyy;
-  /** Deprecated, use [yzyz] instead. */
-  static const int YZYZ = yzyz;
-  /** Deprecated, use [yzyw] instead. */
-  static const int YZYW = yzyw;
-  /** Deprecated, use [yzzx] instead. */
-  static const int YZZX = yzzx;
-  /** Deprecated, use [yzzy] instead. */
-  static const int YZZY = yzzy;
-  /** Deprecated, use [yzzz] instead. */
-  static const int YZZZ = yzzz;
-  /** Deprecated, use [yzzw] instead. */
-  static const int YZZW = yzzw;
-  /** Deprecated, use [yzwx] instead. */
-  static const int YZWX = yzwx;
-  /** Deprecated, use [yzwy] instead. */
-  static const int YZWY = yzwy;
-  /** Deprecated, use [yzwz] instead. */
-  static const int YZWZ = yzwz;
-  /** Deprecated, use [yzww] instead. */
-  static const int YZWW = yzww;
-  /** Deprecated, use [ywxx] instead. */
-  static const int YWXX = ywxx;
-  /** Deprecated, use [ywxy] instead. */
-  static const int YWXY = ywxy;
-  /** Deprecated, use [ywxz] instead. */
-  static const int YWXZ = ywxz;
-  /** Deprecated, use [ywxw] instead. */
-  static const int YWXW = ywxw;
-  /** Deprecated, use [ywyx] instead. */
-  static const int YWYX = ywyx;
-  /** Deprecated, use [ywyy] instead. */
-  static const int YWYY = ywyy;
-  /** Deprecated, use [ywyz] instead. */
-  static const int YWYZ = ywyz;
-  /** Deprecated, use [ywyw] instead. */
-  static const int YWYW = ywyw;
-  /** Deprecated, use [ywzx] instead. */
-  static const int YWZX = ywzx;
-  /** Deprecated, use [ywzy] instead. */
-  static const int YWZY = ywzy;
-  /** Deprecated, use [ywzz] instead. */
-  static const int YWZZ = ywzz;
-  /** Deprecated, use [ywzw] instead. */
-  static const int YWZW = ywzw;
-  /** Deprecated, use [ywwx] instead. */
-  static const int YWWX = ywwx;
-  /** Deprecated, use [ywwy] instead. */
-  static const int YWWY = ywwy;
-  /** Deprecated, use [ywwz] instead. */
-  static const int YWWZ = ywwz;
-  /** Deprecated, use [ywww] instead. */
-  static const int YWWW = ywww;
-  /** Deprecated, use [zxxx] instead. */
-  static const int ZXXX = zxxx;
-  /** Deprecated, use [zxxy] instead. */
-  static const int ZXXY = zxxy;
-  /** Deprecated, use [zxxz] instead. */
-  static const int ZXXZ = zxxz;
-  /** Deprecated, use [zxxw] instead. */
-  static const int ZXXW = zxxw;
-  /** Deprecated, use [zxyx] instead. */
-  static const int ZXYX = zxyx;
-  /** Deprecated, use [zxyy] instead. */
-  static const int ZXYY = zxyy;
-  /** Deprecated, use [zxyz] instead. */
-  static const int ZXYZ = zxyz;
-  /** Deprecated, use [zxyw] instead. */
-  static const int ZXYW = zxyw;
-  /** Deprecated, use [zxzx] instead. */
-  static const int ZXZX = zxzx;
-  /** Deprecated, use [zxzy] instead. */
-  static const int ZXZY = zxzy;
-  /** Deprecated, use [zxzz] instead. */
-  static const int ZXZZ = zxzz;
-  /** Deprecated, use [zxzw] instead. */
-  static const int ZXZW = zxzw;
-  /** Deprecated, use [zxwx] instead. */
-  static const int ZXWX = zxwx;
-  /** Deprecated, use [zxwy] instead. */
-  static const int ZXWY = zxwy;
-  /** Deprecated, use [zxwz] instead. */
-  static const int ZXWZ = zxwz;
-  /** Deprecated, use [zxww] instead. */
-  static const int ZXWW = zxww;
-  /** Deprecated, use [zyxx] instead. */
-  static const int ZYXX = zyxx;
-  /** Deprecated, use [zyxy] instead. */
-  static const int ZYXY = zyxy;
-  /** Deprecated, use [zyxz] instead. */
-  static const int ZYXZ = zyxz;
-  /** Deprecated, use [zyxw] instead. */
-  static const int ZYXW = zyxw;
-  /** Deprecated, use [zyyx] instead. */
-  static const int ZYYX = zyyx;
-  /** Deprecated, use [zyyy] instead. */
-  static const int ZYYY = zyyy;
-  /** Deprecated, use [zyyz] instead. */
-  static const int ZYYZ = zyyz;
-  /** Deprecated, use [zyyw] instead. */
-  static const int ZYYW = zyyw;
-  /** Deprecated, use [zyzx] instead. */
-  static const int ZYZX = zyzx;
-  /** Deprecated, use [zyzy] instead. */
-  static const int ZYZY = zyzy;
-  /** Deprecated, use [zyzz] instead. */
-  static const int ZYZZ = zyzz;
-  /** Deprecated, use [zyzw] instead. */
-  static const int ZYZW = zyzw;
-  /** Deprecated, use [zywx] instead. */
-  static const int ZYWX = zywx;
-  /** Deprecated, use [zywy] instead. */
-  static const int ZYWY = zywy;
-  /** Deprecated, use [zywz] instead. */
-  static const int ZYWZ = zywz;
-  /** Deprecated, use [zyww] instead. */
-  static const int ZYWW = zyww;
-  /** Deprecated, use [zzxx] instead. */
-  static const int ZZXX = zzxx;
-  /** Deprecated, use [zzxy] instead. */
-  static const int ZZXY = zzxy;
-  /** Deprecated, use [zzxz] instead. */
-  static const int ZZXZ = zzxz;
-  /** Deprecated, use [zzxw] instead. */
-  static const int ZZXW = zzxw;
-  /** Deprecated, use [zzyx] instead. */
-  static const int ZZYX = zzyx;
-  /** Deprecated, use [zzyy] instead. */
-  static const int ZZYY = zzyy;
-  /** Deprecated, use [zzyz] instead. */
-  static const int ZZYZ = zzyz;
-  /** Deprecated, use [zzyw] instead. */
-  static const int ZZYW = zzyw;
-  /** Deprecated, use [zzzx] instead. */
-  static const int ZZZX = zzzx;
-  /** Deprecated, use [zzzy] instead. */
-  static const int ZZZY = zzzy;
-  /** Deprecated, use [zzzz] instead. */
-  static const int ZZZZ = zzzz;
-  /** Deprecated, use [zzzw] instead. */
-  static const int ZZZW = zzzw;
-  /** Deprecated, use [zzwx] instead. */
-  static const int ZZWX = zzwx;
-  /** Deprecated, use [zzwy] instead. */
-  static const int ZZWY = zzwy;
-  /** Deprecated, use [zzwz] instead. */
-  static const int ZZWZ = zzwz;
-  /** Deprecated, use [zzww] instead. */
-  static const int ZZWW = zzww;
-  /** Deprecated, use [zwxx] instead. */
-  static const int ZWXX = zwxx;
-  /** Deprecated, use [zwxy] instead. */
-  static const int ZWXY = zwxy;
-  /** Deprecated, use [zwxz] instead. */
-  static const int ZWXZ = zwxz;
-  /** Deprecated, use [zwxw] instead. */
-  static const int ZWXW = zwxw;
-  /** Deprecated, use [zwyx] instead. */
-  static const int ZWYX = zwyx;
-  /** Deprecated, use [zwyy] instead. */
-  static const int ZWYY = zwyy;
-  /** Deprecated, use [zwyz] instead. */
-  static const int ZWYZ = zwyz;
-  /** Deprecated, use [zwyw] instead. */
-  static const int ZWYW = zwyw;
-  /** Deprecated, use [zwzx] instead. */
-  static const int ZWZX = zwzx;
-  /** Deprecated, use [zwzy] instead. */
-  static const int ZWZY = zwzy;
-  /** Deprecated, use [zwzz] instead. */
-  static const int ZWZZ = zwzz;
-  /** Deprecated, use [zwzw] instead. */
-  static const int ZWZW = zwzw;
-  /** Deprecated, use [zwwx] instead. */
-  static const int ZWWX = zwwx;
-  /** Deprecated, use [zwwy] instead. */
-  static const int ZWWY = zwwy;
-  /** Deprecated, use [zwwz] instead. */
-  static const int ZWWZ = zwwz;
-  /** Deprecated, use [zwww] instead. */
-  static const int ZWWW = zwww;
-  /** Deprecated, use [wxxx] instead. */
-  static const int WXXX = wxxx;
-  /** Deprecated, use [wxxy] instead. */
-  static const int WXXY = wxxy;
-  /** Deprecated, use [wxxz] instead. */
-  static const int WXXZ = wxxz;
-  /** Deprecated, use [wxxw] instead. */
-  static const int WXXW = wxxw;
-  /** Deprecated, use [wxyx] instead. */
-  static const int WXYX = wxyx;
-  /** Deprecated, use [wxyy] instead. */
-  static const int WXYY = wxyy;
-  /** Deprecated, use [wxyz] instead. */
-  static const int WXYZ = wxyz;
-  /** Deprecated, use [wxyw] instead. */
-  static const int WXYW = wxyw;
-  /** Deprecated, use [wxzx] instead. */
-  static const int WXZX = wxzx;
-  /** Deprecated, use [wxzy] instead. */
-  static const int WXZY = wxzy;
-  /** Deprecated, use [wxzz] instead. */
-  static const int WXZZ = wxzz;
-  /** Deprecated, use [wxzw] instead. */
-  static const int WXZW = wxzw;
-  /** Deprecated, use [wxwx] instead. */
-  static const int WXWX = wxwx;
-  /** Deprecated, use [wxwy] instead. */
-  static const int WXWY = wxwy;
-  /** Deprecated, use [wxwz] instead. */
-  static const int WXWZ = wxwz;
-  /** Deprecated, use [wxww] instead. */
-  static const int WXWW = wxww;
-  /** Deprecated, use [wyxx] instead. */
-  static const int WYXX = wyxx;
-  /** Deprecated, use [wyxy] instead. */
-  static const int WYXY = wyxy;
-  /** Deprecated, use [wyxz] instead. */
-  static const int WYXZ = wyxz;
-  /** Deprecated, use [wyxw] instead. */
-  static const int WYXW = wyxw;
-  /** Deprecated, use [wyyx] instead. */
-  static const int WYYX = wyyx;
-  /** Deprecated, use [wyyy] instead. */
-  static const int WYYY = wyyy;
-  /** Deprecated, use [wyyz] instead. */
-  static const int WYYZ = wyyz;
-  /** Deprecated, use [wyyw] instead. */
-  static const int WYYW = wyyw;
-  /** Deprecated, use [wyzx] instead. */
-  static const int WYZX = wyzx;
-  /** Deprecated, use [wyzy] instead. */
-  static const int WYZY = wyzy;
-  /** Deprecated, use [wyzz] instead. */
-  static const int WYZZ = wyzz;
-  /** Deprecated, use [wyzw] instead. */
-  static const int WYZW = wyzw;
-  /** Deprecated, use [wywx] instead. */
-  static const int WYWX = wywx;
-  /** Deprecated, use [wywy] instead. */
-  static const int WYWY = wywy;
-  /** Deprecated, use [wywz] instead. */
-  static const int WYWZ = wywz;
-  /** Deprecated, use [wyww] instead. */
-  static const int WYWW = wyww;
-  /** Deprecated, use [wzxx] instead. */
-  static const int WZXX = wzxx;
-  /** Deprecated, use [wzxy] instead. */
-  static const int WZXY = wzxy;
-  /** Deprecated, use [wzxz] instead. */
-  static const int WZXZ = wzxz;
-  /** Deprecated, use [wzxw] instead. */
-  static const int WZXW = wzxw;
-  /** Deprecated, use [wzyx] instead. */
-  static const int WZYX = wzyx;
-  /** Deprecated, use [wzyy] instead. */
-  static const int WZYY = wzyy;
-  /** Deprecated, use [wzyz] instead. */
-  static const int WZYZ = wzyz;
-  /** Deprecated, use [wzyw] instead. */
-  static const int WZYW = wzyw;
-  /** Deprecated, use [wzzx] instead. */
-  static const int WZZX = wzzx;
-  /** Deprecated, use [wzzy] instead. */
-  static const int WZZY = wzzy;
-  /** Deprecated, use [wzzz] instead. */
-  static const int WZZZ = wzzz;
-  /** Deprecated, use [wzzw] instead. */
-  static const int WZZW = wzzw;
-  /** Deprecated, use [wzwx] instead. */
-  static const int WZWX = wzwx;
-  /** Deprecated, use [wzwy] instead. */
-  static const int WZWY = wzwy;
-  /** Deprecated, use [wzwz] instead. */
-  static const int WZWZ = wzwz;
-  /** Deprecated, use [wzww] instead. */
-  static const int WZWW = wzww;
-  /** Deprecated, use [wwxx] instead. */
-  static const int WWXX = wwxx;
-  /** Deprecated, use [wwxy] instead. */
-  static const int WWXY = wwxy;
-  /** Deprecated, use [wwxz] instead. */
-  static const int WWXZ = wwxz;
-  /** Deprecated, use [wwxw] instead. */
-  static const int WWXW = wwxw;
-  /** Deprecated, use [wwyx] instead. */
-  static const int WWYX = wwyx;
-  /** Deprecated, use [wwyy] instead. */
-  static const int WWYY = wwyy;
-  /** Deprecated, use [wwyz] instead. */
-  static const int WWYZ = wwyz;
-  /** Deprecated, use [wwyw] instead. */
-  static const int WWYW = wwyw;
-  /** Deprecated, use [wwzx] instead. */
-  static const int WWZX = wwzx;
-  /** Deprecated, use [wwzy] instead. */
-  static const int WWZY = wwzy;
-  /** Deprecated, use [wwzz] instead. */
-  static const int WWZZ = wwzz;
-  /** Deprecated, use [wwzw] instead. */
-  static const int WWZW = wwzw;
-  /** Deprecated, use [wwwx] instead. */
-  static const int WWWX = wwwx;
-  /** Deprecated, use [wwwy] instead. */
-  static const int WWWY = wwwy;
-  /** Deprecated, use [wwwz] instead. */
-  static const int WWWZ = wwwz;
-  /** Deprecated, use [wwww] instead. */
-  static const int WWWW = wwww;
-
-  /// Shuffle the lane values. [mask] must be one of the 256 shuffle constants.
-  Float32x4 shuffle(int mask);
-
-  /// Shuffle the lane values in [this] and [other]. The returned
-  /// Float32x4 will have XY lanes from [this] and ZW lanes from [other].
-  /// Uses the same [mask] as [shuffle].
-  Float32x4 shuffleMix(Float32x4 other, int mask);
-
-  /// Returns a new [Float32x4] copied from [this] with a new x value.
-  Float32x4 withX(double x);
-
-  /// Returns a new [Float32x4] copied from [this] with a new y value.
-  Float32x4 withY(double y);
-
-  /// Returns a new [Float32x4] copied from [this] with a new z value.
-  Float32x4 withZ(double z);
-
-  /// Returns a new [Float32x4] copied from [this] with a new w value.
-  Float32x4 withW(double w);
-
-  /// Returns the lane-wise minimum value in [this] or [other].
-  Float32x4 min(Float32x4 other);
-
-  /// Returns the lane-wise maximum value in [this] or [other].
-  Float32x4 max(Float32x4 other);
-
-  /// Returns the square root of [this].
-  Float32x4 sqrt();
-
-  /// Returns the reciprocal of [this].
-  Float32x4 reciprocal();
-
-  /// Returns the square root of the reciprocal of [this].
-  Float32x4 reciprocalSqrt();
-}
-
-/**
- * Int32x4 and operations.
- *
- * Int32x4 stores 4 32-bit bit-masks in "lanes".
- * The lanes are "x", "y", "z", and "w" respectively.
- */
-abstract class Int32x4 {
-  external factory Int32x4(int x, int y, int z, int w);
-  external factory Int32x4.bool(bool x, bool y, bool z, bool w);
-  external factory Int32x4.fromFloat32x4Bits(Float32x4 x);
-
-  /// The bit-wise or operator.
-  Int32x4 operator |(Int32x4 other);
-
-  /// The bit-wise and operator.
-  Int32x4 operator &(Int32x4 other);
-
-  /// The bit-wise xor operator.
-  Int32x4 operator ^(Int32x4 other);
-
-  /// Addition operator.
-  Int32x4 operator +(Int32x4 other);
-
-  /// Subtraction operator.
-  Int32x4 operator -(Int32x4 other);
-
-  /// Extract 32-bit mask from x lane.
-  int get x;
-
-  /// Extract 32-bit mask from y lane.
-  int get y;
-
-  /// Extract 32-bit mask from z lane.
-  int get z;
-
-  /// Extract 32-bit mask from w lane.
-  int get w;
-
-  /// Extract the top bit from each lane return them in the first 4 bits.
-  /// "x" lane is bit 0.
-  /// "y" lane is bit 1.
-  /// "z" lane is bit 2.
-  /// "w" lane is bit 3.
-  int get signMask;
-
-  /// Mask passed to [shuffle] or [shuffleMix].
-  static const int xxxx = 0x0;
-  static const int xxxy = 0x40;
-  static const int xxxz = 0x80;
-  static const int xxxw = 0xC0;
-  static const int xxyx = 0x10;
-  static const int xxyy = 0x50;
-  static const int xxyz = 0x90;
-  static const int xxyw = 0xD0;
-  static const int xxzx = 0x20;
-  static const int xxzy = 0x60;
-  static const int xxzz = 0xA0;
-  static const int xxzw = 0xE0;
-  static const int xxwx = 0x30;
-  static const int xxwy = 0x70;
-  static const int xxwz = 0xB0;
-  static const int xxww = 0xF0;
-  static const int xyxx = 0x4;
-  static const int xyxy = 0x44;
-  static const int xyxz = 0x84;
-  static const int xyxw = 0xC4;
-  static const int xyyx = 0x14;
-  static const int xyyy = 0x54;
-  static const int xyyz = 0x94;
-  static const int xyyw = 0xD4;
-  static const int xyzx = 0x24;
-  static const int xyzy = 0x64;
-  static const int xyzz = 0xA4;
-  static const int xyzw = 0xE4;
-  static const int xywx = 0x34;
-  static const int xywy = 0x74;
-  static const int xywz = 0xB4;
-  static const int xyww = 0xF4;
-  static const int xzxx = 0x8;
-  static const int xzxy = 0x48;
-  static const int xzxz = 0x88;
-  static const int xzxw = 0xC8;
-  static const int xzyx = 0x18;
-  static const int xzyy = 0x58;
-  static const int xzyz = 0x98;
-  static const int xzyw = 0xD8;
-  static const int xzzx = 0x28;
-  static const int xzzy = 0x68;
-  static const int xzzz = 0xA8;
-  static const int xzzw = 0xE8;
-  static const int xzwx = 0x38;
-  static const int xzwy = 0x78;
-  static const int xzwz = 0xB8;
-  static const int xzww = 0xF8;
-  static const int xwxx = 0xC;
-  static const int xwxy = 0x4C;
-  static const int xwxz = 0x8C;
-  static const int xwxw = 0xCC;
-  static const int xwyx = 0x1C;
-  static const int xwyy = 0x5C;
-  static const int xwyz = 0x9C;
-  static const int xwyw = 0xDC;
-  static const int xwzx = 0x2C;
-  static const int xwzy = 0x6C;
-  static const int xwzz = 0xAC;
-  static const int xwzw = 0xEC;
-  static const int xwwx = 0x3C;
-  static const int xwwy = 0x7C;
-  static const int xwwz = 0xBC;
-  static const int xwww = 0xFC;
-  static const int yxxx = 0x1;
-  static const int yxxy = 0x41;
-  static const int yxxz = 0x81;
-  static const int yxxw = 0xC1;
-  static const int yxyx = 0x11;
-  static const int yxyy = 0x51;
-  static const int yxyz = 0x91;
-  static const int yxyw = 0xD1;
-  static const int yxzx = 0x21;
-  static const int yxzy = 0x61;
-  static const int yxzz = 0xA1;
-  static const int yxzw = 0xE1;
-  static const int yxwx = 0x31;
-  static const int yxwy = 0x71;
-  static const int yxwz = 0xB1;
-  static const int yxww = 0xF1;
-  static const int yyxx = 0x5;
-  static const int yyxy = 0x45;
-  static const int yyxz = 0x85;
-  static const int yyxw = 0xC5;
-  static const int yyyx = 0x15;
-  static const int yyyy = 0x55;
-  static const int yyyz = 0x95;
-  static const int yyyw = 0xD5;
-  static const int yyzx = 0x25;
-  static const int yyzy = 0x65;
-  static const int yyzz = 0xA5;
-  static const int yyzw = 0xE5;
-  static const int yywx = 0x35;
-  static const int yywy = 0x75;
-  static const int yywz = 0xB5;
-  static const int yyww = 0xF5;
-  static const int yzxx = 0x9;
-  static const int yzxy = 0x49;
-  static const int yzxz = 0x89;
-  static const int yzxw = 0xC9;
-  static const int yzyx = 0x19;
-  static const int yzyy = 0x59;
-  static const int yzyz = 0x99;
-  static const int yzyw = 0xD9;
-  static const int yzzx = 0x29;
-  static const int yzzy = 0x69;
-  static const int yzzz = 0xA9;
-  static const int yzzw = 0xE9;
-  static const int yzwx = 0x39;
-  static const int yzwy = 0x79;
-  static const int yzwz = 0xB9;
-  static const int yzww = 0xF9;
-  static const int ywxx = 0xD;
-  static const int ywxy = 0x4D;
-  static const int ywxz = 0x8D;
-  static const int ywxw = 0xCD;
-  static const int ywyx = 0x1D;
-  static const int ywyy = 0x5D;
-  static const int ywyz = 0x9D;
-  static const int ywyw = 0xDD;
-  static const int ywzx = 0x2D;
-  static const int ywzy = 0x6D;
-  static const int ywzz = 0xAD;
-  static const int ywzw = 0xED;
-  static const int ywwx = 0x3D;
-  static const int ywwy = 0x7D;
-  static const int ywwz = 0xBD;
-  static const int ywww = 0xFD;
-  static const int zxxx = 0x2;
-  static const int zxxy = 0x42;
-  static const int zxxz = 0x82;
-  static const int zxxw = 0xC2;
-  static const int zxyx = 0x12;
-  static const int zxyy = 0x52;
-  static const int zxyz = 0x92;
-  static const int zxyw = 0xD2;
-  static const int zxzx = 0x22;
-  static const int zxzy = 0x62;
-  static const int zxzz = 0xA2;
-  static const int zxzw = 0xE2;
-  static const int zxwx = 0x32;
-  static const int zxwy = 0x72;
-  static const int zxwz = 0xB2;
-  static const int zxww = 0xF2;
-  static const int zyxx = 0x6;
-  static const int zyxy = 0x46;
-  static const int zyxz = 0x86;
-  static const int zyxw = 0xC6;
-  static const int zyyx = 0x16;
-  static const int zyyy = 0x56;
-  static const int zyyz = 0x96;
-  static const int zyyw = 0xD6;
-  static const int zyzx = 0x26;
-  static const int zyzy = 0x66;
-  static const int zyzz = 0xA6;
-  static const int zyzw = 0xE6;
-  static const int zywx = 0x36;
-  static const int zywy = 0x76;
-  static const int zywz = 0xB6;
-  static const int zyww = 0xF6;
-  static const int zzxx = 0xA;
-  static const int zzxy = 0x4A;
-  static const int zzxz = 0x8A;
-  static const int zzxw = 0xCA;
-  static const int zzyx = 0x1A;
-  static const int zzyy = 0x5A;
-  static const int zzyz = 0x9A;
-  static const int zzyw = 0xDA;
-  static const int zzzx = 0x2A;
-  static const int zzzy = 0x6A;
-  static const int zzzz = 0xAA;
-  static const int zzzw = 0xEA;
-  static const int zzwx = 0x3A;
-  static const int zzwy = 0x7A;
-  static const int zzwz = 0xBA;
-  static const int zzww = 0xFA;
-  static const int zwxx = 0xE;
-  static const int zwxy = 0x4E;
-  static const int zwxz = 0x8E;
-  static const int zwxw = 0xCE;
-  static const int zwyx = 0x1E;
-  static const int zwyy = 0x5E;
-  static const int zwyz = 0x9E;
-  static const int zwyw = 0xDE;
-  static const int zwzx = 0x2E;
-  static const int zwzy = 0x6E;
-  static const int zwzz = 0xAE;
-  static const int zwzw = 0xEE;
-  static const int zwwx = 0x3E;
-  static const int zwwy = 0x7E;
-  static const int zwwz = 0xBE;
-  static const int zwww = 0xFE;
-  static const int wxxx = 0x3;
-  static const int wxxy = 0x43;
-  static const int wxxz = 0x83;
-  static const int wxxw = 0xC3;
-  static const int wxyx = 0x13;
-  static const int wxyy = 0x53;
-  static const int wxyz = 0x93;
-  static const int wxyw = 0xD3;
-  static const int wxzx = 0x23;
-  static const int wxzy = 0x63;
-  static const int wxzz = 0xA3;
-  static const int wxzw = 0xE3;
-  static const int wxwx = 0x33;
-  static const int wxwy = 0x73;
-  static const int wxwz = 0xB3;
-  static const int wxww = 0xF3;
-  static const int wyxx = 0x7;
-  static const int wyxy = 0x47;
-  static const int wyxz = 0x87;
-  static const int wyxw = 0xC7;
-  static const int wyyx = 0x17;
-  static const int wyyy = 0x57;
-  static const int wyyz = 0x97;
-  static const int wyyw = 0xD7;
-  static const int wyzx = 0x27;
-  static const int wyzy = 0x67;
-  static const int wyzz = 0xA7;
-  static const int wyzw = 0xE7;
-  static const int wywx = 0x37;
-  static const int wywy = 0x77;
-  static const int wywz = 0xB7;
-  static const int wyww = 0xF7;
-  static const int wzxx = 0xB;
-  static const int wzxy = 0x4B;
-  static const int wzxz = 0x8B;
-  static const int wzxw = 0xCB;
-  static const int wzyx = 0x1B;
-  static const int wzyy = 0x5B;
-  static const int wzyz = 0x9B;
-  static const int wzyw = 0xDB;
-  static const int wzzx = 0x2B;
-  static const int wzzy = 0x6B;
-  static const int wzzz = 0xAB;
-  static const int wzzw = 0xEB;
-  static const int wzwx = 0x3B;
-  static const int wzwy = 0x7B;
-  static const int wzwz = 0xBB;
-  static const int wzww = 0xFB;
-  static const int wwxx = 0xF;
-  static const int wwxy = 0x4F;
-  static const int wwxz = 0x8F;
-  static const int wwxw = 0xCF;
-  static const int wwyx = 0x1F;
-  static const int wwyy = 0x5F;
-  static const int wwyz = 0x9F;
-  static const int wwyw = 0xDF;
-  static const int wwzx = 0x2F;
-  static const int wwzy = 0x6F;
-  static const int wwzz = 0xAF;
-  static const int wwzw = 0xEF;
-  static const int wwwx = 0x3F;
-  static const int wwwy = 0x7F;
-  static const int wwwz = 0xBF;
-  static const int wwww = 0xFF;
-  /** Deprecated, use [xxxx] instead. */
-  static const int XXXX = xxxx;
-  /** Deprecated, use [xxxy] instead. */
-  static const int XXXY = xxxy;
-  /** Deprecated, use [xxxz] instead. */
-  static const int XXXZ = xxxz;
-  /** Deprecated, use [xxxw] instead. */
-  static const int XXXW = xxxw;
-  /** Deprecated, use [xxyx] instead. */
-  static const int XXYX = xxyx;
-  /** Deprecated, use [xxyy] instead. */
-  static const int XXYY = xxyy;
-  /** Deprecated, use [xxyz] instead. */
-  static const int XXYZ = xxyz;
-  /** Deprecated, use [xxyw] instead. */
-  static const int XXYW = xxyw;
-  /** Deprecated, use [xxzx] instead. */
-  static const int XXZX = xxzx;
-  /** Deprecated, use [xxzy] instead. */
-  static const int XXZY = xxzy;
-  /** Deprecated, use [xxzz] instead. */
-  static const int XXZZ = xxzz;
-  /** Deprecated, use [xxzw] instead. */
-  static const int XXZW = xxzw;
-  /** Deprecated, use [xxwx] instead. */
-  static const int XXWX = xxwx;
-  /** Deprecated, use [xxwy] instead. */
-  static const int XXWY = xxwy;
-  /** Deprecated, use [xxwz] instead. */
-  static const int XXWZ = xxwz;
-  /** Deprecated, use [xxww] instead. */
-  static const int XXWW = xxww;
-  /** Deprecated, use [xyxx] instead. */
-  static const int XYXX = xyxx;
-  /** Deprecated, use [xyxy] instead. */
-  static const int XYXY = xyxy;
-  /** Deprecated, use [xyxz] instead. */
-  static const int XYXZ = xyxz;
-  /** Deprecated, use [xyxw] instead. */
-  static const int XYXW = xyxw;
-  /** Deprecated, use [xyyx] instead. */
-  static const int XYYX = xyyx;
-  /** Deprecated, use [xyyy] instead. */
-  static const int XYYY = xyyy;
-  /** Deprecated, use [xyyz] instead. */
-  static const int XYYZ = xyyz;
-  /** Deprecated, use [xyyw] instead. */
-  static const int XYYW = xyyw;
-  /** Deprecated, use [xyzx] instead. */
-  static const int XYZX = xyzx;
-  /** Deprecated, use [xyzy] instead. */
-  static const int XYZY = xyzy;
-  /** Deprecated, use [xyzz] instead. */
-  static const int XYZZ = xyzz;
-  /** Deprecated, use [xyzw] instead. */
-  static const int XYZW = xyzw;
-  /** Deprecated, use [xywx] instead. */
-  static const int XYWX = xywx;
-  /** Deprecated, use [xywy] instead. */
-  static const int XYWY = xywy;
-  /** Deprecated, use [xywz] instead. */
-  static const int XYWZ = xywz;
-  /** Deprecated, use [xyww] instead. */
-  static const int XYWW = xyww;
-  /** Deprecated, use [xzxx] instead. */
-  static const int XZXX = xzxx;
-  /** Deprecated, use [xzxy] instead. */
-  static const int XZXY = xzxy;
-  /** Deprecated, use [xzxz] instead. */
-  static const int XZXZ = xzxz;
-  /** Deprecated, use [xzxw] instead. */
-  static const int XZXW = xzxw;
-  /** Deprecated, use [xzyx] instead. */
-  static const int XZYX = xzyx;
-  /** Deprecated, use [xzyy] instead. */
-  static const int XZYY = xzyy;
-  /** Deprecated, use [xzyz] instead. */
-  static const int XZYZ = xzyz;
-  /** Deprecated, use [xzyw] instead. */
-  static const int XZYW = xzyw;
-  /** Deprecated, use [xzzx] instead. */
-  static const int XZZX = xzzx;
-  /** Deprecated, use [xzzy] instead. */
-  static const int XZZY = xzzy;
-  /** Deprecated, use [xzzz] instead. */
-  static const int XZZZ = xzzz;
-  /** Deprecated, use [xzzw] instead. */
-  static const int XZZW = xzzw;
-  /** Deprecated, use [xzwx] instead. */
-  static const int XZWX = xzwx;
-  /** Deprecated, use [xzwy] instead. */
-  static const int XZWY = xzwy;
-  /** Deprecated, use [xzwz] instead. */
-  static const int XZWZ = xzwz;
-  /** Deprecated, use [xzww] instead. */
-  static const int XZWW = xzww;
-  /** Deprecated, use [xwxx] instead. */
-  static const int XWXX = xwxx;
-  /** Deprecated, use [xwxy] instead. */
-  static const int XWXY = xwxy;
-  /** Deprecated, use [xwxz] instead. */
-  static const int XWXZ = xwxz;
-  /** Deprecated, use [xwxw] instead. */
-  static const int XWXW = xwxw;
-  /** Deprecated, use [xwyx] instead. */
-  static const int XWYX = xwyx;
-  /** Deprecated, use [xwyy] instead. */
-  static const int XWYY = xwyy;
-  /** Deprecated, use [xwyz] instead. */
-  static const int XWYZ = xwyz;
-  /** Deprecated, use [xwyw] instead. */
-  static const int XWYW = xwyw;
-  /** Deprecated, use [xwzx] instead. */
-  static const int XWZX = xwzx;
-  /** Deprecated, use [xwzy] instead. */
-  static const int XWZY = xwzy;
-  /** Deprecated, use [xwzz] instead. */
-  static const int XWZZ = xwzz;
-  /** Deprecated, use [xwzw] instead. */
-  static const int XWZW = xwzw;
-  /** Deprecated, use [xwwx] instead. */
-  static const int XWWX = xwwx;
-  /** Deprecated, use [xwwy] instead. */
-  static const int XWWY = xwwy;
-  /** Deprecated, use [xwwz] instead. */
-  static const int XWWZ = xwwz;
-  /** Deprecated, use [xwww] instead. */
-  static const int XWWW = xwww;
-  /** Deprecated, use [yxxx] instead. */
-  static const int YXXX = yxxx;
-  /** Deprecated, use [yxxy] instead. */
-  static const int YXXY = yxxy;
-  /** Deprecated, use [yxxz] instead. */
-  static const int YXXZ = yxxz;
-  /** Deprecated, use [yxxw] instead. */
-  static const int YXXW = yxxw;
-  /** Deprecated, use [yxyx] instead. */
-  static const int YXYX = yxyx;
-  /** Deprecated, use [yxyy] instead. */
-  static const int YXYY = yxyy;
-  /** Deprecated, use [yxyz] instead. */
-  static const int YXYZ = yxyz;
-  /** Deprecated, use [yxyw] instead. */
-  static const int YXYW = yxyw;
-  /** Deprecated, use [yxzx] instead. */
-  static const int YXZX = yxzx;
-  /** Deprecated, use [yxzy] instead. */
-  static const int YXZY = yxzy;
-  /** Deprecated, use [yxzz] instead. */
-  static const int YXZZ = yxzz;
-  /** Deprecated, use [yxzw] instead. */
-  static const int YXZW = yxzw;
-  /** Deprecated, use [yxwx] instead. */
-  static const int YXWX = yxwx;
-  /** Deprecated, use [yxwy] instead. */
-  static const int YXWY = yxwy;
-  /** Deprecated, use [yxwz] instead. */
-  static const int YXWZ = yxwz;
-  /** Deprecated, use [yxww] instead. */
-  static const int YXWW = yxww;
-  /** Deprecated, use [yyxx] instead. */
-  static const int YYXX = yyxx;
-  /** Deprecated, use [yyxy] instead. */
-  static const int YYXY = yyxy;
-  /** Deprecated, use [yyxz] instead. */
-  static const int YYXZ = yyxz;
-  /** Deprecated, use [yyxw] instead. */
-  static const int YYXW = yyxw;
-  /** Deprecated, use [yyyx] instead. */
-  static const int YYYX = yyyx;
-  /** Deprecated, use [yyyy] instead. */
-  static const int YYYY = yyyy;
-  /** Deprecated, use [yyyz] instead. */
-  static const int YYYZ = yyyz;
-  /** Deprecated, use [yyyw] instead. */
-  static const int YYYW = yyyw;
-  /** Deprecated, use [yyzx] instead. */
-  static const int YYZX = yyzx;
-  /** Deprecated, use [yyzy] instead. */
-  static const int YYZY = yyzy;
-  /** Deprecated, use [yyzz] instead. */
-  static const int YYZZ = yyzz;
-  /** Deprecated, use [yyzw] instead. */
-  static const int YYZW = yyzw;
-  /** Deprecated, use [yywx] instead. */
-  static const int YYWX = yywx;
-  /** Deprecated, use [yywy] instead. */
-  static const int YYWY = yywy;
-  /** Deprecated, use [yywz] instead. */
-  static const int YYWZ = yywz;
-  /** Deprecated, use [yyww] instead. */
-  static const int YYWW = yyww;
-  /** Deprecated, use [yzxx] instead. */
-  static const int YZXX = yzxx;
-  /** Deprecated, use [yzxy] instead. */
-  static const int YZXY = yzxy;
-  /** Deprecated, use [yzxz] instead. */
-  static const int YZXZ = yzxz;
-  /** Deprecated, use [yzxw] instead. */
-  static const int YZXW = yzxw;
-  /** Deprecated, use [yzyx] instead. */
-  static const int YZYX = yzyx;
-  /** Deprecated, use [yzyy] instead. */
-  static const int YZYY = yzyy;
-  /** Deprecated, use [yzyz] instead. */
-  static const int YZYZ = yzyz;
-  /** Deprecated, use [yzyw] instead. */
-  static const int YZYW = yzyw;
-  /** Deprecated, use [yzzx] instead. */
-  static const int YZZX = yzzx;
-  /** Deprecated, use [yzzy] instead. */
-  static const int YZZY = yzzy;
-  /** Deprecated, use [yzzz] instead. */
-  static const int YZZZ = yzzz;
-  /** Deprecated, use [yzzw] instead. */
-  static const int YZZW = yzzw;
-  /** Deprecated, use [yzwx] instead. */
-  static const int YZWX = yzwx;
-  /** Deprecated, use [yzwy] instead. */
-  static const int YZWY = yzwy;
-  /** Deprecated, use [yzwz] instead. */
-  static const int YZWZ = yzwz;
-  /** Deprecated, use [yzww] instead. */
-  static const int YZWW = yzww;
-  /** Deprecated, use [ywxx] instead. */
-  static const int YWXX = ywxx;
-  /** Deprecated, use [ywxy] instead. */
-  static const int YWXY = ywxy;
-  /** Deprecated, use [ywxz] instead. */
-  static const int YWXZ = ywxz;
-  /** Deprecated, use [ywxw] instead. */
-  static const int YWXW = ywxw;
-  /** Deprecated, use [ywyx] instead. */
-  static const int YWYX = ywyx;
-  /** Deprecated, use [ywyy] instead. */
-  static const int YWYY = ywyy;
-  /** Deprecated, use [ywyz] instead. */
-  static const int YWYZ = ywyz;
-  /** Deprecated, use [ywyw] instead. */
-  static const int YWYW = ywyw;
-  /** Deprecated, use [ywzx] instead. */
-  static const int YWZX = ywzx;
-  /** Deprecated, use [ywzy] instead. */
-  static const int YWZY = ywzy;
-  /** Deprecated, use [ywzz] instead. */
-  static const int YWZZ = ywzz;
-  /** Deprecated, use [ywzw] instead. */
-  static const int YWZW = ywzw;
-  /** Deprecated, use [ywwx] instead. */
-  static const int YWWX = ywwx;
-  /** Deprecated, use [ywwy] instead. */
-  static const int YWWY = ywwy;
-  /** Deprecated, use [ywwz] instead. */
-  static const int YWWZ = ywwz;
-  /** Deprecated, use [ywww] instead. */
-  static const int YWWW = ywww;
-  /** Deprecated, use [zxxx] instead. */
-  static const int ZXXX = zxxx;
-  /** Deprecated, use [zxxy] instead. */
-  static const int ZXXY = zxxy;
-  /** Deprecated, use [zxxz] instead. */
-  static const int ZXXZ = zxxz;
-  /** Deprecated, use [zxxw] instead. */
-  static const int ZXXW = zxxw;
-  /** Deprecated, use [zxyx] instead. */
-  static const int ZXYX = zxyx;
-  /** Deprecated, use [zxyy] instead. */
-  static const int ZXYY = zxyy;
-  /** Deprecated, use [zxyz] instead. */
-  static const int ZXYZ = zxyz;
-  /** Deprecated, use [zxyw] instead. */
-  static const int ZXYW = zxyw;
-  /** Deprecated, use [zxzx] instead. */
-  static const int ZXZX = zxzx;
-  /** Deprecated, use [zxzy] instead. */
-  static const int ZXZY = zxzy;
-  /** Deprecated, use [zxzz] instead. */
-  static const int ZXZZ = zxzz;
-  /** Deprecated, use [zxzw] instead. */
-  static const int ZXZW = zxzw;
-  /** Deprecated, use [zxwx] instead. */
-  static const int ZXWX = zxwx;
-  /** Deprecated, use [zxwy] instead. */
-  static const int ZXWY = zxwy;
-  /** Deprecated, use [zxwz] instead. */
-  static const int ZXWZ = zxwz;
-  /** Deprecated, use [zxww] instead. */
-  static const int ZXWW = zxww;
-  /** Deprecated, use [zyxx] instead. */
-  static const int ZYXX = zyxx;
-  /** Deprecated, use [zyxy] instead. */
-  static const int ZYXY = zyxy;
-  /** Deprecated, use [zyxz] instead. */
-  static const int ZYXZ = zyxz;
-  /** Deprecated, use [zyxw] instead. */
-  static const int ZYXW = zyxw;
-  /** Deprecated, use [zyyx] instead. */
-  static const int ZYYX = zyyx;
-  /** Deprecated, use [zyyy] instead. */
-  static const int ZYYY = zyyy;
-  /** Deprecated, use [zyyz] instead. */
-  static const int ZYYZ = zyyz;
-  /** Deprecated, use [zyyw] instead. */
-  static const int ZYYW = zyyw;
-  /** Deprecated, use [zyzx] instead. */
-  static const int ZYZX = zyzx;
-  /** Deprecated, use [zyzy] instead. */
-  static const int ZYZY = zyzy;
-  /** Deprecated, use [zyzz] instead. */
-  static const int ZYZZ = zyzz;
-  /** Deprecated, use [zyzw] instead. */
-  static const int ZYZW = zyzw;
-  /** Deprecated, use [zywx] instead. */
-  static const int ZYWX = zywx;
-  /** Deprecated, use [zywy] instead. */
-  static const int ZYWY = zywy;
-  /** Deprecated, use [zywz] instead. */
-  static const int ZYWZ = zywz;
-  /** Deprecated, use [zyww] instead. */
-  static const int ZYWW = zyww;
-  /** Deprecated, use [zzxx] instead. */
-  static const int ZZXX = zzxx;
-  /** Deprecated, use [zzxy] instead. */
-  static const int ZZXY = zzxy;
-  /** Deprecated, use [zzxz] instead. */
-  static const int ZZXZ = zzxz;
-  /** Deprecated, use [zzxw] instead. */
-  static const int ZZXW = zzxw;
-  /** Deprecated, use [zzyx] instead. */
-  static const int ZZYX = zzyx;
-  /** Deprecated, use [zzyy] instead. */
-  static const int ZZYY = zzyy;
-  /** Deprecated, use [zzyz] instead. */
-  static const int ZZYZ = zzyz;
-  /** Deprecated, use [zzyw] instead. */
-  static const int ZZYW = zzyw;
-  /** Deprecated, use [zzzx] instead. */
-  static const int ZZZX = zzzx;
-  /** Deprecated, use [zzzy] instead. */
-  static const int ZZZY = zzzy;
-  /** Deprecated, use [zzzz] instead. */
-  static const int ZZZZ = zzzz;
-  /** Deprecated, use [zzzw] instead. */
-  static const int ZZZW = zzzw;
-  /** Deprecated, use [zzwx] instead. */
-  static const int ZZWX = zzwx;
-  /** Deprecated, use [zzwy] instead. */
-  static const int ZZWY = zzwy;
-  /** Deprecated, use [zzwz] instead. */
-  static const int ZZWZ = zzwz;
-  /** Deprecated, use [zzww] instead. */
-  static const int ZZWW = zzww;
-  /** Deprecated, use [zwxx] instead. */
-  static const int ZWXX = zwxx;
-  /** Deprecated, use [zwxy] instead. */
-  static const int ZWXY = zwxy;
-  /** Deprecated, use [zwxz] instead. */
-  static const int ZWXZ = zwxz;
-  /** Deprecated, use [zwxw] instead. */
-  static const int ZWXW = zwxw;
-  /** Deprecated, use [zwyx] instead. */
-  static const int ZWYX = zwyx;
-  /** Deprecated, use [zwyy] instead. */
-  static const int ZWYY = zwyy;
-  /** Deprecated, use [zwyz] instead. */
-  static const int ZWYZ = zwyz;
-  /** Deprecated, use [zwyw] instead. */
-  static const int ZWYW = zwyw;
-  /** Deprecated, use [zwzx] instead. */
-  static const int ZWZX = zwzx;
-  /** Deprecated, use [zwzy] instead. */
-  static const int ZWZY = zwzy;
-  /** Deprecated, use [zwzz] instead. */
-  static const int ZWZZ = zwzz;
-  /** Deprecated, use [zwzw] instead. */
-  static const int ZWZW = zwzw;
-  /** Deprecated, use [zwwx] instead. */
-  static const int ZWWX = zwwx;
-  /** Deprecated, use [zwwy] instead. */
-  static const int ZWWY = zwwy;
-  /** Deprecated, use [zwwz] instead. */
-  static const int ZWWZ = zwwz;
-  /** Deprecated, use [zwww] instead. */
-  static const int ZWWW = zwww;
-  /** Deprecated, use [wxxx] instead. */
-  static const int WXXX = wxxx;
-  /** Deprecated, use [wxxy] instead. */
-  static const int WXXY = wxxy;
-  /** Deprecated, use [wxxz] instead. */
-  static const int WXXZ = wxxz;
-  /** Deprecated, use [wxxw] instead. */
-  static const int WXXW = wxxw;
-  /** Deprecated, use [wxyx] instead. */
-  static const int WXYX = wxyx;
-  /** Deprecated, use [wxyy] instead. */
-  static const int WXYY = wxyy;
-  /** Deprecated, use [wxyz] instead. */
-  static const int WXYZ = wxyz;
-  /** Deprecated, use [wxyw] instead. */
-  static const int WXYW = wxyw;
-  /** Deprecated, use [wxzx] instead. */
-  static const int WXZX = wxzx;
-  /** Deprecated, use [wxzy] instead. */
-  static const int WXZY = wxzy;
-  /** Deprecated, use [wxzz] instead. */
-  static const int WXZZ = wxzz;
-  /** Deprecated, use [wxzw] instead. */
-  static const int WXZW = wxzw;
-  /** Deprecated, use [wxwx] instead. */
-  static const int WXWX = wxwx;
-  /** Deprecated, use [wxwy] instead. */
-  static const int WXWY = wxwy;
-  /** Deprecated, use [wxwz] instead. */
-  static const int WXWZ = wxwz;
-  /** Deprecated, use [wxww] instead. */
-  static const int WXWW = wxww;
-  /** Deprecated, use [wyxx] instead. */
-  static const int WYXX = wyxx;
-  /** Deprecated, use [wyxy] instead. */
-  static const int WYXY = wyxy;
-  /** Deprecated, use [wyxz] instead. */
-  static const int WYXZ = wyxz;
-  /** Deprecated, use [wyxw] instead. */
-  static const int WYXW = wyxw;
-  /** Deprecated, use [wyyx] instead. */
-  static const int WYYX = wyyx;
-  /** Deprecated, use [wyyy] instead. */
-  static const int WYYY = wyyy;
-  /** Deprecated, use [wyyz] instead. */
-  static const int WYYZ = wyyz;
-  /** Deprecated, use [wyyw] instead. */
-  static const int WYYW = wyyw;
-  /** Deprecated, use [wyzx] instead. */
-  static const int WYZX = wyzx;
-  /** Deprecated, use [wyzy] instead. */
-  static const int WYZY = wyzy;
-  /** Deprecated, use [wyzz] instead. */
-  static const int WYZZ = wyzz;
-  /** Deprecated, use [wyzw] instead. */
-  static const int WYZW = wyzw;
-  /** Deprecated, use [wywx] instead. */
-  static const int WYWX = wywx;
-  /** Deprecated, use [wywy] instead. */
-  static const int WYWY = wywy;
-  /** Deprecated, use [wywz] instead. */
-  static const int WYWZ = wywz;
-  /** Deprecated, use [wyww] instead. */
-  static const int WYWW = wyww;
-  /** Deprecated, use [wzxx] instead. */
-  static const int WZXX = wzxx;
-  /** Deprecated, use [wzxy] instead. */
-  static const int WZXY = wzxy;
-  /** Deprecated, use [wzxz] instead. */
-  static const int WZXZ = wzxz;
-  /** Deprecated, use [wzxw] instead. */
-  static const int WZXW = wzxw;
-  /** Deprecated, use [wzyx] instead. */
-  static const int WZYX = wzyx;
-  /** Deprecated, use [wzyy] instead. */
-  static const int WZYY = wzyy;
-  /** Deprecated, use [wzyz] instead. */
-  static const int WZYZ = wzyz;
-  /** Deprecated, use [wzyw] instead. */
-  static const int WZYW = wzyw;
-  /** Deprecated, use [wzzx] instead. */
-  static const int WZZX = wzzx;
-  /** Deprecated, use [wzzy] instead. */
-  static const int WZZY = wzzy;
-  /** Deprecated, use [wzzz] instead. */
-  static const int WZZZ = wzzz;
-  /** Deprecated, use [wzzw] instead. */
-  static const int WZZW = wzzw;
-  /** Deprecated, use [wzwx] instead. */
-  static const int WZWX = wzwx;
-  /** Deprecated, use [wzwy] instead. */
-  static const int WZWY = wzwy;
-  /** Deprecated, use [wzwz] instead. */
-  static const int WZWZ = wzwz;
-  /** Deprecated, use [wzww] instead. */
-  static const int WZWW = wzww;
-  /** Deprecated, use [wwxx] instead. */
-  static const int WWXX = wwxx;
-  /** Deprecated, use [wwxy] instead. */
-  static const int WWXY = wwxy;
-  /** Deprecated, use [wwxz] instead. */
-  static const int WWXZ = wwxz;
-  /** Deprecated, use [wwxw] instead. */
-  static const int WWXW = wwxw;
-  /** Deprecated, use [wwyx] instead. */
-  static const int WWYX = wwyx;
-  /** Deprecated, use [wwyy] instead. */
-  static const int WWYY = wwyy;
-  /** Deprecated, use [wwyz] instead. */
-  static const int WWYZ = wwyz;
-  /** Deprecated, use [wwyw] instead. */
-  static const int WWYW = wwyw;
-  /** Deprecated, use [wwzx] instead. */
-  static const int WWZX = wwzx;
-  /** Deprecated, use [wwzy] instead. */
-  static const int WWZY = wwzy;
-  /** Deprecated, use [wwzz] instead. */
-  static const int WWZZ = wwzz;
-  /** Deprecated, use [wwzw] instead. */
-  static const int WWZW = wwzw;
-  /** Deprecated, use [wwwx] instead. */
-  static const int WWWX = wwwx;
-  /** Deprecated, use [wwwy] instead. */
-  static const int WWWY = wwwy;
-  /** Deprecated, use [wwwz] instead. */
-  static const int WWWZ = wwwz;
-  /** Deprecated, use [wwww] instead. */
-  static const int WWWW = wwww;
-
-  /// Shuffle the lane values. [mask] must be one of the 256 shuffle constants.
-  Int32x4 shuffle(int mask);
-
-  /// Shuffle the lane values in [this] and [other]. The returned
-  /// Int32x4 will have XY lanes from [this] and ZW lanes from [other].
-  /// Uses the same [mask] as [shuffle].
-  Int32x4 shuffleMix(Int32x4 other, int mask);
-
-  /// Returns a new [Int32x4] copied from [this] with a new x value.
-  Int32x4 withX(int x);
-
-  /// Returns a new [Int32x4] copied from [this] with a new y value.
-  Int32x4 withY(int y);
-
-  /// Returns a new [Int32x4] copied from [this] with a new z value.
-  Int32x4 withZ(int z);
-
-  /// Returns a new [Int32x4] copied from [this] with a new w value.
-  Int32x4 withW(int w);
-
-  /// Extracted x value. Returns false for 0, true for any other value.
-  bool get flagX;
-
-  /// Extracted y value. Returns false for 0, true for any other value.
-  bool get flagY;
-
-  /// Extracted z value. Returns false for 0, true for any other value.
-  bool get flagZ;
-
-  /// Extracted w value. Returns false for 0, true for any other value.
-  bool get flagW;
-
-  /// Returns a new [Int32x4] copied from [this] with a new x value.
-  Int32x4 withFlagX(bool x);
-
-  /// Returns a new [Int32x4] copied from [this] with a new y value.
-  Int32x4 withFlagY(bool y);
-
-  /// Returns a new [Int32x4] copied from [this] with a new z value.
-  Int32x4 withFlagZ(bool z);
-
-  /// Returns a new [Int32x4] copied from [this] with a new w value.
-  Int32x4 withFlagW(bool w);
-
-  /// Merge [trueValue] and [falseValue] based on [this]' bit mask:
-  /// Select bit from [trueValue] when bit in [this] is on.
-  /// Select bit from [falseValue] when bit in [this] is off.
-  Float32x4 select(Float32x4 trueValue, Float32x4 falseValue);
-}
-
-/**
- * Float64x2 immutable value type and operations.
- *
- * Float64x2 stores 2 64-bit floating point values in "lanes".
- * The lanes are "x" and "y" respectively.
- */
-abstract class Float64x2 {
-  external factory Float64x2(double x, double y);
-  external factory Float64x2.splat(double v);
-  external factory Float64x2.zero();
-
-  /// Uses the "x" and "y" lanes from [v].
-  external factory Float64x2.fromFloat32x4(Float32x4 v);
-
-  /// Addition operator.
-  Float64x2 operator +(Float64x2 other);
-
-  /// Negate operator.
-  Float64x2 operator -();
-
-  /// Subtraction operator.
-  Float64x2 operator -(Float64x2 other);
-
-  /// Multiplication operator.
-  Float64x2 operator *(Float64x2 other);
-
-  /// Division operator.
-  Float64x2 operator /(Float64x2 other);
-
-  /// Returns a copy of [this] each lane being scaled by [s].
-  /// Equivalent to this * new Float64x2.splat(s)
-  Float64x2 scale(double s);
-
-  /// Returns the lane-wise absolute value of this [Float64x2].
-  Float64x2 abs();
-
-  /// Lane-wise clamp [this] to be in the range [lowerLimit]-[upperLimit].
-  Float64x2 clamp(Float64x2 lowerLimit, Float64x2 upperLimit);
-
-  /// Extracted x value.
-  double get x;
-
-  /// Extracted y value.
-  double get y;
-
-  /// Extract the sign bits from each lane return them in the first 2 bits.
-  /// "x" lane is bit 0.
-  /// "y" lane is bit 1.
-  int get signMask;
-
-  /// Returns a new [Float64x2] copied from [this] with a new x value.
-  Float64x2 withX(double x);
-
-  /// Returns a new [Float64x2] copied from [this] with a new y value.
-  Float64x2 withY(double y);
-
-  /// Returns the lane-wise minimum value in [this] or [other].
-  Float64x2 min(Float64x2 other);
-
-  /// Returns the lane-wise maximum value in [this] or [other].
-  Float64x2 max(Float64x2 other);
-
-  /// Returns the lane-wise square root of [this].
-  Float64x2 sqrt();
-}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/web_audio/dart2js/web_audio_dart2js.dart b/pkg/dev_compiler/tool/input_sdk/lib/web_audio/dart2js/web_audio_dart2js.dart
deleted file mode 100644
index e725018..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/web_audio/dart2js/web_audio_dart2js.dart
+++ /dev/null
@@ -1,1156 +0,0 @@
-/**
- * High-fidelity audio programming in the browser.
- */
-library dart.dom.web_audio;
-
-import 'dart:async';
-import 'dart:collection';
-import 'dart:_internal';
-import 'dart:html';
-import 'dart:html_common';
-import 'dart:_native_typed_data';
-import 'dart:typed_data';
-import 'dart:_js_helper'
-    show Creates, JSName, Native, Returns, convertDartClosureToJS;
-import 'dart:_foreign_helper' show JS;
-import 'dart:_interceptors' show Interceptor;
-// DO NOT EDIT - unless you are editing documentation as per:
-// https://code.google.com/p/dart/wiki/ContributingHTMLDocumentation
-// Auto-generated dart:audio library.
-
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('AnalyserNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AnalyserNode
-@Experimental()
-@Native("AnalyserNode,RealtimeAnalyserNode")
-class AnalyserNode extends AudioNode {
-  // To suppress missing implicit constructor warnings.
-  factory AnalyserNode._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('AnalyserNode.fftSize')
-  @DocsEditable()
-  int fftSize;
-
-  @DomName('AnalyserNode.frequencyBinCount')
-  @DocsEditable()
-  final int frequencyBinCount;
-
-  @DomName('AnalyserNode.maxDecibels')
-  @DocsEditable()
-  num maxDecibels;
-
-  @DomName('AnalyserNode.minDecibels')
-  @DocsEditable()
-  num minDecibels;
-
-  @DomName('AnalyserNode.smoothingTimeConstant')
-  @DocsEditable()
-  num smoothingTimeConstant;
-
-  @DomName('AnalyserNode.getByteFrequencyData')
-  @DocsEditable()
-  void getByteFrequencyData(Uint8List array) native;
-
-  @DomName('AnalyserNode.getByteTimeDomainData')
-  @DocsEditable()
-  void getByteTimeDomainData(Uint8List array) native;
-
-  @DomName('AnalyserNode.getFloatFrequencyData')
-  @DocsEditable()
-  void getFloatFrequencyData(Float32List array) native;
-
-  @DomName('AnalyserNode.getFloatTimeDomainData')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void getFloatTimeDomainData(Float32List array) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('AudioBuffer')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioBuffer-section
-@Experimental()
-@Native("AudioBuffer")
-class AudioBuffer extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory AudioBuffer._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('AudioBuffer.duration')
-  @DocsEditable()
-  final double duration;
-
-  @DomName('AudioBuffer.length')
-  @DocsEditable()
-  final int length;
-
-  @DomName('AudioBuffer.numberOfChannels')
-  @DocsEditable()
-  final int numberOfChannels;
-
-  @DomName('AudioBuffer.sampleRate')
-  @DocsEditable()
-  final double sampleRate;
-
-  @DomName('AudioBuffer.copyFromChannel')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void copyFromChannel(Float32List destination, int channelNumber,
-      [int startInChannel]) native;
-
-  @DomName('AudioBuffer.copyToChannel')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void copyToChannel(Float32List source, int channelNumber,
-      [int startInChannel]) native;
-
-  @DomName('AudioBuffer.getChannelData')
-  @DocsEditable()
-  Float32List getChannelData(int channelIndex) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('AudioBufferCallback')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioBuffer-section
-@Experimental()
-typedef void AudioBufferCallback(audioBuffer_OR_exception);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('AudioBufferSourceNode')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@Experimental()
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioBufferSourceNode-section
-@Native("AudioBufferSourceNode")
-class AudioBufferSourceNode extends AudioSourceNode {
-  // TODO(efortuna): Remove these methods when Chrome stable also uses start
-  // instead of noteOn.
-  void start(num when, [num grainOffset, num grainDuration]) {
-    if (JS('bool', '!!#.start', this)) {
-      if (grainDuration != null) {
-        JS('void', '#.start(#, #, #)', this, when, grainOffset, grainDuration);
-      } else if (grainOffset != null) {
-        JS('void', '#.start(#, #)', this, when, grainOffset);
-      } else {
-        JS('void', '#.start(#)', this, when);
-      }
-    } else {
-      if (grainDuration != null) {
-        JS('void', '#.noteOn(#, #, #)', this, when, grainOffset, grainDuration);
-      } else if (grainOffset != null) {
-        JS('void', '#.noteOn(#, #)', this, when, grainOffset);
-      } else {
-        JS('void', '#.noteOn(#)', this, when);
-      }
-    }
-  }
-
-  void stop(num when) {
-    if (JS('bool', '!!#.stop', this)) {
-      JS('void', '#.stop(#)', this, when);
-    } else {
-      JS('void', '#.noteOff(#)', this, when);
-    }
-  }
-
-  // To suppress missing implicit constructor warnings.
-  factory AudioBufferSourceNode._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `ended` events to event
-   * handlers that are not necessarily instances of [AudioBufferSourceNode].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('AudioBufferSourceNode.endedEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> endedEvent =
-      const EventStreamProvider<Event>('ended');
-
-  @DomName('AudioBufferSourceNode.buffer')
-  @DocsEditable()
-  AudioBuffer buffer;
-
-  @DomName('AudioBufferSourceNode.detune')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final AudioParam detune;
-
-  @DomName('AudioBufferSourceNode.loop')
-  @DocsEditable()
-  bool loop;
-
-  @DomName('AudioBufferSourceNode.loopEnd')
-  @DocsEditable()
-  num loopEnd;
-
-  @DomName('AudioBufferSourceNode.loopStart')
-  @DocsEditable()
-  num loopStart;
-
-  @DomName('AudioBufferSourceNode.playbackRate')
-  @DocsEditable()
-  final AudioParam playbackRate;
-
-  /// Stream of `ended` events handled by this [AudioBufferSourceNode].
-  @DomName('AudioBufferSourceNode.onended')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onEnded => endedEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('AudioContext')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@Experimental()
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioContext-section
-@Native("AudioContext,webkitAudioContext")
-class AudioContext extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory AudioContext._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported =>
-      JS('bool', '!!(window.AudioContext || window.webkitAudioContext)');
-
-  @DomName('AudioContext.currentTime')
-  @DocsEditable()
-  final double currentTime;
-
-  @DomName('AudioContext.destination')
-  @DocsEditable()
-  final AudioDestinationNode destination;
-
-  @DomName('AudioContext.listener')
-  @DocsEditable()
-  final AudioListener listener;
-
-  @DomName('AudioContext.sampleRate')
-  @DocsEditable()
-  final double sampleRate;
-
-  @DomName('AudioContext.state')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String state;
-
-  @DomName('AudioContext.close')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future close() native;
-
-  @DomName('AudioContext.createAnalyser')
-  @DocsEditable()
-  AnalyserNode createAnalyser() native;
-
-  @DomName('AudioContext.createBiquadFilter')
-  @DocsEditable()
-  BiquadFilterNode createBiquadFilter() native;
-
-  @DomName('AudioContext.createBuffer')
-  @DocsEditable()
-  AudioBuffer createBuffer(
-      int numberOfChannels, int numberOfFrames, num sampleRate) native;
-
-  @DomName('AudioContext.createBufferSource')
-  @DocsEditable()
-  AudioBufferSourceNode createBufferSource() native;
-
-  @DomName('AudioContext.createChannelMerger')
-  @DocsEditable()
-  ChannelMergerNode createChannelMerger([int numberOfInputs]) native;
-
-  @DomName('AudioContext.createChannelSplitter')
-  @DocsEditable()
-  ChannelSplitterNode createChannelSplitter([int numberOfOutputs]) native;
-
-  @DomName('AudioContext.createConvolver')
-  @DocsEditable()
-  ConvolverNode createConvolver() native;
-
-  @DomName('AudioContext.createDelay')
-  @DocsEditable()
-  DelayNode createDelay([num maxDelayTime]) native;
-
-  @DomName('AudioContext.createDynamicsCompressor')
-  @DocsEditable()
-  DynamicsCompressorNode createDynamicsCompressor() native;
-
-  @JSName('createIIRFilter')
-  @DomName('AudioContext.createIIRFilter')
-  @DocsEditable()
-  @Experimental() // untriaged
-  IirFilterNode createIirFilter(List<num> feedForward, List<num> feedBack)
-      native;
-
-  @DomName('AudioContext.createMediaElementSource')
-  @DocsEditable()
-  MediaElementAudioSourceNode createMediaElementSource(
-      MediaElement mediaElement) native;
-
-  @DomName('AudioContext.createMediaStreamDestination')
-  @DocsEditable()
-  MediaStreamAudioDestinationNode createMediaStreamDestination() native;
-
-  @DomName('AudioContext.createMediaStreamSource')
-  @DocsEditable()
-  MediaStreamAudioSourceNode createMediaStreamSource(MediaStream mediaStream)
-      native;
-
-  @DomName('AudioContext.createOscillator')
-  @DocsEditable()
-  OscillatorNode createOscillator() native;
-
-  @DomName('AudioContext.createPanner')
-  @DocsEditable()
-  PannerNode createPanner() native;
-
-  @DomName('AudioContext.createPeriodicWave')
-  @DocsEditable()
-  @Experimental() // untriaged
-  PeriodicWave createPeriodicWave(Float32List real, Float32List imag,
-      [Map options]) {
-    if (options != null) {
-      var options_1 = convertDartToNative_Dictionary(options);
-      return _createPeriodicWave_1(real, imag, options_1);
-    }
-    return _createPeriodicWave_2(real, imag);
-  }
-
-  @JSName('createPeriodicWave')
-  @DomName('AudioContext.createPeriodicWave')
-  @DocsEditable()
-  @Experimental() // untriaged
-  PeriodicWave _createPeriodicWave_1(
-      Float32List real, Float32List imag, options) native;
-  @JSName('createPeriodicWave')
-  @DomName('AudioContext.createPeriodicWave')
-  @DocsEditable()
-  @Experimental() // untriaged
-  PeriodicWave _createPeriodicWave_2(Float32List real, Float32List imag) native;
-
-  @DomName('AudioContext.createStereoPanner')
-  @DocsEditable()
-  @Experimental() // untriaged
-  StereoPannerNode createStereoPanner() native;
-
-  @DomName('AudioContext.createWaveShaper')
-  @DocsEditable()
-  WaveShaperNode createWaveShaper() native;
-
-  @JSName('decodeAudioData')
-  @DomName('AudioContext.decodeAudioData')
-  @DocsEditable()
-  Future _decodeAudioData(ByteBuffer audioData,
-      [AudioBufferCallback successCallback,
-      AudioBufferCallback errorCallback]) native;
-
-  @DomName('AudioContext.resume')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future resume() native;
-
-  @DomName('AudioContext.suspend')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future suspend() native;
-
-  factory AudioContext() => JS('AudioContext',
-      'new (window.AudioContext || window.webkitAudioContext)()');
-
-  GainNode createGain() {
-    if (JS('bool', '#.createGain !== undefined', this)) {
-      return JS('GainNode', '#.createGain()', this);
-    } else {
-      return JS('GainNode', '#.createGainNode()', this);
-    }
-  }
-
-  ScriptProcessorNode createScriptProcessor(int bufferSize,
-      [int numberOfInputChannels, int numberOfOutputChannels]) {
-    var function = JS(
-        '=Object',
-        '#.createScriptProcessor || '
-        '#.createJavaScriptNode',
-        this,
-        this);
-    if (numberOfOutputChannels != null) {
-      return JS('ScriptProcessorNode', '#.call(#, #, #, #)', function, this,
-          bufferSize, numberOfInputChannels, numberOfOutputChannels);
-    } else if (numberOfInputChannels != null) {
-      return JS('ScriptProcessorNode', '#.call(#, #, #)', function, this,
-          bufferSize, numberOfInputChannels);
-    } else {
-      return JS(
-          'ScriptProcessorNode', '#.call(#, #)', function, this, bufferSize);
-    }
-  }
-
-  @DomName('AudioContext.decodeAudioData')
-  Future<AudioBuffer> decodeAudioData(ByteBuffer audioData) {
-    var completer = new Completer<AudioBuffer>();
-    _decodeAudioData(audioData, (value) {
-      completer.complete(value);
-    }, (error) {
-      if (error == null) {
-        completer.completeError('');
-      } else {
-        completer.completeError(error);
-      }
-    });
-    return completer.future;
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('AudioDestinationNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioDestinationNode-section
-@Experimental()
-@Native("AudioDestinationNode")
-class AudioDestinationNode extends AudioNode {
-  // To suppress missing implicit constructor warnings.
-  factory AudioDestinationNode._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('AudioDestinationNode.maxChannelCount')
-  @DocsEditable()
-  final int maxChannelCount;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('AudioListener')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioListener-section
-@Experimental()
-@Native("AudioListener")
-class AudioListener extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory AudioListener._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('AudioListener.dopplerFactor')
-  @DocsEditable()
-  num dopplerFactor;
-
-  @DomName('AudioListener.speedOfSound')
-  @DocsEditable()
-  num speedOfSound;
-
-  @DomName('AudioListener.setOrientation')
-  @DocsEditable()
-  void setOrientation(num x, num y, num z, num xUp, num yUp, num zUp) native;
-
-  @DomName('AudioListener.setPosition')
-  @DocsEditable()
-  void setPosition(num x, num y, num z) native;
-
-  @DomName('AudioListener.setVelocity')
-  @DocsEditable()
-  void setVelocity(num x, num y, num z) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('AudioNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioNode-section
-@Experimental()
-@Native("AudioNode")
-class AudioNode extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory AudioNode._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('AudioNode.channelCount')
-  @DocsEditable()
-  int channelCount;
-
-  @DomName('AudioNode.channelCountMode')
-  @DocsEditable()
-  String channelCountMode;
-
-  @DomName('AudioNode.channelInterpretation')
-  @DocsEditable()
-  String channelInterpretation;
-
-  @DomName('AudioNode.context')
-  @DocsEditable()
-  final AudioContext context;
-
-  @DomName('AudioNode.numberOfInputs')
-  @DocsEditable()
-  final int numberOfInputs;
-
-  @DomName('AudioNode.numberOfOutputs')
-  @DocsEditable()
-  final int numberOfOutputs;
-
-  @JSName('connect')
-  @DomName('AudioNode.connect')
-  @DocsEditable()
-  AudioNode _connect(destination, [int output, int input]) native;
-
-  @DomName('AudioNode.disconnect')
-  @DocsEditable()
-  void disconnect([destination_OR_output, int output, int input]) native;
-
-  @DomName('AudioNode.connect')
-  void connectNode(AudioNode destination, [int output = 0, int input = 0]) {
-    _connect(destination, output, input);
-  }
-
-  @DomName('AudioNode.connect')
-  void connectParam(AudioParam destination, [int output = 0]) {
-    _connect(destination, output);
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('AudioParam')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioParam
-@Experimental()
-@Native("AudioParam")
-class AudioParam extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory AudioParam._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('AudioParam.defaultValue')
-  @DocsEditable()
-  final double defaultValue;
-
-  @DomName('AudioParam.value')
-  @DocsEditable()
-  num value;
-
-  @DomName('AudioParam.cancelScheduledValues')
-  @DocsEditable()
-  AudioParam cancelScheduledValues(num startTime) native;
-
-  @DomName('AudioParam.exponentialRampToValueAtTime')
-  @DocsEditable()
-  AudioParam exponentialRampToValueAtTime(num value, num time) native;
-
-  @DomName('AudioParam.linearRampToValueAtTime')
-  @DocsEditable()
-  AudioParam linearRampToValueAtTime(num value, num time) native;
-
-  @DomName('AudioParam.setTargetAtTime')
-  @DocsEditable()
-  AudioParam setTargetAtTime(num target, num time, num timeConstant) native;
-
-  @DomName('AudioParam.setValueAtTime')
-  @DocsEditable()
-  AudioParam setValueAtTime(num value, num time) native;
-
-  @DomName('AudioParam.setValueCurveAtTime')
-  @DocsEditable()
-  AudioParam setValueCurveAtTime(Float32List values, num time, num duration)
-      native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('AudioProcessingEvent')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioProcessingEvent-section
-@Experimental()
-@Native("AudioProcessingEvent")
-class AudioProcessingEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory AudioProcessingEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('AudioProcessingEvent.inputBuffer')
-  @DocsEditable()
-  final AudioBuffer inputBuffer;
-
-  @DomName('AudioProcessingEvent.outputBuffer')
-  @DocsEditable()
-  final AudioBuffer outputBuffer;
-
-  @DomName('AudioProcessingEvent.playbackTime')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double playbackTime;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('AudioSourceNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html
-@Experimental()
-@Native("AudioSourceNode")
-class AudioSourceNode extends AudioNode {
-  // To suppress missing implicit constructor warnings.
-  factory AudioSourceNode._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('BiquadFilterNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#BiquadFilterNode-section
-@Experimental()
-@Native("BiquadFilterNode")
-class BiquadFilterNode extends AudioNode {
-  // To suppress missing implicit constructor warnings.
-  factory BiquadFilterNode._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('BiquadFilterNode.Q')
-  @DocsEditable()
-  final AudioParam Q;
-
-  @DomName('BiquadFilterNode.detune')
-  @DocsEditable()
-  final AudioParam detune;
-
-  @DomName('BiquadFilterNode.frequency')
-  @DocsEditable()
-  final AudioParam frequency;
-
-  @DomName('BiquadFilterNode.gain')
-  @DocsEditable()
-  final AudioParam gain;
-
-  @DomName('BiquadFilterNode.type')
-  @DocsEditable()
-  String type;
-
-  @DomName('BiquadFilterNode.getFrequencyResponse')
-  @DocsEditable()
-  void getFrequencyResponse(Float32List frequencyHz, Float32List magResponse,
-      Float32List phaseResponse) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ChannelMergerNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#ChannelMergerNode-section
-@Experimental()
-@Native("ChannelMergerNode,AudioChannelMerger")
-class ChannelMergerNode extends AudioNode {
-  // To suppress missing implicit constructor warnings.
-  factory ChannelMergerNode._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ChannelSplitterNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#ChannelSplitterNode-section
-@Experimental()
-@Native("ChannelSplitterNode,AudioChannelSplitter")
-class ChannelSplitterNode extends AudioNode {
-  // To suppress missing implicit constructor warnings.
-  factory ChannelSplitterNode._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ConvolverNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#ConvolverNode
-@Experimental()
-@Native("ConvolverNode")
-class ConvolverNode extends AudioNode {
-  // To suppress missing implicit constructor warnings.
-  factory ConvolverNode._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('ConvolverNode.buffer')
-  @DocsEditable()
-  AudioBuffer buffer;
-
-  @DomName('ConvolverNode.normalize')
-  @DocsEditable()
-  bool normalize;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DelayNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#DelayNode
-@Experimental()
-@Native("DelayNode")
-class DelayNode extends AudioNode {
-  // To suppress missing implicit constructor warnings.
-  factory DelayNode._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('DelayNode.delayTime')
-  @DocsEditable()
-  final AudioParam delayTime;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('DynamicsCompressorNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#DynamicsCompressorNode
-@Experimental()
-@Native("DynamicsCompressorNode")
-class DynamicsCompressorNode extends AudioNode {
-  // To suppress missing implicit constructor warnings.
-  factory DynamicsCompressorNode._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('DynamicsCompressorNode.attack')
-  @DocsEditable()
-  final AudioParam attack;
-
-  @DomName('DynamicsCompressorNode.knee')
-  @DocsEditable()
-  final AudioParam knee;
-
-  @DomName('DynamicsCompressorNode.ratio')
-  @DocsEditable()
-  final AudioParam ratio;
-
-  @DomName('DynamicsCompressorNode.reduction')
-  @DocsEditable()
-  final AudioParam reduction;
-
-  @DomName('DynamicsCompressorNode.release')
-  @DocsEditable()
-  final AudioParam release;
-
-  @DomName('DynamicsCompressorNode.threshold')
-  @DocsEditable()
-  final AudioParam threshold;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('GainNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#GainNode
-@Experimental()
-@Native("GainNode,AudioGainNode")
-class GainNode extends AudioNode {
-  // To suppress missing implicit constructor warnings.
-  factory GainNode._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('GainNode.gain')
-  @DocsEditable()
-  final AudioParam gain;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('IIRFilterNode')
-@Experimental() // untriaged
-@Native("IIRFilterNode")
-class IirFilterNode extends AudioNode {
-  // To suppress missing implicit constructor warnings.
-  factory IirFilterNode._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('IIRFilterNode.getFrequencyResponse')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void getFrequencyResponse(Float32List frequencyHz, Float32List magResponse,
-      Float32List phaseResponse) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MediaElementAudioSourceNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#MediaElementAudioSourceNode
-@Experimental()
-@Native("MediaElementAudioSourceNode")
-class MediaElementAudioSourceNode extends AudioSourceNode {
-  // To suppress missing implicit constructor warnings.
-  factory MediaElementAudioSourceNode._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MediaElementAudioSourceNode.mediaElement')
-  @DocsEditable()
-  @Experimental() // non-standard
-  final MediaElement mediaElement;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MediaStreamAudioDestinationNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#MediaStreamAudioDestinationNode
-@Experimental()
-@Native("MediaStreamAudioDestinationNode")
-class MediaStreamAudioDestinationNode extends AudioNode {
-  // To suppress missing implicit constructor warnings.
-  factory MediaStreamAudioDestinationNode._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MediaStreamAudioDestinationNode.stream')
-  @DocsEditable()
-  final MediaStream stream;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('MediaStreamAudioSourceNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#MediaStreamAudioSourceNode
-@Experimental()
-@Native("MediaStreamAudioSourceNode")
-class MediaStreamAudioSourceNode extends AudioSourceNode {
-  // To suppress missing implicit constructor warnings.
-  factory MediaStreamAudioSourceNode._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('MediaStreamAudioSourceNode.mediaStream')
-  @DocsEditable()
-  final MediaStream mediaStream;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('OfflineAudioCompletionEvent')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#OfflineAudioCompletionEvent-section
-@Experimental()
-@Native("OfflineAudioCompletionEvent")
-class OfflineAudioCompletionEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory OfflineAudioCompletionEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('OfflineAudioCompletionEvent.renderedBuffer')
-  @DocsEditable()
-  final AudioBuffer renderedBuffer;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('OfflineAudioContext')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#OfflineAudioContext-section
-@Experimental()
-@Native("OfflineAudioContext")
-class OfflineAudioContext extends AudioContext {
-  // To suppress missing implicit constructor warnings.
-  factory OfflineAudioContext._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('OfflineAudioContext.OfflineAudioContext')
-  @DocsEditable()
-  factory OfflineAudioContext(
-      int numberOfChannels, int numberOfFrames, num sampleRate) {
-    return OfflineAudioContext._create_1(
-        numberOfChannels, numberOfFrames, sampleRate);
-  }
-  static OfflineAudioContext _create_1(
-          numberOfChannels, numberOfFrames, sampleRate) =>
-      JS('OfflineAudioContext', 'new OfflineAudioContext(#,#,#)',
-          numberOfChannels, numberOfFrames, sampleRate);
-
-  @DomName('OfflineAudioContext.startRendering')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future startRendering() native;
-
-  @JSName('suspend')
-  @DomName('OfflineAudioContext.suspend')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future suspendFor(num suspendTime) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('OscillatorNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#dfn-OscillatorNode
-@Experimental()
-@Native("OscillatorNode,Oscillator")
-class OscillatorNode extends AudioSourceNode {
-  // To suppress missing implicit constructor warnings.
-  factory OscillatorNode._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `ended` events to event
-   * handlers that are not necessarily instances of [OscillatorNode].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('OscillatorNode.endedEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<Event> endedEvent =
-      const EventStreamProvider<Event>('ended');
-
-  @DomName('OscillatorNode.detune')
-  @DocsEditable()
-  final AudioParam detune;
-
-  @DomName('OscillatorNode.frequency')
-  @DocsEditable()
-  final AudioParam frequency;
-
-  @DomName('OscillatorNode.type')
-  @DocsEditable()
-  String type;
-
-  @DomName('OscillatorNode.setPeriodicWave')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void setPeriodicWave(PeriodicWave periodicWave) native;
-
-  @DomName('OscillatorNode.start')
-  @DocsEditable()
-  void start([num when]) native;
-
-  @DomName('OscillatorNode.stop')
-  @DocsEditable()
-  void stop([num when]) native;
-
-  /// Stream of `ended` events handled by this [OscillatorNode].
-  @DomName('OscillatorNode.onended')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<Event> get onEnded => endedEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PannerNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#PannerNode
-@Experimental()
-@Native("PannerNode,AudioPannerNode,webkitAudioPannerNode")
-class PannerNode extends AudioNode {
-  // To suppress missing implicit constructor warnings.
-  factory PannerNode._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('PannerNode.coneInnerAngle')
-  @DocsEditable()
-  num coneInnerAngle;
-
-  @DomName('PannerNode.coneOuterAngle')
-  @DocsEditable()
-  num coneOuterAngle;
-
-  @DomName('PannerNode.coneOuterGain')
-  @DocsEditable()
-  num coneOuterGain;
-
-  @DomName('PannerNode.distanceModel')
-  @DocsEditable()
-  String distanceModel;
-
-  @DomName('PannerNode.maxDistance')
-  @DocsEditable()
-  num maxDistance;
-
-  @DomName('PannerNode.panningModel')
-  @DocsEditable()
-  String panningModel;
-
-  @DomName('PannerNode.refDistance')
-  @DocsEditable()
-  num refDistance;
-
-  @DomName('PannerNode.rolloffFactor')
-  @DocsEditable()
-  num rolloffFactor;
-
-  @DomName('PannerNode.setOrientation')
-  @DocsEditable()
-  void setOrientation(num x, num y, num z) native;
-
-  @DomName('PannerNode.setPosition')
-  @DocsEditable()
-  void setPosition(num x, num y, num z) native;
-
-  @DomName('PannerNode.setVelocity')
-  @DocsEditable()
-  void setVelocity(num x, num y, num z) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('PeriodicWave')
-@Experimental() // untriaged
-@Native("PeriodicWave")
-class PeriodicWave extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory PeriodicWave._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ScriptProcessorNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#ScriptProcessorNode
-@Experimental()
-@Native("ScriptProcessorNode,JavaScriptAudioNode")
-class ScriptProcessorNode extends AudioNode {
-  // To suppress missing implicit constructor warnings.
-  factory ScriptProcessorNode._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /**
-   * Static factory designed to expose `audioprocess` events to event
-   * handlers that are not necessarily instances of [ScriptProcessorNode].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('ScriptProcessorNode.audioprocessEvent')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const EventStreamProvider<AudioProcessingEvent> audioProcessEvent =
-      const EventStreamProvider<AudioProcessingEvent>('audioprocess');
-
-  @DomName('ScriptProcessorNode.bufferSize')
-  @DocsEditable()
-  final int bufferSize;
-
-  @DomName('ScriptProcessorNode.setEventListener')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void setEventListener(EventListener eventListener) native;
-
-  /// Stream of `audioprocess` events handled by this [ScriptProcessorNode].
-/**
-   * Get a Stream that fires events when AudioProcessingEvents occur.
-   * This particular stream is special in that it only allows one listener to a
-   * given stream. Converting the returned Stream [asBroadcast] will likely ruin
-   * the soft-real-time properties which which these events are fired and can
-   * be processed.
-   */
-  @DomName('ScriptProcessorNode.onaudioprocess')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Stream<AudioProcessingEvent> get onAudioProcess =>
-      audioProcessEvent.forTarget(this);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('StereoPannerNode')
-@Experimental() // untriaged
-@Native("StereoPannerNode")
-class StereoPannerNode extends AudioNode {
-  // To suppress missing implicit constructor warnings.
-  factory StereoPannerNode._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('StereoPannerNode.pan')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final AudioParam pan;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WaveShaperNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#dfn-WaveShaperNode
-@Experimental()
-@Native("WaveShaperNode")
-class WaveShaperNode extends AudioNode {
-  // To suppress missing implicit constructor warnings.
-  factory WaveShaperNode._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('WaveShaperNode.curve')
-  @DocsEditable()
-  Float32List curve;
-
-  @DomName('WaveShaperNode.oversample')
-  @DocsEditable()
-  String oversample;
-}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/web_gl/dart2js/web_gl_dart2js.dart b/pkg/dev_compiler/tool/input_sdk/lib/web_gl/dart2js/web_gl_dart2js.dart
deleted file mode 100644
index cf8a723..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/web_gl/dart2js/web_gl_dart2js.dart
+++ /dev/null
@@ -1,6899 +0,0 @@
-/**
- * 3D programming in the browser.
- */
-library dart.dom.web_gl;
-
-import 'dart:collection';
-import 'dart:_internal';
-import 'dart:html';
-import 'dart:html_common';
-import 'dart:_native_typed_data';
-import 'dart:typed_data';
-import 'dart:_js_helper'
-    show Creates, JSName, Native, Returns, convertDartClosureToJS;
-import 'dart:_foreign_helper' show JS;
-import 'dart:_interceptors' show Interceptor, JSExtendableArray;
-// DO NOT EDIT - unless you are editing documentation as per:
-// https://code.google.com/p/dart/wiki/ContributingHTMLDocumentation
-// Auto-generated dart:web_gl library.
-
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-const int ACTIVE_ATTRIBUTES = RenderingContext.ACTIVE_ATTRIBUTES;
-const int ACTIVE_TEXTURE = RenderingContext.ACTIVE_TEXTURE;
-const int ACTIVE_UNIFORMS = RenderingContext.ACTIVE_UNIFORMS;
-const int ALIASED_LINE_WIDTH_RANGE = RenderingContext.ALIASED_LINE_WIDTH_RANGE;
-const int ALIASED_POINT_SIZE_RANGE = RenderingContext.ALIASED_POINT_SIZE_RANGE;
-const int ALPHA = RenderingContext.ALPHA;
-const int ALPHA_BITS = RenderingContext.ALPHA_BITS;
-const int ALWAYS = RenderingContext.ALWAYS;
-const int ARRAY_BUFFER = RenderingContext.ARRAY_BUFFER;
-const int ARRAY_BUFFER_BINDING = RenderingContext.ARRAY_BUFFER_BINDING;
-const int ATTACHED_SHADERS = RenderingContext.ATTACHED_SHADERS;
-const int BACK = RenderingContext.BACK;
-const int BLEND = RenderingContext.BLEND;
-const int BLEND_COLOR = RenderingContext.BLEND_COLOR;
-const int BLEND_DST_ALPHA = RenderingContext.BLEND_DST_ALPHA;
-const int BLEND_DST_RGB = RenderingContext.BLEND_DST_RGB;
-const int BLEND_EQUATION = RenderingContext.BLEND_EQUATION;
-const int BLEND_EQUATION_ALPHA = RenderingContext.BLEND_EQUATION_ALPHA;
-const int BLEND_EQUATION_RGB = RenderingContext.BLEND_EQUATION_RGB;
-const int BLEND_SRC_ALPHA = RenderingContext.BLEND_SRC_ALPHA;
-const int BLEND_SRC_RGB = RenderingContext.BLEND_SRC_RGB;
-const int BLUE_BITS = RenderingContext.BLUE_BITS;
-const int BOOL = RenderingContext.BOOL;
-const int BOOL_VEC2 = RenderingContext.BOOL_VEC2;
-const int BOOL_VEC3 = RenderingContext.BOOL_VEC3;
-const int BOOL_VEC4 = RenderingContext.BOOL_VEC4;
-const int BROWSER_DEFAULT_WEBGL = RenderingContext.BROWSER_DEFAULT_WEBGL;
-const int BUFFER_SIZE = RenderingContext.BUFFER_SIZE;
-const int BUFFER_USAGE = RenderingContext.BUFFER_USAGE;
-const int BYTE = RenderingContext.BYTE;
-const int CCW = RenderingContext.CCW;
-const int CLAMP_TO_EDGE = RenderingContext.CLAMP_TO_EDGE;
-const int COLOR_ATTACHMENT0 = RenderingContext.COLOR_ATTACHMENT0;
-const int COLOR_BUFFER_BIT = RenderingContext.COLOR_BUFFER_BIT;
-const int COLOR_CLEAR_VALUE = RenderingContext.COLOR_CLEAR_VALUE;
-const int COLOR_WRITEMASK = RenderingContext.COLOR_WRITEMASK;
-const int COMPILE_STATUS = RenderingContext.COMPILE_STATUS;
-const int COMPRESSED_TEXTURE_FORMATS =
-    RenderingContext.COMPRESSED_TEXTURE_FORMATS;
-const int CONSTANT_ALPHA = RenderingContext.CONSTANT_ALPHA;
-const int CONSTANT_COLOR = RenderingContext.CONSTANT_COLOR;
-const int CONTEXT_LOST_WEBGL = RenderingContext.CONTEXT_LOST_WEBGL;
-const int CULL_FACE = RenderingContext.CULL_FACE;
-const int CULL_FACE_MODE = RenderingContext.CULL_FACE_MODE;
-const int CURRENT_PROGRAM = RenderingContext.CURRENT_PROGRAM;
-const int CURRENT_VERTEX_ATTRIB = RenderingContext.CURRENT_VERTEX_ATTRIB;
-const int CW = RenderingContext.CW;
-const int DECR = RenderingContext.DECR;
-const int DECR_WRAP = RenderingContext.DECR_WRAP;
-const int DELETE_STATUS = RenderingContext.DELETE_STATUS;
-const int DEPTH_ATTACHMENT = RenderingContext.DEPTH_ATTACHMENT;
-const int DEPTH_BITS = RenderingContext.DEPTH_BITS;
-const int DEPTH_BUFFER_BIT = RenderingContext.DEPTH_BUFFER_BIT;
-const int DEPTH_CLEAR_VALUE = RenderingContext.DEPTH_CLEAR_VALUE;
-const int DEPTH_COMPONENT = RenderingContext.DEPTH_COMPONENT;
-const int DEPTH_COMPONENT16 = RenderingContext.DEPTH_COMPONENT16;
-const int DEPTH_FUNC = RenderingContext.DEPTH_FUNC;
-const int DEPTH_RANGE = RenderingContext.DEPTH_RANGE;
-const int DEPTH_STENCIL = RenderingContext.DEPTH_STENCIL;
-const int DEPTH_STENCIL_ATTACHMENT = RenderingContext.DEPTH_STENCIL_ATTACHMENT;
-const int DEPTH_TEST = RenderingContext.DEPTH_TEST;
-const int DEPTH_WRITEMASK = RenderingContext.DEPTH_WRITEMASK;
-const int DITHER = RenderingContext.DITHER;
-const int DONT_CARE = RenderingContext.DONT_CARE;
-const int DST_ALPHA = RenderingContext.DST_ALPHA;
-const int DST_COLOR = RenderingContext.DST_COLOR;
-const int DYNAMIC_DRAW = RenderingContext.DYNAMIC_DRAW;
-const int ELEMENT_ARRAY_BUFFER = RenderingContext.ELEMENT_ARRAY_BUFFER;
-const int ELEMENT_ARRAY_BUFFER_BINDING =
-    RenderingContext.ELEMENT_ARRAY_BUFFER_BINDING;
-const int EQUAL = RenderingContext.EQUAL;
-const int FASTEST = RenderingContext.FASTEST;
-const int FLOAT = RenderingContext.FLOAT;
-const int FLOAT_MAT2 = RenderingContext.FLOAT_MAT2;
-const int FLOAT_MAT3 = RenderingContext.FLOAT_MAT3;
-const int FLOAT_MAT4 = RenderingContext.FLOAT_MAT4;
-const int FLOAT_VEC2 = RenderingContext.FLOAT_VEC2;
-const int FLOAT_VEC3 = RenderingContext.FLOAT_VEC3;
-const int FLOAT_VEC4 = RenderingContext.FLOAT_VEC4;
-const int FRAGMENT_SHADER = RenderingContext.FRAGMENT_SHADER;
-const int FRAMEBUFFER = RenderingContext.FRAMEBUFFER;
-const int FRAMEBUFFER_ATTACHMENT_OBJECT_NAME =
-    RenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME;
-const int FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE =
-    RenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE;
-const int FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE =
-    RenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE;
-const int FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL =
-    RenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL;
-const int FRAMEBUFFER_BINDING = RenderingContext.FRAMEBUFFER_BINDING;
-const int FRAMEBUFFER_COMPLETE = RenderingContext.FRAMEBUFFER_COMPLETE;
-const int FRAMEBUFFER_INCOMPLETE_ATTACHMENT =
-    RenderingContext.FRAMEBUFFER_INCOMPLETE_ATTACHMENT;
-const int FRAMEBUFFER_INCOMPLETE_DIMENSIONS =
-    RenderingContext.FRAMEBUFFER_INCOMPLETE_DIMENSIONS;
-const int FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT =
-    RenderingContext.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT;
-const int FRAMEBUFFER_UNSUPPORTED = RenderingContext.FRAMEBUFFER_UNSUPPORTED;
-const int FRONT = RenderingContext.FRONT;
-const int FRONT_AND_BACK = RenderingContext.FRONT_AND_BACK;
-const int FRONT_FACE = RenderingContext.FRONT_FACE;
-const int FUNC_ADD = RenderingContext.FUNC_ADD;
-const int FUNC_REVERSE_SUBTRACT = RenderingContext.FUNC_REVERSE_SUBTRACT;
-const int FUNC_SUBTRACT = RenderingContext.FUNC_SUBTRACT;
-const int GENERATE_MIPMAP_HINT = RenderingContext.GENERATE_MIPMAP_HINT;
-const int GEQUAL = RenderingContext.GEQUAL;
-const int GREATER = RenderingContext.GREATER;
-const int GREEN_BITS = RenderingContext.GREEN_BITS;
-const int HALF_FLOAT_OES = OesTextureHalfFloat.HALF_FLOAT_OES;
-const int HIGH_FLOAT = RenderingContext.HIGH_FLOAT;
-const int HIGH_INT = RenderingContext.HIGH_INT;
-const int INCR = RenderingContext.INCR;
-const int INCR_WRAP = RenderingContext.INCR_WRAP;
-const int INT = RenderingContext.INT;
-const int INT_VEC2 = RenderingContext.INT_VEC2;
-const int INT_VEC3 = RenderingContext.INT_VEC3;
-const int INT_VEC4 = RenderingContext.INT_VEC4;
-const int INVALID_ENUM = RenderingContext.INVALID_ENUM;
-const int INVALID_FRAMEBUFFER_OPERATION =
-    RenderingContext.INVALID_FRAMEBUFFER_OPERATION;
-const int INVALID_OPERATION = RenderingContext.INVALID_OPERATION;
-const int INVALID_VALUE = RenderingContext.INVALID_VALUE;
-const int INVERT = RenderingContext.INVERT;
-const int KEEP = RenderingContext.KEEP;
-const int LEQUAL = RenderingContext.LEQUAL;
-const int LESS = RenderingContext.LESS;
-const int LINEAR = RenderingContext.LINEAR;
-const int LINEAR_MIPMAP_LINEAR = RenderingContext.LINEAR_MIPMAP_LINEAR;
-const int LINEAR_MIPMAP_NEAREST = RenderingContext.LINEAR_MIPMAP_NEAREST;
-const int LINES = RenderingContext.LINES;
-const int LINE_LOOP = RenderingContext.LINE_LOOP;
-const int LINE_STRIP = RenderingContext.LINE_STRIP;
-const int LINE_WIDTH = RenderingContext.LINE_WIDTH;
-const int LINK_STATUS = RenderingContext.LINK_STATUS;
-const int LOW_FLOAT = RenderingContext.LOW_FLOAT;
-const int LOW_INT = RenderingContext.LOW_INT;
-const int LUMINANCE = RenderingContext.LUMINANCE;
-const int LUMINANCE_ALPHA = RenderingContext.LUMINANCE_ALPHA;
-const int MAX_COMBINED_TEXTURE_IMAGE_UNITS =
-    RenderingContext.MAX_COMBINED_TEXTURE_IMAGE_UNITS;
-const int MAX_CUBE_MAP_TEXTURE_SIZE =
-    RenderingContext.MAX_CUBE_MAP_TEXTURE_SIZE;
-const int MAX_FRAGMENT_UNIFORM_VECTORS =
-    RenderingContext.MAX_FRAGMENT_UNIFORM_VECTORS;
-const int MAX_RENDERBUFFER_SIZE = RenderingContext.MAX_RENDERBUFFER_SIZE;
-const int MAX_TEXTURE_IMAGE_UNITS = RenderingContext.MAX_TEXTURE_IMAGE_UNITS;
-const int MAX_TEXTURE_SIZE = RenderingContext.MAX_TEXTURE_SIZE;
-const int MAX_VARYING_VECTORS = RenderingContext.MAX_VARYING_VECTORS;
-const int MAX_VERTEX_ATTRIBS = RenderingContext.MAX_VERTEX_ATTRIBS;
-const int MAX_VERTEX_TEXTURE_IMAGE_UNITS =
-    RenderingContext.MAX_VERTEX_TEXTURE_IMAGE_UNITS;
-const int MAX_VERTEX_UNIFORM_VECTORS =
-    RenderingContext.MAX_VERTEX_UNIFORM_VECTORS;
-const int MAX_VIEWPORT_DIMS = RenderingContext.MAX_VIEWPORT_DIMS;
-const int MEDIUM_FLOAT = RenderingContext.MEDIUM_FLOAT;
-const int MEDIUM_INT = RenderingContext.MEDIUM_INT;
-const int MIRRORED_REPEAT = RenderingContext.MIRRORED_REPEAT;
-const int NEAREST = RenderingContext.NEAREST;
-const int NEAREST_MIPMAP_LINEAR = RenderingContext.NEAREST_MIPMAP_LINEAR;
-const int NEAREST_MIPMAP_NEAREST = RenderingContext.NEAREST_MIPMAP_NEAREST;
-const int NEVER = RenderingContext.NEVER;
-const int NICEST = RenderingContext.NICEST;
-const int NONE = RenderingContext.NONE;
-const int NOTEQUAL = RenderingContext.NOTEQUAL;
-const int NO_ERROR = RenderingContext.NO_ERROR;
-const int ONE = RenderingContext.ONE;
-const int ONE_MINUS_CONSTANT_ALPHA = RenderingContext.ONE_MINUS_CONSTANT_ALPHA;
-const int ONE_MINUS_CONSTANT_COLOR = RenderingContext.ONE_MINUS_CONSTANT_COLOR;
-const int ONE_MINUS_DST_ALPHA = RenderingContext.ONE_MINUS_DST_ALPHA;
-const int ONE_MINUS_DST_COLOR = RenderingContext.ONE_MINUS_DST_COLOR;
-const int ONE_MINUS_SRC_ALPHA = RenderingContext.ONE_MINUS_SRC_ALPHA;
-const int ONE_MINUS_SRC_COLOR = RenderingContext.ONE_MINUS_SRC_COLOR;
-const int OUT_OF_MEMORY = RenderingContext.OUT_OF_MEMORY;
-const int PACK_ALIGNMENT = RenderingContext.PACK_ALIGNMENT;
-const int POINTS = RenderingContext.POINTS;
-const int POLYGON_OFFSET_FACTOR = RenderingContext.POLYGON_OFFSET_FACTOR;
-const int POLYGON_OFFSET_FILL = RenderingContext.POLYGON_OFFSET_FILL;
-const int POLYGON_OFFSET_UNITS = RenderingContext.POLYGON_OFFSET_UNITS;
-const int RED_BITS = RenderingContext.RED_BITS;
-const int RENDERBUFFER = RenderingContext.RENDERBUFFER;
-const int RENDERBUFFER_ALPHA_SIZE = RenderingContext.RENDERBUFFER_ALPHA_SIZE;
-const int RENDERBUFFER_BINDING = RenderingContext.RENDERBUFFER_BINDING;
-const int RENDERBUFFER_BLUE_SIZE = RenderingContext.RENDERBUFFER_BLUE_SIZE;
-const int RENDERBUFFER_DEPTH_SIZE = RenderingContext.RENDERBUFFER_DEPTH_SIZE;
-const int RENDERBUFFER_GREEN_SIZE = RenderingContext.RENDERBUFFER_GREEN_SIZE;
-const int RENDERBUFFER_HEIGHT = RenderingContext.RENDERBUFFER_HEIGHT;
-const int RENDERBUFFER_INTERNAL_FORMAT =
-    RenderingContext.RENDERBUFFER_INTERNAL_FORMAT;
-const int RENDERBUFFER_RED_SIZE = RenderingContext.RENDERBUFFER_RED_SIZE;
-const int RENDERBUFFER_STENCIL_SIZE =
-    RenderingContext.RENDERBUFFER_STENCIL_SIZE;
-const int RENDERBUFFER_WIDTH = RenderingContext.RENDERBUFFER_WIDTH;
-const int RENDERER = RenderingContext.RENDERER;
-const int REPEAT = RenderingContext.REPEAT;
-const int REPLACE = RenderingContext.REPLACE;
-const int RGB = RenderingContext.RGB;
-const int RGB565 = RenderingContext.RGB565;
-const int RGB5_A1 = RenderingContext.RGB5_A1;
-const int RGBA = RenderingContext.RGBA;
-const int RGBA4 = RenderingContext.RGBA4;
-const int SAMPLER_2D = RenderingContext.SAMPLER_2D;
-const int SAMPLER_CUBE = RenderingContext.SAMPLER_CUBE;
-const int SAMPLES = RenderingContext.SAMPLES;
-const int SAMPLE_ALPHA_TO_COVERAGE = RenderingContext.SAMPLE_ALPHA_TO_COVERAGE;
-const int SAMPLE_BUFFERS = RenderingContext.SAMPLE_BUFFERS;
-const int SAMPLE_COVERAGE = RenderingContext.SAMPLE_COVERAGE;
-const int SAMPLE_COVERAGE_INVERT = RenderingContext.SAMPLE_COVERAGE_INVERT;
-const int SAMPLE_COVERAGE_VALUE = RenderingContext.SAMPLE_COVERAGE_VALUE;
-const int SCISSOR_BOX = RenderingContext.SCISSOR_BOX;
-const int SCISSOR_TEST = RenderingContext.SCISSOR_TEST;
-const int SHADER_TYPE = RenderingContext.SHADER_TYPE;
-const int SHADING_LANGUAGE_VERSION = RenderingContext.SHADING_LANGUAGE_VERSION;
-const int SHORT = RenderingContext.SHORT;
-const int SRC_ALPHA = RenderingContext.SRC_ALPHA;
-const int SRC_ALPHA_SATURATE = RenderingContext.SRC_ALPHA_SATURATE;
-const int SRC_COLOR = RenderingContext.SRC_COLOR;
-const int STATIC_DRAW = RenderingContext.STATIC_DRAW;
-const int STENCIL_ATTACHMENT = RenderingContext.STENCIL_ATTACHMENT;
-const int STENCIL_BACK_FAIL = RenderingContext.STENCIL_BACK_FAIL;
-const int STENCIL_BACK_FUNC = RenderingContext.STENCIL_BACK_FUNC;
-const int STENCIL_BACK_PASS_DEPTH_FAIL =
-    RenderingContext.STENCIL_BACK_PASS_DEPTH_FAIL;
-const int STENCIL_BACK_PASS_DEPTH_PASS =
-    RenderingContext.STENCIL_BACK_PASS_DEPTH_PASS;
-const int STENCIL_BACK_REF = RenderingContext.STENCIL_BACK_REF;
-const int STENCIL_BACK_VALUE_MASK = RenderingContext.STENCIL_BACK_VALUE_MASK;
-const int STENCIL_BACK_WRITEMASK = RenderingContext.STENCIL_BACK_WRITEMASK;
-const int STENCIL_BITS = RenderingContext.STENCIL_BITS;
-const int STENCIL_BUFFER_BIT = RenderingContext.STENCIL_BUFFER_BIT;
-const int STENCIL_CLEAR_VALUE = RenderingContext.STENCIL_CLEAR_VALUE;
-const int STENCIL_FAIL = RenderingContext.STENCIL_FAIL;
-const int STENCIL_FUNC = RenderingContext.STENCIL_FUNC;
-const int STENCIL_INDEX = RenderingContext.STENCIL_INDEX;
-const int STENCIL_INDEX8 = RenderingContext.STENCIL_INDEX8;
-const int STENCIL_PASS_DEPTH_FAIL = RenderingContext.STENCIL_PASS_DEPTH_FAIL;
-const int STENCIL_PASS_DEPTH_PASS = RenderingContext.STENCIL_PASS_DEPTH_PASS;
-const int STENCIL_REF = RenderingContext.STENCIL_REF;
-const int STENCIL_TEST = RenderingContext.STENCIL_TEST;
-const int STENCIL_VALUE_MASK = RenderingContext.STENCIL_VALUE_MASK;
-const int STENCIL_WRITEMASK = RenderingContext.STENCIL_WRITEMASK;
-const int STREAM_DRAW = RenderingContext.STREAM_DRAW;
-const int SUBPIXEL_BITS = RenderingContext.SUBPIXEL_BITS;
-const int TEXTURE = RenderingContext.TEXTURE;
-const int TEXTURE0 = RenderingContext.TEXTURE0;
-const int TEXTURE1 = RenderingContext.TEXTURE1;
-const int TEXTURE10 = RenderingContext.TEXTURE10;
-const int TEXTURE11 = RenderingContext.TEXTURE11;
-const int TEXTURE12 = RenderingContext.TEXTURE12;
-const int TEXTURE13 = RenderingContext.TEXTURE13;
-const int TEXTURE14 = RenderingContext.TEXTURE14;
-const int TEXTURE15 = RenderingContext.TEXTURE15;
-const int TEXTURE16 = RenderingContext.TEXTURE16;
-const int TEXTURE17 = RenderingContext.TEXTURE17;
-const int TEXTURE18 = RenderingContext.TEXTURE18;
-const int TEXTURE19 = RenderingContext.TEXTURE19;
-const int TEXTURE2 = RenderingContext.TEXTURE2;
-const int TEXTURE20 = RenderingContext.TEXTURE20;
-const int TEXTURE21 = RenderingContext.TEXTURE21;
-const int TEXTURE22 = RenderingContext.TEXTURE22;
-const int TEXTURE23 = RenderingContext.TEXTURE23;
-const int TEXTURE24 = RenderingContext.TEXTURE24;
-const int TEXTURE25 = RenderingContext.TEXTURE25;
-const int TEXTURE26 = RenderingContext.TEXTURE26;
-const int TEXTURE27 = RenderingContext.TEXTURE27;
-const int TEXTURE28 = RenderingContext.TEXTURE28;
-const int TEXTURE29 = RenderingContext.TEXTURE29;
-const int TEXTURE3 = RenderingContext.TEXTURE3;
-const int TEXTURE30 = RenderingContext.TEXTURE30;
-const int TEXTURE31 = RenderingContext.TEXTURE31;
-const int TEXTURE4 = RenderingContext.TEXTURE4;
-const int TEXTURE5 = RenderingContext.TEXTURE5;
-const int TEXTURE6 = RenderingContext.TEXTURE6;
-const int TEXTURE7 = RenderingContext.TEXTURE7;
-const int TEXTURE8 = RenderingContext.TEXTURE8;
-const int TEXTURE9 = RenderingContext.TEXTURE9;
-const int TEXTURE_2D = RenderingContext.TEXTURE_2D;
-const int TEXTURE_BINDING_2D = RenderingContext.TEXTURE_BINDING_2D;
-const int TEXTURE_BINDING_CUBE_MAP = RenderingContext.TEXTURE_BINDING_CUBE_MAP;
-const int TEXTURE_CUBE_MAP = RenderingContext.TEXTURE_CUBE_MAP;
-const int TEXTURE_CUBE_MAP_NEGATIVE_X =
-    RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_X;
-const int TEXTURE_CUBE_MAP_NEGATIVE_Y =
-    RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Y;
-const int TEXTURE_CUBE_MAP_NEGATIVE_Z =
-    RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Z;
-const int TEXTURE_CUBE_MAP_POSITIVE_X =
-    RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_X;
-const int TEXTURE_CUBE_MAP_POSITIVE_Y =
-    RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Y;
-const int TEXTURE_CUBE_MAP_POSITIVE_Z =
-    RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Z;
-const int TEXTURE_MAG_FILTER = RenderingContext.TEXTURE_MAG_FILTER;
-const int TEXTURE_MIN_FILTER = RenderingContext.TEXTURE_MIN_FILTER;
-const int TEXTURE_WRAP_S = RenderingContext.TEXTURE_WRAP_S;
-const int TEXTURE_WRAP_T = RenderingContext.TEXTURE_WRAP_T;
-const int TRIANGLES = RenderingContext.TRIANGLES;
-const int TRIANGLE_FAN = RenderingContext.TRIANGLE_FAN;
-const int TRIANGLE_STRIP = RenderingContext.TRIANGLE_STRIP;
-const int UNPACK_ALIGNMENT = RenderingContext.UNPACK_ALIGNMENT;
-const int UNPACK_COLORSPACE_CONVERSION_WEBGL =
-    RenderingContext.UNPACK_COLORSPACE_CONVERSION_WEBGL;
-const int UNPACK_FLIP_Y_WEBGL = RenderingContext.UNPACK_FLIP_Y_WEBGL;
-const int UNPACK_PREMULTIPLY_ALPHA_WEBGL =
-    RenderingContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL;
-const int UNSIGNED_BYTE = RenderingContext.UNSIGNED_BYTE;
-const int UNSIGNED_INT = RenderingContext.UNSIGNED_INT;
-const int UNSIGNED_SHORT = RenderingContext.UNSIGNED_SHORT;
-const int UNSIGNED_SHORT_4_4_4_4 = RenderingContext.UNSIGNED_SHORT_4_4_4_4;
-const int UNSIGNED_SHORT_5_5_5_1 = RenderingContext.UNSIGNED_SHORT_5_5_5_1;
-const int UNSIGNED_SHORT_5_6_5 = RenderingContext.UNSIGNED_SHORT_5_6_5;
-const int VALIDATE_STATUS = RenderingContext.VALIDATE_STATUS;
-const int VENDOR = RenderingContext.VENDOR;
-const int VERSION = RenderingContext.VERSION;
-const int VERTEX_ATTRIB_ARRAY_BUFFER_BINDING =
-    RenderingContext.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING;
-const int VERTEX_ATTRIB_ARRAY_ENABLED =
-    RenderingContext.VERTEX_ATTRIB_ARRAY_ENABLED;
-const int VERTEX_ATTRIB_ARRAY_NORMALIZED =
-    RenderingContext.VERTEX_ATTRIB_ARRAY_NORMALIZED;
-const int VERTEX_ATTRIB_ARRAY_POINTER =
-    RenderingContext.VERTEX_ATTRIB_ARRAY_POINTER;
-const int VERTEX_ATTRIB_ARRAY_SIZE = RenderingContext.VERTEX_ATTRIB_ARRAY_SIZE;
-const int VERTEX_ATTRIB_ARRAY_STRIDE =
-    RenderingContext.VERTEX_ATTRIB_ARRAY_STRIDE;
-const int VERTEX_ATTRIB_ARRAY_TYPE = RenderingContext.VERTEX_ATTRIB_ARRAY_TYPE;
-const int VERTEX_SHADER = RenderingContext.VERTEX_SHADER;
-const int VIEWPORT = RenderingContext.VIEWPORT;
-const int ZERO = RenderingContext.ZERO;
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGLActiveInfo')
-@Unstable()
-@Native("WebGLActiveInfo")
-class ActiveInfo extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory ActiveInfo._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('WebGLActiveInfo.name')
-  @DocsEditable()
-  final String name;
-
-  @DomName('WebGLActiveInfo.size')
-  @DocsEditable()
-  final int size;
-
-  @DomName('WebGLActiveInfo.type')
-  @DocsEditable()
-  final int type;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('ANGLEInstancedArrays')
-@Experimental() // untriaged
-@Native("ANGLEInstancedArrays,ANGLE_instanced_arrays")
-class AngleInstancedArrays extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory AngleInstancedArrays._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('ANGLEInstancedArrays.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = 0x88FE;
-
-  @JSName('drawArraysInstancedANGLE')
-  @DomName('ANGLEInstancedArrays.drawArraysInstancedANGLE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void drawArraysInstancedAngle(int mode, int first, int count, int primcount)
-      native;
-
-  @JSName('drawElementsInstancedANGLE')
-  @DomName('ANGLEInstancedArrays.drawElementsInstancedANGLE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void drawElementsInstancedAngle(
-      int mode, int count, int type, int offset, int primcount) native;
-
-  @JSName('vertexAttribDivisorANGLE')
-  @DomName('ANGLEInstancedArrays.vertexAttribDivisorANGLE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void vertexAttribDivisorAngle(int index, int divisor) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGLBuffer')
-@Unstable()
-@Native("WebGLBuffer")
-class Buffer extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Buffer._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('CHROMIUMSubscribeUniform')
-@Experimental() // untriaged
-@Native("CHROMIUMSubscribeUniform")
-class ChromiumSubscribeUniform extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory ChromiumSubscribeUniform._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('CHROMIUMSubscribeUniform.MOUSE_POSITION_CHROMIUM')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int MOUSE_POSITION_CHROMIUM = 0x924C;
-
-  @DomName('CHROMIUMSubscribeUniform.SUBSCRIBED_VALUES_BUFFER_CHROMIUM')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int SUBSCRIBED_VALUES_BUFFER_CHROMIUM = 0x924B;
-
-  @JSName('bindValuebufferCHROMIUM')
-  @DomName('CHROMIUMSubscribeUniform.bindValuebufferCHROMIUM')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void bindValuebufferChromium(int target, ChromiumValuebuffer buffer) native;
-
-  @JSName('createValuebufferCHROMIUM')
-  @DomName('CHROMIUMSubscribeUniform.createValuebufferCHROMIUM')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ChromiumValuebuffer createValuebufferChromium() native;
-
-  @JSName('deleteValuebufferCHROMIUM')
-  @DomName('CHROMIUMSubscribeUniform.deleteValuebufferCHROMIUM')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void deleteValuebufferChromium(ChromiumValuebuffer buffer) native;
-
-  @JSName('isValuebufferCHROMIUM')
-  @DomName('CHROMIUMSubscribeUniform.isValuebufferCHROMIUM')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool isValuebufferChromium(ChromiumValuebuffer buffer) native;
-
-  @JSName('populateSubscribedValuesCHROMIUM')
-  @DomName('CHROMIUMSubscribeUniform.populateSubscribedValuesCHROMIUM')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void populateSubscribedValuesChromium(int target) native;
-
-  @JSName('subscribeValueCHROMIUM')
-  @DomName('CHROMIUMSubscribeUniform.subscribeValueCHROMIUM')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void subscribeValueChromium(int target, int subscriptions) native;
-
-  @JSName('uniformValuebufferCHROMIUM')
-  @DomName('CHROMIUMSubscribeUniform.uniformValuebufferCHROMIUM')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniformValuebufferChromium(
-      UniformLocation location, int target, int subscription) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGLCompressedTextureASTC')
-@Experimental() // untriaged
-@Native("WebGLCompressedTextureASTC")
-class CompressedTextureAstc extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory CompressedTextureAstc._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('WebGLCompressedTextureASTC.COMPRESSED_RGBA_ASTC_10x10_KHR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_RGBA_ASTC_10x10_KHR = 0x93BB;
-
-  @DomName('WebGLCompressedTextureASTC.COMPRESSED_RGBA_ASTC_10x5_KHR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_RGBA_ASTC_10x5_KHR = 0x93B8;
-
-  @DomName('WebGLCompressedTextureASTC.COMPRESSED_RGBA_ASTC_10x6_KHR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_RGBA_ASTC_10x6_KHR = 0x93B9;
-
-  @DomName('WebGLCompressedTextureASTC.COMPRESSED_RGBA_ASTC_10x8_KHR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_RGBA_ASTC_10x8_KHR = 0x93BA;
-
-  @DomName('WebGLCompressedTextureASTC.COMPRESSED_RGBA_ASTC_12x10_KHR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_RGBA_ASTC_12x10_KHR = 0x93BC;
-
-  @DomName('WebGLCompressedTextureASTC.COMPRESSED_RGBA_ASTC_12x12_KHR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_RGBA_ASTC_12x12_KHR = 0x93BD;
-
-  @DomName('WebGLCompressedTextureASTC.COMPRESSED_RGBA_ASTC_4x4_KHR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_RGBA_ASTC_4x4_KHR = 0x93B0;
-
-  @DomName('WebGLCompressedTextureASTC.COMPRESSED_RGBA_ASTC_5x4_KHR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_RGBA_ASTC_5x4_KHR = 0x93B1;
-
-  @DomName('WebGLCompressedTextureASTC.COMPRESSED_RGBA_ASTC_5x5_KHR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_RGBA_ASTC_5x5_KHR = 0x93B2;
-
-  @DomName('WebGLCompressedTextureASTC.COMPRESSED_RGBA_ASTC_6x5_KHR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_RGBA_ASTC_6x5_KHR = 0x93B3;
-
-  @DomName('WebGLCompressedTextureASTC.COMPRESSED_RGBA_ASTC_6x6_KHR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_RGBA_ASTC_6x6_KHR = 0x93B4;
-
-  @DomName('WebGLCompressedTextureASTC.COMPRESSED_RGBA_ASTC_8x5_KHR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_RGBA_ASTC_8x5_KHR = 0x93B5;
-
-  @DomName('WebGLCompressedTextureASTC.COMPRESSED_RGBA_ASTC_8x6_KHR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_RGBA_ASTC_8x6_KHR = 0x93B6;
-
-  @DomName('WebGLCompressedTextureASTC.COMPRESSED_RGBA_ASTC_8x8_KHR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_RGBA_ASTC_8x8_KHR = 0x93B7;
-
-  @DomName('WebGLCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = 0x93DB;
-
-  @DomName('WebGLCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = 0x93D8;
-
-  @DomName('WebGLCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = 0x93D9;
-
-  @DomName('WebGLCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = 0x93DA;
-
-  @DomName('WebGLCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = 0x93DC;
-
-  @DomName('WebGLCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = 0x93DD;
-
-  @DomName('WebGLCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = 0x93D0;
-
-  @DomName('WebGLCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = 0x93D1;
-
-  @DomName('WebGLCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = 0x93D2;
-
-  @DomName('WebGLCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = 0x93D3;
-
-  @DomName('WebGLCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = 0x93D4;
-
-  @DomName('WebGLCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = 0x93D5;
-
-  @DomName('WebGLCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = 0x93D6;
-
-  @DomName('WebGLCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = 0x93D7;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGLCompressedTextureATC')
-// http://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_atc/
-@Experimental()
-@Native("WebGLCompressedTextureATC,WEBGL_compressed_texture_atc")
-class CompressedTextureAtc extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory CompressedTextureAtc._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('WebGLCompressedTextureATC.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL')
-  @DocsEditable()
-  static const int COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL = 0x8C93;
-
-  @DomName(
-      'WebGLCompressedTextureATC.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL')
-  @DocsEditable()
-  static const int COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL = 0x87EE;
-
-  @DomName('WebGLCompressedTextureATC.COMPRESSED_RGB_ATC_WEBGL')
-  @DocsEditable()
-  static const int COMPRESSED_RGB_ATC_WEBGL = 0x8C92;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGLCompressedTextureETC1')
-@Experimental() // untriaged
-@Native("WebGLCompressedTextureETC1,WEBGL_compressed_texture_etc1")
-class CompressedTextureETC1 extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory CompressedTextureETC1._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('WebGLCompressedTextureETC1.COMPRESSED_RGB_ETC1_WEBGL')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_RGB_ETC1_WEBGL = 0x8D64;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGLCompressedTexturePVRTC')
-// http://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_pvrtc/
-@Experimental() // experimental
-@Native("WebGLCompressedTexturePVRTC,WEBGL_compressed_texture_pvrtc")
-class CompressedTexturePvrtc extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory CompressedTexturePvrtc._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('WebGLCompressedTexturePVRTC.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG')
-  @DocsEditable()
-  static const int COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03;
-
-  @DomName('WebGLCompressedTexturePVRTC.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG')
-  @DocsEditable()
-  static const int COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02;
-
-  @DomName('WebGLCompressedTexturePVRTC.COMPRESSED_RGB_PVRTC_2BPPV1_IMG')
-  @DocsEditable()
-  static const int COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 0x8C01;
-
-  @DomName('WebGLCompressedTexturePVRTC.COMPRESSED_RGB_PVRTC_4BPPV1_IMG')
-  @DocsEditable()
-  static const int COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 0x8C00;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGLCompressedTextureS3TC')
-// http://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_s3tc/
-@Experimental() // experimental
-@Native("WebGLCompressedTextureS3TC,WEBGL_compressed_texture_s3tc")
-class CompressedTextureS3TC extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory CompressedTextureS3TC._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('WebGLCompressedTextureS3TC.COMPRESSED_RGBA_S3TC_DXT1_EXT')
-  @DocsEditable()
-  static const int COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1;
-
-  @DomName('WebGLCompressedTextureS3TC.COMPRESSED_RGBA_S3TC_DXT3_EXT')
-  @DocsEditable()
-  static const int COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2;
-
-  @DomName('WebGLCompressedTextureS3TC.COMPRESSED_RGBA_S3TC_DXT5_EXT')
-  @DocsEditable()
-  static const int COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3;
-
-  @DomName('WebGLCompressedTextureS3TC.COMPRESSED_RGB_S3TC_DXT1_EXT')
-  @DocsEditable()
-  static const int COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGLContextEvent')
-@Unstable()
-@Native("WebGLContextEvent")
-class ContextEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory ContextEvent._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('WebGLContextEvent.WebGLContextEvent')
-  @DocsEditable()
-  factory ContextEvent(String type, [Map eventInit]) {
-    if (eventInit != null) {
-      var eventInit_1 = convertDartToNative_Dictionary(eventInit);
-      return ContextEvent._create_1(type, eventInit_1);
-    }
-    return ContextEvent._create_2(type);
-  }
-  static ContextEvent _create_1(type, eventInit) =>
-      JS('ContextEvent', 'new WebGLContextEvent(#,#)', type, eventInit);
-  static ContextEvent _create_2(type) =>
-      JS('ContextEvent', 'new WebGLContextEvent(#)', type);
-
-  @DomName('WebGLContextEvent.statusMessage')
-  @DocsEditable()
-  final String statusMessage;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGLDebugRendererInfo')
-// http://www.khronos.org/registry/webgl/extensions/WEBGL_debug_renderer_info/
-@Experimental() // experimental
-@Native("WebGLDebugRendererInfo,WEBGL_debug_renderer_info")
-class DebugRendererInfo extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory DebugRendererInfo._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('WebGLDebugRendererInfo.UNMASKED_RENDERER_WEBGL')
-  @DocsEditable()
-  static const int UNMASKED_RENDERER_WEBGL = 0x9246;
-
-  @DomName('WebGLDebugRendererInfo.UNMASKED_VENDOR_WEBGL')
-  @DocsEditable()
-  static const int UNMASKED_VENDOR_WEBGL = 0x9245;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGLDebugShaders')
-// http://www.khronos.org/registry/webgl/extensions/WEBGL_debug_shaders/
-@Experimental() // experimental
-@Native("WebGLDebugShaders,WEBGL_debug_shaders")
-class DebugShaders extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory DebugShaders._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('WebGLDebugShaders.getTranslatedShaderSource')
-  @DocsEditable()
-  String getTranslatedShaderSource(Shader shader) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGLDepthTexture')
-// http://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/
-@Experimental() // experimental
-@Native("WebGLDepthTexture,WEBGL_depth_texture")
-class DepthTexture extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory DepthTexture._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('WebGLDepthTexture.UNSIGNED_INT_24_8_WEBGL')
-  @DocsEditable()
-  static const int UNSIGNED_INT_24_8_WEBGL = 0x84FA;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGLDrawBuffers')
-// http://www.khronos.org/registry/webgl/specs/latest/
-@Experimental() // stable
-@Native("WebGLDrawBuffers,WEBGL_draw_buffers")
-class DrawBuffers extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory DrawBuffers._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT0_WEBGL')
-  @DocsEditable()
-  static const int COLOR_ATTACHMENT0_WEBGL = 0x8CE0;
-
-  @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT10_WEBGL')
-  @DocsEditable()
-  static const int COLOR_ATTACHMENT10_WEBGL = 0x8CEA;
-
-  @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT11_WEBGL')
-  @DocsEditable()
-  static const int COLOR_ATTACHMENT11_WEBGL = 0x8CEB;
-
-  @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT12_WEBGL')
-  @DocsEditable()
-  static const int COLOR_ATTACHMENT12_WEBGL = 0x8CEC;
-
-  @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT13_WEBGL')
-  @DocsEditable()
-  static const int COLOR_ATTACHMENT13_WEBGL = 0x8CED;
-
-  @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT14_WEBGL')
-  @DocsEditable()
-  static const int COLOR_ATTACHMENT14_WEBGL = 0x8CEE;
-
-  @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT15_WEBGL')
-  @DocsEditable()
-  static const int COLOR_ATTACHMENT15_WEBGL = 0x8CEF;
-
-  @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT1_WEBGL')
-  @DocsEditable()
-  static const int COLOR_ATTACHMENT1_WEBGL = 0x8CE1;
-
-  @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT2_WEBGL')
-  @DocsEditable()
-  static const int COLOR_ATTACHMENT2_WEBGL = 0x8CE2;
-
-  @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT3_WEBGL')
-  @DocsEditable()
-  static const int COLOR_ATTACHMENT3_WEBGL = 0x8CE3;
-
-  @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT4_WEBGL')
-  @DocsEditable()
-  static const int COLOR_ATTACHMENT4_WEBGL = 0x8CE4;
-
-  @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT5_WEBGL')
-  @DocsEditable()
-  static const int COLOR_ATTACHMENT5_WEBGL = 0x8CE5;
-
-  @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT6_WEBGL')
-  @DocsEditable()
-  static const int COLOR_ATTACHMENT6_WEBGL = 0x8CE6;
-
-  @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT7_WEBGL')
-  @DocsEditable()
-  static const int COLOR_ATTACHMENT7_WEBGL = 0x8CE7;
-
-  @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT8_WEBGL')
-  @DocsEditable()
-  static const int COLOR_ATTACHMENT8_WEBGL = 0x8CE8;
-
-  @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT9_WEBGL')
-  @DocsEditable()
-  static const int COLOR_ATTACHMENT9_WEBGL = 0x8CE9;
-
-  @DomName('WebGLDrawBuffers.DRAW_BUFFER0_WEBGL')
-  @DocsEditable()
-  static const int DRAW_BUFFER0_WEBGL = 0x8825;
-
-  @DomName('WebGLDrawBuffers.DRAW_BUFFER10_WEBGL')
-  @DocsEditable()
-  static const int DRAW_BUFFER10_WEBGL = 0x882F;
-
-  @DomName('WebGLDrawBuffers.DRAW_BUFFER11_WEBGL')
-  @DocsEditable()
-  static const int DRAW_BUFFER11_WEBGL = 0x8830;
-
-  @DomName('WebGLDrawBuffers.DRAW_BUFFER12_WEBGL')
-  @DocsEditable()
-  static const int DRAW_BUFFER12_WEBGL = 0x8831;
-
-  @DomName('WebGLDrawBuffers.DRAW_BUFFER13_WEBGL')
-  @DocsEditable()
-  static const int DRAW_BUFFER13_WEBGL = 0x8832;
-
-  @DomName('WebGLDrawBuffers.DRAW_BUFFER14_WEBGL')
-  @DocsEditable()
-  static const int DRAW_BUFFER14_WEBGL = 0x8833;
-
-  @DomName('WebGLDrawBuffers.DRAW_BUFFER15_WEBGL')
-  @DocsEditable()
-  static const int DRAW_BUFFER15_WEBGL = 0x8834;
-
-  @DomName('WebGLDrawBuffers.DRAW_BUFFER1_WEBGL')
-  @DocsEditable()
-  static const int DRAW_BUFFER1_WEBGL = 0x8826;
-
-  @DomName('WebGLDrawBuffers.DRAW_BUFFER2_WEBGL')
-  @DocsEditable()
-  static const int DRAW_BUFFER2_WEBGL = 0x8827;
-
-  @DomName('WebGLDrawBuffers.DRAW_BUFFER3_WEBGL')
-  @DocsEditable()
-  static const int DRAW_BUFFER3_WEBGL = 0x8828;
-
-  @DomName('WebGLDrawBuffers.DRAW_BUFFER4_WEBGL')
-  @DocsEditable()
-  static const int DRAW_BUFFER4_WEBGL = 0x8829;
-
-  @DomName('WebGLDrawBuffers.DRAW_BUFFER5_WEBGL')
-  @DocsEditable()
-  static const int DRAW_BUFFER5_WEBGL = 0x882A;
-
-  @DomName('WebGLDrawBuffers.DRAW_BUFFER6_WEBGL')
-  @DocsEditable()
-  static const int DRAW_BUFFER6_WEBGL = 0x882B;
-
-  @DomName('WebGLDrawBuffers.DRAW_BUFFER7_WEBGL')
-  @DocsEditable()
-  static const int DRAW_BUFFER7_WEBGL = 0x882C;
-
-  @DomName('WebGLDrawBuffers.DRAW_BUFFER8_WEBGL')
-  @DocsEditable()
-  static const int DRAW_BUFFER8_WEBGL = 0x882D;
-
-  @DomName('WebGLDrawBuffers.DRAW_BUFFER9_WEBGL')
-  @DocsEditable()
-  static const int DRAW_BUFFER9_WEBGL = 0x882E;
-
-  @DomName('WebGLDrawBuffers.MAX_COLOR_ATTACHMENTS_WEBGL')
-  @DocsEditable()
-  static const int MAX_COLOR_ATTACHMENTS_WEBGL = 0x8CDF;
-
-  @DomName('WebGLDrawBuffers.MAX_DRAW_BUFFERS_WEBGL')
-  @DocsEditable()
-  static const int MAX_DRAW_BUFFERS_WEBGL = 0x8824;
-
-  @JSName('drawBuffersWEBGL')
-  @DomName('WebGLDrawBuffers.drawBuffersWEBGL')
-  @DocsEditable()
-  void drawBuffersWebgl(List<int> buffers) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('EXTsRGB')
-@Experimental() // untriaged
-@Native("EXTsRGB,EXT_sRGB")
-class EXTsRgb extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory EXTsRgb._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('EXTsRGB.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT = 0x8210;
-
-  @DomName('EXTsRGB.SRGB8_ALPHA8_EXT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int SRGB8_ALPHA8_EXT = 0x8C43;
-
-  @DomName('EXTsRGB.SRGB_ALPHA_EXT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int SRGB_ALPHA_EXT = 0x8C42;
-
-  @DomName('EXTsRGB.SRGB_EXT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int SRGB_EXT = 0x8C40;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('EXTBlendMinMax')
-@Experimental() // untriaged
-@Native("EXTBlendMinMax,EXT_blend_minmax")
-class ExtBlendMinMax extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory ExtBlendMinMax._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('EXTBlendMinMax.MAX_EXT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int MAX_EXT = 0x8008;
-
-  @DomName('EXTBlendMinMax.MIN_EXT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int MIN_EXT = 0x8007;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('EXTColorBufferFloat')
-@Experimental() // untriaged
-@Native("EXTColorBufferFloat")
-class ExtColorBufferFloat extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory ExtColorBufferFloat._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('EXTDisjointTimerQuery')
-@Experimental() // untriaged
-@Native("EXTDisjointTimerQuery")
-class ExtDisjointTimerQuery extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory ExtDisjointTimerQuery._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('EXTDisjointTimerQuery.CURRENT_QUERY_EXT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int CURRENT_QUERY_EXT = 0x8865;
-
-  @DomName('EXTDisjointTimerQuery.GPU_DISJOINT_EXT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int GPU_DISJOINT_EXT = 0x8FBB;
-
-  @DomName('EXTDisjointTimerQuery.QUERY_COUNTER_BITS_EXT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int QUERY_COUNTER_BITS_EXT = 0x8864;
-
-  @DomName('EXTDisjointTimerQuery.QUERY_RESULT_AVAILABLE_EXT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int QUERY_RESULT_AVAILABLE_EXT = 0x8867;
-
-  @DomName('EXTDisjointTimerQuery.QUERY_RESULT_EXT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int QUERY_RESULT_EXT = 0x8866;
-
-  @DomName('EXTDisjointTimerQuery.TIMESTAMP_EXT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TIMESTAMP_EXT = 0x8E28;
-
-  @DomName('EXTDisjointTimerQuery.TIME_ELAPSED_EXT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TIME_ELAPSED_EXT = 0x88BF;
-
-  @JSName('beginQueryEXT')
-  @DomName('EXTDisjointTimerQuery.beginQueryEXT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void beginQueryExt(int target, TimerQueryExt query) native;
-
-  @JSName('createQueryEXT')
-  @DomName('EXTDisjointTimerQuery.createQueryEXT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  TimerQueryExt createQueryExt() native;
-
-  @JSName('deleteQueryEXT')
-  @DomName('EXTDisjointTimerQuery.deleteQueryEXT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void deleteQueryExt(TimerQueryExt query) native;
-
-  @JSName('endQueryEXT')
-  @DomName('EXTDisjointTimerQuery.endQueryEXT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void endQueryExt(int target) native;
-
-  @JSName('getQueryEXT')
-  @DomName('EXTDisjointTimerQuery.getQueryEXT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object getQueryExt(int target, int pname) native;
-
-  @JSName('getQueryObjectEXT')
-  @DomName('EXTDisjointTimerQuery.getQueryObjectEXT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object getQueryObjectExt(TimerQueryExt query, int pname) native;
-
-  @JSName('isQueryEXT')
-  @DomName('EXTDisjointTimerQuery.isQueryEXT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool isQueryExt(TimerQueryExt query) native;
-
-  @JSName('queryCounterEXT')
-  @DomName('EXTDisjointTimerQuery.queryCounterEXT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void queryCounterExt(TimerQueryExt query, int target) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('EXTFragDepth')
-// http://www.khronos.org/registry/webgl/extensions/EXT_frag_depth/
-@Experimental()
-@Native("EXTFragDepth,EXT_frag_depth")
-class ExtFragDepth extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory ExtFragDepth._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('EXTShaderTextureLOD')
-@Experimental() // untriaged
-@Native("EXTShaderTextureLOD,EXT_shader_texture_lod")
-class ExtShaderTextureLod extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory ExtShaderTextureLod._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('EXTTextureFilterAnisotropic')
-// http://www.khronos.org/registry/webgl/extensions/EXT_texture_filter_anisotropic/
-@Experimental()
-@Native("EXTTextureFilterAnisotropic,EXT_texture_filter_anisotropic")
-class ExtTextureFilterAnisotropic extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory ExtTextureFilterAnisotropic._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('EXTTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT')
-  @DocsEditable()
-  static const int MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF;
-
-  @DomName('EXTTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT')
-  @DocsEditable()
-  static const int TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGLFramebuffer')
-@Unstable()
-@Native("WebGLFramebuffer")
-class Framebuffer extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Framebuffer._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGLLoseContext')
-// http://www.khronos.org/registry/webgl/extensions/WEBGL_lose_context/
-@Experimental()
-@Native("WebGLLoseContext,WebGLExtensionLoseContext,WEBGL_lose_context")
-class LoseContext extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory LoseContext._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('WebGLLoseContext.loseContext')
-  @DocsEditable()
-  void loseContext() native;
-
-  @DomName('WebGLLoseContext.restoreContext')
-  @DocsEditable()
-  void restoreContext() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('OESElementIndexUint')
-// http://www.khronos.org/registry/webgl/extensions/OES_element_index_uint/
-@Experimental() // experimental
-@Native("OESElementIndexUint,OES_element_index_uint")
-class OesElementIndexUint extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory OesElementIndexUint._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('OESStandardDerivatives')
-// http://www.khronos.org/registry/webgl/extensions/OES_standard_derivatives/
-@Experimental() // experimental
-@Native("OESStandardDerivatives,OES_standard_derivatives")
-class OesStandardDerivatives extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory OesStandardDerivatives._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('OESStandardDerivatives.FRAGMENT_SHADER_DERIVATIVE_HINT_OES')
-  @DocsEditable()
-  static const int FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 0x8B8B;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('OESTextureFloat')
-// http://www.khronos.org/registry/webgl/extensions/OES_texture_float/
-@Experimental() // experimental
-@Native("OESTextureFloat,OES_texture_float")
-class OesTextureFloat extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory OesTextureFloat._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('OESTextureFloatLinear')
-// http://www.khronos.org/registry/webgl/extensions/OES_texture_float_linear/
-@Experimental()
-@Native("OESTextureFloatLinear,OES_texture_float_linear")
-class OesTextureFloatLinear extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory OesTextureFloatLinear._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('OESTextureHalfFloat')
-// http://www.khronos.org/registry/webgl/extensions/OES_texture_half_float/
-@Experimental() // experimental
-@Native("OESTextureHalfFloat,OES_texture_half_float")
-class OesTextureHalfFloat extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory OesTextureHalfFloat._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('OESTextureHalfFloat.HALF_FLOAT_OES')
-  @DocsEditable()
-  static const int HALF_FLOAT_OES = 0x8D61;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('OESTextureHalfFloatLinear')
-// http://www.khronos.org/registry/webgl/extensions/OES_texture_half_float_linear/
-@Experimental()
-@Native("OESTextureHalfFloatLinear,OES_texture_half_float_linear")
-class OesTextureHalfFloatLinear extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory OesTextureHalfFloatLinear._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('OESVertexArrayObject')
-// http://www.khronos.org/registry/webgl/extensions/OES_vertex_array_object/
-@Experimental() // experimental
-@Native("OESVertexArrayObject,OES_vertex_array_object")
-class OesVertexArrayObject extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory OesVertexArrayObject._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('OESVertexArrayObject.VERTEX_ARRAY_BINDING_OES')
-  @DocsEditable()
-  static const int VERTEX_ARRAY_BINDING_OES = 0x85B5;
-
-  @JSName('bindVertexArrayOES')
-  @DomName('OESVertexArrayObject.bindVertexArrayOES')
-  @DocsEditable()
-  void bindVertexArray(VertexArrayObjectOes arrayObject) native;
-
-  @JSName('createVertexArrayOES')
-  @DomName('OESVertexArrayObject.createVertexArrayOES')
-  @DocsEditable()
-  VertexArrayObjectOes createVertexArray() native;
-
-  @JSName('deleteVertexArrayOES')
-  @DomName('OESVertexArrayObject.deleteVertexArrayOES')
-  @DocsEditable()
-  void deleteVertexArray(VertexArrayObjectOes arrayObject) native;
-
-  @JSName('isVertexArrayOES')
-  @DomName('OESVertexArrayObject.isVertexArrayOES')
-  @DocsEditable()
-  bool isVertexArray(VertexArrayObjectOes arrayObject) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGLProgram')
-@Unstable()
-@Native("WebGLProgram")
-class Program extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Program._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGLQuery')
-@Experimental() // untriaged
-@Native("WebGLQuery")
-class Query extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Query._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGLRenderbuffer')
-@Unstable()
-@Native("WebGLRenderbuffer")
-class Renderbuffer extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Renderbuffer._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DomName('WebGLRenderingContext')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@Experimental()
-@Unstable()
-@Native("WebGLRenderingContext")
-class RenderingContext extends Interceptor implements CanvasRenderingContext {
-  // To suppress missing implicit constructor warnings.
-  factory RenderingContext._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported => JS('bool', '!!(window.WebGLRenderingContext)');
-
-  @DomName('WebGLRenderingContext.ACTIVE_ATTRIBUTES')
-  @DocsEditable()
-  static const int ACTIVE_ATTRIBUTES = 0x8B89;
-
-  @DomName('WebGLRenderingContext.ACTIVE_TEXTURE')
-  @DocsEditable()
-  static const int ACTIVE_TEXTURE = 0x84E0;
-
-  @DomName('WebGLRenderingContext.ACTIVE_UNIFORMS')
-  @DocsEditable()
-  static const int ACTIVE_UNIFORMS = 0x8B86;
-
-  @DomName('WebGLRenderingContext.ALIASED_LINE_WIDTH_RANGE')
-  @DocsEditable()
-  static const int ALIASED_LINE_WIDTH_RANGE = 0x846E;
-
-  @DomName('WebGLRenderingContext.ALIASED_POINT_SIZE_RANGE')
-  @DocsEditable()
-  static const int ALIASED_POINT_SIZE_RANGE = 0x846D;
-
-  @DomName('WebGLRenderingContext.ALPHA')
-  @DocsEditable()
-  static const int ALPHA = 0x1906;
-
-  @DomName('WebGLRenderingContext.ALPHA_BITS')
-  @DocsEditable()
-  static const int ALPHA_BITS = 0x0D55;
-
-  @DomName('WebGLRenderingContext.ALWAYS')
-  @DocsEditable()
-  static const int ALWAYS = 0x0207;
-
-  @DomName('WebGLRenderingContext.ARRAY_BUFFER')
-  @DocsEditable()
-  static const int ARRAY_BUFFER = 0x8892;
-
-  @DomName('WebGLRenderingContext.ARRAY_BUFFER_BINDING')
-  @DocsEditable()
-  static const int ARRAY_BUFFER_BINDING = 0x8894;
-
-  @DomName('WebGLRenderingContext.ATTACHED_SHADERS')
-  @DocsEditable()
-  static const int ATTACHED_SHADERS = 0x8B85;
-
-  @DomName('WebGLRenderingContext.BACK')
-  @DocsEditable()
-  static const int BACK = 0x0405;
-
-  @DomName('WebGLRenderingContext.BLEND')
-  @DocsEditable()
-  static const int BLEND = 0x0BE2;
-
-  @DomName('WebGLRenderingContext.BLEND_COLOR')
-  @DocsEditable()
-  static const int BLEND_COLOR = 0x8005;
-
-  @DomName('WebGLRenderingContext.BLEND_DST_ALPHA')
-  @DocsEditable()
-  static const int BLEND_DST_ALPHA = 0x80CA;
-
-  @DomName('WebGLRenderingContext.BLEND_DST_RGB')
-  @DocsEditable()
-  static const int BLEND_DST_RGB = 0x80C8;
-
-  @DomName('WebGLRenderingContext.BLEND_EQUATION')
-  @DocsEditable()
-  static const int BLEND_EQUATION = 0x8009;
-
-  @DomName('WebGLRenderingContext.BLEND_EQUATION_ALPHA')
-  @DocsEditable()
-  static const int BLEND_EQUATION_ALPHA = 0x883D;
-
-  @DomName('WebGLRenderingContext.BLEND_EQUATION_RGB')
-  @DocsEditable()
-  static const int BLEND_EQUATION_RGB = 0x8009;
-
-  @DomName('WebGLRenderingContext.BLEND_SRC_ALPHA')
-  @DocsEditable()
-  static const int BLEND_SRC_ALPHA = 0x80CB;
-
-  @DomName('WebGLRenderingContext.BLEND_SRC_RGB')
-  @DocsEditable()
-  static const int BLEND_SRC_RGB = 0x80C9;
-
-  @DomName('WebGLRenderingContext.BLUE_BITS')
-  @DocsEditable()
-  static const int BLUE_BITS = 0x0D54;
-
-  @DomName('WebGLRenderingContext.BOOL')
-  @DocsEditable()
-  static const int BOOL = 0x8B56;
-
-  @DomName('WebGLRenderingContext.BOOL_VEC2')
-  @DocsEditable()
-  static const int BOOL_VEC2 = 0x8B57;
-
-  @DomName('WebGLRenderingContext.BOOL_VEC3')
-  @DocsEditable()
-  static const int BOOL_VEC3 = 0x8B58;
-
-  @DomName('WebGLRenderingContext.BOOL_VEC4')
-  @DocsEditable()
-  static const int BOOL_VEC4 = 0x8B59;
-
-  @DomName('WebGLRenderingContext.BROWSER_DEFAULT_WEBGL')
-  @DocsEditable()
-  static const int BROWSER_DEFAULT_WEBGL = 0x9244;
-
-  @DomName('WebGLRenderingContext.BUFFER_SIZE')
-  @DocsEditable()
-  static const int BUFFER_SIZE = 0x8764;
-
-  @DomName('WebGLRenderingContext.BUFFER_USAGE')
-  @DocsEditable()
-  static const int BUFFER_USAGE = 0x8765;
-
-  @DomName('WebGLRenderingContext.BYTE')
-  @DocsEditable()
-  static const int BYTE = 0x1400;
-
-  @DomName('WebGLRenderingContext.CCW')
-  @DocsEditable()
-  static const int CCW = 0x0901;
-
-  @DomName('WebGLRenderingContext.CLAMP_TO_EDGE')
-  @DocsEditable()
-  static const int CLAMP_TO_EDGE = 0x812F;
-
-  @DomName('WebGLRenderingContext.COLOR_ATTACHMENT0')
-  @DocsEditable()
-  static const int COLOR_ATTACHMENT0 = 0x8CE0;
-
-  @DomName('WebGLRenderingContext.COLOR_BUFFER_BIT')
-  @DocsEditable()
-  static const int COLOR_BUFFER_BIT = 0x00004000;
-
-  @DomName('WebGLRenderingContext.COLOR_CLEAR_VALUE')
-  @DocsEditable()
-  static const int COLOR_CLEAR_VALUE = 0x0C22;
-
-  @DomName('WebGLRenderingContext.COLOR_WRITEMASK')
-  @DocsEditable()
-  static const int COLOR_WRITEMASK = 0x0C23;
-
-  @DomName('WebGLRenderingContext.COMPILE_STATUS')
-  @DocsEditable()
-  static const int COMPILE_STATUS = 0x8B81;
-
-  @DomName('WebGLRenderingContext.COMPRESSED_TEXTURE_FORMATS')
-  @DocsEditable()
-  static const int COMPRESSED_TEXTURE_FORMATS = 0x86A3;
-
-  @DomName('WebGLRenderingContext.CONSTANT_ALPHA')
-  @DocsEditable()
-  static const int CONSTANT_ALPHA = 0x8003;
-
-  @DomName('WebGLRenderingContext.CONSTANT_COLOR')
-  @DocsEditable()
-  static const int CONSTANT_COLOR = 0x8001;
-
-  @DomName('WebGLRenderingContext.CONTEXT_LOST_WEBGL')
-  @DocsEditable()
-  static const int CONTEXT_LOST_WEBGL = 0x9242;
-
-  @DomName('WebGLRenderingContext.CULL_FACE')
-  @DocsEditable()
-  static const int CULL_FACE = 0x0B44;
-
-  @DomName('WebGLRenderingContext.CULL_FACE_MODE')
-  @DocsEditable()
-  static const int CULL_FACE_MODE = 0x0B45;
-
-  @DomName('WebGLRenderingContext.CURRENT_PROGRAM')
-  @DocsEditable()
-  static const int CURRENT_PROGRAM = 0x8B8D;
-
-  @DomName('WebGLRenderingContext.CURRENT_VERTEX_ATTRIB')
-  @DocsEditable()
-  static const int CURRENT_VERTEX_ATTRIB = 0x8626;
-
-  @DomName('WebGLRenderingContext.CW')
-  @DocsEditable()
-  static const int CW = 0x0900;
-
-  @DomName('WebGLRenderingContext.DECR')
-  @DocsEditable()
-  static const int DECR = 0x1E03;
-
-  @DomName('WebGLRenderingContext.DECR_WRAP')
-  @DocsEditable()
-  static const int DECR_WRAP = 0x8508;
-
-  @DomName('WebGLRenderingContext.DELETE_STATUS')
-  @DocsEditable()
-  static const int DELETE_STATUS = 0x8B80;
-
-  @DomName('WebGLRenderingContext.DEPTH_ATTACHMENT')
-  @DocsEditable()
-  static const int DEPTH_ATTACHMENT = 0x8D00;
-
-  @DomName('WebGLRenderingContext.DEPTH_BITS')
-  @DocsEditable()
-  static const int DEPTH_BITS = 0x0D56;
-
-  @DomName('WebGLRenderingContext.DEPTH_BUFFER_BIT')
-  @DocsEditable()
-  static const int DEPTH_BUFFER_BIT = 0x00000100;
-
-  @DomName('WebGLRenderingContext.DEPTH_CLEAR_VALUE')
-  @DocsEditable()
-  static const int DEPTH_CLEAR_VALUE = 0x0B73;
-
-  @DomName('WebGLRenderingContext.DEPTH_COMPONENT')
-  @DocsEditable()
-  static const int DEPTH_COMPONENT = 0x1902;
-
-  @DomName('WebGLRenderingContext.DEPTH_COMPONENT16')
-  @DocsEditable()
-  static const int DEPTH_COMPONENT16 = 0x81A5;
-
-  @DomName('WebGLRenderingContext.DEPTH_FUNC')
-  @DocsEditable()
-  static const int DEPTH_FUNC = 0x0B74;
-
-  @DomName('WebGLRenderingContext.DEPTH_RANGE')
-  @DocsEditable()
-  static const int DEPTH_RANGE = 0x0B70;
-
-  @DomName('WebGLRenderingContext.DEPTH_STENCIL')
-  @DocsEditable()
-  static const int DEPTH_STENCIL = 0x84F9;
-
-  @DomName('WebGLRenderingContext.DEPTH_STENCIL_ATTACHMENT')
-  @DocsEditable()
-  static const int DEPTH_STENCIL_ATTACHMENT = 0x821A;
-
-  @DomName('WebGLRenderingContext.DEPTH_TEST')
-  @DocsEditable()
-  static const int DEPTH_TEST = 0x0B71;
-
-  @DomName('WebGLRenderingContext.DEPTH_WRITEMASK')
-  @DocsEditable()
-  static const int DEPTH_WRITEMASK = 0x0B72;
-
-  @DomName('WebGLRenderingContext.DITHER')
-  @DocsEditable()
-  static const int DITHER = 0x0BD0;
-
-  @DomName('WebGLRenderingContext.DONT_CARE')
-  @DocsEditable()
-  static const int DONT_CARE = 0x1100;
-
-  @DomName('WebGLRenderingContext.DST_ALPHA')
-  @DocsEditable()
-  static const int DST_ALPHA = 0x0304;
-
-  @DomName('WebGLRenderingContext.DST_COLOR')
-  @DocsEditable()
-  static const int DST_COLOR = 0x0306;
-
-  @DomName('WebGLRenderingContext.DYNAMIC_DRAW')
-  @DocsEditable()
-  static const int DYNAMIC_DRAW = 0x88E8;
-
-  @DomName('WebGLRenderingContext.ELEMENT_ARRAY_BUFFER')
-  @DocsEditable()
-  static const int ELEMENT_ARRAY_BUFFER = 0x8893;
-
-  @DomName('WebGLRenderingContext.ELEMENT_ARRAY_BUFFER_BINDING')
-  @DocsEditable()
-  static const int ELEMENT_ARRAY_BUFFER_BINDING = 0x8895;
-
-  @DomName('WebGLRenderingContext.EQUAL')
-  @DocsEditable()
-  static const int EQUAL = 0x0202;
-
-  @DomName('WebGLRenderingContext.FASTEST')
-  @DocsEditable()
-  static const int FASTEST = 0x1101;
-
-  @DomName('WebGLRenderingContext.FLOAT')
-  @DocsEditable()
-  static const int FLOAT = 0x1406;
-
-  @DomName('WebGLRenderingContext.FLOAT_MAT2')
-  @DocsEditable()
-  static const int FLOAT_MAT2 = 0x8B5A;
-
-  @DomName('WebGLRenderingContext.FLOAT_MAT3')
-  @DocsEditable()
-  static const int FLOAT_MAT3 = 0x8B5B;
-
-  @DomName('WebGLRenderingContext.FLOAT_MAT4')
-  @DocsEditable()
-  static const int FLOAT_MAT4 = 0x8B5C;
-
-  @DomName('WebGLRenderingContext.FLOAT_VEC2')
-  @DocsEditable()
-  static const int FLOAT_VEC2 = 0x8B50;
-
-  @DomName('WebGLRenderingContext.FLOAT_VEC3')
-  @DocsEditable()
-  static const int FLOAT_VEC3 = 0x8B51;
-
-  @DomName('WebGLRenderingContext.FLOAT_VEC4')
-  @DocsEditable()
-  static const int FLOAT_VEC4 = 0x8B52;
-
-  @DomName('WebGLRenderingContext.FRAGMENT_SHADER')
-  @DocsEditable()
-  static const int FRAGMENT_SHADER = 0x8B30;
-
-  @DomName('WebGLRenderingContext.FRAMEBUFFER')
-  @DocsEditable()
-  static const int FRAMEBUFFER = 0x8D40;
-
-  @DomName('WebGLRenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME')
-  @DocsEditable()
-  static const int FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1;
-
-  @DomName('WebGLRenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE')
-  @DocsEditable()
-  static const int FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0;
-
-  @DomName('WebGLRenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE')
-  @DocsEditable()
-  static const int FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3;
-
-  @DomName('WebGLRenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL')
-  @DocsEditable()
-  static const int FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2;
-
-  @DomName('WebGLRenderingContext.FRAMEBUFFER_BINDING')
-  @DocsEditable()
-  static const int FRAMEBUFFER_BINDING = 0x8CA6;
-
-  @DomName('WebGLRenderingContext.FRAMEBUFFER_COMPLETE')
-  @DocsEditable()
-  static const int FRAMEBUFFER_COMPLETE = 0x8CD5;
-
-  @DomName('WebGLRenderingContext.FRAMEBUFFER_INCOMPLETE_ATTACHMENT')
-  @DocsEditable()
-  static const int FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6;
-
-  @DomName('WebGLRenderingContext.FRAMEBUFFER_INCOMPLETE_DIMENSIONS')
-  @DocsEditable()
-  static const int FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9;
-
-  @DomName('WebGLRenderingContext.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT')
-  @DocsEditable()
-  static const int FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7;
-
-  @DomName('WebGLRenderingContext.FRAMEBUFFER_UNSUPPORTED')
-  @DocsEditable()
-  static const int FRAMEBUFFER_UNSUPPORTED = 0x8CDD;
-
-  @DomName('WebGLRenderingContext.FRONT')
-  @DocsEditable()
-  static const int FRONT = 0x0404;
-
-  @DomName('WebGLRenderingContext.FRONT_AND_BACK')
-  @DocsEditable()
-  static const int FRONT_AND_BACK = 0x0408;
-
-  @DomName('WebGLRenderingContext.FRONT_FACE')
-  @DocsEditable()
-  static const int FRONT_FACE = 0x0B46;
-
-  @DomName('WebGLRenderingContext.FUNC_ADD')
-  @DocsEditable()
-  static const int FUNC_ADD = 0x8006;
-
-  @DomName('WebGLRenderingContext.FUNC_REVERSE_SUBTRACT')
-  @DocsEditable()
-  static const int FUNC_REVERSE_SUBTRACT = 0x800B;
-
-  @DomName('WebGLRenderingContext.FUNC_SUBTRACT')
-  @DocsEditable()
-  static const int FUNC_SUBTRACT = 0x800A;
-
-  @DomName('WebGLRenderingContext.GENERATE_MIPMAP_HINT')
-  @DocsEditable()
-  static const int GENERATE_MIPMAP_HINT = 0x8192;
-
-  @DomName('WebGLRenderingContext.GEQUAL')
-  @DocsEditable()
-  static const int GEQUAL = 0x0206;
-
-  @DomName('WebGLRenderingContext.GREATER')
-  @DocsEditable()
-  static const int GREATER = 0x0204;
-
-  @DomName('WebGLRenderingContext.GREEN_BITS')
-  @DocsEditable()
-  static const int GREEN_BITS = 0x0D53;
-
-  @DomName('WebGLRenderingContext.HIGH_FLOAT')
-  @DocsEditable()
-  static const int HIGH_FLOAT = 0x8DF2;
-
-  @DomName('WebGLRenderingContext.HIGH_INT')
-  @DocsEditable()
-  static const int HIGH_INT = 0x8DF5;
-
-  @DomName('WebGLRenderingContext.IMPLEMENTATION_COLOR_READ_FORMAT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B;
-
-  @DomName('WebGLRenderingContext.IMPLEMENTATION_COLOR_READ_TYPE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A;
-
-  @DomName('WebGLRenderingContext.INCR')
-  @DocsEditable()
-  static const int INCR = 0x1E02;
-
-  @DomName('WebGLRenderingContext.INCR_WRAP')
-  @DocsEditable()
-  static const int INCR_WRAP = 0x8507;
-
-  @DomName('WebGLRenderingContext.INT')
-  @DocsEditable()
-  static const int INT = 0x1404;
-
-  @DomName('WebGLRenderingContext.INT_VEC2')
-  @DocsEditable()
-  static const int INT_VEC2 = 0x8B53;
-
-  @DomName('WebGLRenderingContext.INT_VEC3')
-  @DocsEditable()
-  static const int INT_VEC3 = 0x8B54;
-
-  @DomName('WebGLRenderingContext.INT_VEC4')
-  @DocsEditable()
-  static const int INT_VEC4 = 0x8B55;
-
-  @DomName('WebGLRenderingContext.INVALID_ENUM')
-  @DocsEditable()
-  static const int INVALID_ENUM = 0x0500;
-
-  @DomName('WebGLRenderingContext.INVALID_FRAMEBUFFER_OPERATION')
-  @DocsEditable()
-  static const int INVALID_FRAMEBUFFER_OPERATION = 0x0506;
-
-  @DomName('WebGLRenderingContext.INVALID_OPERATION')
-  @DocsEditable()
-  static const int INVALID_OPERATION = 0x0502;
-
-  @DomName('WebGLRenderingContext.INVALID_VALUE')
-  @DocsEditable()
-  static const int INVALID_VALUE = 0x0501;
-
-  @DomName('WebGLRenderingContext.INVERT')
-  @DocsEditable()
-  static const int INVERT = 0x150A;
-
-  @DomName('WebGLRenderingContext.KEEP')
-  @DocsEditable()
-  static const int KEEP = 0x1E00;
-
-  @DomName('WebGLRenderingContext.LEQUAL')
-  @DocsEditable()
-  static const int LEQUAL = 0x0203;
-
-  @DomName('WebGLRenderingContext.LESS')
-  @DocsEditable()
-  static const int LESS = 0x0201;
-
-  @DomName('WebGLRenderingContext.LINEAR')
-  @DocsEditable()
-  static const int LINEAR = 0x2601;
-
-  @DomName('WebGLRenderingContext.LINEAR_MIPMAP_LINEAR')
-  @DocsEditable()
-  static const int LINEAR_MIPMAP_LINEAR = 0x2703;
-
-  @DomName('WebGLRenderingContext.LINEAR_MIPMAP_NEAREST')
-  @DocsEditable()
-  static const int LINEAR_MIPMAP_NEAREST = 0x2701;
-
-  @DomName('WebGLRenderingContext.LINES')
-  @DocsEditable()
-  static const int LINES = 0x0001;
-
-  @DomName('WebGLRenderingContext.LINE_LOOP')
-  @DocsEditable()
-  static const int LINE_LOOP = 0x0002;
-
-  @DomName('WebGLRenderingContext.LINE_STRIP')
-  @DocsEditable()
-  static const int LINE_STRIP = 0x0003;
-
-  @DomName('WebGLRenderingContext.LINE_WIDTH')
-  @DocsEditable()
-  static const int LINE_WIDTH = 0x0B21;
-
-  @DomName('WebGLRenderingContext.LINK_STATUS')
-  @DocsEditable()
-  static const int LINK_STATUS = 0x8B82;
-
-  @DomName('WebGLRenderingContext.LOW_FLOAT')
-  @DocsEditable()
-  static const int LOW_FLOAT = 0x8DF0;
-
-  @DomName('WebGLRenderingContext.LOW_INT')
-  @DocsEditable()
-  static const int LOW_INT = 0x8DF3;
-
-  @DomName('WebGLRenderingContext.LUMINANCE')
-  @DocsEditable()
-  static const int LUMINANCE = 0x1909;
-
-  @DomName('WebGLRenderingContext.LUMINANCE_ALPHA')
-  @DocsEditable()
-  static const int LUMINANCE_ALPHA = 0x190A;
-
-  @DomName('WebGLRenderingContext.MAX_COMBINED_TEXTURE_IMAGE_UNITS')
-  @DocsEditable()
-  static const int MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D;
-
-  @DomName('WebGLRenderingContext.MAX_CUBE_MAP_TEXTURE_SIZE')
-  @DocsEditable()
-  static const int MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C;
-
-  @DomName('WebGLRenderingContext.MAX_FRAGMENT_UNIFORM_VECTORS')
-  @DocsEditable()
-  static const int MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD;
-
-  @DomName('WebGLRenderingContext.MAX_RENDERBUFFER_SIZE')
-  @DocsEditable()
-  static const int MAX_RENDERBUFFER_SIZE = 0x84E8;
-
-  @DomName('WebGLRenderingContext.MAX_TEXTURE_IMAGE_UNITS')
-  @DocsEditable()
-  static const int MAX_TEXTURE_IMAGE_UNITS = 0x8872;
-
-  @DomName('WebGLRenderingContext.MAX_TEXTURE_SIZE')
-  @DocsEditable()
-  static const int MAX_TEXTURE_SIZE = 0x0D33;
-
-  @DomName('WebGLRenderingContext.MAX_VARYING_VECTORS')
-  @DocsEditable()
-  static const int MAX_VARYING_VECTORS = 0x8DFC;
-
-  @DomName('WebGLRenderingContext.MAX_VERTEX_ATTRIBS')
-  @DocsEditable()
-  static const int MAX_VERTEX_ATTRIBS = 0x8869;
-
-  @DomName('WebGLRenderingContext.MAX_VERTEX_TEXTURE_IMAGE_UNITS')
-  @DocsEditable()
-  static const int MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C;
-
-  @DomName('WebGLRenderingContext.MAX_VERTEX_UNIFORM_VECTORS')
-  @DocsEditable()
-  static const int MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB;
-
-  @DomName('WebGLRenderingContext.MAX_VIEWPORT_DIMS')
-  @DocsEditable()
-  static const int MAX_VIEWPORT_DIMS = 0x0D3A;
-
-  @DomName('WebGLRenderingContext.MEDIUM_FLOAT')
-  @DocsEditable()
-  static const int MEDIUM_FLOAT = 0x8DF1;
-
-  @DomName('WebGLRenderingContext.MEDIUM_INT')
-  @DocsEditable()
-  static const int MEDIUM_INT = 0x8DF4;
-
-  @DomName('WebGLRenderingContext.MIRRORED_REPEAT')
-  @DocsEditable()
-  static const int MIRRORED_REPEAT = 0x8370;
-
-  @DomName('WebGLRenderingContext.NEAREST')
-  @DocsEditable()
-  static const int NEAREST = 0x2600;
-
-  @DomName('WebGLRenderingContext.NEAREST_MIPMAP_LINEAR')
-  @DocsEditable()
-  static const int NEAREST_MIPMAP_LINEAR = 0x2702;
-
-  @DomName('WebGLRenderingContext.NEAREST_MIPMAP_NEAREST')
-  @DocsEditable()
-  static const int NEAREST_MIPMAP_NEAREST = 0x2700;
-
-  @DomName('WebGLRenderingContext.NEVER')
-  @DocsEditable()
-  static const int NEVER = 0x0200;
-
-  @DomName('WebGLRenderingContext.NICEST')
-  @DocsEditable()
-  static const int NICEST = 0x1102;
-
-  @DomName('WebGLRenderingContext.NONE')
-  @DocsEditable()
-  static const int NONE = 0;
-
-  @DomName('WebGLRenderingContext.NOTEQUAL')
-  @DocsEditable()
-  static const int NOTEQUAL = 0x0205;
-
-  @DomName('WebGLRenderingContext.NO_ERROR')
-  @DocsEditable()
-  static const int NO_ERROR = 0;
-
-  @DomName('WebGLRenderingContext.ONE')
-  @DocsEditable()
-  static const int ONE = 1;
-
-  @DomName('WebGLRenderingContext.ONE_MINUS_CONSTANT_ALPHA')
-  @DocsEditable()
-  static const int ONE_MINUS_CONSTANT_ALPHA = 0x8004;
-
-  @DomName('WebGLRenderingContext.ONE_MINUS_CONSTANT_COLOR')
-  @DocsEditable()
-  static const int ONE_MINUS_CONSTANT_COLOR = 0x8002;
-
-  @DomName('WebGLRenderingContext.ONE_MINUS_DST_ALPHA')
-  @DocsEditable()
-  static const int ONE_MINUS_DST_ALPHA = 0x0305;
-
-  @DomName('WebGLRenderingContext.ONE_MINUS_DST_COLOR')
-  @DocsEditable()
-  static const int ONE_MINUS_DST_COLOR = 0x0307;
-
-  @DomName('WebGLRenderingContext.ONE_MINUS_SRC_ALPHA')
-  @DocsEditable()
-  static const int ONE_MINUS_SRC_ALPHA = 0x0303;
-
-  @DomName('WebGLRenderingContext.ONE_MINUS_SRC_COLOR')
-  @DocsEditable()
-  static const int ONE_MINUS_SRC_COLOR = 0x0301;
-
-  @DomName('WebGLRenderingContext.OUT_OF_MEMORY')
-  @DocsEditable()
-  static const int OUT_OF_MEMORY = 0x0505;
-
-  @DomName('WebGLRenderingContext.PACK_ALIGNMENT')
-  @DocsEditable()
-  static const int PACK_ALIGNMENT = 0x0D05;
-
-  @DomName('WebGLRenderingContext.POINTS')
-  @DocsEditable()
-  static const int POINTS = 0x0000;
-
-  @DomName('WebGLRenderingContext.POLYGON_OFFSET_FACTOR')
-  @DocsEditable()
-  static const int POLYGON_OFFSET_FACTOR = 0x8038;
-
-  @DomName('WebGLRenderingContext.POLYGON_OFFSET_FILL')
-  @DocsEditable()
-  static const int POLYGON_OFFSET_FILL = 0x8037;
-
-  @DomName('WebGLRenderingContext.POLYGON_OFFSET_UNITS')
-  @DocsEditable()
-  static const int POLYGON_OFFSET_UNITS = 0x2A00;
-
-  @DomName('WebGLRenderingContext.RED_BITS')
-  @DocsEditable()
-  static const int RED_BITS = 0x0D52;
-
-  @DomName('WebGLRenderingContext.RENDERBUFFER')
-  @DocsEditable()
-  static const int RENDERBUFFER = 0x8D41;
-
-  @DomName('WebGLRenderingContext.RENDERBUFFER_ALPHA_SIZE')
-  @DocsEditable()
-  static const int RENDERBUFFER_ALPHA_SIZE = 0x8D53;
-
-  @DomName('WebGLRenderingContext.RENDERBUFFER_BINDING')
-  @DocsEditable()
-  static const int RENDERBUFFER_BINDING = 0x8CA7;
-
-  @DomName('WebGLRenderingContext.RENDERBUFFER_BLUE_SIZE')
-  @DocsEditable()
-  static const int RENDERBUFFER_BLUE_SIZE = 0x8D52;
-
-  @DomName('WebGLRenderingContext.RENDERBUFFER_DEPTH_SIZE')
-  @DocsEditable()
-  static const int RENDERBUFFER_DEPTH_SIZE = 0x8D54;
-
-  @DomName('WebGLRenderingContext.RENDERBUFFER_GREEN_SIZE')
-  @DocsEditable()
-  static const int RENDERBUFFER_GREEN_SIZE = 0x8D51;
-
-  @DomName('WebGLRenderingContext.RENDERBUFFER_HEIGHT')
-  @DocsEditable()
-  static const int RENDERBUFFER_HEIGHT = 0x8D43;
-
-  @DomName('WebGLRenderingContext.RENDERBUFFER_INTERNAL_FORMAT')
-  @DocsEditable()
-  static const int RENDERBUFFER_INTERNAL_FORMAT = 0x8D44;
-
-  @DomName('WebGLRenderingContext.RENDERBUFFER_RED_SIZE')
-  @DocsEditable()
-  static const int RENDERBUFFER_RED_SIZE = 0x8D50;
-
-  @DomName('WebGLRenderingContext.RENDERBUFFER_STENCIL_SIZE')
-  @DocsEditable()
-  static const int RENDERBUFFER_STENCIL_SIZE = 0x8D55;
-
-  @DomName('WebGLRenderingContext.RENDERBUFFER_WIDTH')
-  @DocsEditable()
-  static const int RENDERBUFFER_WIDTH = 0x8D42;
-
-  @DomName('WebGLRenderingContext.RENDERER')
-  @DocsEditable()
-  static const int RENDERER = 0x1F01;
-
-  @DomName('WebGLRenderingContext.REPEAT')
-  @DocsEditable()
-  static const int REPEAT = 0x2901;
-
-  @DomName('WebGLRenderingContext.REPLACE')
-  @DocsEditable()
-  static const int REPLACE = 0x1E01;
-
-  @DomName('WebGLRenderingContext.RGB')
-  @DocsEditable()
-  static const int RGB = 0x1907;
-
-  @DomName('WebGLRenderingContext.RGB565')
-  @DocsEditable()
-  static const int RGB565 = 0x8D62;
-
-  @DomName('WebGLRenderingContext.RGB5_A1')
-  @DocsEditable()
-  static const int RGB5_A1 = 0x8057;
-
-  @DomName('WebGLRenderingContext.RGBA')
-  @DocsEditable()
-  static const int RGBA = 0x1908;
-
-  @DomName('WebGLRenderingContext.RGBA4')
-  @DocsEditable()
-  static const int RGBA4 = 0x8056;
-
-  @DomName('WebGLRenderingContext.SAMPLER_2D')
-  @DocsEditable()
-  static const int SAMPLER_2D = 0x8B5E;
-
-  @DomName('WebGLRenderingContext.SAMPLER_CUBE')
-  @DocsEditable()
-  static const int SAMPLER_CUBE = 0x8B60;
-
-  @DomName('WebGLRenderingContext.SAMPLES')
-  @DocsEditable()
-  static const int SAMPLES = 0x80A9;
-
-  @DomName('WebGLRenderingContext.SAMPLE_ALPHA_TO_COVERAGE')
-  @DocsEditable()
-  static const int SAMPLE_ALPHA_TO_COVERAGE = 0x809E;
-
-  @DomName('WebGLRenderingContext.SAMPLE_BUFFERS')
-  @DocsEditable()
-  static const int SAMPLE_BUFFERS = 0x80A8;
-
-  @DomName('WebGLRenderingContext.SAMPLE_COVERAGE')
-  @DocsEditable()
-  static const int SAMPLE_COVERAGE = 0x80A0;
-
-  @DomName('WebGLRenderingContext.SAMPLE_COVERAGE_INVERT')
-  @DocsEditable()
-  static const int SAMPLE_COVERAGE_INVERT = 0x80AB;
-
-  @DomName('WebGLRenderingContext.SAMPLE_COVERAGE_VALUE')
-  @DocsEditable()
-  static const int SAMPLE_COVERAGE_VALUE = 0x80AA;
-
-  @DomName('WebGLRenderingContext.SCISSOR_BOX')
-  @DocsEditable()
-  static const int SCISSOR_BOX = 0x0C10;
-
-  @DomName('WebGLRenderingContext.SCISSOR_TEST')
-  @DocsEditable()
-  static const int SCISSOR_TEST = 0x0C11;
-
-  @DomName('WebGLRenderingContext.SHADER_TYPE')
-  @DocsEditable()
-  static const int SHADER_TYPE = 0x8B4F;
-
-  @DomName('WebGLRenderingContext.SHADING_LANGUAGE_VERSION')
-  @DocsEditable()
-  static const int SHADING_LANGUAGE_VERSION = 0x8B8C;
-
-  @DomName('WebGLRenderingContext.SHORT')
-  @DocsEditable()
-  static const int SHORT = 0x1402;
-
-  @DomName('WebGLRenderingContext.SRC_ALPHA')
-  @DocsEditable()
-  static const int SRC_ALPHA = 0x0302;
-
-  @DomName('WebGLRenderingContext.SRC_ALPHA_SATURATE')
-  @DocsEditable()
-  static const int SRC_ALPHA_SATURATE = 0x0308;
-
-  @DomName('WebGLRenderingContext.SRC_COLOR')
-  @DocsEditable()
-  static const int SRC_COLOR = 0x0300;
-
-  @DomName('WebGLRenderingContext.STATIC_DRAW')
-  @DocsEditable()
-  static const int STATIC_DRAW = 0x88E4;
-
-  @DomName('WebGLRenderingContext.STENCIL_ATTACHMENT')
-  @DocsEditable()
-  static const int STENCIL_ATTACHMENT = 0x8D20;
-
-  @DomName('WebGLRenderingContext.STENCIL_BACK_FAIL')
-  @DocsEditable()
-  static const int STENCIL_BACK_FAIL = 0x8801;
-
-  @DomName('WebGLRenderingContext.STENCIL_BACK_FUNC')
-  @DocsEditable()
-  static const int STENCIL_BACK_FUNC = 0x8800;
-
-  @DomName('WebGLRenderingContext.STENCIL_BACK_PASS_DEPTH_FAIL')
-  @DocsEditable()
-  static const int STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802;
-
-  @DomName('WebGLRenderingContext.STENCIL_BACK_PASS_DEPTH_PASS')
-  @DocsEditable()
-  static const int STENCIL_BACK_PASS_DEPTH_PASS = 0x8803;
-
-  @DomName('WebGLRenderingContext.STENCIL_BACK_REF')
-  @DocsEditable()
-  static const int STENCIL_BACK_REF = 0x8CA3;
-
-  @DomName('WebGLRenderingContext.STENCIL_BACK_VALUE_MASK')
-  @DocsEditable()
-  static const int STENCIL_BACK_VALUE_MASK = 0x8CA4;
-
-  @DomName('WebGLRenderingContext.STENCIL_BACK_WRITEMASK')
-  @DocsEditable()
-  static const int STENCIL_BACK_WRITEMASK = 0x8CA5;
-
-  @DomName('WebGLRenderingContext.STENCIL_BITS')
-  @DocsEditable()
-  static const int STENCIL_BITS = 0x0D57;
-
-  @DomName('WebGLRenderingContext.STENCIL_BUFFER_BIT')
-  @DocsEditable()
-  static const int STENCIL_BUFFER_BIT = 0x00000400;
-
-  @DomName('WebGLRenderingContext.STENCIL_CLEAR_VALUE')
-  @DocsEditable()
-  static const int STENCIL_CLEAR_VALUE = 0x0B91;
-
-  @DomName('WebGLRenderingContext.STENCIL_FAIL')
-  @DocsEditable()
-  static const int STENCIL_FAIL = 0x0B94;
-
-  @DomName('WebGLRenderingContext.STENCIL_FUNC')
-  @DocsEditable()
-  static const int STENCIL_FUNC = 0x0B92;
-
-  @DomName('WebGLRenderingContext.STENCIL_INDEX')
-  @DocsEditable()
-  static const int STENCIL_INDEX = 0x1901;
-
-  @DomName('WebGLRenderingContext.STENCIL_INDEX8')
-  @DocsEditable()
-  static const int STENCIL_INDEX8 = 0x8D48;
-
-  @DomName('WebGLRenderingContext.STENCIL_PASS_DEPTH_FAIL')
-  @DocsEditable()
-  static const int STENCIL_PASS_DEPTH_FAIL = 0x0B95;
-
-  @DomName('WebGLRenderingContext.STENCIL_PASS_DEPTH_PASS')
-  @DocsEditable()
-  static const int STENCIL_PASS_DEPTH_PASS = 0x0B96;
-
-  @DomName('WebGLRenderingContext.STENCIL_REF')
-  @DocsEditable()
-  static const int STENCIL_REF = 0x0B97;
-
-  @DomName('WebGLRenderingContext.STENCIL_TEST')
-  @DocsEditable()
-  static const int STENCIL_TEST = 0x0B90;
-
-  @DomName('WebGLRenderingContext.STENCIL_VALUE_MASK')
-  @DocsEditable()
-  static const int STENCIL_VALUE_MASK = 0x0B93;
-
-  @DomName('WebGLRenderingContext.STENCIL_WRITEMASK')
-  @DocsEditable()
-  static const int STENCIL_WRITEMASK = 0x0B98;
-
-  @DomName('WebGLRenderingContext.STREAM_DRAW')
-  @DocsEditable()
-  static const int STREAM_DRAW = 0x88E0;
-
-  @DomName('WebGLRenderingContext.SUBPIXEL_BITS')
-  @DocsEditable()
-  static const int SUBPIXEL_BITS = 0x0D50;
-
-  @DomName('WebGLRenderingContext.TEXTURE')
-  @DocsEditable()
-  static const int TEXTURE = 0x1702;
-
-  @DomName('WebGLRenderingContext.TEXTURE0')
-  @DocsEditable()
-  static const int TEXTURE0 = 0x84C0;
-
-  @DomName('WebGLRenderingContext.TEXTURE1')
-  @DocsEditable()
-  static const int TEXTURE1 = 0x84C1;
-
-  @DomName('WebGLRenderingContext.TEXTURE10')
-  @DocsEditable()
-  static const int TEXTURE10 = 0x84CA;
-
-  @DomName('WebGLRenderingContext.TEXTURE11')
-  @DocsEditable()
-  static const int TEXTURE11 = 0x84CB;
-
-  @DomName('WebGLRenderingContext.TEXTURE12')
-  @DocsEditable()
-  static const int TEXTURE12 = 0x84CC;
-
-  @DomName('WebGLRenderingContext.TEXTURE13')
-  @DocsEditable()
-  static const int TEXTURE13 = 0x84CD;
-
-  @DomName('WebGLRenderingContext.TEXTURE14')
-  @DocsEditable()
-  static const int TEXTURE14 = 0x84CE;
-
-  @DomName('WebGLRenderingContext.TEXTURE15')
-  @DocsEditable()
-  static const int TEXTURE15 = 0x84CF;
-
-  @DomName('WebGLRenderingContext.TEXTURE16')
-  @DocsEditable()
-  static const int TEXTURE16 = 0x84D0;
-
-  @DomName('WebGLRenderingContext.TEXTURE17')
-  @DocsEditable()
-  static const int TEXTURE17 = 0x84D1;
-
-  @DomName('WebGLRenderingContext.TEXTURE18')
-  @DocsEditable()
-  static const int TEXTURE18 = 0x84D2;
-
-  @DomName('WebGLRenderingContext.TEXTURE19')
-  @DocsEditable()
-  static const int TEXTURE19 = 0x84D3;
-
-  @DomName('WebGLRenderingContext.TEXTURE2')
-  @DocsEditable()
-  static const int TEXTURE2 = 0x84C2;
-
-  @DomName('WebGLRenderingContext.TEXTURE20')
-  @DocsEditable()
-  static const int TEXTURE20 = 0x84D4;
-
-  @DomName('WebGLRenderingContext.TEXTURE21')
-  @DocsEditable()
-  static const int TEXTURE21 = 0x84D5;
-
-  @DomName('WebGLRenderingContext.TEXTURE22')
-  @DocsEditable()
-  static const int TEXTURE22 = 0x84D6;
-
-  @DomName('WebGLRenderingContext.TEXTURE23')
-  @DocsEditable()
-  static const int TEXTURE23 = 0x84D7;
-
-  @DomName('WebGLRenderingContext.TEXTURE24')
-  @DocsEditable()
-  static const int TEXTURE24 = 0x84D8;
-
-  @DomName('WebGLRenderingContext.TEXTURE25')
-  @DocsEditable()
-  static const int TEXTURE25 = 0x84D9;
-
-  @DomName('WebGLRenderingContext.TEXTURE26')
-  @DocsEditable()
-  static const int TEXTURE26 = 0x84DA;
-
-  @DomName('WebGLRenderingContext.TEXTURE27')
-  @DocsEditable()
-  static const int TEXTURE27 = 0x84DB;
-
-  @DomName('WebGLRenderingContext.TEXTURE28')
-  @DocsEditable()
-  static const int TEXTURE28 = 0x84DC;
-
-  @DomName('WebGLRenderingContext.TEXTURE29')
-  @DocsEditable()
-  static const int TEXTURE29 = 0x84DD;
-
-  @DomName('WebGLRenderingContext.TEXTURE3')
-  @DocsEditable()
-  static const int TEXTURE3 = 0x84C3;
-
-  @DomName('WebGLRenderingContext.TEXTURE30')
-  @DocsEditable()
-  static const int TEXTURE30 = 0x84DE;
-
-  @DomName('WebGLRenderingContext.TEXTURE31')
-  @DocsEditable()
-  static const int TEXTURE31 = 0x84DF;
-
-  @DomName('WebGLRenderingContext.TEXTURE4')
-  @DocsEditable()
-  static const int TEXTURE4 = 0x84C4;
-
-  @DomName('WebGLRenderingContext.TEXTURE5')
-  @DocsEditable()
-  static const int TEXTURE5 = 0x84C5;
-
-  @DomName('WebGLRenderingContext.TEXTURE6')
-  @DocsEditable()
-  static const int TEXTURE6 = 0x84C6;
-
-  @DomName('WebGLRenderingContext.TEXTURE7')
-  @DocsEditable()
-  static const int TEXTURE7 = 0x84C7;
-
-  @DomName('WebGLRenderingContext.TEXTURE8')
-  @DocsEditable()
-  static const int TEXTURE8 = 0x84C8;
-
-  @DomName('WebGLRenderingContext.TEXTURE9')
-  @DocsEditable()
-  static const int TEXTURE9 = 0x84C9;
-
-  @DomName('WebGLRenderingContext.TEXTURE_2D')
-  @DocsEditable()
-  static const int TEXTURE_2D = 0x0DE1;
-
-  @DomName('WebGLRenderingContext.TEXTURE_BINDING_2D')
-  @DocsEditable()
-  static const int TEXTURE_BINDING_2D = 0x8069;
-
-  @DomName('WebGLRenderingContext.TEXTURE_BINDING_CUBE_MAP')
-  @DocsEditable()
-  static const int TEXTURE_BINDING_CUBE_MAP = 0x8514;
-
-  @DomName('WebGLRenderingContext.TEXTURE_CUBE_MAP')
-  @DocsEditable()
-  static const int TEXTURE_CUBE_MAP = 0x8513;
-
-  @DomName('WebGLRenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_X')
-  @DocsEditable()
-  static const int TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516;
-
-  @DomName('WebGLRenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Y')
-  @DocsEditable()
-  static const int TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518;
-
-  @DomName('WebGLRenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Z')
-  @DocsEditable()
-  static const int TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A;
-
-  @DomName('WebGLRenderingContext.TEXTURE_CUBE_MAP_POSITIVE_X')
-  @DocsEditable()
-  static const int TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515;
-
-  @DomName('WebGLRenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Y')
-  @DocsEditable()
-  static const int TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517;
-
-  @DomName('WebGLRenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Z')
-  @DocsEditable()
-  static const int TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519;
-
-  @DomName('WebGLRenderingContext.TEXTURE_MAG_FILTER')
-  @DocsEditable()
-  static const int TEXTURE_MAG_FILTER = 0x2800;
-
-  @DomName('WebGLRenderingContext.TEXTURE_MIN_FILTER')
-  @DocsEditable()
-  static const int TEXTURE_MIN_FILTER = 0x2801;
-
-  @DomName('WebGLRenderingContext.TEXTURE_WRAP_S')
-  @DocsEditable()
-  static const int TEXTURE_WRAP_S = 0x2802;
-
-  @DomName('WebGLRenderingContext.TEXTURE_WRAP_T')
-  @DocsEditable()
-  static const int TEXTURE_WRAP_T = 0x2803;
-
-  @DomName('WebGLRenderingContext.TRIANGLES')
-  @DocsEditable()
-  static const int TRIANGLES = 0x0004;
-
-  @DomName('WebGLRenderingContext.TRIANGLE_FAN')
-  @DocsEditable()
-  static const int TRIANGLE_FAN = 0x0006;
-
-  @DomName('WebGLRenderingContext.TRIANGLE_STRIP')
-  @DocsEditable()
-  static const int TRIANGLE_STRIP = 0x0005;
-
-  @DomName('WebGLRenderingContext.UNPACK_ALIGNMENT')
-  @DocsEditable()
-  static const int UNPACK_ALIGNMENT = 0x0CF5;
-
-  @DomName('WebGLRenderingContext.UNPACK_COLORSPACE_CONVERSION_WEBGL')
-  @DocsEditable()
-  static const int UNPACK_COLORSPACE_CONVERSION_WEBGL = 0x9243;
-
-  @DomName('WebGLRenderingContext.UNPACK_FLIP_Y_WEBGL')
-  @DocsEditable()
-  static const int UNPACK_FLIP_Y_WEBGL = 0x9240;
-
-  @DomName('WebGLRenderingContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL')
-  @DocsEditable()
-  static const int UNPACK_PREMULTIPLY_ALPHA_WEBGL = 0x9241;
-
-  @DomName('WebGLRenderingContext.UNSIGNED_BYTE')
-  @DocsEditable()
-  static const int UNSIGNED_BYTE = 0x1401;
-
-  @DomName('WebGLRenderingContext.UNSIGNED_INT')
-  @DocsEditable()
-  static const int UNSIGNED_INT = 0x1405;
-
-  @DomName('WebGLRenderingContext.UNSIGNED_SHORT')
-  @DocsEditable()
-  static const int UNSIGNED_SHORT = 0x1403;
-
-  @DomName('WebGLRenderingContext.UNSIGNED_SHORT_4_4_4_4')
-  @DocsEditable()
-  static const int UNSIGNED_SHORT_4_4_4_4 = 0x8033;
-
-  @DomName('WebGLRenderingContext.UNSIGNED_SHORT_5_5_5_1')
-  @DocsEditable()
-  static const int UNSIGNED_SHORT_5_5_5_1 = 0x8034;
-
-  @DomName('WebGLRenderingContext.UNSIGNED_SHORT_5_6_5')
-  @DocsEditable()
-  static const int UNSIGNED_SHORT_5_6_5 = 0x8363;
-
-  @DomName('WebGLRenderingContext.VALIDATE_STATUS')
-  @DocsEditable()
-  static const int VALIDATE_STATUS = 0x8B83;
-
-  @DomName('WebGLRenderingContext.VENDOR')
-  @DocsEditable()
-  static const int VENDOR = 0x1F00;
-
-  @DomName('WebGLRenderingContext.VERSION')
-  @DocsEditable()
-  static const int VERSION = 0x1F02;
-
-  @DomName('WebGLRenderingContext.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING')
-  @DocsEditable()
-  static const int VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F;
-
-  @DomName('WebGLRenderingContext.VERTEX_ATTRIB_ARRAY_ENABLED')
-  @DocsEditable()
-  static const int VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622;
-
-  @DomName('WebGLRenderingContext.VERTEX_ATTRIB_ARRAY_NORMALIZED')
-  @DocsEditable()
-  static const int VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A;
-
-  @DomName('WebGLRenderingContext.VERTEX_ATTRIB_ARRAY_POINTER')
-  @DocsEditable()
-  static const int VERTEX_ATTRIB_ARRAY_POINTER = 0x8645;
-
-  @DomName('WebGLRenderingContext.VERTEX_ATTRIB_ARRAY_SIZE')
-  @DocsEditable()
-  static const int VERTEX_ATTRIB_ARRAY_SIZE = 0x8623;
-
-  @DomName('WebGLRenderingContext.VERTEX_ATTRIB_ARRAY_STRIDE')
-  @DocsEditable()
-  static const int VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624;
-
-  @DomName('WebGLRenderingContext.VERTEX_ATTRIB_ARRAY_TYPE')
-  @DocsEditable()
-  static const int VERTEX_ATTRIB_ARRAY_TYPE = 0x8625;
-
-  @DomName('WebGLRenderingContext.VERTEX_SHADER')
-  @DocsEditable()
-  static const int VERTEX_SHADER = 0x8B31;
-
-  @DomName('WebGLRenderingContext.VIEWPORT')
-  @DocsEditable()
-  static const int VIEWPORT = 0x0BA2;
-
-  @DomName('WebGLRenderingContext.ZERO')
-  @DocsEditable()
-  static const int ZERO = 0;
-
-  // From WebGLRenderingContextBase
-
-  @DomName('WebGLRenderingContext.canvas')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final CanvasElement canvas;
-
-  @DomName('WebGLRenderingContext.drawingBufferHeight')
-  @DocsEditable()
-  final int drawingBufferHeight;
-
-  @DomName('WebGLRenderingContext.drawingBufferWidth')
-  @DocsEditable()
-  final int drawingBufferWidth;
-
-  @DomName('WebGLRenderingContext.activeTexture')
-  @DocsEditable()
-  void activeTexture(int texture) native;
-
-  @DomName('WebGLRenderingContext.attachShader')
-  @DocsEditable()
-  void attachShader(Program program, Shader shader) native;
-
-  @DomName('WebGLRenderingContext.bindAttribLocation')
-  @DocsEditable()
-  void bindAttribLocation(Program program, int index, String name) native;
-
-  @DomName('WebGLRenderingContext.bindBuffer')
-  @DocsEditable()
-  void bindBuffer(int target, Buffer buffer) native;
-
-  @DomName('WebGLRenderingContext.bindFramebuffer')
-  @DocsEditable()
-  void bindFramebuffer(int target, Framebuffer framebuffer) native;
-
-  @DomName('WebGLRenderingContext.bindRenderbuffer')
-  @DocsEditable()
-  void bindRenderbuffer(int target, Renderbuffer renderbuffer) native;
-
-  @DomName('WebGLRenderingContext.bindTexture')
-  @DocsEditable()
-  void bindTexture(int target, Texture texture) native;
-
-  @DomName('WebGLRenderingContext.blendColor')
-  @DocsEditable()
-  void blendColor(num red, num green, num blue, num alpha) native;
-
-  @DomName('WebGLRenderingContext.blendEquation')
-  @DocsEditable()
-  void blendEquation(int mode) native;
-
-  @DomName('WebGLRenderingContext.blendEquationSeparate')
-  @DocsEditable()
-  void blendEquationSeparate(int modeRGB, int modeAlpha) native;
-
-  @DomName('WebGLRenderingContext.blendFunc')
-  @DocsEditable()
-  void blendFunc(int sfactor, int dfactor) native;
-
-  @DomName('WebGLRenderingContext.blendFuncSeparate')
-  @DocsEditable()
-  void blendFuncSeparate(int srcRGB, int dstRGB, int srcAlpha, int dstAlpha)
-      native;
-
-  @DomName('WebGLRenderingContext.bufferData')
-  @DocsEditable()
-  void bufferData(int target, data_OR_size, int usage) native;
-
-  @DomName('WebGLRenderingContext.bufferSubData')
-  @DocsEditable()
-  void bufferSubData(int target, int offset, data) native;
-
-  @DomName('WebGLRenderingContext.checkFramebufferStatus')
-  @DocsEditable()
-  int checkFramebufferStatus(int target) native;
-
-  @DomName('WebGLRenderingContext.clear')
-  @DocsEditable()
-  void clear(int mask) native;
-
-  @DomName('WebGLRenderingContext.clearColor')
-  @DocsEditable()
-  void clearColor(num red, num green, num blue, num alpha) native;
-
-  @DomName('WebGLRenderingContext.clearDepth')
-  @DocsEditable()
-  void clearDepth(num depth) native;
-
-  @DomName('WebGLRenderingContext.clearStencil')
-  @DocsEditable()
-  void clearStencil(int s) native;
-
-  @DomName('WebGLRenderingContext.colorMask')
-  @DocsEditable()
-  void colorMask(bool red, bool green, bool blue, bool alpha) native;
-
-  @DomName('WebGLRenderingContext.compileShader')
-  @DocsEditable()
-  void compileShader(Shader shader) native;
-
-  @DomName('WebGLRenderingContext.compressedTexImage2D')
-  @DocsEditable()
-  void compressedTexImage2D(int target, int level, int internalformat,
-      int width, int height, int border, TypedData data) native;
-
-  @DomName('WebGLRenderingContext.compressedTexSubImage2D')
-  @DocsEditable()
-  void compressedTexSubImage2D(int target, int level, int xoffset, int yoffset,
-      int width, int height, int format, TypedData data) native;
-
-  @DomName('WebGLRenderingContext.copyTexImage2D')
-  @DocsEditable()
-  void copyTexImage2D(int target, int level, int internalformat, int x, int y,
-      int width, int height, int border) native;
-
-  @DomName('WebGLRenderingContext.copyTexSubImage2D')
-  @DocsEditable()
-  void copyTexSubImage2D(int target, int level, int xoffset, int yoffset, int x,
-      int y, int width, int height) native;
-
-  @DomName('WebGLRenderingContext.createBuffer')
-  @DocsEditable()
-  Buffer createBuffer() native;
-
-  @DomName('WebGLRenderingContext.createFramebuffer')
-  @DocsEditable()
-  Framebuffer createFramebuffer() native;
-
-  @DomName('WebGLRenderingContext.createProgram')
-  @DocsEditable()
-  Program createProgram() native;
-
-  @DomName('WebGLRenderingContext.createRenderbuffer')
-  @DocsEditable()
-  Renderbuffer createRenderbuffer() native;
-
-  @DomName('WebGLRenderingContext.createShader')
-  @DocsEditable()
-  Shader createShader(int type) native;
-
-  @DomName('WebGLRenderingContext.createTexture')
-  @DocsEditable()
-  Texture createTexture() native;
-
-  @DomName('WebGLRenderingContext.cullFace')
-  @DocsEditable()
-  void cullFace(int mode) native;
-
-  @DomName('WebGLRenderingContext.deleteBuffer')
-  @DocsEditable()
-  void deleteBuffer(Buffer buffer) native;
-
-  @DomName('WebGLRenderingContext.deleteFramebuffer')
-  @DocsEditable()
-  void deleteFramebuffer(Framebuffer framebuffer) native;
-
-  @DomName('WebGLRenderingContext.deleteProgram')
-  @DocsEditable()
-  void deleteProgram(Program program) native;
-
-  @DomName('WebGLRenderingContext.deleteRenderbuffer')
-  @DocsEditable()
-  void deleteRenderbuffer(Renderbuffer renderbuffer) native;
-
-  @DomName('WebGLRenderingContext.deleteShader')
-  @DocsEditable()
-  void deleteShader(Shader shader) native;
-
-  @DomName('WebGLRenderingContext.deleteTexture')
-  @DocsEditable()
-  void deleteTexture(Texture texture) native;
-
-  @DomName('WebGLRenderingContext.depthFunc')
-  @DocsEditable()
-  void depthFunc(int func) native;
-
-  @DomName('WebGLRenderingContext.depthMask')
-  @DocsEditable()
-  void depthMask(bool flag) native;
-
-  @DomName('WebGLRenderingContext.depthRange')
-  @DocsEditable()
-  void depthRange(num zNear, num zFar) native;
-
-  @DomName('WebGLRenderingContext.detachShader')
-  @DocsEditable()
-  void detachShader(Program program, Shader shader) native;
-
-  @DomName('WebGLRenderingContext.disable')
-  @DocsEditable()
-  void disable(int cap) native;
-
-  @DomName('WebGLRenderingContext.disableVertexAttribArray')
-  @DocsEditable()
-  void disableVertexAttribArray(int index) native;
-
-  @DomName('WebGLRenderingContext.drawArrays')
-  @DocsEditable()
-  void drawArrays(int mode, int first, int count) native;
-
-  @DomName('WebGLRenderingContext.drawElements')
-  @DocsEditable()
-  void drawElements(int mode, int count, int type, int offset) native;
-
-  @DomName('WebGLRenderingContext.enable')
-  @DocsEditable()
-  void enable(int cap) native;
-
-  @DomName('WebGLRenderingContext.enableVertexAttribArray')
-  @DocsEditable()
-  void enableVertexAttribArray(int index) native;
-
-  @DomName('WebGLRenderingContext.finish')
-  @DocsEditable()
-  void finish() native;
-
-  @DomName('WebGLRenderingContext.flush')
-  @DocsEditable()
-  void flush() native;
-
-  @DomName('WebGLRenderingContext.framebufferRenderbuffer')
-  @DocsEditable()
-  void framebufferRenderbuffer(int target, int attachment,
-      int renderbuffertarget, Renderbuffer renderbuffer) native;
-
-  @DomName('WebGLRenderingContext.framebufferTexture2D')
-  @DocsEditable()
-  void framebufferTexture2D(int target, int attachment, int textarget,
-      Texture texture, int level) native;
-
-  @DomName('WebGLRenderingContext.frontFace')
-  @DocsEditable()
-  void frontFace(int mode) native;
-
-  @DomName('WebGLRenderingContext.generateMipmap')
-  @DocsEditable()
-  void generateMipmap(int target) native;
-
-  @DomName('WebGLRenderingContext.getActiveAttrib')
-  @DocsEditable()
-  ActiveInfo getActiveAttrib(Program program, int index) native;
-
-  @DomName('WebGLRenderingContext.getActiveUniform')
-  @DocsEditable()
-  ActiveInfo getActiveUniform(Program program, int index) native;
-
-  @DomName('WebGLRenderingContext.getAttachedShaders')
-  @DocsEditable()
-  List<Shader> getAttachedShaders(Program program) native;
-
-  @DomName('WebGLRenderingContext.getAttribLocation')
-  @DocsEditable()
-  int getAttribLocation(Program program, String name) native;
-
-  @DomName('WebGLRenderingContext.getBufferParameter')
-  @DocsEditable()
-  @Creates('int|Null')
-  @Returns('int|Null')
-  Object getBufferParameter(int target, int pname) native;
-
-  @DomName('WebGLRenderingContext.getContextAttributes')
-  @DocsEditable()
-  @Creates('ContextAttributes|Null')
-  Map getContextAttributes() {
-    return convertNativeToDart_Dictionary(_getContextAttributes_1());
-  }
-
-  @JSName('getContextAttributes')
-  @DomName('WebGLRenderingContext.getContextAttributes')
-  @DocsEditable()
-  @Creates('ContextAttributes|Null')
-  _getContextAttributes_1() native;
-
-  @DomName('WebGLRenderingContext.getError')
-  @DocsEditable()
-  int getError() native;
-
-  @DomName('WebGLRenderingContext.getExtension')
-  @DocsEditable()
-  Object getExtension(String name) native;
-
-  @DomName('WebGLRenderingContext.getFramebufferAttachmentParameter')
-  @DocsEditable()
-  @Creates('int|Renderbuffer|Texture|Null')
-  @Returns('int|Renderbuffer|Texture|Null')
-  Object getFramebufferAttachmentParameter(
-      int target, int attachment, int pname) native;
-
-  @DomName('WebGLRenderingContext.getParameter')
-  @DocsEditable()
-  @Creates(
-      'Null|num|String|bool|JSExtendableArray|NativeFloat32List|NativeInt32List|NativeUint32List|Framebuffer|Renderbuffer|Texture')
-  @Returns(
-      'Null|num|String|bool|JSExtendableArray|NativeFloat32List|NativeInt32List|NativeUint32List|Framebuffer|Renderbuffer|Texture')
-  Object getParameter(int pname) native;
-
-  @DomName('WebGLRenderingContext.getProgramInfoLog')
-  @DocsEditable()
-  String getProgramInfoLog(Program program) native;
-
-  @DomName('WebGLRenderingContext.getProgramParameter')
-  @DocsEditable()
-  @Creates('int|bool|Null')
-  @Returns('int|bool|Null')
-  Object getProgramParameter(Program program, int pname) native;
-
-  @DomName('WebGLRenderingContext.getRenderbufferParameter')
-  @DocsEditable()
-  @Creates('int|Null')
-  @Returns('int|Null')
-  Object getRenderbufferParameter(int target, int pname) native;
-
-  @DomName('WebGLRenderingContext.getShaderInfoLog')
-  @DocsEditable()
-  String getShaderInfoLog(Shader shader) native;
-
-  @DomName('WebGLRenderingContext.getShaderParameter')
-  @DocsEditable()
-  @Creates('int|bool|Null')
-  @Returns('int|bool|Null')
-  Object getShaderParameter(Shader shader, int pname) native;
-
-  @DomName('WebGLRenderingContext.getShaderPrecisionFormat')
-  @DocsEditable()
-  ShaderPrecisionFormat getShaderPrecisionFormat(
-      int shadertype, int precisiontype) native;
-
-  @DomName('WebGLRenderingContext.getShaderSource')
-  @DocsEditable()
-  String getShaderSource(Shader shader) native;
-
-  @DomName('WebGLRenderingContext.getSupportedExtensions')
-  @DocsEditable()
-  List<String> getSupportedExtensions() native;
-
-  @DomName('WebGLRenderingContext.getTexParameter')
-  @DocsEditable()
-  @Creates('int|Null')
-  @Returns('int|Null')
-  Object getTexParameter(int target, int pname) native;
-
-  @DomName('WebGLRenderingContext.getUniform')
-  @DocsEditable()
-  @Creates(
-      'Null|num|String|bool|JSExtendableArray|NativeFloat32List|NativeInt32List|NativeUint32List')
-  @Returns(
-      'Null|num|String|bool|JSExtendableArray|NativeFloat32List|NativeInt32List|NativeUint32List')
-  Object getUniform(Program program, UniformLocation location) native;
-
-  @DomName('WebGLRenderingContext.getUniformLocation')
-  @DocsEditable()
-  UniformLocation getUniformLocation(Program program, String name) native;
-
-  @DomName('WebGLRenderingContext.getVertexAttrib')
-  @DocsEditable()
-  @Creates('Null|num|bool|NativeFloat32List|Buffer')
-  @Returns('Null|num|bool|NativeFloat32List|Buffer')
-  Object getVertexAttrib(int index, int pname) native;
-
-  @DomName('WebGLRenderingContext.getVertexAttribOffset')
-  @DocsEditable()
-  int getVertexAttribOffset(int index, int pname) native;
-
-  @DomName('WebGLRenderingContext.hint')
-  @DocsEditable()
-  void hint(int target, int mode) native;
-
-  @DomName('WebGLRenderingContext.isBuffer')
-  @DocsEditable()
-  bool isBuffer(Buffer buffer) native;
-
-  @DomName('WebGLRenderingContext.isContextLost')
-  @DocsEditable()
-  bool isContextLost() native;
-
-  @DomName('WebGLRenderingContext.isEnabled')
-  @DocsEditable()
-  bool isEnabled(int cap) native;
-
-  @DomName('WebGLRenderingContext.isFramebuffer')
-  @DocsEditable()
-  bool isFramebuffer(Framebuffer framebuffer) native;
-
-  @DomName('WebGLRenderingContext.isProgram')
-  @DocsEditable()
-  bool isProgram(Program program) native;
-
-  @DomName('WebGLRenderingContext.isRenderbuffer')
-  @DocsEditable()
-  bool isRenderbuffer(Renderbuffer renderbuffer) native;
-
-  @DomName('WebGLRenderingContext.isShader')
-  @DocsEditable()
-  bool isShader(Shader shader) native;
-
-  @DomName('WebGLRenderingContext.isTexture')
-  @DocsEditable()
-  bool isTexture(Texture texture) native;
-
-  @DomName('WebGLRenderingContext.lineWidth')
-  @DocsEditable()
-  void lineWidth(num width) native;
-
-  @DomName('WebGLRenderingContext.linkProgram')
-  @DocsEditable()
-  void linkProgram(Program program) native;
-
-  @DomName('WebGLRenderingContext.pixelStorei')
-  @DocsEditable()
-  void pixelStorei(int pname, int param) native;
-
-  @DomName('WebGLRenderingContext.polygonOffset')
-  @DocsEditable()
-  void polygonOffset(num factor, num units) native;
-
-  @DomName('WebGLRenderingContext.readPixels')
-  @DocsEditable()
-  void readPixels(int x, int y, int width, int height, int format, int type,
-      TypedData pixels) native;
-
-  @DomName('WebGLRenderingContext.renderbufferStorage')
-  @DocsEditable()
-  void renderbufferStorage(
-      int target, int internalformat, int width, int height) native;
-
-  @DomName('WebGLRenderingContext.sampleCoverage')
-  @DocsEditable()
-  void sampleCoverage(num value, bool invert) native;
-
-  @DomName('WebGLRenderingContext.scissor')
-  @DocsEditable()
-  void scissor(int x, int y, int width, int height) native;
-
-  @DomName('WebGLRenderingContext.shaderSource')
-  @DocsEditable()
-  void shaderSource(Shader shader, String string) native;
-
-  @DomName('WebGLRenderingContext.stencilFunc')
-  @DocsEditable()
-  void stencilFunc(int func, int ref, int mask) native;
-
-  @DomName('WebGLRenderingContext.stencilFuncSeparate')
-  @DocsEditable()
-  void stencilFuncSeparate(int face, int func, int ref, int mask) native;
-
-  @DomName('WebGLRenderingContext.stencilMask')
-  @DocsEditable()
-  void stencilMask(int mask) native;
-
-  @DomName('WebGLRenderingContext.stencilMaskSeparate')
-  @DocsEditable()
-  void stencilMaskSeparate(int face, int mask) native;
-
-  @DomName('WebGLRenderingContext.stencilOp')
-  @DocsEditable()
-  void stencilOp(int fail, int zfail, int zpass) native;
-
-  @DomName('WebGLRenderingContext.stencilOpSeparate')
-  @DocsEditable()
-  void stencilOpSeparate(int face, int fail, int zfail, int zpass) native;
-
-  @DomName('WebGLRenderingContext.texImage2D')
-  @DocsEditable()
-  void texImage2D(
-      int target,
-      int level,
-      int internalformat,
-      int format_OR_width,
-      int height_OR_type,
-      bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video,
-      [int format,
-      int type,
-      TypedData pixels]) {
-    if (type != null &&
-        format != null &&
-        (bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video is int)) {
-      _texImage2D_1(
-          target,
-          level,
-          internalformat,
-          format_OR_width,
-          height_OR_type,
-          bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video,
-          format,
-          type,
-          pixels);
-      return;
-    }
-    if ((bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video is ImageData ||
-            bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video == null) &&
-        format == null &&
-        type == null &&
-        pixels == null) {
-      var pixels_1 = convertDartToNative_ImageData(
-          bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
-      _texImage2D_2(target, level, internalformat, format_OR_width,
-          height_OR_type, pixels_1);
-      return;
-    }
-    if ((bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video
-            is ImageElement) &&
-        format == null &&
-        type == null &&
-        pixels == null) {
-      _texImage2D_3(
-          target,
-          level,
-          internalformat,
-          format_OR_width,
-          height_OR_type,
-          bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
-      return;
-    }
-    if ((bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video
-            is CanvasElement) &&
-        format == null &&
-        type == null &&
-        pixels == null) {
-      _texImage2D_4(
-          target,
-          level,
-          internalformat,
-          format_OR_width,
-          height_OR_type,
-          bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
-      return;
-    }
-    if ((bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video
-            is VideoElement) &&
-        format == null &&
-        type == null &&
-        pixels == null) {
-      _texImage2D_5(
-          target,
-          level,
-          internalformat,
-          format_OR_width,
-          height_OR_type,
-          bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
-      return;
-    }
-    if ((bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video
-            is ImageBitmap) &&
-        format == null &&
-        type == null &&
-        pixels == null) {
-      _texImage2D_6(
-          target,
-          level,
-          internalformat,
-          format_OR_width,
-          height_OR_type,
-          bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
-      return;
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-
-  @JSName('texImage2D')
-  @DomName('WebGLRenderingContext.texImage2D')
-  @DocsEditable()
-  void _texImage2D_1(target, level, internalformat, width, height, int border,
-      format, type, TypedData pixels) native;
-  @JSName('texImage2D')
-  @DomName('WebGLRenderingContext.texImage2D')
-  @DocsEditable()
-  void _texImage2D_2(target, level, internalformat, format, type, pixels)
-      native;
-  @JSName('texImage2D')
-  @DomName('WebGLRenderingContext.texImage2D')
-  @DocsEditable()
-  void _texImage2D_3(
-      target, level, internalformat, format, type, ImageElement image) native;
-  @JSName('texImage2D')
-  @DomName('WebGLRenderingContext.texImage2D')
-  @DocsEditable()
-  void _texImage2D_4(
-      target, level, internalformat, format, type, CanvasElement canvas) native;
-  @JSName('texImage2D')
-  @DomName('WebGLRenderingContext.texImage2D')
-  @DocsEditable()
-  void _texImage2D_5(
-      target, level, internalformat, format, type, VideoElement video) native;
-  @JSName('texImage2D')
-  @DomName('WebGLRenderingContext.texImage2D')
-  @DocsEditable()
-  void _texImage2D_6(
-      target, level, internalformat, format, type, ImageBitmap bitmap) native;
-
-  @DomName('WebGLRenderingContext.texParameterf')
-  @DocsEditable()
-  void texParameterf(int target, int pname, num param) native;
-
-  @DomName('WebGLRenderingContext.texParameteri')
-  @DocsEditable()
-  void texParameteri(int target, int pname, int param) native;
-
-  @DomName('WebGLRenderingContext.texSubImage2D')
-  @DocsEditable()
-  void texSubImage2D(
-      int target,
-      int level,
-      int xoffset,
-      int yoffset,
-      int format_OR_width,
-      int height_OR_type,
-      bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video,
-      [int type,
-      TypedData pixels]) {
-    if (type != null &&
-        (bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video is int)) {
-      _texSubImage2D_1(
-          target,
-          level,
-          xoffset,
-          yoffset,
-          format_OR_width,
-          height_OR_type,
-          bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video,
-          type,
-          pixels);
-      return;
-    }
-    if ((bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video is ImageData ||
-            bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video == null) &&
-        type == null &&
-        pixels == null) {
-      var pixels_1 = convertDartToNative_ImageData(
-          bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
-      _texSubImage2D_2(target, level, xoffset, yoffset, format_OR_width,
-          height_OR_type, pixels_1);
-      return;
-    }
-    if ((bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video
-            is ImageElement) &&
-        type == null &&
-        pixels == null) {
-      _texSubImage2D_3(
-          target,
-          level,
-          xoffset,
-          yoffset,
-          format_OR_width,
-          height_OR_type,
-          bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
-      return;
-    }
-    if ((bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video
-            is CanvasElement) &&
-        type == null &&
-        pixels == null) {
-      _texSubImage2D_4(
-          target,
-          level,
-          xoffset,
-          yoffset,
-          format_OR_width,
-          height_OR_type,
-          bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
-      return;
-    }
-    if ((bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video
-            is VideoElement) &&
-        type == null &&
-        pixels == null) {
-      _texSubImage2D_5(
-          target,
-          level,
-          xoffset,
-          yoffset,
-          format_OR_width,
-          height_OR_type,
-          bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
-      return;
-    }
-    if ((bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video
-            is ImageBitmap) &&
-        type == null &&
-        pixels == null) {
-      _texSubImage2D_6(
-          target,
-          level,
-          xoffset,
-          yoffset,
-          format_OR_width,
-          height_OR_type,
-          bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
-      return;
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-
-  @JSName('texSubImage2D')
-  @DomName('WebGLRenderingContext.texSubImage2D')
-  @DocsEditable()
-  void _texSubImage2D_1(target, level, xoffset, yoffset, width, height,
-      int format, type, TypedData pixels) native;
-  @JSName('texSubImage2D')
-  @DomName('WebGLRenderingContext.texSubImage2D')
-  @DocsEditable()
-  void _texSubImage2D_2(target, level, xoffset, yoffset, format, type, pixels)
-      native;
-  @JSName('texSubImage2D')
-  @DomName('WebGLRenderingContext.texSubImage2D')
-  @DocsEditable()
-  void _texSubImage2D_3(
-      target, level, xoffset, yoffset, format, type, ImageElement image) native;
-  @JSName('texSubImage2D')
-  @DomName('WebGLRenderingContext.texSubImage2D')
-  @DocsEditable()
-  void _texSubImage2D_4(target, level, xoffset, yoffset, format, type,
-      CanvasElement canvas) native;
-  @JSName('texSubImage2D')
-  @DomName('WebGLRenderingContext.texSubImage2D')
-  @DocsEditable()
-  void _texSubImage2D_5(
-      target, level, xoffset, yoffset, format, type, VideoElement video) native;
-  @JSName('texSubImage2D')
-  @DomName('WebGLRenderingContext.texSubImage2D')
-  @DocsEditable()
-  void _texSubImage2D_6(
-      target, level, xoffset, yoffset, format, type, ImageBitmap bitmap) native;
-
-  @DomName('WebGLRenderingContext.uniform1f')
-  @DocsEditable()
-  void uniform1f(UniformLocation location, num x) native;
-
-  @DomName('WebGLRenderingContext.uniform1fv')
-  @DocsEditable()
-  void uniform1fv(UniformLocation location, v) native;
-
-  @DomName('WebGLRenderingContext.uniform1i')
-  @DocsEditable()
-  void uniform1i(UniformLocation location, int x) native;
-
-  @DomName('WebGLRenderingContext.uniform1iv')
-  @DocsEditable()
-  void uniform1iv(UniformLocation location, v) native;
-
-  @DomName('WebGLRenderingContext.uniform2f')
-  @DocsEditable()
-  void uniform2f(UniformLocation location, num x, num y) native;
-
-  @DomName('WebGLRenderingContext.uniform2fv')
-  @DocsEditable()
-  void uniform2fv(UniformLocation location, v) native;
-
-  @DomName('WebGLRenderingContext.uniform2i')
-  @DocsEditable()
-  void uniform2i(UniformLocation location, int x, int y) native;
-
-  @DomName('WebGLRenderingContext.uniform2iv')
-  @DocsEditable()
-  void uniform2iv(UniformLocation location, v) native;
-
-  @DomName('WebGLRenderingContext.uniform3f')
-  @DocsEditable()
-  void uniform3f(UniformLocation location, num x, num y, num z) native;
-
-  @DomName('WebGLRenderingContext.uniform3fv')
-  @DocsEditable()
-  void uniform3fv(UniformLocation location, v) native;
-
-  @DomName('WebGLRenderingContext.uniform3i')
-  @DocsEditable()
-  void uniform3i(UniformLocation location, int x, int y, int z) native;
-
-  @DomName('WebGLRenderingContext.uniform3iv')
-  @DocsEditable()
-  void uniform3iv(UniformLocation location, v) native;
-
-  @DomName('WebGLRenderingContext.uniform4f')
-  @DocsEditable()
-  void uniform4f(UniformLocation location, num x, num y, num z, num w) native;
-
-  @DomName('WebGLRenderingContext.uniform4fv')
-  @DocsEditable()
-  void uniform4fv(UniformLocation location, v) native;
-
-  @DomName('WebGLRenderingContext.uniform4i')
-  @DocsEditable()
-  void uniform4i(UniformLocation location, int x, int y, int z, int w) native;
-
-  @DomName('WebGLRenderingContext.uniform4iv')
-  @DocsEditable()
-  void uniform4iv(UniformLocation location, v) native;
-
-  @DomName('WebGLRenderingContext.uniformMatrix2fv')
-  @DocsEditable()
-  void uniformMatrix2fv(UniformLocation location, bool transpose, array) native;
-
-  @DomName('WebGLRenderingContext.uniformMatrix3fv')
-  @DocsEditable()
-  void uniformMatrix3fv(UniformLocation location, bool transpose, array) native;
-
-  @DomName('WebGLRenderingContext.uniformMatrix4fv')
-  @DocsEditable()
-  void uniformMatrix4fv(UniformLocation location, bool transpose, array) native;
-
-  @DomName('WebGLRenderingContext.useProgram')
-  @DocsEditable()
-  void useProgram(Program program) native;
-
-  @DomName('WebGLRenderingContext.validateProgram')
-  @DocsEditable()
-  void validateProgram(Program program) native;
-
-  @DomName('WebGLRenderingContext.vertexAttrib1f')
-  @DocsEditable()
-  void vertexAttrib1f(int indx, num x) native;
-
-  @DomName('WebGLRenderingContext.vertexAttrib1fv')
-  @DocsEditable()
-  void vertexAttrib1fv(int indx, values) native;
-
-  @DomName('WebGLRenderingContext.vertexAttrib2f')
-  @DocsEditable()
-  void vertexAttrib2f(int indx, num x, num y) native;
-
-  @DomName('WebGLRenderingContext.vertexAttrib2fv')
-  @DocsEditable()
-  void vertexAttrib2fv(int indx, values) native;
-
-  @DomName('WebGLRenderingContext.vertexAttrib3f')
-  @DocsEditable()
-  void vertexAttrib3f(int indx, num x, num y, num z) native;
-
-  @DomName('WebGLRenderingContext.vertexAttrib3fv')
-  @DocsEditable()
-  void vertexAttrib3fv(int indx, values) native;
-
-  @DomName('WebGLRenderingContext.vertexAttrib4f')
-  @DocsEditable()
-  void vertexAttrib4f(int indx, num x, num y, num z, num w) native;
-
-  @DomName('WebGLRenderingContext.vertexAttrib4fv')
-  @DocsEditable()
-  void vertexAttrib4fv(int indx, values) native;
-
-  @DomName('WebGLRenderingContext.vertexAttribPointer')
-  @DocsEditable()
-  void vertexAttribPointer(int indx, int size, int type, bool normalized,
-      int stride, int offset) native;
-
-  @DomName('WebGLRenderingContext.viewport')
-  @DocsEditable()
-  void viewport(int x, int y, int width, int height) native;
-
-  /**
-   * Sets the currently bound texture to [data].
-   *
-   * [data] can be either an [ImageElement], a
-   * [CanvasElement], a [VideoElement], [TypedData] or an [ImageData] object.
-   *
-   * This is deprecated in favor of [texImage2D].
-   */
-  @Deprecated("Use texImage2D")
-  void texImage2DUntyped(int targetTexture, int levelOfDetail,
-      int internalFormat, int format, int type, data) {
-    texImage2D(
-        targetTexture, levelOfDetail, internalFormat, format, type, data);
-  }
-
-  /**
-   * Sets the currently bound texture to [data].
-   *
-   * This is deprecated in favour of [texImage2D].
-   */
-  @Deprecated("Use texImage2D")
-  void texImage2DTyped(int targetTexture, int levelOfDetail, int internalFormat,
-      int width, int height, int border, int format, int type, TypedData data) {
-    texImage2D(targetTexture, levelOfDetail, internalFormat, width, height,
-        border, format, type, data);
-  }
-
-  /**
-   * Updates a sub-rectangle of the currently bound texture to [data].
-   *
-   * [data] can be either an [ImageElement], a
-   * [CanvasElement], a [VideoElement], [TypedData] or an [ImageData] object.
-   *
-   */
-  @Deprecated("Use texSubImage2D")
-  void texSubImage2DUntyped(int targetTexture, int levelOfDetail, int xOffset,
-      int yOffset, int format, int type, data) {
-    texSubImage2D(
-        targetTexture, levelOfDetail, xOffset, yOffset, format, type, data);
-  }
-
-  /**
-   * Updates a sub-rectangle of the currently bound texture to [data].
-   */
-  @Deprecated("Use texSubImage2D")
-  void texSubImage2DTyped(
-      int targetTexture,
-      int levelOfDetail,
-      int xOffset,
-      int yOffset,
-      int width,
-      int height,
-      int border,
-      int format,
-      int type,
-      TypedData data) {
-    texSubImage2D(targetTexture, levelOfDetail, xOffset, yOffset, width, height,
-        format, type, data);
-  }
-
-  /**
-   * Set the bufferData to [data].
-   */
-  @Deprecated("Use bufferData")
-  void bufferDataTyped(int target, TypedData data, int usage) {
-    bufferData(target, data, usage);
-  }
-
-  /**
-   * Set the bufferSubData to [data].
-   */
-  @Deprecated("Use bufferSubData")
-  void bufferSubDataTyped(int target, int offset, TypedData data) {
-    bufferSubData(target, offset, data);
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGL2RenderingContext')
-@Experimental() // untriaged
-@Native("WebGL2RenderingContext")
-class RenderingContext2 extends Interceptor
-    implements _WebGL2RenderingContextBase, _WebGLRenderingContextBase {
-  // To suppress missing implicit constructor warnings.
-  factory RenderingContext2._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('WebGL2RenderingContext.ACTIVE_ATTRIBUTES')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int ACTIVE_ATTRIBUTES = 0x8B89;
-
-  @DomName('WebGL2RenderingContext.ACTIVE_TEXTURE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int ACTIVE_TEXTURE = 0x84E0;
-
-  @DomName('WebGL2RenderingContext.ACTIVE_UNIFORMS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int ACTIVE_UNIFORMS = 0x8B86;
-
-  @DomName('WebGL2RenderingContext.ALIASED_LINE_WIDTH_RANGE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int ALIASED_LINE_WIDTH_RANGE = 0x846E;
-
-  @DomName('WebGL2RenderingContext.ALIASED_POINT_SIZE_RANGE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int ALIASED_POINT_SIZE_RANGE = 0x846D;
-
-  @DomName('WebGL2RenderingContext.ALPHA')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int ALPHA = 0x1906;
-
-  @DomName('WebGL2RenderingContext.ALPHA_BITS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int ALPHA_BITS = 0x0D55;
-
-  @DomName('WebGL2RenderingContext.ALWAYS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int ALWAYS = 0x0207;
-
-  @DomName('WebGL2RenderingContext.ARRAY_BUFFER')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int ARRAY_BUFFER = 0x8892;
-
-  @DomName('WebGL2RenderingContext.ARRAY_BUFFER_BINDING')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int ARRAY_BUFFER_BINDING = 0x8894;
-
-  @DomName('WebGL2RenderingContext.ATTACHED_SHADERS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int ATTACHED_SHADERS = 0x8B85;
-
-  @DomName('WebGL2RenderingContext.BACK')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int BACK = 0x0405;
-
-  @DomName('WebGL2RenderingContext.BLEND')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int BLEND = 0x0BE2;
-
-  @DomName('WebGL2RenderingContext.BLEND_COLOR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int BLEND_COLOR = 0x8005;
-
-  @DomName('WebGL2RenderingContext.BLEND_DST_ALPHA')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int BLEND_DST_ALPHA = 0x80CA;
-
-  @DomName('WebGL2RenderingContext.BLEND_DST_RGB')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int BLEND_DST_RGB = 0x80C8;
-
-  @DomName('WebGL2RenderingContext.BLEND_EQUATION')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int BLEND_EQUATION = 0x8009;
-
-  @DomName('WebGL2RenderingContext.BLEND_EQUATION_ALPHA')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int BLEND_EQUATION_ALPHA = 0x883D;
-
-  @DomName('WebGL2RenderingContext.BLEND_EQUATION_RGB')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int BLEND_EQUATION_RGB = 0x8009;
-
-  @DomName('WebGL2RenderingContext.BLEND_SRC_ALPHA')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int BLEND_SRC_ALPHA = 0x80CB;
-
-  @DomName('WebGL2RenderingContext.BLEND_SRC_RGB')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int BLEND_SRC_RGB = 0x80C9;
-
-  @DomName('WebGL2RenderingContext.BLUE_BITS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int BLUE_BITS = 0x0D54;
-
-  @DomName('WebGL2RenderingContext.BOOL')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int BOOL = 0x8B56;
-
-  @DomName('WebGL2RenderingContext.BOOL_VEC2')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int BOOL_VEC2 = 0x8B57;
-
-  @DomName('WebGL2RenderingContext.BOOL_VEC3')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int BOOL_VEC3 = 0x8B58;
-
-  @DomName('WebGL2RenderingContext.BOOL_VEC4')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int BOOL_VEC4 = 0x8B59;
-
-  @DomName('WebGL2RenderingContext.BROWSER_DEFAULT_WEBGL')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int BROWSER_DEFAULT_WEBGL = 0x9244;
-
-  @DomName('WebGL2RenderingContext.BUFFER_SIZE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int BUFFER_SIZE = 0x8764;
-
-  @DomName('WebGL2RenderingContext.BUFFER_USAGE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int BUFFER_USAGE = 0x8765;
-
-  @DomName('WebGL2RenderingContext.BYTE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int BYTE = 0x1400;
-
-  @DomName('WebGL2RenderingContext.CCW')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int CCW = 0x0901;
-
-  @DomName('WebGL2RenderingContext.CLAMP_TO_EDGE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int CLAMP_TO_EDGE = 0x812F;
-
-  @DomName('WebGL2RenderingContext.COLOR_ATTACHMENT0')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COLOR_ATTACHMENT0 = 0x8CE0;
-
-  @DomName('WebGL2RenderingContext.COLOR_BUFFER_BIT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COLOR_BUFFER_BIT = 0x00004000;
-
-  @DomName('WebGL2RenderingContext.COLOR_CLEAR_VALUE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COLOR_CLEAR_VALUE = 0x0C22;
-
-  @DomName('WebGL2RenderingContext.COLOR_WRITEMASK')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COLOR_WRITEMASK = 0x0C23;
-
-  @DomName('WebGL2RenderingContext.COMPILE_STATUS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPILE_STATUS = 0x8B81;
-
-  @DomName('WebGL2RenderingContext.COMPRESSED_TEXTURE_FORMATS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int COMPRESSED_TEXTURE_FORMATS = 0x86A3;
-
-  @DomName('WebGL2RenderingContext.CONSTANT_ALPHA')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int CONSTANT_ALPHA = 0x8003;
-
-  @DomName('WebGL2RenderingContext.CONSTANT_COLOR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int CONSTANT_COLOR = 0x8001;
-
-  @DomName('WebGL2RenderingContext.CONTEXT_LOST_WEBGL')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int CONTEXT_LOST_WEBGL = 0x9242;
-
-  @DomName('WebGL2RenderingContext.CULL_FACE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int CULL_FACE = 0x0B44;
-
-  @DomName('WebGL2RenderingContext.CULL_FACE_MODE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int CULL_FACE_MODE = 0x0B45;
-
-  @DomName('WebGL2RenderingContext.CURRENT_PROGRAM')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int CURRENT_PROGRAM = 0x8B8D;
-
-  @DomName('WebGL2RenderingContext.CURRENT_VERTEX_ATTRIB')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int CURRENT_VERTEX_ATTRIB = 0x8626;
-
-  @DomName('WebGL2RenderingContext.CW')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int CW = 0x0900;
-
-  @DomName('WebGL2RenderingContext.DECR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int DECR = 0x1E03;
-
-  @DomName('WebGL2RenderingContext.DECR_WRAP')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int DECR_WRAP = 0x8508;
-
-  @DomName('WebGL2RenderingContext.DELETE_STATUS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int DELETE_STATUS = 0x8B80;
-
-  @DomName('WebGL2RenderingContext.DEPTH_ATTACHMENT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int DEPTH_ATTACHMENT = 0x8D00;
-
-  @DomName('WebGL2RenderingContext.DEPTH_BITS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int DEPTH_BITS = 0x0D56;
-
-  @DomName('WebGL2RenderingContext.DEPTH_BUFFER_BIT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int DEPTH_BUFFER_BIT = 0x00000100;
-
-  @DomName('WebGL2RenderingContext.DEPTH_CLEAR_VALUE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int DEPTH_CLEAR_VALUE = 0x0B73;
-
-  @DomName('WebGL2RenderingContext.DEPTH_COMPONENT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int DEPTH_COMPONENT = 0x1902;
-
-  @DomName('WebGL2RenderingContext.DEPTH_COMPONENT16')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int DEPTH_COMPONENT16 = 0x81A5;
-
-  @DomName('WebGL2RenderingContext.DEPTH_FUNC')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int DEPTH_FUNC = 0x0B74;
-
-  @DomName('WebGL2RenderingContext.DEPTH_RANGE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int DEPTH_RANGE = 0x0B70;
-
-  @DomName('WebGL2RenderingContext.DEPTH_STENCIL')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int DEPTH_STENCIL = 0x84F9;
-
-  @DomName('WebGL2RenderingContext.DEPTH_STENCIL_ATTACHMENT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int DEPTH_STENCIL_ATTACHMENT = 0x821A;
-
-  @DomName('WebGL2RenderingContext.DEPTH_TEST')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int DEPTH_TEST = 0x0B71;
-
-  @DomName('WebGL2RenderingContext.DEPTH_WRITEMASK')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int DEPTH_WRITEMASK = 0x0B72;
-
-  @DomName('WebGL2RenderingContext.DITHER')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int DITHER = 0x0BD0;
-
-  @DomName('WebGL2RenderingContext.DONT_CARE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int DONT_CARE = 0x1100;
-
-  @DomName('WebGL2RenderingContext.DST_ALPHA')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int DST_ALPHA = 0x0304;
-
-  @DomName('WebGL2RenderingContext.DST_COLOR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int DST_COLOR = 0x0306;
-
-  @DomName('WebGL2RenderingContext.DYNAMIC_DRAW')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int DYNAMIC_DRAW = 0x88E8;
-
-  @DomName('WebGL2RenderingContext.ELEMENT_ARRAY_BUFFER')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int ELEMENT_ARRAY_BUFFER = 0x8893;
-
-  @DomName('WebGL2RenderingContext.ELEMENT_ARRAY_BUFFER_BINDING')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int ELEMENT_ARRAY_BUFFER_BINDING = 0x8895;
-
-  @DomName('WebGL2RenderingContext.EQUAL')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int EQUAL = 0x0202;
-
-  @DomName('WebGL2RenderingContext.FASTEST')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int FASTEST = 0x1101;
-
-  @DomName('WebGL2RenderingContext.FLOAT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int FLOAT = 0x1406;
-
-  @DomName('WebGL2RenderingContext.FLOAT_MAT2')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int FLOAT_MAT2 = 0x8B5A;
-
-  @DomName('WebGL2RenderingContext.FLOAT_MAT3')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int FLOAT_MAT3 = 0x8B5B;
-
-  @DomName('WebGL2RenderingContext.FLOAT_MAT4')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int FLOAT_MAT4 = 0x8B5C;
-
-  @DomName('WebGL2RenderingContext.FLOAT_VEC2')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int FLOAT_VEC2 = 0x8B50;
-
-  @DomName('WebGL2RenderingContext.FLOAT_VEC3')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int FLOAT_VEC3 = 0x8B51;
-
-  @DomName('WebGL2RenderingContext.FLOAT_VEC4')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int FLOAT_VEC4 = 0x8B52;
-
-  @DomName('WebGL2RenderingContext.FRAGMENT_SHADER')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int FRAGMENT_SHADER = 0x8B30;
-
-  @DomName('WebGL2RenderingContext.FRAMEBUFFER')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int FRAMEBUFFER = 0x8D40;
-
-  @DomName('WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1;
-
-  @DomName('WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0;
-
-  @DomName(
-      'WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3;
-
-  @DomName('WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2;
-
-  @DomName('WebGL2RenderingContext.FRAMEBUFFER_BINDING')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int FRAMEBUFFER_BINDING = 0x8CA6;
-
-  @DomName('WebGL2RenderingContext.FRAMEBUFFER_COMPLETE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int FRAMEBUFFER_COMPLETE = 0x8CD5;
-
-  @DomName('WebGL2RenderingContext.FRAMEBUFFER_INCOMPLETE_ATTACHMENT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6;
-
-  @DomName('WebGL2RenderingContext.FRAMEBUFFER_INCOMPLETE_DIMENSIONS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9;
-
-  @DomName('WebGL2RenderingContext.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7;
-
-  @DomName('WebGL2RenderingContext.FRAMEBUFFER_UNSUPPORTED')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int FRAMEBUFFER_UNSUPPORTED = 0x8CDD;
-
-  @DomName('WebGL2RenderingContext.FRONT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int FRONT = 0x0404;
-
-  @DomName('WebGL2RenderingContext.FRONT_AND_BACK')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int FRONT_AND_BACK = 0x0408;
-
-  @DomName('WebGL2RenderingContext.FRONT_FACE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int FRONT_FACE = 0x0B46;
-
-  @DomName('WebGL2RenderingContext.FUNC_ADD')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int FUNC_ADD = 0x8006;
-
-  @DomName('WebGL2RenderingContext.FUNC_REVERSE_SUBTRACT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int FUNC_REVERSE_SUBTRACT = 0x800B;
-
-  @DomName('WebGL2RenderingContext.FUNC_SUBTRACT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int FUNC_SUBTRACT = 0x800A;
-
-  @DomName('WebGL2RenderingContext.GENERATE_MIPMAP_HINT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int GENERATE_MIPMAP_HINT = 0x8192;
-
-  @DomName('WebGL2RenderingContext.GEQUAL')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int GEQUAL = 0x0206;
-
-  @DomName('WebGL2RenderingContext.GREATER')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int GREATER = 0x0204;
-
-  @DomName('WebGL2RenderingContext.GREEN_BITS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int GREEN_BITS = 0x0D53;
-
-  @DomName('WebGL2RenderingContext.HIGH_FLOAT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int HIGH_FLOAT = 0x8DF2;
-
-  @DomName('WebGL2RenderingContext.HIGH_INT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int HIGH_INT = 0x8DF5;
-
-  @DomName('WebGL2RenderingContext.IMPLEMENTATION_COLOR_READ_FORMAT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B;
-
-  @DomName('WebGL2RenderingContext.IMPLEMENTATION_COLOR_READ_TYPE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A;
-
-  @DomName('WebGL2RenderingContext.INCR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int INCR = 0x1E02;
-
-  @DomName('WebGL2RenderingContext.INCR_WRAP')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int INCR_WRAP = 0x8507;
-
-  @DomName('WebGL2RenderingContext.INT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int INT = 0x1404;
-
-  @DomName('WebGL2RenderingContext.INT_VEC2')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int INT_VEC2 = 0x8B53;
-
-  @DomName('WebGL2RenderingContext.INT_VEC3')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int INT_VEC3 = 0x8B54;
-
-  @DomName('WebGL2RenderingContext.INT_VEC4')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int INT_VEC4 = 0x8B55;
-
-  @DomName('WebGL2RenderingContext.INVALID_ENUM')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int INVALID_ENUM = 0x0500;
-
-  @DomName('WebGL2RenderingContext.INVALID_FRAMEBUFFER_OPERATION')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int INVALID_FRAMEBUFFER_OPERATION = 0x0506;
-
-  @DomName('WebGL2RenderingContext.INVALID_OPERATION')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int INVALID_OPERATION = 0x0502;
-
-  @DomName('WebGL2RenderingContext.INVALID_VALUE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int INVALID_VALUE = 0x0501;
-
-  @DomName('WebGL2RenderingContext.INVERT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int INVERT = 0x150A;
-
-  @DomName('WebGL2RenderingContext.KEEP')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int KEEP = 0x1E00;
-
-  @DomName('WebGL2RenderingContext.LEQUAL')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int LEQUAL = 0x0203;
-
-  @DomName('WebGL2RenderingContext.LESS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int LESS = 0x0201;
-
-  @DomName('WebGL2RenderingContext.LINEAR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int LINEAR = 0x2601;
-
-  @DomName('WebGL2RenderingContext.LINEAR_MIPMAP_LINEAR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int LINEAR_MIPMAP_LINEAR = 0x2703;
-
-  @DomName('WebGL2RenderingContext.LINEAR_MIPMAP_NEAREST')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int LINEAR_MIPMAP_NEAREST = 0x2701;
-
-  @DomName('WebGL2RenderingContext.LINES')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int LINES = 0x0001;
-
-  @DomName('WebGL2RenderingContext.LINE_LOOP')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int LINE_LOOP = 0x0002;
-
-  @DomName('WebGL2RenderingContext.LINE_STRIP')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int LINE_STRIP = 0x0003;
-
-  @DomName('WebGL2RenderingContext.LINE_WIDTH')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int LINE_WIDTH = 0x0B21;
-
-  @DomName('WebGL2RenderingContext.LINK_STATUS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int LINK_STATUS = 0x8B82;
-
-  @DomName('WebGL2RenderingContext.LOW_FLOAT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int LOW_FLOAT = 0x8DF0;
-
-  @DomName('WebGL2RenderingContext.LOW_INT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int LOW_INT = 0x8DF3;
-
-  @DomName('WebGL2RenderingContext.LUMINANCE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int LUMINANCE = 0x1909;
-
-  @DomName('WebGL2RenderingContext.LUMINANCE_ALPHA')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int LUMINANCE_ALPHA = 0x190A;
-
-  @DomName('WebGL2RenderingContext.MAX_COMBINED_TEXTURE_IMAGE_UNITS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D;
-
-  @DomName('WebGL2RenderingContext.MAX_CUBE_MAP_TEXTURE_SIZE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C;
-
-  @DomName('WebGL2RenderingContext.MAX_FRAGMENT_UNIFORM_VECTORS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD;
-
-  @DomName('WebGL2RenderingContext.MAX_RENDERBUFFER_SIZE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int MAX_RENDERBUFFER_SIZE = 0x84E8;
-
-  @DomName('WebGL2RenderingContext.MAX_TEXTURE_IMAGE_UNITS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int MAX_TEXTURE_IMAGE_UNITS = 0x8872;
-
-  @DomName('WebGL2RenderingContext.MAX_TEXTURE_SIZE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int MAX_TEXTURE_SIZE = 0x0D33;
-
-  @DomName('WebGL2RenderingContext.MAX_VARYING_VECTORS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int MAX_VARYING_VECTORS = 0x8DFC;
-
-  @DomName('WebGL2RenderingContext.MAX_VERTEX_ATTRIBS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int MAX_VERTEX_ATTRIBS = 0x8869;
-
-  @DomName('WebGL2RenderingContext.MAX_VERTEX_TEXTURE_IMAGE_UNITS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C;
-
-  @DomName('WebGL2RenderingContext.MAX_VERTEX_UNIFORM_VECTORS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB;
-
-  @DomName('WebGL2RenderingContext.MAX_VIEWPORT_DIMS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int MAX_VIEWPORT_DIMS = 0x0D3A;
-
-  @DomName('WebGL2RenderingContext.MEDIUM_FLOAT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int MEDIUM_FLOAT = 0x8DF1;
-
-  @DomName('WebGL2RenderingContext.MEDIUM_INT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int MEDIUM_INT = 0x8DF4;
-
-  @DomName('WebGL2RenderingContext.MIRRORED_REPEAT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int MIRRORED_REPEAT = 0x8370;
-
-  @DomName('WebGL2RenderingContext.NEAREST')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int NEAREST = 0x2600;
-
-  @DomName('WebGL2RenderingContext.NEAREST_MIPMAP_LINEAR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int NEAREST_MIPMAP_LINEAR = 0x2702;
-
-  @DomName('WebGL2RenderingContext.NEAREST_MIPMAP_NEAREST')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int NEAREST_MIPMAP_NEAREST = 0x2700;
-
-  @DomName('WebGL2RenderingContext.NEVER')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int NEVER = 0x0200;
-
-  @DomName('WebGL2RenderingContext.NICEST')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int NICEST = 0x1102;
-
-  @DomName('WebGL2RenderingContext.NONE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int NONE = 0;
-
-  @DomName('WebGL2RenderingContext.NOTEQUAL')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int NOTEQUAL = 0x0205;
-
-  @DomName('WebGL2RenderingContext.NO_ERROR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int NO_ERROR = 0;
-
-  @DomName('WebGL2RenderingContext.ONE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int ONE = 1;
-
-  @DomName('WebGL2RenderingContext.ONE_MINUS_CONSTANT_ALPHA')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int ONE_MINUS_CONSTANT_ALPHA = 0x8004;
-
-  @DomName('WebGL2RenderingContext.ONE_MINUS_CONSTANT_COLOR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int ONE_MINUS_CONSTANT_COLOR = 0x8002;
-
-  @DomName('WebGL2RenderingContext.ONE_MINUS_DST_ALPHA')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int ONE_MINUS_DST_ALPHA = 0x0305;
-
-  @DomName('WebGL2RenderingContext.ONE_MINUS_DST_COLOR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int ONE_MINUS_DST_COLOR = 0x0307;
-
-  @DomName('WebGL2RenderingContext.ONE_MINUS_SRC_ALPHA')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int ONE_MINUS_SRC_ALPHA = 0x0303;
-
-  @DomName('WebGL2RenderingContext.ONE_MINUS_SRC_COLOR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int ONE_MINUS_SRC_COLOR = 0x0301;
-
-  @DomName('WebGL2RenderingContext.OUT_OF_MEMORY')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int OUT_OF_MEMORY = 0x0505;
-
-  @DomName('WebGL2RenderingContext.PACK_ALIGNMENT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int PACK_ALIGNMENT = 0x0D05;
-
-  @DomName('WebGL2RenderingContext.POINTS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int POINTS = 0x0000;
-
-  @DomName('WebGL2RenderingContext.POLYGON_OFFSET_FACTOR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int POLYGON_OFFSET_FACTOR = 0x8038;
-
-  @DomName('WebGL2RenderingContext.POLYGON_OFFSET_FILL')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int POLYGON_OFFSET_FILL = 0x8037;
-
-  @DomName('WebGL2RenderingContext.POLYGON_OFFSET_UNITS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int POLYGON_OFFSET_UNITS = 0x2A00;
-
-  @DomName('WebGL2RenderingContext.RED_BITS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int RED_BITS = 0x0D52;
-
-  @DomName('WebGL2RenderingContext.RENDERBUFFER')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int RENDERBUFFER = 0x8D41;
-
-  @DomName('WebGL2RenderingContext.RENDERBUFFER_ALPHA_SIZE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int RENDERBUFFER_ALPHA_SIZE = 0x8D53;
-
-  @DomName('WebGL2RenderingContext.RENDERBUFFER_BINDING')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int RENDERBUFFER_BINDING = 0x8CA7;
-
-  @DomName('WebGL2RenderingContext.RENDERBUFFER_BLUE_SIZE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int RENDERBUFFER_BLUE_SIZE = 0x8D52;
-
-  @DomName('WebGL2RenderingContext.RENDERBUFFER_DEPTH_SIZE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int RENDERBUFFER_DEPTH_SIZE = 0x8D54;
-
-  @DomName('WebGL2RenderingContext.RENDERBUFFER_GREEN_SIZE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int RENDERBUFFER_GREEN_SIZE = 0x8D51;
-
-  @DomName('WebGL2RenderingContext.RENDERBUFFER_HEIGHT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int RENDERBUFFER_HEIGHT = 0x8D43;
-
-  @DomName('WebGL2RenderingContext.RENDERBUFFER_INTERNAL_FORMAT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int RENDERBUFFER_INTERNAL_FORMAT = 0x8D44;
-
-  @DomName('WebGL2RenderingContext.RENDERBUFFER_RED_SIZE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int RENDERBUFFER_RED_SIZE = 0x8D50;
-
-  @DomName('WebGL2RenderingContext.RENDERBUFFER_STENCIL_SIZE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int RENDERBUFFER_STENCIL_SIZE = 0x8D55;
-
-  @DomName('WebGL2RenderingContext.RENDERBUFFER_WIDTH')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int RENDERBUFFER_WIDTH = 0x8D42;
-
-  @DomName('WebGL2RenderingContext.RENDERER')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int RENDERER = 0x1F01;
-
-  @DomName('WebGL2RenderingContext.REPEAT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int REPEAT = 0x2901;
-
-  @DomName('WebGL2RenderingContext.REPLACE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int REPLACE = 0x1E01;
-
-  @DomName('WebGL2RenderingContext.RGB')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int RGB = 0x1907;
-
-  @DomName('WebGL2RenderingContext.RGB565')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int RGB565 = 0x8D62;
-
-  @DomName('WebGL2RenderingContext.RGB5_A1')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int RGB5_A1 = 0x8057;
-
-  @DomName('WebGL2RenderingContext.RGBA')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int RGBA = 0x1908;
-
-  @DomName('WebGL2RenderingContext.RGBA4')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int RGBA4 = 0x8056;
-
-  @DomName('WebGL2RenderingContext.SAMPLER_2D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int SAMPLER_2D = 0x8B5E;
-
-  @DomName('WebGL2RenderingContext.SAMPLER_CUBE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int SAMPLER_CUBE = 0x8B60;
-
-  @DomName('WebGL2RenderingContext.SAMPLES')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int SAMPLES = 0x80A9;
-
-  @DomName('WebGL2RenderingContext.SAMPLE_ALPHA_TO_COVERAGE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int SAMPLE_ALPHA_TO_COVERAGE = 0x809E;
-
-  @DomName('WebGL2RenderingContext.SAMPLE_BUFFERS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int SAMPLE_BUFFERS = 0x80A8;
-
-  @DomName('WebGL2RenderingContext.SAMPLE_COVERAGE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int SAMPLE_COVERAGE = 0x80A0;
-
-  @DomName('WebGL2RenderingContext.SAMPLE_COVERAGE_INVERT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int SAMPLE_COVERAGE_INVERT = 0x80AB;
-
-  @DomName('WebGL2RenderingContext.SAMPLE_COVERAGE_VALUE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int SAMPLE_COVERAGE_VALUE = 0x80AA;
-
-  @DomName('WebGL2RenderingContext.SCISSOR_BOX')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int SCISSOR_BOX = 0x0C10;
-
-  @DomName('WebGL2RenderingContext.SCISSOR_TEST')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int SCISSOR_TEST = 0x0C11;
-
-  @DomName('WebGL2RenderingContext.SHADER_TYPE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int SHADER_TYPE = 0x8B4F;
-
-  @DomName('WebGL2RenderingContext.SHADING_LANGUAGE_VERSION')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int SHADING_LANGUAGE_VERSION = 0x8B8C;
-
-  @DomName('WebGL2RenderingContext.SHORT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int SHORT = 0x1402;
-
-  @DomName('WebGL2RenderingContext.SRC_ALPHA')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int SRC_ALPHA = 0x0302;
-
-  @DomName('WebGL2RenderingContext.SRC_ALPHA_SATURATE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int SRC_ALPHA_SATURATE = 0x0308;
-
-  @DomName('WebGL2RenderingContext.SRC_COLOR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int SRC_COLOR = 0x0300;
-
-  @DomName('WebGL2RenderingContext.STATIC_DRAW')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int STATIC_DRAW = 0x88E4;
-
-  @DomName('WebGL2RenderingContext.STENCIL_ATTACHMENT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int STENCIL_ATTACHMENT = 0x8D20;
-
-  @DomName('WebGL2RenderingContext.STENCIL_BACK_FAIL')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int STENCIL_BACK_FAIL = 0x8801;
-
-  @DomName('WebGL2RenderingContext.STENCIL_BACK_FUNC')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int STENCIL_BACK_FUNC = 0x8800;
-
-  @DomName('WebGL2RenderingContext.STENCIL_BACK_PASS_DEPTH_FAIL')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802;
-
-  @DomName('WebGL2RenderingContext.STENCIL_BACK_PASS_DEPTH_PASS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int STENCIL_BACK_PASS_DEPTH_PASS = 0x8803;
-
-  @DomName('WebGL2RenderingContext.STENCIL_BACK_REF')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int STENCIL_BACK_REF = 0x8CA3;
-
-  @DomName('WebGL2RenderingContext.STENCIL_BACK_VALUE_MASK')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int STENCIL_BACK_VALUE_MASK = 0x8CA4;
-
-  @DomName('WebGL2RenderingContext.STENCIL_BACK_WRITEMASK')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int STENCIL_BACK_WRITEMASK = 0x8CA5;
-
-  @DomName('WebGL2RenderingContext.STENCIL_BITS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int STENCIL_BITS = 0x0D57;
-
-  @DomName('WebGL2RenderingContext.STENCIL_BUFFER_BIT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int STENCIL_BUFFER_BIT = 0x00000400;
-
-  @DomName('WebGL2RenderingContext.STENCIL_CLEAR_VALUE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int STENCIL_CLEAR_VALUE = 0x0B91;
-
-  @DomName('WebGL2RenderingContext.STENCIL_FAIL')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int STENCIL_FAIL = 0x0B94;
-
-  @DomName('WebGL2RenderingContext.STENCIL_FUNC')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int STENCIL_FUNC = 0x0B92;
-
-  @DomName('WebGL2RenderingContext.STENCIL_INDEX')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int STENCIL_INDEX = 0x1901;
-
-  @DomName('WebGL2RenderingContext.STENCIL_INDEX8')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int STENCIL_INDEX8 = 0x8D48;
-
-  @DomName('WebGL2RenderingContext.STENCIL_PASS_DEPTH_FAIL')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int STENCIL_PASS_DEPTH_FAIL = 0x0B95;
-
-  @DomName('WebGL2RenderingContext.STENCIL_PASS_DEPTH_PASS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int STENCIL_PASS_DEPTH_PASS = 0x0B96;
-
-  @DomName('WebGL2RenderingContext.STENCIL_REF')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int STENCIL_REF = 0x0B97;
-
-  @DomName('WebGL2RenderingContext.STENCIL_TEST')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int STENCIL_TEST = 0x0B90;
-
-  @DomName('WebGL2RenderingContext.STENCIL_VALUE_MASK')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int STENCIL_VALUE_MASK = 0x0B93;
-
-  @DomName('WebGL2RenderingContext.STENCIL_WRITEMASK')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int STENCIL_WRITEMASK = 0x0B98;
-
-  @DomName('WebGL2RenderingContext.STREAM_DRAW')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int STREAM_DRAW = 0x88E0;
-
-  @DomName('WebGL2RenderingContext.SUBPIXEL_BITS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int SUBPIXEL_BITS = 0x0D50;
-
-  @DomName('WebGL2RenderingContext.TEXTURE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE = 0x1702;
-
-  @DomName('WebGL2RenderingContext.TEXTURE0')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE0 = 0x84C0;
-
-  @DomName('WebGL2RenderingContext.TEXTURE1')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE1 = 0x84C1;
-
-  @DomName('WebGL2RenderingContext.TEXTURE10')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE10 = 0x84CA;
-
-  @DomName('WebGL2RenderingContext.TEXTURE11')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE11 = 0x84CB;
-
-  @DomName('WebGL2RenderingContext.TEXTURE12')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE12 = 0x84CC;
-
-  @DomName('WebGL2RenderingContext.TEXTURE13')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE13 = 0x84CD;
-
-  @DomName('WebGL2RenderingContext.TEXTURE14')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE14 = 0x84CE;
-
-  @DomName('WebGL2RenderingContext.TEXTURE15')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE15 = 0x84CF;
-
-  @DomName('WebGL2RenderingContext.TEXTURE16')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE16 = 0x84D0;
-
-  @DomName('WebGL2RenderingContext.TEXTURE17')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE17 = 0x84D1;
-
-  @DomName('WebGL2RenderingContext.TEXTURE18')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE18 = 0x84D2;
-
-  @DomName('WebGL2RenderingContext.TEXTURE19')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE19 = 0x84D3;
-
-  @DomName('WebGL2RenderingContext.TEXTURE2')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE2 = 0x84C2;
-
-  @DomName('WebGL2RenderingContext.TEXTURE20')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE20 = 0x84D4;
-
-  @DomName('WebGL2RenderingContext.TEXTURE21')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE21 = 0x84D5;
-
-  @DomName('WebGL2RenderingContext.TEXTURE22')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE22 = 0x84D6;
-
-  @DomName('WebGL2RenderingContext.TEXTURE23')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE23 = 0x84D7;
-
-  @DomName('WebGL2RenderingContext.TEXTURE24')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE24 = 0x84D8;
-
-  @DomName('WebGL2RenderingContext.TEXTURE25')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE25 = 0x84D9;
-
-  @DomName('WebGL2RenderingContext.TEXTURE26')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE26 = 0x84DA;
-
-  @DomName('WebGL2RenderingContext.TEXTURE27')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE27 = 0x84DB;
-
-  @DomName('WebGL2RenderingContext.TEXTURE28')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE28 = 0x84DC;
-
-  @DomName('WebGL2RenderingContext.TEXTURE29')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE29 = 0x84DD;
-
-  @DomName('WebGL2RenderingContext.TEXTURE3')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE3 = 0x84C3;
-
-  @DomName('WebGL2RenderingContext.TEXTURE30')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE30 = 0x84DE;
-
-  @DomName('WebGL2RenderingContext.TEXTURE31')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE31 = 0x84DF;
-
-  @DomName('WebGL2RenderingContext.TEXTURE4')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE4 = 0x84C4;
-
-  @DomName('WebGL2RenderingContext.TEXTURE5')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE5 = 0x84C5;
-
-  @DomName('WebGL2RenderingContext.TEXTURE6')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE6 = 0x84C6;
-
-  @DomName('WebGL2RenderingContext.TEXTURE7')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE7 = 0x84C7;
-
-  @DomName('WebGL2RenderingContext.TEXTURE8')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE8 = 0x84C8;
-
-  @DomName('WebGL2RenderingContext.TEXTURE9')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE9 = 0x84C9;
-
-  @DomName('WebGL2RenderingContext.TEXTURE_2D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE_2D = 0x0DE1;
-
-  @DomName('WebGL2RenderingContext.TEXTURE_BINDING_2D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE_BINDING_2D = 0x8069;
-
-  @DomName('WebGL2RenderingContext.TEXTURE_BINDING_CUBE_MAP')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE_BINDING_CUBE_MAP = 0x8514;
-
-  @DomName('WebGL2RenderingContext.TEXTURE_CUBE_MAP')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE_CUBE_MAP = 0x8513;
-
-  @DomName('WebGL2RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_X')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516;
-
-  @DomName('WebGL2RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Y')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518;
-
-  @DomName('WebGL2RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Z')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A;
-
-  @DomName('WebGL2RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_X')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515;
-
-  @DomName('WebGL2RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Y')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517;
-
-  @DomName('WebGL2RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Z')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519;
-
-  @DomName('WebGL2RenderingContext.TEXTURE_MAG_FILTER')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE_MAG_FILTER = 0x2800;
-
-  @DomName('WebGL2RenderingContext.TEXTURE_MIN_FILTER')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE_MIN_FILTER = 0x2801;
-
-  @DomName('WebGL2RenderingContext.TEXTURE_WRAP_S')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE_WRAP_S = 0x2802;
-
-  @DomName('WebGL2RenderingContext.TEXTURE_WRAP_T')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TEXTURE_WRAP_T = 0x2803;
-
-  @DomName('WebGL2RenderingContext.TRIANGLES')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TRIANGLES = 0x0004;
-
-  @DomName('WebGL2RenderingContext.TRIANGLE_FAN')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TRIANGLE_FAN = 0x0006;
-
-  @DomName('WebGL2RenderingContext.TRIANGLE_STRIP')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int TRIANGLE_STRIP = 0x0005;
-
-  @DomName('WebGL2RenderingContext.UNPACK_ALIGNMENT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int UNPACK_ALIGNMENT = 0x0CF5;
-
-  @DomName('WebGL2RenderingContext.UNPACK_COLORSPACE_CONVERSION_WEBGL')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int UNPACK_COLORSPACE_CONVERSION_WEBGL = 0x9243;
-
-  @DomName('WebGL2RenderingContext.UNPACK_FLIP_Y_WEBGL')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int UNPACK_FLIP_Y_WEBGL = 0x9240;
-
-  @DomName('WebGL2RenderingContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int UNPACK_PREMULTIPLY_ALPHA_WEBGL = 0x9241;
-
-  @DomName('WebGL2RenderingContext.UNSIGNED_BYTE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int UNSIGNED_BYTE = 0x1401;
-
-  @DomName('WebGL2RenderingContext.UNSIGNED_INT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int UNSIGNED_INT = 0x1405;
-
-  @DomName('WebGL2RenderingContext.UNSIGNED_SHORT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int UNSIGNED_SHORT = 0x1403;
-
-  @DomName('WebGL2RenderingContext.UNSIGNED_SHORT_4_4_4_4')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int UNSIGNED_SHORT_4_4_4_4 = 0x8033;
-
-  @DomName('WebGL2RenderingContext.UNSIGNED_SHORT_5_5_5_1')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int UNSIGNED_SHORT_5_5_5_1 = 0x8034;
-
-  @DomName('WebGL2RenderingContext.UNSIGNED_SHORT_5_6_5')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int UNSIGNED_SHORT_5_6_5 = 0x8363;
-
-  @DomName('WebGL2RenderingContext.VALIDATE_STATUS')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int VALIDATE_STATUS = 0x8B83;
-
-  @DomName('WebGL2RenderingContext.VENDOR')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int VENDOR = 0x1F00;
-
-  @DomName('WebGL2RenderingContext.VERSION')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int VERSION = 0x1F02;
-
-  @DomName('WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F;
-
-  @DomName('WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_ENABLED')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622;
-
-  @DomName('WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_NORMALIZED')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A;
-
-  @DomName('WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_POINTER')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int VERTEX_ATTRIB_ARRAY_POINTER = 0x8645;
-
-  @DomName('WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_SIZE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int VERTEX_ATTRIB_ARRAY_SIZE = 0x8623;
-
-  @DomName('WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_STRIDE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624;
-
-  @DomName('WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_TYPE')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int VERTEX_ATTRIB_ARRAY_TYPE = 0x8625;
-
-  @DomName('WebGL2RenderingContext.VERTEX_SHADER')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int VERTEX_SHADER = 0x8B31;
-
-  @DomName('WebGL2RenderingContext.VIEWPORT')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int VIEWPORT = 0x0BA2;
-
-  @DomName('WebGL2RenderingContext.ZERO')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static const int ZERO = 0;
-
-  // From WebGL2RenderingContextBase
-
-  @DomName('WebGL2RenderingContext.beginQuery')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void beginQuery(int target, Query query) native;
-
-  @DomName('WebGL2RenderingContext.beginTransformFeedback')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void beginTransformFeedback(int primitiveMode) native;
-
-  @DomName('WebGL2RenderingContext.bindBufferBase')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void bindBufferBase(int target, int index, Buffer buffer) native;
-
-  @DomName('WebGL2RenderingContext.bindBufferRange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void bindBufferRange(
-      int target, int index, Buffer buffer, int offset, int size) native;
-
-  @DomName('WebGL2RenderingContext.bindSampler')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void bindSampler(int unit, Sampler sampler) native;
-
-  @DomName('WebGL2RenderingContext.bindTransformFeedback')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void bindTransformFeedback(int target, TransformFeedback feedback) native;
-
-  @DomName('WebGL2RenderingContext.bindVertexArray')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void bindVertexArray(VertexArrayObject vertexArray) native;
-
-  @DomName('WebGL2RenderingContext.blitFramebuffer')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void blitFramebuffer(int srcX0, int srcY0, int srcX1, int srcY1, int dstX0,
-      int dstY0, int dstX1, int dstY1, int mask, int filter) native;
-
-  @DomName('WebGL2RenderingContext.clearBufferfi')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void clearBufferfi(int buffer, int drawbuffer, num depth, int stencil) native;
-
-  @DomName('WebGL2RenderingContext.clearBufferfv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void clearBufferfv(int buffer, int drawbuffer, value) native;
-
-  @DomName('WebGL2RenderingContext.clearBufferiv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void clearBufferiv(int buffer, int drawbuffer, value) native;
-
-  @DomName('WebGL2RenderingContext.clearBufferuiv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void clearBufferuiv(int buffer, int drawbuffer, value) native;
-
-  @DomName('WebGL2RenderingContext.clientWaitSync')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int clientWaitSync(Sync sync, int flags, int timeout) native;
-
-  @DomName('WebGL2RenderingContext.compressedTexImage3D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void compressedTexImage3D(int target, int level, int internalformat,
-      int width, int height, int depth, int border, TypedData data) native;
-
-  @DomName('WebGL2RenderingContext.compressedTexSubImage3D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void compressedTexSubImage3D(
-      int target,
-      int level,
-      int xoffset,
-      int yoffset,
-      int zoffset,
-      int width,
-      int height,
-      int depth,
-      int format,
-      TypedData data) native;
-
-  @DomName('WebGL2RenderingContext.copyBufferSubData')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void copyBufferSubData(int readTarget, int writeTarget, int readOffset,
-      int writeOffset, int size) native;
-
-  @DomName('WebGL2RenderingContext.copyTexSubImage3D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void copyTexSubImage3D(int target, int level, int xoffset, int yoffset,
-      int zoffset, int x, int y, int width, int height) native;
-
-  @DomName('WebGL2RenderingContext.createQuery')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Query createQuery() native;
-
-  @DomName('WebGL2RenderingContext.createSampler')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Sampler createSampler() native;
-
-  @DomName('WebGL2RenderingContext.createTransformFeedback')
-  @DocsEditable()
-  @Experimental() // untriaged
-  TransformFeedback createTransformFeedback() native;
-
-  @DomName('WebGL2RenderingContext.createVertexArray')
-  @DocsEditable()
-  @Experimental() // untriaged
-  VertexArrayObject createVertexArray() native;
-
-  @DomName('WebGL2RenderingContext.deleteQuery')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void deleteQuery(Query query) native;
-
-  @DomName('WebGL2RenderingContext.deleteSampler')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void deleteSampler(Sampler sampler) native;
-
-  @DomName('WebGL2RenderingContext.deleteSync')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void deleteSync(Sync sync) native;
-
-  @DomName('WebGL2RenderingContext.deleteTransformFeedback')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void deleteTransformFeedback(TransformFeedback feedback) native;
-
-  @DomName('WebGL2RenderingContext.deleteVertexArray')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void deleteVertexArray(VertexArrayObject vertexArray) native;
-
-  @DomName('WebGL2RenderingContext.drawArraysInstanced')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void drawArraysInstanced(int mode, int first, int count, int instanceCount)
-      native;
-
-  @DomName('WebGL2RenderingContext.drawBuffers')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void drawBuffers(List<int> buffers) native;
-
-  @DomName('WebGL2RenderingContext.drawElementsInstanced')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void drawElementsInstanced(
-      int mode, int count, int type, int offset, int instanceCount) native;
-
-  @DomName('WebGL2RenderingContext.drawRangeElements')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void drawRangeElements(
-      int mode, int start, int end, int count, int type, int offset) native;
-
-  @DomName('WebGL2RenderingContext.endQuery')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void endQuery(int target) native;
-
-  @DomName('WebGL2RenderingContext.endTransformFeedback')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void endTransformFeedback() native;
-
-  @DomName('WebGL2RenderingContext.fenceSync')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Sync fenceSync(int condition, int flags) native;
-
-  @DomName('WebGL2RenderingContext.framebufferTextureLayer')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void framebufferTextureLayer(
-      int target, int attachment, Texture texture, int level, int layer) native;
-
-  @DomName('WebGL2RenderingContext.getActiveUniformBlockName')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String getActiveUniformBlockName(Program program, int uniformBlockIndex)
-      native;
-
-  @DomName('WebGL2RenderingContext.getActiveUniformBlockParameter')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object getActiveUniformBlockParameter(
-      Program program, int uniformBlockIndex, int pname) native;
-
-  @DomName('WebGL2RenderingContext.getActiveUniforms')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object getActiveUniforms(Program program, List<int> uniformIndices, int pname)
-      native;
-
-  @DomName('WebGL2RenderingContext.getBufferSubData')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void getBufferSubData(int target, int offset, ByteBuffer returnedData) native;
-
-  @DomName('WebGL2RenderingContext.getFragDataLocation')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int getFragDataLocation(Program program, String name) native;
-
-  @DomName('WebGL2RenderingContext.getIndexedParameter')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object getIndexedParameter(int target, int index) native;
-
-  @DomName('WebGL2RenderingContext.getInternalformatParameter')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object getInternalformatParameter(int target, int internalformat, int pname)
-      native;
-
-  @DomName('WebGL2RenderingContext.getQuery')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Query getQuery(int target, int pname) native;
-
-  @DomName('WebGL2RenderingContext.getQueryParameter')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object getQueryParameter(Query query, int pname) native;
-
-  @DomName('WebGL2RenderingContext.getSamplerParameter')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object getSamplerParameter(Sampler sampler, int pname) native;
-
-  @DomName('WebGL2RenderingContext.getSyncParameter')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object getSyncParameter(Sync sync, int pname) native;
-
-  @DomName('WebGL2RenderingContext.getTransformFeedbackVarying')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ActiveInfo getTransformFeedbackVarying(Program program, int index) native;
-
-  @DomName('WebGL2RenderingContext.getUniformBlockIndex')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int getUniformBlockIndex(Program program, String uniformBlockName) native;
-
-  @DomName('WebGL2RenderingContext.getUniformIndices')
-  @DocsEditable()
-  @Experimental() // untriaged
-  List<int> getUniformIndices(Program program, List<String> uniformNames) {
-    List uniformNames_1 = convertDartToNative_StringArray(uniformNames);
-    return _getUniformIndices_1(program, uniformNames_1);
-  }
-
-  @JSName('getUniformIndices')
-  @DomName('WebGL2RenderingContext.getUniformIndices')
-  @DocsEditable()
-  @Experimental() // untriaged
-  List<int> _getUniformIndices_1(Program program, List uniformNames) native;
-
-  @DomName('WebGL2RenderingContext.invalidateFramebuffer')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void invalidateFramebuffer(int target, List<int> attachments) native;
-
-  @DomName('WebGL2RenderingContext.invalidateSubFramebuffer')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void invalidateSubFramebuffer(int target, List<int> attachments, int x, int y,
-      int width, int height) native;
-
-  @DomName('WebGL2RenderingContext.isQuery')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool isQuery(Query query) native;
-
-  @DomName('WebGL2RenderingContext.isSampler')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool isSampler(Sampler sampler) native;
-
-  @DomName('WebGL2RenderingContext.isSync')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool isSync(Sync sync) native;
-
-  @DomName('WebGL2RenderingContext.isTransformFeedback')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool isTransformFeedback(TransformFeedback feedback) native;
-
-  @DomName('WebGL2RenderingContext.isVertexArray')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool isVertexArray(VertexArrayObject vertexArray) native;
-
-  @DomName('WebGL2RenderingContext.pauseTransformFeedback')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void pauseTransformFeedback() native;
-
-  @DomName('WebGL2RenderingContext.readBuffer')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void readBuffer(int mode) native;
-
-  @JSName('readPixels')
-  @DomName('WebGL2RenderingContext.readPixels')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void readPixels2(int x, int y, int width, int height, int format, int type,
-      int offset) native;
-
-  @DomName('WebGL2RenderingContext.renderbufferStorageMultisample')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void renderbufferStorageMultisample(int target, int samples,
-      int internalformat, int width, int height) native;
-
-  @DomName('WebGL2RenderingContext.resumeTransformFeedback')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void resumeTransformFeedback() native;
-
-  @DomName('WebGL2RenderingContext.samplerParameterf')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void samplerParameterf(Sampler sampler, int pname, num param) native;
-
-  @DomName('WebGL2RenderingContext.samplerParameteri')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void samplerParameteri(Sampler sampler, int pname, int param) native;
-
-  @JSName('texImage2D')
-  @DomName('WebGL2RenderingContext.texImage2D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void texImage2D2(int target, int level, int internalformat, int width,
-      int height, int border, int format, int type, int offset) native;
-
-  @DomName('WebGL2RenderingContext.texImage3D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void texImage3D(
-      int target,
-      int level,
-      int internalformat,
-      int width,
-      int height,
-      int depth,
-      int border,
-      int format,
-      int type,
-      offset_OR_pixels) native;
-
-  @DomName('WebGL2RenderingContext.texStorage2D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void texStorage2D(
-      int target, int levels, int internalformat, int width, int height) native;
-
-  @DomName('WebGL2RenderingContext.texStorage3D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void texStorage3D(int target, int levels, int internalformat, int width,
-      int height, int depth) native;
-
-  @DomName('WebGL2RenderingContext.texSubImage3D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void texSubImage3D(
-      int target,
-      int level,
-      int xoffset,
-      int yoffset,
-      int zoffset,
-      int format_OR_width,
-      int height_OR_type,
-      bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video,
-      [int format,
-      int type,
-      TypedData pixels]) {
-    if (type != null &&
-        format != null &&
-        (bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video is int)) {
-      _texSubImage3D_1(
-          target,
-          level,
-          xoffset,
-          yoffset,
-          zoffset,
-          format_OR_width,
-          height_OR_type,
-          bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video,
-          format,
-          type,
-          pixels);
-      return;
-    }
-    if ((bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video is ImageData ||
-            bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video == null) &&
-        format == null &&
-        type == null &&
-        pixels == null) {
-      var data_1 = convertDartToNative_ImageData(
-          bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video);
-      _texSubImage3D_2(target, level, xoffset, yoffset, zoffset,
-          format_OR_width, height_OR_type, data_1);
-      return;
-    }
-    if ((bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video is ImageElement ||
-            bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video == null) &&
-        format == null &&
-        type == null &&
-        pixels == null) {
-      _texSubImage3D_3(
-          target,
-          level,
-          xoffset,
-          yoffset,
-          zoffset,
-          format_OR_width,
-          height_OR_type,
-          bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video);
-      return;
-    }
-    if ((bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video is CanvasElement ||
-            bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video == null) &&
-        format == null &&
-        type == null &&
-        pixels == null) {
-      _texSubImage3D_4(
-          target,
-          level,
-          xoffset,
-          yoffset,
-          zoffset,
-          format_OR_width,
-          height_OR_type,
-          bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video);
-      return;
-    }
-    if ((bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video is VideoElement ||
-            bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video == null) &&
-        format == null &&
-        type == null &&
-        pixels == null) {
-      _texSubImage3D_5(
-          target,
-          level,
-          xoffset,
-          yoffset,
-          zoffset,
-          format_OR_width,
-          height_OR_type,
-          bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video);
-      return;
-    }
-    if ((bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video is ImageBitmap ||
-            bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video == null) &&
-        format == null &&
-        type == null &&
-        pixels == null) {
-      _texSubImage3D_6(
-          target,
-          level,
-          xoffset,
-          yoffset,
-          zoffset,
-          format_OR_width,
-          height_OR_type,
-          bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video);
-      return;
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-
-  @JSName('texSubImage3D')
-  @DomName('WebGL2RenderingContext.texSubImage3D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _texSubImage3D_1(target, level, xoffset, yoffset, zoffset, width, height,
-      int depth, format, type, TypedData pixels) native;
-  @JSName('texSubImage3D')
-  @DomName('WebGL2RenderingContext.texSubImage3D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _texSubImage3D_2(
-      target, level, xoffset, yoffset, zoffset, format, type, data) native;
-  @JSName('texSubImage3D')
-  @DomName('WebGL2RenderingContext.texSubImage3D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _texSubImage3D_3(target, level, xoffset, yoffset, zoffset, format, type,
-      ImageElement image) native;
-  @JSName('texSubImage3D')
-  @DomName('WebGL2RenderingContext.texSubImage3D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _texSubImage3D_4(target, level, xoffset, yoffset, zoffset, format, type,
-      CanvasElement canvas) native;
-  @JSName('texSubImage3D')
-  @DomName('WebGL2RenderingContext.texSubImage3D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _texSubImage3D_5(target, level, xoffset, yoffset, zoffset, format, type,
-      VideoElement video) native;
-  @JSName('texSubImage3D')
-  @DomName('WebGL2RenderingContext.texSubImage3D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _texSubImage3D_6(target, level, xoffset, yoffset, zoffset, format, type,
-      ImageBitmap bitmap) native;
-
-  @DomName('WebGL2RenderingContext.transformFeedbackVaryings')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void transformFeedbackVaryings(
-      Program program, List<String> varyings, int bufferMode) {
-    List varyings_1 = convertDartToNative_StringArray(varyings);
-    _transformFeedbackVaryings_1(program, varyings_1, bufferMode);
-    return;
-  }
-
-  @JSName('transformFeedbackVaryings')
-  @DomName('WebGL2RenderingContext.transformFeedbackVaryings')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _transformFeedbackVaryings_1(Program program, List varyings, bufferMode)
-      native;
-
-  @DomName('WebGL2RenderingContext.uniform1ui')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniform1ui(UniformLocation location, int v0) native;
-
-  @DomName('WebGL2RenderingContext.uniform1uiv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniform1uiv(UniformLocation location, v) native;
-
-  @DomName('WebGL2RenderingContext.uniform2ui')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniform2ui(UniformLocation location, int v0, int v1) native;
-
-  @DomName('WebGL2RenderingContext.uniform2uiv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniform2uiv(UniformLocation location, v) native;
-
-  @DomName('WebGL2RenderingContext.uniform3ui')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniform3ui(UniformLocation location, int v0, int v1, int v2) native;
-
-  @DomName('WebGL2RenderingContext.uniform3uiv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniform3uiv(UniformLocation location, v) native;
-
-  @DomName('WebGL2RenderingContext.uniform4ui')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniform4ui(UniformLocation location, int v0, int v1, int v2, int v3)
-      native;
-
-  @DomName('WebGL2RenderingContext.uniform4uiv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniform4uiv(UniformLocation location, v) native;
-
-  @DomName('WebGL2RenderingContext.uniformBlockBinding')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniformBlockBinding(
-      Program program, int uniformBlockIndex, int uniformBlockBinding) native;
-
-  @DomName('WebGL2RenderingContext.uniformMatrix2x3fv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniformMatrix2x3fv(UniformLocation location, bool transpose, value)
-      native;
-
-  @DomName('WebGL2RenderingContext.uniformMatrix2x4fv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniformMatrix2x4fv(UniformLocation location, bool transpose, value)
-      native;
-
-  @DomName('WebGL2RenderingContext.uniformMatrix3x2fv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniformMatrix3x2fv(UniformLocation location, bool transpose, value)
-      native;
-
-  @DomName('WebGL2RenderingContext.uniformMatrix3x4fv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniformMatrix3x4fv(UniformLocation location, bool transpose, value)
-      native;
-
-  @DomName('WebGL2RenderingContext.uniformMatrix4x2fv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniformMatrix4x2fv(UniformLocation location, bool transpose, value)
-      native;
-
-  @DomName('WebGL2RenderingContext.uniformMatrix4x3fv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniformMatrix4x3fv(UniformLocation location, bool transpose, value)
-      native;
-
-  @DomName('WebGL2RenderingContext.vertexAttribDivisor')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void vertexAttribDivisor(int index, int divisor) native;
-
-  @DomName('WebGL2RenderingContext.vertexAttribI4i')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void vertexAttribI4i(int index, int x, int y, int z, int w) native;
-
-  @DomName('WebGL2RenderingContext.vertexAttribI4iv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void vertexAttribI4iv(int index, v) native;
-
-  @DomName('WebGL2RenderingContext.vertexAttribI4ui')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void vertexAttribI4ui(int index, int x, int y, int z, int w) native;
-
-  @DomName('WebGL2RenderingContext.vertexAttribI4uiv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void vertexAttribI4uiv(int index, v) native;
-
-  @DomName('WebGL2RenderingContext.vertexAttribIPointer')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void vertexAttribIPointer(
-      int index, int size, int type, int stride, int offset) native;
-
-  @DomName('WebGL2RenderingContext.waitSync')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void waitSync(Sync sync, int flags, int timeout) native;
-
-  // From WebGLRenderingContextBase
-
-  @DomName('WebGL2RenderingContext.canvas')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final CanvasElement canvas;
-
-  @DomName('WebGL2RenderingContext.drawingBufferHeight')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int drawingBufferHeight;
-
-  @DomName('WebGL2RenderingContext.drawingBufferWidth')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int drawingBufferWidth;
-
-  @DomName('WebGL2RenderingContext.activeTexture')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void activeTexture(int texture) native;
-
-  @DomName('WebGL2RenderingContext.attachShader')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void attachShader(Program program, Shader shader) native;
-
-  @DomName('WebGL2RenderingContext.bindAttribLocation')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void bindAttribLocation(Program program, int index, String name) native;
-
-  @DomName('WebGL2RenderingContext.bindBuffer')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void bindBuffer(int target, Buffer buffer) native;
-
-  @DomName('WebGL2RenderingContext.bindFramebuffer')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void bindFramebuffer(int target, Framebuffer framebuffer) native;
-
-  @DomName('WebGL2RenderingContext.bindRenderbuffer')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void bindRenderbuffer(int target, Renderbuffer renderbuffer) native;
-
-  @DomName('WebGL2RenderingContext.bindTexture')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void bindTexture(int target, Texture texture) native;
-
-  @DomName('WebGL2RenderingContext.blendColor')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void blendColor(num red, num green, num blue, num alpha) native;
-
-  @DomName('WebGL2RenderingContext.blendEquation')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void blendEquation(int mode) native;
-
-  @DomName('WebGL2RenderingContext.blendEquationSeparate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void blendEquationSeparate(int modeRGB, int modeAlpha) native;
-
-  @DomName('WebGL2RenderingContext.blendFunc')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void blendFunc(int sfactor, int dfactor) native;
-
-  @DomName('WebGL2RenderingContext.blendFuncSeparate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void blendFuncSeparate(int srcRGB, int dstRGB, int srcAlpha, int dstAlpha)
-      native;
-
-  @DomName('WebGL2RenderingContext.bufferData')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void bufferData(int target, data_OR_size, int usage) native;
-
-  @DomName('WebGL2RenderingContext.bufferSubData')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void bufferSubData(int target, int offset, data) native;
-
-  @DomName('WebGL2RenderingContext.checkFramebufferStatus')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int checkFramebufferStatus(int target) native;
-
-  @DomName('WebGL2RenderingContext.clear')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void clear(int mask) native;
-
-  @DomName('WebGL2RenderingContext.clearColor')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void clearColor(num red, num green, num blue, num alpha) native;
-
-  @DomName('WebGL2RenderingContext.clearDepth')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void clearDepth(num depth) native;
-
-  @DomName('WebGL2RenderingContext.clearStencil')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void clearStencil(int s) native;
-
-  @DomName('WebGL2RenderingContext.colorMask')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void colorMask(bool red, bool green, bool blue, bool alpha) native;
-
-  @DomName('WebGL2RenderingContext.compileShader')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void compileShader(Shader shader) native;
-
-  @DomName('WebGL2RenderingContext.compressedTexImage2D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void compressedTexImage2D(int target, int level, int internalformat,
-      int width, int height, int border, TypedData data) native;
-
-  @DomName('WebGL2RenderingContext.compressedTexSubImage2D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void compressedTexSubImage2D(int target, int level, int xoffset, int yoffset,
-      int width, int height, int format, TypedData data) native;
-
-  @DomName('WebGL2RenderingContext.copyTexImage2D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void copyTexImage2D(int target, int level, int internalformat, int x, int y,
-      int width, int height, int border) native;
-
-  @DomName('WebGL2RenderingContext.copyTexSubImage2D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void copyTexSubImage2D(int target, int level, int xoffset, int yoffset, int x,
-      int y, int width, int height) native;
-
-  @DomName('WebGL2RenderingContext.createBuffer')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Buffer createBuffer() native;
-
-  @DomName('WebGL2RenderingContext.createFramebuffer')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Framebuffer createFramebuffer() native;
-
-  @DomName('WebGL2RenderingContext.createProgram')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Program createProgram() native;
-
-  @DomName('WebGL2RenderingContext.createRenderbuffer')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Renderbuffer createRenderbuffer() native;
-
-  @DomName('WebGL2RenderingContext.createShader')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Shader createShader(int type) native;
-
-  @DomName('WebGL2RenderingContext.createTexture')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Texture createTexture() native;
-
-  @DomName('WebGL2RenderingContext.cullFace')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void cullFace(int mode) native;
-
-  @DomName('WebGL2RenderingContext.deleteBuffer')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void deleteBuffer(Buffer buffer) native;
-
-  @DomName('WebGL2RenderingContext.deleteFramebuffer')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void deleteFramebuffer(Framebuffer framebuffer) native;
-
-  @DomName('WebGL2RenderingContext.deleteProgram')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void deleteProgram(Program program) native;
-
-  @DomName('WebGL2RenderingContext.deleteRenderbuffer')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void deleteRenderbuffer(Renderbuffer renderbuffer) native;
-
-  @DomName('WebGL2RenderingContext.deleteShader')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void deleteShader(Shader shader) native;
-
-  @DomName('WebGL2RenderingContext.deleteTexture')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void deleteTexture(Texture texture) native;
-
-  @DomName('WebGL2RenderingContext.depthFunc')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void depthFunc(int func) native;
-
-  @DomName('WebGL2RenderingContext.depthMask')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void depthMask(bool flag) native;
-
-  @DomName('WebGL2RenderingContext.depthRange')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void depthRange(num zNear, num zFar) native;
-
-  @DomName('WebGL2RenderingContext.detachShader')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void detachShader(Program program, Shader shader) native;
-
-  @DomName('WebGL2RenderingContext.disable')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void disable(int cap) native;
-
-  @DomName('WebGL2RenderingContext.disableVertexAttribArray')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void disableVertexAttribArray(int index) native;
-
-  @DomName('WebGL2RenderingContext.drawArrays')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void drawArrays(int mode, int first, int count) native;
-
-  @DomName('WebGL2RenderingContext.drawElements')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void drawElements(int mode, int count, int type, int offset) native;
-
-  @DomName('WebGL2RenderingContext.enable')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void enable(int cap) native;
-
-  @DomName('WebGL2RenderingContext.enableVertexAttribArray')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void enableVertexAttribArray(int index) native;
-
-  @DomName('WebGL2RenderingContext.finish')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void finish() native;
-
-  @DomName('WebGL2RenderingContext.flush')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void flush() native;
-
-  @DomName('WebGL2RenderingContext.framebufferRenderbuffer')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void framebufferRenderbuffer(int target, int attachment,
-      int renderbuffertarget, Renderbuffer renderbuffer) native;
-
-  @DomName('WebGL2RenderingContext.framebufferTexture2D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void framebufferTexture2D(int target, int attachment, int textarget,
-      Texture texture, int level) native;
-
-  @DomName('WebGL2RenderingContext.frontFace')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void frontFace(int mode) native;
-
-  @DomName('WebGL2RenderingContext.generateMipmap')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void generateMipmap(int target) native;
-
-  @DomName('WebGL2RenderingContext.getActiveAttrib')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ActiveInfo getActiveAttrib(Program program, int index) native;
-
-  @DomName('WebGL2RenderingContext.getActiveUniform')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ActiveInfo getActiveUniform(Program program, int index) native;
-
-  @DomName('WebGL2RenderingContext.getAttachedShaders')
-  @DocsEditable()
-  @Experimental() // untriaged
-  List<Shader> getAttachedShaders(Program program) native;
-
-  @DomName('WebGL2RenderingContext.getAttribLocation')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int getAttribLocation(Program program, String name) native;
-
-  @DomName('WebGL2RenderingContext.getBufferParameter')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object getBufferParameter(int target, int pname) native;
-
-  @DomName('WebGL2RenderingContext.getContextAttributes')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Map getContextAttributes() {
-    return convertNativeToDart_Dictionary(_getContextAttributes_1());
-  }
-
-  @JSName('getContextAttributes')
-  @DomName('WebGL2RenderingContext.getContextAttributes')
-  @DocsEditable()
-  @Experimental() // untriaged
-  _getContextAttributes_1() native;
-
-  @DomName('WebGL2RenderingContext.getError')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int getError() native;
-
-  @DomName('WebGL2RenderingContext.getExtension')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object getExtension(String name) native;
-
-  @DomName('WebGL2RenderingContext.getFramebufferAttachmentParameter')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object getFramebufferAttachmentParameter(
-      int target, int attachment, int pname) native;
-
-  @DomName('WebGL2RenderingContext.getParameter')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object getParameter(int pname) native;
-
-  @DomName('WebGL2RenderingContext.getProgramInfoLog')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String getProgramInfoLog(Program program) native;
-
-  @DomName('WebGL2RenderingContext.getProgramParameter')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object getProgramParameter(Program program, int pname) native;
-
-  @DomName('WebGL2RenderingContext.getRenderbufferParameter')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object getRenderbufferParameter(int target, int pname) native;
-
-  @DomName('WebGL2RenderingContext.getShaderInfoLog')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String getShaderInfoLog(Shader shader) native;
-
-  @DomName('WebGL2RenderingContext.getShaderParameter')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object getShaderParameter(Shader shader, int pname) native;
-
-  @DomName('WebGL2RenderingContext.getShaderPrecisionFormat')
-  @DocsEditable()
-  @Experimental() // untriaged
-  ShaderPrecisionFormat getShaderPrecisionFormat(
-      int shadertype, int precisiontype) native;
-
-  @DomName('WebGL2RenderingContext.getShaderSource')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String getShaderSource(Shader shader) native;
-
-  @DomName('WebGL2RenderingContext.getSupportedExtensions')
-  @DocsEditable()
-  @Experimental() // untriaged
-  List<String> getSupportedExtensions() native;
-
-  @DomName('WebGL2RenderingContext.getTexParameter')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object getTexParameter(int target, int pname) native;
-
-  @DomName('WebGL2RenderingContext.getUniform')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object getUniform(Program program, UniformLocation location) native;
-
-  @DomName('WebGL2RenderingContext.getUniformLocation')
-  @DocsEditable()
-  @Experimental() // untriaged
-  UniformLocation getUniformLocation(Program program, String name) native;
-
-  @DomName('WebGL2RenderingContext.getVertexAttrib')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object getVertexAttrib(int index, int pname) native;
-
-  @DomName('WebGL2RenderingContext.getVertexAttribOffset')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int getVertexAttribOffset(int index, int pname) native;
-
-  @DomName('WebGL2RenderingContext.hint')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void hint(int target, int mode) native;
-
-  @DomName('WebGL2RenderingContext.isBuffer')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool isBuffer(Buffer buffer) native;
-
-  @DomName('WebGL2RenderingContext.isContextLost')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool isContextLost() native;
-
-  @DomName('WebGL2RenderingContext.isEnabled')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool isEnabled(int cap) native;
-
-  @DomName('WebGL2RenderingContext.isFramebuffer')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool isFramebuffer(Framebuffer framebuffer) native;
-
-  @DomName('WebGL2RenderingContext.isProgram')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool isProgram(Program program) native;
-
-  @DomName('WebGL2RenderingContext.isRenderbuffer')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool isRenderbuffer(Renderbuffer renderbuffer) native;
-
-  @DomName('WebGL2RenderingContext.isShader')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool isShader(Shader shader) native;
-
-  @DomName('WebGL2RenderingContext.isTexture')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool isTexture(Texture texture) native;
-
-  @DomName('WebGL2RenderingContext.lineWidth')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void lineWidth(num width) native;
-
-  @DomName('WebGL2RenderingContext.linkProgram')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void linkProgram(Program program) native;
-
-  @DomName('WebGL2RenderingContext.pixelStorei')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void pixelStorei(int pname, int param) native;
-
-  @DomName('WebGL2RenderingContext.polygonOffset')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void polygonOffset(num factor, num units) native;
-
-  @DomName('WebGL2RenderingContext.readPixels')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void readPixels(int x, int y, int width, int height, int format, int type,
-      TypedData pixels) native;
-
-  @DomName('WebGL2RenderingContext.renderbufferStorage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void renderbufferStorage(
-      int target, int internalformat, int width, int height) native;
-
-  @DomName('WebGL2RenderingContext.sampleCoverage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void sampleCoverage(num value, bool invert) native;
-
-  @DomName('WebGL2RenderingContext.scissor')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void scissor(int x, int y, int width, int height) native;
-
-  @DomName('WebGL2RenderingContext.shaderSource')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void shaderSource(Shader shader, String string) native;
-
-  @DomName('WebGL2RenderingContext.stencilFunc')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void stencilFunc(int func, int ref, int mask) native;
-
-  @DomName('WebGL2RenderingContext.stencilFuncSeparate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void stencilFuncSeparate(int face, int func, int ref, int mask) native;
-
-  @DomName('WebGL2RenderingContext.stencilMask')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void stencilMask(int mask) native;
-
-  @DomName('WebGL2RenderingContext.stencilMaskSeparate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void stencilMaskSeparate(int face, int mask) native;
-
-  @DomName('WebGL2RenderingContext.stencilOp')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void stencilOp(int fail, int zfail, int zpass) native;
-
-  @DomName('WebGL2RenderingContext.stencilOpSeparate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void stencilOpSeparate(int face, int fail, int zfail, int zpass) native;
-
-  @DomName('WebGL2RenderingContext.texImage2D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void texImage2D(
-      int target,
-      int level,
-      int internalformat,
-      int format_OR_width,
-      int height_OR_type,
-      bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video,
-      [int format,
-      int type,
-      TypedData pixels]) {
-    if (type != null &&
-        format != null &&
-        (bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video is int)) {
-      _texImage2D_1(
-          target,
-          level,
-          internalformat,
-          format_OR_width,
-          height_OR_type,
-          bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video,
-          format,
-          type,
-          pixels);
-      return;
-    }
-    if ((bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video is ImageData ||
-            bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video == null) &&
-        format == null &&
-        type == null &&
-        pixels == null) {
-      var pixels_1 = convertDartToNative_ImageData(
-          bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
-      _texImage2D_2(target, level, internalformat, format_OR_width,
-          height_OR_type, pixels_1);
-      return;
-    }
-    if ((bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video
-            is ImageElement) &&
-        format == null &&
-        type == null &&
-        pixels == null) {
-      _texImage2D_3(
-          target,
-          level,
-          internalformat,
-          format_OR_width,
-          height_OR_type,
-          bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
-      return;
-    }
-    if ((bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video
-            is CanvasElement) &&
-        format == null &&
-        type == null &&
-        pixels == null) {
-      _texImage2D_4(
-          target,
-          level,
-          internalformat,
-          format_OR_width,
-          height_OR_type,
-          bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
-      return;
-    }
-    if ((bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video
-            is VideoElement) &&
-        format == null &&
-        type == null &&
-        pixels == null) {
-      _texImage2D_5(
-          target,
-          level,
-          internalformat,
-          format_OR_width,
-          height_OR_type,
-          bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
-      return;
-    }
-    if ((bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video
-            is ImageBitmap) &&
-        format == null &&
-        type == null &&
-        pixels == null) {
-      _texImage2D_6(
-          target,
-          level,
-          internalformat,
-          format_OR_width,
-          height_OR_type,
-          bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
-      return;
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-
-  @JSName('texImage2D')
-  @DomName('WebGL2RenderingContext.texImage2D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _texImage2D_1(target, level, internalformat, width, height, int border,
-      format, type, TypedData pixels) native;
-  @JSName('texImage2D')
-  @DomName('WebGL2RenderingContext.texImage2D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _texImage2D_2(target, level, internalformat, format, type, pixels)
-      native;
-  @JSName('texImage2D')
-  @DomName('WebGL2RenderingContext.texImage2D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _texImage2D_3(
-      target, level, internalformat, format, type, ImageElement image) native;
-  @JSName('texImage2D')
-  @DomName('WebGL2RenderingContext.texImage2D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _texImage2D_4(
-      target, level, internalformat, format, type, CanvasElement canvas) native;
-  @JSName('texImage2D')
-  @DomName('WebGL2RenderingContext.texImage2D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _texImage2D_5(
-      target, level, internalformat, format, type, VideoElement video) native;
-  @JSName('texImage2D')
-  @DomName('WebGL2RenderingContext.texImage2D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _texImage2D_6(
-      target, level, internalformat, format, type, ImageBitmap bitmap) native;
-
-  @DomName('WebGL2RenderingContext.texParameterf')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void texParameterf(int target, int pname, num param) native;
-
-  @DomName('WebGL2RenderingContext.texParameteri')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void texParameteri(int target, int pname, int param) native;
-
-  @DomName('WebGL2RenderingContext.texSubImage2D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void texSubImage2D(
-      int target,
-      int level,
-      int xoffset,
-      int yoffset,
-      int format_OR_width,
-      int height_OR_type,
-      bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video,
-      [int type,
-      TypedData pixels]) {
-    if (type != null &&
-        (bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video is int)) {
-      _texSubImage2D_1(
-          target,
-          level,
-          xoffset,
-          yoffset,
-          format_OR_width,
-          height_OR_type,
-          bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video,
-          type,
-          pixels);
-      return;
-    }
-    if ((bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video is ImageData ||
-            bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video == null) &&
-        type == null &&
-        pixels == null) {
-      var pixels_1 = convertDartToNative_ImageData(
-          bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
-      _texSubImage2D_2(target, level, xoffset, yoffset, format_OR_width,
-          height_OR_type, pixels_1);
-      return;
-    }
-    if ((bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video
-            is ImageElement) &&
-        type == null &&
-        pixels == null) {
-      _texSubImage2D_3(
-          target,
-          level,
-          xoffset,
-          yoffset,
-          format_OR_width,
-          height_OR_type,
-          bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
-      return;
-    }
-    if ((bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video
-            is CanvasElement) &&
-        type == null &&
-        pixels == null) {
-      _texSubImage2D_4(
-          target,
-          level,
-          xoffset,
-          yoffset,
-          format_OR_width,
-          height_OR_type,
-          bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
-      return;
-    }
-    if ((bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video
-            is VideoElement) &&
-        type == null &&
-        pixels == null) {
-      _texSubImage2D_5(
-          target,
-          level,
-          xoffset,
-          yoffset,
-          format_OR_width,
-          height_OR_type,
-          bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
-      return;
-    }
-    if ((bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video
-            is ImageBitmap) &&
-        type == null &&
-        pixels == null) {
-      _texSubImage2D_6(
-          target,
-          level,
-          xoffset,
-          yoffset,
-          format_OR_width,
-          height_OR_type,
-          bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
-      return;
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-
-  @JSName('texSubImage2D')
-  @DomName('WebGL2RenderingContext.texSubImage2D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _texSubImage2D_1(target, level, xoffset, yoffset, width, height,
-      int format, type, TypedData pixels) native;
-  @JSName('texSubImage2D')
-  @DomName('WebGL2RenderingContext.texSubImage2D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _texSubImage2D_2(target, level, xoffset, yoffset, format, type, pixels)
-      native;
-  @JSName('texSubImage2D')
-  @DomName('WebGL2RenderingContext.texSubImage2D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _texSubImage2D_3(
-      target, level, xoffset, yoffset, format, type, ImageElement image) native;
-  @JSName('texSubImage2D')
-  @DomName('WebGL2RenderingContext.texSubImage2D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _texSubImage2D_4(target, level, xoffset, yoffset, format, type,
-      CanvasElement canvas) native;
-  @JSName('texSubImage2D')
-  @DomName('WebGL2RenderingContext.texSubImage2D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _texSubImage2D_5(
-      target, level, xoffset, yoffset, format, type, VideoElement video) native;
-  @JSName('texSubImage2D')
-  @DomName('WebGL2RenderingContext.texSubImage2D')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _texSubImage2D_6(
-      target, level, xoffset, yoffset, format, type, ImageBitmap bitmap) native;
-
-  @DomName('WebGL2RenderingContext.uniform1f')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniform1f(UniformLocation location, num x) native;
-
-  @DomName('WebGL2RenderingContext.uniform1fv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniform1fv(UniformLocation location, v) native;
-
-  @DomName('WebGL2RenderingContext.uniform1i')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniform1i(UniformLocation location, int x) native;
-
-  @DomName('WebGL2RenderingContext.uniform1iv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniform1iv(UniformLocation location, v) native;
-
-  @DomName('WebGL2RenderingContext.uniform2f')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniform2f(UniformLocation location, num x, num y) native;
-
-  @DomName('WebGL2RenderingContext.uniform2fv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniform2fv(UniformLocation location, v) native;
-
-  @DomName('WebGL2RenderingContext.uniform2i')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniform2i(UniformLocation location, int x, int y) native;
-
-  @DomName('WebGL2RenderingContext.uniform2iv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniform2iv(UniformLocation location, v) native;
-
-  @DomName('WebGL2RenderingContext.uniform3f')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniform3f(UniformLocation location, num x, num y, num z) native;
-
-  @DomName('WebGL2RenderingContext.uniform3fv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniform3fv(UniformLocation location, v) native;
-
-  @DomName('WebGL2RenderingContext.uniform3i')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniform3i(UniformLocation location, int x, int y, int z) native;
-
-  @DomName('WebGL2RenderingContext.uniform3iv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniform3iv(UniformLocation location, v) native;
-
-  @DomName('WebGL2RenderingContext.uniform4f')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniform4f(UniformLocation location, num x, num y, num z, num w) native;
-
-  @DomName('WebGL2RenderingContext.uniform4fv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniform4fv(UniformLocation location, v) native;
-
-  @DomName('WebGL2RenderingContext.uniform4i')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniform4i(UniformLocation location, int x, int y, int z, int w) native;
-
-  @DomName('WebGL2RenderingContext.uniform4iv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniform4iv(UniformLocation location, v) native;
-
-  @DomName('WebGL2RenderingContext.uniformMatrix2fv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniformMatrix2fv(UniformLocation location, bool transpose, array) native;
-
-  @DomName('WebGL2RenderingContext.uniformMatrix3fv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniformMatrix3fv(UniformLocation location, bool transpose, array) native;
-
-  @DomName('WebGL2RenderingContext.uniformMatrix4fv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void uniformMatrix4fv(UniformLocation location, bool transpose, array) native;
-
-  @DomName('WebGL2RenderingContext.useProgram')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void useProgram(Program program) native;
-
-  @DomName('WebGL2RenderingContext.validateProgram')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void validateProgram(Program program) native;
-
-  @DomName('WebGL2RenderingContext.vertexAttrib1f')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void vertexAttrib1f(int indx, num x) native;
-
-  @DomName('WebGL2RenderingContext.vertexAttrib1fv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void vertexAttrib1fv(int indx, values) native;
-
-  @DomName('WebGL2RenderingContext.vertexAttrib2f')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void vertexAttrib2f(int indx, num x, num y) native;
-
-  @DomName('WebGL2RenderingContext.vertexAttrib2fv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void vertexAttrib2fv(int indx, values) native;
-
-  @DomName('WebGL2RenderingContext.vertexAttrib3f')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void vertexAttrib3f(int indx, num x, num y, num z) native;
-
-  @DomName('WebGL2RenderingContext.vertexAttrib3fv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void vertexAttrib3fv(int indx, values) native;
-
-  @DomName('WebGL2RenderingContext.vertexAttrib4f')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void vertexAttrib4f(int indx, num x, num y, num z, num w) native;
-
-  @DomName('WebGL2RenderingContext.vertexAttrib4fv')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void vertexAttrib4fv(int indx, values) native;
-
-  @DomName('WebGL2RenderingContext.vertexAttribPointer')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void vertexAttribPointer(int indx, int size, int type, bool normalized,
-      int stride, int offset) native;
-
-  @DomName('WebGL2RenderingContext.viewport')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void viewport(int x, int y, int width, int height) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGLSampler')
-@Experimental() // untriaged
-@Native("WebGLSampler")
-class Sampler extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Sampler._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGLShader')
-@Native("WebGLShader")
-class Shader extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Shader._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGLShaderPrecisionFormat')
-@Native("WebGLShaderPrecisionFormat")
-class ShaderPrecisionFormat extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory ShaderPrecisionFormat._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('WebGLShaderPrecisionFormat.precision')
-  @DocsEditable()
-  final int precision;
-
-  @DomName('WebGLShaderPrecisionFormat.rangeMax')
-  @DocsEditable()
-  final int rangeMax;
-
-  @DomName('WebGLShaderPrecisionFormat.rangeMin')
-  @DocsEditable()
-  final int rangeMin;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGLSync')
-@Experimental() // untriaged
-@Native("WebGLSync")
-class Sync extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Sync._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGLTexture')
-@Native("WebGLTexture")
-class Texture extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Texture._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGLTimerQueryEXT')
-@Experimental() // untriaged
-@Native("WebGLTimerQueryEXT")
-class TimerQueryExt extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory TimerQueryExt._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGLTransformFeedback')
-@Experimental() // untriaged
-@Native("WebGLTransformFeedback")
-class TransformFeedback extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory TransformFeedback._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGLUniformLocation')
-@Native("WebGLUniformLocation")
-class UniformLocation extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory UniformLocation._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGLVertexArrayObject')
-@Experimental() // untriaged
-@Native("WebGLVertexArrayObject")
-class VertexArrayObject extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory VertexArrayObject._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGLVertexArrayObjectOES')
-// http://www.khronos.org/registry/webgl/extensions/OES_vertex_array_object/
-@Experimental() // experimental
-@Native("WebGLVertexArrayObjectOES")
-class VertexArrayObjectOes extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory VertexArrayObjectOes._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGL2RenderingContextBase')
-@Experimental() // untriaged
-@Native("WebGL2RenderingContextBase")
-abstract class _WebGL2RenderingContextBase extends Interceptor
-    implements _WebGLRenderingContextBase {
-  // To suppress missing implicit constructor warnings.
-  factory _WebGL2RenderingContextBase._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  // From WebGLRenderingContextBase
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('WebGLRenderingContextBase')
-@Experimental() // untriaged
-abstract class _WebGLRenderingContextBase extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _WebGLRenderingContextBase._() {
-    throw new UnsupportedError("Not supported");
-  }
-}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/web_sql/dart2js/web_sql_dart2js.dart b/pkg/dev_compiler/tool/input_sdk/lib/web_sql/dart2js/web_sql_dart2js.dart
deleted file mode 100644
index 92273fd..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/web_sql/dart2js/web_sql_dart2js.dart
+++ /dev/null
@@ -1,313 +0,0 @@
-/**
- * An API for storing data in the browser that can be queried with SQL.
- *
- * **Caution:** this specification is no longer actively maintained by the Web
- * Applications Working Group and may be removed at any time.
- * See [the W3C Web SQL Database specification](http://www.w3.org/TR/webdatabase/)
- * for more information.
- *
- * The [dart:indexed_db] APIs is a recommended alternatives.
- */
-library dart.dom.web_sql;
-
-import 'dart:async';
-import 'dart:collection';
-import 'dart:_internal';
-import 'dart:html';
-import 'dart:html_common';
-import 'dart:_foreign_helper' show JS;
-import 'dart:_interceptors' show Interceptor;
-// DO NOT EDIT - unless you are editing documentation as per:
-// https://code.google.com/p/dart/wiki/ContributingHTMLDocumentation
-// Auto-generated dart:audio library.
-
-import 'dart:_js_helper'
-    show
-        convertDartClosureToJS,
-        Creates,
-        JSName,
-        Native,
-        JavaScriptIndexingBehavior;
-
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('SQLStatementCallback')
-// http://www.w3.org/TR/webdatabase/#sqlstatementcallback
-@Experimental() // deprecated
-typedef void SqlStatementCallback(
-    SqlTransaction transaction, SqlResultSet resultSet);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('SQLStatementErrorCallback')
-// http://www.w3.org/TR/webdatabase/#sqlstatementerrorcallback
-@Experimental() // deprecated
-typedef void SqlStatementErrorCallback(
-    SqlTransaction transaction, SqlError error);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('SQLTransactionCallback')
-// http://www.w3.org/TR/webdatabase/#sqltransactioncallback
-@Experimental() // deprecated
-typedef void SqlTransactionCallback(SqlTransaction transaction);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('SQLTransactionErrorCallback')
-// http://www.w3.org/TR/webdatabase/#sqltransactionerrorcallback
-@Experimental() // deprecated
-typedef void SqlTransactionErrorCallback(SqlError error);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('Database')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Experimental()
-// http://www.w3.org/TR/webdatabase/#asynchronous-database-api
-@Experimental() // deprecated
-@Native("Database")
-class SqlDatabase extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory SqlDatabase._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported => JS('bool', '!!(window.openDatabase)');
-
-  @DomName('Database.version')
-  @DocsEditable()
-  final String version;
-
-  /**
-   * Atomically update the database version to [newVersion], asynchronously
-   * running [callback] on the [SqlTransaction] representing this
-   * [changeVersion] transaction.
-   *
-   * If [callback] runs successfully, then [successCallback] is called.
-   * Otherwise, [errorCallback] is called.
-   *
-   * [oldVersion] should match the database's current [version] exactly.
-   *
-   * See also:
-   *
-   * * [Database.changeVersion](http://www.w3.org/TR/webdatabase/#dom-database-changeversion) from W3C.
-   */
-  @DomName('Database.changeVersion')
-  @DocsEditable()
-  void changeVersion(String oldVersion, String newVersion,
-      [SqlTransactionCallback callback,
-      SqlTransactionErrorCallback errorCallback,
-      VoidCallback successCallback]) native;
-
-  @DomName('Database.readTransaction')
-  @DocsEditable()
-  void readTransaction(SqlTransactionCallback callback,
-      [SqlTransactionErrorCallback errorCallback,
-      VoidCallback successCallback]) native;
-
-  @DomName('Database.transaction')
-  @DocsEditable()
-  void transaction(SqlTransactionCallback callback,
-      [SqlTransactionErrorCallback errorCallback,
-      VoidCallback successCallback]) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SQLError')
-// http://www.w3.org/TR/webdatabase/#sqlerror
-@Experimental() // deprecated
-@Native("SQLError")
-class SqlError extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory SqlError._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SQLError.CONSTRAINT_ERR')
-  @DocsEditable()
-  static const int CONSTRAINT_ERR = 6;
-
-  @DomName('SQLError.DATABASE_ERR')
-  @DocsEditable()
-  static const int DATABASE_ERR = 1;
-
-  @DomName('SQLError.QUOTA_ERR')
-  @DocsEditable()
-  static const int QUOTA_ERR = 4;
-
-  @DomName('SQLError.SYNTAX_ERR')
-  @DocsEditable()
-  static const int SYNTAX_ERR = 5;
-
-  @DomName('SQLError.TIMEOUT_ERR')
-  @DocsEditable()
-  static const int TIMEOUT_ERR = 7;
-
-  @DomName('SQLError.TOO_LARGE_ERR')
-  @DocsEditable()
-  static const int TOO_LARGE_ERR = 3;
-
-  @DomName('SQLError.UNKNOWN_ERR')
-  @DocsEditable()
-  static const int UNKNOWN_ERR = 0;
-
-  @DomName('SQLError.VERSION_ERR')
-  @DocsEditable()
-  static const int VERSION_ERR = 2;
-
-  @DomName('SQLError.code')
-  @DocsEditable()
-  final int code;
-
-  @DomName('SQLError.message')
-  @DocsEditable()
-  final String message;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SQLResultSet')
-// http://www.w3.org/TR/webdatabase/#sqlresultset
-@Experimental() // deprecated
-@Native("SQLResultSet")
-class SqlResultSet extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory SqlResultSet._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SQLResultSet.insertId')
-  @DocsEditable()
-  final int insertId;
-
-  @DomName('SQLResultSet.rows')
-  @DocsEditable()
-  final SqlResultSetRowList rows;
-
-  @DomName('SQLResultSet.rowsAffected')
-  @DocsEditable()
-  final int rowsAffected;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SQLResultSetRowList')
-// http://www.w3.org/TR/webdatabase/#sqlresultsetrowlist
-@Experimental() // deprecated
-@Native("SQLResultSetRowList")
-class SqlResultSetRowList extends Interceptor
-    with ListMixin<Map>, ImmutableListMixin<Map>
-    implements List<Map> {
-  // To suppress missing implicit constructor warnings.
-  factory SqlResultSetRowList._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SQLResultSetRowList.length')
-  @DocsEditable()
-  int get length => JS("int", "#.length", this);
-
-  Map operator [](int index) {
-    if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
-      throw new RangeError.index(index, this);
-    return this.item(index);
-  }
-
-  void operator []=(int index, Map value) {
-    throw new UnsupportedError("Cannot assign element of immutable List.");
-  }
-  // -- start List<Map> mixins.
-  // Map is the element type.
-
-  set length(int value) {
-    throw new UnsupportedError("Cannot resize immutable List.");
-  }
-
-  Map get first {
-    if (this.length > 0) {
-      return JS('Map', '#[0]', this);
-    }
-    throw new StateError("No elements");
-  }
-
-  Map get last {
-    int len = this.length;
-    if (len > 0) {
-      return JS('Map', '#[#]', this, len - 1);
-    }
-    throw new StateError("No elements");
-  }
-
-  Map get single {
-    int len = this.length;
-    if (len == 1) {
-      return JS('Map', '#[0]', this);
-    }
-    if (len == 0) throw new StateError("No elements");
-    throw new StateError("More than one element");
-  }
-
-  Map elementAt(int index) => this[index];
-  // -- end List<Map> mixins.
-
-  @DomName('SQLResultSetRowList.item')
-  @DocsEditable()
-  Map item(int index) {
-    return convertNativeToDart_Dictionary(_item_1(index));
-  }
-
-  @JSName('item')
-  @DomName('SQLResultSetRowList.item')
-  @DocsEditable()
-  _item_1(index) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@DocsEditable()
-@DomName('SQLTransaction')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Experimental()
-// http://www.w3.org/TR/webdatabase/#sqltransaction
-@deprecated // deprecated
-@Native("SQLTransaction")
-class SqlTransaction extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory SqlTransaction._() {
-    throw new UnsupportedError("Not supported");
-  }
-
-  @DomName('SQLTransaction.executeSql')
-  @DocsEditable()
-  void executeSql(String sqlStatement,
-      [List arguments,
-      SqlStatementCallback callback,
-      SqlStatementErrorCallback errorCallback]) native;
-}
diff --git a/pkg/dev_compiler/tool/input_sdk/patch/internal_patch.dart b/pkg/dev_compiler/tool/input_sdk/patch/internal_patch.dart
index de24334..221b620 100644
--- a/pkg/dev_compiler/tool/input_sdk/patch/internal_patch.dart
+++ b/pkg/dev_compiler/tool/input_sdk/patch/internal_patch.dart
@@ -6,6 +6,7 @@
 import 'dart:_js_helper' show patch;
 import 'dart:_interceptors' show JSArray;
 import 'dart:_foreign_helper' show JS;
+import 'dart:_runtime' as dart;
 
 @patch
 class Symbol implements core.Symbol {
@@ -45,3 +46,7 @@
   JSArray.markUnmodifiableList(fixedLengthList);
   return fixedLengthList;
 }
+
+@patch
+Object extractTypeArguments<T>(T instance, Function extract) =>
+    dart.extractTypeArguments<T>(instance, extract);
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 8f71bcb..92dddf2 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
@@ -1103,3 +1103,86 @@
   // can return false.
   return false;
 })()''');
+
+Object extractTypeArguments<T>(T instance, Function f) {
+  if (instance == null) {
+    throw new ArgumentError('Cannot extract type of null instance.');
+  }
+  var type = unwrapType(T);
+  if (type is AbstractFunctionType) {
+    throw new ArgumentError('Cannot extract from non-class type ($type).');
+  }
+  List typeArgs = _extractTypes(getReifiedType(instance), type);
+  return _checkAndCall(
+      f, _getRuntimeType(f), JS('', 'void 0'), typeArgs, [], 'call');
+}
+
+// Let t2 = T<T1, ..., Tn>
+// If t1 </: T<T1, ..., Tn>
+// - return null
+// If t1 <: T<T1, ..., Tn>
+// - return [S1, ..., Sn] such that there exists no Ri where
+//   Ri != Si && Ri <: Si && t1 <: T<S1, ..., Ri, ..., Sn>
+//
+// Note: In Dart 1, there isn't necessarily a unique solution to the above -
+// t1 <: Foo<int> and t1 <: Foo<String> could both be true.  Dart 2 will
+// statically disallow.  Until then, this could return either [int] or
+// [String] depending on which it hits first.
+//
+// TODO(vsm): Consider merging with similar isClassSubType logic.
+List _extractTypes(Type t1, Type t2) => JS('', '''(() => {
+  let typeArguments2 = $getGenericArgs($t2);
+  if ($t1 == $t2) return typeArguments2;
+
+  if ($t1 == $Object) return null;
+
+  // If t1 is a JS Object, we may not hit core.Object.
+  if ($t1 == null) return null;
+
+  // Check if t1 and t2 have the same raw type.  If so, check covariance on
+  // type parameters.
+  let raw1 = $getGenericClass($t1);
+  let raw2 = $getGenericClass($t2);
+  if (raw1 != null && raw1 == raw2) {
+    let typeArguments1 = $getGenericArgs($t1);
+    let length = typeArguments1.length;
+    if (typeArguments2.length == 0) {
+      // t2 is the raw form of t1
+      return typeArguments1;
+    } else if (length == 0) {
+      // t1 is raw, but t2 is not
+      if (typeArguments2.every($_isTop)) return typeArguments2;
+      return null;
+    }
+    if (length != typeArguments2.length) $assertFailed();
+    for (let i = 0; i < length; ++i) {
+      let result =
+          $_isSubtype(typeArguments1[i], typeArguments2[i], true);
+      if (!result) {
+        return null;
+      }
+    }
+    return typeArguments1;
+  }
+
+  var result = $_extractTypes($t1.__proto__, $t2);
+  if (result) return result;
+
+  // Check mixin.
+  let m1 = $getMixin($t1);
+  if (m1 != null) {
+    result = $_extractTypes(m1, $t2);
+    if (result) return result;
+  }
+
+  // Check interfaces.
+  let getInterfaces = $getImplements($t1);
+  if (getInterfaces) {
+    for (let i1 of getInterfaces()) {
+      result = $_extractTypes(i1, $t2);
+      if (result) return result;
+    }
+  }
+
+  return null;
+})()''');
diff --git a/pkg/dev_compiler/tool/sdk_expected_errors.txt b/pkg/dev_compiler/tool/sdk_expected_errors.txt
index e2dcf06..cd24172 100644
--- a/pkg/dev_compiler/tool/sdk_expected_errors.txt
+++ b/pkg/dev_compiler/tool/sdk_expected_errors.txt
@@ -3,35 +3,35 @@
 [warning] The final variable 'origin' must be initialized. (dart:html, line 863, col 3)
 [warning] The final variables 'form', 'labels' and '3' more must be initialized. (dart:html, line 1679, col 3)
 [warning] The final variable 'options' must be initialized. (dart:html, line 8979, col 3)
-[warning] The final variables '_attributes', '_childElementCount' and '19' more must be initialized. (dart:html, line 13239, col 3)
-[warning] The final variables 'elements', 'form' and '4' more must be initialized. (dart:html, line 17115, col 3)
-[warning] The final variable 'length' must be initialized. (dart:html, line 18065, col 3)
-[warning] The final variables '_get_contentWindow' and 'sandbox' must be initialized. (dart:html, line 20777, col 3)
-[warning] The final variables 'complete', 'currentSrc' and '2' more must be initialized. (dart:html, line 20984, col 3)
-[warning] The final variables '_get_valueAsDate', 'entries' and '6' more must be initialized. (dart:html, line 21149, col 3)
-[warning] The final variables 'form', 'labels' and '4' more must be initialized. (dart:html, line 22359, col 3)
-[warning] The final variables 'control' and 'form' must be initialized. (dart:html, line 22506, col 3)
-[warning] The final variable 'form' must be initialized. (dart:html, line 22545, col 3)
-[warning] The final variables 'import', 'relList' and '2' more must be initialized. (dart:html, line 22634, col 3)
-[warning] The final variable 'areas' must be initialized. (dart:html, line 22797, col 3)
-[warning] The final variables 'audioDecodedByteCount', 'audioTracks' and '16' more must be initialized. (dart:html, line 23098, col 3)
-[warning] The final variable 'labels' must be initialized. (dart:html, line 24692, col 3)
-[warning] The final variables 'baseUri', 'childNodes' and '11' more must be initialized. (dart:html, line 26236, col 3)
-[warning] The final variables 'form', 'validationMessage' and '2' more must be initialized. (dart:html, line 27188, col 3)
-[warning] The final variables 'form' and 'index' must be initialized. (dart:html, line 27370, col 3)
-[warning] The final variables 'form', 'htmlFor' and '5' more must be initialized. (dart:html, line 27424, col 3)
-[warning] The final variables 'labels' and 'position' must be initialized. (dart:html, line 28986, col 3)
-[warning] The final variables 'form', 'labels' and '4' more must be initialized. (dart:html, line 30915, col 3)
-[warning] The final variable 'sheet' must be initialized. (dart:html, line 33390, col 3)
-[warning] The final variable 'cellIndex' must be initialized. (dart:html, line 33655, col 3)
-[warning] The final variables '_rows' and '_tBodies' must be initialized. (dart:html, line 33774, col 3)
-[warning] The final variables '_cells', 'rowIndex' and '1' more must be initialized. (dart:html, line 33891, col 3)
-[warning] The final variable '_rows' must be initialized. (dart:html, line 33960, col 3)
-[warning] The final variable 'content' must be initialized. (dart:html, line 34004, col 3)
-[warning] The final variables 'form', 'labels' and '5' more must be initialized. (dart:html, line 34093, col 3)
-[warning] The final variables 'readyState' and 'track' must be initialized. (dart:html, line 35153, col 3)
-[warning] The final variables 'decodedFrameCount', 'droppedFrameCount' and '2' more must be initialized. (dart:html, line 36060, col 3)
-[warning] The final variable 'sourceCapabilities' must be initialized. (dart:html, line 46038, col 3)
+[warning] The final variables '_attributes', '_childElementCount' and '19' more must be initialized. (dart:html, line 13235, col 3)
+[warning] The final variables 'elements', 'form' and '4' more must be initialized. (dart:html, line 17108, col 3)
+[warning] The final variable 'length' must be initialized. (dart:html, line 18058, col 3)
+[warning] The final variables '_get_contentWindow' and 'sandbox' must be initialized. (dart:html, line 20770, col 3)
+[warning] The final variables 'complete', 'currentSrc' and '2' more must be initialized. (dart:html, line 20977, col 3)
+[warning] The final variables '_get_valueAsDate', 'entries' and '6' more must be initialized. (dart:html, line 21142, col 3)
+[warning] The final variables 'form', 'labels' and '4' more must be initialized. (dart:html, line 22352, col 3)
+[warning] The final variables 'control' and 'form' must be initialized. (dart:html, line 22499, col 3)
+[warning] The final variable 'form' must be initialized. (dart:html, line 22538, col 3)
+[warning] The final variables 'import', 'relList' and '2' more must be initialized. (dart:html, line 22627, col 3)
+[warning] The final variable 'areas' must be initialized. (dart:html, line 22790, col 3)
+[warning] The final variables 'audioDecodedByteCount', 'audioTracks' and '16' more must be initialized. (dart:html, line 23091, col 3)
+[warning] The final variable 'labels' must be initialized. (dart:html, line 24685, col 3)
+[warning] The final variables 'baseUri', 'childNodes' and '11' more must be initialized. (dart:html, line 26229, col 3)
+[warning] The final variables 'form', 'validationMessage' and '2' more must be initialized. (dart:html, line 27181, col 3)
+[warning] The final variables 'form' and 'index' must be initialized. (dart:html, line 27363, col 3)
+[warning] The final variables 'form', 'htmlFor' and '5' more must be initialized. (dart:html, line 27417, col 3)
+[warning] The final variables 'labels' and 'position' must be initialized. (dart:html, line 28979, col 3)
+[warning] The final variables 'form', 'labels' and '4' more must be initialized. (dart:html, line 30908, col 3)
+[warning] The final variable 'sheet' must be initialized. (dart:html, line 33383, col 3)
+[warning] The final variable 'cellIndex' must be initialized. (dart:html, line 33648, col 3)
+[warning] The final variables '_rows' and '_tBodies' must be initialized. (dart:html, line 33767, col 3)
+[warning] The final variables '_cells', 'rowIndex' and '1' more must be initialized. (dart:html, line 33884, col 3)
+[warning] The final variable '_rows' must be initialized. (dart:html, line 33953, col 3)
+[warning] The final variable 'content' must be initialized. (dart:html, line 33997, col 3)
+[warning] The final variables 'form', 'labels' and '5' more must be initialized. (dart:html, line 34086, col 3)
+[warning] The final variables 'readyState' and 'track' must be initialized. (dart:html, line 35146, col 3)
+[warning] The final variables 'decodedFrameCount', 'droppedFrameCount' and '2' more must be initialized. (dart:html, line 36053, col 3)
+[warning] The final variable 'sourceCapabilities' must be initialized. (dart:html, line 46029, col 3)
 [warning] The final variables 'href' and 'target' must be initialized. (dart:svg, line 56, col 3)
 [warning] The final variables 'requiredExtensions', 'requiredFeatures' and '2' more must be initialized. (dart:svg, line 512, col 3)
 [warning] The final variables 'cx', 'cy' and '1' more must be initialized. (dart:svg, line 583, col 3)
diff --git a/pkg/front_end/lib/src/api_prototype/incremental_kernel_generator.dart b/pkg/front_end/lib/src/api_prototype/incremental_kernel_generator.dart
index 1f5afbf..c08284c 100644
--- a/pkg/front_end/lib/src/api_prototype/incremental_kernel_generator.dart
+++ b/pkg/front_end/lib/src/api_prototype/incremental_kernel_generator.dart
@@ -138,10 +138,8 @@
   /// representation of the program, call [computeDelta].
   static Future<IncrementalKernelGenerator> newInstance(
       CompilerOptions options, Uri entryPoint,
-      {ProcessedOptions processedOptions,
-      WatchUsedFilesFn watch,
-      bool useMinimalGenerator: false}) async {
-    processedOptions ??= new ProcessedOptions(options, false, [entryPoint]);
+      {WatchUsedFilesFn watch, bool useMinimalGenerator: false}) async {
+    var processedOptions = new ProcessedOptions(options, false, [entryPoint]);
     return await CompilerContext.runWithOptions(processedOptions, (_) async {
       var uriTranslator = await processedOptions.getUriTranslator();
       var sdkOutlineBytes = await processedOptions.loadSdkSummaryBytes();
diff --git a/pkg/front_end/lib/src/api_unstable/dart2js.dart b/pkg/front_end/lib/src/api_unstable/dart2js.dart
index b7915a8..3276f89 100644
--- a/pkg/front_end/lib/src/api_unstable/dart2js.dart
+++ b/pkg/front_end/lib/src/api_unstable/dart2js.dart
@@ -31,6 +31,7 @@
 
   CompilerOptions options = new CompilerOptions()
     ..target = target
+    ..strongMode = false
     ..linkedDependencies = [sdkUri]
     ..packagesFileUri = packagesFileUri;
 
diff --git a/pkg/front_end/lib/src/fasta/dill/dill_loader.dart b/pkg/front_end/lib/src/fasta/dill/dill_loader.dart
index 3e122a4..713a5e6 100644
--- a/pkg/front_end/lib/src/fasta/dill/dill_loader.dart
+++ b/pkg/front_end/lib/src/fasta/dill/dill_loader.dart
@@ -8,6 +8,9 @@
 
 import 'package:kernel/ast.dart' show Library, Program, Source;
 
+import '../fasta_codes.dart'
+    show SummaryTemplate, Template, templateDillOutlineSummary;
+
 import '../kernel/kernel_builder.dart' show LibraryBuilder;
 
 import '../loader.dart' show Loader;
@@ -27,10 +30,13 @@
 
   DillLoader(TargetImplementation target) : super(target);
 
+  Template<SummaryTemplate> get outlineSummaryTemplate =>
+      templateDillOutlineSummary;
+
   /// Append compiled libraries from the given [program]. If the [filter] is
   /// provided, append only libraries whose [Uri] is accepted by the [filter].
   List<DillLibraryBuilder> appendLibraries(Program program,
-      [bool filter(Uri uri)]) {
+      {bool filter(Uri uri), int byteCount: 0}) {
     var builders = <DillLibraryBuilder>[];
     for (Library library in program.libraries) {
       if (filter == null || filter(library.importUri)) {
@@ -41,6 +47,7 @@
       }
     }
     uriToSource.addAll(program.uriToSource);
+    this.byteCount += byteCount;
     return builders;
   }
 
diff --git a/pkg/front_end/lib/src/fasta/fasta_codes.dart b/pkg/front_end/lib/src/fasta/fasta_codes.dart
index d596666..ee786717 100644
--- a/pkg/front_end/lib/src/fasta/fasta_codes.dart
+++ b/pkg/front_end/lib/src/fasta/fasta_codes.dart
@@ -99,3 +99,6 @@
   // 2. We can change `base` argument here if needed.
   return util.relativizeUri(uri, base: Uri.base);
 }
+
+typedef Message SummaryTemplate(
+    int count, int count2, String string, String string2, String string3);
diff --git a/pkg/front_end/lib/src/fasta/fasta_codes_generated.dart b/pkg/front_end/lib/src/fasta/fasta_codes_generated.dart
index d78c011..a2ca05a 100644
--- a/pkg/front_end/lib/src/fasta/fasta_codes_generated.dart
+++ b/pkg/front_end/lib/src/fasta/fasta_codes_generated.dart
@@ -782,6 +782,45 @@
 }
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Template<
+        Message Function(int count, int count2, String string, String string2,
+            String string3)> templateDillOutlineSummary =
+    const Template<
+            Message Function(int count, int count2, String string,
+                String string2, String string3)>(
+        messageTemplate:
+            r"""Indexed #count libraries (#count2 bytes) in #string, that is,
+#string2 bytes/ms, and
+#string3 ms/libraries.""",
+        withArguments: _withArgumentsDillOutlineSummary);
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Code<
+    Message Function(int count, int count2, String string, String string2,
+        String string3)> codeDillOutlineSummary = const Code<
+    Message Function(
+        int count, int count2, String string, String string2, String string3)>(
+  "DillOutlineSummary",
+  templateDillOutlineSummary,
+);
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+Message _withArgumentsDillOutlineSummary(
+    int count, int count2, String string, String string2, String string3) {
+  return new Message(codeDillOutlineSummary,
+      message: """Indexed $count libraries ($count2 bytes) in $string, that is,
+$string2 bytes/ms, and
+$string3 ms/libraries.""",
+      arguments: {
+        'count': count,
+        'count2': count2,
+        'string': string,
+        'string2': string2,
+        'string3': string3
+      });
+}
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
 const Code<Null> codeDirectiveAfterDeclaration =
     messageDirectiveAfterDeclaration;
 
@@ -2367,6 +2406,276 @@
     tip: r"""Try removing the keyword, or use a for-each statement.""");
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Template<
+    Message Function(
+        DartType _type,
+        DartType
+            _type2)> templateInvalidCastFunctionExpr = const Template<
+        Message Function(DartType _type, DartType _type2)>(
+    messageTemplate:
+        r"""The function expression type '#type' isn't of expected type '#type2'.""",
+    tipTemplate:
+        r"""Change the type of the function expression or the context in which it is used.""",
+    withArguments: _withArgumentsInvalidCastFunctionExpr);
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Code<Message Function(DartType _type, DartType _type2)>
+    codeInvalidCastFunctionExpr =
+    const Code<Message Function(DartType _type, DartType _type2)>(
+        "InvalidCastFunctionExpr", templateInvalidCastFunctionExpr,
+        analyzerCode: "INVALID_CAST_FUNCTION_EXPR", dart2jsCode: "*ignored*");
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+Message _withArgumentsInvalidCastFunctionExpr(DartType _type, DartType _type2) {
+  NameSystem nameSystem = new NameSystem();
+  StringBuffer buffer = new StringBuffer();
+  new Printer(buffer, syntheticNames: nameSystem).writeNode(_type);
+  String type = '$buffer';
+
+  buffer = new StringBuffer();
+  new Printer(buffer, syntheticNames: nameSystem).writeNode(_type2);
+  String type2 = '$buffer';
+
+  return new Message(codeInvalidCastFunctionExpr,
+      message:
+          """The function expression type '$type' isn't of expected type '$type2'.""",
+      tip: """Change the type of the function expression or the context in which it is used.""",
+      arguments: {'type': _type, 'type2': _type2});
+}
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Template<
+    Message Function(
+        DartType _type,
+        DartType
+            _type2)> templateInvalidCastLiteralList = const Template<
+        Message Function(DartType _type, DartType _type2)>(
+    messageTemplate:
+        r"""The list literal type '#type' isn't of expected type '#type2'.""",
+    tipTemplate:
+        r"""Change the type of the list literal or the context in which it is used.""",
+    withArguments: _withArgumentsInvalidCastLiteralList);
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Code<Message Function(DartType _type, DartType _type2)>
+    codeInvalidCastLiteralList =
+    const Code<Message Function(DartType _type, DartType _type2)>(
+        "InvalidCastLiteralList", templateInvalidCastLiteralList,
+        analyzerCode: "INVALID_CAST_LITERAL_LIST", dart2jsCode: "*ignored*");
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+Message _withArgumentsInvalidCastLiteralList(DartType _type, DartType _type2) {
+  NameSystem nameSystem = new NameSystem();
+  StringBuffer buffer = new StringBuffer();
+  new Printer(buffer, syntheticNames: nameSystem).writeNode(_type);
+  String type = '$buffer';
+
+  buffer = new StringBuffer();
+  new Printer(buffer, syntheticNames: nameSystem).writeNode(_type2);
+  String type2 = '$buffer';
+
+  return new Message(codeInvalidCastLiteralList,
+      message:
+          """The list literal type '$type' isn't of expected type '$type2'.""",
+      tip:
+          """Change the type of the list literal or the context in which it is used.""",
+      arguments: {'type': _type, 'type2': _type2});
+}
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Template<
+    Message Function(
+        DartType _type,
+        DartType
+            _type2)> templateInvalidCastLiteralMap = const Template<
+        Message Function(DartType _type, DartType _type2)>(
+    messageTemplate:
+        r"""The map literal type '#type' isn't of expected type '#type2'.""",
+    tipTemplate:
+        r"""Change the type of the map literal or the context in which it is used.""",
+    withArguments: _withArgumentsInvalidCastLiteralMap);
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Code<Message Function(DartType _type, DartType _type2)>
+    codeInvalidCastLiteralMap =
+    const Code<Message Function(DartType _type, DartType _type2)>(
+        "InvalidCastLiteralMap", templateInvalidCastLiteralMap,
+        analyzerCode: "INVALID_CAST_LITERAL_MAP", dart2jsCode: "*ignored*");
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+Message _withArgumentsInvalidCastLiteralMap(DartType _type, DartType _type2) {
+  NameSystem nameSystem = new NameSystem();
+  StringBuffer buffer = new StringBuffer();
+  new Printer(buffer, syntheticNames: nameSystem).writeNode(_type);
+  String type = '$buffer';
+
+  buffer = new StringBuffer();
+  new Printer(buffer, syntheticNames: nameSystem).writeNode(_type2);
+  String type2 = '$buffer';
+
+  return new Message(codeInvalidCastLiteralMap,
+      message:
+          """The map literal type '$type' isn't of expected type '$type2'.""",
+      tip:
+          """Change the type of the map literal or the context in which it is used.""",
+      arguments: {'type': _type, 'type2': _type2});
+}
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Template<
+    Message Function(
+        DartType _type,
+        DartType
+            _type2)> templateInvalidCastLocalFunction = const Template<
+        Message Function(DartType _type, DartType _type2)>(
+    messageTemplate:
+        r"""The local function has type '#type' that isn't of expected type '#type2'.""",
+    tipTemplate:
+        r"""Change the type of the function or the context in which it is used.""",
+    withArguments: _withArgumentsInvalidCastLocalFunction);
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Code<Message Function(DartType _type, DartType _type2)>
+    codeInvalidCastLocalFunction =
+    const Code<Message Function(DartType _type, DartType _type2)>(
+        "InvalidCastLocalFunction", templateInvalidCastLocalFunction,
+        analyzerCode: "INVALID_CAST_FUNCTION", dart2jsCode: "*ignored*");
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+Message _withArgumentsInvalidCastLocalFunction(
+    DartType _type, DartType _type2) {
+  NameSystem nameSystem = new NameSystem();
+  StringBuffer buffer = new StringBuffer();
+  new Printer(buffer, syntheticNames: nameSystem).writeNode(_type);
+  String type = '$buffer';
+
+  buffer = new StringBuffer();
+  new Printer(buffer, syntheticNames: nameSystem).writeNode(_type2);
+  String type2 = '$buffer';
+
+  return new Message(codeInvalidCastLocalFunction,
+      message:
+          """The local function has type '$type' that isn't of expected type '$type2'.""",
+      tip: """Change the type of the function or the context in which it is used.""",
+      arguments: {'type': _type, 'type2': _type2});
+}
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Template<
+    Message Function(
+        DartType _type,
+        DartType
+            _type2)> templateInvalidCastNewExpr = const Template<
+        Message Function(DartType _type, DartType _type2)>(
+    messageTemplate:
+        r"""The constructor returns type '#type' that isn't of expected type '#type2'.""",
+    tipTemplate:
+        r"""Change the type of the object being constructed or the context in which it is used.""",
+    withArguments: _withArgumentsInvalidCastNewExpr);
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Code<Message Function(DartType _type, DartType _type2)>
+    codeInvalidCastNewExpr =
+    const Code<Message Function(DartType _type, DartType _type2)>(
+        "InvalidCastNewExpr", templateInvalidCastNewExpr,
+        analyzerCode: "INVALID_CAST_NEW_EXPR", dart2jsCode: "*ignored*");
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+Message _withArgumentsInvalidCastNewExpr(DartType _type, DartType _type2) {
+  NameSystem nameSystem = new NameSystem();
+  StringBuffer buffer = new StringBuffer();
+  new Printer(buffer, syntheticNames: nameSystem).writeNode(_type);
+  String type = '$buffer';
+
+  buffer = new StringBuffer();
+  new Printer(buffer, syntheticNames: nameSystem).writeNode(_type2);
+  String type2 = '$buffer';
+
+  return new Message(codeInvalidCastNewExpr,
+      message:
+          """The constructor returns type '$type' that isn't of expected type '$type2'.""",
+      tip: """Change the type of the object being constructed or the context in which it is used.""",
+      arguments: {'type': _type, 'type2': _type2});
+}
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Template<
+    Message Function(
+        DartType _type,
+        DartType
+            _type2)> templateInvalidCastStaticMethod = const Template<
+        Message Function(DartType _type, DartType _type2)>(
+    messageTemplate:
+        r"""The static method has type '#type' that isn't of expected type '#type2'.""",
+    tipTemplate:
+        r"""Change the type of the method or the context in which it is used.""",
+    withArguments: _withArgumentsInvalidCastStaticMethod);
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Code<Message Function(DartType _type, DartType _type2)>
+    codeInvalidCastStaticMethod =
+    const Code<Message Function(DartType _type, DartType _type2)>(
+        "InvalidCastStaticMethod", templateInvalidCastStaticMethod,
+        analyzerCode: "INVALID_CAST_METHOD", dart2jsCode: "*ignored*");
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+Message _withArgumentsInvalidCastStaticMethod(DartType _type, DartType _type2) {
+  NameSystem nameSystem = new NameSystem();
+  StringBuffer buffer = new StringBuffer();
+  new Printer(buffer, syntheticNames: nameSystem).writeNode(_type);
+  String type = '$buffer';
+
+  buffer = new StringBuffer();
+  new Printer(buffer, syntheticNames: nameSystem).writeNode(_type2);
+  String type2 = '$buffer';
+
+  return new Message(codeInvalidCastStaticMethod,
+      message:
+          """The static method has type '$type' that isn't of expected type '$type2'.""",
+      tip: """Change the type of the method or the context in which it is used.""",
+      arguments: {'type': _type, 'type2': _type2});
+}
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Template<
+    Message Function(
+        DartType _type,
+        DartType
+            _type2)> templateInvalidCastTopLevelFunction = const Template<
+        Message Function(DartType _type, DartType _type2)>(
+    messageTemplate:
+        r"""The top level function has type '#type' that isn't of expected type '#type2'.""",
+    tipTemplate:
+        r"""Change the type of the function or the context in which it is used.""",
+    withArguments: _withArgumentsInvalidCastTopLevelFunction);
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Code<Message Function(DartType _type, DartType _type2)>
+    codeInvalidCastTopLevelFunction =
+    const Code<Message Function(DartType _type, DartType _type2)>(
+        "InvalidCastTopLevelFunction", templateInvalidCastTopLevelFunction,
+        analyzerCode: "INVALID_CAST_FUNCTION", dart2jsCode: "*ignored*");
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+Message _withArgumentsInvalidCastTopLevelFunction(
+    DartType _type, DartType _type2) {
+  NameSystem nameSystem = new NameSystem();
+  StringBuffer buffer = new StringBuffer();
+  new Printer(buffer, syntheticNames: nameSystem).writeNode(_type);
+  String type = '$buffer';
+
+  buffer = new StringBuffer();
+  new Printer(buffer, syntheticNames: nameSystem).writeNode(_type2);
+  String type2 = '$buffer';
+
+  return new Message(codeInvalidCastTopLevelFunction,
+      message:
+          """The top level function has type '$type' that isn't of expected type '$type2'.""",
+      tip: """Change the type of the function or the context in which it is used.""",
+      arguments: {'type': _type, 'type2': _type2});
+}
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
 const Code<Null> codeInvalidInitializer = messageInvalidInitializer;
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -3636,6 +3945,94 @@
     message: r"""A setter should have exactly one formal parameter.""");
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Template<
+    Message Function(
+        int count,
+        int count2,
+        String string,
+        String string2,
+        String
+            string3)> templateSourceBodySummary = const Template<
+        Message Function(int count, int count2, String string, String string2,
+            String string3)>(
+    messageTemplate:
+        r"""Built bodies for #count compilation units (#count2 bytes) in #string, that is,
+#string2 bytes/ms, and
+#string3 ms/compilation unit.""",
+    withArguments: _withArgumentsSourceBodySummary);
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Code<
+    Message Function(int count, int count2, String string, String string2,
+        String string3)> codeSourceBodySummary = const Code<
+    Message Function(
+        int count, int count2, String string, String string2, String string3)>(
+  "SourceBodySummary",
+  templateSourceBodySummary,
+);
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+Message _withArgumentsSourceBodySummary(
+    int count, int count2, String string, String string2, String string3) {
+  return new Message(codeSourceBodySummary,
+      message:
+          """Built bodies for $count compilation units ($count2 bytes) in $string, that is,
+$string2 bytes/ms, and
+$string3 ms/compilation unit.""",
+      arguments: {
+        'count': count,
+        'count2': count2,
+        'string': string,
+        'string2': string2,
+        'string3': string3
+      });
+}
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Template<
+    Message Function(
+        int count,
+        int count2,
+        String string,
+        String string2,
+        String
+            string3)> templateSourceOutlineSummary = const Template<
+        Message Function(int count, int count2, String string, String string2,
+            String string3)>(
+    messageTemplate:
+        r"""Built outlines for #count compilation units (#count2 bytes) in #string, that is,
+#string2 bytes/ms, and
+#string3 ms/compilation unit.""",
+    withArguments: _withArgumentsSourceOutlineSummary);
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Code<
+    Message Function(int count, int count2, String string, String string2,
+        String string3)> codeSourceOutlineSummary = const Code<
+    Message Function(
+        int count, int count2, String string, String string2, String string3)>(
+  "SourceOutlineSummary",
+  templateSourceOutlineSummary,
+);
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+Message _withArgumentsSourceOutlineSummary(
+    int count, int count2, String string, String string2, String string3) {
+  return new Message(codeSourceOutlineSummary,
+      message:
+          """Built outlines for $count compilation units ($count2 bytes) in $string, that is,
+$string2 bytes/ms, and
+$string3 ms/compilation unit.""",
+      arguments: {
+        'count': count,
+        'count2': count2,
+        'string': string,
+        'string2': string2,
+        'string3': string3
+      });
+}
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
 const Code<Null> codeStackOverflow = messageStackOverflow;
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
diff --git a/pkg/front_end/lib/src/fasta/graph/graph.dart b/pkg/front_end/lib/src/fasta/graph/graph.dart
new file mode 100644
index 0000000..f54f8a4
--- /dev/null
+++ b/pkg/front_end/lib/src/fasta/graph/graph.dart
@@ -0,0 +1,79 @@
+// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE.md file.
+
+library fasta.graph;
+
+abstract class Graph<T> {
+  Iterable<T> get vertices;
+
+  Iterable<T> neighborsOf(T vertex);
+}
+
+/// Computes the strongly connected components of [graph].
+///
+/// This implementation is based on [Dijkstra's path-based strong component
+/// algorithm]
+/// (https://en.wikipedia.org/wiki/Path-based_strong_component_algorithm#Description).
+List<List<T>> computeStrongComponents<T>(Graph<T> graph) {
+  List<List<T>> result = <List<T>>[];
+  int count = 0;
+  Map<T, int> preorderNumbers = <T, int>{};
+  List<T> unassigned = <T>[];
+  List<T> candidates = <T>[];
+  Set<T> assigned = new Set<T>();
+
+  void recursivelySearch(T vertex) {
+    // Step 1: Set the preorder number of [vertex] to [count], and increment
+    // [count].
+    preorderNumbers[vertex] = count++;
+
+    // Step 2: Push [vertex] onto [unassigned] and also onto [candidates].
+    unassigned.add(vertex);
+    candidates.add(vertex);
+
+    // Step 3: For each edge from [vertex] to a neighboring vertex [neighbor]:
+    for (T neighbor in graph.neighborsOf(vertex)) {
+      int neighborPreorderNumber = preorderNumbers[neighbor];
+      if (neighborPreorderNumber == null) {
+        // If the preorder number of [neighbor] has not yet been assigned,
+        // recursively search [neighbor];
+        recursivelySearch(neighbor);
+      } else if (!assigned.contains(neighbor)) {
+        // Otherwise, if [neighbor] has not yet been assigned to a strongly
+        // connected component:
+        //
+        // * Repeatedly pop vertices from [candidates] until the top element of
+        //   [candidates] has a preorder number less than or equal to the
+        //   preorder number of [neighbor].
+        while (preorderNumbers[candidates.last] > neighborPreorderNumber) {
+          candidates.removeLast();
+        }
+      }
+    }
+    // Step 4: If [vertex] is the top element of [candidates]:
+    if (candidates.last == vertex) {
+      // Pop vertices from [unassigned] until [vertex] has been popped, and
+      // assign the popped vertices to a new component.
+      List<T> component = <T>[];
+      while (true) {
+        T top = unassigned.removeLast();
+        component.add(top);
+        assigned.add(top);
+        if (top == vertex) break;
+      }
+      result.add(component);
+
+      // Pop [vertex] from [candidates].
+      candidates.removeLast();
+    }
+  }
+
+  for (T vertex in graph.vertices) {
+    if (preorderNumbers[vertex] == null) {
+      recursivelySearch(vertex);
+    }
+  }
+
+  return result;
+}
diff --git a/pkg/front_end/lib/src/fasta/incremental_compiler.dart b/pkg/front_end/lib/src/fasta/incremental_compiler.dart
new file mode 100644
index 0000000..15f806a
--- /dev/null
+++ b/pkg/front_end/lib/src/fasta/incremental_compiler.dart
@@ -0,0 +1,107 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library fasta.incremental_compiler;
+
+import 'dart:async' show Future;
+
+import 'package:kernel/kernel.dart' show Program, loadProgramFromBytes;
+
+import '../api_prototype/incremental_kernel_generator.dart'
+    show DeltaProgram, IncrementalKernelGenerator;
+
+import 'dill/dill_target.dart' show DillTarget;
+
+import 'kernel/kernel_target.dart' show KernelTarget;
+
+import 'compiler_context.dart' show CompilerContext;
+
+import 'problems.dart' show unsupported;
+
+import 'ticker.dart' show Ticker;
+
+import 'uri_translator.dart' show UriTranslator;
+
+abstract class DeprecatedIncrementalKernelGenerator
+    implements IncrementalKernelGenerator {
+  /// This does nothing. It will be deprecated.
+  @override
+  void acceptLastDelta() {}
+
+  /// Always throws an error. Will be deprecated.
+  @override
+  void rejectLastDelta() => unsupported("rejectLastDelta", -1, null);
+
+  /// Always throws an error. Will be deprecated.
+  @override
+  void reset() => unsupported("rejectLastDelta", -1, null);
+
+  /// Always throws an error. Will be deprecated.
+  @override
+  void setState(String state) => unsupported("setState", -1, null);
+}
+
+abstract class DeprecatedDeltaProgram implements DeltaProgram {
+  @override
+  String get state => unsupported("state", -1, null);
+}
+
+class FastaDelta extends DeprecatedDeltaProgram {
+  @override
+  final Program newProgram;
+
+  FastaDelta(this.newProgram);
+}
+
+class IncrementalCompiler extends DeprecatedIncrementalKernelGenerator {
+  final CompilerContext context;
+
+  final Ticker ticker;
+
+  List<Uri> invalidatedUris = <Uri>[];
+
+  DillTarget platform;
+
+  IncrementalCompiler(this.context)
+      : ticker = new Ticker(isVerbose: context.options.verbose);
+
+  @override
+  Future<FastaDelta> computeDelta({Uri entryPoint}) async {
+    return context.runInContext<Future<FastaDelta>>((CompilerContext c) async {
+      if (platform == null) {
+        UriTranslator uriTranslator = await c.options.getUriTranslator();
+        ticker.logMs("Read packages file");
+
+        platform = new DillTarget(ticker, uriTranslator, c.options.target);
+        List<int> bytes = await c.options.loadSdkSummaryBytes();
+        if (bytes != null) {
+          ticker.logMs("Read ${c.options.sdkSummary}");
+          platform.loader.appendLibraries(loadProgramFromBytes(bytes),
+              byteCount: bytes.length);
+        }
+        await platform.buildOutlines();
+      }
+
+      List<Uri> invalidatedUris = this.invalidatedUris.toList();
+      this.invalidatedUris.clear();
+      print("Changed URIs: ${invalidatedUris.join('\n')}");
+
+      KernelTarget kernelTarget = new KernelTarget(
+          c.fileSystem, false, platform, platform.uriTranslator,
+          uriToSource: c.uriToSource);
+
+      kernelTarget.read(entryPoint);
+
+      await kernelTarget.buildOutlines();
+
+      return new FastaDelta(
+          await kernelTarget.buildProgram(verify: c.options.verify));
+    });
+  }
+
+  @override
+  void invalidate(Uri uri) {
+    invalidatedUris.add(uri);
+  }
+}
diff --git a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
index 7ed8dc5..af82655 100644
--- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
@@ -1235,7 +1235,8 @@
         deprecated_addCompileTimeError(
             charOffset, "Not a constant expression.");
       }
-      return new TypeDeclarationAccessor(this, builder, name, token);
+      return new TypeDeclarationAccessor(
+          this, charOffset, builder, name, token);
     } else if (builder.isLocal) {
       if (constantExpressionRequired &&
           !builder.isConst &&
@@ -2148,7 +2149,7 @@
       }
     }
     push(new Catch(exception, body, guard: type, stackTrace: stackTrace)
-      ..fileOffset = offsetForToken(onKeyword));
+      ..fileOffset = offsetForToken(onKeyword ?? catchKeyword));
   }
 
   @override
@@ -2330,7 +2331,11 @@
 
   @override
   Expression buildStaticInvocation(Member target, Arguments arguments,
-      {bool isConst: false, int charOffset: -1, Member initialTarget}) {
+      {bool isConst: false,
+      int charOffset: -1,
+      Member initialTarget,
+      int targetOffset: -1,
+      Class targetClass}) {
     initialTarget ??= target;
     List<TypeParameter> typeParameters = target.function.typeParameters;
     if (target is Constructor) {
@@ -2361,7 +2366,9 @@
             isConst: isConst)
           ..fileOffset = charOffset;
       } else {
-        return new ShadowStaticInvocation(target, arguments, isConst: isConst)
+        return new ShadowStaticInvocation(
+            targetOffset, targetClass, target, arguments,
+            isConst: isConst)
           ..fileOffset = charOffset;
       }
     }
diff --git a/pkg/front_end/lib/src/fasta/kernel/fasta_accessors.dart b/pkg/front_end/lib/src/fasta/kernel/fasta_accessors.dart
index 043cb46..d6091aa 100644
--- a/pkg/front_end/lib/src/fasta/kernel/fasta_accessors.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/fasta_accessors.dart
@@ -107,7 +107,11 @@
       [int charOffset = -1]);
 
   Expression buildStaticInvocation(Procedure target, Arguments arguments,
-      {bool isConst, int charOffset, Member initialTarget});
+      {bool isConst,
+      int charOffset,
+      Member initialTarget,
+      int targetOffset: -1,
+      Class targetClass});
 
   Expression buildProblemExpression(ProblemBuilder builder, int offset);
 
@@ -729,13 +733,16 @@
 
 class StaticAccessor extends kernel.StaticAccessor with FastaAccessor {
   StaticAccessor(
-      BuilderHelper helper, Token token, Member readTarget, Member writeTarget)
-      : super(helper, readTarget, writeTarget, token) {
+      BuilderHelper helper, Token token, Member readTarget, Member writeTarget,
+      {int targetOffset: -1, Class targetClass})
+      : super(
+            helper, targetOffset, targetClass, readTarget, writeTarget, token) {
     assert(readTarget != null || writeTarget != null);
   }
 
-  factory StaticAccessor.fromBuilder(BuilderHelper helper, Builder builder,
-      Token token, Builder builderSetter) {
+  factory StaticAccessor.fromBuilder(
+      BuilderHelper helper, Builder builder, Token token, Builder builderSetter,
+      {int targetOffset: -1, Class targetClass}) {
     if (builder is AccessErrorBuilder) {
       AccessErrorBuilder error = builder;
       builder = error.builder;
@@ -753,7 +760,8 @@
         setter = builderSetter.target;
       }
     }
-    return new StaticAccessor(helper, token, getter, setter);
+    return new StaticAccessor(helper, token, getter, setter,
+        targetOffset: targetOffset, targetClass: targetClass);
   }
 
   String get plainNameForRead => (readTarget ?? writeTarget).name.name;
@@ -772,7 +780,9 @@
           isImplicitCall: true);
     } else {
       return helper.buildStaticInvocation(readTarget, arguments,
-          charOffset: offset);
+          charOffset: offset,
+          targetOffset: targetOffset,
+          targetClass: targetClass);
     }
   }
 
@@ -986,10 +996,14 @@
 }
 
 class TypeDeclarationAccessor extends ReadOnlyAccessor {
+  /// The offset at which the [declaration] is referenced by this accessor,
+  /// or `-1` if the reference is implicit.
+  final int declarationReferenceOffset;
+
   final TypeDeclarationBuilder declaration;
 
-  TypeDeclarationAccessor(BuilderHelper helper, this.declaration,
-      String plainNameForRead, Token token)
+  TypeDeclarationAccessor(BuilderHelper helper, this.declarationReferenceOffset,
+      this.declaration, String plainNameForRead, Token token)
       : super(helper, null, plainNameForRead, token);
 
   Expression get expression {
@@ -1051,8 +1065,10 @@
         } else if (builder.isField && !builder.isFinal) {
           setter = builder;
         }
-        accessor =
-            new StaticAccessor.fromBuilder(helper, builder, send.token, setter);
+        accessor = new StaticAccessor.fromBuilder(
+            helper, builder, send.token, setter,
+            targetOffset: declarationReferenceOffset,
+            targetClass: declaration.target);
       }
 
       return arguments == null
diff --git a/pkg/front_end/lib/src/fasta/kernel/frontend_accessors.dart b/pkg/front_end/lib/src/fasta/kernel/frontend_accessors.dart
index 60aad04..8f7b16f 100644
--- a/pkg/front_end/lib/src/fasta/kernel/frontend_accessors.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/frontend_accessors.dart
@@ -669,11 +669,20 @@
 }
 
 class StaticAccessor extends Accessor {
+  /// If [targetClass] is not `null`, the offset at which the explicit
+  /// reference to it is; otherwise `-1`.
+  int targetOffset;
+
+  /// The [Class] that was explicitly referenced to get the [readTarget] or
+  /// the [writeTarget], or `null` if the class is implicit, and targets were
+  /// get from the scope.
+  Class targetClass;
+
   Member readTarget;
   Member writeTarget;
 
-  StaticAccessor(
-      BuilderHelper helper, this.readTarget, this.writeTarget, Token token)
+  StaticAccessor(BuilderHelper helper, this.targetOffset, this.targetClass,
+      this.readTarget, this.writeTarget, Token token)
       : super(helper, token);
 
   Expression _makeRead(ShadowComplexAssignment complexAssignment) {
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart
index de4ebb4..6e3b588 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart
@@ -595,6 +595,15 @@
     inferrer.listener.constructorInvocationExit(this, inferredType);
     return inferredType;
   }
+
+  /// Determines whether the given [ShadowConstructorInvocation] represents an
+  /// invocation of a redirected factory constructor.
+  ///
+  /// This is static to avoid introducing a method that would be visible to the
+  /// kernel.
+  static bool isRedirected(ShadowConstructorInvocation expression) {
+    return !identical(expression._initialTarget, expression.target);
+  }
 }
 
 /// Concrete shadow object representing a continue statement from a switch
@@ -758,6 +767,7 @@
     ShadowVariableDeclaration variable;
     var syntheticAssignment = _syntheticAssignment;
     Expression syntheticWrite;
+    DartType syntheticWriteType;
     if (_declaresVariable) {
       variable = this.variable;
       if (inferrer.strongMode && variable._implicitlyTyped) {
@@ -768,7 +778,8 @@
       }
     } else if (syntheticAssignment is ShadowComplexAssignment) {
       syntheticWrite = syntheticAssignment.write;
-      context = syntheticAssignment._getWriteType(inferrer);
+      syntheticWriteType =
+          context = syntheticAssignment._getWriteType(inferrer);
     } else {
       context = const UnknownType();
     }
@@ -813,6 +824,19 @@
         variable.initializer = implicitDowncast..parent = variable;
         body = combineStatements(variable, body)..parent = this;
       }
+    } else if (syntheticAssignment is ShadowSyntheticExpression) {
+      if (syntheticAssignment is ShadowComplexAssignment) {
+        inferrer.checkAssignability(
+            greatestClosure(inferrer.coreTypes, syntheticWriteType),
+            this.variable.type,
+            syntheticAssignment.rhs,
+            syntheticAssignment.rhs.fileOffset);
+        if (syntheticAssignment is ShadowPropertyAssign) {
+          syntheticAssignment._handleWriteContravariance(
+              inferrer, inferrer.thisType);
+        }
+      }
+      syntheticAssignment._replaceWithDesugared();
     }
     inferrer.listener.forInStatementExit(this, variable);
   }
@@ -1268,11 +1292,7 @@
   ShadowLoopAssignmentStatement(Expression expression) : super(expression);
 
   @override
-  void _inferStatement(ShadowTypeInferrer inferrer) {
-    inferrer.listener.loopAssignmentStatementEnter(this);
-    inferrer.inferExpression(expression, null, false);
-    inferrer.listener.loopAssignmentStatementExit(this);
-  }
+  void _inferStatement(ShadowTypeInferrer inferrer) {}
 }
 
 /// Shadow object for [MapLiteral].
@@ -1591,6 +1611,14 @@
     return inferrer.getSetterType(writeMember, receiverType);
   }
 
+  Object _handleWriteContravariance(
+      ShadowTypeInferrer inferrer, DartType receiverType) {
+    var writeMember = inferrer.findPropertySetMember(receiverType, write);
+    inferrer.handlePropertySetContravariance(
+        receiver, writeMember, write is PropertySet ? write : null, write);
+    return writeMember;
+  }
+
   @override
   DartType _inferExpression(
       ShadowTypeInferrer inferrer, DartType typeContext, bool typeNeeded) {
@@ -1609,7 +1637,7 @@
     }
     Member writeMember;
     if (write != null) {
-      writeMember = inferrer.findPropertySetMember(receiverType, write);
+      writeMember = _handleWriteContravariance(inferrer, receiverType);
     }
     // To replicate analyzer behavior, we base type inference on the write
     // member.  TODO(paulberry): would it be better to use the read member when
@@ -1769,18 +1797,24 @@
 /// Shadow object for [StaticInvocation].
 class ShadowStaticInvocation extends StaticInvocation
     implements ShadowExpression {
-  ShadowStaticInvocation(Procedure target, Arguments arguments,
+  /// If [_targetClass] is not `null`, the offset at which the explicit
+  /// reference to it is; otherwise `-1`.
+  int _targetOffset;
+
+  /// The [Class] that was explicitly referenced to get the target [Procedure],
+  /// or `null` if the class is implicit.
+  Class _targetClass;
+
+  ShadowStaticInvocation(this._targetOffset, this._targetClass,
+      Procedure target, Arguments arguments,
       {bool isConst: false})
       : super(target, arguments, isConst: isConst);
 
-  ShadowStaticInvocation.byReference(
-      Reference targetReference, Arguments arguments)
-      : super.byReference(targetReference, arguments);
-
   @override
   DartType _inferExpression(
       ShadowTypeInferrer inferrer, DartType typeContext, bool typeNeeded) {
-    typeNeeded = inferrer.listener.staticInvocationEnter(this, typeContext) ||
+    typeNeeded = inferrer.listener.staticInvocationEnter(
+            this, _targetOffset, _targetClass, typeContext) ||
         typeNeeded;
     var calleeType = target.function.functionType;
     var inferredType = inferrer.inferInvocation(typeContext, typeNeeded,
@@ -1994,42 +2028,6 @@
   }
 }
 
-/// Shadow object for statements that are introduced by the front end as part
-/// of desugaring or the handling of error conditions.
-///
-/// By default, type inference skips these statements entirely.  Some derived
-/// classes may have type inference behaviors.
-///
-/// Visitors skip over objects of this type, so it is not included in serialized
-/// output.
-class ShadowSyntheticStatement extends Statement implements ShadowStatement {
-  /// The desugared kernel representation of this synthetic statement.
-  Statement desugared;
-
-  ShadowSyntheticStatement(this.desugared);
-
-  @override
-  void set parent(TreeNode node) {
-    super.parent = node;
-    desugared?.parent = node;
-  }
-
-  @override
-  accept(StatementVisitor v) => desugared.accept(v);
-
-  @override
-  accept1(StatementVisitor1 v, arg) => desugared.accept1(v, arg);
-
-  @override
-  transformChildren(Transformer v) => desugared.transformChildren(v);
-
-  @override
-  visitChildren(Visitor v) => desugared.visitChildren(v);
-
-  @override
-  void _inferStatement(ShadowTypeInferrer inferrer) {}
-}
-
 /// Shadow object for [ThisExpression].
 class ShadowThisExpression extends ThisExpression implements ShadowExpression {
   @override
@@ -2068,7 +2066,9 @@
     inferrer.listener.tryCatchEnter(this);
     inferrer.inferStatement(body);
     for (var catch_ in catches) {
+      inferrer.listener.catchStatementEnter(catch_);
       inferrer.inferStatement(catch_.body);
+      inferrer.listener.catchStatementExit(catch_);
     }
     inferrer.listener.tryCatchExit(this);
   }
@@ -2417,6 +2417,14 @@
   /// the kernel.
   static bool isImplicitlyTyped(ShadowVariableDeclaration variable) =>
       variable._implicitlyTyped;
+
+  /// Determines whether the given [ShadowVariableDeclaration] represents a
+  /// local function.
+  ///
+  /// This is static to avoid introducing a method that would be visible to the
+  /// kernel.
+  static bool isLocalFunction(ShadowVariableDeclaration variable) =>
+      variable._isLocalFunction;
 }
 
 /// Concrete shadow object representing a read from a variable in kernel form.
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
index 4c853da..b572b7d 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
@@ -261,6 +261,7 @@
         loader.performTopLevelInference(sourceClasses);
       }
     } on deprecated_InputError catch (e) {
+      ticker.logMs("Got deprecated_InputError");
       handleInputError(e, isFullProgram: false);
     } catch (e, s) {
       return reportCrash(e, s, loader?.currentUriForCrashReporting);
@@ -284,6 +285,7 @@
     }
 
     try {
+      ticker.logMs("Building program");
       await loader.buildBodies();
       loader.finishStaticInvocations();
       loader.finishDeferredLoadTearoffs();
@@ -298,6 +300,7 @@
       }
       handleRecoverableErrors(loader.unhandledErrors);
     } on deprecated_InputError catch (e) {
+      ticker.logMs("Got deprecated_InputError");
       handleInputError(e, isFullProgram: true);
     } catch (e, s) {
       return reportCrash(e, s, loader?.currentUriForCrashReporting);
diff --git a/pkg/front_end/lib/src/fasta/loader.dart b/pkg/front_end/lib/src/fasta/loader.dart
index 3ff76ab..dd8a8e7 100644
--- a/pkg/front_end/lib/src/fasta/loader.dart
+++ b/pkg/front_end/lib/src/fasta/loader.dart
@@ -13,7 +13,13 @@
 import 'deprecated_problems.dart' show firstSourceUri;
 
 import 'messages.dart'
-    show LocatedMessage, Message, messagePlatformPrivateLibraryAccess;
+    show
+        LocatedMessage,
+        Message,
+        SummaryTemplate,
+        Template,
+        messagePlatformPrivateLibraryAccess,
+        templateSourceBodySummary;
 
 import 'severity.dart' show Severity;
 
@@ -60,6 +66,8 @@
 
   Ticker get ticker => target.ticker;
 
+  Template<SummaryTemplate> get outlineSummaryTemplate;
+
   /// Look up a library builder by the name [uri], or if such doesn't
   /// exist, create one. The canonical URI of the library is [uri], and its
   /// actual location is [fileUri].
@@ -138,16 +146,7 @@
       await buildBody(library);
     }
     currentUriForCrashReporting = null;
-    ticker.log((Duration elapsed, Duration sinceStart) {
-      int libraryCount = builders.length;
-      double ms =
-          elapsed.inMicroseconds / Duration.MICROSECONDS_PER_MILLISECOND;
-      String message = "Built $libraryCount compilation units";
-      print("""
-$sinceStart: $message ($byteCount bytes) in ${format(ms, 3, 0)}ms, that is,
-${format(byteCount / ms, 3, 12)} bytes/ms, and
-${format(ms / libraryCount, 3, 12)} ms/compilation unit.""");
-    });
+    logSummary(templateSourceBodySummary);
   }
 
   Future<Null> buildOutlines() async {
@@ -158,18 +157,24 @@
       await buildOutline(library);
     }
     currentUriForCrashReporting = null;
+    logSummary(outlineSummaryTemplate);
+  }
+
+  void logSummary(Template<SummaryTemplate> template) {
     ticker.log((Duration elapsed, Duration sinceStart) {
-      int libraryCount = builders.length;
+      int libraryCount = 0;
+      builders.forEach((Uri uri, LibraryBuilder library) {
+        if (library.loader == this) libraryCount++;
+      });
       double ms =
           elapsed.inMicroseconds / Duration.MICROSECONDS_PER_MILLISECOND;
-      String message = "Built outlines for $libraryCount compilation units";
-      // TODO(ahe): Share this message with [buildBodies]. Also make it easy to
-      // tell the difference between outlines read from a dill file or source
-      // files. Currently, [libraryCount] is wrong for dill files.
-      print("""
-$sinceStart: $message ($byteCount bytes) in ${format(ms, 3, 0)}ms, that is,
-${format(byteCount / ms, 3, 12)} bytes/ms, and
-${format(ms / libraryCount, 3, 12)} ms/compilation unit.""");
+      Message message = template.withArguments(
+          libraryCount,
+          byteCount,
+          "${format(ms, 3, 0)}ms",
+          format(byteCount / ms, 3, 12),
+          format(ms / libraryCount, 3, 12));
+      print("$sinceStart: ${message.message}");
     });
   }
 
diff --git a/pkg/front_end/lib/src/fasta/parser/forwarding_listener.dart b/pkg/front_end/lib/src/fasta/parser/forwarding_listener.dart
index 428f4b0..54a46f2 100644
--- a/pkg/front_end/lib/src/fasta/parser/forwarding_listener.dart
+++ b/pkg/front_end/lib/src/fasta/parser/forwarding_listener.dart
@@ -932,6 +932,11 @@
   }
 
   @override
+  void handleDirectivesOnly() {
+    listener?.handleDirectivesOnly();
+  }
+
+  @override
   void handleDottedName(int count, Token firstIdentifier) {
     listener?.handleDottedName(count, firstIdentifier);
   }
diff --git a/pkg/front_end/lib/src/fasta/parser/listener.dart b/pkg/front_end/lib/src/fasta/parser/listener.dart
index 87533b1..cf5e615 100644
--- a/pkg/front_end/lib/src/fasta/parser/listener.dart
+++ b/pkg/front_end/lib/src/fasta/parser/listener.dart
@@ -140,6 +140,14 @@
 
   void beginCompilationUnit(Token token) {}
 
+  /// This method exists for analyzer compatibility only
+  /// and will be removed once analyzer/fasta integration is complete.
+  ///
+  /// This is called when [parseDirectives] has parsed all directives
+  /// and is skipping the remainder of the file.  Substructures:
+  /// - metadata
+  void handleDirectivesOnly() {}
+
   void endCompilationUnit(int count, Token token) {
     logEvent("CompilationUnit");
   }
diff --git a/pkg/front_end/lib/src/fasta/parser/parser.dart b/pkg/front_end/lib/src/fasta/parser/parser.dart
index 1c2887c..c5d0ff8 100644
--- a/pkg/front_end/lib/src/fasta/parser/parser.dart
+++ b/pkg/front_end/lib/src/fasta/parser/parser.dart
@@ -29,6 +29,7 @@
 
 import '../scanner/token_constants.dart'
     show
+        CLOSE_CURLY_BRACKET_TOKEN,
         COMMA_TOKEN,
         DOUBLE_TOKEN,
         EOF_TOKEN,
@@ -90,7 +91,7 @@
 import 'type_continuation.dart'
     show TypeContinuation, typeContiunationFromFormalParameterKind;
 
-import 'util.dart' show closeBraceTokenFor, optional;
+import 'util.dart' show beforeCloseBraceTokenFor, closeBraceTokenFor, optional;
 
 /// An event generating parser of Dart programs. This parser expects all tokens
 /// in a linked list (aka a token stream).
@@ -304,7 +305,7 @@
     DirectiveContext directiveState = new DirectiveContext();
     token = syntheticPreviousToken(token);
     while (!token.next.isEof) {
-      Token start = token.next;
+      final Token start = token.next;
       token = parseTopLevelDeclarationImpl(token, directiveState);
       listener.endTopLevelDeclaration(token.next);
       count++;
@@ -326,6 +327,65 @@
     return token;
   }
 
+  /// This method exists for analyzer compatibility only
+  /// and will be removed once analyzer/fasta integration is complete.
+  ///
+  /// Similar to [parseUnit], this method parses a compilation unit,
+  /// but stops when it reaches the first declaration or EOF.
+  ///
+  /// This method is only invoked from outside the parser. As a result, this
+  /// method takes the next token to be consumed rather than the last consumed
+  /// token and returns the token after the last consumed token rather than the
+  /// last consumed token.
+  Token parseDirectives(Token token) {
+    listener.beginCompilationUnit(token);
+    int count = 0;
+    DirectiveContext directiveState = new DirectiveContext();
+    token = syntheticPreviousToken(token);
+    while (!token.next.isEof) {
+      final Token start = token.next;
+      final String value = start.stringValue;
+      final String nextValue = start.next.stringValue;
+
+      // If a built-in keyword is being used as function name, then stop.
+      if (identical(nextValue, '.') ||
+          identical(nextValue, '<') ||
+          identical(nextValue, '(')) {
+        break;
+      }
+
+      if (identical(token.next.type, TokenType.SCRIPT_TAG)) {
+        directiveState?.checkScriptTag(this, token.next);
+        token = parseScript(token);
+      } else {
+        token = parseMetadataStar(token);
+        if (identical(value, 'import')) {
+          directiveState?.checkImport(this, token);
+          token = parseImport(token);
+        } else if (identical(value, 'export')) {
+          directiveState?.checkExport(this, token);
+          token = parseExport(token);
+        } else if (identical(value, 'library')) {
+          directiveState?.checkLibrary(this, token);
+          token = parseLibraryName(token);
+        } else if (identical(value, 'part')) {
+          token = parsePartOrPartOf(token, directiveState);
+        } else if (identical(value, ';')) {
+          token = start;
+        } else {
+          listener.handleDirectivesOnly();
+          break;
+        }
+      }
+      listener.endTopLevelDeclaration(token.next);
+    }
+    token = token.next;
+    listener.endCompilationUnit(count, token);
+    // Clear fields that could lead to memory leak.
+    cachedRewriter = null;
+    return token;
+  }
+
   /// Parse a top-level declaration.
   ///
   /// This method is only invoked from outside the parser. As a result, this
@@ -1725,7 +1785,7 @@
         context == IdentifierContext.localFunctionDeclarationContinuation) {
       followingValues = ['.', '(', '{', '=>'];
     } else if (context == IdentifierContext.localVariableDeclaration) {
-      followingValues = [';', '=', ','];
+      followingValues = [';', '=', ',', '}'];
     } else if (context == IdentifierContext.methodDeclaration ||
         context == IdentifierContext.methodDeclarationContinuation) {
       followingValues = ['.', '(', '{', '=>'];
@@ -2103,10 +2163,15 @@
       return token.previous;
     }
 
-    /// Returns true if [kind] is '=', ';', or ',', that is, if [kind] could be
-    /// the end of a variable declaration.
+    /// Returns true if [kind] could be the end of a variable declaration.
     bool looksLikeVariableDeclarationEnd(int kind) {
-      return EQ_TOKEN == kind || SEMICOLON_TOKEN == kind || COMMA_TOKEN == kind;
+      return EQ_TOKEN == kind ||
+          SEMICOLON_TOKEN == kind ||
+          COMMA_TOKEN == kind ||
+          // Recovery: Return true for these additional invalid situations
+          // in which we assume a missing semicolon.
+          OPEN_CURLY_BRACKET_TOKEN == kind ||
+          CLOSE_CURLY_BRACKET_TOKEN == kind;
     }
 
     /// Returns true if [token] could be the start of a function body.
@@ -2568,43 +2633,60 @@
   Token parseStuff(Token token, Function beginStuff, Function stuffParser,
       Function endStuff, Function handleNoStuff) {
     // TODO(brianwilkerson): Rename to `parseStuffOpt`?
+
+    bool rewriteEndToken(Token beforeEnd) {
+      Token end = beforeEnd.next;
+      String value = end?.stringValue;
+      if (value != null && value.length > 1) {
+        if (identical(value, '>>')) {
+          Token replacement = new Token(TokenType.GT, end.charOffset);
+          replacement.next = new Token(TokenType.GT, end.charOffset + 1);
+          rewriter.replaceTokenFollowing(beforeEnd, replacement);
+          return true;
+        } else if (identical(value, '>=')) {
+          Token replacement = new Token(TokenType.GT, end.charOffset);
+          replacement.next = new Token(TokenType.EQ, end.charOffset + 1);
+          rewriter.replaceTokenFollowing(beforeEnd, replacement);
+          return true;
+        } else if (identical(value, '>>=')) {
+          Token replacement = new Token(TokenType.GT, end.charOffset);
+          replacement.next = new Token(TokenType.GT, end.charOffset + 1);
+          replacement.next.next = new Token(TokenType.EQ, end.charOffset + 2);
+          rewriter.replaceTokenFollowing(beforeEnd, replacement);
+          return true;
+        }
+      }
+      return false;
+    }
+
     // TODO(brianwilkerson): Remove the invocation of `previous` when
     // `injectGenericCommentTypeList` returns the last consumed token.
     token = listener.injectGenericCommentTypeList(token.next).previous;
     Token next = token.next;
     if (optional('<', next)) {
-      Token begin = next;
+      BeginToken begin = next;
+      Token end = begin.endToken;
+      if (end != null) {
+        Token beforeEnd = previousToken(begin, end);
+        if (rewriteEndToken(beforeEnd)) {
+          begin.endToken = null;
+        }
+      }
       beginStuff(begin);
       int count = 0;
       do {
         token = stuffParser(token.next);
         ++count;
       } while (optional(',', token.next));
-
-      // Rewrite `>>`, `>=`, and `>>=` tokens
-      next = token.next;
-      String value = next.stringValue;
-      if (value != null && value.length > 1) {
-        Token replacement = new Token(TokenType.GT, next.charOffset);
-        if (identical(value, '>>')) {
-          replacement.next = new Token(TokenType.GT, next.charOffset + 1);
-          token = rewriter.replaceTokenFollowing(token, replacement);
-        } else if (identical(value, '>=')) {
-          replacement.next = new Token(TokenType.EQ, next.charOffset + 1);
-          token = rewriter.replaceTokenFollowing(token, replacement);
-        } else if (identical(value, '>>=')) {
-          replacement.next = new Token(TokenType.GT, next.charOffset + 1);
-          replacement.next.next = new Token(TokenType.EQ, next.charOffset + 2);
-          token = rewriter.replaceTokenFollowing(token, replacement);
-        } else {
-          token = next;
+      if (end == null) {
+        if (rewriteEndToken(token)) {
+          begin.endToken = null;
         }
-      } else {
-        token = next;
       }
-
+      token = token.next;
       endStuff(count, begin, token);
       expect('>', token);
+      begin.endToken ??= token;
       return token;
     }
     handleNoStuff(next);
@@ -2924,16 +3006,13 @@
             if (token.next is BeginToken) {
               previous = token;
               token = token.next;
-              Token closeBrace = closeBraceTokenFor(token);
-              if (closeBrace == null) {
+              Token beforeCloseBrace = beforeCloseBraceTokenFor(token);
+              if (beforeCloseBrace == null) {
                 previous = reportUnmatchedToken(token);
                 token = previous.next;
               } else {
-                token = closeBrace;
-                // TODO(brianwilkerson): Remove the invocation of `previous`
-                // when `closeBraceTokenFor` returns the token before the
-                // closing brace.
-                previous = token.previous;
+                previous = beforeCloseBrace;
+                token = beforeCloseBrace.next;
               }
             }
           }
@@ -2962,8 +3041,8 @@
             if (token.next is BeginToken) {
               previous = token;
               token = token.next;
-              Token closeBrace = closeBraceTokenFor(token);
-              if (closeBrace == null) {
+              Token beforeCloseBrace = beforeCloseBraceTokenFor(token);
+              if (beforeCloseBrace == null) {
                 // Handle the edge case where the user is defining the less
                 // than operator, as in "bool operator <(other) => false;"
                 if (optional('operator', identifier)) {
@@ -2974,11 +3053,8 @@
                   token = previous.next;
                 }
               } else {
-                token = closeBrace;
-                // TODO(brianwilkerson): Remove the invocation of `previous`
-                // when `closeBraceTokenFor` returns the token before the
-                // closing brace.
-                previous = token.previous;
+                previous = beforeCloseBrace;
+                token = beforeCloseBrace.next;
               }
             }
           }
@@ -4330,6 +4406,7 @@
                     next.precedingComments),
                 new Token(TokenType.CLOSE_SQUARE_BRACKET, next.charOffset + 1));
             rewriter.replaceTokenFollowing(token, replacement);
+            replacement.endToken = replacement.next;
             token = parseArgumentOrIndexStar(token, null);
           } else {
             token = reportUnexpectedToken(token.next);
@@ -4687,6 +4764,7 @@
         new BeginToken(TokenType.OPEN_SQUARE_BRACKET, token.offset),
         new Token(TokenType.CLOSE_SQUARE_BRACKET, token.offset + 1));
     rewriter.replaceTokenFollowing(beforeToken, replacement);
+    replacement.endToken = replacement.next;
     token = replacement.next;
     listener.handleLiteralList(0, replacement, constKeyword, token);
     return token;
@@ -5101,8 +5179,43 @@
       if (colon != null) listener.handleNamedArgument(colon);
       ++argumentCount;
       if (!optional(',', next)) {
-        token = ensureCloseParen(token, begin);
-        break;
+        if (optional(')', next)) {
+          token = next;
+          break;
+        }
+        // Recovery
+        // TODO(danrubel): Consider using isPostIdentifierForRecovery
+        // and isStartOfNextSibling.
+        if (next.isKeywordOrIdentifier ||
+            next.type == TokenType.DOUBLE ||
+            next.type == TokenType.HASH ||
+            next.type == TokenType.HEXADECIMAL ||
+            next.type == TokenType.IDENTIFIER ||
+            next.type == TokenType.INT ||
+            next.type == TokenType.STRING ||
+            optional('{', next) ||
+            optional('(', next) ||
+            optional('[', next) ||
+            optional('[]', next) ||
+            optional('<', next) ||
+            optional('!', next) ||
+            optional('-', next) ||
+            optional('~', next) ||
+            optional('++', next) ||
+            optional('--', next)) {
+          // If this looks like the start of an expression,
+          // then report an error, insert the comma, and continue parsing.
+          next = rewriteAndRecover(
+              token,
+              fasta.templateExpectedButGot.withArguments(','),
+              new SyntheticToken(TokenType.COMMA, next.offset));
+        } else {
+          reportRecoverableError(
+              next, fasta.templateExpectedButGot.withArguments(')'));
+          // Scanner guarantees a closing parenthesis
+          token = begin.endGroup;
+          break;
+        }
       }
       token = next;
     }
diff --git a/pkg/front_end/lib/src/fasta/parser/util.dart b/pkg/front_end/lib/src/fasta/parser/util.dart
index d392a26..9f5cd6c 100644
--- a/pkg/front_end/lib/src/fasta/parser/util.dart
+++ b/pkg/front_end/lib/src/fasta/parser/util.dart
@@ -16,3 +16,19 @@
 /// Returns the close brace, bracket, or parenthesis of [left]. For '<', it may
 /// return null.
 Token closeBraceTokenFor(BeginToken left) => left.endToken;
+
+/// Returns the token before the close brace, bracket, or parenthesis
+/// associated with [left]. For '<', it may return `null`.
+Token beforeCloseBraceTokenFor(BeginToken left) {
+  Token endToken = left.endToken;
+  if (endToken == null) {
+    return null;
+  }
+  Token token = left;
+  Token next = token.next;
+  while (next != endToken && next != next.next) {
+    token = next;
+    next = token.next;
+  }
+  return token;
+}
diff --git a/pkg/front_end/lib/src/fasta/source/source_loader.dart b/pkg/front_end/lib/src/fasta/source/source_loader.dart
index 27ae91b..180d4cb 100644
--- a/pkg/front_end/lib/src/fasta/source/source_loader.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_loader.dart
@@ -46,13 +46,16 @@
     show
         LocatedMessage,
         Message,
+        SummaryTemplate,
+        Template,
         templateCyclicClassHierarchy,
         templateExtendingEnum,
         templateExtendingRestricted,
         templateIllegalMixin,
         templateIllegalMixinDueToConstructors,
         templateIllegalMixinDueToConstructorsCause,
-        templateInternalProblemUriMissingScheme;
+        templateInternalProblemUriMissingScheme,
+        templateSourceOutlineSummary;
 
 import '../fasta_codes.dart' as fasta_codes;
 
@@ -107,6 +110,9 @@
   SourceLoader(this.fileSystem, this.includeComments, KernelTarget target)
       : super(target);
 
+  Template<SummaryTemplate> get outlineSummaryTemplate =>
+      templateSourceOutlineSummary;
+
   Future<Token> tokenize(SourceLibraryBuilder library,
       {bool suppressLexicalErrors: false}) async {
     Uri uri = library.fileUri;
@@ -132,12 +138,12 @@
         zeroTerminatedBytes.setRange(0, rawBytes.length, rawBytes);
         bytes = zeroTerminatedBytes;
         sourceBytes[uri] = bytes;
+        byteCount += rawBytes.length;
       } on FileSystemException catch (e) {
         return deprecated_inputError(uri, -1, e.message);
       }
     }
 
-    byteCount += bytes.length - 1;
     ScannerResult result = scan(bytes, includeComments: includeComments);
     Token token = result.tokens;
     if (!suppressLexicalErrors) {
diff --git a/pkg/front_end/lib/src/fasta/source/stack_listener.dart b/pkg/front_end/lib/src/fasta/source/stack_listener.dart
index 940d362..a82e12d 100644
--- a/pkg/front_end/lib/src/fasta/source/stack_listener.dart
+++ b/pkg/front_end/lib/src/fasta/source/stack_listener.dart
@@ -309,6 +309,11 @@
     debugEvent("RecoverExpression");
   }
 
+  @override
+  void handleDirectivesOnly() {
+    pop(); // Discard the metadata.
+  }
+
   void handleExtraneousExpression(Token token, Message message) {
     debugEvent("ExtraneousExpression");
     pop(); // Discard the extraneous expression.
diff --git a/pkg/front_end/lib/src/fasta/type_inference/interface_resolver.dart b/pkg/front_end/lib/src/fasta/type_inference/interface_resolver.dart
index 2087b9d..ea8dc78 100644
--- a/pkg/front_end/lib/src/fasta/type_inference/interface_resolver.dart
+++ b/pkg/front_end/lib/src/fasta/type_inference/interface_resolver.dart
@@ -333,6 +333,9 @@
         .getDispatchTarget(superclass, procedure.name,
             setter: kind == ProcedureKind.Setter);
     if (superTarget == null) return;
+    if (superTarget is Procedure && superTarget.isForwardingStub) {
+      superTarget = _getForwardingStubSuperTarget(superTarget);
+    }
     procedure.isAbstract = false;
     if (!procedure.isForwardingStub) {
       _interfaceResolver._instrumentation?.record(
@@ -425,9 +428,15 @@
         typeParameters: typeParameters,
         requiredParameterCount: target.function.requiredParameterCount,
         returnType: substitution.substituteType(target.function.returnType));
-    return new Procedure(name, kind, function,
-        isAbstract: true,
-        isForwardingStub: true,
+    Member finalTarget;
+    if (target is ForwardingStub) {
+      finalTarget = ForwardingStub.getInterfaceTarget(target);
+    } else if (target is SyntheticAccessor) {
+      finalTarget = target._field;
+    } else {
+      finalTarget = target;
+    }
+    return new ForwardingStub(finalTarget, name, kind, function,
         fileUri: enclosingClass.fileUri)
       ..fileOffset = enclosingClass.fileOffset
       ..parent = enclosingClass
@@ -595,6 +604,45 @@
   static List<Procedure> getCandidates(ForwardingNode node) {
     return node._candidates.sublist(node._start, node._end);
   }
+
+  static Member _getForwardingStubSuperTarget(Procedure forwardingStub) {
+    // TODO(paulberry): when dartbug.com/31562 is fixed, this should become
+    // easier.
+    ReturnStatement body = forwardingStub.function.body;
+    var expression = body.expression;
+    if (expression is SuperMethodInvocation) {
+      return expression.interfaceTarget;
+    } else if (expression is SuperPropertySet) {
+      return expression.interfaceTarget;
+    } else {
+      return unhandled('${expression.runtimeType}',
+          '_getForwardingStubSuperTarget', -1, null);
+    }
+  }
+}
+
+/// Represents a [Procedure] generated by the front end to serve as a forwarding
+/// stub.
+///
+/// This class exists to work around dartbug.com/31519.
+/// TODO(paulberry): remove when dartbug.com/31519 is fixed.
+class ForwardingStub extends Procedure {
+  /// The interface target that this forwarding stub replaces.
+  final Member _interfaceTarget;
+
+  ForwardingStub(this._interfaceTarget, Name name, ProcedureKind kind,
+      FunctionNode function, {Uri fileUri})
+      : super(name, kind, function,
+            isAbstract: true, isForwardingStub: true, fileUri: fileUri);
+
+  /// Retrieves the [_interfaceTarget] from a forwarding stub.
+  ///
+  /// This method exists so that we don't have to expose [_interfaceTarget] as
+  /// a public getter (which might confuse clients of the front end that aren't
+  /// expecting it).
+  static Member getInterfaceTarget(ForwardingStub stub) {
+    return stub._interfaceTarget;
+  }
 }
 
 /// An [InterfaceResolver] keeps track of the information necessary to resolve
@@ -1004,7 +1052,10 @@
     if (procedure is SyntheticAccessor) {
       return ShadowField.isImplicitlyTyped(procedure._field);
     }
-    if (ShadowProcedure.hasImplicitReturnType(procedure)) return true;
+    if (procedure.kind != ProcedureKind.Setter &&
+        ShadowProcedure.hasImplicitReturnType(procedure)) {
+      return true;
+    }
     var function = procedure.function;
     for (var parameter in function.positionalParameters) {
       if (ShadowVariableDeclaration.isImplicitlyTyped(parameter)) return true;
diff --git a/pkg/front_end/lib/src/fasta/type_inference/type_inference_listener.dart b/pkg/front_end/lib/src/fasta/type_inference/type_inference_listener.dart
index 720f0c0..60f5508 100644
--- a/pkg/front_end/lib/src/fasta/type_inference/type_inference_listener.dart
+++ b/pkg/front_end/lib/src/fasta/type_inference/type_inference_listener.dart
@@ -148,6 +148,10 @@
   void cascadeExpressionExit(Let expression, DartType inferredType) =>
       genericExpressionExit("cascade", expression, inferredType);
 
+  void catchStatementEnter(Catch statement) {}
+
+  void catchStatementExit(Catch statement) {}
+
   bool conditionalExpressionEnter(
           ConditionalExpression expression, DartType typeContext) =>
       genericExpressionEnter("conditionalExpression", expression, typeContext);
@@ -298,12 +302,6 @@
           LogicalExpression expression, DartType inferredType) =>
       genericExpressionExit("logicalExpression", expression, inferredType);
 
-  void loopAssignmentStatementEnter(ExpressionStatement statement) =>
-      genericStatementEnter('loopAssignmentStatement', statement);
-
-  void loopAssignmentStatementExit(ExpressionStatement statement) =>
-      genericStatementExit('loopAssignmentStatement', statement);
-
   bool mapLiteralEnter(MapLiteral expression, DartType typeContext) =>
       genericExpressionEnter("mapLiteral", expression, typeContext);
 
@@ -415,8 +413,8 @@
   void staticGetExit(StaticGet expression, DartType inferredType) =>
       genericExpressionExit("staticGet", expression, inferredType);
 
-  bool staticInvocationEnter(
-          StaticInvocation expression, DartType typeContext) =>
+  bool staticInvocationEnter(StaticInvocation expression, int targetOffset,
+          Class targetClass, DartType typeContext) =>
       genericExpressionEnter("staticInvocation", expression, typeContext);
 
   void staticInvocationExit(
diff --git a/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart b/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart
index 581894d..ab6c6cc 100644
--- a/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart
+++ b/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart
@@ -23,11 +23,13 @@
         AsyncMarker,
         BottomType,
         Class,
+        ConstructorInvocation,
         DartType,
         DispatchCategory,
         DynamicType,
         Expression,
         Field,
+        FunctionExpression,
         FunctionNode,
         FunctionType,
         Initializer,
@@ -35,6 +37,7 @@
         InvocationExpression,
         Let,
         ListLiteral,
+        MapLiteral,
         Member,
         MethodInvocation,
         Name,
@@ -42,8 +45,8 @@
         ProcedureKind,
         PropertyGet,
         PropertySet,
-        ReturnStatement,
         Statement,
+        StaticGet,
         SuperMethodInvocation,
         SuperPropertyGet,
         SuperPropertySet,
@@ -51,6 +54,7 @@
         TypeParameter,
         TypeParameterType,
         VariableDeclaration,
+        VariableGet,
         VoidType;
 import 'package:kernel/class_hierarchy.dart';
 import 'package:kernel/core_types.dart';
@@ -162,27 +166,13 @@
         inferrer, type, unwrappedType, expression, fileOffset, isYieldStar);
   }
 
-  DartType inferReturnType(
-      TypeInferrerImpl inferrer, bool isExpressionFunction) {
+  DartType inferReturnType(TypeInferrerImpl inferrer) {
     assert(_needToInferReturnType);
-    DartType inferredReturnType =
-        inferrer.inferReturnType(_inferredReturnType, isExpressionFunction);
-    if (!isExpressionFunction &&
-        returnContext != null &&
+    DartType inferredReturnType = inferrer.inferReturnType(_inferredReturnType);
+    if (returnContext != null &&
         !_analyzerSubtypeOf(inferrer, inferredReturnType, returnContext)) {
-      // For block-bodied functions, if the inferred return type isn't a
-      // subtype of the context, we use the context.  We use analyzer subtyping
-      // rules here.
-      // TODO(paulberry): this is inherited from analyzer; it's not part of
-      // the spec.  See also dartbug.com/29606.
-      inferredReturnType = greatestClosure(inferrer.coreTypes, returnContext);
-    } else if (isExpressionFunction &&
-        returnContext != null &&
-        inferredReturnType is DynamicType) {
-      // For expression-bodied functions, if the inferred return type is
-      // `dynamic`, we use the context.
-      // TODO(paulberry): this is inherited from analyzer; it's not part of the
-      // spec.
+      // If the inferred return type isn't a subtype of the context, we use the
+      // context.
       inferredReturnType = greatestClosure(inferrer.coreTypes, returnContext);
     }
 
@@ -208,7 +198,13 @@
       var expectedType = isYieldStar
           ? _wrapAsyncOrGenerator(inferrer, returnContext)
           : returnContext;
-      inferrer.checkAssignability(expectedType, type, expression, fileOffset);
+      if (expectedType != null) {
+        inferrer.checkAssignability(
+            greatestClosure(inferrer.coreTypes, expectedType),
+            type,
+            expression,
+            fileOffset);
+      }
     }
   }
 
@@ -388,6 +384,7 @@
   /// an implicit downcast if appropriate.
   Expression checkAssignability(DartType expectedType, DartType actualType,
       Expression expression, int fileOffset) {
+    assert(expectedType == null || isKnown(expectedType));
     // We don't need to insert assignability checks when doing top level type
     // inference since top level type inference only cares about the type that
     // is inferred (the kernel code is discarded).
@@ -410,13 +407,24 @@
           parent?.replaceChild(expression, errorNode);
           return errorNode;
         } else {
-          // Insert an implicit downcast.
-          var parent = expression.parent;
-          var typeCheck = new AsExpression(expression, expectedType)
-            ..isTypeError = true
-            ..fileOffset = fileOffset;
-          parent?.replaceChild(expression, typeCheck);
-          return typeCheck;
+          var template = _getPreciseTypeErrorTemplate(expression);
+          if (template != null) {
+            // The type of the expression is known precisely, so an implicit
+            // downcast is guaranteed to fail.  Insert a compile-time error.
+            var parent = expression.parent;
+            var errorNode = helper.wrapInCompileTimeError(
+                expression, template.withArguments(actualType, expectedType));
+            parent?.replaceChild(expression, errorNode);
+            return errorNode;
+          } else {
+            // Insert an implicit downcast.
+            var parent = expression.parent;
+            var typeCheck = new AsExpression(expression, expectedType)
+              ..isTypeError = true
+              ..fileOffset = fileOffset;
+            parent?.replaceChild(expression, typeCheck);
+            return typeCheck;
+          }
         }
       } else {
         return null;
@@ -784,6 +792,35 @@
     }
   }
 
+  /// Determines the dispatch category of a [PropertySet].
+  void handlePropertySetContravariance(Expression receiver,
+      Object interfaceMember, PropertySet desugaredSet, Expression expression) {
+    DispatchCategory callKind;
+    if (receiver is ThisExpression || receiver == null) {
+      callKind = DispatchCategory.viaThis;
+    } else if (interfaceMember == null) {
+      callKind = DispatchCategory.dynamicDispatch;
+    } else {
+      callKind = DispatchCategory.interface;
+    }
+    desugaredSet?.dispatchCategory = callKind;
+    if (instrumentation != null) {
+      int offset = expression.fileOffset;
+      switch (callKind) {
+        case DispatchCategory.dynamicDispatch:
+          instrumentation.record(uri, offset, 'callKind',
+              new InstrumentationValueLiteral('dynamic'));
+          break;
+        case DispatchCategory.viaThis:
+          instrumentation.record(
+              uri, offset, 'callKind', new InstrumentationValueLiteral('this'));
+          break;
+        default:
+          break;
+      }
+    }
+  }
+
   /// Modifies a type as appropriate when inferring a declared variable's type.
   DartType inferDeclarationType(DartType initializerType) {
     if (initializerType is BottomType ||
@@ -1037,7 +1074,9 @@
       ShadowVariableDeclaration formal = formals[i];
       if (ShadowVariableDeclaration.isImplicitlyTyped(formal)) {
         DartType inferredType;
-        if (formalTypesFromContext[i] != null) {
+        if (formalTypesFromContext[i] == coreTypes.nullClass.rawType) {
+          inferredType = coreTypes.objectClass.rawType;
+        } else if (formalTypesFromContext[i] != null) {
           inferredType = greatestClosure(coreTypes,
               substitution.substituteType(formalTypesFromContext[i]));
         } else {
@@ -1058,10 +1097,9 @@
 
     // Apply type inference to `B` in return context `N’`, with any references
     // to `xi` in `B` having type `Pi`.  This produces `B’`.
-    bool isExpressionFunction = function.body is ReturnStatement;
     bool needToSetReturnType = hasImplicitReturnType && strongMode;
     ClosureContext oldClosureContext = this.closureContext;
-    bool needImplicitDowncasts = returnContext != null && !isExpressionFunction;
+    bool needImplicitDowncasts = returnContext != null;
     ClosureContext closureContext = new ClosureContext(
         this,
         function.asyncMarker,
@@ -1078,8 +1116,7 @@
     // or `void` if `B’` contains no `return` expressions.
     DartType inferredReturnType;
     if (needToSetReturnType) {
-      inferredReturnType =
-          closureContext.inferReturnType(this, isExpressionFunction);
+      inferredReturnType = closureContext.inferReturnType(this);
     }
 
     // Then the result of inference is `<T0, ..., Tn>(R0 x0, ..., Rn xn) B` with
@@ -1223,19 +1260,12 @@
   }
 
   /// Modifies a type as appropriate when inferring a closure return type.
-  DartType inferReturnType(DartType returnType, bool isExpressionFunction) {
+  DartType inferReturnType(DartType returnType) {
     if (returnType == null) {
       // Analyzer infers `Null` if there is no `return` expression; the spec
       // says to return `void`.  TODO(paulberry): resolve this difference.
       return coreTypes.nullClass.rawType;
     }
-    if (isExpressionFunction &&
-        returnType is InterfaceType &&
-        identical(returnType.classNode, coreTypes.nullClass)) {
-      // Analyzer coerces `Null` to `dynamic` in expression functions; the spec
-      // doesn't say to do this.  TODO(paulberry): resolve this difference.
-      return const DynamicType();
-    }
     return returnType;
   }
 
@@ -1403,4 +1433,48 @@
     }
     return classHierarchy.getInterfaceMember(class_, name, setter: setter);
   }
+
+  /// Determines if the given [expression]'s type is precisely known at compile
+  /// time.
+  ///
+  /// If it is, an error message template is returned, which can be used by the
+  /// caller to report an invalid cast.  Otherwise, `null` is returned.
+  Template<Message Function(DartType, DartType)> _getPreciseTypeErrorTemplate(
+      Expression expression) {
+    if (expression is ListLiteral) {
+      return templateInvalidCastLiteralList;
+    }
+    if (expression is MapLiteral) {
+      return templateInvalidCastLiteralMap;
+    }
+    if (expression is FunctionExpression) {
+      return templateInvalidCastFunctionExpr;
+    }
+    if (expression is ConstructorInvocation) {
+      if (ShadowConstructorInvocation.isRedirected(expression)) {
+        return null;
+      } else {
+        return templateInvalidCastNewExpr;
+      }
+    }
+    if (expression is StaticGet) {
+      var target = expression.target;
+      if (target is Procedure && target.kind == ProcedureKind.Method) {
+        if (target.enclosingClass != null) {
+          return templateInvalidCastStaticMethod;
+        } else {
+          return templateInvalidCastTopLevelFunction;
+        }
+      }
+      return null;
+    }
+    if (expression is VariableGet) {
+      var variable = expression.variable;
+      if (variable is ShadowVariableDeclaration &&
+          ShadowVariableDeclaration.isLocalFunction(variable)) {
+        return templateInvalidCastLocalFunction;
+      }
+    }
+    return null;
+  }
 }
diff --git a/pkg/front_end/lib/src/incremental/kernel_driver.dart b/pkg/front_end/lib/src/incremental/kernel_driver.dart
index f489459..189e2fd 100644
--- a/pkg/front_end/lib/src/incremental/kernel_driver.dart
+++ b/pkg/front_end/lib/src/incremental/kernel_driver.dart
@@ -384,7 +384,8 @@
       }
 
       Future<Null> appendNewDillLibraries(Program program) async {
-        dillTarget.loader.appendLibraries(program, libraryUris.contains);
+        dillTarget.loader
+            .appendLibraries(program, filter: libraryUris.contains);
         await dillTarget.buildOutlines();
       }
 
diff --git a/pkg/front_end/lib/src/incremental_kernel_generator_impl.dart b/pkg/front_end/lib/src/incremental_kernel_generator_impl.dart
index ddf8ab2..8c5a5b6 100644
--- a/pkg/front_end/lib/src/incremental_kernel_generator_impl.dart
+++ b/pkg/front_end/lib/src/incremental_kernel_generator_impl.dart
@@ -227,8 +227,8 @@
           int newDillCount = _program.libraries.length - validDillCount;
           await _logger.runAsync('Append $newDillCount dill libraries',
               () async {
-            _dillTarget.loader.appendLibraries(
-                _program, (uri) => !validLibraries.contains(uri));
+            _dillTarget.loader.appendLibraries(_program,
+                filter: (uri) => !validLibraries.contains(uri));
             await _dillTarget.buildOutlines();
           });
         }
@@ -369,8 +369,8 @@
 
           // Schedule the new outline for loading.
           // TODO(scheglov): Add a more efficient API to add one library.
-          _dillTarget.loader
-              .appendLibraries(_program, (uri) => uri == newLibrary.importUri);
+          _dillTarget.loader.appendLibraries(_program,
+              filter: (uri) => uri == newLibrary.importUri);
 
           // If main() was defined in the recompiled library, replace it.
           if (mainReference?.asProcedure?.enclosingLibrary == oldLibrary) {
diff --git a/pkg/front_end/lib/src/kernel_generator_impl.dart b/pkg/front_end/lib/src/kernel_generator_impl.dart
index ab6e3e2..97effa6 100644
--- a/pkg/front_end/lib/src/kernel_generator_impl.dart
+++ b/pkg/front_end/lib/src/kernel_generator_impl.dart
@@ -64,8 +64,8 @@
     CanonicalName nameRoot = sdkSummary?.root ?? new CanonicalName.root();
     if (sdkSummary != null) {
       var excluded = externalLibs(sdkSummary);
-      dillTarget.loader
-          .appendLibraries(sdkSummary, (uri) => !excluded.contains(uri));
+      dillTarget.loader.appendLibraries(sdkSummary,
+          filter: (uri) => !excluded.contains(uri));
     }
 
     // TODO(sigmund): provide better error reporting if input summaries or
@@ -73,8 +73,8 @@
     // sort them).
     for (var inputSummary in await options.loadInputSummaries(nameRoot)) {
       var excluded = externalLibs(inputSummary);
-      dillTarget.loader
-          .appendLibraries(inputSummary, (uri) => !excluded.contains(uri));
+      dillTarget.loader.appendLibraries(inputSummary,
+          filter: (uri) => !excluded.contains(uri));
     }
 
     // All summaries are considered external and shouldn't include source-info.
@@ -88,8 +88,8 @@
     // marked external.
     for (var dependency in await options.loadLinkDependencies(nameRoot)) {
       var excluded = externalLibs(dependency);
-      dillTarget.loader
-          .appendLibraries(dependency, (uri) => !excluded.contains(uri));
+      dillTarget.loader.appendLibraries(dependency,
+          filter: (uri) => !excluded.contains(uri));
     }
 
     await dillTarget.buildOutlines();
diff --git a/pkg/front_end/lib/src/minimal_incremental_kernel_generator.dart b/pkg/front_end/lib/src/minimal_incremental_kernel_generator.dart
index a429e5d..0029ef2 100644
--- a/pkg/front_end/lib/src/minimal_incremental_kernel_generator.dart
+++ b/pkg/front_end/lib/src/minimal_incremental_kernel_generator.dart
@@ -129,8 +129,8 @@
 
     return _runWithFrontEndContext('Compute delta', () async {
       try {
-        var dillTarget = new DillTarget(
-            new Ticker(isVerbose: false), uriTranslator, _options.target);
+        var dillTarget = new DillTarget(new Ticker(isVerbose: _options.verbose),
+            uriTranslator, _options.target);
 
         // Append all libraries what we still have in the current program.
         await _logger.runAsync('Load dill libraries', () async {
diff --git a/pkg/front_end/messages.yaml b/pkg/front_end/messages.yaml
index db982ad..56bc399 100644
--- a/pkg/front_end/messages.yaml
+++ b/pkg/front_end/messages.yaml
@@ -1568,6 +1568,48 @@
   template: "Can't apply this patch as its origin declaration isn't external."
   tip: "Try adding 'external' to the origin declaration."
 
+InvalidCastFunctionExpr:
+  template: "The function expression type '#type' isn't of expected type '#type2'."
+  tip: "Change the type of the function expression or the context in which it is used."
+  analyzerCode: INVALID_CAST_FUNCTION_EXPR
+  dart2jsCode: "*ignored*"
+
+InvalidCastLiteralList:
+  template: "The list literal type '#type' isn't of expected type '#type2'."
+  tip: "Change the type of the list literal or the context in which it is used."
+  analyzerCode: INVALID_CAST_LITERAL_LIST
+  dart2jsCode: "*ignored*"
+
+InvalidCastLiteralMap:
+  template: "The map literal type '#type' isn't of expected type '#type2'."
+  tip: "Change the type of the map literal or the context in which it is used."
+  analyzerCode: INVALID_CAST_LITERAL_MAP
+  dart2jsCode: "*ignored*"
+
+InvalidCastLocalFunction:
+  template: "The local function has type '#type' that isn't of expected type '#type2'."
+  tip: "Change the type of the function or the context in which it is used."
+  analyzerCode: INVALID_CAST_FUNCTION
+  dart2jsCode: "*ignored*"
+
+InvalidCastNewExpr:
+  template: "The constructor returns type '#type' that isn't of expected type '#type2'."
+  tip: "Change the type of the object being constructed or the context in which it is used."
+  analyzerCode: INVALID_CAST_NEW_EXPR
+  dart2jsCode: "*ignored*"
+
+InvalidCastStaticMethod:
+  template: "The static method has type '#type' that isn't of expected type '#type2'."
+  tip: "Change the type of the method or the context in which it is used."
+  analyzerCode: INVALID_CAST_METHOD
+  dart2jsCode: "*ignored*"
+
+InvalidCastTopLevelFunction:
+  template: "The top level function has type '#type' that isn't of expected type '#type2'."
+  tip: "Change the type of the function or the context in which it is used."
+  analyzerCode: INVALID_CAST_FUNCTION
+  dart2jsCode: "*ignored*"
+
 UndefinedGetter:
   template: "The getter '#name' isn't defined for the class '#type'."
   tip: "Try correcting the name to the name of an existing getter, or defining a getter or field named '#name'."
@@ -1603,3 +1645,20 @@
       C c;
       c.foo();
     }
+SourceOutlineSummary:
+  template: |
+    Built outlines for #count compilation units (#count2 bytes) in #string, that is,
+    #string2 bytes/ms, and
+    #string3 ms/compilation unit.
+
+SourceBodySummary:
+  template: |
+    Built bodies for #count compilation units (#count2 bytes) in #string, that is,
+    #string2 bytes/ms, and
+    #string3 ms/compilation unit.
+
+DillOutlineSummary:
+  template: |
+    Indexed #count libraries (#count2 bytes) in #string, that is,
+    #string2 bytes/ms, and
+    #string3 ms/libraries.
diff --git a/pkg/front_end/test/fasta/graph_test.dart b/pkg/front_end/test/fasta/graph_test.dart
new file mode 100644
index 0000000..b9a2d2f
--- /dev/null
+++ b/pkg/front_end/test/fasta/graph_test.dart
@@ -0,0 +1,63 @@
+// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE.md file.
+
+library fasta.test.graph_test;
+
+import 'package:expect/expect.dart' show Expect;
+
+import 'package:front_end/src/fasta/graph/graph.dart';
+
+class TestGraph implements Graph<String> {
+  final Map<String, List<String>> graph;
+
+  TestGraph(this.graph);
+
+  Iterable<String> get vertices => graph.keys;
+
+  Iterable<String> neighborsOf(String vertex) => graph[vertex];
+}
+
+test(String expected, Map<String, List<String>> graph) {
+  List<List<String>> result = computeStrongComponents(new TestGraph(graph));
+  Expect.stringEquals(expected, "$result");
+}
+
+main() {
+  test("[[B, A], [C], [D]]", {
+    "A": ["B"],
+    "B": ["A"],
+    "C": ["A"],
+    "D": ["C"],
+  });
+
+  test("[]", {});
+
+  test("[[A], [B], [C], [D]]", {
+    "A": [],
+    "B": [],
+    "C": [],
+    "D": [],
+  });
+
+  test("[[B, A], [C], [D]]", {
+    "D": ["C"],
+    "C": ["A"],
+    "B": ["A"],
+    "A": ["B"],
+  });
+
+  test("[[D], [C], [B], [A]]", {
+    "A": ["B"],
+    "B": ["C"],
+    "C": ["D"],
+    "D": [],
+  });
+
+  test("[[D], [C], [B], [A]]", {
+    "D": [],
+    "C": ["D"],
+    "B": ["C"],
+    "A": ["B"],
+  });
+}
diff --git a/pkg/front_end/test/fasta/incremental_test.dart b/pkg/front_end/test/fasta/incremental_test.dart
index 4ef487b..a587ef1 100644
--- a/pkg/front_end/test/fasta/incremental_test.dart
+++ b/pkg/front_end/test/fasta/incremental_test.dart
@@ -35,6 +35,19 @@
 import 'package:front_end/src/base/processed_options.dart'
     show ProcessedOptions;
 
+import 'package:front_end/src/incremental_kernel_generator_impl.dart'
+    show IncrementalKernelGeneratorImpl;
+
+import 'package:front_end/src/minimal_incremental_kernel_generator.dart'
+    show MinimalIncrementalKernelGenerator;
+
+import 'package:front_end/src/fasta/compiler_context.dart' show CompilerContext;
+
+import 'package:front_end/src/fasta/uri_translator.dart' show UriTranslator;
+
+import 'package:front_end/src/fasta/incremental_compiler.dart'
+    show IncrementalCompiler;
+
 import "incremental_expectations.dart"
     show IncrementalExpectation, extractJsonExpectations;
 
@@ -42,25 +55,66 @@
 
 const JsonEncoder json = const JsonEncoder.withIndent("  ");
 
-final Uri base = Uri.parse('org-dartlang-test:///');
+final Uri base = Uri.parse("org-dartlang-test:///");
+
+final Uri entryPoint = base.resolve("main.dart");
+
+enum Generator {
+  original,
+  minimal,
+  fasta,
+}
+
+Generator generatorFromString(String string) {
+  if (string == null) return Generator.fasta;
+  switch (string) {
+    case "original":
+      return Generator.original;
+    case "minimal":
+      return Generator.minimal;
+    case "fasta":
+      return Generator.fasta;
+    default:
+      throw "Unknown generator: '$string'";
+  }
+}
 
 class Context extends ChainContext {
-  final ProcessedOptions options;
+  final CompilerContext compilerContext;
   final ExternalStateSnapshot snapshot;
   final List<CompilationMessage> errors;
+  final Generator requestedGenerator;
 
   final List<Step> steps = const <Step>[
     const ReadTest(),
-    const FullCompile(),
-    const IncrementalUpdates(),
+    const PrepareIncrementalKernelGenerator(),
+    const RunCompilations(),
   ];
 
-  const Context(this.options, this.snapshot, this.errors);
+  IncrementalKernelGenerator compiler;
+
+  Context(
+      this.compilerContext, this.snapshot, this.errors, this.requestedGenerator)
+      : compiler = new IncrementalCompiler(compilerContext);
+
+  ProcessedOptions get options => compilerContext.options;
+
+  MemoryFileSystem get fileSystem => options.fileSystem;
+
+  T runInContext<T>(T action(CompilerContext c)) {
+    return compilerContext.runInContext<T>(action);
+  }
 
   void reset() {
     errors.clear();
     snapshot.restore();
   }
+
+  List<CompilationMessage> takeErrors() {
+    List<CompilationMessage> result = new List<CompilationMessage>.from(errors);
+    errors.clear();
+    return result;
+  }
 }
 
 class ReadTest extends Step<TestDescription, TestCase, Context> {
@@ -91,43 +145,75 @@
         sources[fileName] = <String>[contents];
       }
     });
-    final IncrementalKernelGenerator generator =
-        await IncrementalKernelGenerator.newInstance(
-            null, context.options.inputs.first,
-            processedOptions: context.options, useMinimalGenerator: true);
-    final TestCase test = new TestCase(description, sources, expectations,
-        context.options.fileSystem, generator, context.errors);
+    final TestCase test = new TestCase(description, sources, expectations);
     return test.validate(this);
   }
 }
 
-class FullCompile extends Step<TestCase, TestCase, Context> {
-  String get name => "full compile";
+class PrepareIncrementalKernelGenerator
+    extends Step<TestCase, TestCase, Context> {
+  String get name => "prepare IKG";
 
-  const FullCompile();
+  const PrepareIncrementalKernelGenerator();
 
   Future<Result<TestCase>> run(TestCase test, Context context) async {
-    test.sources.forEach((String name, List<String> sources) {
-      Uri uri = base.resolve(name);
-      test.fs.entityForUri(uri).writeAsStringSync(sources.first);
-    });
-    test.program = (await test.generator.computeDelta()).newProgram;
-    List<CompilationMessage> errors = test.takeErrors();
-    if (errors.isNotEmpty && !test.expectations.first.hasCompileTimeError) {
-      return fail(test, errors.join("\n"));
-    } else {
-      return pass(test);
+    if (Generator.fasta != context.requestedGenerator) {
+      context.compiler = await context
+          .runInContext<Future<IncrementalKernelGenerator>>(
+              (CompilerContext c) async {
+        UriTranslator uriTranslator = await c.options.getUriTranslator();
+        List<int> sdkOutlineBytes = await c.options.loadSdkSummaryBytes();
+        if (Generator.minimal == context.requestedGenerator) {
+          return new MinimalIncrementalKernelGenerator(c.options, uriTranslator,
+              sdkOutlineBytes, context.options.inputs.first);
+        } else {
+          return new IncrementalKernelGeneratorImpl(c.options, uriTranslator,
+              sdkOutlineBytes, context.options.inputs.first);
+        }
+      });
     }
+    return pass(test);
   }
 }
 
-class IncrementalUpdates extends Step<TestCase, TestCase, Context> {
-  const IncrementalUpdates();
+class RunCompilations extends Step<TestCase, TestCase, Context> {
+  const RunCompilations();
 
-  String get name => "incremental updates";
+  String get name => "run compilations";
 
   Future<Result<TestCase>> run(TestCase test, Context context) async {
-    return pass(test);
+    for (int edits = 0;; edits++) {
+      bool foundSources = false;
+      test.sources.forEach((String name, List<String> sources) {
+        if (edits < sources.length) {
+          String source = sources[edits];
+          Uri uri = base.resolve(name);
+          context.fileSystem.entityForUri(uri).writeAsStringSync(source);
+          foundSources = true;
+          context.compiler.invalidate(uri);
+          if (edits == 0) {
+            print("==> t.dart <==");
+          } else {
+            print("==> t.dart (edit #$edits) <==");
+          }
+          print(source.trimRight());
+        }
+      });
+      if (!foundSources) {
+        return edits == 0 ? fail(test, "No sources found") : pass(test);
+      }
+      var compiler = context.compiler;
+      var delta = compiler is IncrementalCompiler
+          ? (await compiler.computeDelta(entryPoint: entryPoint))
+          : (await compiler.computeDelta());
+      // ignore: UNUSED_LOCAL_VARIABLE
+      Program program = delta.newProgram;
+      List<CompilationMessage> errors = context.takeErrors();
+      if (errors.isNotEmpty && !test.expectations[edits].hasCompileTimeError) {
+        return fail(test, errors.join("\n"));
+      }
+      context.compiler.acceptLastDelta();
+    }
   }
 }
 
@@ -138,16 +224,7 @@
 
   final List<IncrementalExpectation> expectations;
 
-  final MemoryFileSystem fs;
-
-  final IncrementalKernelGenerator generator;
-
-  final List<CompilationMessage> errors;
-
-  Program program;
-
-  TestCase(this.description, this.sources, this.expectations, this.fs,
-      this.generator, this.errors);
+  TestCase(this.description, this.sources, this.expectations);
 
   String toString() {
     return "TestCase(${json.convert(sources)}, ${json.convert(expectations)})";
@@ -172,12 +249,6 @@
     }
     return step.pass(this);
   }
-
-  List<CompilationMessage> takeErrors() {
-    List<CompilationMessage> result = new List<CompilationMessage>.from(errors);
-    errors.clear();
-    return result;
-  }
 }
 
 Future<Context> createContext(
@@ -211,12 +282,16 @@
     };
 
   final ProcessedOptions options =
-      new ProcessedOptions(optionBuilder, false, [base.resolve("main.dart")]);
+      new ProcessedOptions(optionBuilder, false, [entryPoint]);
 
   final ExternalStateSnapshot snapshot =
       new ExternalStateSnapshot(await options.loadSdkSummary(null));
 
-  return new Context(options, snapshot, errors);
+  final Generator requestedGenerator =
+      generatorFromString(environment["generator"]);
+
+  return new Context(
+      new CompilerContext(options), snapshot, errors, requestedGenerator);
 }
 
 main([List<String> arguments = const []]) =>
diff --git a/pkg/front_end/test/fasta/testing/analyzer_diet_listener.dart b/pkg/front_end/test/fasta/testing/analyzer_diet_listener.dart
index 022afce..8813c76 100644
--- a/pkg/front_end/test/fasta/testing/analyzer_diet_listener.dart
+++ b/pkg/front_end/test/fasta/testing/analyzer_diet_listener.dart
@@ -68,7 +68,7 @@
   /// The list of local declarations in the body builder for the method
   /// currently being compiled, or `null` if no method is currently being
   /// compiled.
-  List<kernel.Statement> _kernelDeclarations;
+  List<kernel.TreeNode> _kernelDeclarations;
 
   /// The list of objects referenced by the body builder for the method
   /// currently being compiled, or `null` if no method is currently being
@@ -266,7 +266,7 @@
       void parserCallback()) {
     // Create a body builder to do type inference, and a listener to record the
     // types that are inferred.
-    _kernelDeclarations = <kernel.Statement>[];
+    _kernelDeclarations = <kernel.TreeNode>[];
     _kernelReferences = <kernel.Node>[];
     _kernelTypes = <kernel.DartType>[];
     _declarationOffsets = <int>[];
@@ -298,7 +298,7 @@
 
   /// Translates the given kernel declarations into analyzer elements.
   static List<ast.Element> _translateDeclarations(
-      List<kernel.Statement> kernelDeclarations) {
+      List<kernel.TreeNode> kernelDeclarations) {
     // TODO(scheglov): implement proper translation of elements.
     return new List<ast.Element>.filled(kernelDeclarations.length, null);
   }
diff --git a/pkg/front_end/test/fasta/type_inference/interface_resolver_test.dart b/pkg/front_end/test/fasta/type_inference/interface_resolver_test.dart
index b8353ef..ef4fd1a 100644
--- a/pkg/front_end/test/fasta/type_inference/interface_resolver_test.dart
+++ b/pkg/front_end/test/fasta/type_inference/interface_resolver_test.dart
@@ -29,7 +29,7 @@
 
   CoreTypes coreTypes;
 
-  ClassHierarchy classHierarchy = new IncrementalClassHierarchy();
+  ClassHierarchy classHierarchy;
 
   TypeSchemaEnvironment typeEnvironment;
 
@@ -38,11 +38,7 @@
   InterfaceResolverTest() {
     program = createMockSdkProgram();
     program.libraries.add(testLib..parent = program);
-    coreTypes = new CoreTypes(program);
-    typeEnvironment =
-        new TypeSchemaEnvironment(coreTypes, classHierarchy, true);
-    interfaceResolver =
-        new InterfaceResolver(null, typeEnvironment, null, true);
+    resetInterfaceResolver();
   }
 
   InterfaceType get intType => coreTypes.intClass.rawType;
@@ -161,8 +157,11 @@
         isAbstract: isAbstract);
   }
 
-  Field makeField({String name: 'foo', DartType type: const DynamicType()}) {
-    return new Field(new Name(name), type: type);
+  Field makeField(
+      {String name: 'foo',
+      DartType type: const DynamicType(),
+      bool isFinal: false}) {
+    return new Field(new Name(name), type: type, isFinal: isFinal);
   }
 
   Procedure makeForwardingStub(Procedure method, bool setter,
@@ -185,8 +184,11 @@
   }
 
   Procedure makeSetter(
-      {String name: 'foo', DartType setterType: const DynamicType()}) {
-    var parameter = new ShadowVariableDeclaration('value', 0, type: setterType);
+      {String name: 'foo',
+      DartType setterType: const DynamicType(),
+      bool isCovariant: false}) {
+    var parameter = new ShadowVariableDeclaration('value', 0,
+        type: setterType, isCovariant: isCovariant);
     var body = new Block([]);
     var function = new FunctionNode(body,
         positionalParameters: [parameter], returnType: const VoidType());
@@ -194,6 +196,15 @@
         new Name(name), ProcedureKind.Setter, function, false);
   }
 
+  void resetInterfaceResolver() {
+    classHierarchy = new IncrementalClassHierarchy();
+    coreTypes = new CoreTypes(program);
+    typeEnvironment =
+        new TypeSchemaEnvironment(coreTypes, classHierarchy, true);
+    interfaceResolver =
+        new InterfaceResolver(null, typeEnvironment, null, true);
+  }
+
   void test_candidate_for_field_getter() {
     var field = makeField();
     var class_ = makeClass(fields: [field]);
@@ -718,6 +729,7 @@
     expect(y.isGenericCovariantImpl, isFalse);
     expect(y.isGenericCovariantInterface, isFalse);
     expect(y.isCovariant, isTrue);
+    expect(ForwardingStub.getInterfaceTarget(stub), same(methodA));
     expect(getStubTarget(stub), same(methodA));
   }
 
@@ -765,9 +777,102 @@
     expect(y.isGenericCovariantImpl, isTrue);
     expect(y.isGenericCovariantInterface, isFalse);
     expect(y.isCovariant, isFalse);
+    expect(ForwardingStub.getInterfaceTarget(stub), same(methodA));
     expect(getStubTarget(stub), same(methodA));
   }
 
+  void test_interfaceTarget_cascaded() {
+    var methodC = makeEmptyMethod(positionalParameters: [
+      new VariableDeclaration('x', type: intType),
+      new VariableDeclaration('y', type: intType)
+    ]);
+    var c = makeClass(name: 'C', procedures: [methodC]);
+    var t = new TypeParameter('T', objectType);
+    var methodI1 = makeEmptyMethod(positionalParameters: [
+      new VariableDeclaration('x', type: new TypeParameterType(t))
+        ..isGenericCovariantImpl = true,
+      new VariableDeclaration('y', type: intType)
+    ]);
+    var i1 = makeClass(name: 'I1', typeParameters: [t], procedures: [methodI1]);
+    // Let's say D was previously compiled, so it already has a forwarding stub
+    var d =
+        makeClass(name: 'D', supertype: c.asThisSupertype, implementedTypes: [
+      new Supertype(i1, [intType])
+    ]);
+    var nodeD = getForwardingNode(d, false);
+    var methodD = ForwardingNode.createForwardingStubForTesting(
+        nodeD, Substitution.empty, methodC);
+    d.addMember(methodD);
+    ForwardingNode.createForwardingImplIfNeededForTesting(
+        nodeD, methodD.function);
+    // To ensure that we don't accidentally make use of information that was
+    // computed prior to adding the forwarding stub, reset the interface
+    // resolver.
+    resetInterfaceResolver();
+    var u = new TypeParameter('U', objectType);
+    var methodI2 = makeEmptyMethod(positionalParameters: [
+      new VariableDeclaration('x', type: intType),
+      new VariableDeclaration('y', type: new TypeParameterType(u))
+        ..isGenericCovariantImpl = true
+    ]);
+    var i2 = makeClass(name: 'I2', typeParameters: [u], procedures: [methodI2]);
+    var e =
+        makeClass(name: 'E', supertype: d.asThisSupertype, implementedTypes: [
+      new Supertype(i2, [intType])
+    ]);
+    var nodeE = getForwardingNode(e, false);
+    var stub = nodeE.finalize();
+    expect(ForwardingStub.getInterfaceTarget(stub), same(methodC));
+    expect(getStubTarget(stub), same(methodC));
+  }
+
+  void test_interfaceTarget_cascaded_setter() {
+    var setterC = makeSetter(setterType: intType);
+    var c = makeClass(name: 'C', procedures: [setterC]);
+    var t = new TypeParameter('T', objectType);
+    var setterI1 = makeSetter(setterType: new TypeParameterType(t));
+    var i1 = makeClass(name: 'I1', typeParameters: [t], procedures: [setterI1]);
+    // Let's say D was previously compiled, so it already has a forwarding stub
+    var d =
+        makeClass(name: 'D', supertype: c.asThisSupertype, implementedTypes: [
+      new Supertype(i1, [intType])
+    ]);
+    var nodeD = getForwardingNode(d, true);
+    var setterD = ForwardingNode.createForwardingStubForTesting(
+        nodeD, Substitution.empty, setterC);
+    d.addMember(setterD);
+    ForwardingNode.createForwardingImplIfNeededForTesting(
+        nodeD, setterD.function);
+    // To ensure that we don't accidentally make use of information that was
+    // computed prior to adding the forwarding stub, reset the interface
+    // resolver.
+    resetInterfaceResolver();
+    var setterI2 = makeSetter(setterType: intType, isCovariant: true);
+    var i2 = makeClass(name: 'I2', procedures: [setterI2]);
+    var e = makeClass(
+        name: 'E',
+        supertype: d.asThisSupertype,
+        implementedTypes: [i2.asThisSupertype]);
+    var nodeE = getForwardingNode(e, true);
+    var stub = nodeE.finalize();
+    expect(ForwardingStub.getInterfaceTarget(stub), same(setterC));
+    expect(getStubTarget(stub), same(setterC));
+  }
+
+  void test_interfaceTarget_field() {
+    var fieldA = makeField(type: numType, isFinal: true);
+    var fieldB = makeField(type: intType, isFinal: true);
+    var a = makeClass(name: 'A', fields: [fieldA]);
+    var b = makeClass(name: 'B', fields: [fieldB]);
+    var c = makeClass(
+        name: 'C',
+        supertype: a.asThisSupertype,
+        implementedTypes: [b.asThisSupertype]);
+    var node = getForwardingNode(c, false);
+    var stub = node.finalize();
+    expect(ForwardingStub.getInterfaceTarget(stub), same(fieldB));
+  }
+
   void test_merge_candidates_including_mixin() {
     var methodA = makeEmptyMethod();
     var methodB = makeEmptyMethod();
@@ -860,6 +965,7 @@
         name: 'C', implementedTypes: [a.asThisSupertype, b.asThisSupertype]);
     var node = getForwardingNode(c, false);
     var stub = node.finalize();
+    expect(ForwardingStub.getInterfaceTarget(stub), same(methodB));
     expect(getStubTarget(stub), isNull);
     expect(stub.function.returnType, intType);
   }
@@ -878,6 +984,7 @@
     ]);
     var node = getForwardingNode(d, true);
     var stub = node.finalize();
+    expect(ForwardingStub.getInterfaceTarget(stub), same(setterB));
     expect(getStubTarget(stub), isNull);
     expect(stub.function.positionalParameters[0].type, objectType);
   }
@@ -910,6 +1017,7 @@
     var resolvedMethod = node.finalize();
     expect(resolvedMethod, same(methodC));
     expect(methodC.function.body, isNotNull);
+    expect(methodC, isNot(new isInstanceOf<ForwardingStub>()));
     expect(getStubTarget(methodC), same(methodA));
   }
 
@@ -938,6 +1046,7 @@
         ]);
     var node = getForwardingNode(d, false);
     var stub = node.finalize();
+    expect(ForwardingStub.getInterfaceTarget(stub), same(methodB));
     expect(getStubTarget(stub), isNull);
     expect(stub.function.returnType, intType);
   }
diff --git a/pkg/front_end/testcases/ast_builder.status b/pkg/front_end/testcases/ast_builder.status
index df13a6c..9b5c308 100644
--- a/pkg/front_end/testcases/ast_builder.status
+++ b/pkg/front_end/testcases/ast_builder.status
@@ -22,12 +22,12 @@
 implicit_scope_test: Crash
 inference/abstract_class_instantiation: Crash
 inference/assert_initializer: Crash
-inference/block_bodied_lambdas_async_star: Crash
 inference/bug30251: Crash
 inference/bug30624: Crash
 inference/bug31133: Crash
+inference/bug31436: Crash
 inference/call_corner_cases: Crash
-inference/constructors_infer_from_arguments: Crash
+inference/closure_param_null_to_object: Crash
 inference/constructors_infer_from_arguments_redirecting: Crash
 inference/constructors_too_many_positional_arguments: Crash
 inference/downwards_inference_annotations: Crash
@@ -40,9 +40,7 @@
 inference/downwards_inference_annotations_type_variable: Fail
 inference/downwards_inference_annotations_type_variable_local: Crash
 inference/downwards_inference_annotations_typedef: Crash
-inference/downwards_inference_for_each: Crash
 inference/downwards_inference_initializing_formal_default_formal: Crash
-inference/downwards_inference_inside_top_level: Crash
 inference/downwards_inference_on_constructor_arguments_infer_downwards: Crash
 inference/downwards_inference_on_function_arguments_infer_downwards: Crash
 inference/downwards_inference_on_function_of_t_using_the_t: Crash
@@ -58,7 +56,6 @@
 inference/field_initializer_context_implicit: Crash
 inference/field_initializer_context_this: Crash
 inference/field_initializer_parameter: Crash
-inference/for_each_downcast_iterable: Crash
 inference/for_loop_initializer_expression: Crash
 inference/future_then: Crash
 inference/future_then_2: Crash
@@ -83,14 +80,11 @@
 inference/future_union_downwards_2: Crash
 inference/future_union_downwards_3: Crash
 inference/future_union_downwards_4: Crash
-inference/future_union_downwards_generic_method_with_future_return: Crash
-inference/future_union_upwards_generic_methods: Crash
 inference/generic_functions_return_typedef: Fail
 inference/generic_methods_basic_downward_inference: Crash
 inference/generic_methods_downwards_inference_fold: Crash
 inference/generic_methods_infer_generic_instantiation: Crash
 inference/generic_methods_infer_js_builtin: Fail
-inference/generic_methods_iterable_and_future: Crash
 inference/generic_methods_nested_generic_instantiation: Crash
 inference/greatest_closure_multiple_params: Crash
 inference/infer_assign_to_static: Crash
@@ -104,7 +98,6 @@
 inference/infer_generic_method_type_named: Crash
 inference/infer_generic_method_type_positional2: Crash
 inference/infer_generic_method_type_positional: Crash
-inference/infer_list_literal_nested_in_map_literal: Crash
 inference/infer_local_function_referenced_before_declaration: Crash
 inference/infer_method_missing_params: Crash
 inference/infer_rethrow: Crash
@@ -114,19 +107,12 @@
 inference/infer_statics_transitively_a: Crash
 inference/infer_statics_with_method_invocations: Crash
 inference/infer_statics_with_method_invocations_a: Crash
-inference/infer_typed_map_literal: Crash
-inference/infer_types_on_loop_indices_for_each_loop: Crash
-inference/infer_types_on_loop_indices_for_each_loop_async: Crash
 inference/inferred_initializing_formal_checks_default_value: Crash
-inference/inferred_type_cascade: Crash
 inference/inferred_type_is_enum: Crash
 inference/inferred_type_is_enum_values: Crash
-inference/inferred_type_is_typedef: Crash
-inference/inferred_type_is_typedef_parameterized: Crash
 inference/inferred_type_uses_synthetic_function_type_named_param: Crash
 inference/inferred_type_uses_synthetic_function_type_positional_param: Crash
 inference/lambda_does_not_have_propagated_type_hint: Crash
-inference/method_call_with_type_arguments_static_method: Crash
 inference/parameter_defaults_downwards: Crash
 inference/parameter_defaults_upwards: Crash
 inference/static_method_tear_off: Crash
@@ -144,13 +130,10 @@
 inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2: Crash
 inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr: Crash
 inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr: Crash
-inference/unsafe_block_closure_inference_in_map_dynamic: Crash
-inference/unsafe_block_closure_inference_in_map_typed: Crash
-inference_new/for_each_invalid_iterable: Crash
-inference_new/for_each_outer_var_type: Crash
 inference_new/infer_assign_to_static: Crash
 inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2: Crash
 inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2: Crash
+invalid_cast: Crash
 invocations: Crash
 metadata_enum: Crash
 metadata_named_mixin_application: Crash
@@ -221,21 +204,11 @@
 runtime_checks/covariant_generic_parameter_in_interface: Crash
 runtime_checks/forwarding_stub_with_default_values: Crash
 runtime_checks/implicit_downcast_assert_initializer: Crash
-runtime_checks/implicit_downcast_assert_statement: Crash
 runtime_checks/implicit_downcast_constructor_initializer: Crash
-runtime_checks/implicit_downcast_do: Crash
-runtime_checks/implicit_downcast_for_condition: Crash
-runtime_checks/implicit_downcast_if: Crash
-runtime_checks/implicit_downcast_not: Crash
-runtime_checks/implicit_downcast_while: Crash
 runtime_checks_new/contravariant_combiner: Crash
-runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast: Crash
 runtime_checks_new/derived_class_typed: Crash
+runtime_checks_new/for_in_call_kinds: Crash
 runtime_checks_new/implicit_downcast_field: Crash
-runtime_checks_new/mixin_forwarding_stub_field: Crash
-runtime_checks_new/mixin_forwarding_stub_getter: Crash
-runtime_checks_new/mixin_forwarding_stub_setter: Crash
-runtime_checks_new/stub_checked_via_target: Crash
 statements: Crash
 super_rasta_copy: Crash
 type_variable_as_super: Crash
diff --git a/pkg/front_end/testcases/compile.status b/pkg/front_end/testcases/compile.status
index 42ac1df..6a6141f 100644
--- a/pkg/front_end/testcases/compile.status
+++ b/pkg/front_end/testcases/compile.status
@@ -28,6 +28,7 @@
 uninitialized_fields: Fail # Fasta and dartk disagree on static initializers
 void_methods: Fail # Bad return from setters.
 
+inference/bug31436: RuntimeError # Test exercises Dart 2.0 semantics
 inference/constructors_too_many_positional_arguments: Fail
 inference/downwards_inference_annotations_locals: Fail # Issue #30031
 inference/future_then_explicit_future: Fail
diff --git a/pkg/front_end/testcases/dartino/add_part.incremental.yaml b/pkg/front_end/testcases/dartino/add_part.incremental.yaml
index 106eff0..9d621d2 100644
--- a/pkg/front_end/testcases/dartino/add_part.incremental.yaml
+++ b/pkg/front_end/testcases/dartino/add_part.incremental.yaml
@@ -16,4 +16,4 @@
   }
 
 part.dart: |
-  part of test.main
+  part of test.main;
diff --git a/pkg/front_end/testcases/function_type_is_check.dart.strong.expect b/pkg/front_end/testcases/function_type_is_check.dart.strong.expect
index 47e3281..f827885 100644
--- a/pkg/front_end/testcases/function_type_is_check.dart.strong.expect
+++ b/pkg/front_end/testcases/function_type_is_check.dart.strong.expect
@@ -12,5 +12,5 @@
     return 100;
 }
 static method main() → dynamic {
-  exp::Expect::equals(111, self::test(() → dynamic => null).+(self::test((core::Object o) → dynamic => null)).+(self::test((core::Object o, core::StackTrace t) → dynamic => null)));
+  exp::Expect::equals(111, self::test(() → core::Null => null).+(self::test((core::Object o) → core::Null => null)).+(self::test((core::Object o, core::StackTrace t) → core::Null => null)));
 }
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart
index 4a3ba8e..f640d14 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart
@@ -14,7 +14,7 @@
   };
   String y = f(42);
 
-  f = /*error:INVALID_CAST_FUNCTION_EXPR*/ /*@returnType=String*/ (/*@type=Object*/ x) =>
+  f = /*error:INVALID_CAST_FUNCTION_EXPR*/ /*@returnType=Null*/ (/*@type=Object*/ x) =>
       'hello';
 
   foo(/*@returnType=Null*/ (/*@type=Object*/ x) {
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart.strong.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart.strong.expect
index 12d79dd..ffc9a26 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart.strong.expect
@@ -9,7 +9,7 @@
     return null;
   };
   core::String y = f.call(42);
-  f = ((core::Object x) → core::String => "hello") as{TypeError} (core::Object) → core::Null;
+  f = (core::Object x) → core::Null => "hello" as{TypeError} core::Null;
   self::foo((core::Object x) → core::Null {
     return null;
   });
diff --git a/pkg/front_end/testcases/inference/bottom_in_closure.dart b/pkg/front_end/testcases/inference/bottom_in_closure.dart
index 5d4d1bc..a1be850 100644
--- a/pkg/front_end/testcases/inference/bottom_in_closure.dart
+++ b/pkg/front_end/testcases/inference/bottom_in_closure.dart
@@ -5,7 +5,7 @@
 /*@testedFeatures=inference*/
 library test;
 
-var /*@topType=() -> dynamic*/ v = /*@returnType=dynamic*/ () => null;
+var /*@topType=() -> Null*/ v = /*@returnType=Null*/ () => null;
 
 main() {
   v;
diff --git a/pkg/front_end/testcases/inference/bottom_in_closure.dart.strong.expect b/pkg/front_end/testcases/inference/bottom_in_closure.dart.strong.expect
index dce4c39..4ca225f 100644
--- a/pkg/front_end/testcases/inference/bottom_in_closure.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/bottom_in_closure.dart.strong.expect
@@ -1,7 +1,8 @@
 library test;
 import self as self;
+import "dart:core" as core;
 
-static field () → dynamic v = () → dynamic => null;
+static field () → core::Null v = () → core::Null => null;
 static method main() → dynamic {
   self::v;
 }
diff --git a/pkg/front_end/testcases/inference/bug31436.dart b/pkg/front_end/testcases/inference/bug31436.dart
new file mode 100644
index 0000000..f9c8a7e
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug31436.dart
@@ -0,0 +1,72 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/*@testedFeatures=inference*/
+library test;
+
+void block_test() {
+  List<Object> Function() g;
+  g = /*@returnType=List<Object>*/ () {
+    return /*@typeArgs=Object*/ [3];
+  };
+  assert(g is List<Object> Function());
+  assert(g is! List<int> Function());
+  g(). /*@target=List::add*/ add("hello"); // No runtime error
+  List<int> l = /*@typeArgs=int*/ [3];
+  g = /*@returnType=List<int>*/ () {
+    return l;
+  };
+  assert(g is List<Object> Function());
+  assert(g is List<int> Function());
+  try {
+    g(). /*@target=List::add*/ add("hello"); // runtime error
+    throw 'expected a runtime error';
+  } on TypeError {}
+  Object o = l;
+  g = /*@returnType=List<Object>*/ () {
+    return o;
+  }; // No implicit downcast on the assignment, implicit downcast on the return
+  assert(g is List<Object> Function());
+  assert(g is! List<int> Function());
+  assert(g is! Object Function());
+  g(); // No runtime error;
+  o = 3;
+  try {
+    g(); // Failed runtime cast on the return type of f
+    throw 'expected a runtime error';
+  } on TypeError {}
+}
+
+void arrow_test() {
+  List<Object> Function() g;
+  g = /*@returnType=List<Object>*/ () => /*@typeArgs=Object*/ [3];
+  assert(g is List<Object> Function());
+  assert(g is! List<int> Function());
+  g(). /*@target=List::add*/ add("hello"); // No runtime error
+  List<int> l = /*@typeArgs=int*/ [3];
+  g = /*@returnType=List<int>*/ () => l;
+  assert(g is List<Object> Function());
+  assert(g is List<int> Function());
+  try {
+    g(). /*@target=List::add*/ add("hello"); // runtime error
+    throw 'expected a runtime error';
+  } on TypeError {}
+  Object o = l;
+  g = /*@returnType=List<Object>*/ () =>
+      o; // No implicit downcast on the assignment, implicit downcast on the return
+  assert(g is List<Object> Function());
+  assert(g is! List<int> Function());
+  assert(g is! Object Function());
+  g(); // No runtime error;
+  o = 3;
+  try {
+    g(); // Failed runtime cast on the return type of f
+    throw 'expected a runtime error';
+  } on TypeError {}
+}
+
+main() {
+  block_test();
+  arrow_test();
+}
diff --git a/pkg/front_end/testcases/inference/bug31436.dart.direct.expect b/pkg/front_end/testcases/inference/bug31436.dart.direct.expect
new file mode 100644
index 0000000..e52bb02
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug31436.dart.direct.expect
@@ -0,0 +1,74 @@
+library test;
+import self as self;
+import "dart:core" as core;
+
+static method block_test() → void {
+  () → core::List<core::Object> g;
+  g = () → dynamic {
+    return <dynamic>[3];
+  };
+  assert(g is () → core::List<core::Object>);
+  assert(!(g is () → core::List<core::int>));
+  g.call().add("hello");
+  core::List<core::int> l = <dynamic>[3];
+  g = () → dynamic {
+    return l;
+  };
+  assert(g is () → core::List<core::Object>);
+  assert(g is () → core::List<core::int>);
+  try {
+    g.call().add("hello");
+    throw "expected a runtime error";
+  }
+  on core::TypeError catch(no-exception-var) {
+  }
+  core::Object o = l;
+  g = () → dynamic {
+    return o;
+  };
+  assert(g is () → core::List<core::Object>);
+  assert(!(g is () → core::List<core::int>));
+  assert(!(g is () → core::Object));
+  g.call();
+  o = 3;
+  try {
+    g.call();
+    throw "expected a runtime error";
+  }
+  on core::TypeError catch(no-exception-var) {
+  }
+}
+static method arrow_test() → void {
+  () → core::List<core::Object> g;
+  g = () → dynamic => <dynamic>[3];
+  assert(g is () → core::List<core::Object>);
+  assert(!(g is () → core::List<core::int>));
+  g.call().add("hello");
+  core::List<core::int> l = <dynamic>[3];
+  g = () → dynamic => l;
+  assert(g is () → core::List<core::Object>);
+  assert(g is () → core::List<core::int>);
+  try {
+    g.call().add("hello");
+    throw "expected a runtime error";
+  }
+  on core::TypeError catch(no-exception-var) {
+  }
+  core::Object o = l;
+  g = () → dynamic => o;
+  assert(g is () → core::List<core::Object>);
+  assert(!(g is () → core::List<core::int>));
+  assert(!(g is () → core::Object));
+  g.call();
+  o = 3;
+  try {
+    g.call();
+    throw "expected a runtime error";
+  }
+  on core::TypeError catch(no-exception-var) {
+  }
+}
+static method main() → dynamic {
+  self::block_test();
+  self::arrow_test();
+}
diff --git a/pkg/front_end/testcases/inference/bug31436.dart.outline.expect b/pkg/front_end/testcases/inference/bug31436.dart.outline.expect
new file mode 100644
index 0000000..85ecd2d
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug31436.dart.outline.expect
@@ -0,0 +1,9 @@
+library test;
+import self as self;
+
+static method block_test() → void
+  ;
+static method arrow_test() → void
+  ;
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/inference/bug31436.dart.strong.expect b/pkg/front_end/testcases/inference/bug31436.dart.strong.expect
new file mode 100644
index 0000000..1f2d373
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug31436.dart.strong.expect
@@ -0,0 +1,74 @@
+library test;
+import self as self;
+import "dart:core" as core;
+
+static method block_test() → void {
+  () → core::List<core::Object> g;
+  g = () → core::List<core::Object> {
+    return <core::Object>[3];
+  };
+  assert(g is () → core::List<core::Object>);
+  assert(!(g is () → core::List<core::int>));
+  g.call().{core::List::add}("hello");
+  core::List<core::int> l = <core::int>[3];
+  g = () → core::List<core::int> {
+    return l;
+  };
+  assert(g is () → core::List<core::Object>);
+  assert(g is () → core::List<core::int>);
+  try {
+    g.call().{core::List::add}("hello");
+    throw "expected a runtime error";
+  }
+  on core::TypeError catch(no-exception-var) {
+  }
+  core::Object o = l;
+  g = () → core::List<core::Object> {
+    return o as{TypeError} core::List<core::Object>;
+  };
+  assert(g is () → core::List<core::Object>);
+  assert(!(g is () → core::List<core::int>));
+  assert(!(g is () → core::Object));
+  g.call();
+  o = 3;
+  try {
+    g.call();
+    throw "expected a runtime error";
+  }
+  on core::TypeError catch(no-exception-var) {
+  }
+}
+static method arrow_test() → void {
+  () → core::List<core::Object> g;
+  g = () → core::List<core::Object> => <core::Object>[3];
+  assert(g is () → core::List<core::Object>);
+  assert(!(g is () → core::List<core::int>));
+  g.call().{core::List::add}("hello");
+  core::List<core::int> l = <core::int>[3];
+  g = () → core::List<core::int> => l;
+  assert(g is () → core::List<core::Object>);
+  assert(g is () → core::List<core::int>);
+  try {
+    g.call().{core::List::add}("hello");
+    throw "expected a runtime error";
+  }
+  on core::TypeError catch(no-exception-var) {
+  }
+  core::Object o = l;
+  g = () → core::List<core::Object> => o as{TypeError} core::List<core::Object>;
+  assert(g is () → core::List<core::Object>);
+  assert(!(g is () → core::List<core::int>));
+  assert(!(g is () → core::Object));
+  g.call();
+  o = 3;
+  try {
+    g.call();
+    throw "expected a runtime error";
+  }
+  on core::TypeError catch(no-exception-var) {
+  }
+}
+static method main() → dynamic {
+  self::block_test();
+  self::arrow_test();
+}
diff --git a/pkg/front_end/testcases/inference/closure_param_null_to_object.dart b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart
new file mode 100644
index 0000000..1226b8d
--- /dev/null
+++ b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart
@@ -0,0 +1,12 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/*@testedFeatures=inference*/
+library test;
+
+void test() {
+  int Function(Null) f = /*@returnType=int*/ (/*@type=Object*/ x) => 1;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.direct.expect b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.direct.expect
new file mode 100644
index 0000000..2a82c25
--- /dev/null
+++ b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.direct.expect
@@ -0,0 +1,8 @@
+library test;
+import self as self;
+import "dart:core" as core;
+
+static method test() → void {
+  (core::Null) → core::int f = (dynamic x) → dynamic => 1;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.outline.expect b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.outline.expect
new file mode 100644
index 0000000..c74ce2b
--- /dev/null
+++ b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.outline.expect
@@ -0,0 +1,7 @@
+library test;
+import self as self;
+
+static method test() → void
+  ;
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.strong.expect b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.strong.expect
new file mode 100644
index 0000000..8bc94ac
--- /dev/null
+++ b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.strong.expect
@@ -0,0 +1,8 @@
+library test;
+import self as self;
+import "dart:core" as core;
+
+static method test() → void {
+  (core::Null) → core::int f = (core::Object x) → core::int => 1;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart b/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart
index 7189891..3e2f6e2 100644
--- a/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart
+++ b/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart
@@ -10,7 +10,7 @@
   var /*@type=dynamic*/ b = null;
   var /*@type=dynamic*/ c = throw 'foo';
   var /*@type=() -> int*/ d = /*@returnType=int*/ () => 0;
-  var /*@type=() -> dynamic*/ e = /*@returnType=dynamic*/ () => null;
+  var /*@type=() -> Null*/ e = /*@returnType=Null*/ () => null;
   var /*@type=() -> <BottomType>*/ f = /*@returnType=<BottomType>*/ () =>
       throw 'foo';
   var /*@type=() -> int*/ g = /*@returnType=int*/ () {
diff --git a/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.strong.expect b/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.strong.expect
index 13b155b..5f679a5 100644
--- a/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.strong.expect
@@ -7,7 +7,7 @@
   dynamic b = null;
   dynamic c = throw "foo";
   () → core::int d = () → core::int => 0;
-  () → dynamic e = () → dynamic => null;
+  () → core::Null e = () → core::Null => null;
   () → <BottomType>f = () → <BottomType>=> throw "foo";
   () → core::int g = () → core::int {
     return 0;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart
index ec23762..93f4f7c 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart
@@ -9,24 +9,23 @@
 
 void test() {
   {
-    Function2<int, String> l0 = /*@returnType=String*/ (int x) => null;
+    Function2<int, String> l0 = /*@returnType=Null*/ (int x) => null;
     Function2<int, String> l1 = /*@returnType=String*/ (int x) => "hello";
     Function2<int, String>
         l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=String*/ (String x) =>
             "hello";
     Function2<int, String>
-        l3 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=int*/ (int x) => 3;
+        l3 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=String*/ (int x) => 3;
     Function2<int, String> l4 = /*@returnType=String*/ (int x) {
       return /*error:RETURN_OF_INVALID_TYPE*/ 3;
     };
   }
   {
-    Function2<int, String> l0 = /*@returnType=String*/ (/*@type=int*/ x) =>
-        null;
+    Function2<int, String> l0 = /*@returnType=Null*/ (/*@type=int*/ x) => null;
     Function2<int, String> l1 = /*@returnType=String*/ (/*@type=int*/ x) =>
         "hello";
     Function2<int, String>
-        l2 = /*info:INFERRED_TYPE_CLOSURE, error:INVALID_ASSIGNMENT*/ /*@returnType=int*/ (/*@type=int*/ x) =>
+        l2 = /*info:INFERRED_TYPE_CLOSURE, error:INVALID_ASSIGNMENT*/ /*@returnType=String*/ (/*@type=int*/ x) =>
             3;
     Function2<int, String> l3 = /*@returnType=String*/ (/*@type=int*/ x) {
       return /*error:RETURN_OF_INVALID_TYPE*/ 3;
@@ -36,8 +35,7 @@
     };
   }
   {
-    Function2<int, List<String>> l0 = /*@returnType=List<String>*/ (int x) =>
-        null;
+    Function2<int, List<String>> l0 = /*@returnType=Null*/ (int x) => null;
     Function2<int, List<String>> l1 = /*@returnType=List<String>*/ (int
         x) => /*@typeArgs=String*/ ["hello"];
     Function2<int, List<String>>
@@ -58,7 +56,7 @@
     Function2<int, int> l1 = /*@returnType=int*/ (/*@type=int*/ x) =>
         x /*@target=num::+*/ + 1;
     Function2<int, String>
-        l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=int*/ (/*@type=int*/ x) =>
+        l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=String*/ (/*@type=int*/ x) =>
             x;
     Function2<int, String>
         l3 = /*@returnType=String*/ (/*@type=int*/ x) => /*info:DYNAMIC_CAST, info:DYNAMIC_INVOKE*/ x
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.strong.expect b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.strong.expect
index aaba521..6f719a2 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.strong.expect
@@ -5,39 +5,39 @@
 typedef Function2<S extends core::Object, T extends core::Object> = (S) → T;
 static method test() → void {
   {
-    (core::int) → core::String l0 = (core::int x) → core::String => null;
+    (core::int) → core::String l0 = (core::int x) → core::Null => null;
     (core::int) → core::String l1 = (core::int x) → core::String => "hello";
     (core::int) → core::String l2 = let final dynamic #t1 = (core::String x) → core::String => "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:15:66: Error: A value of type '(dart.core::String) \u8594 dart.core::String' can't be assigned to a variable of type '(dart.core::int) \u8594 dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to '(dart.core::int) \u8594 dart.core::String'.\n        l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=String*/ (String x) =>\n                                                                 ^"));
-    (core::int) → core::String l3 = let final dynamic #t2 = (core::int x) → core::int => 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:18:63: Error: A value of type '(dart.core::int) \u8594 dart.core::int' can't be assigned to a variable of type '(dart.core::int) \u8594 dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to '(dart.core::int) \u8594 dart.core::String'.\n        l3 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=int*/ (int x) => 3;\n                                                              ^"));
+    (core::int) → core::String l3 = (core::int x) → core::String => let final dynamic #t2 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:18:77: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n        l3 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=String*/ (int x) => 3;\n                                                                            ^"));
     (core::int) → core::String l4 = (core::int x) → core::String {
       return let final dynamic #t3 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:20:47: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n      return /*error:RETURN_OF_INVALID_TYPE*/ 3;\n                                              ^"));
     };
   }
   {
-    (core::int) → core::String l0 = (core::int x) → core::String => null;
+    (core::int) → core::String l0 = (core::int x) → core::Null => null;
     (core::int) → core::String l1 = (core::int x) → core::String => "hello";
-    (core::int) → core::String l2 = let final dynamic #t4 = (core::int x) → core::int => 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:29:91: Error: A value of type '(dart.core::int) \u8594 dart.core::int' can't be assigned to a variable of type '(dart.core::int) \u8594 dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to '(dart.core::int) \u8594 dart.core::String'.\n        l2 = /*info:INFERRED_TYPE_CLOSURE, error:INVALID_ASSIGNMENT*/ /*@returnType=int*/ (/*@type=int*/ x) =>\n                                                                                          ^"));
+    (core::int) → core::String l2 = (core::int x) → core::String => let final dynamic #t4 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:29:13: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n            3;\n            ^"));
     (core::int) → core::String l3 = (core::int x) → core::String {
-      return let final dynamic #t5 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:32:47: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n      return /*error:RETURN_OF_INVALID_TYPE*/ 3;\n                                              ^"));
+      return let final dynamic #t5 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:31:47: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n      return /*error:RETURN_OF_INVALID_TYPE*/ 3;\n                                              ^"));
     };
     (core::int) → core::String l4 = (core::int x) → core::String {
-      return let final dynamic #t6 = x in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:35:47: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n      return /*error:RETURN_OF_INVALID_TYPE*/ x;\n                                              ^"));
+      return let final dynamic #t6 = x in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:34:47: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n      return /*error:RETURN_OF_INVALID_TYPE*/ x;\n                                              ^"));
     };
   }
   {
-    (core::int) → core::List<core::String> l0 = (core::int x) → core::List<core::String> => null;
+    (core::int) → core::List<core::String> l0 = (core::int x) → core::Null => null;
     (core::int) → core::List<core::String> l1 = (core::int x) → core::List<core::String> => <core::String>["hello"];
-    (core::int) → core::List<core::String> l2 = let final dynamic #t7 = (core::String x) → core::List<core::String> => <core::String>["hello"] in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:44:72: Error: A value of type '(dart.core::String) \u8594 dart.core::List<dart.core::String>' can't be assigned to a variable of type '(dart.core::int) \u8594 dart.core::List<dart.core::String>'.\nTry changing the type of the left hand side, or casting the right hand side to '(dart.core::int) \u8594 dart.core::List<dart.core::String>'.\n        l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=List<String>*/ (String\n                                                                       ^"));
-    (core::int) → core::List<core::String> l3 = (core::int x) → core::List<core::String> => <core::String>[let final dynamic #t8 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:48:58: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n              /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3\n                                                         ^"))];
+    (core::int) → core::List<core::String> l2 = let final dynamic #t7 = (core::String x) → core::List<core::String> => <core::String>["hello"] in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:42:72: Error: A value of type '(dart.core::String) \u8594 dart.core::List<dart.core::String>' can't be assigned to a variable of type '(dart.core::int) \u8594 dart.core::List<dart.core::String>'.\nTry changing the type of the left hand side, or casting the right hand side to '(dart.core::int) \u8594 dart.core::List<dart.core::String>'.\n        l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=List<String>*/ (String\n                                                                       ^"));
+    (core::int) → core::List<core::String> l3 = (core::int x) → core::List<core::String> => <core::String>[let final dynamic #t8 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:46:58: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n              /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3\n                                                         ^"))];
     (core::int) → core::List<core::String> l4 = (core::int x) → core::List<core::String> {
-      return <core::String>[let final dynamic #t9 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:52:52: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n        /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3\n                                                   ^"))];
+      return <core::String>[let final dynamic #t9 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:50:52: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n        /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3\n                                                   ^"))];
     };
   }
   {
     (core::int) → core::int l0 = (core::int x) → core::int => x;
     (core::int) → core::int l1 = (core::int x) → core::int => x.{core::num::+}(1);
-    (core::int) → core::String l2 = let final dynamic #t10 = (core::int x) → core::int => x in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:61:63: Error: A value of type '(dart.core::int) \u8594 dart.core::int' can't be assigned to a variable of type '(dart.core::int) \u8594 dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to '(dart.core::int) \u8594 dart.core::String'.\n        l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=int*/ (/*@type=int*/ x) =>\n                                                              ^"));
-    (core::int) → core::String l3 = (core::int x) → core::String => let final dynamic #t11 = x in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:65:14: Error: The method 'substring' isn't defined for the class 'dart.core::int'.\nTry correcting the name to the name of an existing method, or defining a method named 'substring'.\n            .substring(3);\n             ^"));
+    (core::int) → core::String l2 = (core::int x) → core::String => let final dynamic #t10 = x in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:60:13: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n            x;\n            ^"));
+    (core::int) → core::String l3 = (core::int x) → core::String => (let final dynamic #t11 = x in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:63:14: Error: The method 'substring' isn't defined for the class 'dart.core::int'.\nTry correcting the name to the name of an existing method, or defining a method named 'substring'.\n            .substring(3);\n             ^"))) as{TypeError} core::String;
     (core::String) → core::String l4 = (core::String x) → core::String => x.{core::String::substring}(3);
   }
 }
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart
index eaddb26..f2c349c 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart
@@ -9,11 +9,11 @@
   {
     String f<S>(int x) => null;
     var /*@type=<S extends Object>(int) -> String*/ v = f;
-    v = <T> /*@returnType=String*/ (int x) => null;
+    v = <T> /*@returnType=Null*/ (int x) => null;
     v = <T> /*@returnType=String*/ (int x) => "hello";
     v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=String*/ (String x) =>
         "hello";
-    v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=int*/ (int x) => 3;
+    v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=String*/ (int x) => 3;
     v = <T> /*@returnType=String*/ (int x) {
       return /*error:RETURN_OF_INVALID_TYPE*/ 3;
     };
@@ -21,10 +21,10 @@
   {
     String f<S>(int x) => null;
     var /*@type=<S extends Object>(int) -> String*/ v = f;
-    v = <T> /*@returnType=String*/ (/*@type=int*/ x) => null;
+    v = <T> /*@returnType=Null*/ (/*@type=int*/ x) => null;
     v = <T> /*@returnType=String*/ (/*@type=int*/ x) => "hello";
     v = /*info:INFERRED_TYPE_CLOSURE, error:INVALID_ASSIGNMENT*/ <
-            T> /*@returnType=int*/ (/*@type=int*/ x) =>
+            T> /*@returnType=String*/ (/*@type=int*/ x) =>
         3;
     v = <T> /*@returnType=String*/ (/*@type=int*/ x) {
       return /*error:RETURN_OF_INVALID_TYPE*/ 3;
@@ -36,7 +36,7 @@
   {
     List<String> f<S>(int x) => null;
     var /*@type=<S extends Object>(int) -> List<String>*/ v = f;
-    v = <T> /*@returnType=List<String>*/ (int x) => null;
+    v = <T> /*@returnType=Null*/ (int x) => null;
     v = <T> /*@returnType=List<String>*/ (int x) => /*@typeArgs=String*/ [
           "hello"
         ];
@@ -60,7 +60,7 @@
     x = <T> /*@returnType=int*/ (/*@type=int*/ x) => x /*@target=num::+*/ + 1;
     var /*@type=<T extends Object>(int) -> String*/ y = int2String;
     y = /*info:INFERRED_TYPE_CLOSURE, error:INVALID_ASSIGNMENT*/ <
-            T> /*@returnType=int*/ (/*@type=int*/ x) =>
+            T> /*@returnType=String*/ (/*@type=int*/ x) =>
         x;
     y = <T> /*@returnType=String*/ (/*@type=int*/ x) => /*info:DYNAMIC_INVOKE, info:DYNAMIC_CAST*/ x
         .substring(3);
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.strong.expect b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.strong.expect
index 73f816f..0ebb117 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.strong.expect
@@ -7,10 +7,10 @@
     function f<S extends core::Object>(core::int x) → core::String
       return null;
     <S extends core::Object>(core::int) → core::String v = f;
-    v = <T extends core::Object>(core::int x) → core::String => null;
+    v = <T extends core::Object>(core::int x) → core::Null => null;
     v = <T extends core::Object>(core::int x) → core::String => "hello";
     v = let final dynamic #t1 = <T extends core::Object>(core::String x) → core::String => "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:14:65: Error: A value of type '<T extends dart.core::Object>(dart.core::String) \u8594 dart.core::String' can't be assigned to a variable of type '<S extends dart.core::Object>(dart.core::int) \u8594 dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to '<S extends dart.core::Object>(dart.core::int) \u8594 dart.core::String'.\n    v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=String*/ (String x) =>\n                                                                ^"));
-    v = let final dynamic #t2 = <T extends core::Object>(core::int x) → core::int => 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:16:62: Error: A value of type '<T extends dart.core::Object>(dart.core::int) \u8594 dart.core::int' can't be assigned to a variable of type '<S extends dart.core::Object>(dart.core::int) \u8594 dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to '<S extends dart.core::Object>(dart.core::int) \u8594 dart.core::String'.\n    v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=int*/ (int x) => 3;\n                                                             ^"));
+    v = <T extends core::Object>(core::int x) → core::String => let final dynamic #t2 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:16:76: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n    v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=String*/ (int x) => 3;\n                                                                           ^"));
     v = <T extends core::Object>(core::int x) → core::String {
       return let final dynamic #t3 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:18:47: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n      return /*error:RETURN_OF_INVALID_TYPE*/ 3;\n                                              ^"));
     };
@@ -19,9 +19,9 @@
     function f<S extends core::Object>(core::int x) → core::String
       return null;
     <S extends core::Object>(core::int) → core::String v = f;
-    v = <T extends core::Object>(core::int x) → core::String => null;
+    v = <T extends core::Object>(core::int x) → core::Null => null;
     v = <T extends core::Object>(core::int x) → core::String => "hello";
-    v = let final dynamic #t4 = <T extends core::Object>(core::int x) → core::int => 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:27:36: Error: A value of type '<T extends dart.core::Object>(dart.core::int) \u8594 dart.core::int' can't be assigned to a variable of type '<S extends dart.core::Object>(dart.core::int) \u8594 dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to '<S extends dart.core::Object>(dart.core::int) \u8594 dart.core::String'.\n            T> /*@returnType=int*/ (/*@type=int*/ x) =>\n                                   ^"));
+    v = <T extends core::Object>(core::int x) → core::String => let final dynamic #t4 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:28:9: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n        3;\n        ^"));
     v = <T extends core::Object>(core::int x) → core::String {
       return let final dynamic #t5 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:30:47: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n      return /*error:RETURN_OF_INVALID_TYPE*/ 3;\n                                              ^"));
     };
@@ -33,7 +33,7 @@
     function f<S extends core::Object>(core::int x) → core::List<core::String>
       return null;
     <S extends core::Object>(core::int) → core::List<core::String> v = f;
-    v = <T extends core::Object>(core::int x) → core::List<core::String> => null;
+    v = <T extends core::Object>(core::int x) → core::Null => null;
     v = <T extends core::Object>(core::int x) → core::List<core::String> => <core::String>["hello"];
     v = let final dynamic #t7 = <T extends core::Object>(core::String x) → core::List<core::String> => <core::String>["hello"] in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:43:71: Error: A value of type '<T extends dart.core::Object>(dart.core::String) \u8594 dart.core::List<dart.core::String>' can't be assigned to a variable of type '<S extends dart.core::Object>(dart.core::int) \u8594 dart.core::List<dart.core::String>'.\nTry changing the type of the left hand side, or casting the right hand side to '<S extends dart.core::Object>(dart.core::int) \u8594 dart.core::List<dart.core::String>'.\n    v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=List<String>*/ (String\n                                                                      ^"));
     v = <T extends core::Object>(core::int x) → core::List<core::String> => <core::String>[let final dynamic #t8 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:46:54: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n          /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3\n                                                     ^"))];
@@ -52,8 +52,8 @@
     x = <T extends core::Object>(core::int x) → core::int => x;
     x = <T extends core::Object>(core::int x) → core::int => x.{core::num::+}(1);
     <T extends core::Object>(core::int) → core::String y = int2String;
-    y = let final dynamic #t10 = <T extends core::Object>(core::int x) → core::int => x in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:63:36: Error: A value of type '<T extends dart.core::Object>(dart.core::int) \u8594 dart.core::int' can't be assigned to a variable of type '<T extends dart.core::Object>(dart.core::int) \u8594 dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to '<T extends dart.core::Object>(dart.core::int) \u8594 dart.core::String'.\n            T> /*@returnType=int*/ (/*@type=int*/ x) =>\n                                   ^"));
-    y = <T extends core::Object>(core::int x) → core::String => let final dynamic #t11 = x in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:66:10: Error: The method 'substring' isn't defined for the class 'dart.core::int'.\nTry correcting the name to the name of an existing method, or defining a method named 'substring'.\n        .substring(3);\n         ^"));
+    y = <T extends core::Object>(core::int x) → core::String => let final dynamic #t10 = x in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:64:9: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n        x;\n        ^"));
+    y = <T extends core::Object>(core::int x) → core::String => (let final dynamic #t11 = x in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:66:10: Error: The method 'substring' isn't defined for the class 'dart.core::int'.\nTry correcting the name to the name of an existing method, or defining a method named 'substring'.\n        .substring(3);\n         ^"))) as{TypeError} core::String;
     <T extends core::Object>(core::String) → core::String z = string2String;
     z = <T extends core::Object>(core::String x) → core::String => x.{core::String::substring}(3);
   }
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.strong.expect b/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.strong.expect
index 018f066..b1d7123 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.strong.expect
@@ -56,59 +56,59 @@
     self::A<core::int, core::String> a1 = new self::A::named<core::int, core::String>(3, "hello");
     self::A<core::int, core::String> a2 = new self::A::•<core::int, core::String>(3, "hello");
     self::A<core::int, core::String> a3 = new self::A::named<core::int, core::String>(3, "hello");
-    self::A<core::int, core::String> a4 = new self::A::•<core::int, dynamic>(3, "hello") as{TypeError} self::A<core::int, core::String>;
-    self::A<core::int, core::String> a5 = new self::A::named<dynamic, dynamic>(3, "hello") as{TypeError} self::A<core::int, core::String>;
+    self::A<core::int, core::String> a4 = let final dynamic #t1 = new self::A::•<core::int, dynamic>(3, "hello") in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:46:50: Error: The constructor returns type 'test::A<dart.core::int, dynamic>' that isn't of expected type 'test::A<dart.core::int, dart.core::String>'.\nChange the type of the object being constructed or the context in which it is used.\n        a4 = /*error:INVALID_CAST_NEW_EXPR*/ new A<int, dynamic>(3, \"hello\");\n                                                 ^"));
+    self::A<core::int, core::String> a5 = let final dynamic #t2 = new self::A::named<dynamic, dynamic>(3, "hello") in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:48:50: Error: The constructor returns type 'test::A<dynamic, dynamic>' that isn't of expected type 'test::A<dart.core::int, dart.core::String>'.\nChange the type of the object being constructed or the context in which it is used.\n        a5 = /*error:INVALID_CAST_NEW_EXPR*/ new A<dynamic, dynamic>.named(\n                                                 ^"));
   }
   {
-    self::A<core::int, core::String> a0 = new self::A::•<core::int, core::String>(let final dynamic #t1 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:53:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",\n                                               ^")), let final dynamic #t2 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:54:48: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);\n                                               ^")));
-    self::A<core::int, core::String> a1 = new self::A::named<core::int, core::String>(let final dynamic #t3 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:56:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",\n                                               ^")), let final dynamic #t4 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:57:48: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);\n                                               ^")));
+    self::A<core::int, core::String> a0 = new self::A::•<core::int, core::String>(let final dynamic #t3 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:53:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",\n                                               ^")), let final dynamic #t4 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:54:48: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);\n                                               ^")));
+    self::A<core::int, core::String> a1 = new self::A::named<core::int, core::String>(let final dynamic #t5 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:56:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",\n                                               ^")), let final dynamic #t6 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:57:48: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);\n                                               ^")));
   }
   {
     self::A<core::int, core::String> a0 = new self::B::•<core::String, core::int>("hello", 3);
     self::A<core::int, core::String> a1 = new self::B::named<core::String, core::int>("hello", 3);
     self::A<core::int, core::String> a2 = new self::B::•<core::String, core::int>("hello", 3);
     self::A<core::int, core::String> a3 = new self::B::named<core::String, core::int>("hello", 3);
-    self::A<core::int, core::String> a4 = let final dynamic #t5 = new self::B::•<core::String, dynamic>("hello", 3) in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:65:47: Error: A value of type 'test::B<dart.core::String, dynamic>' can't be assigned to a variable of type 'test::A<dart.core::int, dart.core::String>'.\nTry changing the type of the left hand side, or casting the right hand side to 'test::A<dart.core::int, dart.core::String>'.\n        a4 = /*error:INVALID_ASSIGNMENT*/ new B<String, dynamic>(\"hello\", 3);\n                                              ^"));
-    self::A<core::int, core::String> a5 = let final dynamic #t6 = new self::B::named<dynamic, dynamic>("hello", 3) in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:67:47: Error: A value of type 'test::B<dynamic, dynamic>' can't be assigned to a variable of type 'test::A<dart.core::int, dart.core::String>'.\nTry changing the type of the left hand side, or casting the right hand side to 'test::A<dart.core::int, dart.core::String>'.\n        a5 = /*error:INVALID_ASSIGNMENT*/ new B<dynamic, dynamic>.named(\n                                              ^"));
+    self::A<core::int, core::String> a4 = let final dynamic #t7 = new self::B::•<core::String, dynamic>("hello", 3) in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:65:47: Error: A value of type 'test::B<dart.core::String, dynamic>' can't be assigned to a variable of type 'test::A<dart.core::int, dart.core::String>'.\nTry changing the type of the left hand side, or casting the right hand side to 'test::A<dart.core::int, dart.core::String>'.\n        a4 = /*error:INVALID_ASSIGNMENT*/ new B<String, dynamic>(\"hello\", 3);\n                                              ^"));
+    self::A<core::int, core::String> a5 = let final dynamic #t8 = new self::B::named<dynamic, dynamic>("hello", 3) in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:67:47: Error: A value of type 'test::B<dynamic, dynamic>' can't be assigned to a variable of type 'test::A<dart.core::int, dart.core::String>'.\nTry changing the type of the left hand side, or casting the right hand side to 'test::A<dart.core::int, dart.core::String>'.\n        a5 = /*error:INVALID_ASSIGNMENT*/ new B<dynamic, dynamic>.named(\n                                              ^"));
   }
   {
-    self::A<core::int, core::String> a0 = new self::B::•<core::String, core::int>(let final dynamic #t7 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:72:48: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3,\n                                               ^")), let final dynamic #t8 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:73:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");\n                                               ^")));
-    self::A<core::int, core::String> a1 = new self::B::named<core::String, core::int>(let final dynamic #t9 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:75:48: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3,\n                                               ^")), let final dynamic #t10 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:76:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");\n                                               ^")));
+    self::A<core::int, core::String> a0 = new self::B::•<core::String, core::int>(let final dynamic #t9 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:72:48: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3,\n                                               ^")), let final dynamic #t10 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:73:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");\n                                               ^")));
+    self::A<core::int, core::String> a1 = new self::B::named<core::String, core::int>(let final dynamic #t11 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:75:48: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3,\n                                               ^")), let final dynamic #t12 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:76:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");\n                                               ^")));
   }
   {
     self::A<core::int, core::int> a0 = new self::C::•<core::int>(3);
     self::A<core::int, core::int> a1 = new self::C::named<core::int>(3);
     self::A<core::int, core::int> a2 = new self::C::•<core::int>(3);
     self::A<core::int, core::int> a3 = new self::C::named<core::int>(3);
-    self::A<core::int, core::int> a4 = let final dynamic #t11 = new self::C::•<dynamic>(3) in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:83:55: Error: A value of type 'test::C<dynamic>' can't be assigned to a variable of type 'test::A<dart.core::int, dart.core::int>'.\nTry changing the type of the left hand side, or casting the right hand side to 'test::A<dart.core::int, dart.core::int>'.\n    A<int, int> a4 = /*error:INVALID_ASSIGNMENT*/ new C<dynamic>(3);\n                                                      ^"));
-    self::A<core::int, core::int> a5 = let final dynamic #t12 = new self::C::named<dynamic>(3) in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:84:55: Error: A value of type 'test::C<dynamic>' can't be assigned to a variable of type 'test::A<dart.core::int, dart.core::int>'.\nTry changing the type of the left hand side, or casting the right hand side to 'test::A<dart.core::int, dart.core::int>'.\n    A<int, int> a5 = /*error:INVALID_ASSIGNMENT*/ new C<dynamic>.named(3);\n                                                      ^"));
+    self::A<core::int, core::int> a4 = let final dynamic #t13 = new self::C::•<dynamic>(3) in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:83:55: Error: A value of type 'test::C<dynamic>' can't be assigned to a variable of type 'test::A<dart.core::int, dart.core::int>'.\nTry changing the type of the left hand side, or casting the right hand side to 'test::A<dart.core::int, dart.core::int>'.\n    A<int, int> a4 = /*error:INVALID_ASSIGNMENT*/ new C<dynamic>(3);\n                                                      ^"));
+    self::A<core::int, core::int> a5 = let final dynamic #t14 = new self::C::named<dynamic>(3) in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:84:55: Error: A value of type 'test::C<dynamic>' can't be assigned to a variable of type 'test::A<dart.core::int, dart.core::int>'.\nTry changing the type of the left hand side, or casting the right hand side to 'test::A<dart.core::int, dart.core::int>'.\n    A<int, int> a5 = /*error:INVALID_ASSIGNMENT*/ new C<dynamic>.named(3);\n                                                      ^"));
   }
   {
-    self::A<core::int, core::int> a0 = new self::C::•<core::int>(let final dynamic #t13 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:88:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");\n                                               ^")));
-    self::A<core::int, core::int> a1 = new self::C::named<core::int>(let final dynamic #t14 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:90:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");\n                                               ^")));
+    self::A<core::int, core::int> a0 = new self::C::•<core::int>(let final dynamic #t15 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:88:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");\n                                               ^")));
+    self::A<core::int, core::int> a1 = new self::C::named<core::int>(let final dynamic #t16 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:90:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");\n                                               ^")));
   }
   {
     self::A<core::int, core::String> a0 = new self::D::•<dynamic, core::String>("hello");
     self::A<core::int, core::String> a1 = new self::D::named<dynamic, core::String>("hello");
     self::A<core::int, core::String> a2 = new self::D::•<core::int, core::String>("hello");
     self::A<core::int, core::String> a3 = new self::D::named<core::String, core::String>("hello");
-    self::A<core::int, core::String> a4 = let final dynamic #t15 = new self::D::•<core::num, dynamic>("hello") in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:98:47: Error: A value of type 'test::D<dart.core::num, dynamic>' can't be assigned to a variable of type 'test::A<dart.core::int, dart.core::String>'.\nTry changing the type of the left hand side, or casting the right hand side to 'test::A<dart.core::int, dart.core::String>'.\n        a4 = /*error:INVALID_ASSIGNMENT*/ new D<num, dynamic>(\"hello\");\n                                              ^"));
-    self::A<core::int, core::String> a5 = let final dynamic #t16 = new self::D::named<dynamic, dynamic>("hello") in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:100:47: Error: A value of type 'test::D<dynamic, dynamic>' can't be assigned to a variable of type 'test::A<dart.core::int, dart.core::String>'.\nTry changing the type of the left hand side, or casting the right hand side to 'test::A<dart.core::int, dart.core::String>'.\n        a5 = /*error:INVALID_ASSIGNMENT*/ new D<dynamic, dynamic>.named(\n                                              ^"));
+    self::A<core::int, core::String> a4 = let final dynamic #t17 = new self::D::•<core::num, dynamic>("hello") in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:98:47: Error: A value of type 'test::D<dart.core::num, dynamic>' can't be assigned to a variable of type 'test::A<dart.core::int, dart.core::String>'.\nTry changing the type of the left hand side, or casting the right hand side to 'test::A<dart.core::int, dart.core::String>'.\n        a4 = /*error:INVALID_ASSIGNMENT*/ new D<num, dynamic>(\"hello\");\n                                              ^"));
+    self::A<core::int, core::String> a5 = let final dynamic #t18 = new self::D::named<dynamic, dynamic>("hello") in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:100:47: Error: A value of type 'test::D<dynamic, dynamic>' can't be assigned to a variable of type 'test::A<dart.core::int, dart.core::String>'.\nTry changing the type of the left hand side, or casting the right hand side to 'test::A<dart.core::int, dart.core::String>'.\n        a5 = /*error:INVALID_ASSIGNMENT*/ new D<dynamic, dynamic>.named(\n                                              ^"));
   }
   {
-    self::A<core::int, core::String> a0 = new self::D::•<dynamic, core::String>(let final dynamic #t17 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:105:48: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);\n                                               ^")));
-    self::A<core::int, core::String> a1 = new self::D::named<dynamic, core::String>(let final dynamic #t18 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:107:48: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);\n                                               ^")));
+    self::A<core::int, core::String> a0 = new self::D::•<dynamic, core::String>(let final dynamic #t19 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:105:48: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);\n                                               ^")));
+    self::A<core::int, core::String> a1 = new self::D::named<dynamic, core::String>(let final dynamic #t20 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:107:48: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);\n                                               ^")));
   }
   {
     self::A<self::C<core::int>, core::String> a0 = new self::E::•<core::int, core::String>("hello");
   }
   {
     self::A<core::int, core::String> a0 = new self::F::•<core::int, core::String>(3, "hello", a: <core::int>[3], b: <core::String>["hello"]);
-    self::A<core::int, core::String> a1 = new self::F::•<core::int, core::String>(3, "hello", a: <core::int>[let final dynamic #t19 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:118:54: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n          /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"\n                                                     ^"))], b: <core::String>[let final dynamic #t20 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:121:54: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n          /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3\n                                                     ^"))]);
+    self::A<core::int, core::String> a1 = new self::F::•<core::int, core::String>(3, "hello", a: <core::int>[let final dynamic #t21 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:118:54: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n          /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"\n                                                     ^"))], b: <core::String>[let final dynamic #t22 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:121:54: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n          /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3\n                                                     ^"))]);
     self::A<core::int, core::String> a2 = new self::F::named<core::int, core::String>(3, "hello", 3, "hello");
     self::A<core::int, core::String> a3 = new self::F::named<core::int, core::String>(3, "hello");
-    self::A<core::int, core::String> a4 = new self::F::named<core::int, core::String>(3, "hello", let final dynamic #t21 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:129:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",\n                                               ^")), let final dynamic #t22 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:130:48: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);\n                                               ^")));
-    self::A<core::int, core::String> a5 = new self::F::named<core::int, core::String>(3, "hello", let final dynamic #t23 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:134:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");\n                                               ^")));
+    self::A<core::int, core::String> a4 = new self::F::named<core::int, core::String>(3, "hello", let final dynamic #t23 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:129:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",\n                                               ^")), let final dynamic #t24 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:130:48: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);\n                                               ^")));
+    self::A<core::int, core::String> a5 = new self::F::named<core::int, core::String>(3, "hello", let final dynamic #t25 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:134:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n        /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");\n                                               ^")));
   }
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart.strong.expect b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart.strong.expect
index e50be8b..c9f07bb 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart.strong.expect
@@ -17,21 +17,21 @@
     core::List<dynamic> l3 = <dynamic>["hello", 3];
   }
   {
-    core::List<core::int> l0 = <core::num>[] as{TypeError} core::List<core::int>;
-    core::List<core::int> l1 = <core::num>[3] as{TypeError} core::List<core::int>;
-    core::List<core::int> l2 = <core::num>[let final dynamic #t4 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:36:50: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::num'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::num'.\n      /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"\n                                                 ^"))] as{TypeError} core::List<core::int>;
-    core::List<core::int> l3 = <core::num>[let final dynamic #t5 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:39:50: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::num'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::num'.\n      /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",\n                                                 ^")), 3] as{TypeError} core::List<core::int>;
+    core::List<core::int> l0 = let final dynamic #t4 = <core::num>[] in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:33:61: Error: The list literal type 'dart.core::List<dart.core::num>' isn't of expected type 'dart.core::List<dart.core::int>'.\nChange the type of the list literal or the context in which it is used.\n    List<int> l0 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[];\n                                                            ^"));
+    core::List<core::int> l1 = let final dynamic #t5 = <core::num>[3] in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:34:61: Error: The list literal type 'dart.core::List<dart.core::num>' isn't of expected type 'dart.core::List<dart.core::int>'.\nChange the type of the list literal or the context in which it is used.\n    List<int> l1 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[3];\n                                                            ^"));
+    core::List<core::int> l2 = let final dynamic #t6 = <core::num>[let final dynamic #t7 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:36:50: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::num'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::num'.\n      /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"\n                                                 ^"))] in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:35:61: Error: The list literal type 'dart.core::List<dart.core::num>' isn't of expected type 'dart.core::List<dart.core::int>'.\nChange the type of the list literal or the context in which it is used.\n    List<int> l2 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[\n                                                            ^"));
+    core::List<core::int> l3 = let final dynamic #t8 = <core::num>[let final dynamic #t9 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:39:50: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::num'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::num'.\n      /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",\n                                                 ^")), 3] in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:38:61: Error: The list literal type 'dart.core::List<dart.core::num>' isn't of expected type 'dart.core::List<dart.core::int>'.\nChange the type of the list literal or the context in which it is used.\n    List<int> l3 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[\n                                                            ^"));
   }
   {
     core::Iterable<core::int> i0 = <core::int>[];
     core::Iterable<core::int> i1 = <core::int>[3];
-    core::Iterable<core::int> i2 = <core::int>[let final dynamic #t6 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:47:50: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n      /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"\n                                                 ^"))];
-    core::Iterable<core::int> i3 = <core::int>[let final dynamic #t7 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:50:50: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n      /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",\n                                                 ^")), 3];
+    core::Iterable<core::int> i2 = <core::int>[let final dynamic #t10 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:47:50: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n      /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"\n                                                 ^"))];
+    core::Iterable<core::int> i3 = <core::int>[let final dynamic #t11 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:50:50: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n      /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",\n                                                 ^")), 3];
   }
   {
     const core::List<core::int> c0 = const <core::int>[];
     const core::List<core::int> c1 = const <core::int>[3];
-    const core::List<core::int> c2 = const <core::int>[let final dynamic #t8 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:58:89: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n      /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"\n                                                                                        ^"))];
-    const core::List<core::int> c3 = const <core::int>[let final dynamic #t9 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:61:89: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n      /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",\n                                                                                        ^")), 3];
+    const core::List<core::int> c2 = const <core::int>[let final dynamic #t12 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:58:89: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n      /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"\n                                                                                        ^"))];
+    const core::List<core::int> c3 = const <core::int>[let final dynamic #t13 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:61:89: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n      /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",\n                                                                                        ^")), 3];
   }
 }
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart.strong.expect b/pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart.strong.expect
index d7c8d42..fd577a7 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart.strong.expect
@@ -33,16 +33,16 @@
     core::Map<core::int, dynamic> l4 = <core::int, dynamic>{3: "hello", let final dynamic #t9 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:64:45: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n      /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\": 3\n                                            ^")): 3};
   }
   {
-    core::Map<core::int, core::String> l0 = <core::num, dynamic>{} as{TypeError} core::Map<core::int, core::String>;
-    core::Map<core::int, core::String> l1 = <core::num, dynamic>{3: "hello"} as{TypeError} core::Map<core::int, core::String>;
-    core::Map<core::int, core::String> l3 = <core::num, dynamic>{3: 3} as{TypeError} core::Map<core::int, core::String>;
+    core::Map<core::int, core::String> l0 = let final dynamic #t10 = <core::num, dynamic>{} in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:68:76: Error: The map literal type 'dart.core::Map<dart.core::num, dynamic>' isn't of expected type 'dart.core::Map<dart.core::int, dart.core::String>'.\nChange the type of the map literal or the context in which it is used.\n    Map<int, String> l0 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{};\n                                                                           ^"));
+    core::Map<core::int, core::String> l1 = let final dynamic #t11 = <core::num, dynamic>{3: "hello"} in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:69:76: Error: The map literal type 'dart.core::Map<dart.core::num, dynamic>' isn't of expected type 'dart.core::Map<dart.core::int, dart.core::String>'.\nChange the type of the map literal or the context in which it is used.\n    Map<int, String> l1 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{\n                                                                           ^"));
+    core::Map<core::int, core::String> l3 = let final dynamic #t12 = <core::num, dynamic>{3: 3} in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:72:76: Error: The map literal type 'dart.core::Map<dart.core::num, dynamic>' isn't of expected type 'dart.core::Map<dart.core::int, dart.core::String>'.\nChange the type of the map literal or the context in which it is used.\n    Map<int, String> l3 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{\n                                                                           ^"));
   }
   {
     const core::Map<core::int, core::String> l0 = const <core::int, core::String>{};
     const core::Map<core::int, core::String> l1 = const <core::int, core::String>{3: "hello"};
-    const core::Map<core::int, core::String> l2 = const <core::int, core::String>{let final dynamic #t10 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:80:79: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n      /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":\n                                                                              ^")): "hello"};
-    const core::Map<core::int, core::String> l3 = const <core::int, core::String>{3: let final dynamic #t11 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:84:86: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n      3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3\n                                                                                     ^"))};
-    const core::Map<core::int, core::String> l4 = const <core::int, core::String>{3: "hello", let final dynamic #t12 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:88:79: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n      /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":\n                                                                              ^")): let final dynamic #t13 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:89:87: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n          /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3\n                                                                                      ^"))};
+    const core::Map<core::int, core::String> l2 = const <core::int, core::String>{let final dynamic #t13 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:80:79: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n      /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":\n                                                                              ^")): "hello"};
+    const core::Map<core::int, core::String> l3 = const <core::int, core::String>{3: let final dynamic #t14 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:84:86: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n      3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3\n                                                                                     ^"))};
+    const core::Map<core::int, core::String> l4 = const <core::int, core::String>{3: "hello", let final dynamic #t15 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:88:79: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n      /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":\n                                                                              ^")): let final dynamic #t16 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:89:87: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n          /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3\n                                                                                      ^"))};
   }
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional.dart b/pkg/front_end/testcases/inference/future_then_conditional.dart
index 5af8eb1..84451ed 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional.dart
+++ b/pkg/front_end/testcases/inference/future_then_conditional.dart
@@ -25,7 +25,7 @@
   });
   Future<int> t5 = f. /*@typeArgs=int*/ /*@target=MyFuture::then*/ then(
       /*error:INVALID_CAST_FUNCTION_EXPR*/
-      /*@returnType=Object*/ (/*@type=bool*/ x) =>
+      /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) =>
           x ? 2 : new Future<int>.value(3));
   Future<int> t6 = f. /*@typeArgs=int*/ /*@target=MyFuture::then*/ then(
       /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) {
diff --git a/pkg/front_end/testcases/inference/future_then_conditional.dart.strong.expect b/pkg/front_end/testcases/inference/future_then_conditional.dart.strong.expect
index c4ae910..b5a4ef4 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional.dart.strong.expect
@@ -18,7 +18,7 @@
   asy::Future<core::int> t2 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async {
     return (await x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>;
   });
-  asy::Future<core::int> t5 = f.{self::MyFuture::then}<core::int>(((core::bool x) → core::Object => x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError} (core::bool) → asy::FutureOr<core::int>);
+  asy::Future<core::int> t5 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::FutureOr<core::int> => (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>);
   asy::Future<core::int> t6 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::FutureOr<core::int> {
     return (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>;
   });
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_2.dart b/pkg/front_end/testcases/inference/future_then_conditional_2.dart
index 0728849..2dcdf3f 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_2.dart
+++ b/pkg/front_end/testcases/inference/future_then_conditional_2.dart
@@ -27,7 +27,7 @@
   });
   Future<int> t5 = f. /*@typeArgs=int*/ /*@target=MyFuture::then*/ then(
       /*info:INFERRED_TYPE_CLOSURE,error:INVALID_CAST_FUNCTION_EXPR*/
-      /*@returnType=Object*/ (/*@type=bool*/ x) =>
+      /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) =>
           x ? 2 : new MyFuture<int>.value(3));
   Future<int> t6 = f. /*@typeArgs=int*/ /*@target=MyFuture::then*/ then(
       /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) {
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_2.dart.strong.expect b/pkg/front_end/testcases/inference/future_then_conditional_2.dart.strong.expect
index e0055d5..213e538a 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_2.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_2.dart.strong.expect
@@ -18,7 +18,7 @@
   asy::Future<core::int> t2 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async {
     return (await x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>;
   });
-  asy::Future<core::int> t5 = f.{self::MyFuture::then}<core::int>(((core::bool x) → core::Object => x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError} (core::bool) → asy::FutureOr<core::int>);
+  asy::Future<core::int> t5 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::FutureOr<core::int> => (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>);
   asy::Future<core::int> t6 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::FutureOr<core::int> {
     return (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>;
   });
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_3.dart b/pkg/front_end/testcases/inference/future_then_conditional_3.dart
index 694d8a9..f06ef6b 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_3.dart
+++ b/pkg/front_end/testcases/inference/future_then_conditional_3.dart
@@ -25,7 +25,7 @@
   });
   MyFuture<int> t5 = f. /*@typeArgs=int*/ /*@target=MyFuture::then*/ then(
       /*info:INFERRED_TYPE_CLOSURE,error:INVALID_CAST_FUNCTION_EXPR*/
-      /*@returnType=Object*/ (/*@type=bool*/ x) =>
+      /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) =>
           x ? 2 : new Future<int>.value(3));
   MyFuture<int> t6 = f. /*@typeArgs=int*/ /*@target=MyFuture::then*/ then(
       /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) {
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_3.dart.strong.expect b/pkg/front_end/testcases/inference/future_then_conditional_3.dart.strong.expect
index 1fb9e8e..95d159a 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_3.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_3.dart.strong.expect
@@ -18,7 +18,7 @@
   self::MyFuture<core::int> t2 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async {
     return (await x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>;
   });
-  self::MyFuture<core::int> t5 = f.{self::MyFuture::then}<core::int>(((core::bool x) → core::Object => x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError} (core::bool) → asy::FutureOr<core::int>);
+  self::MyFuture<core::int> t5 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::FutureOr<core::int> => (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>);
   self::MyFuture<core::int> t6 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::FutureOr<core::int> {
     return (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>;
   });
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_4.dart b/pkg/front_end/testcases/inference/future_then_conditional_4.dart
index 67a980f..8049974 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_4.dart
+++ b/pkg/front_end/testcases/inference/future_then_conditional_4.dart
@@ -27,7 +27,7 @@
   });
   MyFuture<int> t5 = f. /*@typeArgs=int*/ /*@target=MyFuture::then*/ then(
       /*info:INFERRED_TYPE_CLOSURE,error:INVALID_CAST_FUNCTION_EXPR*/
-      /*@returnType=Object*/ (/*@type=bool*/ x) =>
+      /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) =>
           x ? 2 : new MyFuture<int>.value(3));
   MyFuture<int> t6 = f. /*@typeArgs=int*/ /*@target=MyFuture::then*/ then(
       /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) {
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_4.dart.strong.expect b/pkg/front_end/testcases/inference/future_then_conditional_4.dart.strong.expect
index 4eb9386..d84c298 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_4.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_4.dart.strong.expect
@@ -18,7 +18,7 @@
   self::MyFuture<core::int> t2 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async {
     return (await x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>;
   });
-  self::MyFuture<core::int> t5 = f.{self::MyFuture::then}<core::int>(((core::bool x) → core::Object => x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError} (core::bool) → asy::FutureOr<core::int>);
+  self::MyFuture<core::int> t5 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::FutureOr<core::int> => (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>);
   self::MyFuture<core::int> t6 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::FutureOr<core::int> {
     return (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>;
   });
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_5.dart b/pkg/front_end/testcases/inference/future_then_conditional_5.dart
index 0c4604e..4660443 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_5.dart
+++ b/pkg/front_end/testcases/inference/future_then_conditional_5.dart
@@ -27,7 +27,7 @@
   });
   Future<int> t5 = f. /*@typeArgs=int*/ /*@target=Future::then*/ then(
       /*info:INFERRED_TYPE_CLOSURE,error:INVALID_CAST_FUNCTION_EXPR*/
-      /*@returnType=Object*/ (/*@type=bool*/ x) =>
+      /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) =>
           x ? 2 : new MyFuture<int>.value(3));
   Future<int> t6 = f. /*@typeArgs=int*/ /*@target=Future::then*/ then(
       /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) {
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_5.dart.strong.expect b/pkg/front_end/testcases/inference/future_then_conditional_5.dart.strong.expect
index 3c15bac..d010e60 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_5.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_5.dart.strong.expect
@@ -18,7 +18,7 @@
   asy::Future<core::int> t2 = f.{asy::Future::then}<core::int>((core::bool x) → asy::Future<core::int> async {
     return (await x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>;
   });
-  asy::Future<core::int> t5 = f.{asy::Future::then}<core::int>(((core::bool x) → core::Object => x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError} (core::bool) → asy::FutureOr<core::int>);
+  asy::Future<core::int> t5 = f.{asy::Future::then}<core::int>((core::bool x) → asy::FutureOr<core::int> => (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>);
   asy::Future<core::int> t6 = f.{asy::Future::then}<core::int>((core::bool x) → asy::FutureOr<core::int> {
     return (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>;
   });
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_6.dart b/pkg/front_end/testcases/inference/future_then_conditional_6.dart
index 9b8b4f9..e843c57 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_6.dart
+++ b/pkg/front_end/testcases/inference/future_then_conditional_6.dart
@@ -25,7 +25,7 @@
   });
   Future<int> t5 = f. /*@typeArgs=int*/ /*@target=Future::then*/ then(
       /*info:INFERRED_TYPE_CLOSURE,error:INVALID_CAST_FUNCTION_EXPR*/
-      /*@returnType=Object*/ (/*@type=bool*/ x) =>
+      /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) =>
           x ? 2 : new Future<int>.value(3));
   Future<int> t6 = f. /*@typeArgs=int*/ /*@target=Future::then*/ then(
       /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) {
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_6.dart.strong.expect b/pkg/front_end/testcases/inference/future_then_conditional_6.dart.strong.expect
index 0cdcb94..eb9edd0 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_6.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_6.dart.strong.expect
@@ -18,7 +18,7 @@
   asy::Future<core::int> t2 = f.{asy::Future::then}<core::int>((core::bool x) → asy::Future<core::int> async {
     return (await x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>;
   });
-  asy::Future<core::int> t5 = f.{asy::Future::then}<core::int>(((core::bool x) → core::Object => x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError} (core::bool) → asy::FutureOr<core::int>);
+  asy::Future<core::int> t5 = f.{asy::Future::then}<core::int>((core::bool x) → asy::FutureOr<core::int> => (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>);
   asy::Future<core::int> t6 = f.{asy::Future::then}<core::int>((core::bool x) → asy::FutureOr<core::int> {
     return (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>;
   });
diff --git a/pkg/front_end/testcases/inference/future_then_ifNull.dart b/pkg/front_end/testcases/inference/future_then_ifNull.dart
index 9e2d931..f79997e 100644
--- a/pkg/front_end/testcases/inference/future_then_ifNull.dart
+++ b/pkg/front_end/testcases/inference/future_then_ifNull.dart
@@ -25,7 +25,7 @@
   });
   Future<int> t5 = f. /*@typeArgs=int*/ /*@target=MyFuture::then*/ then(
       /*error:INVALID_CAST_FUNCTION_EXPR*/
-      /*@returnType=Object*/ (/*@type=int*/ x) =>
+      /*@returnType=FutureOr<int>*/ (/*@type=int*/ x) =>
           x ?? new Future<int>.value(3));
   Future<int> t6 = f. /*@typeArgs=int*/ /*@target=MyFuture::then*/ then(
       /*@returnType=FutureOr<int>*/ (/*@type=int*/ x) {
diff --git a/pkg/front_end/testcases/inference/future_then_ifNull.dart.strong.expect b/pkg/front_end/testcases/inference/future_then_ifNull.dart.strong.expect
index 05c6a6b..636b65e 100644
--- a/pkg/front_end/testcases/inference/future_then_ifNull.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/future_then_ifNull.dart.strong.expect
@@ -18,7 +18,7 @@
   asy::Future<core::int> t2 = f.{self::MyFuture::then}<core::int>((core::int x) → asy::Future<core::int> async {
     return (let final core::int #t2 = await x in #t2.==(null) ?{core::Object} asy::Future::value<core::int>(3) : #t2) as{TypeError} asy::FutureOr<core::int>;
   });
-  asy::Future<core::int> t5 = f.{self::MyFuture::then}<core::int>(((core::int x) → core::Object => let final core::int #t3 = x in #t3.==(null) ?{core::Object} asy::Future::value<core::int>(3) : #t3) as{TypeError} (core::int) → asy::FutureOr<core::int>);
+  asy::Future<core::int> t5 = f.{self::MyFuture::then}<core::int>((core::int x) → asy::FutureOr<core::int> => (let final core::int #t3 = x in #t3.==(null) ?{core::Object} asy::Future::value<core::int>(3) : #t3) as{TypeError} asy::FutureOr<core::int>);
   asy::Future<core::int> t6 = f.{self::MyFuture::then}<core::int>((core::int x) → asy::FutureOr<core::int> {
     return (let final core::int #t4 = x in #t4.==(null) ?{core::Object} asy::Future::value<core::int>(3) : #t4) as{TypeError} asy::FutureOr<core::int>;
   });
diff --git a/pkg/front_end/testcases/inference/generic_methods_inference_error.dart b/pkg/front_end/testcases/inference/generic_methods_inference_error.dart
index 7973dbe..8f45010 100644
--- a/pkg/front_end/testcases/inference/generic_methods_inference_error.dart
+++ b/pkg/front_end/testcases/inference/generic_methods_inference_error.dart
@@ -8,7 +8,7 @@
 void f() {
   List<String> y;
   Iterable<String> x = y. /*@typeArgs=String*/ /*@target=Iterable::map*/ map(
-      /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ /*@returnType=double*/ (String
+      /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ /*@returnType=String*/ (String
               z) =>
           1.0);
 }
diff --git a/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.strong.expect b/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.strong.expect
index e15d852..9fc45f4 100644
--- a/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.strong.expect
@@ -4,6 +4,6 @@
 
 static method f() → void {
   core::List<core::String> y;
-  core::Iterable<core::String> x = y.{core::Iterable::map}<core::String>(let final dynamic #t1 = (core::String z) → core::double => 1.0 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/generic_methods_inference_error.dart:11:69: Error: A value of type '(dart.core::String) \u8594 dart.core::double' can't be assigned to a variable of type '(dart.core::String) \u8594 dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to '(dart.core::String) \u8594 dart.core::String'.\n      /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ /*@returnType=double*/ (String\n                                                                    ^")));
+  core::Iterable<core::String> x = y.{core::Iterable::map}<core::String>((core::String z) → core::String => let final dynamic #t1 = 1.0 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/generic_methods_inference_error.dart:13:11: Error: A value of type 'dart.core::double' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n          1.0);\n          ^")));
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.strong.expect b/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.strong.expect
index 954645b..6ca1c45 100644
--- a/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.strong.expect
@@ -8,7 +8,7 @@
 static method test() → dynamic {
   core::Iterable<asy::Future<core::int>> list = <core::int>[1, 2, 3].{core::Iterable::map}<asy::Future<core::int>>(self::make);
   asy::Future<core::List<core::int>> results = asy::Future::wait<core::int>(list);
-  asy::Future<core::String> results2 = results.{asy::Future::then}<core::String>((core::List<core::int> list) → asy::FutureOr<core::String> => list.{core::Iterable::fold}<asy::FutureOr<core::String>>("", (asy::FutureOr<core::String> x, core::int y) → asy::FutureOr<core::String> => let final dynamic #t1 = x in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:23:120: Error: The method '+' isn't defined for the class 'dart.async::FutureOr<dart.core::String>'.\nTry correcting the name to the name of an existing method, or defining a method named '+'.\n                          /*@type=int*/ y) => /*info:DYNAMIC_CAST,info:DYNAMIC_INVOKE*/ x /*error:UNDEFINED_OPERATOR*/ +\n                                                                                                                       ^"))));
+  asy::Future<core::String> results2 = results.{asy::Future::then}<core::String>((core::List<core::int> list) → asy::FutureOr<core::String> => list.{core::Iterable::fold}<asy::FutureOr<core::String>>("", (asy::FutureOr<core::String> x, core::int y) → asy::FutureOr<core::String> => (let final dynamic #t1 = x in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:23:120: Error: The method '+' isn't defined for the class 'dart.async::FutureOr<dart.core::String>'.\nTry correcting the name to the name of an existing method, or defining a method named '+'.\n                          /*@type=int*/ y) => /*info:DYNAMIC_CAST,info:DYNAMIC_INVOKE*/ x /*error:UNDEFINED_OPERATOR*/ +\n                                                                                                                       ^"))) as{TypeError} asy::FutureOr<core::String>));
   asy::Future<core::String> results3 = results.{asy::Future::then}<core::String>((core::List<core::int> list) → asy::FutureOr<core::String> => list.{core::Iterable::fold}<asy::FutureOr<core::String>>("", let final dynamic #t2 = (core::String x, core::int y) → core::String => x.{core::String::+}(y.{core::int::toString}()) in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:31:108: Error: A value of type '(dart.core::String, dart.core::int) \u8594 dart.core::String' can't be assigned to a variable of type '(dart.async::FutureOr<dart.core::String>, dart.core::int) \u8594 dart.async::FutureOr<dart.core::String>'.\nTry changing the type of the left hand side, or casting the right hand side to '(dart.async::FutureOr<dart.core::String>, dart.core::int) \u8594 dart.async::FutureOr<dart.core::String>'.\n                  /*info:INFERRED_TYPE_CLOSURE,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ /*@returnType=String*/ (String\n                                                                                                           ^"))));
   asy::Future<core::String> results4 = results.{asy::Future::then}<core::String>((core::List<core::int> list) → core::String => list.{core::Iterable::fold}<core::String>("", (core::String x, core::int y) → core::String => x.{core::String::+}(y.{core::int::toString}())));
 }
diff --git a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart
index 3f89def..a7235c9 100644
--- a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart
+++ b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart
@@ -12,6 +12,6 @@
 
 main() {
   var /*@type=(num) -> List<int>*/ v = /*@typeArgs=(num) -> List<int>*/ generic(
-      /*@returnType=dynamic*/ (F f) => null,
-      /*@returnType=dynamic*/ (G g) => null);
+      /*@returnType=Null*/ (F f) => null,
+      /*@returnType=Null*/ (G g) => null);
 }
diff --git a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.strong.expect b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.strong.expect
index 0869057..0aafd64 100644
--- a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.strong.expect
@@ -7,5 +7,5 @@
 static method generic<T extends core::Object>((self::generic::T) → dynamic a, (self::generic::T) → dynamic b) → self::generic::T
   return null;
 static method main() → dynamic {
-  (core::num) → core::List<core::int> v = self::generic<(core::num) → core::List<core::int>>(((core::int) → core::Iterable<core::num> f) → dynamic => null, ((core::double) → core::List<core::int> g) → dynamic => null);
+  (core::num) → core::List<core::int> v = self::generic<(core::num) → core::List<core::int>>(((core::int) → core::Iterable<core::num> f) → core::Null => null, ((core::double) → core::List<core::int> g) → core::Null => null);
 }
diff --git a/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart
new file mode 100644
index 0000000..57583aa
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart
@@ -0,0 +1,21 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/*@testedFeatures=inference*/
+library test;
+
+class A {
+  void set x(int i) {}
+}
+
+class B extends A {
+  // The setter return type should be inferred, but the setter parameter type
+  // should not.
+  set /*@topType=void*/ x(Object o) {}
+}
+
+main() {
+  // Ok because the setter accepts `Object`.
+  new B(). /*@target=B::x*/ x = "hello";
+}
diff --git a/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.direct.expect b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.direct.expect
new file mode 100644
index 0000000..63ea26b
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.direct.expect
@@ -0,0 +1,19 @@
+library test;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+  default constructor •() → void
+    : super core::Object::•()
+    ;
+  set x(core::int i) → void {}
+}
+class B extends self::A {
+  default constructor •() → void
+    : super self::A::•()
+    ;
+  set x(core::Object o) → dynamic {}
+}
+static method main() → dynamic {
+  new self::B::•().x = "hello";
+}
diff --git a/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.outline.expect b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.outline.expect
new file mode 100644
index 0000000..049eada
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.outline.expect
@@ -0,0 +1,18 @@
+library test;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+  default constructor •() → void
+    ;
+  set x(core::int i) → void
+    ;
+}
+class B extends self::A {
+  default constructor •() → void
+    ;
+  set x(core::Object o) → dynamic
+    ;
+}
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.strong.expect b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.strong.expect
new file mode 100644
index 0000000..69b7ca7
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.strong.expect
@@ -0,0 +1,19 @@
+library test;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+  default constructor •() → void
+    : super core::Object::•()
+    ;
+  set x(core::int i) → void {}
+}
+class B extends self::A {
+  default constructor •() → void
+    : super self::A::•()
+    ;
+  set x(core::Object o) → void {}
+}
+static method main() → dynamic {
+  new self::B::•().{self::B::x} = "hello";
+}
diff --git a/pkg/front_end/testcases/inference/lambda_return_type.dart b/pkg/front_end/testcases/inference/lambda_return_type.dart
index 31f5e5e..020059b 100644
--- a/pkg/front_end/testcases/inference/lambda_return_type.dart
+++ b/pkg/front_end/testcases/inference/lambda_return_type.dart
@@ -11,7 +11,7 @@
   int i = 1;
   Object o = 1;
   FunctionReturningNum a = /*@returnType=int*/ () => i;
-  FunctionReturningNum b = /*@returnType=Object*/ () => o;
+  FunctionReturningNum b = /*@returnType=num*/ () => o;
   FunctionReturningNum c = /*@returnType=int*/ () {
     return i;
   };
diff --git a/pkg/front_end/testcases/inference/lambda_return_type.dart.strong.expect b/pkg/front_end/testcases/inference/lambda_return_type.dart.strong.expect
index 3863359..ffcd819 100644
--- a/pkg/front_end/testcases/inference/lambda_return_type.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/lambda_return_type.dart.strong.expect
@@ -7,7 +7,7 @@
   core::int i = 1;
   core::Object o = 1;
   () → core::num a = () → core::int => i;
-  () → core::num b = (() → core::Object => o) as{TypeError} () → core::num;
+  () → core::num b = () → core::num => o as{TypeError} core::num;
   () → core::num c = () → core::int {
     return i;
   };
diff --git a/pkg/front_end/testcases/inference/lambda_void_context.dart b/pkg/front_end/testcases/inference/lambda_void_context.dart
index cf6ddfc..27bcadf 100644
--- a/pkg/front_end/testcases/inference/lambda_void_context.dart
+++ b/pkg/front_end/testcases/inference/lambda_void_context.dart
@@ -8,7 +8,7 @@
 f() {
   List<int> o;
   o. /*@target=Iterable::forEach*/ forEach(
-      /*@returnType=int*/ (/*@type=int*/ i) => i /*@target=num::+*/ + 1);
+      /*@returnType=void*/ (/*@type=int*/ i) => i /*@target=num::+*/ + 1);
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/inference/lambda_void_context.dart.strong.expect b/pkg/front_end/testcases/inference/lambda_void_context.dart.strong.expect
index 13abe3f..f46ab7c 100644
--- a/pkg/front_end/testcases/inference/lambda_void_context.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/lambda_void_context.dart.strong.expect
@@ -4,6 +4,6 @@
 
 static method f() → dynamic {
   core::List<core::int> o;
-  o.{core::Iterable::forEach}((core::int i) → core::int => i.{core::num::+}(1));
+  o.{core::Iterable::forEach}((core::int i) → void => i.{core::num::+}(1));
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart
index 27b6645..65e1bda 100644
--- a/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart
+++ b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart
@@ -9,11 +9,10 @@
 void foo(int f(Object _)) {}
 
 test() {
-  var /*@type=(Object) -> dynamic*/ f = /*@returnType=dynamic*/ (Object x) =>
-      null;
+  var /*@type=(Object) -> Null*/ f = /*@returnType=Null*/ (Object x) => null;
   String y = /*info:DYNAMIC_CAST*/ f(42);
 
-  f = /*@returnType=String*/ (/*@type=Object*/ x) => 'hello';
+  f = /*@returnType=Null*/ (/*@type=Object*/ x) => 'hello';
 
   var /*@type=dynamic*/ g = null;
   g = 'hello';
@@ -22,7 +21,7 @@
   h = 'hello';
   (/*info:DYNAMIC_INVOKE*/ h.foo());
 
-  foo(/*@returnType=int*/ (/*@type=Object*/ x) => null);
+  foo(/*@returnType=Null*/ (/*@type=Object*/ x) => null);
   foo(/*@returnType=<BottomType>*/ (/*@type=Object*/ x) =>
       throw "not implemented");
 }
diff --git a/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart.strong.expect b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart.strong.expect
index 249d337d..00a18ed 100644
--- a/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart.strong.expect
@@ -5,15 +5,15 @@
 static field dynamic h = null;
 static method foo((core::Object) → core::int f) → void {}
 static method test() → dynamic {
-  (core::Object) → dynamic f = (core::Object x) → dynamic => null;
-  core::String y = f.call(42) as{TypeError} core::String;
-  f = (core::Object x) → core::String => "hello";
+  (core::Object) → core::Null f = (core::Object x) → core::Null => null;
+  core::String y = f.call(42);
+  f = (core::Object x) → core::Null => "hello" as{TypeError} core::Null;
   dynamic g = null;
   g = "hello";
   g.foo();
   self::h = "hello";
   self::h.foo();
-  self::foo((core::Object x) → core::int => null);
+  self::foo((core::Object x) → core::Null => null);
   self::foo((core::Object x) → <BottomType>=> throw "not implemented");
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/invalid_cast.dart b/pkg/front_end/testcases/invalid_cast.dart
new file mode 100644
index 0000000..9baaf86
--- /dev/null
+++ b/pkg/front_end/testcases/invalid_cast.dart
@@ -0,0 +1,52 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/*@testedFeatures=error*/
+
+class C {
+  C();
+  factory C.fact() => null;
+  factory C.fact2() = D;
+  C.nonFact();
+  C.nonFact2() : this.nonFact();
+  static void staticFunction(int i) {}
+}
+
+class D extends C {}
+
+void topLevelFunction(int i) {}
+
+bad() {
+  void localFunction(int i) {}
+  List<int> a = <Object> /*@error=InvalidCastLiteralList*/ [];
+  Map<int, String> b = <Object, String> /*@error=InvalidCastLiteralMap*/ {};
+  Map<int, String> c = <int, Object> /*@error=InvalidCastLiteralMap*/ {};
+  int Function(Object) d = /*@error=InvalidCastFunctionExpr*/ (int i) => i;
+  D e = new C.fact();
+  D f = new C.fact2();
+  D g = new /*@error=InvalidCastNewExpr*/ C.nonFact();
+  D h = new /*@error=InvalidCastNewExpr*/ C.nonFact2();
+  void Function(Object) i =
+      C. /*@error=InvalidCastStaticMethod*/ staticFunction;
+  void Function(Object)
+      j = /*@error=InvalidCastTopLevelFunction*/ topLevelFunction;
+  void Function(Object) k = /*@error=InvalidCastLocalFunction*/ localFunction;
+}
+
+ok() {
+  void localFunction(int i) {}
+  List<int> a = <int>[];
+  Map<int, String> b = <int, String>{};
+  Map<int, String> c = <int, String>{};
+  int Function(int) d = (int i) => i;
+  D e = new C.fact();
+  D f = new C.fact2();
+  C g = new C.nonFact();
+  C h = new C.nonFact2();
+  void Function(int) i = C.staticFunction;
+  void Function(int) j = topLevelFunction;
+  void Function(int) k = localFunction;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/invalid_cast.dart.direct.expect b/pkg/front_end/testcases/invalid_cast.dart.direct.expect
new file mode 100644
index 0000000..eef3c60
--- /dev/null
+++ b/pkg/front_end/testcases/invalid_cast.dart.direct.expect
@@ -0,0 +1,56 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+class C extends core::Object {
+  static field dynamic _redirecting# = <dynamic>[self::C::fact2];
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  constructor nonFact() → void
+    : super core::Object::•()
+    ;
+  constructor nonFact2() → void
+    : this self::C::nonFact()
+    ;
+  static factory fact() → self::C
+    return null;
+  static factory fact2() → self::C
+    let dynamic #redirecting_factory = self::D::• in invalid-expression;
+  static method staticFunction(core::int i) → void {}
+}
+class D extends self::C {
+  default constructor •() → void
+    : super self::C::•()
+    ;
+}
+static method topLevelFunction(core::int i) → void {}
+static method bad() → dynamic {
+  function localFunction(core::int i) → void {}
+  core::List<core::int> a = <core::Object>[];
+  core::Map<core::int, core::String> b = <core::Object, core::String>{};
+  core::Map<core::int, core::String> c = <core::int, core::Object>{};
+  (core::Object) → core::int d = (core::int i) → dynamic => i;
+  self::D e = self::C::fact();
+  self::D f = new self::D::•();
+  self::D g = new self::C::nonFact();
+  self::D h = new self::C::nonFact2();
+  (core::Object) → void i = self::C::staticFunction;
+  (core::Object) → void j = self::topLevelFunction;
+  (core::Object) → void k = localFunction;
+}
+static method ok() → dynamic {
+  function localFunction(core::int i) → void {}
+  core::List<core::int> a = <core::int>[];
+  core::Map<core::int, core::String> b = <core::int, core::String>{};
+  core::Map<core::int, core::String> c = <core::int, core::String>{};
+  (core::int) → core::int d = (core::int i) → dynamic => i;
+  self::D e = self::C::fact();
+  self::D f = new self::D::•();
+  self::C g = new self::C::nonFact();
+  self::C h = new self::C::nonFact2();
+  (core::int) → void i = self::C::staticFunction;
+  (core::int) → void j = self::topLevelFunction;
+  (core::int) → void k = localFunction;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/invalid_cast.dart.outline.expect b/pkg/front_end/testcases/invalid_cast.dart.outline.expect
new file mode 100644
index 0000000..644d93c
--- /dev/null
+++ b/pkg/front_end/testcases/invalid_cast.dart.outline.expect
@@ -0,0 +1,31 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+class C extends core::Object {
+  static field dynamic _redirecting# = <dynamic>[self::C::fact2];
+  constructor •() → void
+    ;
+  constructor nonFact() → void
+    ;
+  constructor nonFact2() → void
+    ;
+  static factory fact() → self::C
+    ;
+  static factory fact2() → self::C
+    let dynamic #redirecting_factory = self::D::• in invalid-expression;
+  static method staticFunction(core::int i) → void
+    ;
+}
+class D extends self::C {
+  default constructor •() → void
+    ;
+}
+static method topLevelFunction(core::int i) → void
+  ;
+static method bad() → dynamic
+  ;
+static method ok() → dynamic
+  ;
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/invalid_cast.dart.strong.expect b/pkg/front_end/testcases/invalid_cast.dart.strong.expect
new file mode 100644
index 0000000..4900c71
--- /dev/null
+++ b/pkg/front_end/testcases/invalid_cast.dart.strong.expect
@@ -0,0 +1,56 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+class C extends core::Object {
+  static field dynamic _redirecting# = <dynamic>[self::C::fact2];
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  constructor nonFact() → void
+    : super core::Object::•()
+    ;
+  constructor nonFact2() → void
+    : this self::C::nonFact()
+    ;
+  static factory fact() → self::C
+    return null;
+  static factory fact2() → self::C
+    let dynamic #redirecting_factory = self::D::• in invalid-expression;
+  static method staticFunction(core::int i) → void {}
+}
+class D extends self::C {
+  default constructor •() → void
+    : super self::C::•()
+    ;
+}
+static method topLevelFunction(core::int i) → void {}
+static method bad() → dynamic {
+  function localFunction(core::int i) → void {}
+  core::List<core::int> a = let final dynamic #t1 = <core::Object>[] in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/invalid_cast.dart:22:60: Error: The list literal type 'dart.core::List<dart.core::Object>' isn't of expected type 'dart.core::List<dart.core::int>'.\nChange the type of the list literal or the context in which it is used.\n  List<int> a = <Object> /*@error=InvalidCastLiteralList*/ [];\n                                                           ^"));
+  core::Map<core::int, core::String> b = let final dynamic #t2 = <core::Object, core::String>{} in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/invalid_cast.dart:23:74: Error: The map literal type 'dart.core::Map<dart.core::Object, dart.core::String>' isn't of expected type 'dart.core::Map<dart.core::int, dart.core::String>'.\nChange the type of the map literal or the context in which it is used.\n  Map<int, String> b = <Object, String> /*@error=InvalidCastLiteralMap*/ {};\n                                                                         ^"));
+  core::Map<core::int, core::String> c = let final dynamic #t3 = <core::int, core::Object>{} in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/invalid_cast.dart:24:71: Error: The map literal type 'dart.core::Map<dart.core::int, dart.core::Object>' isn't of expected type 'dart.core::Map<dart.core::int, dart.core::String>'.\nChange the type of the map literal or the context in which it is used.\n  Map<int, String> c = <int, Object> /*@error=InvalidCastLiteralMap*/ {};\n                                                                      ^"));
+  (core::Object) → core::int d = let final dynamic #t4 = (core::int i) → core::int => i in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/invalid_cast.dart:25:63: Error: The function expression type '(dart.core::int) \u8594 dart.core::int' isn't of expected type '(dart.core::Object) \u8594 dart.core::int'.\nChange the type of the function expression or the context in which it is used.\n  int Function(Object) d = /*@error=InvalidCastFunctionExpr*/ (int i) => i;\n                                                              ^"));
+  self::D e = self::C::fact() as{TypeError} self::D;
+  self::D f = new self::D::•() as{TypeError} self::D;
+  self::D g = let final dynamic #t5 = new self::C::nonFact() in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/invalid_cast.dart:28:43: Error: The constructor returns type '#lib1::C' that isn't of expected type '#lib1::D'.\nChange the type of the object being constructed or the context in which it is used.\n  D g = new /*@error=InvalidCastNewExpr*/ C.nonFact();\n                                          ^"));
+  self::D h = let final dynamic #t6 = new self::C::nonFact2() in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/invalid_cast.dart:29:43: Error: The constructor returns type '#lib1::C' that isn't of expected type '#lib1::D'.\nChange the type of the object being constructed or the context in which it is used.\n  D h = new /*@error=InvalidCastNewExpr*/ C.nonFact2();\n                                          ^"));
+  (core::Object) → void i = let final dynamic #t7 = self::C::staticFunction in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/invalid_cast.dart:31:45: Error: The static method has type '(dart.core::int) \u8594 void' that isn't of expected type '(dart.core::Object) \u8594 void'.\nChange the type of the method or the context in which it is used.\n      C. /*@error=InvalidCastStaticMethod*/ staticFunction;\n                                            ^"));
+  (core::Object) → void j = let final dynamic #t8 = self::topLevelFunction in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/invalid_cast.dart:33:50: Error: The top level function has type '(dart.core::int) \u8594 void' that isn't of expected type '(dart.core::Object) \u8594 void'.\nChange the type of the function or the context in which it is used.\n      j = /*@error=InvalidCastTopLevelFunction*/ topLevelFunction;\n                                                 ^"));
+  (core::Object) → void k = let final dynamic #t9 = localFunction in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/invalid_cast.dart:34:65: Error: The local function has type '(dart.core::int) \u8594 void' that isn't of expected type '(dart.core::Object) \u8594 void'.\nChange the type of the function or the context in which it is used.\n  void Function(Object) k = /*@error=InvalidCastLocalFunction*/ localFunction;\n                                                                ^"));
+}
+static method ok() → dynamic {
+  function localFunction(core::int i) → void {}
+  core::List<core::int> a = <core::int>[];
+  core::Map<core::int, core::String> b = <core::int, core::String>{};
+  core::Map<core::int, core::String> c = <core::int, core::String>{};
+  (core::int) → core::int d = (core::int i) → core::int => i;
+  self::D e = self::C::fact() as{TypeError} self::D;
+  self::D f = new self::D::•() as{TypeError} self::D;
+  self::C g = new self::C::nonFact();
+  self::C h = new self::C::nonFact2();
+  (core::int) → void i = self::C::staticFunction;
+  (core::int) → void j = self::topLevelFunction;
+  (core::int) → void k = localFunction;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/rasta/unresolved_for_in.dart.direct.expect b/pkg/front_end/testcases/rasta/unresolved_for_in.dart.direct.expect
index 44cfd2f..ac56b5b 100644
--- a/pkg/front_end/testcases/rasta/unresolved_for_in.dart.direct.expect
+++ b/pkg/front_end/testcases/rasta/unresolved_for_in.dart.direct.expect
@@ -13,14 +13,14 @@
       core::print(this.key);
     }
     for (final dynamic #t2 in x) {
-      throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#Fisk, 34, const <dynamic>[], <dynamic>[#t2].toList(growable: false), core::Map::unmodifiable<dynamic, dynamic>(const <dynamic, dynamic>{})));
+      let dynamic _ = null in throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#Fisk, 34, const <dynamic>[], <dynamic>[#t2].toList(growable: false), core::Map::unmodifiable<dynamic, dynamic>(const <dynamic, dynamic>{})));
       core::print(self::Fisk);
     }
     for (final dynamic #t3 = let dynamic _ = null in const core::_ConstantExpressionError::•()._throw(new core::_CompileTimeError::•("pkg/front_end/testcases/rasta/unresolved_for_in.dart:17:10: Error: Expected lvalue, but got Instance of 'PrefixBuilder'\n    for (collection in x) {\n         ^")) in x) {
       core::print(const core::_ConstantExpressionError::•()._throw(new core::_CompileTimeError::•("pkg/front_end/testcases/rasta/unresolved_for_in.dart: Error: A library can't be used as an expression.")));
     }
     for (final dynamic #t4 in x) {
-      throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#VoidFunction, 34, const <dynamic>[], <dynamic>[#t4].toList(growable: false), core::Map::unmodifiable<dynamic, dynamic>(const <dynamic, dynamic>{})));
+      let dynamic _ = null in throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#VoidFunction, 34, const <dynamic>[], <dynamic>[#t4].toList(growable: false), core::Map::unmodifiable<dynamic, dynamic>(const <dynamic, dynamic>{})));
       core::print(() → void);
     }
     for (final dynamic #t5 = let dynamic _ = null in const core::_ConstantExpressionError::•()._throw(new core::_CompileTimeError::•("pkg/front_end/testcases/rasta/unresolved_for_in.dart:23:10: Error: Expected lvalue, but got 1\n    for (1 in x) {\n         ^")) in x) {
@@ -35,14 +35,14 @@
     core::print(throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#key, 33, const <dynamic>[], const <dynamic>[], core::Map::unmodifiable<dynamic, dynamic>(const <dynamic, dynamic>{}))));
   }
   for (final dynamic #t7 in arguments) {
-    throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#Fisk, 34, const <dynamic>[], <dynamic>[#t7].toList(growable: false), core::Map::unmodifiable<dynamic, dynamic>(const <dynamic, dynamic>{})));
+    let dynamic _ = null in throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#Fisk, 34, const <dynamic>[], <dynamic>[#t7].toList(growable: false), core::Map::unmodifiable<dynamic, dynamic>(const <dynamic, dynamic>{})));
     core::print(self::Fisk);
   }
   for (final dynamic #t8 = let dynamic _ = null in const core::_ConstantExpressionError::•()._throw(new core::_CompileTimeError::•("pkg/front_end/testcases/rasta/unresolved_for_in.dart:37:8: Error: Expected lvalue, but got Instance of 'PrefixBuilder'\n  for (collection in arguments) {\n       ^")) in arguments) {
     core::print(const core::_ConstantExpressionError::•()._throw(new core::_CompileTimeError::•("pkg/front_end/testcases/rasta/unresolved_for_in.dart: Error: A library can't be used as an expression.")));
   }
   for (final dynamic #t9 in arguments) {
-    throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#VoidFunction, 34, const <dynamic>[], <dynamic>[#t9].toList(growable: false), core::Map::unmodifiable<dynamic, dynamic>(const <dynamic, dynamic>{})));
+    let dynamic _ = null in throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#VoidFunction, 34, const <dynamic>[], <dynamic>[#t9].toList(growable: false), core::Map::unmodifiable<dynamic, dynamic>(const <dynamic, dynamic>{})));
     core::print(() → void);
   }
   for (final dynamic #t10 = let dynamic _ = null in const core::_ConstantExpressionError::•()._throw(new core::_CompileTimeError::•("pkg/front_end/testcases/rasta/unresolved_for_in.dart:43:8: Error: Expected lvalue, but got 1\n  for (1 in arguments) {\n       ^")) in arguments) {
diff --git a/pkg/front_end/testcases/regress/issue_29942.dart.strong.expect b/pkg/front_end/testcases/regress/issue_29942.dart.strong.expect
index 9f64d07..2e3e6cd 100644
--- a/pkg/front_end/testcases/regress/issue_29942.dart.strong.expect
+++ b/pkg/front_end/testcases/regress/issue_29942.dart.strong.expect
@@ -1,7 +1,8 @@
 library;
 import self as self;
+import "dart:core" as core;
 
 static const field dynamic #errors = const <dynamic>["pkg/front_end/testcases/regress/issue_29942.dart:8:5: Error: Expected a function body or '=>'.\nTry adding {}.\nf() =\n    ^", "pkg/front_end/testcases/regress/issue_29942.dart:10:1: Error: A function expression can't have a name.\nh() => null;\n^"]/* from null */;
 static method main() → dynamic {}
 static method f() → dynamic
-  return let final () → dynamic h = () → dynamic => null in h;
+  return let final () → core::Null h = () → core::Null => null in h;
diff --git a/pkg/front_end/testcases/return_with_unknown_type_in_context.dart b/pkg/front_end/testcases/return_with_unknown_type_in_context.dart
new file mode 100644
index 0000000..f30bd53
--- /dev/null
+++ b/pkg/front_end/testcases/return_with_unknown_type_in_context.dart
@@ -0,0 +1,14 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+bool f(List x) {
+  return x.expand((y) {
+    // Since y has type dynamic, y.split(',') has type dynamic, so an implicit
+    // downcast is needed.  The return context is Iterable<?>.  We should
+    // generate an implicit downcast to Iterable<dynamic>.
+    return y.split(',');
+  }).any((y) => y == 'z');
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/return_with_unknown_type_in_context.dart.direct.expect b/pkg/front_end/testcases/return_with_unknown_type_in_context.dart.direct.expect
new file mode 100644
index 0000000..309defd
--- /dev/null
+++ b/pkg/front_end/testcases/return_with_unknown_type_in_context.dart.direct.expect
@@ -0,0 +1,10 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+static method f(core::List<dynamic> x) → core::bool {
+  return x.expand((dynamic y) → dynamic {
+    return y.split(",");
+  }).any((dynamic y) → dynamic => y.==("z"));
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/return_with_unknown_type_in_context.dart.outline.expect b/pkg/front_end/testcases/return_with_unknown_type_in_context.dart.outline.expect
new file mode 100644
index 0000000..3e5e6dd
--- /dev/null
+++ b/pkg/front_end/testcases/return_with_unknown_type_in_context.dart.outline.expect
@@ -0,0 +1,8 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+static method f(core::List<dynamic> x) → core::bool
+  ;
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/return_with_unknown_type_in_context.dart.strong.expect b/pkg/front_end/testcases/return_with_unknown_type_in_context.dart.strong.expect
new file mode 100644
index 0000000..47fe398
--- /dev/null
+++ b/pkg/front_end/testcases/return_with_unknown_type_in_context.dart.strong.expect
@@ -0,0 +1,10 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+static method f(core::List<dynamic> x) → core::bool {
+  return x.{core::Iterable::expand}<dynamic>((dynamic y) → core::Iterable<dynamic> {
+    return y.split(",") as{TypeError} core::Iterable<dynamic>;
+  }).{core::Iterable::any}((dynamic y) → core::bool => y.{core::Object::==}("z"));
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart b/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart
index 2072ab6..7b2a695 100644
--- a/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart
+++ b/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart
@@ -10,10 +10,10 @@
   dynamic y;
   void test() {
     // Set via this
-    x = null;
-    this.x = null;
-    y = null;
-    this.y = null;
+    /*@callKind=this*/ x = null;
+    this. /*@callKind=this*/ x = null;
+    /*@callKind=this*/ y = null;
+    this. /*@callKind=this*/ y = null;
   }
 }
 
@@ -23,7 +23,7 @@
   c.y = null;
 
   // Dynamic set
-  d.x = null;
+  d. /*@callKind=dynamic*/ x = null;
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_setter.dart b/pkg/front_end/testcases/runtime_checks/covariant_setter.dart
index 219d715..bd9c289 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_setter.dart
+++ b/pkg/front_end/testcases/runtime_checks/covariant_setter.dart
@@ -11,8 +11,8 @@
   T /*@covariance=genericInterface, genericImpl*/ x;
   void set y(T /*@covariance=genericInterface, genericImpl*/ value) {}
   void f(T /*@covariance=genericInterface, genericImpl*/ value) {
-    this.x = value;
-    this.y = value;
+    this. /*@callKind=this*/ x = value;
+    this. /*@callKind=this*/ y = value;
   }
 }
 
diff --git a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart
index 8384c2d..6adf661 100644
--- a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart
+++ b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart
@@ -8,11 +8,11 @@
 class B {
   Object _x;
   void f([num x = 10]) {
-    _x = x;
+    /*@callKind=this*/ _x = x;
   }
 
   void g({num x = 20}) {
-    _x = x;
+    /*@callKind=this*/ _x = x;
   }
 
   void check(Object expectedValue) {
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart b/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart
index 4ae533a..5ac5bbb 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart
@@ -31,7 +31,7 @@
   C<num> get value => /*@callKind=this*/ getValue;
   int Function(int) setValue;
   void set value(int Function(int) value) {
-    setValue = value;
+    /*@callKind=this*/ setValue = value;
   }
 }
 
diff --git a/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart
new file mode 100644
index 0000000..a7ea1eb
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart
@@ -0,0 +1,28 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/*@testedFeatures=checks*/
+library test;
+
+var topLevel;
+void set topLevelSetter(x) {}
+
+class C {
+  static var staticField;
+  static void set staticSetter(x) {}
+  var instanceField;
+  void set instanceSetter(x) {}
+  void test() {
+    var localVar;
+    for (topLevel in []) {}
+    for (topLevelSetter in []) {}
+    for (staticField in []) {}
+    for (staticSetter in []) {}
+    for (/*@callKind=this*/ instanceField in []) {}
+    for (/*@callKind=this*/ instanceSetter in []) {}
+    for (localVar in []) {}
+  }
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.direct.expect b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.direct.expect
new file mode 100644
index 0000000..ce84b5c
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.direct.expect
@@ -0,0 +1,40 @@
+library test;
+import self as self;
+import "dart:core" as core;
+
+class C extends core::Object {
+  static field dynamic staticField = null;
+  field dynamic instanceField = null;
+  default constructor •() → void
+    : super core::Object::•()
+    ;
+  static set staticSetter(dynamic x) → void {}
+  set instanceSetter(dynamic x) → void {}
+  method test() → void {
+    dynamic localVar;
+    for (final dynamic #t1 in <dynamic>[]) {
+      self::topLevel = #t1;
+    }
+    for (final dynamic #t2 in <dynamic>[]) {
+      self::topLevelSetter = #t2;
+    }
+    for (final dynamic #t3 in <dynamic>[]) {
+      self::C::staticField = #t3;
+    }
+    for (final dynamic #t4 in <dynamic>[]) {
+      self::C::staticSetter = #t4;
+    }
+    for (final dynamic #t5 in <dynamic>[]) {
+      this.{self::C::instanceField} = #t5;
+    }
+    for (final dynamic #t6 in <dynamic>[]) {
+      this.{self::C::instanceSetter} = #t6;
+    }
+    for (final dynamic #t7 in <dynamic>[]) {
+      localVar = #t7;
+    }
+  }
+}
+static field dynamic topLevel;
+static set topLevelSetter(dynamic x) → void {}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.outline.expect b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.outline.expect
new file mode 100644
index 0000000..3d4afee
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.outline.expect
@@ -0,0 +1,21 @@
+library test;
+import self as self;
+import "dart:core" as core;
+
+class C extends core::Object {
+  static field dynamic staticField;
+  field dynamic instanceField;
+  default constructor •() → void
+    ;
+  static set staticSetter(dynamic x) → void
+    ;
+  set instanceSetter(dynamic x) → void
+    ;
+  method test() → void
+    ;
+}
+static field dynamic topLevel;
+static set topLevelSetter(dynamic x) → void
+  ;
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.strong.expect b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.strong.expect
new file mode 100644
index 0000000..ce84b5c
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.strong.expect
@@ -0,0 +1,40 @@
+library test;
+import self as self;
+import "dart:core" as core;
+
+class C extends core::Object {
+  static field dynamic staticField = null;
+  field dynamic instanceField = null;
+  default constructor •() → void
+    : super core::Object::•()
+    ;
+  static set staticSetter(dynamic x) → void {}
+  set instanceSetter(dynamic x) → void {}
+  method test() → void {
+    dynamic localVar;
+    for (final dynamic #t1 in <dynamic>[]) {
+      self::topLevel = #t1;
+    }
+    for (final dynamic #t2 in <dynamic>[]) {
+      self::topLevelSetter = #t2;
+    }
+    for (final dynamic #t3 in <dynamic>[]) {
+      self::C::staticField = #t3;
+    }
+    for (final dynamic #t4 in <dynamic>[]) {
+      self::C::staticSetter = #t4;
+    }
+    for (final dynamic #t5 in <dynamic>[]) {
+      this.{self::C::instanceField} = #t5;
+    }
+    for (final dynamic #t6 in <dynamic>[]) {
+      this.{self::C::instanceSetter} = #t6;
+    }
+    for (final dynamic #t7 in <dynamic>[]) {
+      localVar = #t7;
+    }
+  }
+}
+static field dynamic topLevel;
+static set topLevelSetter(dynamic x) → void {}
+static method main() → dynamic {}
diff --git a/pkg/front_end/tool/_fasta/command_line.dart b/pkg/front_end/tool/_fasta/command_line.dart
index e1101f0..141c10a 100644
--- a/pkg/front_end/tool/_fasta/command_line.dart
+++ b/pkg/front_end/tool/_fasta/command_line.dart
@@ -32,9 +32,6 @@
 import 'package:kernel/target/targets.dart'
     show Target, getTarget, TargetFlags, targets;
 
-import 'package:kernel/target/implementation_option.dart'
-    show ImplementationOption, implementationOptions;
-
 class CommandLineProblem {
   final Message message;
 
@@ -190,7 +187,6 @@
   "--platform": Uri,
   "--libraries-json": Uri,
   "--target": String,
-  "--target-options": ",",
   "-t": String,
 };
 
@@ -234,16 +230,7 @@
 
   final String targetName = options["-t"] ?? options["--target"] ?? "vm";
 
-  final List<ImplementationOption> targetOptions =
-      (options["--target-options"] ?? <String>[])
-          .map((String name) =>
-              implementationOptions[name] ??
-              (throw new CommandLineProblem.deprecated(
-                  "--target-options argument not recognized: '$name'.")))
-          .toList();
-
-  final TargetFlags flags = new TargetFlags(
-      strongMode: strongMode, implementationOptions: targetOptions);
+  final TargetFlags flags = new TargetFlags(strongMode: strongMode);
   final Target target = getTarget(targetName, flags);
   if (target == null) {
     return throw new CommandLineProblem.deprecated(
diff --git a/pkg/front_end/tool/_fasta/entry_points.dart b/pkg/front_end/tool/_fasta/entry_points.dart
index 9118191..db9b11f 100644
--- a/pkg/front_end/tool/_fasta/entry_points.dart
+++ b/pkg/front_end/tool/_fasta/entry_points.dart
@@ -172,5 +172,5 @@
 void _appendDillForUri(DillTarget dillTarget, Uri uri) {
   var bytes = new File.fromUri(uri).readAsBytesSync();
   var platformProgram = loadProgramFromBytes(bytes);
-  dillTarget.loader.appendLibraries(platformProgram);
+  dillTarget.loader.appendLibraries(platformProgram, byteCount: bytes.length);
 }
diff --git a/pkg/front_end/tool/_fasta/generate_messages.dart b/pkg/front_end/tool/_fasta/generate_messages.dart
index 6988064..93ffb3b 100644
--- a/pkg/front_end/tool/_fasta/generate_messages.dart
+++ b/pkg/front_end/tool/_fasta/generate_messages.dart
@@ -36,6 +36,9 @@
       description = yaml[description];
     }
     Map map = description;
+    if (map == null) {
+      throw "No 'template:' in key $name.";
+    }
     sb.writeln(compileTemplate(name, map['template'], map['tip'],
         map['analyzerCode'], map['dart2jsCode']));
   }
@@ -113,6 +116,11 @@
         arguments.add("'string2': string2");
         break;
 
+      case "#string3":
+        parameters.add("String string3");
+        arguments.add("'string3': string3");
+        break;
+
       case "#type":
         parameters.add("DartType _type");
         conversions.add(r"""
@@ -152,6 +160,16 @@
         arguments.add("'uri3': uri3_");
         break;
 
+      case "#count":
+        parameters.add("int count");
+        arguments.add("'count': count");
+        break;
+
+      case "#count2":
+        parameters.add("int count2");
+        arguments.add("'count2': count2");
+        break;
+
       default:
         throw "Unhandled placeholder in template: ${match[0]}";
     }
diff --git a/pkg/front_end/tool/fasta_perf.dart b/pkg/front_end/tool/fasta_perf.dart
index e5f8125..892e5a1 100644
--- a/pkg/front_end/tool/fasta_perf.dart
+++ b/pkg/front_end/tool/fasta_perf.dart
@@ -19,8 +19,6 @@
 import 'package:front_end/src/fasta/source/directive_listener.dart';
 import 'package:front_end/src/fasta/uri_translator.dart' show UriTranslator;
 
-import 'package:kernel/target/targets.dart' show TargetFlags;
-import 'package:kernel/target/vm.dart' show VmTarget;
 import 'perf_common.dart';
 
 /// Cumulative total number of chars scanned.
@@ -92,7 +90,6 @@
 Future setup(Uri entryUri) async {
   var options = new CompilerOptions()
     ..sdkRoot = sdkRoot
-    ..reportMessages = true
     // Because this is only used to create a uriResolver, we don't allow any
     // whitelisting of error messages in the error handler.
     ..onError = onErrorHandler(false)
@@ -228,13 +225,12 @@
   scanReachableFiles(entryUri);
 
   var timer = new Stopwatch()..start();
-  var flags = new TargetFlags(strongMode: strongMode);
   var options = new CompilerOptions()
     ..sdkRoot = sdkRoot
     ..reportMessages = true
     ..onError = onErrorHandler(strongMode)
     ..strongMode = strongMode
-    ..target = (strongMode ? new VmTarget(flags) : new LegacyVmTarget(flags))
+    ..target = createTarget(isFlutter: false, strongMode: strongMode)
     ..chaseDependencies = true
     ..packagesFileUri = Uri.base.resolve('.packages')
     ..compileSdk = compileSdk;
@@ -285,12 +281,3 @@
       help: 'run the compiler in legacy-mode',
       defaultsTo: false,
       negatable: false);
-
-// TODO(sigmund): delete as soon as the disableTypeInference flag and the
-// strongMode flag get merged.
-class LegacyVmTarget extends VmTarget {
-  LegacyVmTarget(TargetFlags flags) : super(flags);
-
-  @override
-  bool get disableTypeInference => true;
-}
diff --git a/pkg/front_end/tool/incremental_perf.dart b/pkg/front_end/tool/incremental_perf.dart
index a22bebb..b4c07ce 100644
--- a/pkg/front_end/tool/incremental_perf.dart
+++ b/pkg/front_end/tool/incremental_perf.dart
@@ -57,9 +57,6 @@
 import 'package:front_end/src/base/processed_options.dart';
 import 'package:front_end/src/byte_store/protected_file_byte_store.dart';
 import 'package:front_end/src/fasta/uri_translator.dart';
-import 'package:kernel/target/flutter.dart';
-import 'package:kernel/target/targets.dart';
-import 'package:kernel/target/vm.dart';
 
 import 'perf_common.dart';
 
@@ -77,16 +74,13 @@
       parse(JSON.decode(new File.fromUri(editsUri).readAsStringSync()));
 
   var overlayFs = new OverlayFileSystem();
-  var targetFlags = new TargetFlags(strongMode: options['mode'] == 'strong');
+  bool strongMode = options['mode'] == 'strong';
   var compilerOptions = new CompilerOptions()
     ..fileSystem = overlayFs
-    ..strongMode = (options['mode'] == 'strong')
-    ..reportMessages = true
-    ..onError = onErrorHandler(options['mode'] == 'strong')
-    ..target = options['target'] == 'flutter'
-        ? new FlutterTarget(targetFlags)
-        : new VmTarget(targetFlags);
-
+    ..strongMode = strongMode
+    ..onError = onErrorHandler(strongMode)
+    ..target = createTarget(
+        isFlutter: options['target'] == 'flutter', strongMode: strongMode);
   if (options['sdk-summary'] != null) {
     compilerOptions.sdkSummary = _resolveOverlayUri(options["sdk-summary"]);
   }
diff --git a/pkg/front_end/tool/perf_common.dart b/pkg/front_end/tool/perf_common.dart
index 60feee3..fa3fb5f 100644
--- a/pkg/front_end/tool/perf_common.dart
+++ b/pkg/front_end/tool/perf_common.dart
@@ -8,7 +8,11 @@
 import 'dart:io';
 
 import 'package:front_end/src/api_prototype/front_end.dart';
+import 'package:front_end/src/fasta/command_line_reporting.dart';
 import 'package:front_end/src/fasta/fasta_codes.dart';
+import 'package:kernel/target/flutter.dart' show FlutterTarget;
+import 'package:kernel/target/targets.dart' show Target, TargetFlags;
+import 'package:kernel/target/vm.dart' show VmTarget;
 
 /// Error messages that we temporarily allow when compiling benchmarks in strong
 /// mode.
@@ -22,14 +26,62 @@
 /// from this set.
 final whitelistMessageCode = new Set<String>.from(<String>[
   // Code names in this list should match the key used in messages.yaml
-  codeInvalidAssignment.name
+  codeInvalidAssignment.name,
+
+  // The following errors are not covered by unit tests in the SDK repo because
+  // they are only seen today in the flutter-gallery benchmark (external to
+  // this repo).
+  codeInvalidCastFunctionExpr.name,
+  codeInvalidCastTopLevelFunction.name,
+  codeUndefinedGetter.name,
+  codeUndefinedMethod.name,
 ]);
 
-onErrorHandler(bool isStrong) => (CompilationMessage m) {
-      if (m.severity == Severity.internalProblem ||
-          m.severity == Severity.error) {
-        if (!isStrong || !whitelistMessageCode.contains(m.code)) {
-          exitCode = 1;
-        }
+onErrorHandler(bool isStrong) {
+  bool messageReported = false;
+  return (CompilationMessage m) {
+    if (m.severity == Severity.internalProblem ||
+        m.severity == Severity.error) {
+      if (!isStrong || !whitelistMessageCode.contains(m.code)) {
+        var uri = m.span.start.sourceUrl;
+        var offset = m.span.start.offset;
+        stderr.writeln('$uri:$offset: '
+            '${severityName(m.severity, capitalized: true)}: ${m.message}');
+        exitCode = 1;
+      } else if (!messageReported) {
+        messageReported = true;
+        stderr.writeln('Whitelisted error messages omitted');
       }
-    };
+    }
+  };
+}
+
+/// Creates a [VmTarget] or [FlutterTarget] with strong-mode enabled or
+/// disabled.
+// TODO(sigmund): delete as soon as the disableTypeInference flag and the
+// strongMode flag get merged, and we have a single way of specifying the
+// strong-mode flag to the FE.
+Target createTarget({bool isFlutter: false, bool strongMode: true}) {
+  var flags = new TargetFlags(strongMode: strongMode);
+  if (isFlutter) {
+    return strongMode
+        ? new FlutterTarget(flags)
+        : new LegacyFlutterTarget(flags);
+  } else {
+    return strongMode ? new VmTarget(flags) : new LegacyVmTarget(flags);
+  }
+}
+
+class LegacyVmTarget extends VmTarget {
+  LegacyVmTarget(TargetFlags flags) : super(flags);
+
+  @override
+  bool get disableTypeInference => true;
+}
+
+class LegacyFlutterTarget extends FlutterTarget {
+  LegacyFlutterTarget(TargetFlags flags) : super(flags);
+
+  @override
+  bool get disableTypeInference => true;
+}
diff --git a/pkg/kernel/lib/ast.dart b/pkg/kernel/lib/ast.dart
index 78e0ebf..a2d8545 100644
--- a/pkg/kernel/lib/ast.dart
+++ b/pkg/kernel/lib/ast.dart
@@ -1445,10 +1445,32 @@
 class Procedure extends Member implements FileUriNode {
   ProcedureKind kind;
   int flags = 0;
-  // function is null if and only if abstract, external,
-  // or builder (below) is set.
+  // function is null if and only if abstract, external.
   FunctionNode function;
 
+  // The function node's body might be lazily loaded, meaning that this value
+  // might not be set correctly yet. Make sure the body is loaded before
+  // returning anything.
+  int get transformerFlags {
+    function?.body;
+    return super.transformerFlags;
+  }
+
+  // The function node's body might be lazily loaded, meaning that this value
+  // might get overwritten later (when the body is read). To avoid that read the
+  // body now and only set the value afterwards.
+  void set transformerFlags(int newValue) {
+    function?.body;
+    super.transformerFlags = newValue;
+  }
+
+  // This function will set the transformer flags without loading the body.
+  // Used when reading the binary. For other cases one should probably use
+  // `transformerFlags = value;`.
+  void setTransformerFlagsWithoutLazyLoading(int newValue) {
+    super.transformerFlags = newValue;
+  }
+
   /// The uri of the source file this procedure was loaded from.
   Uri fileUri;
 
diff --git a/pkg/kernel/lib/binary/ast_from_binary.dart b/pkg/kernel/lib/binary/ast_from_binary.dart
index f2732b9..edd4923 100644
--- a/pkg/kernel/lib/binary/ast_from_binary.dart
+++ b/pkg/kernel/lib/binary/ast_from_binary.dart
@@ -939,7 +939,7 @@
       node.annotations = annotations;
       node.function = function;
       function?.parent = node;
-      node.transformerFlags = transformerFlags;
+      node.setTransformerFlagsWithoutLazyLoading(transformerFlags);
     }
     _byteOffset = endOffset;
     return node;
diff --git a/pkg/kernel/lib/core_types.dart b/pkg/kernel/lib/core_types.dart
index 44a67af..f23ccbf 100644
--- a/pkg/kernel/lib/core_types.dart
+++ b/pkg/kernel/lib/core_types.dart
@@ -312,6 +312,10 @@
     return _streamClass ??= _index.getClass('dart:async', 'Stream');
   }
 
+  Member get streamIteratorSubscription {
+    return _index.getMember('dart:async', '_StreamIterator', '_subscription');
+  }
+
   Member get streamIteratorCancel {
     return _index.getMember('dart:async', '_StreamIterator', 'cancel');
   }
diff --git a/pkg/kernel/lib/target/implementation_option.dart b/pkg/kernel/lib/target/implementation_option.dart
deleted file mode 100644
index 0f35cbc..0000000
--- a/pkg/kernel/lib/target/implementation_option.dart
+++ /dev/null
@@ -1,106 +0,0 @@
-// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library kernel.target.implementation_options;
-
-class VmOptions {
-  // TODO(alexmarkov): Cleanup this option.
-  // Consider cleaning up implementation_options.
-  static final ImplementationOption strongAOT = new ImplementationOption._(
-      "strong-aot", Platform.vm, new DateTime.utc(2018, 1), """
-Enables strong-mode whole-program optimizations for AOT (precompiler) mode of
-the Dart VM.""");
-}
-
-final Map<String, ImplementationOption> implementationOptions =
-    ImplementationOption._validateOptions(<ImplementationOption>[
-  VmOptions.strongAOT,
-]);
-
-final RegExp _namePattern = new RegExp(r"^[-a-z0-9]+$");
-
-class ImplementationOption {
-  final String name;
-  final String description;
-  final Platform platform;
-  final DateTime expires;
-
-  ImplementationOption._(
-      this.name, this.platform, this.expires, this.description);
-
-  bool _validate(int index, List<String> reasons) {
-    if (name == null) {
-      reasons.add("[name] is null for option #$index.");
-      return false;
-    }
-    if (!_namePattern.hasMatch(name)) {
-      reasons.add("'$name' doesn't match regular expression"
-          " '${_namePattern.pattern}'.");
-      return false;
-    }
-    if (description == null) {
-      reasons.add("[description] is null for option '$name'.");
-      return false;
-    }
-    if (description.isEmpty) {
-      reasons.add("[description] is empty for option '$name'.");
-      return false;
-    }
-    if (description == name) {
-      reasons.add("[description] == [name] for option '$name'.");
-      return false;
-    }
-    if (platform == null) {
-      reasons.add("[platform] is null for option '$name'.");
-      return false;
-    }
-    if (expires == null) {
-      reasons.add("[expires] is null for option '$name'.");
-      return false;
-    }
-    if (!expires.isUtc) {
-      reasons.add("[expires] isn't in UTC for option '$name'.");
-      return false;
-    }
-    if (expires.isBefore(new DateTime.now().toUtc())) {
-      print("Warning: option '$name' has expired "
-          "(see pkg/kernel/lib/target/implementation_option.dart).");
-      return false;
-    }
-    return true;
-  }
-
-  static Map<String, ImplementationOption> _validateOptions(
-      List<ImplementationOption> options) {
-    Map<String, ImplementationOption> result = <String, ImplementationOption>{};
-    int i = 0;
-    List<String> reasons = <String>[];
-    for (ImplementationOption option in options) {
-      if (result.containsKey(option.name)) {
-        throw "Duplicated option name at index $i.";
-      }
-      if (option._validate(i++, reasons)) {
-        result[option.name] = option;
-      }
-    }
-    if (reasons.isNotEmpty) {
-      throw reasons.join("\n");
-    }
-    return new Map<String, ImplementationOption>.unmodifiable(result);
-  }
-
-  static void validate(ImplementationOption option) {
-    List<String> reasons = <String>[];
-    if (!option._validate(-1, reasons)) {
-      throw new ArgumentError(reasons.join("\n"));
-    }
-  }
-}
-
-enum Platform {
-  analyzer,
-  dart2js,
-  devcompiler,
-  vm,
-}
diff --git a/pkg/kernel/lib/target/targets.dart b/pkg/kernel/lib/target/targets.dart
index 9bb8dcd..7dd610a 100644
--- a/pkg/kernel/lib/target/targets.dart
+++ b/pkg/kernel/lib/target/targets.dart
@@ -11,7 +11,6 @@
 import 'vm.dart' show VmTarget;
 import 'vmcc.dart' show VmClosureConvertedTarget;
 import 'vmreify.dart' show VmGenericTypesReifiedTarget;
-import 'implementation_option.dart' show ImplementationOption;
 
 final List<String> targetNames = targets.keys.toList();
 
@@ -20,18 +19,12 @@
   bool treeShake;
   List<ProgramRoot> programRoots;
   Uri kernelRuntime;
-  final List<ImplementationOption> implementationOptions;
 
   TargetFlags(
       {this.strongMode: false,
       this.treeShake: false,
       this.programRoots: const <ProgramRoot>[],
-      this.kernelRuntime,
-      this.implementationOptions}) {
-    if (implementationOptions != null) {
-      implementationOptions.forEach(ImplementationOption.validate);
-    }
-  }
+      this.kernelRuntime}) {}
 }
 
 typedef Target _TargetBuilder(TargetFlags flags);
diff --git a/pkg/kernel/lib/transformations/continuation.dart b/pkg/kernel/lib/transformations/continuation.dart
index 41e9861..32b6f74 100644
--- a/pkg/kernel/lib/transformations/continuation.dart
+++ b/pkg/kernel/lib/transformations/continuation.dart
@@ -629,7 +629,7 @@
           type: new InterfaceType(
               helper.streamIteratorClass, [valueVariable.type]));
 
-      // await iterator.moveNext()
+      // await :for-iterator.moveNext()
       var condition = new AwaitExpression(new MethodInvocation(
           new VariableGet(iteratorVariable),
           new Name('moveNext'),
@@ -637,7 +637,7 @@
           helper.streamIteratorMoveNext))
         ..fileOffset = stmt.fileOffset;
 
-      // var <variable> = iterator.current;
+      // T <variable> = :for-iterator.current;
       valueVariable.initializer = new PropertyGet(
           new VariableGet(iteratorVariable),
           new Name('current'),
@@ -650,8 +650,10 @@
       // if (:for-iterator._subscription != null) await :for-iterator.cancel();
       var tryFinalizer = new IfStatement(
           new Not(new MethodInvocation(
-              new PropertyGet(new VariableGet(iteratorVariable),
-                  new Name("_subscription", helper.asyncLibrary)),
+              new PropertyGet(
+                  new VariableGet(iteratorVariable),
+                  new Name("_subscription", helper.asyncLibrary),
+                  helper.coreTypes.streamIteratorSubscription),
               new Name("=="),
               new Arguments([new NullLiteral()]),
               helper.coreTypes.objectEquals)),
diff --git a/pkg/pkg.status b/pkg/pkg.status
index 993d8e5..57f6916 100644
--- a/pkg/pkg.status
+++ b/pkg/pkg.status
@@ -91,8 +91,10 @@
 unittest/*: Skip # Issue 21949
 front_end/*: SkipByDesign
 
-[ $runtime == vm && $mode == debug ]
+[ $runtime == vm ]
 analysis_server/test/completion_test: Pass, Slow
+analysis_server/test/integration/completion: Pass, Slow
+analysis_server/test/integration/search/find_top_level_declarations_test: Pass, RuntimeError # 31571
 
 [ $runtime == vm && $checked ]
 analysis_server/test/completion_test: Pass, Slow
diff --git a/pkg/status_file/lib/src/disjunctive.dart b/pkg/status_file/lib/src/disjunctive.dart
new file mode 100644
index 0000000..55dd7b7
--- /dev/null
+++ b/pkg/status_file/lib/src/disjunctive.dart
@@ -0,0 +1,464 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'expression.dart';
+import '../environment.dart';
+
+final Expression T = new LogicExpression.and([]);
+final Expression F = new LogicExpression.or([]);
+
+// Token to combine left and right value of a comparison expression in a
+// variable expression.
+final String _comparisonToken = "__";
+
+/// Transforms an [expression] to disjunctive normal form, which is a
+/// standardization where all clauses are separated by `||` (or/disjunction).
+/// All clauses must be conjunction (joined by &&) and have negation on
+/// literals.
+///
+/// It computes the disjunctive normal form by computing a truth table with all
+/// terms (truth assignment of variables) that make the [expression] become true
+/// and then minimizes the terms.
+///
+/// The procedure is exponential so [expression] should not be too big.
+Expression toDisjunctiveNormalForm(Expression expression) {
+  var normalizedExpression = expression.normalize();
+  var variableExpression =
+      _comparisonExpressionsToVariableExpressions(normalizedExpression);
+  var minTerms = _satisfiableMinTerms(variableExpression);
+  if (minTerms == null) {
+    return T;
+  } else if (minTerms.isEmpty) {
+    return F;
+  }
+  var disjunctiveNormalForm = new LogicExpression.or(minTerms);
+  disjunctiveNormalForm = _minimizeByComplementation(disjunctiveNormalForm);
+  return _recoverComparisonExpressions(disjunctiveNormalForm);
+}
+
+/// Complementation is a process that tries to combine the min terms above as
+/// much as possible. In each iteration, two minsets can be combined if they
+/// differ by only one assignment. Ex:
+///
+/// $a && $b can be combined with !$a && $b since they only differ by $a and
+/// !$a. This is easier to see if we represent terms as bits. Let the following
+/// min terms be defined:
+///
+/// m(1): $a && !$b && !$c && !$d -> 1000
+/// m(2): $a && !$b && !$c && $d  -> 1001
+/// m(3): $a && !$b && $c && !$d  -> 1010
+/// m(4): $a && !$b && $c && $d   -> 1011
+///
+/// In the first iteration, m(1) can be combined with m(2) and m(3), m(2) can be
+/// combined with m(4) and m(3) can be combined with m(4). We now have:
+///
+/// m(1,2): 100-
+/// m(1,3): 10-0
+/// m(2,4): 10-1
+/// m(3,4): 101-
+///
+/// Let - be a third bit value, which also counts toward difference. Therefore,
+/// m(1,2) cannot be combined with m(1,3), but m(1,2) can be combined with
+/// m(3,4). We therefore get:
+///
+/// m(1,2,3,4): 10--
+/// m(1,3,2,4): 10--
+///
+/// At this point, we have two similar minsets, which we also call implicants,
+/// that only differ from the way they were added together. These cannot be
+/// added together further, so we are left with only one (does not matter which
+/// we pick):
+///
+/// m(1,2,3,4): 10--
+///
+/// The minimal disjunctive form is, for this example, $a && !$b.
+///
+/// It is often not the case we only have one implicant left, we may have
+/// several.
+///
+/// m(4,12)
+/// m(8,9,10,11)
+/// m(8,10,12,14)
+/// m(10,11,14,15)
+///
+/// From here, we can find the minimum form by simply computing a set cover. We
+/// can prune the search space a bit though. In the above example, 4 and 15 is
+/// only covered by a single implicant. This means, that those are primary, and
+/// has to be included in the cover. We then just need to pick the best
+/// solution.
+///
+/// More about this algorithm here:
+/// https://en.wikipedia.org/wiki/Quine%E2%80%93McCluskey_algorithm
+LogicExpression _minimizeByComplementation(LogicExpression expression) {
+  var clauses = expression.operands
+      .map((e) => e is LogicExpression ? e.operands : [e])
+      .toList();
+  // All min terms should be sorted by amount of 1's
+  clauses.sort((a, b) {
+    var onesInA = a.where((e) => !_isNegatedExpression(e)).length;
+    var onesInB = b.where((e) => !_isNegatedExpression(e)).length;
+    return onesInA - onesInB;
+  });
+  var combinedMinSets = _combineMinSets(
+      clauses.map((e) => [new LogicExpression.and(e)]).toList(), []);
+  List<List<LogicExpression>> minCover = _findMinCover(combinedMinSets, []);
+  var finalOperands = minCover.map((minSet) => _reduceMinSet(minSet)).toList();
+  return new LogicExpression.or(finalOperands).normalize();
+}
+
+/// Computes all assignments of literals that make the [expression] evaluate to
+/// true.
+List<Expression> _satisfiableMinTerms(Expression expression) {
+  var variables = _getVariables(expression);
+  bool hasNotSatisfiableAssignment = false;
+  List<Expression> satisfiableTerms = <Expression>[];
+  var environment = new TruthTableEnvironment(variables);
+  for (int i = 0; i < 1 << variables.length; i++) {
+    environment.setConfiguration(i);
+    if (expression.evaluate(environment)) {
+      var operands = <Expression>[];
+      for (int j = 0; j < variables.length; j++) {
+        if ((i >> j) % 2 == 0) {
+          operands.add(negate(variables[j]));
+        } else {
+          operands.add(variables[j]);
+        }
+      }
+      satisfiableTerms.add(new LogicExpression.and(operands));
+    } else {
+      hasNotSatisfiableAssignment = true;
+    }
+  }
+  if (!hasNotSatisfiableAssignment) {
+    return null;
+  }
+  return satisfiableTerms;
+}
+
+/// The [TruthTableEnvironment] simulates an entry in a truth table where the
+/// [variables] are assigned a value bases on the [configuration]. This
+/// environment can then be used to evaluate the corresponding expression from
+/// which the [variables] was found.
+class TruthTableEnvironment extends Environment {
+  final List<Expression> variables;
+  int configuration;
+
+  TruthTableEnvironment(this.variables);
+
+  void setConfiguration(int configuration) {
+    this.configuration = configuration;
+  }
+
+  @override
+  String lookUp(String name) {
+    int index = -1;
+    for (int i = 0; i < variables.length; i++) {
+      if (variables[i] is VariableExpression &&
+          variables[i].toString() == "\$$name") {
+        index = i;
+        break;
+      }
+    }
+    assert(index > -1);
+    var isTrue = (configuration >> index) % 2 == 1;
+    return isTrue ? "true" : "false";
+  }
+
+  @override
+  void validate(String name, String value, List<String> errors) {}
+}
+
+/// Combines [minSets] recursively as long as possible. Prime implicants (those
+/// that cannot be reduced further) are kept track of in [primeImplicants]. When
+/// finished the function returns all combined min sets.
+List<List<Expression>> _combineMinSets(
+    List<List<Expression>> minSets, List<List<Expression>> primeImplicants) {
+  List<List<LogicExpression>> combined = new List<List<LogicExpression>>();
+  var addedInThisIteration = new Set<List<Expression>>();
+  for (var i = 0; i < minSets.length; i++) {
+    var minSet = minSets[i];
+    var combinedMinSet = false;
+    for (var j = i + 1; j < minSets.length; j++) {
+      var otherMinSet = minSets[j];
+      if (_canCombine(minSet, otherMinSet)) {
+        combined.add(minSet.toList(growable: true)..addAll(otherMinSet));
+        addedInThisIteration.add(otherMinSet);
+        combinedMinSet = true;
+      }
+    }
+    if (!combinedMinSet && !addedInThisIteration.contains(minSet)) {
+      primeImplicants.add(minSet);
+    }
+  }
+  if (combined.isNotEmpty) {
+    // it is possible to add minsets that are identical:
+    // ex: min(1,3), min(1,2) min(2,4) min(3,4) could combine to:
+    // min(1,3,2,4) and min(1,2,3,4) which are identical.
+    // It is better to reduce such now than to deal with them in an exponential
+    // search.
+    return _combineMinSets(_uniqueMinSets(combined), primeImplicants);
+  }
+  return primeImplicants;
+}
+
+/// Two min sets can be combined if they only differ by one. We reduce min sets
+/// and find their difference based on variables.
+bool _canCombine(List<LogicExpression> a, List<LogicExpression> b) {
+  return _difference(_reduceMinSet(a).operands, _reduceMinSet(b).operands)
+          .length ==
+      1;
+}
+
+/// This function finds the fixed variables for a collection of implicants in
+/// the [minSet]. Unlike the numbering scheme above, ie 10-1 etc. we look
+/// directly at variables and count positive and negative occurrences. If we
+/// find an implicant with less variables than others, we add the variable to
+/// both the positive and negative set, which is effectively setting the value
+/// - to that variable.
+LogicExpression _reduceMinSet(List<LogicExpression> minSet) {
+  var variables = <Expression>[];
+  var positive = <Expression>[];
+  var negative = <Expression>[];
+  for (var implicant in minSet) {
+    for (var expression in implicant.operands) {
+      assert(expression is! LogicExpression);
+      var variable = expression;
+      if (_isNegatedExpression(expression)) {
+        _addIfNotPresent(expression, negative);
+        variable = _getVariables(expression)[0];
+      } else {
+        _addIfNotPresent(expression, positive);
+      }
+      _addIfNotPresent(variable, variables);
+    }
+  }
+  for (var implicant in minSet) {
+    for (var variable in variables) {
+      bool isFree = implicant.operands.where((literal) {
+        if (_isNegatedExpression(literal)) {
+          return negate(literal).compareTo(variable) == 0;
+        } else {
+          return literal.compareTo(variable) == 0;
+        }
+      }).isEmpty;
+      if (isFree) {
+        _addIfNotPresent(variable, positive);
+        _addIfNotPresent(negate(variable), negative);
+      }
+    }
+  }
+  for (var neg in negative.toList()) {
+    var pos = _findFirst(negate(neg), positive);
+    if (pos != null) {
+      positive.remove(pos);
+      negative.remove(neg);
+    }
+  }
+  return new LogicExpression.and(positive..addAll(negative));
+}
+
+/// [_findMinCover] finds the minimum cover of [primaryImplicants]. Finding a
+/// minimum set cover is NP-hard, and we are not trying to be really cleaver
+/// here. The implicants that cover only a single truth assignment can be
+/// directly added to [cover].
+List<List<Expression>> _findMinCover(
+    List<List<Expression>> primaryImplicants, List<List<Expression>> cover) {
+  var minCover = primaryImplicants.toList()..addAll(cover);
+  if (cover.isEmpty) {
+    var allImplicants = primaryImplicants.toList();
+    for (var implicant in allImplicants) {
+      for (var exp in implicant) {
+        bool found = false;
+        for (var otherImplicant in allImplicants) {
+          if (implicant != otherImplicant &&
+              _findFirst(exp, otherImplicant) != null) {
+            found = true;
+          }
+        }
+        if (!found) {
+          cover.add(implicant);
+          primaryImplicants.remove(implicant);
+          break;
+        }
+      }
+    }
+    if (_isCover(cover, primaryImplicants)) {
+      return cover;
+    }
+  }
+  for (var implicant in primaryImplicants) {
+    var newCover = cover.toList()..add(implicant);
+    if (!_isCover(newCover, primaryImplicants)) {
+      var newPrimaryList =
+          primaryImplicants.where((i) => i != implicant).toList();
+      newCover = _findMinCover(newPrimaryList, newCover);
+    }
+    if (newCover.length < minCover.length) {
+      minCover = newCover;
+    }
+  }
+  return minCover;
+}
+
+/// Checks if [cover] is a set cover of [implicants] by searching through all
+/// expressions in each implicant, to see if the cover has the same expression.
+bool _isCover(List<List<Expression>> cover, List<List<Expression>> implicants) {
+  for (var implicant in implicants) {
+    for (var exp in implicant) {
+      if (cover.where((i) => _findFirst(exp, i) != null).isEmpty) {
+        return false;
+      }
+    }
+  }
+  return true;
+}
+
+// Computes the difference between two sets of expressions in disjunctive normal
+// form. if the difference is a negation, the difference is only counted once.
+List<Expression> _difference(List<Expression> As, List<Expression> Bs) {
+  var difference = new List<Expression>()
+    ..addAll(As.where((a) => _findFirst(a, Bs) == null))
+    ..addAll(Bs.where((b) => _findFirst(b, As) == null));
+  for (var expression in difference.toList()) {
+    if (_isNegatedExpression(expression)) {
+      if (_findFirst(negate(expression), difference) != null) {
+        difference.remove(expression);
+      }
+    }
+  }
+  return difference;
+}
+
+/// Finds the first occurrence of [expressionToFind] in [expressions] or
+/// returns null.
+Expression _findFirst<Expression>(
+    expressionToFind, List<Expression> expressions) {
+  return expressions.firstWhere(
+      (otherExpression) => expressionToFind.compareTo(otherExpression) == 0,
+      orElse: () => null);
+}
+
+/// Adds [expressionToAdd] to [expressions] if is not present.
+void _addIfNotPresent(
+    Expression expressionToAdd, List<Expression> expressions) {
+  if (_findFirst(expressionToAdd, expressions) == null) {
+    expressions.add(expressionToAdd);
+  }
+}
+
+/// Computes all unique min sets, thereby disregarding the order for which they
+/// were combined.
+List<List<LogicExpression>> _uniqueMinSets(
+    List<List<LogicExpression>> minSets) {
+  var uniqueMinSets = new List<List<LogicExpression>>();
+  for (int i = 0; i < minSets.length; i++) {
+    bool foundEqual = false;
+    for (var j = i - 1; j >= 0; j--) {
+      if (_areMinSetsEqual(minSets[i], minSets[j])) {
+        foundEqual = true;
+        break;
+      }
+    }
+    if (!foundEqual) {
+      uniqueMinSets.add(minSets[i]);
+    }
+  }
+  return uniqueMinSets;
+}
+
+/// Measures if two min sets are equal by checking that [minSet1] c [minSet2]
+/// and minSet1.length == minSet2.length.
+bool _areMinSetsEqual(
+    List<LogicExpression> minSet1, List<LogicExpression> minSet2) {
+  int found = 0;
+  for (var expression in minSet1) {
+    if (_findFirst(expression, minSet2) != null) {
+      found += 1;
+    }
+  }
+  return found == minSet2.length;
+}
+
+bool _isNegatedExpression(Expression expression) {
+  return expression is VariableExpression && expression.negate ||
+      expression is ComparisonExpression && expression.negate;
+}
+
+/// Gets all variables occurring in the [expression].
+List<Expression> _getVariables(Expression expression) {
+  if (expression is LogicExpression) {
+    var variables = <Expression>[];
+    expression.operands.forEach(
+        (e) => _getVariables(e).forEach((v) => _addIfNotPresent(v, variables)));
+    return variables;
+  }
+  if (expression is VariableExpression) {
+    return [new VariableExpression(expression.variable)];
+  }
+  if (expression is ComparisonExpression) {
+    throw new Exception("Cannot use ComparisonExpression for variables");
+  }
+  return [];
+}
+
+Expression negate(Expression expression, {bool positive: false}) {
+  if (expression is LogicExpression && expression.isOr) {
+    return new LogicExpression.and(expression.operands
+        .map((e) => negate(e, positive: !positive))
+        .toList());
+  }
+  if (expression is LogicExpression && expression.isAnd) {
+    return new LogicExpression.or(expression.operands
+        .map((e) => negate(e, positive: !positive))
+        .toList());
+  }
+  if (expression is ComparisonExpression) {
+    return new ComparisonExpression(
+        expression.left, expression.right, !expression.negate);
+  }
+  if (expression is VariableExpression) {
+    return new VariableExpression(expression.variable,
+        negate: !expression.negate);
+  }
+  return expression;
+}
+
+// Convert ComparisonExpressions to VariableExpression to make sure looking
+// we can se individual variables truthiness in the [TruthTableEnvironment].
+Expression _comparisonExpressionsToVariableExpressions(Expression expression) {
+  if (expression is LogicExpression) {
+    return new LogicExpression(
+        expression.op,
+        expression.operands
+            .map((exp) => _comparisonExpressionsToVariableExpressions(exp))
+            .toList());
+  }
+  if (expression is ComparisonExpression) {
+    return new VariableExpression(
+        new Variable(
+            expression.left.name + _comparisonToken + expression.right),
+        negate: expression.negate);
+  }
+  return expression;
+}
+
+Expression _recoverComparisonExpressions(Expression expression) {
+  if (expression is LogicExpression) {
+    return new LogicExpression(
+        expression.op,
+        expression.operands
+            .map((exp) => _recoverComparisonExpressions(exp))
+            .toList());
+  }
+  if (expression is VariableExpression &&
+      expression.variable.name.contains(_comparisonToken)) {
+    int tokenIndex = expression.variable.name.indexOf(_comparisonToken);
+    return new ComparisonExpression(
+        new Variable(expression.variable.name.substring(0, tokenIndex)),
+        expression.variable.name
+            .substring(tokenIndex + _comparisonToken.length),
+        expression.negate);
+  }
+  return expression;
+}
diff --git a/pkg/status_file/lib/src/expression.dart b/pkg/status_file/lib/src/expression.dart
index 386464f..16a5bbd 100644
--- a/pkg/status_file/lib/src/expression.dart
+++ b/pkg/status_file/lib/src/expression.dart
@@ -89,10 +89,10 @@
 }
 
 /// A reference to a variable.
-class _Variable {
+class Variable {
   final String name;
 
-  _Variable(this.name);
+  Variable(this.name);
 
   String lookup(Environment environment) {
     var value = environment.lookUp(name);
@@ -116,12 +116,12 @@
 /// $variable == someValue
 /// ```
 /// Negate the result if [negate] is true.
-class _ComparisonExpression extends Expression {
-  final _Variable left;
+class ComparisonExpression extends Expression {
+  final Variable left;
   final String right;
   final bool negate;
 
-  _ComparisonExpression(this.left, this.right, this.negate);
+  ComparisonExpression(this.left, this.right, this.negate);
 
   void validate(Environment environment, List<String> errors) {
     environment.validate(left.name, right, errors);
@@ -134,15 +134,15 @@
   Expression normalize() {
     // Replace Boolean comparisons with a straight variable expression.
     if (right == "true") {
-      return new _VariableExpression(left, negate: negate);
+      return new VariableExpression(left, negate: negate);
     } else if (right == "false") {
-      return new _VariableExpression(left, negate: !negate);
+      return new VariableExpression(left, negate: !negate);
     } else {
       return this;
     }
   }
 
-  int _compareToMyType(_ComparisonExpression other) {
+  int _compareToMyType(ComparisonExpression other) {
     if (left.name != other.left.name) {
       return left.name.compareTo(other.left.name);
     }
@@ -178,11 +178,11 @@
 /// ```
 ///     $variable != true
 /// ```
-class _VariableExpression extends Expression {
-  final _Variable variable;
+class VariableExpression extends Expression {
+  final Variable variable;
   final bool negate;
 
-  _VariableExpression(this.variable, {this.negate = false});
+  VariableExpression(this.variable, {this.negate = false});
 
   void validate(Environment environment, List<String> errors) {
     // It must be a Boolean, so it should allow either Boolean value.
@@ -195,7 +195,7 @@
   /// Variable expressions are fine as they are.
   Expression normalize() => this;
 
-  int _compareToMyType(_VariableExpression other) {
+  int _compareToMyType(VariableExpression other) {
     if (variable.name != other.variable.name) {
       return variable.name.compareTo(other.variable.name);
     }
@@ -209,13 +209,19 @@
 }
 
 /// A logical `||` or `&&` expression.
-class _LogicExpression extends Expression {
+class LogicExpression extends Expression {
   /// The operator, `||` or `&&`.
   final String op;
 
   final List<Expression> operands;
 
-  _LogicExpression(this.op, this.operands);
+  LogicExpression(this.op, this.operands);
+
+  LogicExpression.and(this.operands) : op = _Token.and;
+  LogicExpression.or(this.operands) : op = _Token.or;
+
+  bool get isAnd => op == _Token.and;
+  bool get isOr => op == _Token.or;
 
   void validate(Environment environment, List<String> errors) {
     for (var operand in operands) {
@@ -238,18 +244,18 @@
     // order.
 
     // Recurse into the operands, sort them, and remove duplicates.
-    var normalized = new _LogicExpression(
+    var normalized = new LogicExpression(
             op, operands.map((operand) => operand.normalize()).toList())
         .operands;
     normalized = flatten(normalized);
     var ordered = new SplayTreeSet<Expression>.from(normalized).toList();
-    return new _LogicExpression(op, ordered);
+    return new LogicExpression(op, ordered);
   }
 
   List<Expression> flatten(List<Expression> operands) {
     var newOperands = <Expression>[];
     for (var operand in operands) {
-      if (operand is _LogicExpression && operand.op == op) {
+      if (operand is LogicExpression && operand.op == op) {
         newOperands.addAll(operand.operands);
       } else {
         newOperands.add(operand);
@@ -258,7 +264,7 @@
     return newOperands;
   }
 
-  int _compareToMyType(_LogicExpression other) {
+  int _compareToMyType(LogicExpression other) {
     // Put "&&" before "||".
     if (op != other.op) return op == _Token.and ? -1 : 1;
 
@@ -280,7 +286,7 @@
   String toString() {
     String parenthesize(Expression operand) {
       var result = operand.toString();
-      if (op == "&&" && operand is _LogicExpression && operand.op == "||") {
+      if (isAnd && operand is LogicExpression && operand.isOr) {
         result = "($result)";
       }
 
@@ -316,7 +322,7 @@
 
     if (operands.length == 1) return operands.single;
 
-    return new _LogicExpression(_Token.or, operands);
+    return new LogicExpression(_Token.or, operands);
   }
 
   Expression _parseAnd() {
@@ -327,10 +333,12 @@
 
     if (operands.length == 1) return operands.single;
 
-    return new _LogicExpression(_Token.and, operands);
+    return new LogicExpression(_Token.and, operands);
   }
 
   Expression _parsePrimary() {
+    // TODO(mkroghj,rnystrom) If DNF is enforced, the need to parse parenthesis
+    // should go away. Remove this when all section headers has dnf'ed.
     if (_scanner.match(_Token.leftParen)) {
       var value = _parseOr();
       if (!_scanner.match(_Token.rightParen)) {
@@ -357,7 +365,7 @@
           "Expected identifier in expression, got ${_scanner.current}");
     }
 
-    var left = new _Variable(_scanner.current);
+    var left = new Variable(_scanner.current);
     _scanner.advance();
 
     if (!negate &&
@@ -371,9 +379,9 @@
       }
 
       var right = _scanner.advance();
-      return new _ComparisonExpression(left, right, isNotEquals);
+      return new ComparisonExpression(left, right, isNotEquals);
     } else {
-      return new _VariableExpression(left, negate: negate);
+      return new VariableExpression(left, negate: negate);
     }
   }
 }
diff --git a/pkg/status_file/test/status_expression_dnf_test.dart b/pkg/status_file/test/status_expression_dnf_test.dart
new file mode 100644
index 0000000..475b664
--- /dev/null
+++ b/pkg/status_file/test/status_expression_dnf_test.dart
@@ -0,0 +1,72 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import "package:expect/expect.dart";
+import "package:status_file/src/expression.dart";
+import 'package:status_file/src/disjunctive.dart';
+
+main() {
+  testDnf();
+}
+
+void shouldDnfTo(String input, String expected) {
+  var expression = Expression.parse(input);
+  Expect.equals(expected, toDisjunctiveNormalForm(expression).toString());
+}
+
+void shouldDnfToExact(String input, Expression expected) {
+  var expression = Expression.parse(input);
+  Expect.equals(expected, toDisjunctiveNormalForm(expression));
+}
+
+void shouldBeSame(String input) {
+  shouldDnfTo(input, input);
+}
+
+void testDnf() {
+  shouldBeSame(r'$a');
+  shouldBeSame(r'$a || $b');
+  shouldBeSame(r'$a || $b && $c');
+  shouldBeSame(r'$a && $b || $b && $c');
+  shouldBeSame(r'$a && $b && $c');
+  shouldBeSame(r'$a || $b || $c');
+  shouldBeSame(r'!$a');
+  shouldBeSame(r'!$a && $b');
+  shouldBeSame(r'$a && !$b');
+  shouldBeSame(r'$a && $b');
+  shouldBeSame(r'!$a && !$b');
+
+  // Testing True.
+  shouldDnfToExact(r'$a || !$a', T);
+  shouldDnfToExact(r'!$a || !$b || $a && $b', T);
+
+  // Testing False
+  shouldDnfToExact(r'$a && !$a', F);
+  shouldDnfToExact(r'($a || $b) && !$a && !$b', F);
+
+  // Testing dnf and simple minimization (duplicates).
+  shouldDnfTo(r'$a && ($b || $c)', r'$a && $b || $a && $c');
+  shouldDnfTo(r'($a || $b) && ($c || $d)',
+      r'$a && $c || $a && $d || $b && $c || $b && $d');
+
+  // Testing minimizing by complementation
+  // The following two examples can be found here:
+  // https://en.wikipedia.org/wiki/Quine%E2%80%93McCluskey_algorithm
+  shouldDnfTo(
+      r"$a && !$b && !$c && !$d || $a && !$b && !$c && $d || "
+      r"$a && !$b && $c && !$d || $a && !$b && $c && $d",
+      r"$a && !$b");
+
+  shouldDnfTo(
+      r"!$a && $b && !$c && !$d || $a && !$b && !$c && !$d || "
+      r"$a && !$b && $c && !$d || $a && !$b && $c && $d || $a && $b && !$c && !$d ||"
+      r" $a && $b && $c && $d || $a && !$b && !$c && $d || $a && $b && $c && !$d",
+      r"$a && !$b || $a && $c || $b && !$c && !$d");
+
+  // Test that an expression is converted to dnf and minified correctly.
+  shouldDnfTo(r'($a || $b) && ($a || $c)', r'$a || $b && $c');
+  shouldDnfTo(r'(!$a || $b) && ($a || $b)', r'$b');
+  shouldDnfTo(r'($a || $b || $c) && (!$a || !$b)',
+      r'$a && !$b || !$a && $b || !$b && $c');
+}
diff --git a/pkg/vm/bin/precompiler_kernel_front_end.dart b/pkg/vm/bin/gen_kernel.dart
similarity index 62%
rename from pkg/vm/bin/precompiler_kernel_front_end.dart
rename to pkg/vm/bin/gen_kernel.dart
index 4a0ddae..c39bb2b 100644
--- a/pkg/vm/bin/precompiler_kernel_front_end.dart
+++ b/pkg/vm/bin/gen_kernel.dart
@@ -2,12 +2,14 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+import 'dart:async';
 import 'dart:io';
 
 import 'package:args/args.dart' show ArgParser, ArgResults;
 import 'package:front_end/src/api_prototype/front_end.dart';
 import 'package:kernel/binary/ast_to_binary.dart';
 import 'package:kernel/kernel.dart' show Program;
+import 'package:kernel/src/tool/batch_util.dart' as batch_util;
 import 'package:kernel/target/targets.dart' show TargetFlags;
 import 'package:kernel/target/vm.dart' show VmTarget;
 import 'package:vm/kernel_front_end.dart' show compileToKernel;
@@ -18,11 +20,15 @@
   ..addOption('packages', help: 'Path to .packages file', defaultsTo: null)
   ..addOption('output',
       abbr: 'o', help: 'Path to resulting dill file', defaultsTo: null)
+  ..addFlag('aot',
+      help:
+          'Produce kernel file for AOT compilation (enables global transformations).',
+      defaultsTo: false)
   ..addFlag('strong-mode', help: 'Enable strong mode', defaultsTo: true);
 
 final String _usage = '''
-Usage: dart pkg/vm/bin/precompiler_kernel_front_end.dart --platform vm_platform_strong.dill [options] input.dart
-Compiles Dart sources to a kernel binary file for the Dart 2.0 AOT compiler.
+Usage: dart pkg/vm/bin/gen_kernel.dart --platform vm_platform_strong.dill [options] input.dart
+Compiles Dart sources to a kernel binary file for Dart VM.
 
 Options:
 ${_argParser.usage}
@@ -39,18 +45,27 @@
 };
 
 main(List<String> arguments) async {
+  if (arguments.isNotEmpty && arguments.last == '--batch') {
+    await runBatchModeCompiler();
+  } else {
+    exit(await compile(arguments));
+  }
+}
+
+Future<int> compile(List<String> arguments) async {
   final ArgResults options = _argParser.parse(arguments);
   final String platformKernel = options['platform'];
 
   if ((options.rest.length != 1) || (platformKernel == null)) {
     print(_usage);
-    exit(_badUsageExitCode);
+    return _badUsageExitCode;
   }
 
   final String filename = options.rest.single;
   final String kernelBinaryFilename = options['output'] ?? "$filename.dill";
   final String packages = options['packages'];
   final bool strongMode = options['strong-mode'];
+  final bool aot = options['aot'];
 
   int errors = 0;
 
@@ -74,14 +89,44 @@
 
   Program program = await compileToKernel(
       Uri.base.resolve(filename), compilerOptions,
-      aot: true);
+      aot: aot);
 
   if ((errors > 0) || (program == null)) {
-    exit(_compileTimeErrorExitCode);
+    return _compileTimeErrorExitCode;
   }
 
   final IOSink sink = new File(kernelBinaryFilename).openWrite();
   final BinaryPrinter printer = new BinaryPrinter(sink);
   printer.writeProgramFile(program);
   await sink.close();
+
+  return 0;
+}
+
+Future runBatchModeCompiler() async {
+  await batch_util.runBatch((List<String> arguments) async {
+    // TODO(kustermann): Once we know where the new IKG api is and how to use
+    // it, we should take advantage of it.
+    //
+    // Important things to note:
+    //
+    //   * Our global transformations must never alter the AST structures which
+    //     the statefull IKG generator keeps across compilations.
+    //     => We need to make our own copy.
+    //
+    //   * We must ensure the stateful IKG generator keeps giving us all the
+    //     compile-time errors, warnings, hints for every compilation and we
+    //     report the compilation result accordingly.
+    //
+    final exitCode = await compile(arguments);
+    switch (exitCode) {
+      case 0:
+        return batch_util.CompilerOutcome.Ok;
+      case _compileTimeErrorExitCode:
+      case _badUsageExitCode:
+        return batch_util.CompilerOutcome.Fail;
+      default:
+        throw 'Could not obtain correct exit code from compiler.';
+    }
+  });
 }
diff --git a/pkg/vm/bin/kernel_service.dart b/pkg/vm/bin/kernel_service.dart
index 96d5b96..0776a9f 100644
--- a/pkg/vm/bin/kernel_service.dart
+++ b/pkg/vm/bin/kernel_service.dart
@@ -20,8 +20,8 @@
 ///
 library runtime.tools.kernel_service;
 
-import 'dart:async' show Future;
-import 'dart:io' show Platform hide FileSystemEntity;
+import 'dart:async' show Future, ZoneSpecification, runZoned;
+import 'dart:io' show Platform, stderr hide FileSystemEntity;
 import 'dart:isolate';
 import 'dart:typed_data' show Uint8List;
 
@@ -77,7 +77,11 @@
       };
   }
 
-  Future<Program> compile(Uri script);
+  Future<Program> compile(Uri script) {
+    return runWithPrintToStderr(() => compileInternal(script));
+  }
+
+  Future<Program> compileInternal(Uri script);
 }
 
 class IncrementalCompiler extends Compiler {
@@ -88,7 +92,7 @@
       : super(fileSystem, platformKernel, strongMode: strongMode);
 
   @override
-  Future<Program> compile(Uri script) async {
+  Future<Program> compileInternal(Uri script) async {
     if (generator == null) {
       generator = await IncrementalKernelGenerator.newInstance(options, script);
     }
@@ -111,7 +115,7 @@
       : super(fileSystem, platformKernel, strongMode: strongMode);
 
   @override
-  Future<Program> compile(Uri script) async {
+  Future<Program> compileInternal(Uri script) async {
     return requireMain
         ? kernelForProgram(script, options)
         : kernelForBuildUnit([script], options..chaseDependencies = true);
@@ -371,3 +375,9 @@
 
   String toString() => "_CompilationCrash(${errorString})";
 }
+
+Future<T> runWithPrintToStderr<T>(Future<T> f()) {
+  return runZoned(() => new Future<T>(f),
+      zoneSpecification: new ZoneSpecification(
+          print: (_1, _2, _3, String line) => stderr.writeln(line)));
+}
diff --git a/pkg/vm/lib/kernel_front_end.dart b/pkg/vm/lib/kernel_front_end.dart
index fe25f0e..11506fc 100644
--- a/pkg/vm/lib/kernel_front_end.dart
+++ b/pkg/vm/lib/kernel_front_end.dart
@@ -13,8 +13,7 @@
 import 'package:kernel/ast.dart' show Program;
 import 'package:kernel/core_types.dart' show CoreTypes;
 
-// TODO(alexmarkov): Move this transformation to pkg/vm.
-import 'package:kernel/transformations/precompiler.dart' as transformPrecompiler
+import 'transformations/cha_devirtualization.dart' as chaDevirtualization
     show transformProgram;
 
 /// Generates a kernel representation of the program whose main library is in
@@ -39,6 +38,6 @@
   // TODO(alexmarkov): AOT-specific whole-program transformations.
 
   if (strongMode) {
-    transformPrecompiler.transformProgram(coreTypes, program);
+    chaDevirtualization.transformProgram(coreTypes, program);
   }
 }
diff --git a/pkg/vm/lib/metadata/direct_call.dart b/pkg/vm/lib/metadata/direct_call.dart
new file mode 100644
index 0000000..46f1fea
--- /dev/null
+++ b/pkg/vm/lib/metadata/direct_call.dart
@@ -0,0 +1,42 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library vm.metadata.direct_call;
+
+import 'package:kernel/ast.dart';
+
+/// Metadata for annotating method invocations converted to direct calls.
+class DirectCallMetadata {
+  final Member target;
+  final bool checkReceiverForNull;
+
+  DirectCallMetadata(this.target, this.checkReceiverForNull);
+}
+
+/// Repository for [DirectCallMetadata].
+class DirectCallMetadataRepository
+    extends MetadataRepository<DirectCallMetadata> {
+  @override
+  final String tag = 'vm.direct-call.metadata';
+
+  @override
+  final Map<TreeNode, DirectCallMetadata> mapping =
+      <TreeNode, DirectCallMetadata>{};
+
+  @override
+  void writeToBinary(DirectCallMetadata metadata, BinarySink sink) {
+    sink.writeCanonicalNameReference(getCanonicalNameOfMember(metadata.target));
+    sink.writeByte(metadata.checkReceiverForNull ? 1 : 0);
+  }
+
+  @override
+  DirectCallMetadata readFromBinary(BinarySource source) {
+    var target = source.readCanonicalNameReference()?.getReference()?.asMember;
+    if (target == null) {
+      throw 'DirectCallMetadata should have a non-null target';
+    }
+    var checkReceiverForNull = (source.readByte() != 0);
+    return new DirectCallMetadata(target, checkReceiverForNull);
+  }
+}
diff --git a/pkg/kernel/lib/transformations/precompiler.dart b/pkg/vm/lib/transformations/cha_devirtualization.dart
similarity index 75%
rename from pkg/kernel/lib/transformations/precompiler.dart
rename to pkg/vm/lib/transformations/cha_devirtualization.dart
index 586941f..cdc2ce4 100644
--- a/pkg/kernel/lib/transformations/precompiler.dart
+++ b/pkg/vm/lib/transformations/cha_devirtualization.dart
@@ -2,54 +2,21 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library kernel.transformations.precompiler;
+library vm.transformations.cha_devirtualization;
 
-import '../ast.dart';
+import 'package:kernel/ast.dart';
+import 'package:kernel/core_types.dart' show CoreTypes;
+import 'package:kernel/class_hierarchy.dart' show ClosedWorldClassHierarchy;
 
-import '../core_types.dart' show CoreTypes;
+import '../metadata/direct_call.dart';
 
-import '../class_hierarchy.dart' show ClosedWorldClassHierarchy;
-
-/// Performs whole-program optimizations for Dart VM precompiler.
-/// Assumes strong mode and closed world.
+/// Devirtualization of method invocations based on the class hierarchy
+/// analysis. Assumes strong mode and closed world.
 Program transformProgram(CoreTypes coreTypes, Program program) {
   new _Devirtualization(coreTypes, program).visitProgram(program);
   return program;
 }
 
-class DirectCallMetadata {
-  final Member target;
-  final bool checkReceiverForNull;
-
-  DirectCallMetadata(this.target, this.checkReceiverForNull);
-}
-
-class DirectCallMetadataRepository
-    extends MetadataRepository<DirectCallMetadata> {
-  @override
-  final String tag = 'vm.direct-call.metadata';
-
-  @override
-  final Map<TreeNode, DirectCallMetadata> mapping =
-      <TreeNode, DirectCallMetadata>{};
-
-  @override
-  void writeToBinary(DirectCallMetadata metadata, BinarySink sink) {
-    sink.writeCanonicalNameReference(getCanonicalNameOfMember(metadata.target));
-    sink.writeByte(metadata.checkReceiverForNull ? 1 : 0);
-  }
-
-  @override
-  DirectCallMetadata readFromBinary(BinarySource source) {
-    var target = source.readCanonicalNameReference()?.getReference()?.asMember;
-    if (target == null) {
-      throw 'DirectCallMetadata should have a non-null target';
-    }
-    var checkReceiverForNull = (source.readByte() != 0);
-    return new DirectCallMetadata(target, checkReceiverForNull);
-  }
-}
-
 /// Resolves targets of instance method invocations, property getter
 /// invocations and property setters invocations using strong mode
 /// types / interface targets and closed-world class hierarchy analysis.
diff --git a/pkg/vm/tool/dart2 b/pkg/vm/tool/dart2
index c5f07b2..d849f5b 100755
--- a/pkg/vm/tool/dart2
+++ b/pkg/vm/tool/dart2
@@ -34,6 +34,7 @@
 exec "$BIN_DIR"/dart                                                           \
      --strong                                                                  \
      --reify-generic-functions                                                 \
+     --limit-ints-to-64-bits                                                   \
      --dfe="${BIN_DIR}/gen/kernel-service.dart.snapshot"                       \
      --kernel-binaries="${BIN_DIR}"                                            \
      "$@"
diff --git a/pkg/vm/tool/gen_kernel b/pkg/vm/tool/gen_kernel
new file mode 100755
index 0000000..ec122ec
--- /dev/null
+++ b/pkg/vm/tool/gen_kernel
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+# Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+# Script for generating kernel files using Dart 2 pipeline: Fasta with
+# strong mode enabled.
+
+set -e
+
+function follow_links() {
+  file="$1"
+  while [ -h "$file" ]; do
+    # On Mac OS, readlink -f doesn't work.
+    file="$(readlink "$file")"
+  done
+  echo "$file"
+}
+
+# Unlike $0, $BASH_SOURCE points to the absolute path of this file.
+PROG_NAME="$(follow_links "$BASH_SOURCE")"
+
+# Handle the case where dart-sdk/bin has been symlinked to.
+CUR_DIR="$(cd "${PROG_NAME%/*}" ; pwd -P)"
+
+SDK_DIR="$CUR_DIR/../../.."
+
+if [[ `uname` == 'Darwin' ]]; then
+  DART="$SDK_DIR/tools/sdks/mac/dart-sdk/bin/dart"
+  OUT_DIR="$SDK_DIR/xcodebuild"
+else
+  DART="$SDK_DIR/tools/sdks/linux/dart-sdk/bin/dart"
+  OUT_DIR="$SDK_DIR/out"
+fi
+
+exec "$DART" "${SDK_DIR}/pkg/vm/bin/gen_kernel.dart" $@
diff --git a/pkg/vm/tool/precompiler2 b/pkg/vm/tool/precompiler2
index 83c6e4a..6c4190d 100755
--- a/pkg/vm/tool/precompiler2
+++ b/pkg/vm/tool/precompiler2
@@ -7,7 +7,7 @@
 # strong mode enabled, AOT specific Kernel-to-Kernel transformations and
 # Dart VM precompiler with strong mode semantics and reified generics.
 
-# Parse incomming arguments and extract the value of --packages option if any
+# Parse incoming arguments and extract the value of --packages option if any
 # was passed. Split options (--xyz) and non-options into two separate arrays.
 # All options will be passed to dart_bootstrap, while --packages will be
 # passed to Fasta.
@@ -67,8 +67,9 @@
 BIN_DIR="$OUT_DIR/$DART_CONFIGURATION"
 
 # Step 1: Generate Kernel binary from the input Dart source.
-"$BIN_DIR"/dart "${SDK_DIR}/pkg/vm/bin/precompiler_kernel_front_end.dart"      \
+"$BIN_DIR"/dart "${SDK_DIR}/pkg/vm/bin/gen_kernel.dart"                        \
      --platform "${BIN_DIR}/vm_platform_strong.dill"                           \
+     --aot                                                                     \
      $PACKAGES                                                                 \
      -o "$SNAPSHOT_FILE.dill"                                                  \
      "$SOURCE_FILE"
diff --git a/runtime/include/dart_api.h b/runtime/include/dart_api.h
index 4c7e36a..f14e08b 100644
--- a/runtime/include/dart_api.h
+++ b/runtime/include/dart_api.h
@@ -943,6 +943,13 @@
 DART_EXPORT void Dart_NotifyIdle(int64_t deadline);
 
 /**
+ * Notifies the VM that the system is running low on memory.
+ *
+ * Does not require a current isolate. Only valid after calling Dart_Initialize.
+ */
+DART_EXPORT void Dart_NotifyLowMemory();
+
+/**
  * Notifies the VM that the current thread should not be profiled until a
  * matching call to Dart_ThreadEnableProfiling is made.
  *
diff --git a/runtime/lib/array.dart b/runtime/lib/array.dart
index 1326505..4800c82 100644
--- a/runtime/lib/array.dart
+++ b/runtime/lib/array.dart
@@ -9,7 +9,11 @@
 
   E operator [](int index) native "List_getIndexed";
 
-  void operator []=(int index, E value) native "List_setIndexed";
+  void operator []=(int index, E value) {
+    _setIndexed(index, value);
+  }
+
+  void _setIndexed(int index, E value) native "List_setIndexed";
 
   int get length native "List_getLength";
 
diff --git a/runtime/lib/double.dart b/runtime/lib/double.dart
index 9b053c0..4c88b4e 100644
--- a/runtime/lib/double.dart
+++ b/runtime/lib/double.dart
@@ -54,7 +54,7 @@
 
   double operator -() native "Double_flipSignBit";
 
-  bool operator ==(other) {
+  bool operator ==(Object other) {
     return (other is num) && _equal(other.toDouble());
   }
 
diff --git a/runtime/lib/function.dart b/runtime/lib/function.dart
index dee3666..ebaa3ec 100644
--- a/runtime/lib/function.dart
+++ b/runtime/lib/function.dart
@@ -5,7 +5,7 @@
 // part of "core_patch.dart";
 
 class _Closure implements Function {
-  bool operator ==(other) native "Closure_equals";
+  bool operator ==(Object other) native "Closure_equals";
 
   int get hashCode {
     if (_hash == null) {
diff --git a/runtime/lib/growable_array.dart b/runtime/lib/growable_array.dart
index 009c84c..7252478 100644
--- a/runtime/lib/growable_array.dart
+++ b/runtime/lib/growable_array.dart
@@ -140,7 +140,11 @@
 
   T operator [](int index) native "GrowableList_getIndexed";
 
-  void operator []=(int index, T value) native "GrowableList_setIndexed";
+  void operator []=(int index, T value) {
+    _setIndexed(index, value);
+  }
+
+  void _setIndexed(int index, T value) native "GrowableList_setIndexed";
 
   void add(T value) {
     var len = length;
diff --git a/runtime/lib/integers.dart b/runtime/lib/integers.dart
index 37bb589..46562e6 100644
--- a/runtime/lib/integers.dart
+++ b/runtime/lib/integers.dart
@@ -124,7 +124,7 @@
   bool _greaterThanFromInteger(int other)
       native "Integer_greaterThanFromInteger";
 
-  bool operator ==(other) {
+  bool operator ==(Object other) {
     if (other is num) {
       return other._equalToInteger(this);
     }
diff --git a/runtime/lib/internal_patch.dart b/runtime/lib/internal_patch.dart
index 34f55c4..f6bc981 100644
--- a/runtime/lib/internal_patch.dart
+++ b/runtime/lib/internal_patch.dart
@@ -24,6 +24,12 @@
 List<T> makeFixedListUnmodifiable<T>(List<T> fixedLengthList)
     native "Internal_makeFixedListUnmodifiable";
 
+@patch
+Object extractTypeArguments<T>(T instance, Function extract) {
+  // TODO(31371): Implement this.
+  throw new UnimplementedError();
+}
+
 class VMLibraryHooks {
   // Example: "dart:isolate _Timer._factory"
   static var timerFactory;
diff --git a/runtime/observatory/tests/observatory_ui/observatory_ui.status b/runtime/observatory/tests/observatory_ui/observatory_ui.status
index 8c3c55f..1937c70 100644
--- a/runtime/observatory/tests/observatory_ui/observatory_ui.status
+++ b/runtime/observatory/tests/observatory_ui/observatory_ui.status
@@ -2,7 +2,10 @@
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
 
-[ ! $browser || $runtime == drt || $fast_startup]
+[ $runtime == chrome || $runtime == ff || $runtime == safari ]
+heap_snapshot/element_test: RuntimeError # Issue 27925
+
+[ $runtime == drt || !$browser || $fast_startup ]
 *: SkipByDesign
 
 [ $runtime == ff || $runtime == safari ]
@@ -10,5 +13,3 @@
 cpu_profile_table: Skip
 persistent_handles_page: Skip
 
-[ $runtime == ff || $runtime == chrome || $runtime == safari ]
-heap_snapshot/element_test: RuntimeError # Issue 27925
diff --git a/runtime/observatory/tests/service/service.status b/runtime/observatory/tests/service/service.status
index 177c74b..e8d35c6 100644
--- a/runtime/observatory/tests/service/service.status
+++ b/runtime/observatory/tests/service/service.status
@@ -1,109 +1,103 @@
 # Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
-
 # Flaky failures
+field_script_test: Pass, RuntimeError
 get_allocation_samples_test: Pass, RuntimeError # Inconsistent stack trace
-reload_sources_test: Pass, Slow # Reload is slow on the bots
+get_isolate_rpc_test: Pass, RuntimeError # Issue 29324
 get_retained_size_rpc_test: Pass, RuntimeError # Issue 28193
 isolate_lifecycle_test: Pass, RuntimeError # Issue 24174
-field_script_test: Pass, RuntimeError
-get_isolate_rpc_test: Pass, RuntimeError # Issue 29324
+reload_sources_test: Pass, Slow # Reload is slow on the bots
 
-[ $system == windows && $mode == debug && $checked ]
-async_scope_test: Pass, Slow
+[ $arch == arm ]
+process_service_test: Pass, Fail # Issue 24344
 
-[$runtime == vm && $compiler == none && $system == fuchsia]
-*: Skip  # Not yet triaged.
+[ $compiler == app_jit ]
+bad_reload_test: RuntimeError # Issue 27806
+complex_reload_test: RuntimeError # Issue 27806
+debugger_location_second_test: Skip # Issue 28180
+evaluate_activation_test/instance: RuntimeError # Issue 27806
+evaluate_activation_test/scope: RuntimeError # Issue 27806
+get_object_rpc_test: RuntimeError # Issue 27806
+get_source_report_test: RuntimeError # Issue 27806
+next_through_closure_test: RuntimeError # Snapshots don't include source and generated source is not 1-to-1. The column offsets are thus off.
+next_through_create_list_and_map_test: RuntimeError # Snapshots don't include source and generated source is not 1-to-1. The column offsets are thus off.
+next_through_for_each_loop_test: RuntimeError # Snapshots don't include source and generated source is not 1-to-1. The column offsets are thus off.
+pause_on_unhandled_async_exceptions2_test: Pass, RuntimeError, Timeout, Crash # Issue 29178
+set_name_rpc_test: RuntimeError # Issue 27806
+step_through_constructor_calls_test: RuntimeError # Snapshots don't include source and generated source is not 1-to-1. The column offsets are thus off.
+step_through_function_test: RuntimeError # Snapshots don't include source and generated source is not 1-to-1. The column offsets are thus off.
+step_through_switch_test: RuntimeError # Snapshots don't include source and generated source is not 1-to-1. The column offsets are thus off.
+step_through_switch_with_continue_test: RuntimeError # Snapshots don't include source and generated source is not 1-to-1. The column offsets are thus off.
+unused_changes_in_last_reload_test: RuntimeError # Issue 27806
 
-[ $system == windows ]
-async_generator_breakpoint_test: Skip # Issue 29145
+# Tests with known analyzer issues
+[ $compiler == dart2analyzer ]
+developer_extension_test: SkipByDesign
+evaluate_activation_in_method_class_test: CompileTimeError # Issue 24478
+get_isolate_after_language_error_test: SkipByDesign
+
+[ $compiler == dartk ]
+next_through_simple_async_test: Pass, Fail # Issue 29145
 
 # Kernel version of tests
 [ $compiler != dartk ]
 add_breakpoint_rpc_kernel_test: SkipByDesign # kernel specific version of add_breakpoint_rpc_test
 
-[ $compiler == dartk ]
-next_through_simple_async_test: Pass, Fail # Issue 29145
-
-[ ($compiler == none || $compiler == precompiler) && ($runtime == vm || $runtime == dart_precompiled) ]
-evaluate_activation_test/instance: RuntimeError # http://dartbug.com/20047
-evaluate_activation_test/scope: RuntimeError # http://dartbug.com/20047
+[ $compiler == precompiler ]
+*: Skip # Issue 24651
 
 # Debugger location tests are slow in debug mode.
 [ $mode == debug ]
 debugger_location_second_test: Pass, Slow
 debugger_location_test: Pass, Slow
 
-# These tests are slow on simulators.
-[ $arch == simarm || $arch == simarm64 ]
-*: Pass, Slow
+# Service protocol is not supported in product mode.
+[ $mode == product ]
+*: SkipByDesign
+
+[ $system == windows ]
+async_generator_breakpoint_test: Skip # Issue 29145
+dev_fs_http_put_weird_char_test: Skip # Windows disallows carriage returns in paths
+dev_fs_weird_char_test: Skip # Windows disallows question mark in paths
+
+[ $builder_tag == strong && $compiler == dart2analyzer ]
+*: Skip # Issue 28649
+
+[ $compiler == none && $runtime == vm && $system == fuchsia ]
+*: Skip # Not yet triaged.
+
+[ $mode == debug && $system == windows && $checked ]
+async_scope_test: Pass, Slow
+
 [ $mode == debug && ($arch == simarm || $arch == simarm64) ]
 *: SkipSlow
 
-# All tests use dart:io
-[ $browser || $compiler == dart2js ]
-*: SkipByDesign
+[ ($compiler == none || $compiler == precompiler) && ($runtime == dart_precompiled || $runtime == vm) ]
+evaluate_activation_test/instance: RuntimeError # http://dartbug.com/20047
+evaluate_activation_test/scope: RuntimeError # http://dartbug.com/20047
 
-# Tests with known analyzer issues
-[ $compiler == dart2analyzer ]
-developer_extension_test: SkipByDesign
-get_isolate_after_language_error_test: SkipByDesign
+[ $arch != ia32 || $arch != x64 || $system != linux ]
+get_native_allocation_samples_test: Skip # Unsupported.
 
-[ $compiler == dart2analyzer && $builder_tag == strong ]
-*: Skip # Issue 28649
-
-[ $arch == arm ]
-process_service_test: Pass, Fail # Issue 24344
-
-[ $compiler == precompiler ]
-*: Skip # Issue 24651
-
-[ $compiler == app_jit ]
-complex_reload_test: RuntimeError # Issue 27806
-bad_reload_test: RuntimeError # Issue 27806
-unused_changes_in_last_reload_test: RuntimeError # Issue 27806
-evaluate_activation_test/instance: RuntimeError # Issue 27806
-evaluate_activation_test/scope: RuntimeError # Issue 27806
-get_object_rpc_test: RuntimeError # Issue 27806
-get_source_report_test: RuntimeError # Issue 27806
-set_name_rpc_test: RuntimeError # Issue 27806
-pause_on_unhandled_async_exceptions2_test: Pass, RuntimeError, Timeout, Crash # Issue 29178
-
-debugger_location_second_test: Skip # Issue 28180
-
-next_through_for_each_loop_test: RuntimeError # Snapshots don't include source and generated source is not 1-to-1. The column offsets are thus off.
-next_through_create_list_and_map_test: RuntimeError # Snapshots don't include source and generated source is not 1-to-1. The column offsets are thus off.
-next_through_closure_test: RuntimeError # Snapshots don't include source and generated source is not 1-to-1. The column offsets are thus off.
-step_through_switch_test: RuntimeError # Snapshots don't include source and generated source is not 1-to-1. The column offsets are thus off.
-step_through_constructor_calls_test: RuntimeError # Snapshots don't include source and generated source is not 1-to-1. The column offsets are thus off.
-step_through_function_test: RuntimeError # Snapshots don't include source and generated source is not 1-to-1. The column offsets are thus off.
-step_through_switch_with_continue_test: RuntimeError # Snapshots don't include source and generated source is not 1-to-1. The column offsets are thus off.
-
-[ $compiler == dart2analyzer ]
-evaluate_activation_in_method_class_test: CompileTimeError # Issue 24478
+# These tests are slow on simulators.
+[ $arch == simarm || $arch == simarm64 ]
+*: Pass, Slow
 
 [ $arch == simdbc || $arch == simdbc64 ]
-implicit_getter_setter_test: RuntimeError # Field guards unimplemented.
 async_single_step_exception_test: RuntimeError # Issue 29218
-
+implicit_getter_setter_test: RuntimeError # Field guards unimplemented.
 next_through_catch_test: RuntimeError # Debugging StringConcatenation doesn't work the same on simdbc as on other platforms (bug #28975).
 next_through_simple_async_test: RuntimeError # Debugging StringConcatenation doesn't work the same on simdbc as on other platforms (bug #28975).
 next_through_simple_linear_2_test: RuntimeError # Debugging StringConcatenation doesn't work the same on simdbc as on other platforms (bug #28975).
 step_through_function_test: RuntimeError # Debugging StringConcatenation doesn't work the same on simdbc as on other platforms (bug #28975).
 step_through_getter_test: RuntimeError # Debugging StringConcatenation doesn't work the same on simdbc as on other platforms (bug #28975).
 
+# All tests use dart:io
+[ $compiler == dart2js || $browser ]
+*: SkipByDesign
+
 # Skip all service tests because random reloads interfere.
 [ $hot_reload || $hot_reload_rollback ]
 *: SkipByDesign # The service tests should run without being reloaded.
 
-[ $system == windows ]
-dev_fs_weird_char_test: Skip # Windows disallows question mark in paths
-dev_fs_http_put_weird_char_test: Skip # Windows disallows carriage returns in paths
-
-[ $system != linux || ($arch != x64 || $arch != ia32) ]
-get_native_allocation_samples_test: Skip # Unsupported.
-
-# Service protocol is not supported in product mode.
-[ $mode == product ]
-*: SkipByDesign
diff --git a/runtime/observatory/tests/service/service_kernel.status b/runtime/observatory/tests/service/service_kernel.status
index 9bda9fc..584b24f 100644
--- a/runtime/observatory/tests/service/service_kernel.status
+++ b/runtime/observatory/tests/service/service_kernel.status
@@ -2,44 +2,205 @@
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
 
-[ $compiler == dartkp ]
-*: Skip # Non-kernel also skips precompiled mode.
-
 # Kernel works slightly different. There are kernel specific versions.
 # These are the non-kernel specific versions so skip tests and allow errors.
 [ $compiler == dartk ]
-add_breakpoint_rpc_test: SkipByDesign # non-kernel specific version of add_breakpoint_rpc_kernel_test.
-get_isolate_after_language_error_test: CompileTimeError
-developer_extension_test: CompileTimeError
-step_through_arithmetic_test: RuntimeError # probably constant evaluator pre-evaluating e.g. 1+2
-
-capture_stdio_test: CompileTimeError # These 3 tests fail with 'dart:vmservice_io': error: [...] native function 'VMServiceIO_Shutdown' (0 arguments) cannot be found because of '--compile_all'
-address_mapper_test: CompileTimeError # These 3 tests fail with 'dart:vmservice_io': error: [...] native function 'VMServiceIO_Shutdown' (0 arguments) cannot be found because of '--compile_all'
-
 *_reload_*: Skip # no reload support for now
+add_breakpoint_rpc_test: SkipByDesign # non-kernel specific version of add_breakpoint_rpc_kernel_test.
+address_mapper_test: CompileTimeError # These 3 tests fail with 'dart:vmservice_io': error: [...] native function 'VMServiceIO_Shutdown' (0 arguments) cannot be found because of '--compile_all'
+address_mapper_test: Crash
+async_generator_breakpoint_test: Skip # Issue 29158, Async debugging
+async_single_step_out_test: RuntimeError # Issue 29158, Async debugging
+async_star_single_step_into_test: RuntimeError # Issue 29158, Async debugging
+async_star_step_out_test: RuntimeError # Issue 29158, Async debugging
+async_step_out_test: RuntimeError # Issue 29158, Async debugging
+awaiter_async_stack_contents_test: RuntimeError # Issue 29158, Async debugging
+capture_stdio_test: CompileTimeError # These 3 tests fail with 'dart:vmservice_io': error: [...] native function 'VMServiceIO_Shutdown' (0 arguments) cannot be found because of '--compile_all'
+capture_stdio_test: Crash
+developer_extension_test: CompileTimeError
 eval_internal_class_test: Skip # no evaluation test for now
 evaluate_*: Skip # no evaluation test for now
-
-async_star_single_step_into_test: RuntimeError # Issue 29158, Async debugging
-async_step_out_test: RuntimeError # Issue 29158, Async debugging
-async_star_step_out_test: RuntimeError # Issue 29158, Async debugging
-awaiter_async_stack_contents_test: RuntimeError # Issue 29158, Async debugging
-async_single_step_out_test: RuntimeError # Issue 29158, Async debugging
-async_generator_breakpoint_test: Skip # Issue 29158, Async debugging
-
-capture_stdio_test: Crash
-address_mapper_test: Crash
-vm_restart_test: Crash
-
+get_isolate_after_language_error_test: CompileTimeError
+isolate_lifecycle_test: Pass, RuntimeError # Inherited from service.status
+library_dependency_test: CompileTimeError # Deferred loading kernel issue 28335.
 pause_on_unhandled_async_exceptions2_test: RuntimeError # --pause-isolates-on-unhandled-exceptions doesn't currently work. Issue #29056
 pause_on_unhandled_async_exceptions_test: RuntimeError #  --pause-isolates-on-unhandled-exceptions doesn't currently work. Issue #29056
+step_through_arithmetic_test: RuntimeError # probably constant evaluator pre-evaluating e.g. 1+2
+vm_restart_test: Crash
 
-isolate_lifecycle_test: Pass, RuntimeError # Inherited from service.status
+[ $compiler == dartkp ]
+*: Skip # Non-kernel also skips precompiled mode.
 
 [ $compiler == dartk && $mode == debug ]
 isolate_lifecycle_test: Skip # Flaky.
 pause_idle_isolate_test: Skip # Flaky
 
-# Deferred loading kernel issue 28335.
-[ $compiler == dartk ]
-library_dependency_test: CompileTimeError # Deferred loading kernel issue 28335.
+[ $compiler == dartk && $mode == debug && $strong ]
+external_service_disappear_test: Crash # Issue 31587
+
+# Issue 31587
+[ $compiler == dartk && $strong ]
+add_breakpoint_rpc_kernel_test: CompileTimeError
+allocations_test: CompileTimeError
+async_next_test: CompileTimeError
+async_scope_test: CompileTimeError
+async_single_step_exception_test: CompileTimeError
+async_single_step_into_test: CompileTimeError
+async_single_step_out_test: CompileTimeError
+async_star_single_step_into_test: CompileTimeError
+async_star_step_out_test: CompileTimeError
+async_step_out_test: CompileTimeError
+auth_token1_test: CompileTimeError
+auth_token_test: CompileTimeError
+awaiter_async_stack_contents_test: CompileTimeError
+bad_web_socket_address_test: CompileTimeError
+break_on_activation_test: CompileTimeError
+break_on_function_test: CompileTimeError
+breakpoint_in_parts_class_test: CompileTimeError
+breakpoint_two_args_checked_test: CompileTimeError
+caching_test: CompileTimeError
+causal_async_stack_contents_test: CompileTimeError
+causal_async_stack_presence_test: CompileTimeError
+causal_async_star_stack_contents_test: CompileTimeError
+causal_async_star_stack_presence_test: CompileTimeError
+code_test: CompileTimeError
+collect_all_garbage_test: CompileTimeError
+command_test: CompileTimeError
+contexts_test: CompileTimeError
+coverage_leaf_function_test: CompileTimeError
+coverage_optimized_function_test: CompileTimeError
+crash_dump_test: CompileTimeError
+debugger_inspect_test: CompileTimeError
+debugger_location_second_test: CompileTimeError
+debugger_location_test: CompileTimeError
+debugging_inlined_finally_test: CompileTimeError
+debugging_test: CompileTimeError
+dev_fs_http_put_test: CompileTimeError
+dev_fs_http_put_weird_char_test: CompileTimeError
+dev_fs_spawn_test: CompileTimeError
+dev_fs_test: CompileTimeError
+dev_fs_uri_test: CompileTimeError
+dev_fs_weird_char_test: CompileTimeError
+developer_server_control_test: CompileTimeError
+developer_service_get_isolate_id_test: CompileTimeError
+dominator_tree_user_test: CompileTimeError
+dominator_tree_vm_test: CompileTimeError
+echo_test: CompileTimeError
+eval_test: CompileTimeError
+external_service_asynchronous_invocation_test: CompileTimeError
+external_service_disappear_test: CompileTimeError
+external_service_notification_invocation_test: CompileTimeError
+external_service_registration_test: CompileTimeError
+external_service_registration_via_notification_test: CompileTimeError
+external_service_synchronous_invocation_test: CompileTimeError
+field_script_test: CompileTimeError
+file_service_test: CompileTimeError
+gc_test: CompileTimeError
+get_allocation_profile_rpc_test: CompileTimeError
+get_allocation_samples_test: CompileTimeError
+get_cpu_profile_timeline_rpc_test: CompileTimeError
+get_flag_list_rpc_test: CompileTimeError
+get_heap_map_rpc_test: CompileTimeError
+get_instances_rpc_test: CompileTimeError
+get_isolate_after_async_error_test: CompileTimeError
+get_isolate_after_stack_overflow_error_test: CompileTimeError
+get_isolate_after_sync_error_test: CompileTimeError
+get_isolate_rpc_test: CompileTimeError
+get_object_rpc_test: CompileTimeError
+get_object_store_rpc_test: CompileTimeError
+get_ports_rpc_test: CompileTimeError
+get_retained_size_rpc_test: CompileTimeError
+get_retaining_path_rpc_test: CompileTimeError
+get_source_report_test: CompileTimeError
+get_stack_rpc_test: CompileTimeError
+get_user_level_retaining_path_rpc_test: CompileTimeError
+get_version_rpc_test: CompileTimeError
+get_vm_rpc_test: CompileTimeError
+get_vm_timeline_rpc_test: CompileTimeError
+get_zone_memory_info_rpc_test: CompileTimeError
+implicit_getter_setter_test: CompileTimeError
+inbound_references_test: CompileTimeError
+instance_field_order_rpc_test: CompileTimeError
+isolate_lifecycle_test: CompileTimeError
+issue_25465_test: CompileTimeError
+issue_27238_test: CompileTimeError
+issue_27287_test: CompileTimeError
+issue_30555_test: CompileTimeError
+local_variable_declaration_test: CompileTimeError
+logging_test: CompileTimeError
+malformed_test: CompileTimeError
+metrics_test: CompileTimeError
+mirror_references_test: CompileTimeError
+mixin_break_test: CompileTimeError
+native_metrics_test: CompileTimeError
+next_through_assign_call_test: CompileTimeError
+next_through_assign_int_test: CompileTimeError
+next_through_call_on_field_in_class_test: CompileTimeError
+next_through_call_on_field_test: CompileTimeError
+next_through_call_on_static_field_in_class_test: CompileTimeError
+next_through_catch_test: CompileTimeError
+next_through_closure_test: CompileTimeError
+next_through_create_list_and_map_test: CompileTimeError
+next_through_for_each_loop_test: CompileTimeError
+next_through_for_loop_with_break_and_continue_test: CompileTimeError
+next_through_function_expression_test: CompileTimeError
+next_through_is_and_as_test: CompileTimeError
+next_through_multi_catch_test: CompileTimeError
+next_through_new_test: CompileTimeError
+next_through_operator_bracket_on_super_test: CompileTimeError
+next_through_operator_bracket_on_this_test: CompileTimeError
+next_through_operator_bracket_test: CompileTimeError
+next_through_simple_async_with_returns_test: CompileTimeError
+next_through_simple_linear_2_test: CompileTimeError
+next_through_simple_linear_test: CompileTimeError
+object_graph_stack_reference_test: CompileTimeError
+object_graph_user_test: CompileTimeError
+object_graph_vm_test: CompileTimeError
+observatory_assets_test: CompileTimeError
+parameters_in_scope_at_entry_test: CompileTimeError
+pause_idle_isolate_test: CompileTimeError
+pause_on_exceptions_test: CompileTimeError
+pause_on_start_and_exit_test: CompileTimeError
+pause_on_start_then_step_test: CompileTimeError
+pause_on_unhandled_async_exceptions2_test: CompileTimeError
+pause_on_unhandled_async_exceptions_test: CompileTimeError
+pause_on_unhandled_exceptions_test: CompileTimeError
+positive_token_pos_test: CompileTimeError
+process_service_test: CompileTimeError
+reachable_size_test: CompileTimeError
+read_stream_test: CompileTimeError
+regexp_function_test: CompileTimeError
+regress_28443_test: CompileTimeError
+regress_28980_test: CompileTimeError
+reload_sources_test: CompileTimeError
+rewind_optimized_out_test: CompileTimeError
+rewind_test: CompileTimeError
+set_library_debuggable_rpc_test: CompileTimeError
+set_library_debuggable_test: CompileTimeError
+set_name_rpc_test: CompileTimeError
+set_vm_name_rpc_test: CompileTimeError
+steal_breakpoint_test: CompileTimeError
+step_into_async_no_await_test: CompileTimeError
+step_over_await_test: CompileTimeError
+step_test: CompileTimeError
+step_through_arithmetic_test: CompileTimeError
+step_through_constructor_calls_test: CompileTimeError
+step_through_function_2_test: CompileTimeError
+step_through_function_test: CompileTimeError
+step_through_getter_test: CompileTimeError
+step_through_property_get_test: CompileTimeError
+step_through_property_set_test: CompileTimeError
+step_through_setter_test: CompileTimeError
+step_through_switch_test: CompileTimeError
+step_through_switch_with_continue_test: CompileTimeError
+string_escaping_test: CompileTimeError
+tcp_socket_closing_service_test: CompileTimeError
+tcp_socket_service_test: CompileTimeError
+type_arguments_test: CompileTimeError
+typed_data_test: CompileTimeError
+udp_socket_service_test: CompileTimeError
+vm_test: CompileTimeError
+vm_timeline_events_test: CompileTimeError
+vm_timeline_flags_test: CompileTimeError
+weak_properties_test: CompileTimeError
+
diff --git a/runtime/tests/vm/vm.status b/runtime/tests/vm/vm.status
index 05d9029..aca128cd 100644
--- a/runtime/tests/vm/vm.status
+++ b/runtime/tests/vm/vm.status
@@ -1,151 +1,27 @@
 # Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
-
-cc/IsolateReload_PendingUnqualifiedCall_InstanceToStatic: SkipSlow # Issue 28198
-cc/IsolateReload_PendingUnqualifiedCall_StaticToInstance: SkipSlow # Issue 28198
+cc/AllocGeneric_Overflow: Crash, Fail # These tests are expected to crash on all platforms.
+cc/ArrayNew_Overflow_Crash: Crash, Fail # These tests are expected to crash on all platforms.
+cc/CodeImmutability: Crash, Fail # These tests are expected to crash on all platforms.
+cc/Dart2JSCompileAll: Fail, Crash # Issue 27369
+cc/Dart2JSCompilerStats: Fail, Crash # Issue 27369
+cc/Fail0: Fail # These tests are expected to crash on all platforms.
+cc/Fail1: Fail # These tests are expected to crash on all platforms.
+cc/Fail2: Fail # These tests are expected to crash on all platforms.
 cc/IsolateReload_PendingConstructorCall_AbstractToConcrete: SkipSlow # Issue 28198
 cc/IsolateReload_PendingConstructorCall_ConcreteToAbstract: SkipSlow # Issue 28198
 cc/IsolateReload_PendingStaticCall_DefinedToNSM: SkipSlow # Issue 28198
 cc/IsolateReload_PendingStaticCall_NSMToDefined: SkipSlow # Issue 28198
-
-cc/ArrayNew_Overflow_Crash: Crash, Fail # These tests are expected to crash on all platforms.
-cc/AllocGeneric_Overflow: Crash, Fail # These tests are expected to crash on all platforms.
-cc/CodeImmutability: Crash, Fail # These tests are expected to crash on all platforms.
-cc/SNPrint_BadArgs: Crash, Fail # These tests are expected to crash on all platforms.
-cc/Fail0: Fail # These tests are expected to crash on all platforms.
-cc/Fail1: Fail # These tests are expected to crash on all platforms.
-cc/Fail2: Fail # These tests are expected to crash on all platforms.
-
-cc/Dart2JSCompileAll: Fail, Crash # Issue 27369
-cc/Dart2JSCompilerStats: Fail, Crash # Issue 27369
-
+cc/IsolateReload_PendingUnqualifiedCall_InstanceToStatic: SkipSlow # Issue 28198
+cc/IsolateReload_PendingUnqualifiedCall_StaticToInstance: SkipSlow # Issue 28198
 cc/Profiler_InliningIntervalBoundry: Skip # Differences in ia32, debug, release
-
+cc/SNPrint_BadArgs: Crash, Fail # These tests are expected to crash on all platforms.
 cc/Sleep: Skip # Flaky # Flaky on buildbot. Issue 5133 and 10409.
-
 dart/data_uri_import_test/none: SkipByDesign
 
-[ $mode == debug ]
-cc/CorelibIsolateStartup: Skip # This is a benchmark that is not informative in debug mode.
-cc/VerifyImplicit_Crash: Crash # Negative tests of VerifiedMemory should crash iff in DEBUG mode. TODO(koda): Improve support for negative tests.
-cc/VerifyExplicit_Crash: Crash # Negative tests of VerifiedMemory should crash iff in DEBUG mode. TODO(koda): Improve support for negative tests.
-dart/spawn_shutdown_test: Pass, Slow  # VM Shutdown test, It can take some time for all the isolates to shutdown in a Debug build.
-
-[ $system == windows ]
-cc/Service_Profile: Skip
-cc/CorelibCompilerStats: Skip
-
-[ $system == windows && $arch == x64 ]
-cc/Profiler_IntrinsicAllocation: Pass, Fail # Issue 31137
-cc/Profiler_ClosureAllocation: Pass, Fail # Issue 31137
-cc/Profiler_StringAllocation: Pass, Fail # Issue 31137
-cc/Profiler_TypedArrayAllocation: Pass, Fail # Issue 31137
-cc/Profiler_SourcePositionOptimized: Pass, Fail # Issue 31137
-cc/Profiler_BinaryOperatorSourcePositionOptimized: Pass, Fail # Issue 31137
-
-[ $system == fuchsia ]
-dart/spawn_shutdown_test: Skip # OOM crash can bring down the OS.
-cc/CorelibIsolateStartup: Skip # OOM crash can bring down the OS.
-dart/data_uri_spawn_test: Skip # TODO(zra): package:unittest is not in the image.
-cc/Read: Fail  # TODO(zra): Investigate, ../../dart/runtime/bin/file_test.cc: 34: error: expected: !file->WriteByte(1)
-
-# Profiler is completely disabled in SIMDBC builds.
-# On the simluator stack traces produced by the Profiler do not match
-# up with the real Dart stack trace and hence we don't get correct
-# symbol names.
-[ $arch == simarm || $arch == simarmv6 || $arch == simarmv5te || $arch == simarm64 || $arch == simdbc  || $arch == simdbc64 ]
-cc/Service_Profile: Skip
-cc/Profiler_AllocationSampleTest: Skip
-cc/Profiler_ArrayAllocation: Skip
-cc/Profiler_BasicSourcePosition: Skip
-cc/Profiler_BasicSourcePositionOptimized: Skip
-cc/Profiler_BinaryOperatorSourcePosition: Skip
-cc/Profiler_BinaryOperatorSourcePositionOptimized: Skip
-cc/Profiler_ChainedSamples: Skip
-cc/Profiler_ClosureAllocation: Skip
-cc/Profiler_CodeTicks: Skip
-cc/Profiler_ContextAllocation: Skip
-cc/Profiler_FunctionInline: Skip
-cc/Profiler_FunctionTicks: Skip
-cc/Profiler_InliningIntervalBoundry: Skip
-cc/Profiler_IntrinsicAllocation: Skip
-cc/Profiler_SampleBufferIterateTest: Skip
-cc/Profiler_SampleBufferWrapTest: Skip
-cc/Profiler_SourcePosition: Skip
-cc/Profiler_SourcePositionOptimized: Skip
-cc/Profiler_StringAllocation: Skip
-cc/Profiler_StringInterpolation: Skip
-cc/Profiler_ToggleRecordAllocation: Skip
-cc/Profiler_TrivialRecordAllocation: Skip
-cc/Profiler_TypedArrayAllocation: Skip
-cc/Profiler_GetSourceReport: Skip
-cc/LargeMap: Skip
-
-# Following tests are failing in a weird way on macos/ia32/debug builds
-# need to investigate.
-[ $runtime == vm && $mode == debug && $arch == ia32 && $system == macos ]
-cc/Profiler_TrivialRecordAllocation: Skip
-cc/Profiler_ToggleRecordAllocation: Skip
-cc/Profiler_FunctionTicks: Skip
-cc/Profiler_CodeTicks: Skip
-cc/Profiler_IntrinsicAllocation: Skip
-cc/Profiler_ArrayAllocation: Skip
-cc/Profiler_ContextAllocation: Skip
-cc/Profiler_ClosureAllocation: Skip
-cc/Profiler_TypedArrayAllocation: Skip
-cc/Profiler_StringAllocation: Skip
-cc/Profiler_StringInterpolation: Skip
-cc/Profiler_BasicSourcePosition: Skip
-cc/Profiler_BasicSourcePositionOptimized: Skip
-cc/Profiler_ChainedSamples: Skip
-cc/Profiler_FunctionInline: Skip
-cc/Profiler_SourcePosition: Skip
-cc/Profiler_SourcePositionOptimized: Skip
-cc/Profiler_BinaryOperatorSourcePosition: Skip
-cc/Profiler_BinaryOperatorSourcePositionOptimized: Skip
-
-[ $compiler == none && $runtime == drt ]
-dart/truncating_ints_test: Skip # Issue 14651
-
-[ $compiler == dart2js ]
-dart/redirection_type_shuffling_test: Skip # Depends on lazy enforcement of type bounds
-dart/byte_array_test: Skip # compilers not aware of byte arrays
-dart/byte_array_optimized_test: Skip # compilers not aware of byte arrays
-dart/simd128float32_array_test: Skip # compilers not aware of Simd128
-dart/simd128float32_test: Skip # compilers not aware of Simd128
-dart/truncating_ints_test: Skip # dart2js doesn't know about --limit-ints-to-64-bits
-
-[ $compiler == dart2js ]
-dart/optimized_stacktrace_line_test: RuntimeError # The source positions do not match with dart2js.
-dart/optimized_stacktrace_line_and_column_test: RuntimeError # The source positions do not match with dart2js.
-
-dart/inline_stack_frame_test: Skip # Issue 7953, Methods can be missing in dart2js stack traces due to inlining. Also when minifying they can be renamed, which is issue 7953.
-
-[ $compiler == dart2js || $compiler == dart2analyzer ]
-dart/data_uri*test: Skip # Data uri's not supported by dart2js or the analyzer.
-
-[ $compiler == dart2analyzer ]
-dart/optimized_stacktrace_line_test: StaticWarning
-dart/optimized_stacktrace_line_and_column_test: StaticWarning
-
-[ $compiler == dart2analyzer && $builder_tag == strong ]
-*: Skip # Issue 28649
-
-[ $compiler == app_jit ]
-dart/snapshot_version_test: Fail,OK # Expects to find script snapshot relative to Dart source.
-
-[ $runtime != vm ]
-dart/snapshot_version_test: SkipByDesign  # Spawns processes
-dart/spawn_infinite_loop_test: Skip  # VM shutdown test
-dart/spawn_shutdown_test: Skip  # VM Shutdown test
-dart/hello_fuchsia_test: SkipByDesign # This is a test for fuchsia OS
-
-[ ($runtime == vm || $runtime == dart_precompiled) && $mode == debug && $builder_tag == asan ]
-cc/Dart2JSCompileAll: SkipSlow  # Timeout.
-
 [ $builder_tag == asan ]
-cc/CodeImmutability: Fail,OK # Address Sanitizer turns a crash into a failure.
+cc/CodeImmutability: Fail, OK # Address Sanitizer turns a crash into a failure.
 cc/IsolateReload_DanglingGetter_Class: Fail # Issue 28349
 cc/IsolateReload_DanglingGetter_Instance: Fail # Issue 28349
 cc/IsolateReload_DanglingGetter_Library: Fail # Issue 28349
@@ -155,8 +31,8 @@
 cc/IsolateReload_LiveStack: Fail # Issue 28349
 cc/IsolateReload_PendingSuperCall: Fail # Issue 28349
 cc/IsolateReload_SmiFastPathStubs: Fail # Issue 28349
-cc/IsolateReload_TearOff_AddArguments2: Fail # Issue 28349
 cc/IsolateReload_TearOff_AddArguments: Fail # Issue 28349
+cc/IsolateReload_TearOff_AddArguments2: Fail # Issue 28349
 cc/IsolateReload_TearOff_Class_Identity: Fail # Issue 28349
 cc/IsolateReload_TearOff_Instance_Equality: Fail # Issue 28349
 cc/IsolateReload_TearOff_Library_Identity: Fail # Issue 28349
@@ -165,62 +41,112 @@
 cc/IsolateReload_TypeIdentityGeneric: Fail # Issue 28349
 cc/IsolateReload_TypeIdentityParameter: Fail # Issue 28349
 
-[ $compiler == precompiler ]
-dart/byte_array_test: Skip # Incompatible flag --disable_alloc_stubs_after_gc
-
-[ $compiler == precompiler || $mode == product ]
-dart/redirection_type_shuffling_test: SkipByDesign # Imports dart:mirrors
-cc/CreateMirrorSystem: SkipByDesign # Imports dart:mirrors
-cc/CoreSnapshotSize: SkipByDesign # Imports dart:mirrors
-cc/StandaloneSnapshotSize: SkipByDesign # Imports dart:mirrors
-
 [ $compiler == app_jit ]
-dart/optimized_stacktrace_line_and_column_test: RuntimeError,OK # app-jit lacks column information
+dart/optimized_stacktrace_line_and_column_test: RuntimeError, OK # app-jit lacks column information
+dart/snapshot_version_test: Fail, OK # Expects to find script snapshot relative to Dart source.
 
-[ $runtime == dart_precompiled ]
-dart/optimized_stacktrace_line_and_column_test: RuntimeError,OK # AOT lacks column information
-dart/data_uri_spawn_test: SkipByDesign # Isolate.spawnUri
+[ $compiler == dart2analyzer ]
+dart/optimized_stacktrace_line_and_column_test: StaticWarning
+dart/optimized_stacktrace_line_test: StaticWarning
 
-[ $runtime == vm && $mode == product ]
-cc/DartAPI_IsolateSetCheckedMode: Fail,OK  # Checked mode disabled in product mode.
+[ $compiler == dart2js ]
+dart/byte_array_optimized_test: Skip # compilers not aware of byte arrays
+dart/byte_array_test: Skip # compilers not aware of byte arrays
+dart/inline_stack_frame_test: Skip # Issue 7953, Methods can be missing in dart2js stack traces due to inlining. Also when minifying they can be renamed, which is issue 7953.
+dart/optimized_stacktrace_line_and_column_test: RuntimeError # The source positions do not match with dart2js.
+dart/optimized_stacktrace_line_test: RuntimeError # The source positions do not match with dart2js.
+dart/redirection_type_shuffling_test: Skip # Depends on lazy enforcement of type bounds
+dart/simd128float32_array_test: Skip # compilers not aware of Simd128
+dart/simd128float32_test: Skip # compilers not aware of Simd128
+dart/truncating_ints_test: Skip # dart2js doesn't know about --limit-ints-to-64-bits
 
-[ $arch == simdbc  || $arch == simdbc64 ]
-cc/RegExp_ExternalOneByteString: Skip # TODO(vegorov) These tests don't seem to work if FLAG_interpret_irregexp is switched on by default because they attempt to call regexp functions directly instead of going through JSSyntaxRegExp_ExecuteMatch.
-cc/RegExp_ExternalTwoByteString: Skip # TODO(vegorov) These tests don't seem to work if FLAG_interpret_irregexp is switched on by default because they attempt to call regexp functions directly instead of going through JSSyntaxRegExp_ExecuteMatch.
-cc/RegExp_OneByteString: Skip # TODO(vegorov) These tests don't seem to work if FLAG_interpret_irregexp is switched on by default because they attempt to call regexp functions directly instead of going through JSSyntaxRegExp_ExecuteMatch.
-cc/RegExp_TwoByteString: Skip # TODO(vegorov) These tests don't seem to work if FLAG_interpret_irregexp is switched on by default because they attempt to call regexp functions directly instead of going through JSSyntaxRegExp_ExecuteMatch.
-
-cc/GuardFieldConstructor2Test: Skip # TODO(vegorov) Field guards are disabled for SIMDBC
-cc/GuardFieldConstructorTest: Skip # TODO(vegorov) Field guards are disabled for SIMDBC
-cc/GuardFieldFinalListTest: Skip # TODO(vegorov) Field guards are disabled for SIMDBC
-cc/GuardFieldFinalVariableLengthListTest: Skip # TODO(vegorov) Field guards are disabled for SIMDBC
-cc/GuardFieldSimpleTest: Skip # TODO(vegorov) Field guards are disabled for SIMDBC
-
-cc/RegenerateAllocStubs: Skip # This test is meaningless for DBC as allocation stubs are not used.
-
-[ $hot_reload || $hot_reload_rollback ]
-dart/spawn_shutdown_test: Skip # We can shutdown an isolate before it reloads.
-dart/spawn_infinite_loop_test: Skip # We can shutdown an isolate before it reloads.
-
-
-[ ($compiler == dartkp) && ($runtime == vm || $runtime == dart_precompiled) ]
-dart/data_uri_import_test/base64: CompileTimeError
-dart/data_uri_import_test/nocharset: CompileTimeError
-dart/data_uri_import_test/nomime: CompileTimeError
-dart/data_uri_import_test/percentencoded: CompileTimeError
-dart/data_uri_import_test/wrongmime: CompileTimeError
-dart/data_uri_spawn_test: RuntimeError
-dart/redirection_type_shuffling_test: SkipByDesign # Includes dart:mirrors.
-dart/spawn_shutdown_test: SkipSlow
-
-[ ($compiler != dartk) ]
+[ $compiler != dartk ]
 cc/IsolateReload_KernelIncrementalCompile: Skip
 cc/IsolateReload_KernelIncrementalCompileAppAndLib: Skip
 cc/IsolateReload_KernelIncrementalCompileGenerics: Skip
 cc/Mixin_PrivateSuperResolution: Skip
 cc/Mixin_PrivateSuperResolutionCrossLibraryShouldFail: Skip
 
-[ ($compiler == dartk) && ($runtime == vm) ]
+[ $compiler == dartkp ]
+dart/truncating_ints_test: CompileTimeError # Issue 31339
+
+[ $compiler == precompiler ]
+dart/byte_array_test: Skip # Incompatible flag --disable_alloc_stubs_after_gc
+
+[ $mode == debug ]
+cc/CorelibIsolateStartup: Skip # This is a benchmark that is not informative in debug mode.
+cc/VerifyExplicit_Crash: Crash # Negative tests of VerifiedMemory should crash iff in DEBUG mode. TODO(koda): Improve support for negative tests.
+cc/VerifyImplicit_Crash: Crash # Negative tests of VerifiedMemory should crash iff in DEBUG mode. TODO(koda): Improve support for negative tests.
+dart/spawn_shutdown_test: Pass, Slow # VM Shutdown test, It can take some time for all the isolates to shutdown in a Debug build.
+
+[ $runtime == dart_precompiled ]
+dart/data_uri_spawn_test: SkipByDesign # Isolate.spawnUri
+dart/optimized_stacktrace_line_and_column_test: RuntimeError, OK # AOT lacks column information
+
+[ $runtime != vm ]
+dart/hello_fuchsia_test: SkipByDesign # This is a test for fuchsia OS
+dart/snapshot_version_test: SkipByDesign # Spawns processes
+dart/spawn_infinite_loop_test: Skip # VM shutdown test
+dart/spawn_shutdown_test: Skip # VM Shutdown test
+
+[ $system == fuchsia ]
+cc/CorelibIsolateStartup: Skip # OOM crash can bring down the OS.
+cc/Read: Fail # TODO(zra): Investigate, ../../dart/runtime/bin/file_test.cc: 34: error: expected: !file->WriteByte(1)
+dart/data_uri_spawn_test: Skip # TODO(zra): package:unittest is not in the image.
+dart/spawn_shutdown_test: Skip # OOM crash can bring down the OS.
+
+[ $system == windows ]
+cc/CorelibCompilerStats: Skip
+cc/Service_Profile: Skip
+
+# Following tests are failing in a weird way on macos/ia32/debug builds
+# need to investigate.
+[ $arch == ia32 && $mode == debug && $runtime == vm && $system == macos ]
+cc/Profiler_ArrayAllocation: Skip
+cc/Profiler_BasicSourcePosition: Skip
+cc/Profiler_BasicSourcePositionOptimized: Skip
+cc/Profiler_BinaryOperatorSourcePosition: Skip
+cc/Profiler_BinaryOperatorSourcePositionOptimized: Skip
+cc/Profiler_ChainedSamples: Skip
+cc/Profiler_ClosureAllocation: Skip
+cc/Profiler_CodeTicks: Skip
+cc/Profiler_ContextAllocation: Skip
+cc/Profiler_FunctionInline: Skip
+cc/Profiler_FunctionTicks: Skip
+cc/Profiler_IntrinsicAllocation: Skip
+cc/Profiler_SourcePosition: Skip
+cc/Profiler_SourcePositionOptimized: Skip
+cc/Profiler_StringAllocation: Skip
+cc/Profiler_StringInterpolation: Skip
+cc/Profiler_ToggleRecordAllocation: Skip
+cc/Profiler_TrivialRecordAllocation: Skip
+cc/Profiler_TypedArrayAllocation: Skip
+
+[ $arch == x64 && $system == windows ]
+cc/Profiler_BinaryOperatorSourcePositionOptimized: Pass, Fail # Issue 31137
+cc/Profiler_ClosureAllocation: Pass, Fail # Issue 31137
+cc/Profiler_IntrinsicAllocation: Pass, Fail # Issue 31137
+cc/Profiler_SourcePositionOptimized: Pass, Fail # Issue 31137
+cc/Profiler_StringAllocation: Pass, Fail # Issue 31137
+cc/Profiler_TypedArrayAllocation: Pass, Fail # Issue 31137
+
+[ $builder_tag == asan && $mode == debug && ($runtime == dart_precompiled || $runtime == vm) ]
+cc/Dart2JSCompileAll: SkipSlow # Timeout.
+
+[ $builder_tag == strong && $compiler == dart2analyzer ]
+*: Skip # Issue 28649
+
+[ $compiler == dartk && $mode == debug && $runtime == vm ]
+cc/InjectNativeFields1: Crash
+cc/InjectNativeFields3: Crash
+cc/Service_TokenStream: Crash
+
+[ $compiler == dartk && $mode == release && $runtime == vm ]
+cc/InjectNativeFields1: Fail
+cc/InjectNativeFields3: Fail
+cc/Service_TokenStream: Fail
+
+[ $compiler == dartk && $runtime == vm ]
 cc/CanonicalizationInScriptSnapshots: Fail
 cc/Class_ComputeEndTokenPos: Crash
 cc/DartAPI_CurrentStackTraceInfo: Fail
@@ -229,8 +155,8 @@
 cc/DartAPI_InjectNativeFields3: Crash
 cc/DartAPI_InjectNativeFields4: Crash
 cc/DartAPI_InjectNativeFieldsSuperClass: Crash
-cc/DartAPI_Invoke_CrossLibrary:  Crash
 cc/DartAPI_InvokeNoSuchMethod: Fail
+cc/DartAPI_Invoke_CrossLibrary: Crash
 cc/DartAPI_IsolateShutdownRunDartCode: Skip # Flaky
 cc/DartAPI_LazyLoadDeoptimizes: Fail
 cc/DartAPI_LoadLibrary: Crash
@@ -247,9 +173,9 @@
 cc/DartAPI_New: Crash
 cc/DartAPI_ParsePatchLibrary: Crash
 cc/DartAPI_PropagateError: Fail
+cc/DartAPI_StackOverflowStackTraceInfoArrowFunction: Fail
 cc/DartAPI_StackOverflowStackTraceInfoBraceFunction1: Fail
 cc/DartAPI_StackOverflowStackTraceInfoBraceFunction2: Fail
-cc/DartAPI_StackOverflowStackTraceInfoArrowFunction: Fail
 cc/DartAPI_TestNativeFieldsAccess: Crash
 cc/DartAPI_TypeGetParameterizedTypes: Crash
 cc/DebuggerAPI_BreakpointStubPatching: Fail
@@ -263,12 +189,12 @@
 cc/Debugger_SetBreakpointInPartOfLibrary: Crash
 cc/FunctionSourceFingerprint: Fail
 cc/IsolateReload_BadClass: Fail
-cc/IsolateReload_ClassFieldAdded: Skip # Crash, Timeout
-cc/IsolateReload_ClassFieldAdded2: Skip # Crash, Timeout
 cc/IsolateReload_ChangeInstanceFormat1: Skip
 cc/IsolateReload_ChangeInstanceFormat3: Skip
 cc/IsolateReload_ChangeInstanceFormat7: Skip
 cc/IsolateReload_ChangeInstanceFormat8: Skip
+cc/IsolateReload_ClassFieldAdded: Skip # Crash, Timeout
+cc/IsolateReload_ClassFieldAdded2: Skip # Crash, Timeout
 cc/IsolateReload_DanglingGetter_Class: Fail
 cc/IsolateReload_DanglingGetter_Instance: Fail
 cc/IsolateReload_DanglingGetter_Library: Fail
@@ -302,8 +228,8 @@
 cc/IsolateReload_RunNewFieldInitializersWithConsts: Skip
 cc/IsolateReload_ShapeChangeRetainsHash: Skip
 cc/IsolateReload_SmiFastPathStubs: Fail
-cc/IsolateReload_TearOff_AddArguments2: Fail
 cc/IsolateReload_TearOff_AddArguments: Fail
+cc/IsolateReload_TearOff_AddArguments2: Fail
 cc/IsolateReload_TearOff_Class_Identity: Fail
 cc/IsolateReload_TearOff_Instance_Equality: Fail
 cc/IsolateReload_TearOff_Library_Identity: Fail
@@ -319,13 +245,13 @@
 cc/Parser_AllocateVariables_MiddleChain: Fail
 cc/Parser_AllocateVariables_NestedCapturedVar: Fail
 cc/Parser_AllocateVariables_TwoChains: Fail
-cc/Profiler_SourcePositionOptimized: Fail
 cc/Profiler_BasicSourcePositionOptimized: Skip
 cc/Profiler_BinaryOperatorSourcePositionOptimized: Skip
 cc/Profiler_GetSourceReport: Fail
+cc/Profiler_SourcePositionOptimized: Fail
 cc/Profiler_SourcePositionOptimized: Skip
-cc/ScriptSnapshot2: Crash
 cc/ScriptSnapshot: Crash
+cc/ScriptSnapshot2: Crash
 cc/SourcePosition_Async: Crash
 cc/SourcePosition_BitwiseOperations: Crash
 cc/SourcePosition_ForLoop: Crash
@@ -365,17 +291,7 @@
 dart/redirection_type_shuffling_test/none: Crash
 dart/spawn_shutdown_test: SkipSlow
 
-[ ($compiler == dartk) && ($runtime == vm) && ($mode == release) ]
-cc/InjectNativeFields1: Fail
-cc/InjectNativeFields3: Fail
-cc/Service_TokenStream: Fail
-
-[ ($compiler == dartk) && ($runtime == vm) && ($mode == debug) ]
-cc/InjectNativeFields1: Crash
-cc/InjectNativeFields3: Crash
-cc/Service_TokenStream: Crash
-
-[ ($compiler == dartk) && ($runtime == vm) && ($system == macos) ]
+[ $compiler == dartk && $runtime == vm && $system == macos ]
 cc/IsolateReload_DanglingGetter_Class: Crash
 cc/IsolateReload_DanglingGetter_Instance: Crash
 cc/IsolateReload_DanglingGetter_Library: Crash
@@ -384,8 +300,8 @@
 cc/IsolateReload_DanglingSetter_Library: Crash
 cc/IsolateReload_EnumDelete: Crash
 cc/IsolateReload_LibraryLookup: Crash
-cc/IsolateReload_TearOff_AddArguments2: Crash
 cc/IsolateReload_TearOff_AddArguments: Crash
+cc/IsolateReload_TearOff_AddArguments2: Crash
 cc/IsolateReload_TearOff_Class_Identity: Crash
 cc/IsolateReload_TearOff_Instance_Equality: Crash
 cc/IsolateReload_TearOff_Library_Identity: Crash
@@ -399,10 +315,86 @@
 cc/Parser_AllocateVariables_NestedCapturedVar: Crash
 cc/Parser_AllocateVariables_TwoChains: Crash
 
+[ $compiler == dartk && $strong ]
+dart/data_uri_spawn_test: CompileTimeError # Issue 31586
+dart/hello_fuchsia_test: RuntimeError
+dart/optimized_stacktrace_line_and_column_test: CompileTimeError # Issue 31586
+dart/optimized_stacktrace_line_test: CompileTimeError # Issue 31586
+
+[ $compiler == dartkp && ($runtime == dart_precompiled || $runtime == vm) ]
+dart/data_uri_import_test/base64: CompileTimeError
+dart/data_uri_import_test/nocharset: CompileTimeError
+dart/data_uri_import_test/nomime: CompileTimeError
+dart/data_uri_import_test/percentencoded: CompileTimeError
+dart/data_uri_import_test/wrongmime: CompileTimeError
+dart/data_uri_spawn_test: RuntimeError
+dart/redirection_type_shuffling_test: SkipByDesign # Includes dart:mirrors.
+dart/spawn_shutdown_test: SkipSlow
+
+[ $compiler == none && $runtime == drt ]
+dart/truncating_ints_test: Skip # Issue 14651
+
+[ $mode == product && $runtime == vm ]
+cc/DartAPI_IsolateSetCheckedMode: Fail, OK # Checked mode disabled in product mode.
+
 [ $runtime == dart_precompiled && $minified ]
 dart/inline_stack_frame_test: Skip
 dart/optimized_stacktrace_line_test: Skip
 
+# Profiler is completely disabled in SIMDBC builds.
+# On the simluator stack traces produced by the Profiler do not match
+# up with the real Dart stack trace and hence we don't get correct
+# symbol names.
+[ $arch == simarm || $arch == simarm64 || $arch == simarmv5te || $arch == simarmv6 || $arch == simdbc || $arch == simdbc64 ]
+cc/LargeMap: Skip
+cc/Profiler_AllocationSampleTest: Skip
+cc/Profiler_ArrayAllocation: Skip
+cc/Profiler_BasicSourcePosition: Skip
+cc/Profiler_BasicSourcePositionOptimized: Skip
+cc/Profiler_BinaryOperatorSourcePosition: Skip
+cc/Profiler_BinaryOperatorSourcePositionOptimized: Skip
+cc/Profiler_ChainedSamples: Skip
+cc/Profiler_ClosureAllocation: Skip
+cc/Profiler_CodeTicks: Skip
+cc/Profiler_ContextAllocation: Skip
+cc/Profiler_FunctionInline: Skip
+cc/Profiler_FunctionTicks: Skip
+cc/Profiler_GetSourceReport: Skip
+cc/Profiler_InliningIntervalBoundry: Skip
+cc/Profiler_IntrinsicAllocation: Skip
+cc/Profiler_SampleBufferIterateTest: Skip
+cc/Profiler_SampleBufferWrapTest: Skip
+cc/Profiler_SourcePosition: Skip
+cc/Profiler_SourcePositionOptimized: Skip
+cc/Profiler_StringAllocation: Skip
+cc/Profiler_StringInterpolation: Skip
+cc/Profiler_ToggleRecordAllocation: Skip
+cc/Profiler_TrivialRecordAllocation: Skip
+cc/Profiler_TypedArrayAllocation: Skip
+cc/Service_Profile: Skip
 
-[ ($compiler == dartkp) ]
-dart/truncating_ints_test: CompileTimeError # Issue 31339
+[ $arch == simdbc || $arch == simdbc64 ]
+cc/GuardFieldConstructor2Test: Skip # TODO(vegorov) Field guards are disabled for SIMDBC
+cc/GuardFieldConstructorTest: Skip # TODO(vegorov) Field guards are disabled for SIMDBC
+cc/GuardFieldFinalListTest: Skip # TODO(vegorov) Field guards are disabled for SIMDBC
+cc/GuardFieldFinalVariableLengthListTest: Skip # TODO(vegorov) Field guards are disabled for SIMDBC
+cc/GuardFieldSimpleTest: Skip # TODO(vegorov) Field guards are disabled for SIMDBC
+cc/RegExp_ExternalOneByteString: Skip # TODO(vegorov) These tests don't seem to work if FLAG_interpret_irregexp is switched on by default because they attempt to call regexp functions directly instead of going through JSSyntaxRegExp_ExecuteMatch.
+cc/RegExp_ExternalTwoByteString: Skip # TODO(vegorov) These tests don't seem to work if FLAG_interpret_irregexp is switched on by default because they attempt to call regexp functions directly instead of going through JSSyntaxRegExp_ExecuteMatch.
+cc/RegExp_OneByteString: Skip # TODO(vegorov) These tests don't seem to work if FLAG_interpret_irregexp is switched on by default because they attempt to call regexp functions directly instead of going through JSSyntaxRegExp_ExecuteMatch.
+cc/RegExp_TwoByteString: Skip # TODO(vegorov) These tests don't seem to work if FLAG_interpret_irregexp is switched on by default because they attempt to call regexp functions directly instead of going through JSSyntaxRegExp_ExecuteMatch.
+cc/RegenerateAllocStubs: Skip # This test is meaningless for DBC as allocation stubs are not used.
+
+[ $compiler == dart2analyzer || $compiler == dart2js ]
+dart/data_uri*test: Skip # Data uri's not supported by dart2js or the analyzer.
+
+[ $compiler == precompiler || $mode == product ]
+cc/CoreSnapshotSize: SkipByDesign # Imports dart:mirrors
+cc/CreateMirrorSystem: SkipByDesign # Imports dart:mirrors
+cc/StandaloneSnapshotSize: SkipByDesign # Imports dart:mirrors
+dart/redirection_type_shuffling_test: SkipByDesign # Imports dart:mirrors
+
+[ $hot_reload || $hot_reload_rollback ]
+dart/spawn_infinite_loop_test: Skip # We can shutdown an isolate before it reloads.
+dart/spawn_shutdown_test: Skip # We can shutdown an isolate before it reloads.
+
diff --git a/runtime/vm/bootstrap.cc b/runtime/vm/bootstrap.cc
index ae48777..52b7a3b 100644
--- a/runtime/vm/bootstrap.cc
+++ b/runtime/vm/bootstrap.cc
@@ -334,7 +334,10 @@
 
   // The platform binary may contain other libraries (e.g., dart:_builtin or
   // dart:io) that will not be bundled with application.  Load them now.
-  loader.LoadProgram();
+  const Object& result = loader.LoadProgram();
+  if (result.IsError()) {
+    return Error::Cast(result).raw();
+  }
 
   // The builtin library should be registered with the VM.
   dart_name = String::New("dart:_builtin");
diff --git a/runtime/vm/bootstrap_nocore.cc b/runtime/vm/bootstrap_nocore.cc
index b61cfd4..2a3e095 100644
--- a/runtime/vm/bootstrap_nocore.cc
+++ b/runtime/vm/bootstrap_nocore.cc
@@ -94,7 +94,10 @@
 
   // The platform binary may contain other libraries (e.g., dart:_builtin or
   // dart:io) that will not be bundled with application.  Load them now.
-  loader.LoadProgram();
+  const Object& result = loader.LoadProgram();
+  if (result.IsError()) {
+    return Error::Cast(result).raw();
+  }
 
   // The builtin library should be registered with the VM.
   dart_name = String::New("dart:_builtin");
diff --git a/runtime/vm/class_finalizer.cc b/runtime/vm/class_finalizer.cc
index b3cc56c..e31ae3c 100644
--- a/runtime/vm/class_finalizer.cc
+++ b/runtime/vm/class_finalizer.cc
@@ -506,9 +506,8 @@
   ASSERT(!type_class.IsTypedefClass() ||
          (type.signature() != Function::null()));
 
-  // Replace FutureOr<T> type of async library with dynamic.
-  if ((type_class.library() == Library::AsyncLibrary()) &&
-      (type_class.Name() == Symbols::FutureOr().raw())) {
+  // In non-strong mode, replace FutureOr<T> type of async library with dynamic.
+  if (type_class.IsFutureOrClass() && !Isolate::Current()->strong()) {
     Type::Cast(type).set_type_class(Class::Handle(Object::dynamic_class()));
     type.set_arguments(Object::null_type_arguments());
   }
diff --git a/runtime/vm/clustered_snapshot.cc b/runtime/vm/clustered_snapshot.cc
index d8a4e77..50d5082 100644
--- a/runtime/vm/clustered_snapshot.cc
+++ b/runtime/vm/clustered_snapshot.cc
@@ -12,6 +12,7 @@
 #include "vm/native_entry.h"
 #include "vm/object.h"
 #include "vm/object_store.h"
+#include "vm/program_visitor.h"
 #include "vm/stub_code.h"
 #include "vm/symbols.h"
 #include "vm/timeline.h"
@@ -1870,17 +1871,14 @@
     objects_.Add(pool);
 
     intptr_t length = pool->ptr()->length_;
-    RawTypedData* info_array = pool->ptr()->info_array_;
 
     for (intptr_t i = 0; i < length; i++) {
       ObjectPool::EntryType entry_type =
-          static_cast<ObjectPool::EntryType>(info_array->ptr()->data()[i]);
+          static_cast<ObjectPool::EntryType>(pool->ptr()->entry_types()[i]);
       if (entry_type == ObjectPool::kTaggedObject) {
         s->Push(pool->ptr()->data()[i].raw_obj_);
       }
     }
-
-    // TODO(rmacnak): Allocate the object pool and its info array together.
   }
 
   void WriteAlloc(Serializer* s) {
@@ -1899,12 +1897,11 @@
     intptr_t count = objects_.length();
     for (intptr_t i = 0; i < count; i++) {
       RawObjectPool* pool = objects_[i];
-      RawTypedData* info_array = pool->ptr()->info_array_;
       intptr_t length = pool->ptr()->length_;
       s->Write<int32_t>(length);
       for (intptr_t j = 0; j < length; j++) {
         ObjectPool::EntryType entry_type =
-            static_cast<ObjectPool::EntryType>(info_array->ptr()->data()[j]);
+            static_cast<ObjectPool::EntryType>(pool->ptr()->entry_types()[j]);
         s->Write<int8_t>(entry_type);
         RawObjectPool::Entry& entry = pool->ptr()->data()[j];
         switch (entry_type) {
@@ -1966,24 +1963,16 @@
 
   void ReadFill(Deserializer* d) {
     bool is_vm_object = d->isolate() == Dart::vm_isolate();
-    PageSpace* old_space = d->heap()->old_space();
     for (intptr_t id = start_index_; id < stop_index_; id += 1) {
       intptr_t length = d->Read<int32_t>();
-      RawTypedData* info_array = reinterpret_cast<RawTypedData*>(
-          AllocateUninitialized(old_space, TypedData::InstanceSize(length)));
-      Deserializer::InitializeHeader(info_array, kTypedDataUint8ArrayCid,
-                                     TypedData::InstanceSize(length),
-                                     is_vm_object);
-      info_array->ptr()->length_ = Smi::New(length);
       RawObjectPool* pool = reinterpret_cast<RawObjectPool*>(d->Ref(id + 0));
       Deserializer::InitializeHeader(
           pool, kObjectPoolCid, ObjectPool::InstanceSize(length), is_vm_object);
       pool->ptr()->length_ = length;
-      pool->ptr()->info_array_ = info_array;
       for (intptr_t j = 0; j < length; j++) {
         ObjectPool::EntryType entry_type =
             static_cast<ObjectPool::EntryType>(d->Read<int8_t>());
-        info_array->ptr()->data()[j] = entry_type;
+        pool->ptr()->entry_types()[j] = entry_type;
         RawObjectPool::Entry& entry = pool->ptr()->data()[j];
         switch (entry_type) {
           case ObjectPool::kTaggedObject:
@@ -4797,8 +4786,8 @@
     num_written_objects_++;
 
 #if defined(SNAPSHOT_BACKTRACE)
-    parent_pairs_.Add(&Object::Handle(object));
-    parent_pairs_.Add(&Object::Handle(current_parent_));
+    parent_pairs_.Add(&Object::Handle(zone_, object));
+    parent_pairs_.Add(&Object::Handle(zone_, current_parent_));
 #endif
   }
 }
@@ -5553,37 +5542,73 @@
   Bootstrap::SetupNativeResolver();
 }
 
-// An object visitor which iterates the heap looking for objects to write into
+// Iterates the program structure looking for objects to write into
 // the VM isolate's snapshot, causing them to be shared across isolates.
-class SeedVMIsolateVisitor : public ObjectVisitor {
+// Duplicates will be removed by Serializer::Push.
+class SeedVMIsolateVisitor : public ClassVisitor, public FunctionVisitor {
  public:
   SeedVMIsolateVisitor(Zone* zone, bool include_code)
       : zone_(zone),
         include_code_(include_code),
         objects_(new (zone) ZoneGrowableArray<Object*>(4 * KB)),
-        code_(new (zone) ZoneGrowableArray<Code*>(4 * KB)) {}
+        codes_(new (zone) ZoneGrowableArray<Code*>(4 * KB)),
+        script_(Script::Handle(zone)),
+        code_(Code::Handle(zone)),
+        stack_maps_(Array::Handle(zone)) {}
 
-  void VisitObject(RawObject* obj) {
-    if (obj->IsTokenStream()) {
-      objects_->Add(&Object::Handle(zone_, obj));
-    } else if (include_code_) {
-      if (obj->IsStackMap() || obj->IsPcDescriptors() ||
-          obj->IsCodeSourceMap()) {
-        objects_->Add(&Object::Handle(zone_, obj));
-      } else if (obj->IsCode()) {
-        code_->Add(&Code::Handle(zone_, Code::RawCast(obj)));
+  void Visit(const Class& cls) {
+    script_ = cls.script();
+    if (!script_.IsNull()) {
+      objects_->Add(&Object::Handle(zone_, script_.tokens()));
+    }
+
+    if (!include_code_) return;
+
+    code_ = cls.allocation_stub();
+    Visit(code_);
+  }
+
+  void Visit(const Function& function) {
+    script_ = function.script();
+    if (!script_.IsNull()) {
+      objects_->Add(&Object::Handle(zone_, script_.tokens()));
+    }
+
+    if (!include_code_) return;
+
+    code_ = function.CurrentCode();
+    Visit(code_);
+    code_ = function.unoptimized_code();
+    Visit(code_);
+  }
+
+  ZoneGrowableArray<Object*>* objects() { return objects_; }
+  ZoneGrowableArray<Code*>* codes() { return codes_; }
+
+ private:
+  void Visit(const Code& code) {
+    ASSERT(include_code_);
+    if (code.IsNull()) return;
+
+    codes_->Add(&Code::Handle(zone_, code.raw()));
+    objects_->Add(&Object::Handle(zone_, code.pc_descriptors()));
+    objects_->Add(&Object::Handle(zone_, code.code_source_map()));
+
+    stack_maps_ = code_.stackmaps();
+    if (!stack_maps_.IsNull()) {
+      for (intptr_t i = 0; i < stack_maps_.Length(); i++) {
+        objects_->Add(&Object::Handle(zone_, stack_maps_.At(i)));
       }
     }
   }
 
-  ZoneGrowableArray<Object*>* objects() { return objects_; }
-  ZoneGrowableArray<Code*>* code() { return code_; }
-
- private:
   Zone* zone_;
   bool include_code_;
   ZoneGrowableArray<Object*>* objects_;
-  ZoneGrowableArray<Code*>* code_;
+  ZoneGrowableArray<Code*>* codes_;
+  Script& script_;
+  Code& code_;
+  Array& stack_maps_;
 };
 
 FullSnapshotWriter::FullSnapshotWriter(Snapshot::Kind kind,
@@ -5629,13 +5654,12 @@
     NOT_IN_PRODUCT(TimelineDurationScope tds(
         thread(), Timeline::GetIsolateStream(), "PrepareNewVMIsolate"));
 
-    HeapIterationScope iteration(thread());
     SeedVMIsolateVisitor visitor(thread()->zone(),
                                  Snapshot::IncludesCode(kind));
-    iteration.IterateObjects(&visitor);
-    iteration.IterateVMIsolateObjects(&visitor);
+    ProgramVisitor::VisitClasses(&visitor);
+    ProgramVisitor::VisitFunctions(&visitor);
     seed_objects_ = visitor.objects();
-    seed_code_ = visitor.code();
+    seed_code_ = visitor.codes();
 
     // Tuck away the current symbol table.
     saved_symbol_table_ = object_store->symbol_table();
diff --git a/runtime/vm/compiler/aot/aot_call_specializer.cc b/runtime/vm/compiler/aot/aot_call_specializer.cc
index 4929937..ac997a2 100644
--- a/runtime/vm/compiler/aot/aot_call_specializer.cc
+++ b/runtime/vm/compiler/aot/aot_call_specializer.cc
@@ -322,16 +322,19 @@
           if (Token::IsRelationalOperator(op_kind)) {
             left_value = PrepareStaticOpInput(left_value, kMintCid, instr);
             right_value = PrepareStaticOpInput(right_value, kMintCid, instr);
-            replacement = new (Z)
-                RelationalOpInstr(instr->token_pos(), op_kind, left_value,
-                                  right_value, kMintCid, Thread::kNoDeoptId);
+            replacement = new (Z) RelationalOpInstr(
+                instr->token_pos(), op_kind, left_value, right_value, kMintCid,
+                Thread::kNoDeoptId, Instruction::kNotSpeculative);
 
           } else {
             // TODO(dartbug.com/30480): Figure out how to handle null in
             // equality comparisons.
-            replacement = new (Z) EqualityCompareInstr(
-                instr->token_pos(), op_kind, left_value->CopyWithType(Z),
-                right_value->CopyWithType(Z), kMintCid, Thread::kNoDeoptId);
+            // replacement = new (Z) EqualityCompareInstr(
+            //     instr->token_pos(), op_kind, left_value->CopyWithType(Z),
+            //     right_value->CopyWithType(Z), kMintCid, Thread::kNoDeoptId);
+            replacement = new (Z) CheckedSmiComparisonInstr(
+                instr->token_kind(), left_value->CopyWithType(Z),
+                right_value->CopyWithType(Z), instr);
           }
           // TODO(dartbug.com/30480): Enable comparisons with Smi.
         } else if (false &&
@@ -361,9 +364,9 @@
             (op_kind == Token::kGT) || (op_kind == Token::kGTE)) {
           left_value = PrepareStaticOpInput(left_value, kDoubleCid, instr);
           right_value = PrepareStaticOpInput(right_value, kDoubleCid, instr);
-          replacement = new (Z)
-              RelationalOpInstr(instr->token_pos(), op_kind, left_value,
-                                right_value, kDoubleCid, Thread::kNoDeoptId);
+          replacement = new (Z) RelationalOpInstr(
+              instr->token_pos(), op_kind, left_value, right_value, kDoubleCid,
+              Thread::kNoDeoptId, Instruction::kNotSpeculative);
         }
       }
       break;
@@ -385,7 +388,8 @@
       Value* right_value = instr->PushArgumentAt(receiver_index + 1)->value();
       CompileType* left_type = left_value->Type();
       CompileType* right_type = right_value->Type();
-      if (left_type->IsNullableInt() && right_type->IsNullableInt()) {
+      if (left_type->IsNullableInt() && right_type->IsNullableInt() &&
+          (op_kind != Token::kDIV)) {
         if (FLAG_limit_ints_to_64_bits &&
             FlowGraphCompiler::SupportsUnboxedMints()) {
           if ((op_kind == Token::kSHR) || (op_kind == Token::kSHL)) {
@@ -400,9 +404,10 @@
             left_value = PrepareStaticOpInput(left_value, kMintCid, instr);
             right_value = PrepareStaticOpInput(right_value, kMintCid, instr);
             replacement = new BinaryInt64OpInstr(
-                op_kind, left_value, right_value, Thread::kNoDeoptId);
+                op_kind, left_value, right_value, Thread::kNoDeoptId,
+                Instruction::kNotSpeculative);
           }
-        } else if (op_kind != Token::kDIV) {
+        } else {
           replacement =
               new (Z) CheckedSmiOpInstr(op_kind, left_value->CopyWithType(Z),
                                         right_value->CopyWithType(Z), instr);
@@ -419,9 +424,9 @@
             (op_kind == Token::kMUL) || (op_kind == Token::kDIV)) {
           left_value = PrepareStaticOpInput(left_value, kDoubleCid, instr);
           right_value = PrepareStaticOpInput(right_value, kDoubleCid, instr);
-          replacement = new (Z)
-              BinaryDoubleOpInstr(op_kind, left_value, right_value,
-                                  Thread::kNoDeoptId, instr->token_pos());
+          replacement = new (Z) BinaryDoubleOpInstr(
+              op_kind, left_value, right_value, Thread::kNoDeoptId,
+              instr->token_pos(), Instruction::kNotSpeculative);
         }
       }
       break;
@@ -466,9 +471,9 @@
           left_value =
               PrepareReceiverOfDevirtualizedCall(left_value, kDoubleCid);
           right_value = PrepareStaticOpInput(right_value, kDoubleCid, call);
-          replacement = new (Z)
-              BinaryDoubleOpInstr(op_kind, left_value, right_value,
-                                  Thread::kNoDeoptId, call->token_pos());
+          replacement = new (Z) BinaryDoubleOpInstr(
+              op_kind, left_value, right_value, Thread::kNoDeoptId,
+              call->token_pos(), Instruction::kNotSpeculative);
         }
       } else if ((op_kind == Token::kLT) || (op_kind == Token::kLTE) ||
                  (op_kind == Token::kGT) || (op_kind == Token::kGTE)) {
@@ -480,16 +485,17 @@
           left_value =
               PrepareReceiverOfDevirtualizedCall(left_value, kDoubleCid);
           right_value = PrepareStaticOpInput(right_value, kDoubleCid, call);
-          replacement = new (Z)
-              RelationalOpInstr(call->token_pos(), op_kind, left_value,
-                                right_value, kDoubleCid, Thread::kNoDeoptId);
+          replacement = new (Z) RelationalOpInstr(
+              call->token_pos(), op_kind, left_value, right_value, kDoubleCid,
+              Thread::kNoDeoptId, Instruction::kNotSpeculative);
         }
       } else if (op_kind == Token::kNEGATE) {
         ASSERT(call->FirstArgIndex() == 0);
         Value* left_value = call->PushArgumentAt(0)->value();
         left_value = PrepareReceiverOfDevirtualizedCall(left_value, kDoubleCid);
         replacement = new (Z)
-            UnaryDoubleOpInstr(Token::kNEGATE, left_value, call->deopt_id());
+            UnaryDoubleOpInstr(Token::kNEGATE, left_value, call->deopt_id(),
+                               Instruction::kNotSpeculative);
       }
     }
   }
diff --git a/runtime/vm/compiler/aot/precompiler.cc b/runtime/vm/compiler/aot/precompiler.cc
index 85ea616..ec9f50a 100644
--- a/runtime/vm/compiler/aot/precompiler.cc
+++ b/runtime/vm/compiler/aot/precompiler.cc
@@ -1119,7 +1119,6 @@
 #endif
 
   const ObjectPool& pool = ObjectPool::Handle(Z, code.GetObjectPool());
-  ObjectPoolInfo pool_info(pool);
   ICData& call_site = ICData::Handle(Z);
   MegamorphicCache& cache = MegamorphicCache::Handle(Z);
   String& selector = String::Handle(Z);
@@ -1128,7 +1127,7 @@
   Instance& instance = Instance::Handle(Z);
   Code& target_code = Code::Handle(Z);
   for (intptr_t i = 0; i < pool.Length(); i++) {
-    if (pool_info.InfoAt(i) == ObjectPool::kTaggedObject) {
+    if (pool.TypeAt(i) == ObjectPool::kTaggedObject) {
       entry = pool.ObjectAt(i);
       if (entry.IsICData()) {
         // A dynamic call.
@@ -2407,7 +2406,6 @@
           code_(Code::Handle(zone)),
           pool_(ObjectPool::Handle(zone)),
           entry_(Object::Handle(zone)),
-          info_array_(TypedData::Handle(zone)),
           ic_(ICData::Handle(zone)),
           target_name_(String::Handle(zone)),
           args_descriptor_(Array::Handle(zone)),
@@ -2422,10 +2420,8 @@
 
       code_ = function.CurrentCode();
       pool_ = code_.object_pool();
-      info_array_ = pool_.info_array();
-      ObjectPoolInfo pool_info(info_array_);
       for (intptr_t i = 0; i < pool_.Length(); i++) {
-        if (pool_info.InfoAt(i) != ObjectPool::kTaggedObject) continue;
+        if (pool_.TypeAt(i) != ObjectPool::kTaggedObject) continue;
         entry_ = pool_.ObjectAt(i);
         if (entry_.IsICData()) {
           // The only IC calls generated by precompilation are for switchable
@@ -2465,7 +2461,6 @@
     Code& code_;
     ObjectPool& pool_;
     Object& entry_;
-    TypedData& info_array_;
     ICData& ic_;
     String& target_name_;
     Array& args_descriptor_;
diff --git a/runtime/vm/compiler/assembler/assembler.cc b/runtime/vm/compiler/assembler/assembler.cc
index 5d2b8e8..04b9fb1 100644
--- a/runtime/vm/compiler/assembler/assembler.cc
+++ b/runtime/vm/compiler/assembler/assembler.cc
@@ -294,11 +294,10 @@
     return Object::empty_object_pool().raw();
   }
   const ObjectPool& result = ObjectPool::Handle(ObjectPool::New(len));
-  ObjectPoolInfo pool_info(result);
   for (intptr_t i = 0; i < len; ++i) {
-    ObjectPool::EntryType info = object_pool_[i].type_;
-    pool_info.SetInfoAt(i, info);
-    if (info == ObjectPool::kTaggedObject) {
+    ObjectPool::EntryType type = object_pool_[i].type_;
+    result.SetTypeAt(i, type);
+    if (type == ObjectPool::kTaggedObject) {
       result.SetObjectAt(i, *object_pool_[i].obj_);
     } else {
       result.SetRawValueAt(i, object_pool_[i].raw_value_);
diff --git a/runtime/vm/compiler/assembler/assembler_x64_test.cc b/runtime/vm/compiler/assembler/assembler_x64_test.cc
index 534e1a7..b8109d3 100644
--- a/runtime/vm/compiler/assembler/assembler_x64_test.cc
+++ b/runtime/vm/compiler/assembler/assembler_x64_test.cc
@@ -4624,20 +4624,20 @@
       "movq r12,[rdi+0x8]\n"
       "movq thr,rsi\n"
       "movq pp,[r12+0x17]\n"
-      "movq rax,[pp+0x17]\n"
-      "cmpq rax,[pp+0x17]\n"
+      "movq rax,[pp+0xf]\n"
+      "cmpq rax,[pp+0xf]\n"
       "jnz 0x................\n"
-      "movq rcx,[pp+0x17]\n"
-      "cmpq rcx,[pp+0x17]\n"
+      "movq rcx,[pp+0xf]\n"
+      "cmpq rcx,[pp+0xf]\n"
       "jnz 0x................\n"
       "movl rcx,0x1e\n"
       "cmpq rcx,0x1e\n"
       "jnz 0x................\n"
       "push rax\n"
-      "movq r11,[pp+0x17]\n"
+      "movq r11,[pp+0xf]\n"
       "movq [rsp],r11\n"
       "pop rcx\n"
-      "cmpq rcx,[pp+0x17]\n"
+      "cmpq rcx,[pp+0xf]\n"
       "jnz 0x................\n"
       "push rax\n"
       "movq [rsp],0x1e\n"
diff --git a/runtime/vm/compiler/backend/flow_graph.cc b/runtime/vm/compiler/backend/flow_graph.cc
index 55af27c..d532101 100644
--- a/runtime/vm/compiler/backend/flow_graph.cc
+++ b/runtime/vm/compiler/backend/flow_graph.cc
@@ -1494,7 +1494,8 @@
     const intptr_t deopt_id = (deopt_target != NULL)
                                   ? deopt_target->DeoptimizationTarget()
                                   : Thread::kNoDeoptId;
-    converted = UnboxInstr::Create(to, use->CopyWithType(), deopt_id);
+    converted = UnboxInstr::Create(to, use->CopyWithType(), deopt_id,
+                                   use->instruction()->speculative_mode());
   } else if ((to == kTagged) && Boxing::Supports(from)) {
     converted = BoxInstr::Create(from, use->CopyWithType());
   } else {
diff --git a/runtime/vm/compiler/backend/flow_graph_compiler_arm.cc b/runtime/vm/compiler/backend/flow_graph_compiler_arm.cc
index fe0acb1..324b9ca 100644
--- a/runtime/vm/compiler/backend/flow_graph_compiler_arm.cc
+++ b/runtime/vm/compiler/backend/flow_graph_compiler_arm.cc
@@ -712,9 +712,9 @@
   // If expect_type_args, a non-zero length must match the declaration length.
   __ ldr(R6, FieldAddress(R4, ArgumentsDescriptor::type_args_len_offset()));
   if (isolate()->strong()) {
-    __ and_(R6, R6,
-            Operand(Smi::RawValue(
-                ArgumentsDescriptor::TypeArgsLenField::mask_in_place())));
+    __ AndImmediate(
+        R6, R6,
+        Smi::RawValue(ArgumentsDescriptor::TypeArgsLenField::mask_in_place()));
   }
   __ CompareImmediate(R6, Smi::RawValue(0));
   if (expect_type_args) {
@@ -751,9 +751,10 @@
   __ ldr(R6, FieldAddress(R4, ArgumentsDescriptor::positional_count_offset()));
 
   if (isolate()->strong()) {
-    __ and_(R6, R6,
-            Operand(Smi::RawValue(
-                ArgumentsDescriptor::PositionalCountField::mask_in_place())));
+    __ AndImmediate(
+        R6, R6,
+        Smi::RawValue(
+            ArgumentsDescriptor::PositionalCountField::mask_in_place()));
   }
 
   // Check that min_num_pos_args <= num_pos_args.
@@ -843,10 +844,10 @@
       // fp[kParamEndSlotFromFp + num_args - arg_pos].
       __ ldr(R9, Address(R8, ArgumentsDescriptor::position_offset()));
       if (isolate()->strong()) {
-        __ and_(
+        __ AndImmediate(
             R9, R9,
-            Operand(Smi::RawValue(
-                ArgumentsDescriptor::PositionalCountField::mask_in_place())));
+            Smi::RawValue(
+                ArgumentsDescriptor::PositionalCountField::mask_in_place()));
       }
       // R9 is arg_pos as Smi.
       // Point to next named entry.
@@ -884,9 +885,8 @@
            FieldAddress(R4, ArgumentsDescriptor::positional_count_offset()));
     __ SmiUntag(R6);
     if (isolate()->strong()) {
-      __ and_(
-          R6, R6,
-          Operand(ArgumentsDescriptor::PositionalCountField::mask_in_place()));
+      __ AndImmediate(
+          R6, R6, ArgumentsDescriptor::PositionalCountField::mask_in_place());
     }
     for (int i = 0; i < num_opt_pos_params; i++) {
       Label next_parameter;
@@ -1062,10 +1062,10 @@
       __ ldr(R1,
              FieldAddress(R4, ArgumentsDescriptor::positional_count_offset()));
       if (isolate()->strong()) {
-        __ and_(
+        __ AndImmediate(
             R1, R1,
-            Operand(Smi::RawValue(
-                ArgumentsDescriptor::PositionalCountField::mask_in_place())));
+            Smi::RawValue(
+                ArgumentsDescriptor::PositionalCountField::mask_in_place()));
       }
       __ cmp(R0, Operand(R1));
       __ b(&correct_num_arguments, EQ);
diff --git a/runtime/vm/compiler/backend/flow_graph_compiler_arm64.cc b/runtime/vm/compiler/backend/flow_graph_compiler_arm64.cc
index 1a393ed..552e3e0 100644
--- a/runtime/vm/compiler/backend/flow_graph_compiler_arm64.cc
+++ b/runtime/vm/compiler/backend/flow_graph_compiler_arm64.cc
@@ -689,9 +689,9 @@
   // If expect_type_args, a non-zero length must match the declaration length.
   __ LoadFieldFromOffset(R8, R4, ArgumentsDescriptor::type_args_len_offset());
   if (isolate()->strong()) {
-    __ and_(R8, R8,
-            Operand(Smi::RawValue(
-                ArgumentsDescriptor::TypeArgsLenField::mask_in_place())));
+    __ AndImmediate(
+        R8, R8,
+        Smi::RawValue(ArgumentsDescriptor::TypeArgsLenField::mask_in_place()));
   }
   __ CompareImmediate(R8, Smi::RawValue(0));
   if (expect_type_args) {
@@ -730,9 +730,10 @@
                          ArgumentsDescriptor::positional_count_offset());
 
   if (isolate()->strong()) {
-    __ and_(R8, R8,
-            Operand(Smi::RawValue(
-                ArgumentsDescriptor::PositionalCountField::mask_in_place())));
+    __ AndImmediate(
+        R8, R8,
+        Smi::RawValue(
+            ArgumentsDescriptor::PositionalCountField::mask_in_place()));
   }
 
   // Check that min_num_pos_args <= num_pos_args.
@@ -822,10 +823,10 @@
       // fp[kParamEndSlotFromFp + num_args - arg_pos].
       __ LoadFromOffset(R5, R6, ArgumentsDescriptor::position_offset());
       if (isolate()->strong()) {
-        __ and_(
+        __ AndImmediate(
             R5, R5,
-            Operand(Smi::RawValue(
-                ArgumentsDescriptor::PositionalCountField::mask_in_place())));
+            Smi::RawValue(
+                ArgumentsDescriptor::PositionalCountField::mask_in_place()));
       }
       // R5 is arg_pos as Smi.
       // Point to next named entry.
@@ -863,9 +864,8 @@
                            ArgumentsDescriptor::positional_count_offset());
     __ SmiUntag(R8);
     if (isolate()->strong()) {
-      __ and_(
-          R8, R8,
-          Operand(ArgumentsDescriptor::PositionalCountField::mask_in_place()));
+      __ AndImmediate(
+          R8, R8, ArgumentsDescriptor::PositionalCountField::mask_in_place());
     }
     for (int i = 0; i < num_opt_pos_params; i++) {
       Label next_parameter;
@@ -1046,10 +1046,10 @@
       __ LoadFieldFromOffset(R1, R4,
                              ArgumentsDescriptor::positional_count_offset());
       if (isolate()->strong()) {
-        __ and_(
+        __ AndImmediate(
             R1, R1,
-            Operand(Smi::RawValue(
-                ArgumentsDescriptor::PositionalCountField::mask_in_place())));
+            Smi::RawValue(
+                ArgumentsDescriptor::PositionalCountField::mask_in_place()));
       }
       __ CompareRegisters(R0, R1);
       __ b(&correct_num_arguments, EQ);
diff --git a/runtime/vm/compiler/backend/il.cc b/runtime/vm/compiler/backend/il.cc
index c1a8172..ddf48d7 100644
--- a/runtime/vm/compiler/backend/il.cc
+++ b/runtime/vm/compiler/backend/il.cc
@@ -2730,23 +2730,24 @@
 
 UnboxInstr* UnboxInstr::Create(Representation to,
                                Value* value,
-                               intptr_t deopt_id) {
+                               intptr_t deopt_id,
+                               SpeculativeMode speculative_mode) {
   switch (to) {
     case kUnboxedInt32:
       return new UnboxInt32Instr(UnboxInt32Instr::kNoTruncation, value,
-                                 deopt_id);
+                                 deopt_id, speculative_mode);
 
     case kUnboxedUint32:
-      return new UnboxUint32Instr(value, deopt_id);
+      return new UnboxUint32Instr(value, deopt_id, speculative_mode);
 
     case kUnboxedInt64:
-      return new UnboxInt64Instr(value, deopt_id);
+      return new UnboxInt64Instr(value, deopt_id, speculative_mode);
 
     case kUnboxedDouble:
     case kUnboxedFloat32x4:
     case kUnboxedFloat64x2:
     case kUnboxedInt32x4:
-      return new UnboxInstr(to, value, deopt_id);
+      return new UnboxInstr(to, value, deopt_id, speculative_mode);
 
     default:
       UNREACHABLE();
@@ -3748,24 +3749,43 @@
 }
 
 void UnboxInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
-  const intptr_t value_cid = value()->Type()->ToCid();
-  const intptr_t box_cid = BoxCid();
+  if (speculative_mode() == kNotSpeculative) {
+    switch (representation()) {
+      case kUnboxedDouble:
+        EmitLoadFromBox(compiler);
+        break;
 
-  if (value_cid == box_cid) {
-    EmitLoadFromBox(compiler);
-  } else if (CanConvertSmi() && (value_cid == kSmiCid)) {
-    EmitSmiConversion(compiler);
-  } else if (FLAG_experimental_strong_mode &&
-             (representation() == kUnboxedDouble) &&
-             value()->Type()->IsNullableDouble()) {
-    EmitLoadFromBox(compiler);
-  } else if (FLAG_experimental_strong_mode && FLAG_limit_ints_to_64_bits &&
-             (representation() == kUnboxedInt64) &&
-             value()->Type()->IsNullableInt()) {
-    EmitLoadInt64FromBoxOrSmi(compiler);
+      case kUnboxedInt64: {
+        ASSERT(FLAG_limit_ints_to_64_bits);
+        EmitLoadInt64FromBoxOrSmi(compiler);
+        break;
+      }
+
+      default:
+        UNREACHABLE();
+        break;
+    }
   } else {
-    ASSERT(CanDeoptimize());
-    EmitLoadFromBoxWithDeopt(compiler);
+    ASSERT(speculative_mode() == kGuardInputs);
+    const intptr_t value_cid = value()->Type()->ToCid();
+    const intptr_t box_cid = BoxCid();
+
+    if (value_cid == box_cid) {
+      EmitLoadFromBox(compiler);
+    } else if (CanConvertSmi() && (value_cid == kSmiCid)) {
+      EmitSmiConversion(compiler);
+    } else if (FLAG_experimental_strong_mode &&
+               (representation() == kUnboxedDouble) &&
+               value()->Type()->IsNullableDouble()) {
+      EmitLoadFromBox(compiler);
+    } else if (FLAG_experimental_strong_mode && FLAG_limit_ints_to_64_bits &&
+               (representation() == kUnboxedInt64) &&
+               value()->Type()->IsNullableInt()) {
+      EmitLoadInt64FromBoxOrSmi(compiler);
+    } else {
+      ASSERT(CanDeoptimize());
+      EmitLoadFromBoxWithDeopt(compiler);
+    }
   }
 }
 
@@ -3875,7 +3895,7 @@
 ComparisonInstr* RelationalOpInstr::CopyWithNewOperands(Value* new_left,
                                                         Value* new_right) {
   return new RelationalOpInstr(token_pos(), kind(), new_left, new_right,
-                               operation_cid(), deopt_id());
+                               operation_cid(), deopt_id(), speculative_mode());
 }
 
 ComparisonInstr* StrictCompareInstr::CopyWithNewOperands(Value* new_left,
diff --git a/runtime/vm/compiler/backend/il.h b/runtime/vm/compiler/backend/il.h
index 3f2d853..7fd0104 100644
--- a/runtime/vm/compiler/backend/il.h
+++ b/runtime/vm/compiler/backend/il.h
@@ -653,6 +653,14 @@
   enum Tag { FOR_EACH_INSTRUCTION(DECLARE_TAG) };
 #undef DECLARE_TAG
 
+  enum SpeculativeMode {
+    // Types of inputs should be checked when unboxing for this instruction.
+    kGuardInputs,
+    // Each input is guaranteed to have a valid type for the input
+    // representation and its type should not be checked when unboxing.
+    kNotSpeculative
+  };
+
   explicit Instruction(intptr_t deopt_id = Thread::kNoDeoptId)
       : deopt_id_(deopt_id),
         lifetime_position_(kNoPlaceId),
@@ -817,6 +825,9 @@
     return kTagged;
   }
 
+  // By default, instructions should check types of inputs when unboxing.
+  virtual SpeculativeMode speculative_mode() const { return kGuardInputs; }
+
   // Representation of the value produced by this computation.
   virtual Representation representation() const { return kTagged; }
 
@@ -2620,8 +2631,8 @@
 
   DECLARE_INSTRUCTION(AssertSubtype);
 
-  Value* instantiator_type_arguments() const { return inputs_[1]; }
-  Value* function_type_arguments() const { return inputs_[2]; }
+  Value* instantiator_type_arguments() const { return inputs_[0]; }
+  Value* function_type_arguments() const { return inputs_[1]; }
 
   virtual TokenPosition token_pos() const { return token_pos_; }
   const AbstractType& super_type() const { return super_type_; }
@@ -3211,8 +3222,10 @@
                     Value* left,
                     Value* right,
                     intptr_t cid,
-                    intptr_t deopt_id)
-      : TemplateComparison(token_pos, kind, deopt_id) {
+                    intptr_t deopt_id,
+                    SpeculativeMode speculative_mode = kGuardInputs)
+      : TemplateComparison(token_pos, kind, deopt_id),
+        speculative_mode_(speculative_mode) {
     ASSERT(Token::IsRelationalOperator(kind));
     SetInputAt(0, left);
     SetInputAt(1, right);
@@ -3234,9 +3247,17 @@
     return kTagged;
   }
 
+  virtual SpeculativeMode speculative_mode() const { return speculative_mode_; }
+
+  virtual bool AttributesEqual(Instruction* other) const {
+    return ComparisonInstr::AttributesEqual(other) &&
+           (speculative_mode() == other->AsRelationalOp()->speculative_mode());
+  }
+
   PRINT_OPERANDS_TO_SUPPORT
 
  private:
+  const SpeculativeMode speculative_mode_;
   DISALLOW_COPY_AND_ASSIGN(RelationalOpInstr);
 };
 
@@ -4930,11 +4951,18 @@
 
 class UnboxInstr : public TemplateDefinition<1, NoThrow, Pure> {
  public:
-  static UnboxInstr* Create(Representation to, Value* value, intptr_t deopt_id);
+  static UnboxInstr* Create(Representation to,
+                            Value* value,
+                            intptr_t deopt_id,
+                            SpeculativeMode speculative_mode = kGuardInputs);
 
   Value* value() const { return inputs_[0]; }
 
   virtual bool ComputeCanDeoptimize() const {
+    if (speculative_mode() == kNotSpeculative) {
+      return false;
+    }
+
     const intptr_t value_cid = value()->Type()->ToCid();
     const intptr_t box_cid = BoxCid();
 
@@ -4946,28 +4974,20 @@
       return false;
     }
 
-    if (FLAG_experimental_strong_mode) {
-      if ((representation() == kUnboxedDouble) &&
-          value()->Type()->IsNullableDouble()) {
-        return false;
-      }
-
-      if (FLAG_limit_ints_to_64_bits && (representation() == kUnboxedInt64) &&
-          value()->Type()->IsNullableInt()) {
-        return false;
-      }
-    }
-
     return true;
   }
 
+  virtual SpeculativeMode speculative_mode() const { return speculative_mode_; }
+
   virtual Representation representation() const { return representation_; }
 
   DECLARE_INSTRUCTION(Unbox)
   virtual CompileType ComputeType() const;
 
   virtual bool AttributesEqual(Instruction* other) const {
-    return representation() == other->AsUnbox()->representation();
+    UnboxInstr* other_unbox = other->AsUnbox();
+    return (representation() == other_unbox->representation()) &&
+           (speculative_mode() == other_unbox->speculative_mode());
   }
 
   Definition* Canonicalize(FlowGraph* flow_graph);
@@ -4977,8 +4997,13 @@
   virtual TokenPosition token_pos() const { return TokenPosition::kBox; }
 
  protected:
-  UnboxInstr(Representation representation, Value* value, intptr_t deopt_id)
-      : TemplateDefinition(deopt_id), representation_(representation) {
+  UnboxInstr(Representation representation,
+             Value* value,
+             intptr_t deopt_id,
+             SpeculativeMode speculative_mode)
+      : TemplateDefinition(deopt_id),
+        representation_(representation),
+        speculative_mode_(speculative_mode) {
     SetInputAt(0, value);
   }
 
@@ -4994,6 +5019,7 @@
   intptr_t ValueOffset() const { return Boxing::ValueOffset(representation_); }
 
   const Representation representation_;
+  const SpeculativeMode speculative_mode_;
 
   DISALLOW_COPY_AND_ASSIGN(UnboxInstr);
 };
@@ -5005,8 +5031,9 @@
   UnboxIntegerInstr(Representation representation,
                     TruncationMode truncation_mode,
                     Value* value,
-                    intptr_t deopt_id)
-      : UnboxInstr(representation, value, deopt_id),
+                    intptr_t deopt_id,
+                    SpeculativeMode speculative_mode)
+      : UnboxInstr(representation, value, deopt_id, speculative_mode),
         is_truncating_(truncation_mode == kTruncate) {}
 
   bool is_truncating() const { return is_truncating_; }
@@ -5036,8 +5063,13 @@
   UnboxInteger32Instr(Representation representation,
                       TruncationMode truncation_mode,
                       Value* value,
-                      intptr_t deopt_id)
-      : UnboxIntegerInstr(representation, truncation_mode, value, deopt_id) {}
+                      intptr_t deopt_id,
+                      SpeculativeMode speculative_mode)
+      : UnboxIntegerInstr(representation,
+                          truncation_mode,
+                          value,
+                          deopt_id,
+                          speculative_mode) {}
 
   DECLARE_INSTRUCTION_BACKEND()
 
@@ -5047,8 +5079,14 @@
 
 class UnboxUint32Instr : public UnboxInteger32Instr {
  public:
-  UnboxUint32Instr(Value* value, intptr_t deopt_id)
-      : UnboxInteger32Instr(kUnboxedUint32, kTruncate, value, deopt_id) {
+  UnboxUint32Instr(Value* value,
+                   intptr_t deopt_id,
+                   SpeculativeMode speculative_mode = kGuardInputs)
+      : UnboxInteger32Instr(kUnboxedUint32,
+                            kTruncate,
+                            value,
+                            deopt_id,
+                            speculative_mode) {
     ASSERT(is_truncating());
   }
 
@@ -5066,8 +5104,13 @@
  public:
   UnboxInt32Instr(TruncationMode truncation_mode,
                   Value* value,
-                  intptr_t deopt_id)
-      : UnboxInteger32Instr(kUnboxedInt32, truncation_mode, value, deopt_id) {}
+                  intptr_t deopt_id,
+                  SpeculativeMode speculative_mode = kGuardInputs)
+      : UnboxInteger32Instr(kUnboxedInt32,
+                            truncation_mode,
+                            value,
+                            deopt_id,
+                            speculative_mode) {}
 
   virtual bool ComputeCanDeoptimize() const;
 
@@ -5083,8 +5126,14 @@
 
 class UnboxInt64Instr : public UnboxIntegerInstr {
  public:
-  UnboxInt64Instr(Value* value, intptr_t deopt_id)
-      : UnboxIntegerInstr(kUnboxedInt64, kNoTruncation, value, deopt_id) {}
+  UnboxInt64Instr(Value* value,
+                  intptr_t deopt_id,
+                  SpeculativeMode speculative_mode)
+      : UnboxIntegerInstr(kUnboxedInt64,
+                          kNoTruncation,
+                          value,
+                          deopt_id,
+                          speculative_mode) {}
 
   virtual void InferRange(RangeAnalysis* analysis, Range* range);
 
@@ -5262,8 +5311,12 @@
                       Value* left,
                       Value* right,
                       intptr_t deopt_id,
-                      TokenPosition token_pos)
-      : TemplateDefinition(deopt_id), op_kind_(op_kind), token_pos_(token_pos) {
+                      TokenPosition token_pos,
+                      SpeculativeMode speculative_mode = kGuardInputs)
+      : TemplateDefinition(deopt_id),
+        op_kind_(op_kind),
+        token_pos_(token_pos),
+        speculative_mode_(speculative_mode) {
     SetInputAt(0, left);
     SetInputAt(1, right);
   }
@@ -5284,6 +5337,8 @@
     return kUnboxedDouble;
   }
 
+  virtual SpeculativeMode speculative_mode() const { return speculative_mode_; }
+
   virtual intptr_t DeoptimizationTarget() const {
     // Direct access since this instruction cannot deoptimize, and the deopt-id
     // was inherited from another instruction that could deoptimize.
@@ -5298,12 +5353,15 @@
   virtual Definition* Canonicalize(FlowGraph* flow_graph);
 
   virtual bool AttributesEqual(Instruction* other) const {
-    return op_kind() == other->AsBinaryDoubleOp()->op_kind();
+    const BinaryDoubleOpInstr* other_bin_op = other->AsBinaryDoubleOp();
+    return (op_kind() == other_bin_op->op_kind()) &&
+           (speculative_mode() == other_bin_op->speculative_mode());
   }
 
  private:
   const Token::Kind op_kind_;
   const TokenPosition token_pos_;
+  const SpeculativeMode speculative_mode_;
 
   DISALLOW_COPY_AND_ASSIGN(BinaryDoubleOpInstr);
 };
@@ -5752,8 +5810,10 @@
   BinaryInt64OpInstr(Token::Kind op_kind,
                      Value* left,
                      Value* right,
-                     intptr_t deopt_id)
-      : BinaryIntegerOpInstr(op_kind, left, right, deopt_id) {
+                     intptr_t deopt_id,
+                     SpeculativeMode speculative_mode = kGuardInputs)
+      : BinaryIntegerOpInstr(op_kind, left, right, deopt_id),
+        speculative_mode_(speculative_mode) {
     if (FLAG_limit_ints_to_64_bits) {
       mark_truncating();
     }
@@ -5785,12 +5845,20 @@
     return kUnboxedInt64;
   }
 
+  virtual SpeculativeMode speculative_mode() const { return speculative_mode_; }
+
+  virtual bool AttributesEqual(Instruction* other) const {
+    return BinaryIntegerOpInstr::AttributesEqual(other) &&
+           (speculative_mode() == other->AsBinaryInt64Op()->speculative_mode());
+  }
+
   virtual void InferRange(RangeAnalysis* analysis, Range* range);
   virtual CompileType ComputeType() const;
 
   DECLARE_INSTRUCTION(BinaryInt64Op)
 
  private:
+  const SpeculativeMode speculative_mode_;
   DISALLOW_COPY_AND_ASSIGN(BinaryInt64OpInstr);
 };
 
@@ -5842,8 +5910,13 @@
 // Handles only NEGATE.
 class UnaryDoubleOpInstr : public TemplateDefinition<1, NoThrow, Pure> {
  public:
-  UnaryDoubleOpInstr(Token::Kind op_kind, Value* value, intptr_t deopt_id)
-      : TemplateDefinition(deopt_id), op_kind_(op_kind) {
+  UnaryDoubleOpInstr(Token::Kind op_kind,
+                     Value* value,
+                     intptr_t deopt_id,
+                     SpeculativeMode speculative_mode = kGuardInputs)
+      : TemplateDefinition(deopt_id),
+        op_kind_(op_kind),
+        speculative_mode_(speculative_mode) {
     ASSERT(op_kind == Token::kNEGATE);
     SetInputAt(0, value);
   }
@@ -5869,12 +5942,17 @@
     return kUnboxedDouble;
   }
 
-  virtual bool AttributesEqual(Instruction* other) const { return true; }
+  virtual SpeculativeMode speculative_mode() const { return speculative_mode_; }
+
+  virtual bool AttributesEqual(Instruction* other) const {
+    return speculative_mode() == other->AsUnaryDoubleOp()->speculative_mode();
+  }
 
   PRINT_OPERANDS_TO_SUPPORT
 
  private:
   const Token::Kind op_kind_;
+  const SpeculativeMode speculative_mode_;
 
   DISALLOW_COPY_AND_ASSIGN(UnaryDoubleOpInstr);
 };
diff --git a/runtime/vm/compiler/backend/inliner.cc b/runtime/vm/compiler/backend/inliner.cc
index 3725d0d..faf2759 100644
--- a/runtime/vm/compiler/backend/inliner.cc
+++ b/runtime/vm/compiler/backend/inliner.cc
@@ -2346,7 +2346,9 @@
                        call->GetBlock()->try_index(), Thread::kNoDeoptId);
   (*entry)->InheritDeoptTarget(Z, call);
   Instruction* cursor = *entry;
-  if (flow_graph->isolate()->argument_type_checks()) {
+  if (flow_graph->isolate()->argument_type_checks() &&
+      (kind != MethodRecognizer::kObjectArraySetIndexedUnchecked &&
+       kind != MethodRecognizer::kGrowableArraySetIndexedUnchecked)) {
     // Only type check for the value. A type check for the index is not
     // needed here because we insert a deoptimizing smi-check for the case
     // the index is not a smi.
@@ -2693,16 +2695,6 @@
   PrepareInlineByteArrayBaseOp(flow_graph, call, array_cid, view_cid, &array,
                                index, &cursor);
 
-  // Extract the instance call so we can use the function_name in the stored
-  // value check ICData.
-  InstanceCallInstr* i_call = NULL;
-  if (call->IsPolymorphicInstanceCall()) {
-    i_call = call->AsPolymorphicInstanceCall()->instance_call();
-  } else {
-    ASSERT(call->IsInstanceCall());
-    i_call = call->AsInstanceCall();
-  }
-  ASSERT(i_call != NULL);
   Cids* value_check = NULL;
   switch (view_cid) {
     case kTypedDataInt8ArrayCid:
@@ -3180,6 +3172,8 @@
     // Recognized []= operators.
     case MethodRecognizer::kObjectArraySetIndexed:
     case MethodRecognizer::kGrowableArraySetIndexed:
+    case MethodRecognizer::kObjectArraySetIndexedUnchecked:
+    case MethodRecognizer::kGrowableArraySetIndexedUnchecked:
       return InlineSetIndexed(flow_graph, kind, target, call, receiver,
                               token_pos, /* value_check = */ NULL, entry, last);
     case MethodRecognizer::kInt8ArraySetIndexed:
diff --git a/runtime/vm/compiler/backend/type_propagator.cc b/runtime/vm/compiler/backend/type_propagator.cc
index 8d6e8ef..940bf22 100644
--- a/runtime/vm/compiler/backend/type_propagator.cc
+++ b/runtime/vm/compiler/backend/type_propagator.cc
@@ -938,12 +938,8 @@
     return CompileType(CompileType::kNonNullable, cid, &type);
   }
 
-  if (FLAG_experimental_strong_mode && block_->IsGraphEntry()) {
-    LocalScope* scope = graph_entry->parsed_function().node_sequence()->scope();
-    const AbstractType& param_type = scope->VariableAt(index())->type();
-    TraceStrongModeType(this, param_type);
-    return CompileType::FromAbstractType(param_type);
-  }
+  // TODO(dartbug.com/30480): Figure out how to use parameter types
+  // without interfering with argument type checks.
 
   return CompileType::Dynamic();
 }
diff --git a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
index 5d4ce6a..979efd0 100644
--- a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
+++ b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
@@ -2735,7 +2735,7 @@
   EvaluateExpression(expression_offset);
   if (result_.IsString()) {
     const String& str = String::Handle(Z, String::RawCast(result_.raw()));
-    result_ = Integer::New(str.Length());
+    result_ = Integer::New(str.Length(), H.allocation_space());
   } else {
     H.ReportError(
         script_, position,
@@ -3037,7 +3037,8 @@
   intptr_t length = builder_->ReadListLength();  // read list length.
 
   bool all_string = true;
-  const Array& strings = Array::Handle(Z, Array::New(length));
+  const Array& strings =
+      Array::Handle(Z, Array::New(length, H.allocation_space()));
   for (intptr_t i = 0; i < length; ++i) {
     EvaluateExpression(builder_->ReaderOffset(),
                        false);  // read ith expression.
@@ -3222,8 +3223,8 @@
       (receiver != NULL ? 1 : 0) + (type_args != NULL ? 1 : 0);
 
   // Build up arguments.
-  const Array& arguments =
-      Array::ZoneHandle(Z, Array::New(extra_arguments + argument_count));
+  const Array& arguments = Array::ZoneHandle(
+      Z, Array::New(extra_arguments + argument_count, H.allocation_space()));
   intptr_t pos = 0;
   if (receiver != NULL) {
     arguments.SetAt(pos++, *receiver);
@@ -3242,7 +3243,8 @@
 
   // List of named.
   list_length = builder_->ReadListLength();  // read list length.
-  const Array& names = Array::ZoneHandle(Z, Array::New(list_length));
+  const Array& names =
+      Array::ZoneHandle(Z, Array::New(list_length, H.allocation_space()));
   for (intptr_t i = 0; i < list_length; ++i) {
     String& name =
         H.DartSymbol(builder_->ReadStringReference());  // read ith name index.
@@ -3261,7 +3263,8 @@
   // We do not support generic methods yet.
   const int kTypeArgsLen = 0;
   const Array& args_descriptor = Array::Handle(
-      Z, ArgumentsDescriptor::New(kTypeArgsLen, arguments.Length(), names));
+      Z, ArgumentsDescriptor::New(kTypeArgsLen, arguments.Length(), names,
+                                  H.allocation_space()));
   const Object& result = Object::Handle(
       Z, DartEntry::InvokeFunction(function, arguments, args_descriptor));
   if (result.IsError()) {
@@ -3872,7 +3875,7 @@
   intptr_t named_argument_count = ReadListLength();
   Array& argument_names = Array::ZoneHandle(Z);
   if (named_argument_count > 0) {
-    argument_names = Array::New(named_argument_count);
+    argument_names = Array::New(named_argument_count, H.allocation_space());
     for (intptr_t i = 0; i < named_argument_count; ++i) {
       // ith variable offset.
       body += LoadLocal(LookupVariable(ReaderOffset() + data_program_offset_));
@@ -5934,7 +5937,7 @@
   const Function* interface_target = &Function::null_function();
   const NameIndex itarget_name =
       ReadCanonicalNameReference();  // read interface_target_reference.
-  if (FLAG_experimental_strong_mode && !H.IsRoot(itarget_name) &&
+  if (I->strong() && !H.IsRoot(itarget_name) &&
       (H.IsGetter(itarget_name) || H.IsField(itarget_name))) {
     interface_target = &Function::ZoneHandle(
         Z, LookupMethodByMember(itarget_name, H.DartGetterName(itarget_name)));
@@ -5998,7 +6001,7 @@
   const Function* interface_target = &Function::null_function();
   const NameIndex itarget_name =
       ReadCanonicalNameReference();  // read interface_target_reference.
-  if (FLAG_experimental_strong_mode && !H.IsRoot(itarget_name)) {
+  if (I->strong() && !H.IsRoot(itarget_name)) {
     interface_target = &Function::ZoneHandle(
         Z, LookupMethodByMember(itarget_name, H.DartSetterName(itarget_name)));
     ASSERT(setter_name.raw() == interface_target->name());
@@ -6007,7 +6010,9 @@
   intptr_t argument_check_bits = 0;
   if (I->strong()) {
     argument_check_bits = ArgumentCheckBitsForSetter(
-        *interface_target, static_cast<DispatchCategory>(flags & 3));
+        // TODO(sjindel): Change 'Function::null_function()' to
+        // '*interface_target' and fix breakages.
+        Function::null_function(), static_cast<DispatchCategory>(flags & 3));
   }
 
   if (direct_call.check_receiver_for_null_) {
@@ -6435,7 +6440,9 @@
       // All bits are 0.
       break;
     case Interface: {
-      if (!interface_target.IsImplicitGetterOrSetter()) {
+      // TODO(sjindel): Revise checking interface target for null.
+      if (interface_target.IsNull() ||
+          !interface_target.IsImplicitGetterOrSetter()) {
         intptr_t type_argument_check_bits_unused;
         ArgumentCheckBitsForInvocation(
             1, 0, 1, Array::null_array(), interface_target, category,
@@ -6502,7 +6509,9 @@
           Utils::SignedNBitMask(strong_checked_type_arguments);
       break;
     case Interface: {
-      ASSERT(!interface_target.IsNull() || !FLAG_experimental_strong_mode);
+      // TODO(sjindel): Restore this assertion once '*interface_target'
+      // is passed to this function instead of 'Function::null_function()'.
+      // ASSERT(!interface_target.IsNull() || !I->strong());
       if (interface_target.IsNull()) {
         argument_check_bits =
             Utils::SignedNBitMask(strong_checked_arguments + 1);
@@ -6717,8 +6726,7 @@
   const Function* interface_target = &Function::null_function();
   const NameIndex itarget_name =
       ReadCanonicalNameReference();  // read interface_target_reference.
-  if (FLAG_experimental_strong_mode && !H.IsRoot(itarget_name) &&
-      !H.IsField(itarget_name)) {
+  if (I->strong() && !H.IsRoot(itarget_name) && !H.IsField(itarget_name)) {
     interface_target = &Function::ZoneHandle(
         Z,
         LookupMethodByMember(itarget_name, H.DartProcedureName(itarget_name)));
@@ -6736,9 +6744,11 @@
   if (I->strong()) {
     ArgumentCheckBitsForInvocation(
         argument_count - 1, type_args_len, positional_argument_count,
-        argument_names, *interface_target,
-        static_cast<DispatchCategory>(flags & 3), &argument_check_bits,
-        &type_argument_check_bits);
+        argument_names,
+        // TODO(sjindel): Change 'Function::null_function()' to
+        // '*interface_target' and fix breakages.
+        Function::null_function(), static_cast<DispatchCategory>(flags & 3),
+        &argument_check_bits, &type_argument_check_bits);
   }
 
   if (!direct_call.target_.IsNull()) {
@@ -6875,7 +6885,7 @@
 
     SkipListOfExpressions();
     intptr_t named_list_length = ReadListLength();
-    argument_names ^= Array::New(named_list_length);
+    argument_names ^= Array::New(named_list_length, H.allocation_space());
     for (intptr_t i = 0; i < named_list_length; i++) {
       const String& arg_name = H.DartSymbol(ReadStringReference());
       argument_names.SetAt(i, arg_name);
@@ -9143,7 +9153,8 @@
   }
 
   intptr_t list_length = ReadListLength();  // read list length.
-  const Array& metadata_values = Array::Handle(Z, Array::New(list_length));
+  const Array& metadata_values =
+      Array::Handle(Z, Array::New(list_length, H.allocation_space()));
   for (intptr_t i = 0; i < list_length; ++i) {
     // this will (potentially) read the expression, but reset the position.
     Instance& value = constant_evaluator_.EvaluateExpression(ReaderOffset());
diff --git a/runtime/vm/compiler/frontend/kernel_to_il.cc b/runtime/vm/compiler/frontend/kernel_to_il.cc
index 6f2156a..7f446dd 100644
--- a/runtime/vm/compiler/frontend/kernel_to_il.cc
+++ b/runtime/vm/compiler/frontend/kernel_to_il.cc
@@ -2545,7 +2545,7 @@
 static RawArray* AsSortedDuplicateFreeArray(GrowableArray<intptr_t>* source) {
   intptr_t size = source->length();
   if (size == 0) {
-    return Array::New(0);
+    return Object::empty_array().raw();
   }
 
   source->Sort(LowestFirst);
diff --git a/runtime/vm/compiler/intrinsifier.cc b/runtime/vm/compiler/intrinsifier.cc
index d48170e..43d52fb 100644
--- a/runtime/vm/compiler/intrinsifier.cc
+++ b/runtime/vm/compiler/intrinsifier.cc
@@ -901,11 +901,24 @@
   return true;
 }
 
+void Intrinsifier::ObjectArraySetIndexed(Assembler* assembler) {
+  if (Isolate::Current()->argument_type_checks()) {
+    return;
+  }
+
+  ObjectArraySetIndexedUnchecked(assembler);
+}
+
 bool Intrinsifier::Build_GrowableArraySetIndexed(FlowGraph* flow_graph) {
   if (Isolate::Current()->argument_type_checks()) {
     return false;
   }
 
+  return Build_GrowableArraySetIndexedUnchecked(flow_graph);
+}
+
+bool Intrinsifier::Build_GrowableArraySetIndexedUnchecked(
+    FlowGraph* flow_graph) {
   GraphEntryInstr* graph_entry = flow_graph->graph_entry();
   TargetEntryInstr* normal_entry = graph_entry->normal_entry();
   BlockBuilder builder(flow_graph, normal_entry);
diff --git a/runtime/vm/compiler/intrinsifier_arm.cc b/runtime/vm/compiler/intrinsifier_arm.cc
index 3181293..589f84d 100644
--- a/runtime/vm/compiler/intrinsifier_arm.cc
+++ b/runtime/vm/compiler/intrinsifier_arm.cc
@@ -53,13 +53,8 @@
   assembler->mov(LR, Operand(CALLEE_SAVED_TEMP));
 }
 
-// Intrinsify only for Smi value and index. Non-smi values need a store buffer
-// update. Array length is always a Smi.
-void Intrinsifier::ObjectArraySetIndexed(Assembler* assembler) {
-  if (Isolate::Current()->argument_type_checks()) {
-    return;
-  }
-
+// Intrinsify only for Smi index.
+void Intrinsifier::ObjectArraySetIndexedUnchecked(Assembler* assembler) {
   Label fall_through;
   __ ldr(R1, Address(SP, 1 * kWordSize));  // Index.
   __ tst(R1, Operand(kSmiTagMask));
diff --git a/runtime/vm/compiler/intrinsifier_arm64.cc b/runtime/vm/compiler/intrinsifier_arm64.cc
index f4f07d4..c8aaf0a 100644
--- a/runtime/vm/compiler/intrinsifier_arm64.cc
+++ b/runtime/vm/compiler/intrinsifier_arm64.cc
@@ -57,13 +57,8 @@
   assembler->mov(ARGS_DESC_REG, CALLEE_SAVED_TEMP2);
 }
 
-// Intrinsify only for Smi value and index. Non-smi values need a store buffer
-// update. Array length is always a Smi.
-void Intrinsifier::ObjectArraySetIndexed(Assembler* assembler) {
-  if (Isolate::Current()->argument_type_checks()) {
-    return;
-  }
-
+// Intrinsify only for Smi index.
+void Intrinsifier::ObjectArraySetIndexedUnchecked(Assembler* assembler) {
   Label fall_through;
   __ ldr(R1, Address(SP, 1 * kWordSize));  // Index.
   __ BranchIfNotSmi(R1, &fall_through);
diff --git a/runtime/vm/compiler/intrinsifier_ia32.cc b/runtime/vm/compiler/intrinsifier_ia32.cc
index 0338c78..fe8b123 100644
--- a/runtime/vm/compiler/intrinsifier_ia32.cc
+++ b/runtime/vm/compiler/intrinsifier_ia32.cc
@@ -52,52 +52,9 @@
   assembler->movl(ARGS_DESC_REG, CALLEE_SAVED_TEMP);
 }
 
-static intptr_t ComputeObjectArrayTypeArgumentsOffset() {
-  const Library& core_lib = Library::Handle(Library::CoreLibrary());
-  const Class& cls =
-      Class::Handle(core_lib.LookupClassAllowPrivate(Symbols::_List()));
-  ASSERT(!cls.IsNull());
-  ASSERT(cls.NumTypeArguments() == 1);
-  const intptr_t field_offset = cls.type_arguments_field_offset();
-  ASSERT(field_offset != Class::kNoTypeArguments);
-  return field_offset;
-}
-
-// Intrinsify only for Smi value and index. Non-smi values need a store buffer
-// update. Array length is always a Smi.
-void Intrinsifier::ObjectArraySetIndexed(Assembler* assembler) {
+// Intrinsify only for Smi index.
+void Intrinsifier::ObjectArraySetIndexedUnchecked(Assembler* assembler) {
   Label fall_through;
-  if (Isolate::Current()->argument_type_checks()) {
-    const intptr_t type_args_field_offset =
-        ComputeObjectArrayTypeArgumentsOffset();
-    // Inline simple tests (Smi, null), fallthrough if not positive.
-    const Immediate& raw_null =
-        Immediate(reinterpret_cast<intptr_t>(Object::null()));
-    Label checked_ok;
-    __ movl(EDI, Address(ESP, +1 * kWordSize));  // Value.
-    // Null value is valid for any type.
-    __ cmpl(EDI, raw_null);
-    __ j(EQUAL, &checked_ok, Assembler::kNearJump);
-
-    __ movl(EBX, Address(ESP, +3 * kWordSize));  // Array.
-    __ movl(EBX, FieldAddress(EBX, type_args_field_offset));
-    // EBX: Type arguments of array.
-    __ cmpl(EBX, raw_null);
-    __ j(EQUAL, &checked_ok, Assembler::kNearJump);
-    // Check if it's dynamic.
-    // Get type at index 0.
-    __ movl(EAX, FieldAddress(EBX, TypeArguments::type_at_offset(0)));
-    __ CompareObject(EAX, Object::dynamic_type());
-    __ j(EQUAL, &checked_ok, Assembler::kNearJump);
-    // Check for int and num.
-    __ testl(EDI, Immediate(kSmiTagMask));  // Value is Smi?
-    __ j(NOT_ZERO, &fall_through);          // Non-smi value.
-    __ CompareObject(EAX, Type::ZoneHandle(Type::IntType()));
-    __ j(EQUAL, &checked_ok, Assembler::kNearJump);
-    __ CompareObject(EAX, Type::ZoneHandle(Type::Number()));
-    __ j(NOT_EQUAL, &fall_through);
-    __ Bind(&checked_ok);
-  }
   __ movl(EBX, Address(ESP, +2 * kWordSize));  // Index.
   __ testl(EBX, Immediate(kSmiTagMask));
   // Index not Smi.
@@ -125,6 +82,7 @@
   // EAX, EBX
   // and the newly allocated object is returned in EAX.
   const intptr_t kTypeArgumentsOffset = 2 * kWordSize;
+
   const intptr_t kArrayOffset = 1 * kWordSize;
   Label fall_through;
 
diff --git a/runtime/vm/compiler/intrinsifier_x64.cc b/runtime/vm/compiler/intrinsifier_x64.cc
index 6fa9e2a..636b71c 100644
--- a/runtime/vm/compiler/intrinsifier_x64.cc
+++ b/runtime/vm/compiler/intrinsifier_x64.cc
@@ -52,11 +52,7 @@
   assembler->movq(ARGS_DESC_REG, CALLEE_SAVED_TEMP);
 }
 
-void Intrinsifier::ObjectArraySetIndexed(Assembler* assembler) {
-  if (Isolate::Current()->argument_type_checks()) {
-    return;
-  }
-
+void Intrinsifier::ObjectArraySetIndexedUnchecked(Assembler* assembler) {
   Label fall_through;
   __ movq(RDX, Address(RSP, +1 * kWordSize));  // Value.
   __ movq(RCX, Address(RSP, +2 * kWordSize));  // Index.
diff --git a/runtime/vm/compiler/method_recognizer.cc b/runtime/vm/compiler/method_recognizer.cc
index b26e9f7..d8d86ce 100644
--- a/runtime/vm/compiler/method_recognizer.cc
+++ b/runtime/vm/compiler/method_recognizer.cc
@@ -41,10 +41,12 @@
 
     case kObjectArrayGetIndexed:
     case kObjectArraySetIndexed:
+    case kObjectArraySetIndexedUnchecked:
       return kArrayCid;
 
     case kGrowableArrayGetIndexed:
     case kGrowableArraySetIndexed:
+    case kGrowableArraySetIndexedUnchecked:
       return kGrowableObjectArrayCid;
 
     case kFloat32ArrayGetIndexed:
diff --git a/runtime/vm/compiler/method_recognizer.h b/runtime/vm/compiler/method_recognizer.h
index f898671..67ae5b3 100644
--- a/runtime/vm/compiler/method_recognizer.h
+++ b/runtime/vm/compiler/method_recognizer.h
@@ -158,7 +158,7 @@
   V(_Double, >=, Double_greaterEqualThan, Bool, 0x4260c184)                    \
   V(_Double, <, Double_lessThan, Bool, 0x365d1eba)                             \
   V(_Double, <=, Double_lessEqualThan, Bool, 0x74b5eb64)                       \
-  V(_Double, ==, Double_equal, Bool, 0x7ec67775)                               \
+  V(_Double, ==, Double_equal, Bool, 0x613492fc)                               \
   V(_Double, +, Double_add, Double, 0x53994370)                                \
   V(_Double, -, Double_sub, Double, 0x3b69d466)                                \
   V(_Double, *, Double_mul, Double, 0x2bb9bd5d)                                \
@@ -170,7 +170,8 @@
   V(_Double, get:isNegative, Double_getIsNegative, Bool, 0x3a59e7f4)           \
   V(_Double, _mulFromInteger, Double_mulFromInteger, Double, 0x2017fcf6)       \
   V(_Double, .fromInteger, DoubleFromInteger, Double, 0x6d234f4b)              \
-  V(_List, []=, ObjectArraySetIndexed, Dynamic, 0x6dff776c)                    \
+  V(_List, _setIndexed, ObjectArraySetIndexedUnchecked, Dynamic, 0x50d64c75)   \
+  V(_List, []=, ObjectArraySetIndexed, Dynamic, 0x16b3d2b0)                    \
   V(_GrowableList, .withData, GrowableArray_Allocate, GrowableObjectArray,     \
     0x28b2138e)                                                                \
   V(_GrowableList, add, GrowableArray_add, Dynamic, 0x40b490b8)                \
@@ -224,7 +225,7 @@
   V(_IntegerImplementation, _greaterThanFromInteger,                           \
     Integer_greaterThanFromInt, Bool, 0x4a50ed58)                              \
   V(_IntegerImplementation, >, Integer_greaterThan, Bool, 0x6599a6e1)          \
-  V(_IntegerImplementation, ==, Integer_equal, Bool, 0x6d56616e)               \
+  V(_IntegerImplementation, ==, Integer_equal, Bool, 0x58abc487)               \
   V(_IntegerImplementation, _equalToInteger, Integer_equalToInteger, Bool,     \
     0x063be842)                                                                \
   V(_IntegerImplementation, <, Integer_lessThan, Bool, 0x365d1eba)             \
@@ -327,7 +328,9 @@
   V(_GrowableList, _setData, GrowableArraySetData, Dynamic, 0x3dbea348)        \
   V(_GrowableList, _setLength, GrowableArraySetLength, Dynamic, 0x753e55da)    \
   V(_GrowableList, [], GrowableArrayGetIndexed, Dynamic, 0x446fe1f0)           \
-  V(_GrowableList, []=, GrowableArraySetIndexed, Dynamic, 0x4699aed6)          \
+  V(_GrowableList, []=, GrowableArraySetIndexed, Dynamic, 0x40a462ec)          \
+  V(_GrowableList, _setIndexed, GrowableArraySetIndexedUnchecked, Dynamic,     \
+    0x297083df)                                                                \
   V(_StringBase, get:length, StringBaseLength, Smi, 0x2a2d03d1)                \
   V(_OneByteString, codeUnitAt, OneByteStringCodeUnitAt, Smi, 0x55a0a1f3)      \
   V(_TwoByteString, codeUnitAt, TwoByteStringCodeUnitAt, Smi, 0x55a0a1f3)      \
@@ -469,7 +472,7 @@
   V(_Double, >=, Double_greaterEqualThan, 0x4260c184)                          \
   V(_Double, <, Double_lessThan, 0x365d1eba)                                   \
   V(_Double, <=, Double_lessEqualThan, 0x74b5eb64)                             \
-  V(_Double, ==, Double_equal, 0x7ec67775)                                     \
+  V(_Double, ==, Double_equal, 0x613492fc)                                     \
   V(_Double, +, Double_add, 0x53994370)                                        \
   V(_Double, -, Double_sub, 0x3b69d466)                                        \
   V(_Double, *, Double_mul, 0x2bb9bd5d)                                        \
@@ -483,7 +486,7 @@
   V(_IntegerImplementation, |, Integer_bitOr, 0x22d38a06)                      \
   V(_IntegerImplementation, ^, Integer_bitXor, 0x79078347)                     \
   V(_IntegerImplementation, >, Integer_greaterThan, 0x6599a6e1)                \
-  V(_IntegerImplementation, ==, Integer_equal, 0x6d56616e)                     \
+  V(_IntegerImplementation, ==, Integer_equal, 0x58abc487)                     \
   V(_IntegerImplementation, <, Integer_lessThan, 0x365d1eba)                   \
   V(_IntegerImplementation, <=, Integer_lessEqualThan, 0x74b5eb64)             \
   V(_IntegerImplementation, >=, Integer_greaterEqualThan, 0x4260c184)          \
diff --git a/runtime/vm/dart_api_impl.cc b/runtime/vm/dart_api_impl.cc
index 1f5959f..df541f8 100644
--- a/runtime/vm/dart_api_impl.cc
+++ b/runtime/vm/dart_api_impl.cc
@@ -1447,6 +1447,11 @@
   T->isolate()->heap()->NotifyIdle(deadline);
 }
 
+DART_EXPORT void Dart_NotifyLowMemory() {
+  API_TIMELINE_BEGIN_END;
+  Isolate::NotifyLowMemory();
+}
+
 DART_EXPORT void Dart_ExitIsolate() {
   Thread* T = Thread::Current();
   CHECK_ISOLATE(T->isolate());
@@ -4487,6 +4492,9 @@
 DART_EXPORT Dart_Handle Dart_CreateNativeWrapperClass(Dart_Handle library,
                                                       Dart_Handle name,
                                                       int field_count) {
+#if defined(DART_PRECOMPILED_RUNTIME)
+  return Api::NewError("%s: Cannot compile on an AOT runtime.", CURRENT_FUNC);
+#else
   DARTSCOPE(Thread::Current());
   const String& cls_name = Api::UnwrapStringHandle(Z, name);
   if (cls_name.IsNull()) {
@@ -4510,6 +4518,7 @@
         "Unable to create native wrapper class : already exists");
   }
   return Api::NewHandle(T, cls.RareType());
+#endif  // defined(DART_PRECOMPILED_RUNTIME)
 }
 
 DART_EXPORT Dart_Handle Dart_GetNativeInstanceFieldCount(Dart_Handle obj,
@@ -4993,6 +5002,7 @@
   return Api::NewHandle(T, String::New(resolved_uri));
 }
 
+#if !defined(DART_PRECOMPILED_RUNTIME)
 // NOTE: Need to pass 'result' as a parameter here in order to avoid
 // warning: variable 'result' might be clobbered by 'longjmp' or 'vfork'
 // which shows up because of the use of setjmp.
@@ -5018,7 +5028,6 @@
   }
 }
 
-#if !defined(DART_PRECOMPILED_RUNTIME)
 static Dart_Handle LoadKernelProgram(Thread* T,
                                      const String& url,
                                      void* kernel) {
@@ -5029,13 +5038,16 @@
   delete program;
   return Api::NewHandle(T, tmp.raw());
 }
-#endif
+#endif  // !defined(DART_PRECOMPILED_RUNTIME)
 
 DART_EXPORT Dart_Handle Dart_LoadScript(Dart_Handle url,
                                         Dart_Handle resolved_url,
                                         Dart_Handle source,
                                         intptr_t line_offset,
                                         intptr_t column_offset) {
+#if defined(DART_PRECOMPILED_RUNTIME)
+  return Api::NewError("%s: Cannot compile on an AOT runtime.", CURRENT_FUNC);
+#else
   API_TIMELINE_DURATION;
   DARTSCOPE(Thread::Current());
   Isolate* I = T->isolate();
@@ -5068,7 +5080,6 @@
   CHECK_COMPILATION_ALLOWED(I);
 
   Dart_Handle result;
-#if !defined(DART_PRECOMPILED_RUNTIME)
   if (I->use_dart_frontend()) {
     if ((source == Api::Null()) || (source == NULL)) {
       RETURN_NULL_ERROR(source);
@@ -5091,7 +5102,6 @@
     I->object_store()->set_root_library(library);
     return Api::NewHandle(T, library.raw());
   }
-#endif
 
   const String& source_str = Api::UnwrapStringHandle(Z, source);
   if (source_str.IsNull()) {
@@ -5111,10 +5121,14 @@
   script.SetLocationOffset(line_offset, column_offset);
   CompileSource(T, library, script, &result);
   return result;
+#endif  // defined(DART_PRECOMPILED_RUNTIME)
 }
 
 DART_EXPORT Dart_Handle Dart_LoadScriptFromSnapshot(const uint8_t* buffer,
                                                     intptr_t buffer_len) {
+#if defined(DART_PRECOMPILED_RUNTIME)
+  return Api::NewError("%s: Cannot compile on an AOT runtime.", CURRENT_FUNC);
+#else
   API_TIMELINE_DURATION;
   DARTSCOPE(Thread::Current());
   Isolate* I = T->isolate();
@@ -5172,6 +5186,7 @@
   library.set_debuggable(true);
   I->object_store()->set_root_library(library);
   return Api::NewHandle(T, library.raw());
+#endif  // defined(DART_PRECOMPILED_RUNTIME)
 }
 
 DART_EXPORT void* Dart_ReadKernelBinary(const uint8_t* buffer,
@@ -5189,14 +5204,12 @@
 }
 
 DART_EXPORT Dart_Handle Dart_LoadKernel(void* kernel_program) {
+#if defined(DART_PRECOMPILED_RUNTIME)
+  return Api::NewError("%s: Cannot compile on an AOT runtime.", CURRENT_FUNC);
+#else
   API_TIMELINE_DURATION;
   DARTSCOPE(Thread::Current());
   StackZone zone(T);
-
-#if defined(DART_PRECOMPILED_RUNTIME)
-  return Api::NewError("%s: Can't load Kernel files from precompiled runtime.",
-                       CURRENT_FUNC);
-#else
   Isolate* I = T->isolate();
 
   Library& library = Library::Handle(Z, I->object_store()->root_library());
@@ -5227,7 +5240,7 @@
   library ^= tmp.raw();
   I->object_store()->set_root_library(library);
   return Api::NewHandle(T, library.raw());
-#endif
+#endif  // defined(DART_PRECOMPILED_RUNTIME)
 }
 
 DART_EXPORT Dart_Handle Dart_RootLibrary() {
@@ -5420,6 +5433,9 @@
                                          Dart_Handle source,
                                          intptr_t line_offset,
                                          intptr_t column_offset) {
+#if defined(DART_PRECOMPILED_RUNTIME)
+  return Api::NewError("%s: Cannot compile on an AOT runtime.", CURRENT_FUNC);
+#else
   API_TIMELINE_DURATION;
   DARTSCOPE(Thread::Current());
   Isolate* I = T->isolate();
@@ -5429,7 +5445,6 @@
     RETURN_TYPE_ERROR(Z, url, String);
   }
   Dart_Handle result;
-#if !defined(DART_PRECOMPILED_RUNTIME)
   if (I->use_dart_frontend()) {
     void* kernel_pgm = reinterpret_cast<void*>(source);
     result = LoadKernelProgram(T, url_str, kernel_pgm);
@@ -5438,7 +5453,6 @@
     }
     return Api::NewHandle(T, Library::LookupLibrary(T, url_str));
   }
-#endif
   if (::Dart_IsNull(resolved_url)) {
     resolved_url = url;
   }
@@ -5493,11 +5507,15 @@
     }
   }
   return result;
+#endif  // defined(DART_PRECOMPILED_RUNTIME)
 }
 
 DART_EXPORT Dart_Handle Dart_LibraryImportLibrary(Dart_Handle library,
                                                   Dart_Handle import,
                                                   Dart_Handle prefix) {
+#if defined(DART_PRECOMPILED_RUNTIME)
+  return Api::NewError("%s: Cannot compile on an AOT runtime.", CURRENT_FUNC);
+#else
   DARTSCOPE(Thread::Current());
   Isolate* I = T->isolate();
   const Library& library_vm = Api::UnwrapLibraryHandle(Z, library);
@@ -5534,6 +5552,7 @@
     }
   }
   return Api::Success();
+#endif  // defined(DART_PRECOMPILED_RUNTIME)
 }
 
 DART_EXPORT Dart_Handle Dart_GetImportsOfScheme(Dart_Handle scheme) {
@@ -5577,6 +5596,9 @@
                                         Dart_Handle source,
                                         intptr_t line_offset,
                                         intptr_t column_offset) {
+#if defined(DART_PRECOMPILED_RUNTIME)
+  return Api::NewError("%s: Cannot compile on an AOT runtime.", CURRENT_FUNC);
+#else
   API_TIMELINE_DURATION;
   DARTSCOPE(Thread::Current());
   Isolate* I = T->isolate();
@@ -5619,11 +5641,15 @@
   Dart_Handle result;
   CompileSource(T, lib, script, &result);
   return result;
+#endif  // defined(DART_PRECOMPILED_RUNTIME)
 }
 
 DART_EXPORT Dart_Handle Dart_LibraryLoadPatch(Dart_Handle library,
                                               Dart_Handle url,
                                               Dart_Handle patch_source) {
+#if defined(DART_PRECOMPILED_RUNTIME)
+  return Api::NewError("%s: Cannot compile on an AOT runtime.", CURRENT_FUNC);
+#else
   API_TIMELINE_DURATION;
   DARTSCOPE(Thread::Current());
   Isolate* I = T->isolate();
@@ -5649,6 +5675,7 @@
   Dart_Handle result;
   CompileSource(T, lib, script, &result);
   return result;
+#endif  // defined(DART_PRECOMPILED_RUNTIME)
 }
 
 // Finalizes classes and invokes Dart core library function that completes
@@ -6278,6 +6305,9 @@
 DART_EXPORT
 Dart_Handle Dart_SaveCompilationTrace(uint8_t** buffer,
                                       intptr_t* buffer_length) {
+#if defined(DART_PRECOMPILED_RUNTIME)
+  return Api::NewError("%s: Cannot compile on an AOT runtime.", CURRENT_FUNC);
+#else
   API_TIMELINE_DURATION;
   Thread* thread = Thread::Current();
   DARTSCOPE(thread);
@@ -6287,10 +6317,14 @@
   ProgramVisitor::VisitFunctions(&saver);
   saver.StealBuffer(buffer, buffer_length);
   return Api::Success();
+#endif  // defined(DART_PRECOMPILED_RUNTIME)
 }
 
 DART_EXPORT
 Dart_Handle Dart_LoadCompilationTrace(uint8_t* buffer, intptr_t buffer_length) {
+#if defined(DART_PRECOMPILED_RUNTIME)
+  return Api::NewError("%s: Cannot compile on an AOT runtime.", CURRENT_FUNC);
+#else
   Thread* thread = Thread::Current();
   API_TIMELINE_DURATION;
   DARTSCOPE(thread);
@@ -6302,6 +6336,7 @@
     return Api::NewHandle(T, Error::Cast(error).raw());
   }
   return Api::Success();
+#endif  // defined(DART_PRECOMPILED_RUNTIME)
 }
 
 DART_EXPORT
@@ -6461,6 +6496,9 @@
 }
 
 DART_EXPORT Dart_Handle Dart_SortClasses() {
+#if defined(DART_PRECOMPILED_RUNTIME)
+  return Api::NewError("%s: Cannot compile on an AOT runtime.", CURRENT_FUNC);
+#else
   DARTSCOPE(Thread::Current());
   // We don't have mechanisms to change class-ids that are embedded in code and
   // ICData.
@@ -6470,6 +6508,7 @@
   Isolate::Current()->heap()->CollectAllGarbage();
   ClassFinalizer::SortClasses();
   return Api::Success();
+#endif  // defined(DART_PRECOMPILED_RUNTIME)
 }
 
 DART_EXPORT Dart_Handle
diff --git a/runtime/vm/dart_api_impl_test.cc b/runtime/vm/dart_api_impl_test.cc
index bb58425..5fcd3ba 100644
--- a/runtime/vm/dart_api_impl_test.cc
+++ b/runtime/vm/dart_api_impl_test.cc
@@ -1240,7 +1240,7 @@
     Thread* thread = Thread::Current();
     PageSpace* old_space = thread->isolate()->heap()->old_space();
     MonitorLocker ml(old_space->tasks_lock());
-    while (old_space->tasks() > 0) {
+    while (old_space->sweeper_tasks() > 0) {
       ml.WaitWithSafepointCheck(thread);
     }
   }
@@ -9086,8 +9086,6 @@
 static Dart_NativeFunction NotifyIdle_native_lookup(Dart_Handle name,
                                                     int argument_count,
                                                     bool* auto_setup_scope) {
-  ASSERT(auto_setup_scope != NULL);
-  *auto_setup_scope = true;
   return reinterpret_cast<Dart_NativeFunction>(&NotifyIdleNative);
 }
 
@@ -9107,13 +9105,39 @@
       "}\n";
   Dart_Handle lib =
       TestCase::LoadTestScript(kScriptChars, &NotifyIdle_native_lookup);
-  Dart_Handle result;
+  Dart_Handle result = Dart_Invoke(lib, NewString("main"), 0, NULL);
+  EXPECT_VALID(result);
+}
 
-  // Use Dart_PropagateError to propagate the error.
-  use_throw_exception = false;
-  use_set_return = false;
+void NotifyLowMemoryNative(Dart_NativeArguments args) {
+  Dart_NotifyLowMemory();
+}
 
-  result = Dart_Invoke(lib, NewString("main"), 0, NULL);
+static Dart_NativeFunction NotifyLowMemory_native_lookup(
+    Dart_Handle name,
+    int argument_count,
+    bool* auto_setup_scope) {
+  return reinterpret_cast<Dart_NativeFunction>(&NotifyLowMemoryNative);
+}
+
+TEST_CASE(DartAPI_NotifyLowMemory) {
+  const char* kScriptChars =
+      "import 'dart:isolate';\n"
+      "void notifyLowMemory() native 'Test_nativeFunc';\n"
+      "void main() {\n"
+      "  var v;\n"
+      "  for (var i = 0; i < 100; i++) {\n"
+      "    var t = new List();\n"
+      "    for (var j = 0; j < 10000; j++) {\n"
+      "      t.add(new List(100));\n"
+      "    }\n"
+      "    v = t;\n"
+      "    notifyLowMemory();\n"
+      "  }\n"
+      "}\n";
+  Dart_Handle lib =
+      TestCase::LoadTestScript(kScriptChars, &NotifyLowMemory_native_lookup);
+  Dart_Handle result = Dart_Invoke(lib, NewString("main"), 0, NULL);
   EXPECT_VALID(result);
 }
 
diff --git a/runtime/vm/dart_entry.cc b/runtime/vm/dart_entry.cc
index 5e548a6..5fab765 100644
--- a/runtime/vm/dart_entry.cc
+++ b/runtime/vm/dart_entry.cc
@@ -189,9 +189,7 @@
       function ^= cls.LookupDynamicFunction(getter_name);
       if (!function.IsNull()) {
         Isolate* isolate = thread->isolate();
-        uword c_stack_pos = Thread::GetCurrentStackPointer();
-        uword c_stack_limit = OSThread::Current()->stack_limit_with_headroom();
-        if (c_stack_pos < c_stack_limit) {
+        if (!OSThread::Current()->HasStackHeadroom()) {
           const Instance& exception =
               Instance::Handle(zone, isolate->object_store()->stack_overflow());
           return UnhandledException::New(exception, StackTrace::Handle(zone));
diff --git a/runtime/vm/dart_entry.h b/runtime/vm/dart_entry.h
index 1bea3cf..79ba34b 100644
--- a/runtime/vm/dart_entry.h
+++ b/runtime/vm/dart_entry.h
@@ -229,7 +229,7 @@
       const Function& function,
       const Array& arguments,
       const Array& arguments_descriptor,
-      uword current_sp = Thread::GetCurrentStackPointer());
+      uword current_sp = OSThread::GetCurrentStackPointer());
 
   // Invokes the closure object given as the first argument.
   // On success, returns a RawInstance.  On failure, a RawError.
diff --git a/runtime/vm/exceptions.cc b/runtime/vm/exceptions.cc
index 12197d8..01ff1c8 100644
--- a/runtime/vm/exceptions.cc
+++ b/runtime/vm/exceptions.cc
@@ -478,7 +478,7 @@
       StubCode::JumpToFrame_entry()->EntryPoint());
 
   // Unpoison the stack before we tear it down in the generated stub code.
-  uword current_sp = Thread::GetCurrentStackPointer() - 1024;
+  uword current_sp = OSThread::GetCurrentStackPointer() - 1024;
   ASAN_UNPOISON(reinterpret_cast<void*>(current_sp),
                 stack_pointer - current_sp);
 
diff --git a/runtime/vm/gc_sweeper.cc b/runtime/vm/gc_sweeper.cc
index a064f2d..57e5463 100644
--- a/runtime/vm/gc_sweeper.cc
+++ b/runtime/vm/gc_sweeper.cc
@@ -115,7 +115,7 @@
     ASSERT(last_ != NULL);
     ASSERT(freelist_ != NULL);
     MonitorLocker ml(old_space_->tasks_lock());
-    old_space_->set_tasks(old_space_->tasks() + 1);
+    old_space_->set_sweeper_tasks(old_space_->sweeper_tasks() + 1);
   }
 
   virtual void Run() {
@@ -155,7 +155,7 @@
     // This sweeper task is done. Notify the original isolate.
     {
       MonitorLocker ml(old_space_->tasks_lock());
-      old_space_->set_tasks(old_space_->tasks() - 1);
+      old_space_->set_sweeper_tasks(old_space_->sweeper_tasks() - 1);
       ml.NotifyAll();
     }
   }
diff --git a/runtime/vm/globals.h b/runtime/vm/globals.h
index e7471bc..3a5441d 100644
--- a/runtime/vm/globals.h
+++ b/runtime/vm/globals.h
@@ -114,7 +114,7 @@
 #elif defined(HOST_ARCH_X64)
 // We don't have the asm equivalent to get at the frame pointer on
 // windows x64, return the stack pointer instead.
-#define COPY_FP_REGISTER(fp) fp = Thread::GetCurrentStackPointer();
+#define COPY_FP_REGISTER(fp) fp = OSThread::GetCurrentStackPointer();
 #else
 #error Unknown host architecture.
 #endif
diff --git a/runtime/vm/heap.cc b/runtime/vm/heap.cc
index 2cb66ff..cb10990f 100644
--- a/runtime/vm/heap.cc
+++ b/runtime/vm/heap.cc
@@ -21,6 +21,7 @@
 #include "vm/service_isolate.h"
 #include "vm/stack_frame.h"
 #include "vm/tags.h"
+#include "vm/thread_pool.h"
 #include "vm/timeline.h"
 #include "vm/verifier.h"
 #include "vm/virtual_memory.h"
@@ -204,14 +205,14 @@
     // We currently don't support nesting of HeapIterationScopes.
     ASSERT(old_space_->iterating_thread_ != thread);
 #endif
-    while (old_space_->tasks() > 0) {
+    while (old_space_->sweeper_tasks() > 0) {
       ml.WaitWithSafepointCheck(thread);
     }
 #if defined(DEBUG)
     ASSERT(old_space_->iterating_thread_ == NULL);
     old_space_->iterating_thread_ = thread;
 #endif
-    old_space_->set_tasks(1);
+    old_space_->set_sweeper_tasks(1);
   }
 
   isolate()->safepoint_handler()->SafepointThreads(thread);
@@ -233,8 +234,8 @@
   ASSERT(old_space_->iterating_thread_ == thread());
   old_space_->iterating_thread_ = NULL;
 #endif
-  ASSERT(old_space_->tasks() == 1);
-  old_space_->set_tasks(0);
+  ASSERT(old_space_->sweeper_tasks() == 1);
+  old_space_->set_sweeper_tasks(0);
   ml.NotifyAll();
 }
 
@@ -349,17 +350,6 @@
   ml.NotifyAll();
 }
 
-#ifndef PRODUCT
-void Heap::UpdateClassHeapStatsBeforeGC(Heap::Space space) {
-  ClassTable* class_table = isolate()->class_table();
-  if (space == kNew) {
-    class_table->ResetCountersNew();
-  } else {
-    class_table->ResetCountersOld();
-  }
-}
-#endif
-
 void Heap::NotifyIdle(int64_t deadline) {
   Thread* thread = Thread::Current();
   if (new_space_.ShouldPerformIdleScavenge(deadline)) {
@@ -375,15 +365,58 @@
   }
 }
 
+class LowMemoryTask : public ThreadPool::Task {
+ public:
+  explicit LowMemoryTask(Isolate* isolate) : task_isolate_(isolate) {}
+
+  virtual void Run() {
+    bool result =
+        Thread::EnterIsolateAsHelper(task_isolate_, Thread::kLowMemoryTask);
+    ASSERT(result);
+    Heap* heap = task_isolate_->heap();
+    {
+      TIMELINE_FUNCTION_GC_DURATION(Thread::Current(), "LowMemoryTask");
+      heap->CollectAllGarbage(Heap::kLowMemory);
+    }
+    // Exit isolate cleanly *before* notifying it, to avoid shutdown race.
+    Thread::ExitIsolateAsHelper();
+    // This compactor task is done. Notify the original isolate.
+    {
+      MonitorLocker ml(heap->old_space()->tasks_lock());
+      heap->old_space()->set_low_memory_tasks(
+          heap->old_space()->low_memory_tasks() - 1);
+      ml.NotifyAll();
+    }
+  }
+
+ private:
+  Isolate* task_isolate_;
+};
+
+void Heap::NotifyLowMemory() {
+  {
+    MonitorLocker ml(old_space_.tasks_lock());
+    if (old_space_.low_memory_tasks() > 0) {
+      return;
+    }
+    old_space_.set_low_memory_tasks(old_space_.low_memory_tasks() + 1);
+  }
+
+  bool success = Dart::thread_pool()->Run(new LowMemoryTask(isolate()));
+  if (!success) {
+    MonitorLocker ml(old_space_.tasks_lock());
+    old_space_.set_low_memory_tasks(old_space_.low_memory_tasks() - 1);
+    ml.NotifyAll();
+  }
+}
+
 void Heap::EvacuateNewSpace(Thread* thread, GCReason reason) {
-  ASSERT(reason == kFull);
+  ASSERT((reason == kFull) || (reason == kLowMemory));
   if (BeginNewSpaceGC(thread)) {
-    RecordBeforeGC(kNew, kFull);
+    RecordBeforeGC(kNew, reason);
     VMTagScope tagScope(thread, VMTag::kGCNewSpaceTagId);
     TIMELINE_FUNCTION_GC_DURATION(thread, "EvacuateNewGeneration");
-    NOT_IN_PRODUCT(UpdateClassHeapStatsBeforeGC(kNew));
     new_space_.Evacuate();
-    NOT_IN_PRODUCT(isolate()->class_table()->UpdatePromoted());
     RecordAfterGC(kNew);
     PrintStats();
     NOT_IN_PRODUCT(PrintStatsToTimeline(&tds, reason));
@@ -393,15 +426,13 @@
 
 void Heap::CollectNewSpaceGarbage(Thread* thread,
                                   GCReason reason) {
-  ASSERT((reason == kNewSpace) || (reason == kFull) || (reason == kIdle));
+  ASSERT((reason != kOldSpace) && (reason != kPromotion));
   if (BeginNewSpaceGC(thread)) {
     RecordBeforeGC(kNew, reason);
     {
       VMTagScope tagScope(thread, VMTag::kGCNewSpaceTagId);
       TIMELINE_FUNCTION_GC_DURATION_BASIC(thread, "CollectNewGeneration");
-      NOT_IN_PRODUCT(UpdateClassHeapStatsBeforeGC(kNew));
       new_space_.Scavenge();
-      NOT_IN_PRODUCT(isolate()->class_table()->UpdatePromoted());
       RecordAfterGC(kNew);
       PrintStats();
       NOT_IN_PRODUCT(PrintStatsToTimeline(&tds, reason));
@@ -420,8 +451,8 @@
     RecordBeforeGC(kOld, reason);
     VMTagScope tagScope(thread, VMTag::kGCOldSpaceTagId);
     TIMELINE_FUNCTION_GC_DURATION_BASIC(thread, "CollectOldGeneration");
-    NOT_IN_PRODUCT(UpdateClassHeapStatsBeforeGC(kOld));
-    bool compact = (reason == kCompaction) || FLAG_use_compactor;
+    bool compact =
+        (reason == kCompaction) || (reason == kLowMemory) || FLAG_use_compactor;
     old_space_.CollectGarbage(compact);
     RecordAfterGC(kOld);
     PrintStats();
@@ -461,18 +492,18 @@
   }
 }
 
-void Heap::CollectAllGarbage() {
+void Heap::CollectAllGarbage(GCReason reason) {
   Thread* thread = Thread::Current();
 
   // New space is evacuated so this GC will collect all dead objects
   // kept alive by a cross-generational pointer.
-  EvacuateNewSpace(thread, kFull);
-  CollectOldSpaceGarbage(thread, kFull);
+  EvacuateNewSpace(thread, reason);
+  CollectOldSpaceGarbage(thread, reason);
 }
 
 void Heap::WaitForSweeperTasks(Thread* thread) {
   MonitorLocker ml(old_space_.tasks_lock());
-  while (old_space_.tasks() > 0) {
+  while (old_space_.sweeper_tasks() > 0) {
     ml.WaitWithSafepointCheck(thread);
   }
 }
@@ -643,6 +674,8 @@
       return "full";
     case kIdle:
       return "idle";
+    case kLowMemory:
+      return "low memory";
     case kGCAtAlloc:
       return "debugging";
     case kGCTestCase:
diff --git a/runtime/vm/heap.h b/runtime/vm/heap.h
index b8bcf3a..79e81b2 100644
--- a/runtime/vm/heap.h
+++ b/runtime/vm/heap.h
@@ -48,6 +48,7 @@
     kCompaction,
     kFull,
     kIdle,
+    kLowMemory,
     kGCAtAlloc,
     kGCTestCase,
   };
@@ -106,10 +107,11 @@
   RawObject* FindObject(FindObjectVisitor* visitor) const;
 
   void NotifyIdle(int64_t deadline);
+  void NotifyLowMemory();
 
   void CollectGarbage(Space space);
   void CollectGarbage(Space space, GCReason reason);
-  void CollectAllGarbage();
+  void CollectAllGarbage(GCReason reason = kFull);
   bool NeedsGarbageCollection() const {
     return old_space_.NeedsGarbageCollection();
   }
@@ -321,7 +323,6 @@
   void RecordBeforeGC(Space space, GCReason reason);
   void RecordAfterGC(Space space);
   void PrintStats();
-  void UpdateClassHeapStatsBeforeGC(Heap::Space space);
   void PrintStatsToTimeline(TimelineEventScope* event, GCReason reason);
 
   // Updates gc in progress flags.
diff --git a/runtime/vm/instructions_arm.cc b/runtime/vm/instructions_arm.cc
index 3002c16..a605542 100644
--- a/runtime/vm/instructions_arm.cc
+++ b/runtime/vm/instructions_arm.cc
@@ -199,7 +199,7 @@
   if (IsLoadWithOffset(instr, PP, &offset, &dst)) {
     intptr_t index = ObjectPool::IndexFromOffset(offset);
     const ObjectPool& pool = ObjectPool::Handle(code.object_pool());
-    if (pool.InfoAt(index) == ObjectPool::kTaggedObject) {
+    if (pool.TypeAt(index) == ObjectPool::kTaggedObject) {
       *obj = pool.ObjectAt(index);
       return true;
     }
diff --git a/runtime/vm/instructions_arm64.cc b/runtime/vm/instructions_arm64.cc
index f35ae9b..8ac564f 100644
--- a/runtime/vm/instructions_arm64.cc
+++ b/runtime/vm/instructions_arm64.cc
@@ -258,7 +258,7 @@
       ASSERT(Utils::IsAligned(offset, 8));
       intptr_t index = ObjectPool::IndexFromOffset(offset - kHeapObjectTag);
       const ObjectPool& pool = ObjectPool::Handle(code.object_pool());
-      if (pool.InfoAt(index) == ObjectPool::kTaggedObject) {
+      if (pool.TypeAt(index) == ObjectPool::kTaggedObject) {
         *obj = pool.ObjectAt(index);
         return true;
       }
diff --git a/runtime/vm/instructions_dbc.cc b/runtime/vm/instructions_dbc.cc
index b44cfec..40877c7 100644
--- a/runtime/vm/instructions_dbc.cc
+++ b/runtime/vm/instructions_dbc.cc
@@ -43,7 +43,7 @@
   Instr instr = Bytecode::At(pc);
   if (HasLoadFromPool(instr)) {
     uint16_t index = Bytecode::DecodeD(instr);
-    if (object_pool.InfoAt(index) == ObjectPool::kTaggedObject) {
+    if (object_pool.TypeAt(index) == ObjectPool::kTaggedObject) {
       *obj = object_pool.ObjectAt(index);
       return true;
     }
diff --git a/runtime/vm/instructions_x64.cc b/runtime/vm/instructions_x64.cc
index d998642..da8a4cb 100644
--- a/runtime/vm/instructions_x64.cc
+++ b/runtime/vm/instructions_x64.cc
@@ -25,7 +25,7 @@
       if ((bytes[2] & 0xc7) == (0x80 | (PP & 7))) {  // [r15+disp32]
         intptr_t index = IndexFromPPLoad(pc + 3);
         const ObjectPool& pool = ObjectPool::Handle(code.object_pool());
-        if (pool.InfoAt(index) == ObjectPool::kTaggedObject) {
+        if (pool.TypeAt(index) == ObjectPool::kTaggedObject) {
           *obj = pool.ObjectAt(index);
           return true;
         }
@@ -33,7 +33,7 @@
       if ((bytes[2] & 0xc7) == (0x40 | (PP & 7))) {  // [r15+disp8]
         intptr_t index = IndexFromPPLoadDisp8(pc + 3);
         const ObjectPool& pool = ObjectPool::Handle(code.object_pool());
-        if (pool.InfoAt(index) == ObjectPool::kTaggedObject) {
+        if (pool.TypeAt(index) == ObjectPool::kTaggedObject) {
           *obj = pool.ObjectAt(index);
           return true;
         }
diff --git a/runtime/vm/isolate.cc b/runtime/vm/isolate.cc
index 2431072..0c98b61 100644
--- a/runtime/vm/isolate.cc
+++ b/runtime/vm/isolate.cc
@@ -84,9 +84,6 @@
   if (value) {
     FLAG_background_compilation = false;
     FLAG_collect_code = false;
-    // Parallel marking doesn't introduce non-determinism in the object
-    // iteration order.
-    FLAG_concurrent_sweep = false;
     FLAG_random_seed = 0x44617274;  // "Dart"
 #if !defined(PRODUCT) && !defined(DART_PRECOMPILED_RUNTIME)
     FLAG_load_deferred_eagerly = true;
@@ -1204,7 +1201,8 @@
   return !ServiceIsolate::IsServiceIsolateDescendant(this) && is_runnable() &&
          !IsReloading() &&
          (AtomicOperations::LoadRelaxed(&no_reload_scope_depth_) == 0) &&
-         IsolateCreationEnabled();
+         IsolateCreationEnabled() &&
+         OSThread::Current()->HasStackHeadroom(64 * KB);
 }
 
 bool Isolate::ReloadSources(JSONStream* js,
@@ -1700,6 +1698,25 @@
   DISALLOW_COPY_AND_ASSIGN(FinalizeWeakPersistentHandlesVisitor);
 };
 
+// static
+void Isolate::NotifyLowMemory() {
+  MonitorLocker ml(isolates_list_monitor_);
+  if (!creation_enabled_) {
+    return;  // VM is shutting down
+  }
+  for (Isolate* isolate = isolates_list_head_; isolate != NULL;
+       isolate = isolate->next_) {
+    if (isolate == Dart::vm_isolate()) {
+      // Nothing to compact / isolate structure not completely initialized.
+    } else if (isolate == Isolate::Current()) {
+      isolate->heap()->NotifyLowMemory();
+    } else {
+      MutexLocker ml(isolate->mutex_);
+      isolate->heap()->NotifyLowMemory();
+    }
+  }
+}
+
 void Isolate::LowLevelShutdown() {
   // Ensure we have a zone and handle scope so that we can call VM functions,
   // but we no longer allocate new heap objects.
@@ -1829,8 +1846,9 @@
     // TODO(koda): Support faster sweeper shutdown (e.g., after current page).
     PageSpace* old_space = heap_->old_space();
     MonitorLocker ml(old_space->tasks_lock());
-    while (old_space->tasks() > 0) {
-      ml.Wait();
+    while (old_space->sweeper_tasks() > 0 ||
+           old_space->low_memory_tasks() > 0) {
+      ml.WaitWithSafepointCheck(thread);
     }
   }
 
@@ -1853,7 +1871,8 @@
   if (heap_ != NULL) {
     PageSpace* old_space = heap_->old_space();
     MonitorLocker ml(old_space->tasks_lock());
-    ASSERT(old_space->tasks() == 0);
+    ASSERT(old_space->sweeper_tasks() == 0);
+    ASSERT(old_space->low_memory_tasks() == 0);
   }
 #endif
 
diff --git a/runtime/vm/isolate.h b/runtime/vm/isolate.h
index f91655f..e87a521 100644
--- a/runtime/vm/isolate.h
+++ b/runtime/vm/isolate.h
@@ -748,6 +748,8 @@
 
   void MaybeIncreaseReloadEveryNStackOverflowChecks();
 
+  static void NotifyLowMemory();
+
  private:
   friend class Dart;                  // Init, InitOnce, Shutdown.
   friend class IsolateKillerVisitor;  // Kill().
diff --git a/runtime/vm/longjump.cc b/runtime/vm/longjump.cc
index 8ea1415..e0a3ca7 100644
--- a/runtime/vm/longjump.cc
+++ b/runtime/vm/longjump.cc
@@ -25,7 +25,7 @@
   // We do not want to jump past Dart frames.  Note that this code
   // assumes the stack grows from high to low.
   Thread* thread = Thread::Current();
-  uword jumpbuf_addr = Thread::GetCurrentStackPointer();
+  uword jumpbuf_addr = OSThread::GetCurrentStackPointer();
 #if defined(USING_SIMULATOR)
   Simulator* sim = Simulator::Current();
   // When using simulator, only mutator thread should refer to Simulator
diff --git a/runtime/vm/native_api_impl.cc b/runtime/vm/native_api_impl.cc
index 53178ce..49db21a 100644
--- a/runtime/vm/native_api_impl.cc
+++ b/runtime/vm/native_api_impl.cc
@@ -106,46 +106,40 @@
 
 // --- Verification tools ---
 
-static void CompileAll(Thread* thread, Dart_Handle* result) {
-  ASSERT(thread != NULL);
-  const Error& error = Error::Handle(thread->zone(), Library::CompileAll());
-  if (error.IsNull()) {
-    *result = Api::Success();
-  } else {
-    *result = Api::NewHandle(thread, error.raw());
-  }
-}
-
 DART_EXPORT Dart_Handle Dart_CompileAll() {
+#if defined(DART_PRECOMPILED_RUNTIME)
+  return Api::NewError("%s: Cannot compile on an AOT runtime.", CURRENT_FUNC);
+#else
   DARTSCOPE(Thread::Current());
   Dart_Handle result = Api::CheckAndFinalizePendingClasses(T);
   if (::Dart_IsError(result)) {
     return result;
   }
   CHECK_CALLBACK_STATE(T);
-  CompileAll(T, &result);
-  return result;
-}
-
-static void ParseAll(Thread* thread, Dart_Handle* result) {
-  ASSERT(thread != NULL);
-  const Error& error = Error::Handle(thread->zone(), Library::ParseAll(thread));
-  if (error.IsNull()) {
-    *result = Api::Success();
-  } else {
-    *result = Api::NewHandle(thread, error.raw());
+  const Error& error = Error::Handle(T->zone(), Library::CompileAll());
+  if (!error.IsNull()) {
+    return Api::NewHandle(T, error.raw());
   }
+  return Api::Success();
+#endif  // defined(DART_PRECOMPILED_RUNTIME)
 }
 
 DART_EXPORT Dart_Handle Dart_ParseAll() {
+#if defined(DART_PRECOMPILED_RUNTIME)
+  return Api::NewError("%s: Cannot compile on an AOT runtime.", CURRENT_FUNC);
+#else
   DARTSCOPE(Thread::Current());
   Dart_Handle result = Api::CheckAndFinalizePendingClasses(T);
   if (::Dart_IsError(result)) {
     return result;
   }
   CHECK_CALLBACK_STATE(T);
-  ParseAll(T, &result);
-  return result;
+  const Error& error = Error::Handle(T->zone(), Library::ParseAll(T));
+  if (!error.IsNull()) {
+    return Api::NewHandle(T, error.raw());
+  }
+  return Api::Success();
+#endif  // defined(DART_PRECOMPILED_RUNTIME)
 }
 
 }  // namespace dart
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index 3493bc2..863fd5c 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -3798,6 +3798,16 @@
   return raw() == Type::Handle(Type::DartFunctionType()).type_class();
 }
 
+bool Class::IsFutureClass() const {
+  return (library() == Library::AsyncLibrary()) &&
+         (Name() == Symbols::Future().raw());
+}
+
+bool Class::IsFutureOrClass() const {
+  return (library() == Library::AsyncLibrary()) &&
+         (Name() == Symbols::FutureOr().raw());
+}
+
 // If test_kind == kIsSubtypeOf, checks if type S is a subtype of type T.
 // If test_kind == kIsMoreSpecificThan, checks if S is more specific than T.
 // Type S is specified by this class parameterized with 'type_arguments', and
@@ -3812,12 +3822,12 @@
                                  Error* bound_error,
                                  TrailPtr bound_trail,
                                  Heap::Space space) {
-  // Use the thsi object as if it was the receiver of this method, but instead
-  // of recursing reset it to the super class and loop.
+  // Use the 'this_class' object as if it was the receiver of this method, but
+  // instead of recursing, reset it to the super class and loop.
   Thread* thread = Thread::Current();
   Zone* zone = thread->zone();
   Isolate* isolate = thread->isolate();
-  Class& thsi = Class::Handle(zone, cls.raw());
+  Class& this_class = Class::Handle(zone, cls.raw());
   while (true) {
     // Check for DynamicType.
     // Each occurrence of DynamicType in type T is interpreted as the dynamic
@@ -3827,14 +3837,25 @@
     }
     // Check for NullType, which, as of Dart 1.5, is a subtype of (and is more
     // specific than) any type. Note that the null instance is not handled here.
-    if (thsi.IsNullClass()) {
+    if (this_class.IsNullClass()) {
+      return true;
+    }
+    // Class FutureOr is mapped to dynamic in non-strong mode.
+    // Detect snapshots compiled in strong mode and run in non-strong mode.
+    ASSERT(isolate->strong() || !other.IsFutureOrClass());
+    // In strong mode, check if 'other' is 'FutureOr'.
+    // If so, apply additional subtyping rules.
+    if (isolate->strong() &&
+        this_class.FutureOrTypeTest(zone, type_arguments, other,
+                                    other_type_arguments, bound_error,
+                                    bound_trail, space)) {
       return true;
     }
     // In the case of a subtype test, each occurrence of DynamicType in type S
     // is interpreted as the bottom type, a subtype of all types, but not in
     // strong mode.
     // However, DynamicType is not more specific than any type.
-    if (thsi.IsDynamicClass()) {
+    if (this_class.IsDynamicClass()) {
       return !isolate->strong() && (test_kind == Class::kIsSubtypeOf);
     }
     // Check for ObjectType. Any type that is not NullType or DynamicType
@@ -3844,16 +3865,16 @@
     }
     // If other is neither Object, dynamic or void, then ObjectType/VoidType
     // can't be a subtype of other.
-    if (thsi.IsObjectClass() || thsi.IsVoidClass()) {
+    if (this_class.IsObjectClass() || this_class.IsVoidClass()) {
       return false;
     }
     // Check for reflexivity.
-    if (thsi.raw() == other.raw()) {
-      const intptr_t num_type_params = thsi.NumTypeParameters();
+    if (this_class.raw() == other.raw()) {
+      const intptr_t num_type_params = this_class.NumTypeParameters();
       if (num_type_params == 0) {
         return true;
       }
-      const intptr_t num_type_args = thsi.NumTypeArguments();
+      const intptr_t num_type_args = this_class.NumTypeArguments();
       const intptr_t from_index = num_type_args - num_type_params;
       // Since we do not truncate the type argument vector of a subclass (see
       // below), we only check a subvector of the proper length.
@@ -3876,14 +3897,14 @@
     if (other.IsDartFunctionClass()) {
       // Check if type S has a call() method.
       const Function& call_function =
-          Function::Handle(zone, thsi.LookupCallFunctionForTypeTest());
+          Function::Handle(zone, this_class.LookupCallFunctionForTypeTest());
       if (!call_function.IsNull()) {
         return true;
       }
     }
     // Check for 'direct super type' specified in the implements clause
     // and check for transitivity at the same time.
-    Array& interfaces = Array::Handle(zone, thsi.interfaces());
+    Array& interfaces = Array::Handle(zone, this_class.interfaces());
     AbstractType& interface = AbstractType::Handle(zone);
     Class& interface_class = Class::Handle(zone);
     TypeArguments& interface_args = TypeArguments::Handle(zone);
@@ -3899,7 +3920,7 @@
           // runtime if this type test returns false at compile time.
           continue;
         }
-        ClassFinalizer::FinalizeType(thsi, interface);
+        ClassFinalizer::FinalizeType(this_class, interface);
         interfaces.SetAt(i, interface);
       }
       if (interface.IsMalbounded()) {
@@ -3939,8 +3960,8 @@
       }
     }
     // "Recurse" up the class hierarchy until we have reached the top.
-    thsi = thsi.SuperClass();
-    if (thsi.IsNull()) {
+    this_class = this_class.SuperClass();
+    if (this_class.IsNull()) {
       return false;
     }
   }
@@ -3966,6 +3987,41 @@
                               space);
 }
 
+bool Class::FutureOrTypeTest(Zone* zone,
+                             const TypeArguments& type_arguments,
+                             const Class& other,
+                             const TypeArguments& other_type_arguments,
+                             Error* bound_error,
+                             TrailPtr bound_trail,
+                             Heap::Space space) const {
+  // In strong mode, there is no difference between 'is subtype of' and
+  // 'is more specific than'.
+  ASSERT(Isolate::Current()->strong());
+  if (other.IsFutureOrClass()) {
+    if (other_type_arguments.IsNull()) {
+      return true;
+    }
+    const AbstractType& other_type_arg =
+        AbstractType::Handle(zone, other_type_arguments.TypeAt(0));
+    if (!type_arguments.IsNull() && IsFutureClass()) {
+      const AbstractType& type_arg =
+          AbstractType::Handle(zone, type_arguments.TypeAt(0));
+      if (type_arg.TypeTest(Class::kIsSubtypeOf, other_type_arg, bound_error,
+                            bound_trail, space)) {
+        return true;
+      }
+    }
+    if (other_type_arg.IsType() &&
+        TypeTest(Class::kIsSubtypeOf, type_arguments,
+                 Class::Handle(zone, other_type_arg.type_class()),
+                 TypeArguments::Handle(other_type_arg.arguments()), bound_error,
+                 bound_trail, space)) {
+      return true;
+    }
+  }
+  return false;
+}
+
 bool Class::IsTopLevel() const {
   return Name() == Symbols::TopLevel().raw();
 }
@@ -6626,6 +6682,13 @@
   if (!other_res_type.IsDynamicType() && !other_res_type.IsVoidType()) {
     const AbstractType& res_type = AbstractType::Handle(zone, result_type());
     if (res_type.IsVoidType()) {
+      // In strong mode, check if 'other' is 'FutureOr'.
+      // If so, apply additional subtyping rules.
+      if (isolate->strong() &&
+          res_type.FutureOrTypeTest(zone, other_res_type, bound_error,
+                                    bound_trail, space)) {
+        return true;
+      }
       return false;
     }
     if (test_kind == kIsSubtypeOf) {
@@ -12328,25 +12391,14 @@
     NoSafepointScope no_safepoint;
     result ^= raw;
     result.SetLength(len);
+    for (intptr_t i = 0; i < len; i++) {
+      result.SetTypeAt(i, ObjectPool::kImmediate);
+    }
   }
 
-  // TODO(fschneider): Compress info array to just use just enough bits for
-  // the entry type enum.
-  const TypedData& info_array = TypedData::Handle(
-      TypedData::New(kTypedDataInt8ArrayCid, len, Heap::kOld));
-  result.set_info_array(info_array);
   return result.raw();
 }
 
-void ObjectPool::set_info_array(const TypedData& info_array) const {
-  StorePointer(&raw_ptr()->info_array_, info_array.raw());
-}
-
-ObjectPool::EntryType ObjectPool::InfoAt(intptr_t index) const {
-  ObjectPoolInfo pool_info(*this);
-  return pool_info.InfoAt(index);
-}
-
 const char* ObjectPool::ToCString() const {
   Zone* zone = Thread::Current()->zone();
   return zone->PrintToString("ObjectPool len:%" Pd, Length());
@@ -12357,11 +12409,11 @@
   for (intptr_t i = 0; i < Length(); i++) {
     intptr_t offset = OffsetFromIndex(i);
     THR_Print("  %" Pd " PP+0x%" Px ": ", i, offset);
-    if (InfoAt(i) == kTaggedObject) {
+    if (TypeAt(i) == kTaggedObject) {
       RawObject* obj = ObjectAt(i);
       THR_Print("0x%" Px " %s (obj)\n", reinterpret_cast<uword>(obj),
                 Object::Handle(obj).ToCString());
-    } else if (InfoAt(i) == kNativeEntry) {
+    } else if (TypeAt(i) == kNativeEntry) {
       THR_Print("0x%" Px " (native entry)\n", RawValueAt(i));
     } else {
       THR_Print("0x%" Px " (raw)\n", RawValueAt(i));
@@ -15673,7 +15725,9 @@
   if (other.IsVoidType()) {
     return true;
   }
-  Zone* zone = Thread::Current()->zone();
+  Thread* thread = Thread::Current();
+  Zone* zone = thread->zone();
+  Isolate* isolate = thread->isolate();
   const Class& cls = Class::Handle(zone, clazz());
   if (cls.IsClosureClass()) {
     if (other.IsObjectType() || other.IsDartFunctionType() ||
@@ -15700,6 +15754,10 @@
         return true;
       }
     }
+    if (isolate->strong() &&
+        IsFutureOrInstanceOf(zone, instantiated_other, bound_error)) {
+      return true;
+    }
     if (!instantiated_other.IsFunctionType()) {
       return false;
     }
@@ -15789,12 +15847,50 @@
     ASSERT(cls.IsNullClass());
     // As of Dart 1.5, the null instance and Null type are handled differently.
     // We already checked other for dynamic and void.
+    if (isolate->strong() &&
+        IsFutureOrInstanceOf(zone, instantiated_other, bound_error)) {
+      return true;
+    }
     return other_class.IsNullClass() || other_class.IsObjectClass();
   }
   return cls.IsSubtypeOf(type_arguments, other_class, other_type_arguments,
                          bound_error, NULL, Heap::kOld);
 }
 
+bool Instance::IsFutureOrInstanceOf(Zone* zone,
+                                    const AbstractType& other,
+                                    Error* bound_error) const {
+  ASSERT(Isolate::Current()->strong());
+  if (other.IsType() &&
+      Class::Handle(zone, other.type_class()).IsFutureOrClass()) {
+    if (other.arguments() == TypeArguments::null()) {
+      return true;
+    }
+    const TypeArguments& other_type_arguments =
+        TypeArguments::Handle(zone, other.arguments());
+    const AbstractType& other_type_arg =
+        AbstractType::Handle(zone, other_type_arguments.TypeAt(0));
+    if (Class::Handle(zone, clazz()).IsFutureClass()) {
+      const TypeArguments& type_arguments =
+          TypeArguments::Handle(zone, GetTypeArguments());
+      if (!type_arguments.IsNull()) {
+        const AbstractType& type_arg =
+            AbstractType::Handle(zone, type_arguments.TypeAt(0));
+        if (type_arg.IsSubtypeOf(other_type_arg, bound_error, NULL,
+                                 Heap::kOld)) {
+          return true;
+        }
+      }
+    }
+    // Retry the IsInstanceOf function after unwrapping type arg of FutureOr.
+    if (IsInstanceOf(other_type_arg, Object::null_type_arguments(),
+                     Object::null_type_arguments(), bound_error)) {
+      return true;
+    }
+  }
+  return false;
+}
+
 bool Instance::OperatorEquals(const Instance& other) const {
   // TODO(koda): Optimize for all builtin classes and all classes
   // that do not override operator==.
@@ -16455,7 +16551,9 @@
       IsNullType()) {
     return true;
   }
-  Zone* zone = Thread::Current()->zone();
+  Thread* thread = Thread::Current();
+  Zone* zone = thread->zone();
+  Isolate* isolate = thread->isolate();
   if (IsBoundedType() || other.IsBoundedType()) {
     if (Equals(other)) {
       return true;
@@ -16533,6 +16631,12 @@
     if (bound.IsMoreSpecificThan(other, bound_error, NULL, space)) {
       return true;
     }
+    // In strong mode, check if 'other' is 'FutureOr'.
+    // If so, apply additional subtyping rules.
+    if (isolate->strong() &&
+        FutureOrTypeTest(zone, other, bound_error, bound_trail, space)) {
+      return true;
+    }
     return false;  // TODO(regis): We should return "maybe after instantiation".
   }
   if (other.IsTypeParameter()) {
@@ -16574,6 +16678,12 @@
     }
   }
   if (IsFunctionType()) {
+    // In strong mode, check if 'other' is 'FutureOr'.
+    // If so, apply additional subtyping rules.
+    if (isolate->strong() &&
+        FutureOrTypeTest(zone, other, bound_error, bound_trail, space)) {
+      return true;
+    }
     return false;
   }
   return type_cls.TypeTest(test_kind, TypeArguments::Handle(zone, arguments()),
@@ -16582,6 +16692,36 @@
                            bound_error, bound_trail, space);
 }
 
+bool AbstractType::FutureOrTypeTest(Zone* zone,
+                                    const AbstractType& other,
+                                    Error* bound_error,
+                                    TrailPtr bound_trail,
+                                    Heap::Space space) const {
+  // In strong mode, there is no difference between 'is subtype of' and
+  // 'is more specific than'.
+  ASSERT(Isolate::Current()->strong());
+  if (other.IsType() &&
+      Class::Handle(zone, other.type_class()).IsFutureOrClass()) {
+    if (other.arguments() == TypeArguments::null()) {
+      return true;
+    }
+    // This function is only called with a receiver that is void type, a
+    // function type, or an uninstantiated type parameter, therefore, it cannot
+    // be of class Future and we can spare the check.
+    ASSERT(IsVoidType() || IsFunctionType() || IsTypeParameter());
+    const TypeArguments& other_type_arguments =
+        TypeArguments::Handle(zone, other.arguments());
+    const AbstractType& other_type_arg =
+        AbstractType::Handle(zone, other_type_arguments.TypeAt(0));
+    // Retry the TypeTest function after unwrapping type arg of FutureOr.
+    if (TypeTest(Class::kIsSubtypeOf, other_type_arg, bound_error, bound_trail,
+                 space)) {
+      return true;
+    }
+  }
+  return false;
+}
+
 intptr_t AbstractType::Hash() const {
   // AbstractType is an abstract class.
   UNREACHABLE();
diff --git a/runtime/vm/object.h b/runtime/vm/object.h
index 9b9958f..9da8f8c 100644
--- a/runtime/vm/object.h
+++ b/runtime/vm/object.h
@@ -1111,6 +1111,12 @@
   // Check if this class represents the 'Function' class.
   bool IsDartFunctionClass() const;
 
+  // Check if this class represents the 'Future' class.
+  bool IsFutureClass() const;
+
+  // Check if this class represents the 'FutureOr' class.
+  bool IsFutureOrClass() const;
+
   // Check if this class represents the 'Closure' class.
   bool IsClosureClass() const { return id() == kClosureCid; }
   static bool IsClosureClass(RawClass* cls) {
@@ -1540,6 +1546,17 @@
                 TrailPtr bound_trail,
                 Heap::Space space) const;
 
+  // Returns true if the type specified by this class and type_arguments is a
+  // subtype of FutureOr<T> specified by other class and other_type_arguments.
+  // Returns false if other class is not a FutureOr.
+  bool FutureOrTypeTest(Zone* zone,
+                        const TypeArguments& type_arguments,
+                        const Class& other,
+                        const TypeArguments& other_type_arguments,
+                        Error* bound_error,
+                        TrailPtr bound_trail,
+                        Heap::Space space) const;
+
   static bool TypeTestNonRecursive(const Class& cls,
                                    TypeTestKind test_kind,
                                    const TypeArguments& type_arguments,
@@ -1555,7 +1572,7 @@
   friend class Object;
   friend class Type;
   friend class Intrinsifier;
-  friend class ProgramVisitor;
+  friend class ClassFunctionVisitor;
 };
 
 // Unresolved class is used for storing unresolved names which will be resolved
@@ -4007,9 +4024,9 @@
   friend class Class;
 };
 
-// ObjectPool contains constants, immediates and addresses embedded in code
-// and deoptimization infos. Each entry has an type-info associated with it
-// which is stored in a typed data array (info_array).
+// ObjectPool contains constants, immediates and addresses referenced by
+// generated code and deoptimization infos. Each entry has an type associated
+// with it which is stored in-inline after all the entries.
 class ObjectPool : public Object {
  public:
   enum EntryType {
@@ -4034,36 +4051,38 @@
     StoreNonPointer(&raw_ptr()->length_, value);
   }
 
-  RawTypedData* info_array() const { return raw_ptr()->info_array_; }
-
-  void set_info_array(const TypedData& info_array) const;
-
   static intptr_t length_offset() { return OFFSET_OF(RawObjectPool, length_); }
   static intptr_t data_offset() {
     return OFFSET_OF_RETURNED_VALUE(RawObjectPool, data);
   }
   static intptr_t element_offset(intptr_t index) {
     return OFFSET_OF_RETURNED_VALUE(RawObjectPool, data) +
-           kBytesPerElement * index;
+           sizeof(RawObjectPool::Entry) * index;
   }
 
-  EntryType InfoAt(intptr_t index) const;
+  EntryType TypeAt(intptr_t index) const {
+    return static_cast<EntryType>(raw_ptr()->entry_types()[index]);
+  }
+  void SetTypeAt(intptr_t index, EntryType type) const {
+    StoreNonPointer(&raw_ptr()->entry_types()[index],
+                    static_cast<uint8_t>(type));
+  }
 
   RawObject* ObjectAt(intptr_t index) const {
-    ASSERT(InfoAt(index) == kTaggedObject);
+    ASSERT(TypeAt(index) == kTaggedObject);
     return EntryAddr(index)->raw_obj_;
   }
   void SetObjectAt(intptr_t index, const Object& obj) const {
-    ASSERT(InfoAt(index) == kTaggedObject);
+    ASSERT(TypeAt(index) == kTaggedObject);
     StorePointer(&EntryAddr(index)->raw_obj_, obj.raw());
   }
 
   uword RawValueAt(intptr_t index) const {
-    ASSERT(InfoAt(index) != kTaggedObject);
+    ASSERT(TypeAt(index) != kTaggedObject);
     return EntryAddr(index)->raw_value_;
   }
   void SetRawValueAt(intptr_t index, uword raw_value) const {
-    ASSERT(InfoAt(index) != kTaggedObject);
+    ASSERT(TypeAt(index) != kTaggedObject);
     StoreNonPointer(&EntryAddr(index)->raw_value_, raw_value);
   }
 
@@ -4073,12 +4092,13 @@
     return 0;
   }
 
-  static const intptr_t kBytesPerElement = sizeof(RawObjectPool::Entry);
+  static const intptr_t kBytesPerElement =
+      sizeof(RawObjectPool::Entry) + sizeof(uint8_t);
   static const intptr_t kMaxElements = kSmiMax / kBytesPerElement;
 
   static intptr_t InstanceSize(intptr_t len) {
     // Ensure that variable length data is not adding to the object length.
-    ASSERT(sizeof(RawObjectPool) == (sizeof(RawObject) + (2 * kWordSize)));
+    ASSERT(sizeof(RawObjectPool) == (sizeof(RawObject) + (1 * kWordSize)));
     ASSERT(0 <= len && len <= kMaxElements);
     return RoundedAllocationSize(sizeof(RawObjectPool) +
                                  (len * kBytesPerElement));
@@ -4090,7 +4110,8 @@
   // adjusting for the tag-bit.
   static intptr_t IndexFromOffset(intptr_t offset) {
     ASSERT(Utils::IsAligned(offset + kHeapObjectTag, kWordSize));
-    return (offset + kHeapObjectTag - data_offset()) / kBytesPerElement;
+    return (offset + kHeapObjectTag - data_offset()) /
+           sizeof(RawObjectPool::Entry);
   }
 
   static intptr_t OffsetFromIndex(intptr_t index) {
@@ -5441,6 +5462,13 @@
                     const TypeArguments& other_function_type_arguments,
                     Error* bound_error) const;
 
+  // Returns true if the type of this instance is a subtype of FutureOr<T>
+  // specified by instantiated type 'other'.
+  // Returns false if other type is not a FutureOr.
+  bool IsFutureOrInstanceOf(Zone* zone,
+                            const AbstractType& other,
+                            Error* bound_error) const;
+
   bool IsValidNativeIndex(int index) const {
     return ((index >= 0) && (index < clazz()->ptr()->num_native_fields_));
   }
@@ -6025,13 +6053,21 @@
       const TypeArguments& function_type_args);
 
  private:
-  // Check the subtype or 'more specific' relationship.
+  // Check the 'is subtype of' or 'is more specific than' relationship.
   bool TypeTest(TypeTestKind test_kind,
                 const AbstractType& other,
                 Error* bound_error,
                 TrailPtr bound_trail,
                 Heap::Space space) const;
 
+  // Returns true if this type is a subtype of FutureOr<T> specified by 'other'.
+  // Returns false if other type is not a FutureOr.
+  bool FutureOrTypeTest(Zone* zone,
+                        const AbstractType& other,
+                        Error* bound_error,
+                        TrailPtr bound_trail,
+                        Heap::Space space) const;
+
   // Return the internal or public name of this type, including the names of its
   // type arguments, if any.
   RawString* BuildName(NameVisibility visibility) const;
@@ -8944,25 +8980,6 @@
   friend class Class;
 };
 
-class ObjectPoolInfo : public ValueObject {
- public:
-  explicit ObjectPoolInfo(const ObjectPool& pool)
-      : array_(TypedData::Handle(pool.info_array())) {}
-
-  explicit ObjectPoolInfo(const TypedData& info_array) : array_(info_array) {}
-
-  ObjectPool::EntryType InfoAt(intptr_t i) {
-    return static_cast<ObjectPool::EntryType>(array_.GetInt8(i));
-  }
-
-  void SetInfoAt(intptr_t i, ObjectPool::EntryType info) {
-    array_.SetInt8(i, static_cast<int8_t>(info));
-  }
-
- private:
-  const TypedData& array_;
-};
-
 // Breaking cycles and loops.
 RawClass* Object::clazz() const {
   uword raw_value = reinterpret_cast<uword>(raw_);
diff --git a/runtime/vm/object_reload.cc b/runtime/vm/object_reload.cc
index f5e33c0..8ce4190 100644
--- a/runtime/vm/object_reload.cc
+++ b/runtime/vm/object_reload.cc
@@ -85,7 +85,7 @@
   Object& object = Object::Handle(zone);
   ASSERT(!pool.IsNull());
   for (intptr_t i = 0; i < pool.Length(); i++) {
-    ObjectPool::EntryType entry_type = pool.InfoAt(i);
+    ObjectPool::EntryType entry_type = pool.TypeAt(i);
     if (entry_type != ObjectPool::kTaggedObject) {
       continue;
     }
diff --git a/runtime/vm/object_service.cc b/runtime/vm/object_service.cc
index fa7bced..a8efe0c 100644
--- a/runtime/vm/object_service.cc
+++ b/runtime/vm/object_service.cc
@@ -646,7 +646,7 @@
     for (intptr_t i = 0; i < Length(); i++) {
       JSONObject jsentry(stream);
       jsentry.AddProperty("offset", OffsetFromIndex(i));
-      switch (InfoAt(i)) {
+      switch (TypeAt(i)) {
         case ObjectPool::kTaggedObject:
           obj = ObjectAt(i);
           jsentry.AddProperty("kind", "Object");
diff --git a/runtime/vm/os_thread.cc b/runtime/vm/os_thread.cc
index 57bd0c6..bcc7115 100644
--- a/runtime/vm/os_thread.cc
+++ b/runtime/vm/os_thread.cc
@@ -40,14 +40,14 @@
   // Try to get accurate stack bounds from pthreads, etc.
   if (!GetCurrentStackBounds(&stack_limit_, &stack_base_)) {
     // Fall back to a guess based on the stack pointer.
-    RefineStackBoundsFromSP(Thread::GetCurrentStackPointer());
+    RefineStackBoundsFromSP(GetCurrentStackPointer());
   }
 
   ASSERT(stack_base_ != 0);
   ASSERT(stack_limit_ != 0);
   ASSERT(stack_base_ > stack_limit_);
-  ASSERT(stack_base_ > Thread::GetCurrentStackPointer());
-  ASSERT(stack_limit_ < Thread::GetCurrentStackPointer());
+  ASSERT(stack_base_ > GetCurrentStackPointer());
+  ASSERT(stack_limit_ < GetCurrentStackPointer());
 }
 
 OSThread* OSThread::CreateOSThread() {
@@ -85,6 +85,17 @@
   set_name(name);
 }
 
+// Disable AdressSanitizer and SafeStack transformation on this function. In
+// particular, taking the address of a local gives an address on the stack
+// instead of an address in the shadow memory (AddressSanitizer) or the safe
+// stack (SafeStack).
+NO_SANITIZE_ADDRESS
+NO_SANITIZE_SAFE_STACK
+uword OSThread::GetCurrentStackPointer() {
+  uword stack_allocated_local = reinterpret_cast<uword>(&stack_allocated_local);
+  return stack_allocated_local;
+}
+
 void OSThread::DisableThreadInterrupts() {
   ASSERT(OSThread::Current() == this);
   AtomicOperations::FetchAndIncrement(&thread_interrupt_disabled_);
diff --git a/runtime/vm/os_thread.h b/runtime/vm/os_thread.h
index 533c3b3..cdf3985 100644
--- a/runtime/vm/os_thread.h
+++ b/runtime/vm/os_thread.h
@@ -100,6 +100,10 @@
     return stack_limit_ + kStackSizeBuffer;
   }
 
+  bool HasStackHeadroom(intptr_t headroom = kStackSizeBuffer) {
+    return GetCurrentStackPointer() > (stack_limit_ + headroom);
+  }
+
   void RefineStackBoundsFromSP(uword sp) {
     if (sp > stack_base_) {
       stack_base_ = sp;
@@ -110,6 +114,12 @@
   // May fail for the main thread on Linux and Android.
   static bool GetCurrentStackBounds(uword* lower, uword* upper);
 
+  // Returns the current C++ stack pointer. Equivalent taking the address of a
+  // stack allocated local, but plays well with AddressSanitizer and SafeStack.
+  // Accurate enough for stack overflow checks but not accurate enough for
+  // alignment checks.
+  static uword GetCurrentStackPointer();
+
 #if defined(USING_SAFE_STACK)
   static uword GetCurrentSafestackPointer();
   static void SetCurrentSafestackPointer(uword ssp);
diff --git a/runtime/vm/pages.cc b/runtime/vm/pages.cc
index 05a6dbb..07d95b9 100644
--- a/runtime/vm/pages.cc
+++ b/runtime/vm/pages.cc
@@ -182,7 +182,8 @@
       max_capacity_in_words_(max_capacity_in_words),
       max_external_in_words_(max_external_in_words),
       tasks_lock_(new Monitor()),
-      tasks_(0),
+      sweeper_tasks_(0),
+      low_memory_tasks_(0),
 #if defined(DEBUG)
       iterating_thread_(NULL),
 #endif
@@ -201,7 +202,7 @@
 PageSpace::~PageSpace() {
   {
     MonitorLocker ml(tasks_lock());
-    while (tasks() > 0) {
+    while (sweeper_tasks() > 0) {
       ml.Wait();
     }
   }
@@ -851,7 +852,7 @@
 
   {
     MonitorLocker locker(tasks_lock());
-    if (tasks() > 0) {
+    if (sweeper_tasks() > 0) {
       // A concurrent sweeper is running. If we start a mark sweep now
       // we'll have to wait for it, and this wait time is not included in
       // mark_sweep_words_per_micro_.
@@ -875,10 +876,10 @@
   // Wait for pending tasks to complete and then account for the driver task.
   {
     MonitorLocker locker(tasks_lock());
-    while (tasks() > 0) {
+    while (sweeper_tasks() > 0) {
       locker.WaitWithSafepointCheck(thread);
     }
-    set_tasks(1);
+    set_sweeper_tasks(1);
   }
 
   const int64_t pre_safe_point = OS::GetCurrentMonotonicMicros();
@@ -892,6 +893,7 @@
 
     const int64_t start = OS::GetCurrentMonotonicMicros();
 
+    NOT_IN_PRODUCT(isolate->class_table()->ResetCountersOld());
     // Perform various cleanup that relies on no tasks interfering.
     isolate->class_table()->FreeOldTables();
 
@@ -1035,13 +1037,15 @@
   // Done, reset the task count.
   {
     MonitorLocker ml(tasks_lock());
-    set_tasks(tasks() - 1);
+    set_sweeper_tasks(sweeper_tasks() - 1);
     ml.NotifyAll();
   }
 
   if (compact) {
     // Const object tables are hashed by address: rehash.
     SafepointOperationScope safepoint(thread);
+    StackZone zone(thread);
+    HANDLESCOPE(thread);
     thread->isolate()->RehashConstants();
   }
 }
diff --git a/runtime/vm/pages.h b/runtime/vm/pages.h
index ed48824..1702aca 100644
--- a/runtime/vm/pages.h
+++ b/runtime/vm/pages.h
@@ -330,10 +330,15 @@
   }
 
   Monitor* tasks_lock() const { return tasks_lock_; }
-  intptr_t tasks() const { return tasks_; }
-  void set_tasks(intptr_t val) {
+  intptr_t sweeper_tasks() const { return sweeper_tasks_; }
+  void set_sweeper_tasks(intptr_t val) {
     ASSERT(val >= 0);
-    tasks_ = val;
+    sweeper_tasks_ = val;
+  }
+  intptr_t low_memory_tasks() const { return low_memory_tasks_; }
+  void set_low_memory_tasks(intptr_t val) {
+    ASSERT(val >= 0);
+    low_memory_tasks_ = val;
   }
 
   // Attempt to allocate from bump block rather than normal freelist.
@@ -434,7 +439,8 @@
 
   // Keep track of running MarkSweep tasks.
   Monitor* tasks_lock_;
-  intptr_t tasks_;
+  int32_t sweeper_tasks_;
+  int32_t low_memory_tasks_;
 #if defined(DEBUG)
   Thread* iterating_thread_;
 #endif
diff --git a/runtime/vm/profiler.cc b/runtime/vm/profiler.cc
index 0d4159a..2b2537c 100644
--- a/runtime/vm/profiler.cc
+++ b/runtime/vm/profiler.cc
@@ -1078,7 +1078,7 @@
 }
 
 void Profiler::DumpStackTrace(bool for_crash) {
-  uintptr_t sp = Thread::GetCurrentStackPointer();
+  uintptr_t sp = OSThread::GetCurrentStackPointer();
   uintptr_t fp = 0;
   uintptr_t pc = OS::GetProgramCounter();
 
@@ -1153,7 +1153,7 @@
     return;
   }
 
-  uintptr_t sp = Thread::GetCurrentStackPointer();
+  uintptr_t sp = OSThread::GetCurrentStackPointer();
   uintptr_t fp = 0;
   uintptr_t pc = OS::GetProgramCounter();
 
@@ -1202,7 +1202,7 @@
     return NULL;
   }
 
-  uintptr_t sp = Thread::GetCurrentStackPointer();
+  uintptr_t sp = OSThread::GetCurrentStackPointer();
   uintptr_t fp = 0;
   uintptr_t pc = OS::GetProgramCounter();
 
diff --git a/runtime/vm/program_visitor.cc b/runtime/vm/program_visitor.cc
index 49e42cc..197d55a 100644
--- a/runtime/vm/program_visitor.cc
+++ b/runtime/vm/program_visitor.cc
@@ -20,6 +20,8 @@
       GrowableObjectArray::Handle(zone, isolate->object_store()->libraries());
   Library& lib = Library::Handle(zone);
   Class& cls = Class::Handle(zone);
+  Object& entry = Object::Handle(zone);
+  GrowableObjectArray& patches = GrowableObjectArray::Handle(zone);
 
   for (intptr_t i = 0; i < libraries.Length(); i++) {
     lib ^= libraries.At(i);
@@ -31,64 +33,82 @@
       }
       visitor->Visit(cls);
     }
+    patches = lib.patch_classes();
+    for (intptr_t j = 0; j < patches.Length(); j++) {
+      entry = patches.At(j);
+      if (entry.IsClass()) {
+        visitor->Visit(Class::Cast(entry));
+      }
+    }
   }
 }
 
+class ClassFunctionVisitor : public ClassVisitor {
+ public:
+  ClassFunctionVisitor(Zone* zone, FunctionVisitor* visitor)
+      : visitor_(visitor),
+        functions_(Array::Handle(zone)),
+        function_(Function::Handle(zone)),
+        object_(Object::Handle(zone)),
+        fields_(Array::Handle(zone)),
+        field_(Field::Handle(zone)) {}
+
+  void Visit(const Class& cls) {
+    if (cls.IsDynamicClass()) {
+      return;  // class 'dynamic' is in the read-only VM isolate.
+    }
+
+    functions_ = cls.functions();
+    for (intptr_t j = 0; j < functions_.Length(); j++) {
+      function_ ^= functions_.At(j);
+      visitor_->Visit(function_);
+      if (function_.HasImplicitClosureFunction()) {
+        function_ = function_.ImplicitClosureFunction();
+        visitor_->Visit(function_);
+      }
+    }
+
+    functions_ = cls.invocation_dispatcher_cache();
+    for (intptr_t j = 0; j < functions_.Length(); j++) {
+      object_ = functions_.At(j);
+      if (object_.IsFunction()) {
+        function_ ^= functions_.At(j);
+        visitor_->Visit(function_);
+      }
+    }
+
+    fields_ = cls.fields();
+    for (intptr_t j = 0; j < fields_.Length(); j++) {
+      field_ ^= fields_.At(j);
+      if (field_.is_static() && field_.HasPrecompiledInitializer()) {
+        function_ ^= field_.PrecompiledInitializer();
+        visitor_->Visit(function_);
+      }
+    }
+  }
+
+ private:
+  FunctionVisitor* visitor_;
+  Array& functions_;
+  Function& function_;
+  Object& object_;
+  Array& fields_;
+  Field& field_;
+};
+
 void ProgramVisitor::VisitFunctions(FunctionVisitor* visitor) {
   Thread* thread = Thread::Current();
   Isolate* isolate = thread->isolate();
   Zone* zone = thread->zone();
-  GrowableObjectArray& libraries =
-      GrowableObjectArray::Handle(zone, isolate->object_store()->libraries());
-  Library& lib = Library::Handle(zone);
-  Class& cls = Class::Handle(zone);
-  Array& functions = Array::Handle(zone);
-  Array& fields = Array::Handle(zone);
-  Field& field = Field::Handle(zone);
-  Object& object = Object::Handle(zone);
+
+  ClassFunctionVisitor class_visitor(zone, visitor);
+  VisitClasses(&class_visitor);
+
   Function& function = Function::Handle(zone);
-  GrowableObjectArray& closures = GrowableObjectArray::Handle(zone);
-
-  for (intptr_t i = 0; i < libraries.Length(); i++) {
-    lib ^= libraries.At(i);
-    ClassDictionaryIterator it(lib, ClassDictionaryIterator::kIteratePrivate);
-    while (it.HasNext()) {
-      cls = it.GetNextClass();
-      if (cls.IsDynamicClass()) {
-        continue;  // class 'dynamic' is in the read-only VM isolate.
-      }
-
-      functions = cls.functions();
-      for (intptr_t j = 0; j < functions.Length(); j++) {
-        function ^= functions.At(j);
-        visitor->Visit(function);
-        if (function.HasImplicitClosureFunction()) {
-          function = function.ImplicitClosureFunction();
-          visitor->Visit(function);
-        }
-      }
-
-      functions = cls.invocation_dispatcher_cache();
-      for (intptr_t j = 0; j < functions.Length(); j++) {
-        object = functions.At(j);
-        if (object.IsFunction()) {
-          function ^= functions.At(j);
-          visitor->Visit(function);
-        }
-      }
-      fields = cls.fields();
-      for (intptr_t j = 0; j < fields.Length(); j++) {
-        field ^= fields.At(j);
-        if (field.is_static() && field.HasPrecompiledInitializer()) {
-          function ^= field.PrecompiledInitializer();
-          visitor->Visit(function);
-        }
-      }
-    }
-  }
-  closures = isolate->object_store()->closure_functions();
-  for (intptr_t j = 0; j < closures.Length(); j++) {
-    function ^= closures.At(j);
+  const GrowableObjectArray& closures = GrowableObjectArray::Handle(
+      zone, isolate->object_store()->closure_functions());
+  for (intptr_t i = 0; i < closures.Length(); i++) {
+    function ^= closures.At(i);
     visitor->Visit(function);
     ASSERT(!function.HasImplicitClosureFunction());
   }
diff --git a/runtime/vm/raw_object.cc b/runtime/vm/raw_object.cc
index 5946d18..e0e03b0 100644
--- a/runtime/vm/raw_object.cc
+++ b/runtime/vm/raw_object.cc
@@ -527,20 +527,15 @@
 
 intptr_t RawObjectPool::VisitObjectPoolPointers(RawObjectPool* raw_obj,
                                                 ObjectPointerVisitor* visitor) {
-  visitor->VisitPointers(raw_obj->from(), raw_obj->to());
-  const intptr_t len = raw_obj->ptr()->length_;
-  RawTypedData* info_array = raw_obj->ptr()->info_array_;
-  ASSERT(!info_array->IsForwardingCorpse());
-
-  Entry* first = raw_obj->first_entry();
-  for (intptr_t i = 0; i < len; ++i) {
+  const intptr_t length = raw_obj->ptr()->length_;
+  for (intptr_t i = 0; i < length; ++i) {
     ObjectPool::EntryType entry_type =
-        static_cast<ObjectPool::EntryType>(info_array->ptr()->data()[i]);
+        static_cast<ObjectPool::EntryType>(raw_obj->ptr()->entry_types()[i]);
     if (entry_type == ObjectPool::kTaggedObject) {
-      visitor->VisitPointer(&(first + i)->raw_obj_);
+      visitor->VisitPointer(&raw_obj->ptr()->data()[i].raw_obj_);
     }
   }
-  return ObjectPool::InstanceSize(raw_obj->ptr()->length_);
+  return ObjectPool::InstanceSize(length);
 }
 
 bool RawInstructions::ContainsPC(RawInstructions* raw_instr, uword pc) {
diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h
index 0e9af5f..9278da2 100644
--- a/runtime/vm/raw_object.h
+++ b/runtime/vm/raw_object.h
@@ -1276,10 +1276,6 @@
 
   intptr_t length_;
 
-  VISIT_FROM(RawObject*, info_array_);
-  RawTypedData* info_array_;
-  VISIT_TO(RawObject*, info_array_);
-
   struct Entry {
     union {
       RawObject* raw_obj_;
@@ -1289,7 +1285,14 @@
   Entry* data() { OPEN_ARRAY_START(Entry, Entry); }
   Entry const* data() const { OPEN_ARRAY_START(Entry, Entry); }
 
-  Entry* first_entry() { return &ptr()->data()[0]; }
+  // The entry types are located after the last entry. They are interpreted
+  // as ObjectPool::EntryType.
+  uint8_t* entry_types() {
+    return reinterpret_cast<uint8_t*>(&data()[length_]);
+  }
+  uint8_t const* entry_types() const {
+    return reinterpret_cast<uint8_t const*>(&data()[length_]);
+  }
 
   friend class Object;
 };
diff --git a/runtime/vm/runtime_entry.cc b/runtime/vm/runtime_entry.cc
index df1dcdb..3a2a1d2 100644
--- a/runtime/vm/runtime_entry.cc
+++ b/runtime/vm/runtime_entry.cc
@@ -1611,32 +1611,13 @@
   arguments.SetReturn(result);
 }
 
-DEFINE_RUNTIME_ENTRY(StackOverflow, 0) {
-#if defined(USING_SIMULATOR)
-  uword stack_pos = Simulator::Current()->get_sp();
-#else
-  uword stack_pos = Thread::GetCurrentStackPointer();
-#endif
-  // Always clear the stack overflow flags.  They are meant for this
-  // particular stack overflow runtime call and are not meant to
-  // persist.
-  uword stack_overflow_flags = thread->GetAndClearStackOverflowFlags();
-
-  // If an interrupt happens at the same time as a stack overflow, we
-  // process the stack overflow now and leave the interrupt for next
-  // time.
-  if (IsCalleeFrameOf(thread->saved_stack_limit(), stack_pos)) {
-    // Use the preallocated stack overflow exception to avoid calling
-    // into dart code.
-    const Instance& exception =
-        Instance::Handle(isolate->object_store()->stack_overflow());
-    Exceptions::Throw(thread, exception);
-    UNREACHABLE();
-  }
-
 #if !defined(PRODUCT) && !defined(DART_PRECOMPILED_RUNTIME)
-  // The following code is used to stress test deoptimization and
-  // debugger stack tracing.
+// The following code is used to stress test
+//  - deoptimization
+//  - debugger stack tracing
+//  - hot reload
+static void HandleStackOverflowTestCases(Thread* thread) {
+  Isolate* isolate = thread->isolate();
   bool do_deopt = false;
   bool do_stacktrace = false;
   bool do_reload = false;
@@ -1744,70 +1725,113 @@
     }
     FLAG_stacktrace_every = saved_stacktrace_every;
   }
+}
 #endif  // !defined(PRODUCT) && !defined(DART_PRECOMPILED_RUNTIME)
 
+#if !defined(DART_PRECOMPILED_RUNTIME)
+static void HandleOSRRequest(Thread* thread) {
+  Isolate* isolate = thread->isolate();
+  ASSERT(isolate->use_osr());
+  DartFrameIterator iterator(thread,
+                             StackFrameIterator::kNoCrossThreadIteration);
+  StackFrame* frame = iterator.NextFrame();
+  ASSERT(frame != NULL);
+  const Code& code = Code::ZoneHandle(frame->LookupDartCode());
+  ASSERT(!code.IsNull());
+  ASSERT(!code.is_optimized());
+  const Function& function = Function::Handle(code.function());
+  ASSERT(!function.IsNull());
+
+  // If the code of the frame does not match the function's unoptimized code,
+  // we bail out since the code was reset by an isolate reload.
+  if (code.raw() != function.unoptimized_code()) {
+    return;
+  }
+
+  // Since the code is referenced from the frame and the ZoneHandle,
+  // it cannot have been removed from the function.
+  ASSERT(function.HasCode());
+  // Don't do OSR on intrinsified functions: The intrinsic code expects to be
+  // called like a regular function and can't be entered via OSR.
+  if (!Compiler::CanOptimizeFunction(thread, function) ||
+      function.is_intrinsic()) {
+    return;
+  }
+
+  // The unoptimized code is on the stack and should never be detached from
+  // the function at this point.
+  ASSERT(function.unoptimized_code() != Object::null());
+  intptr_t osr_id =
+      Code::Handle(function.unoptimized_code()).GetDeoptIdForOsr(frame->pc());
+  ASSERT(osr_id != Compiler::kNoOSRDeoptId);
+  if (FLAG_trace_osr) {
+    OS::Print("Attempting OSR for %s at id=%" Pd ", count=%" Pd "\n",
+              function.ToFullyQualifiedCString(), osr_id,
+              function.usage_counter());
+  }
+
+  // Since the code is referenced from the frame and the ZoneHandle,
+  // it cannot have been removed from the function.
+  const Object& result = Object::Handle(
+      Compiler::CompileOptimizedFunction(thread, function, osr_id));
+  if (result.IsError()) {
+    Exceptions::PropagateError(Error::Cast(result));
+  }
+
+  if (!result.IsNull()) {
+    const Code& code = Code::Cast(result);
+    uword optimized_entry =
+        Instructions::UncheckedEntryPoint(code.instructions());
+    frame->set_pc(optimized_entry);
+    frame->set_pc_marker(code.raw());
+  }
+}
+#endif  // !defined(DART_PRECOMPILED_RUNTIME)
+
+DEFINE_RUNTIME_ENTRY(StackOverflow, 0) {
+#if defined(USING_SIMULATOR)
+  uword stack_pos = Simulator::Current()->get_sp();
+#else
+  uword stack_pos = OSThread::GetCurrentStackPointer();
+#endif
+  // Always clear the stack overflow flags.  They are meant for this
+  // particular stack overflow runtime call and are not meant to
+  // persist.
+  uword stack_overflow_flags = thread->GetAndClearStackOverflowFlags();
+
+  // If an interrupt happens at the same time as a stack overflow, we
+  // process the stack overflow now and leave the interrupt for next
+  // time.
+  if (IsCalleeFrameOf(thread->saved_stack_limit(), stack_pos)) {
+    // Use the preallocated stack overflow exception to avoid calling
+    // into dart code.
+    const Instance& exception =
+        Instance::Handle(isolate->object_store()->stack_overflow());
+    Exceptions::Throw(thread, exception);
+    UNREACHABLE();
+  }
+
+#if !defined(PRODUCT) && !defined(DART_PRECOMPILED_RUNTIME)
+  HandleStackOverflowTestCases(thread);
+#endif  // !defined(PRODUCT) && !defined(DART_PRECOMPILED_RUNTIME)
+
+  // Handle interrupts:
+  //  - store buffer overflow
+  //  - OOB message (vm-service or dart:isolate)
+  //  - Dart_InterruptIsolate
   const Error& error = Error::Handle(thread->HandleInterrupts());
   if (!error.IsNull()) {
     Exceptions::PropagateError(error);
     UNREACHABLE();
   }
 
+#if !defined(DART_PRECOMPILED_RUNTIME)
   if ((stack_overflow_flags & Thread::kOsrRequest) != 0) {
-    ASSERT(isolate->use_osr());
-    DartFrameIterator iterator(thread,
-                               StackFrameIterator::kNoCrossThreadIteration);
-    StackFrame* frame = iterator.NextFrame();
-    ASSERT(frame != NULL);
-    const Code& code = Code::ZoneHandle(frame->LookupDartCode());
-    ASSERT(!code.IsNull());
-    ASSERT(!code.is_optimized());
-    const Function& function = Function::Handle(code.function());
-    ASSERT(!function.IsNull());
-
-    // If the code of the frame does not match the function's unoptimized code,
-    // we bail out since the code was reset by an isolate reload.
-    if (code.raw() != function.unoptimized_code()) {
-      return;
-    }
-
-    // Since the code is referenced from the frame and the ZoneHandle,
-    // it cannot have been removed from the function.
-    ASSERT(function.HasCode());
-    // Don't do OSR on intrinsified functions: The intrinsic code expects to be
-    // called like a regular function and can't be entered via OSR.
-    if (!Compiler::CanOptimizeFunction(thread, function) ||
-        function.is_intrinsic()) {
-      return;
-    }
-
-    // The unoptimized code is on the stack and should never be detached from
-    // the function at this point.
-    ASSERT(function.unoptimized_code() != Object::null());
-    intptr_t osr_id =
-        Code::Handle(function.unoptimized_code()).GetDeoptIdForOsr(frame->pc());
-    ASSERT(osr_id != Compiler::kNoOSRDeoptId);
-    if (FLAG_trace_osr) {
-      OS::Print("Attempting OSR for %s at id=%" Pd ", count=%" Pd "\n",
-                function.ToFullyQualifiedCString(), osr_id,
-                function.usage_counter());
-    }
-
-    // Since the code is referenced from the frame and the ZoneHandle,
-    // it cannot have been removed from the function.
-    const Object& result = Object::Handle(
-        Compiler::CompileOptimizedFunction(thread, function, osr_id));
-    if (result.IsError()) {
-      Exceptions::PropagateError(Error::Cast(result));
-    }
-
-    if (!result.IsNull()) {
-      const Code& code = Code::Cast(result);
-      uword optimized_entry =
-          Instructions::UncheckedEntryPoint(code.instructions());
-      frame->set_pc(optimized_entry);
-      frame->set_pc_marker(code.raw());
-    }
+    HandleOSRRequest(thread);
   }
+#else
+  ASSERT((stack_overflow_flags & Thread::kOsrRequest) == 0);
+#endif  // !defined(DART_PRECOMPILED_RUNTIME)
 }
 
 DEFINE_RUNTIME_ENTRY(TraceICCall, 2) {
diff --git a/runtime/vm/scavenger.cc b/runtime/vm/scavenger.cc
index b626fd6..b61c763 100644
--- a/runtime/vm/scavenger.cc
+++ b/runtime/vm/scavenger.cc
@@ -394,6 +394,8 @@
 }
 
 SemiSpace* Scavenger::Prologue(Isolate* isolate) {
+  NOT_IN_PRODUCT(isolate->class_table()->ResetCountersNew());
+
   isolate->PrepareForGC();
 
   // Flip the two semi-spaces so that to_ is always the space for allocating
@@ -496,7 +498,7 @@
   {
     PageSpace* page_space = heap_->old_space();
     MonitorLocker ml(page_space->tasks_lock());
-    if (page_space->tasks() == 0) {
+    if (page_space->sweeper_tasks() == 0) {
       VerifyStoreBufferPointerVisitor verify_store_buffer_visitor(isolate, to_);
       heap_->old_space()->VisitObjectPointers(&verify_store_buffer_visitor);
     }
@@ -507,6 +509,8 @@
   if (heap_ != NULL) {
     heap_->UpdateGlobalMaxUsed();
   }
+
+  NOT_IN_PRODUCT(isolate->class_table()->UpdatePromoted());
 }
 
 bool Scavenger::ShouldPerformIdleScavenge(int64_t deadline) {
diff --git a/runtime/vm/simulator_arm.cc b/runtime/vm/simulator_arm.cc
index e0eacf1..c244c40 100644
--- a/runtime/vm/simulator_arm.cc
+++ b/runtime/vm/simulator_arm.cc
@@ -1393,7 +1393,7 @@
             (redirection->call_kind() == kBootstrapNativeCall) ||
             (redirection->call_kind() == kNativeCall)) {
           // Set the top_exit_frame_info of this simulator to the native stack.
-          set_top_exit_frame_info(Thread::GetCurrentStackPointer());
+          set_top_exit_frame_info(OSThread::GetCurrentStackPointer());
         }
         if (redirection->call_kind() == kRuntimeCall) {
           NativeArguments arguments;
diff --git a/runtime/vm/simulator_arm64.cc b/runtime/vm/simulator_arm64.cc
index afe9d42..c07ae21 100644
--- a/runtime/vm/simulator_arm64.cc
+++ b/runtime/vm/simulator_arm64.cc
@@ -1532,7 +1532,7 @@
         (redirection->call_kind() == kBootstrapNativeCall) ||
         (redirection->call_kind() == kNativeCall)) {
       // Set the top_exit_frame_info of this simulator to the native stack.
-      set_top_exit_frame_info(Thread::GetCurrentStackPointer());
+      set_top_exit_frame_info(OSThread::GetCurrentStackPointer());
     }
     if (redirection->call_kind() == kRuntimeCall) {
       NativeArguments* arguments =
diff --git a/runtime/vm/simulator_dbc.cc b/runtime/vm/simulator_dbc.cc
index 5d21b6d..fc2e385e 100644
--- a/runtime/vm/simulator_dbc.cc
+++ b/runtime/vm/simulator_dbc.cc
@@ -195,10 +195,13 @@
   static bool ObjectArraySetIndexed(Thread* thread,
                                     RawObject** FP,
                                     RawObject** result) {
-    if (thread->isolate()->type_checks()) {
-      return false;
-    }
+    return !thread->isolate()->type_checks() &&
+           ObjectArraySetIndexedUnchecked(thread, FP, result);
+  }
 
+  static bool ObjectArraySetIndexedUnchecked(Thread* thread,
+                                             RawObject** FP,
+                                             RawObject** result) {
     RawObject** args = FrameArguments(FP, 3);
     RawSmi* index = static_cast<RawSmi*>(args[1]);
     RawArray* array = static_cast<RawArray*>(args[0]);
@@ -225,10 +228,13 @@
   static bool GrowableArraySetIndexed(Thread* thread,
                                       RawObject** FP,
                                       RawObject** result) {
-    if (thread->isolate()->type_checks()) {
-      return false;
-    }
+    return !thread->isolate()->type_checks() &&
+           GrowableArraySetIndexedUnchecked(thread, FP, result);
+  }
 
+  static bool GrowableArraySetIndexedUnchecked(Thread* thread,
+                                               RawObject** FP,
+                                               RawObject** result) {
     RawObject** args = FrameArguments(FP, 3);
     RawSmi* index = static_cast<RawSmi*>(args[1]);
     RawGrowableObjectArray* array =
@@ -508,10 +514,14 @@
 
   intrinsics_[kObjectArraySetIndexedIntrinsic] =
       SimulatorHelpers::ObjectArraySetIndexed;
+  intrinsics_[kObjectArraySetIndexedUncheckedIntrinsic] =
+      SimulatorHelpers::ObjectArraySetIndexedUnchecked;
   intrinsics_[kObjectArrayGetIndexedIntrinsic] =
       SimulatorHelpers::ObjectArrayGetIndexed;
   intrinsics_[kGrowableArraySetIndexedIntrinsic] =
       SimulatorHelpers::GrowableArraySetIndexed;
+  intrinsics_[kGrowableArraySetIndexedUncheckedIntrinsic] =
+      SimulatorHelpers::GrowableArraySetIndexedUnchecked;
   intrinsics_[kGrowableArrayGetIndexedIntrinsic] =
       SimulatorHelpers::GrowableArrayGetIndexed;
   intrinsics_[kObjectEqualsIntrinsic] = SimulatorHelpers::ObjectEquals;
diff --git a/runtime/vm/thread.cc b/runtime/vm/thread.cc
index a848703..51f3cd9 100644
--- a/runtime/vm/thread.cc
+++ b/runtime/vm/thread.cc
@@ -4,8 +4,6 @@
 
 #include "vm/thread.h"
 
-#include "platform/address_sanitizer.h"
-#include "platform/safe_stack.h"
 #include "vm/compiler_stats.h"
 #include "vm/dart_api_state.h"
 #include "vm/growable_array.h"
@@ -411,17 +409,6 @@
   SetStackLimit(~static_cast<uword>(0));
 }
 
-// Disable AdressSanitizer and SafeStack transformation on this function. In
-// particular, taking the address of a local gives an address on the stack
-// instead of an address in the shadow memory (AddressSanitizer) or the safe
-// stack (SafeStack).
-NO_SANITIZE_ADDRESS
-NO_SANITIZE_SAFE_STACK
-uword Thread::GetCurrentStackPointer() {
-  uword stack_allocated_local = reinterpret_cast<uword>(&stack_allocated_local);
-  return stack_allocated_local;
-}
-
 void Thread::ScheduleInterrupts(uword interrupt_bits) {
   MonitorLocker ml(thread_lock_);
   ScheduleInterruptsLocked(interrupt_bits);
diff --git a/runtime/vm/thread.h b/runtime/vm/thread.h
index 570f1e8..720a9a8 100644
--- a/runtime/vm/thread.h
+++ b/runtime/vm/thread.h
@@ -168,6 +168,7 @@
     kCompilerTask = 0x2,
     kSweeperTask = 0x4,
     kMarkerTask = 0x8,
+    kLowMemoryTask = 0x10,
   };
   // Converts a TaskKind to its corresponding C-String name.
   static const char* TaskKindToCString(TaskKind kind);
@@ -204,12 +205,6 @@
   void SetStackLimitFromStackBase(uword stack_base);
   void ClearStackLimit();
 
-  // Returns the current C++ stack pointer. Equivalent taking the address of a
-  // stack allocated local, but plays well with AddressSanitizer and SafeStack.
-  // Accurate enough for stack overflow checks but not accurate enough for
-  // alignment checks.
-  static uword GetCurrentStackPointer();
-
   // Access to the current stack limit for generated code.  This may be
   // overwritten with a special value to trigger interrupts.
   uword stack_limit_address() const {
diff --git a/runtime/vm/thread_pool.cc b/runtime/vm/thread_pool.cc
index 92518e55..3a085ae 100644
--- a/runtime/vm/thread_pool.cc
+++ b/runtime/vm/thread_pool.cc
@@ -424,7 +424,7 @@
   ThreadPool* pool;
 
   // Set the thread's stack_base based on the current stack pointer.
-  os_thread->RefineStackBoundsFromSP(Thread::GetCurrentStackPointer());
+  os_thread->RefineStackBoundsFromSP(OSThread::GetCurrentStackPointer());
 
   {
     MonitorLocker ml(&worker->monitor_);
diff --git a/samples/samples.status b/samples/samples.status
index cf6350d..51914af 100644
--- a/samples/samples.status
+++ b/samples/samples.status
@@ -29,6 +29,11 @@
 [ $compiler == none && $runtime == vm && $system == windows && $mode == debug ]
 sample_extension/test/sample_extension_app_snapshot_test: Pass, RuntimeError # Issue 28842
 
+[ $compiler == dartk && $strong ]
+sample_extension/test/sample_extension_app_snapshot_test: RuntimeError
+sample_extension/test/sample_extension_script_snapshot_test: RuntimeError
+sample_extension/test/sample_extension_test: RuntimeError
+
 [ $compiler == dartkp ]
 sample_extension/test/sample_extension_app_snapshot_test: RuntimeError
 sample_extension/test/sample_extension_script_snapshot_test: RuntimeError
diff --git a/sdk/bin/dartdevk_sdk.bat b/sdk/bin/dartdevk_sdk.bat
index d1a480f..8e490ef 100644
--- a/sdk/bin/dartdevk_sdk.bat
+++ b/sdk/bin/dartdevk_sdk.bat
@@ -20,7 +20,7 @@
 rem Remove trailing backslash if there is one
 if %SDK_DIR:~-1%==\ set SDK_DIR=%SDK_DIR:~0,-1%
 
-"%DART%" "%SNAPSHOT%" "--packages=%SDK_DIR%\.packages" %*
+"%DART%" "%SNAPSHOT%" "--packages=%SDK_DIR%\..\..\..\.packages" %*
 
 endlocal
 
diff --git a/sdk/lib/_http/http_impl.dart b/sdk/lib/_http/http_impl.dart
index 75157eb..ee8f0c2 100644
--- a/sdk/lib/_http/http_impl.dart
+++ b/sdk/lib/_http/http_impl.dart
@@ -2347,7 +2347,7 @@
   _HttpConnection(this._socket, this._httpServer)
       : _httpParser = new _HttpParser.requestParser() {
     _connections[_serviceId] = this;
-    _httpParser.listenToStream(_socket as Object/*=Socket*/);
+    _httpParser.listenToStream(_socket);
     _subscription = _httpParser.listen((incoming) {
       _httpServer._markActive(this);
       // If the incoming was closed, close the connection.
diff --git a/sdk/lib/_internal/js_runtime/lib/internal_patch.dart b/sdk/lib/_internal/js_runtime/lib/internal_patch.dart
index 144a54d..05a9d39 100644
--- a/sdk/lib/_internal/js_runtime/lib/internal_patch.dart
+++ b/sdk/lib/_internal/js_runtime/lib/internal_patch.dart
@@ -45,3 +45,9 @@
 List<T> makeFixedListUnmodifiable<T>(List<T> fixedLengthList) {
   return JSArray.markUnmodifiableList(fixedLengthList);
 }
+
+@patch
+Object extractTypeArguments<T>(T instance, Function extract) {
+  // TODO(31371): Implement this.
+  throw new UnimplementedError();
+}
diff --git a/sdk/lib/core/uri.dart b/sdk/lib/core/uri.dart
index dd4fe11..ef20c8d 100644
--- a/sdk/lib/core/uri.dart
+++ b/sdk/lib/core/uri.dart
@@ -2689,7 +2689,7 @@
     return sb.toString();
   }
 
-  bool operator ==(other) {
+  bool operator ==(Object other) {
     if (identical(this, other)) return true;
     if (other is Uri) {
       Uri uri = other;
diff --git a/sdk/lib/html/dart2js/html_dart2js.dart b/sdk/lib/html/dart2js/html_dart2js.dart
index 2129a68..0c46647 100644
--- a/sdk/lib/html/dart2js/html_dart2js.dart
+++ b/sdk/lib/html/dart2js/html_dart2js.dart
@@ -10722,9 +10722,8 @@
    * For details about CSS selector syntax, see the
    * [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
    */
-  ElementList<Element/*=T*/ > querySelectorAll/*<T extends Element>*/(
-          String selectors) =>
-      new _FrozenElementList/*<T>*/ ._wrap(_querySelectorAll(selectors));
+  ElementList<T> querySelectorAll<T extends Element>(String selectors) =>
+      new _FrozenElementList<T>._wrap(_querySelectorAll(selectors));
 
   /**
    * Alias for [querySelector]. Note this function is deprecated because its
@@ -10742,8 +10741,7 @@
   @deprecated
   @Experimental()
   @DomName('Document.querySelectorAll')
-  ElementList<Element/*=T*/ > queryAll/*<T extends Element>*/(
-          String relativeSelectors) =>
+  ElementList<T> queryAll<T extends Element>(String relativeSelectors) =>
       querySelectorAll(relativeSelectors);
 
   /// Checks if [registerElement] is supported on the current platform.
@@ -10865,9 +10863,8 @@
    * For details about CSS selector syntax, see the
    * [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
    */
-  ElementList<Element/*=T*/ > querySelectorAll/*<T extends Element>*/(
-          String selectors) =>
-      new _FrozenElementList/*<T>*/ ._wrap(_querySelectorAll(selectors));
+  ElementList<T> querySelectorAll<T extends Element>(String selectors) =>
+      new _FrozenElementList<T>._wrap(_querySelectorAll(selectors));
 
   String get innerHtml {
     final e = new DivElement();
@@ -10922,8 +10919,7 @@
   @deprecated
   @Experimental()
   @DomName('DocumentFragment.querySelectorAll')
-  ElementList<Element/*=T*/ > queryAll/*<T extends Element>*/(
-          String relativeSelectors) =>
+  ElementList<T> queryAll<T extends Element>(String relativeSelectors) =>
       querySelectorAll(relativeSelectors);
   // To suppress missing implicit constructor warnings.
   factory DocumentFragment._() {
@@ -11671,11 +11667,11 @@
         another.y <= top + height;
   }
 
-  Point get topLeft => new Point/*<num>*/(this.left, this.top);
-  Point get topRight => new Point/*<num>*/(this.left + this.width, this.top);
+  Point get topLeft => new Point(this.left, this.top);
+  Point get topRight => new Point(this.left + this.width, this.top);
   Point get bottomRight =>
-      new Point/*<num>*/(this.left + this.width, this.top + this.height);
-  Point get bottomLeft => new Point/*<num>*/(this.left, this.top + this.height);
+      new Point(this.left + this.width, this.top + this.height);
+  Point get bottomLeft => new Point(this.left, this.top + this.height);
 
   // To suppress missing implicit constructor warnings.
   factory DomRectReadOnly._() {
@@ -13464,9 +13460,8 @@
    * [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
    */
   @DomName('Element.querySelectorAll')
-  ElementList<Element/*=T*/ > querySelectorAll/*<T extends Element>*/(
-          String selectors) =>
-      new _FrozenElementList/*<T>*/ ._wrap(_querySelectorAll(selectors));
+  ElementList<T> querySelectorAll<T extends Element>(String selectors) =>
+      new _FrozenElementList<T>._wrap(_querySelectorAll(selectors));
 
   /**
    * Alias for [querySelector]. Note this function is deprecated because its
@@ -13484,8 +13479,7 @@
   @deprecated
   @DomName('Element.querySelectorAll')
   @Experimental()
-  ElementList<Element/*=T*/ > queryAll/*<T extends Element>*/(
-          String relativeSelectors) =>
+  ElementList<T> queryAll<T extends Element>(String relativeSelectors) =>
       querySelectorAll(relativeSelectors);
 
   /**
@@ -14101,14 +14095,13 @@
     bool sameAsParent = identical(current, parent);
     bool foundAsParent = sameAsParent || parent.tagName == 'HTML';
     if (current == null || sameAsParent) {
-      if (foundAsParent) return new Point/*<num>*/(0, 0);
+      if (foundAsParent) return new Point(0, 0);
       throw new ArgumentError("Specified element is not a transitive offset "
           "parent of this element.");
     }
     Element parentOffset = current.offsetParent;
     Point p = Element._offsetToHelper(parentOffset, parent);
-    return new Point/*<num>*/(
-        p.x + current.offsetLeft, p.y + current.offsetTop);
+    return new Point(p.x + current.offsetLeft, p.y + current.offsetTop);
   }
 
   static HtmlDocument _parseDocument;
@@ -25347,14 +25340,14 @@
 
   @DomName('MouseEvent.clientX')
   @DomName('MouseEvent.clientY')
-  Point get client => new Point/*<num>*/(_clientX, _clientY);
+  Point get client => new Point(_clientX, _clientY);
 
   @DomName('MouseEvent.movementX')
   @DomName('MouseEvent.movementY')
   @SupportedBrowser(SupportedBrowser.CHROME)
   @SupportedBrowser(SupportedBrowser.FIREFOX)
   @Experimental()
-  Point get movement => new Point/*<num>*/(_movementX, _movementY);
+  Point get movement => new Point(_movementX, _movementY);
 
   /**
    * The coordinates of the mouse pointer in target node coordinates.
@@ -25367,7 +25360,7 @@
     if (JS('bool', '!!#.offsetX', this)) {
       var x = JS('int', '#.offsetX', this);
       var y = JS('int', '#.offsetY', this);
-      return new Point/*<num>*/(x, y);
+      return new Point(x, y);
     } else {
       // Firefox does not support offsetX.
       if (!(this.target is Element)) {
@@ -25375,21 +25368,21 @@
       }
       Element target = this.target;
       var point = (this.client - target.getBoundingClientRect().topLeft);
-      return new Point/*<num>*/(point.x.toInt(), point.y.toInt());
+      return new Point(point.x.toInt(), point.y.toInt());
     }
   }
 
   @DomName('MouseEvent.screenX')
   @DomName('MouseEvent.screenY')
-  Point get screen => new Point/*<num>*/(_screenX, _screenY);
+  Point get screen => new Point(_screenX, _screenY);
 
   @DomName('MouseEvent.layerX')
   @DomName('MouseEvent.layerY')
-  Point get layer => new Point/*<num>*/(_layerX, _layerY);
+  Point get layer => new Point(_layerX, _layerY);
 
   @DomName('MouseEvent.pageX')
   @DomName('MouseEvent.pageY')
-  Point get page => new Point/*<num>*/(_pageX, _pageY);
+  Point get page => new Point(_pageX, _pageY);
 
   @DomName('MouseEvent.dataTransfer')
   DataTransfer get dataTransfer =>
@@ -34833,15 +34826,15 @@
 
   @DomName('Touch.clientX')
   @DomName('Touch.clientY')
-  Point get client => new Point/*<num>*/(__clientX, __clientY);
+  Point get client => new Point(__clientX, __clientY);
 
   @DomName('Touch.pageX')
   @DomName('Touch.pageY')
-  Point get page => new Point/*<num>*/(__pageX, __pageY);
+  Point get page => new Point(__pageX, __pageY);
 
   @DomName('Touch.screenX')
   @DomName('Touch.screenY')
-  Point get screen => new Point/*<num>*/(__screenX, __screenY);
+  Point get screen => new Point(__screenX, __screenY);
 
   @DomName('Touch.radiusX')
   @DocsEditable()
@@ -39010,7 +39003,7 @@
         e, _eventType, useCapture);
   }
 
-  ElementStream<BeforeUnloadEvent> _forElementList(ElementList e,
+  ElementStream<BeforeUnloadEvent> _forElementList(ElementList<Element> e,
       {bool useCapture: false}) {
     // Specify the generic type for _ElementEventStreamImpl only in dart2js.
     return new _ElementListEventStreamImpl<BeforeUnloadEvent>(
@@ -40025,11 +40018,11 @@
         another.y <= top + height;
   }
 
-  Point get topLeft => new Point/*<num>*/(this.left, this.top);
-  Point get topRight => new Point/*<num>*/(this.left + this.width, this.top);
+  Point get topLeft => new Point(this.left, this.top);
+  Point get topRight => new Point(this.left + this.width, this.top);
   Point get bottomRight =>
-      new Point/*<num>*/(this.left + this.width, this.top + this.height);
-  Point get bottomLeft => new Point/*<num>*/(this.left, this.top + this.height);
+      new Point(this.left + this.width, this.top + this.height);
+  Point get bottomLeft => new Point(this.left, this.top + this.height);
 
   // To suppress missing implicit constructor warnings.
   factory _ClientRect._() {
@@ -42768,7 +42761,8 @@
    *
    * [addEventListener](http://docs.webplatform.org/wiki/dom/methods/addEventListener)
    */
-  ElementStream<T> _forElementList(ElementList e, {bool useCapture: false}) {
+  ElementStream<T> _forElementList(ElementList<Element> e,
+      {bool useCapture: false}) {
     return new _ElementListEventStreamImpl<T>(e, _eventType, useCapture);
   }
 
@@ -43126,7 +43120,8 @@
     return new _ElementEventStreamImpl<T>(e, _eventTypeGetter(e), useCapture);
   }
 
-  ElementStream<T> _forElementList(ElementList e, {bool useCapture: false}) {
+  ElementStream<T> _forElementList(ElementList<Element> e,
+      {bool useCapture: false}) {
     return new _ElementListEventStreamImpl<T>(
         e, _eventTypeGetter(e), useCapture);
   }
@@ -45075,9 +45070,9 @@
       Iterable<String> uriAttributes}) {
     var tagNameUpper = tagName.toUpperCase();
     var attrs = attributes
-        ?.map/*<String>*/((name) => '$tagNameUpper::${name.toLowerCase()}');
+        ?.map<String>((name) => '$tagNameUpper::${name.toLowerCase()}');
     var uriAttrs = uriAttributes
-        ?.map/*<String>*/((name) => '$tagNameUpper::${name.toLowerCase()}');
+        ?.map<String>((name) => '$tagNameUpper::${name.toLowerCase()}');
     if (uriPolicy == null) {
       uriPolicy = new UriPolicy();
     }
@@ -45101,9 +45096,9 @@
     var baseNameUpper = baseName.toUpperCase();
     var tagNameUpper = tagName.toUpperCase();
     var attrs = attributes
-        ?.map/*<String>*/((name) => '$baseNameUpper::${name.toLowerCase()}');
+        ?.map<String>((name) => '$baseNameUpper::${name.toLowerCase()}');
     var uriAttrs = uriAttributes
-        ?.map/*<String>*/((name) => '$baseNameUpper::${name.toLowerCase()}');
+        ?.map<String>((name) => '$baseNameUpper::${name.toLowerCase()}');
     if (uriPolicy == null) {
       uriPolicy = new UriPolicy();
     }
diff --git a/sdk/lib/html/html_common/conversions_dart2js.dart b/sdk/lib/html/html_common/conversions_dart2js.dart
index 0292cf5..c98b73c 100644
--- a/sdk/lib/html/html_common/conversions_dart2js.dart
+++ b/sdk/lib/html/html_common/conversions_dart2js.dart
@@ -19,7 +19,7 @@
   if (postCreate != null) {
     postCreate(object);
   }
-  dict.forEach((String key, value) {
+  dict.forEach((key, value) {
     JS('void', '#[#] = #', object, key, value);
   });
   return object;
diff --git a/sdk/lib/html/html_common/filtered_element_list.dart b/sdk/lib/html/html_common/filtered_element_list.dart
index f70d820..fba6ad7 100644
--- a/sdk/lib/html/html_common/filtered_element_list.dart
+++ b/sdk/lib/html/html_common/filtered_element_list.dart
@@ -26,9 +26,8 @@
 
   // We can't memoize this, since it's possible that children will be messed
   // with externally to this class.
-  Iterable<Element> get _iterable => _childNodes
-      .where((n) => n is Element)
-      .map/*<Element>*/((n) => n as Element);
+  Iterable<Element> get _iterable =>
+      _childNodes.where((n) => n is Element).map<Element>((n) => n as Element);
   List<Element> get _filtered =>
       new List<Element>.from(_iterable, growable: false);
 
diff --git a/sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart b/sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart
index d9a81dd..466366f 100644
--- a/sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart
+++ b/sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart
@@ -639,12 +639,12 @@
  * Ties a request to a completer, so the completer is completed when it succeeds
  * and errors out when the request errors.
  */
-Future/*<T>*/ _completeRequest/*<T>*/(Request request) {
-  var completer = new Completer/*<T>*/ .sync();
+Future<T> _completeRequest<T>(Request request) {
+  var completer = new Completer<T>.sync();
   // TODO: make sure that completer.complete is synchronous as transactions
   // may be committed if the result is not processed immediately.
   request.onSuccess.listen((e) {
-    dynamic/*=T*/ result = request.result;
+    T result = request.result;
     completer.complete(result);
   });
   request.onError.listen(completer.completeError);
diff --git a/sdk/lib/internal/internal.dart b/sdk/lib/internal/internal.dart
index 4f47c5c..eeb0f85 100644
--- a/sdk/lib/internal/internal.dart
+++ b/sdk/lib/internal/internal.dart
@@ -96,3 +96,56 @@
   int digit2 = hexDigitValue(source.codeUnitAt(index + 1));
   return digit1 * 16 + digit2 - (digit2 & 256);
 }
+
+/// Given an [instance] of some generic type [T], and [extract], a first-class
+/// generic function that takes the same number of type parameters as [T],
+/// invokes the function with the same type arguments that were passed to T
+/// when [instance] was constructed.
+///
+/// Example:
+///
+/// ```dart
+/// class Two<A, B> {}
+///
+/// print(extractTypeArguments<List>(<int>[], <T>() => new Set<T>()));
+/// // Prints: Instance of 'Set<int>'.
+///
+/// print(extractTypeArguments<Map>(<String, bool>{},
+///     <T, S>() => new Two<T, S>));
+/// // Prints: Instance of 'Two<String, bool>'.
+/// ```
+///
+/// The type argument T is important to choose which specific type parameter
+/// list in [instance]'s type hierarchy is being extracted. Consider:
+///
+/// ```dart
+/// class A<T> {}
+/// class B<T> {}
+///
+/// class C implements A<int>, B<String> {}
+///
+/// main() {
+///   var c = new C();
+///   print(extractTypeArguments<A>(c, <T>() => <T>[]));
+///   // Prints: Instance of 'List<int>'.
+///
+///   print(extractTypeArguments<B>(c, <T>() => <T>[]));
+///   // Prints: Instance of 'List<String>'.
+/// }
+/// ```
+///
+/// A caller must not:
+///
+/// *   Pass `null` for [instance].
+/// *   Use a non-class type (i.e. a function type) for [T].
+/// *   Use a non-generic type for [T].
+/// *   Pass an instance of a generic type and a function that don't both take
+///     the same number of type arguments:
+///
+///     ```dart
+///     extractTypeArguments<List>(<int>[], <T, S>() => null);
+///     ```
+///
+/// See this issue for more context:
+/// https://github.com/dart-lang/sdk/issues/31371
+external Object extractTypeArguments<T>(T instance, Function extract);
diff --git a/sdk/lib/io/platform.dart b/sdk/lib/io/platform.dart
index 01be4ca..a5978e6 100644
--- a/sdk/lib/io/platform.dart
+++ b/sdk/lib/io/platform.dart
@@ -72,7 +72,6 @@
   static final _operatingSystemVersion = _Platform.operatingSystemVersion;
   static final _localHostname = _Platform.localHostname;
   static final _version = _Platform.version;
-  static final _localeName = _Platform.localeName;
 
   /**
    * The number of individual execution units of the machine.
@@ -88,7 +87,7 @@
   /**
    * Get the name of the current locale.
    */
-  static String get localeName => _localeName;
+  static String get localeName => _Platform.localeName();
 
   /**
    * A string representing the operating system or platform.
diff --git a/sdk/lib/io/platform_impl.dart b/sdk/lib/io/platform_impl.dart
index 38beecd..3ee7757 100644
--- a/sdk/lib/io/platform_impl.dart
+++ b/sdk/lib/io/platform_impl.dart
@@ -41,16 +41,13 @@
   static String packageRoot = _packageRoot();
   static String packageConfig = _packageConfig();
 
-  static String _cachedLocaleName;
-  static String get localeName {
-    if (_cachedLocaleName == null) {
-      var result = _localeName();
-      if (result is OSError) {
-        throw result;
-      }
-      _cachedLocaleName = result;
+  static String Function() _localeClosure;
+  static String localeName() {
+    final result = (_localeClosure == null) ? _localeName() : _localeClosure();
+    if (result is OSError) {
+      throw result;
     }
-    return _cachedLocaleName;
+    return result;
   }
 
   // Cache the OS environment. This can be an OSError instance if
diff --git a/sdk/lib/js/dart2js/js_dart2js.dart b/sdk/lib/js/dart2js/js_dart2js.dart
index d97523b..f7ef054 100644
--- a/sdk/lib/js/dart2js/js_dart2js.dart
+++ b/sdk/lib/js/dart2js/js_dart2js.dart
@@ -707,7 +707,7 @@
   return Function.apply(callback, [self]..addAll(arguments));
 }
 
-Function/*=F*/ allowInterop/*<F extends Function>*/(Function/*=F*/ f) {
+F allowInterop<F extends Function>(F f) {
   if (JS('bool', 'typeof(#) == "function"', f)) {
     // Already supports interop, just use the existing function.
     return f;
diff --git a/tests/co19/co19-analyzer2.status b/tests/co19/co19-analyzer2.status
index c657b23..85a56bd 100644
--- a/tests/co19/co19-analyzer2.status
+++ b/tests/co19/co19-analyzer2.status
@@ -3,7 +3,6 @@
 # BSD-style license that can be found in the LICENSE file.
 
 [ $compiler == dart2analyzer ]
-
 Language/Classes/Classes/method_definition_t06: MissingStaticWarning # Please triage this failure.
 Language/Classes/Getters/static_getter_t02: CompileTimeError # Issue 24534
 Language/Classes/Getters/static_t01: StaticWarning # Please triage this failure.
@@ -16,8 +15,8 @@
 Language/Enums/syntax_t08: MissingCompileTimeError # Please triage this failure.
 Language/Enums/syntax_t09: MissingCompileTimeError # Please triage this failure.
 Language/Expressions/Assignment/super_assignment_static_warning_t03: StaticWarning # Issue 15467
-Language/Expressions/Constants/exception_t01: fail, OK # co19 issue #438, Static variables are initialized lazily, need not be constants
-Language/Expressions/Constants/exception_t02: fail, OK # co19 issue #438, Static variables are initialized lazily, need not be constants
+Language/Expressions/Constants/exception_t01: Fail, OK # co19 issue #438, Static variables are initialized lazily, need not be constants
+Language/Expressions/Constants/exception_t02: Fail, OK # co19 issue #438, Static variables are initialized lazily, need not be constants
 Language/Expressions/Function_Invocation/Unqualified_Invocation/instance_context_invocation_t03: MissingCompileTimeError # Please triage this failure.
 Language/Expressions/Function_Invocation/Unqualified_Invocation/instance_context_invocation_t04: MissingCompileTimeError # Please triage this failure.
 Language/Expressions/Function_Invocation/Unqualified_Invocation/invocation_t17: MissingCompileTimeError # Please triage this failure
@@ -66,7 +65,7 @@
 Language/Libraries_and_Scripts/Parts/compilation_t01: Pass, MissingCompileTimeError # Issue 26692
 Language/Libraries_and_Scripts/Parts/compilation_t02: Pass, MissingCompileTimeError # Issue 26692
 Language/Libraries_and_Scripts/Parts/compilation_t04: Pass, CompileTimeError # Issue 26592
-Language/Libraries_and_Scripts/Parts/compilation_t15: fail, pass # Issue 23595
+Language/Libraries_and_Scripts/Parts/compilation_t15: Fail, Pass # Issue 23595
 Language/Libraries_and_Scripts/Scripts/syntax_t11: Pass, CompileTimeError # Issue 26592
 Language/Mixins/Mixin_Application/error_t01: MissingCompileTimeError # Please triage this failure.
 Language/Mixins/Mixin_Application/error_t02: MissingCompileTimeError # Please triage this failure.
@@ -93,7 +92,7 @@
 Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t01: MissingCompileTimeError # Issue 25495
 Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t03: MissingCompileTimeError # Issue 25495
 Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t05: MissingCompileTimeError # Issue 25495
-Language/Types/Interface_Types/subtype_t12: fail, OK # co19 issue #442, undefined name "Expect"
+Language/Types/Interface_Types/subtype_t12: Fail, OK # co19 issue #442, undefined name "Expect"
 Language/Types/Type_Void/syntax_t01: MissingCompileTimeError # Issue co19/30264
 Language/Types/Type_Void/syntax_t02: MissingCompileTimeError # Issue co19/30264
 Language/Types/Type_Void/syntax_t04: MissingCompileTimeError # Issue co19/30264
@@ -173,12 +172,11 @@
 LayoutTests/fast/dom/text-api-arguments_t01: StaticWarning # Please triage this failure.
 LayoutTests/fast/events/event-creation_t01: Skip # Roll 45 OverflowEvent removed
 LayoutTests/fast/events/initkeyboardevent-crash_t01: StaticWarning # Please triage this failure.
-LayoutTests/fast/forms/checkValidity-001_t01: fail
 LayoutTests/fast/html/article-element_t01: StaticWarning # Please triage this failure.
 LayoutTests/fast/html/aside-element_t01: StaticWarning # Please triage this failure.
 LayoutTests/fast/html/imports/import-element-removed-flag_t01: StaticWarning # Please triage this failure.
-LayoutTests/fast/html/imports/import-events_t01: CompileTimeError # Please triage this failure.
 LayoutTests/fast/html/imports/import-events_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/html/imports/import-events_t01: CompileTimeError # Please triage this failure.
 LayoutTests/fast/html/select-dropdown-consistent-background-color_t01: StaticWarning # Please triage this failure.
 LayoutTests/fast/html/text-field-input-types_t01: StaticWarning # Please triage this failure.
 LayoutTests/fast/inline/boundingBox-with-continuation_t01: StaticWarning # Please triage this failure.
@@ -324,7 +322,6 @@
 WebPlatformTest/html/semantics/forms/the-datalist-element/datalistoptions_t01: StaticWarning # Please triage this failure.
 WebPlatformTest/html/semantics/forms/the-fieldset-element/disabled_t01: StaticWarning # Please triage this failure.
 WebPlatformTest/html/semantics/forms/the-input-element/email_t02: StaticWarning # co19 issue 701
-WebPlatformTest/html/semantics/forms/the-textarea-element/textarea-type_t01: fail
 WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t01: StaticWarning # Please triage this failure.
 WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t02: StaticWarning # Please triage this failure.
 WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t03: StaticWarning # Please triage this failure.
@@ -431,5 +428,6 @@
 WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-009_t01: StaticWarning # Please triage this failure.
 WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-011_t01: StaticWarning # Please triage this failure.
 
-[ $compiler == dart2analyzer && $builder_tag == strong ]
+[ $builder_tag == strong && $compiler == dart2analyzer ]
 *: Skip # Issue 28649
+
diff --git a/tests/co19/co19-co19.status b/tests/co19/co19-co19.status
index 39d3d02..2f30364 100644
--- a/tests/co19/co19-co19.status
+++ b/tests/co19/co19-co19.status
@@ -1,32 +1,14 @@
 # Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
-
 # This file contains the tests that have been identified as broken and
 # have been filed on the co19 issue tracker at
 #    https://code.google.com/p/co19/issues/list (read-only).
 #    https://github.com/dart-lang/co19/issues .
 #
 # In order to qualify here these tests need to fail both on the VM and dart2js.
-
 ### GENERAL FAILURES ###
 
-# Tests that fail everywhere, including the analyzer.
-[ $runtime == vm || $runtime != vm ]
-Language/Classes/Getters/type_object_t01: Fail # co19 issue 115
-Language/Classes/Getters/type_object_t02: Fail # co19 issue 115
-Language/Classes/Setters/type_object_t01: Fail # co19 issue 115
-Language/Classes/Setters/type_object_t02: Fail # co19 issue 115
-Language/Classes/Static_Methods/type_object_t01: Fail # co19 issue 115
-Language/Classes/Static_Methods/type_object_t02: Fail # co19 issue 115
-Language/Statements/Assert/syntax_t04: Pass, Fail # assert now has an optional second parameter.
-LibTest/typed_data/ByteData/buffer_A01_t01: Fail # co19 r736 bug - sent comment.
-LibTest/core/RegExp/firstMatch_A01_t01: Fail # co19 issue 742
-
-LibTest/async/Zone/bindBinaryCallback_A01_t02: Fail # co19 issue 126
-LibTest/async/Zone/bindCallback_A01_t02: Fail # co19 issue 126
-LibTest/async/Zone/bindUnaryCallback_A01_t02: Fail # co19 issue 126
-
 # Tests that fail on every runtime, but not on the analyzer.
 [ $compiler != dart2analyzer ]
 Language/Classes/same_name_type_variable_t04: Pass, MissingCompileTimeError, Fail # Issue 14513,25525
@@ -63,16 +45,32 @@
 LibTest/isolate/ReceivePort/receive_A01_t03: Fail # Co19 issue 639
 LibTest/isolate/ReceivePort/sendPort_A01_t01: Fail # Co19 issue 639
 LibTest/isolate/SendPort/call_A01_t01: Fail # Co19 issue 639
-LibTest/isolate/SendPort/send_A02_t02: SKIP # co19 issue 493 (not fixed in r672)
-LibTest/isolate/SendPort/send_A02_t03: SKIP # co19 issue 495 (not fixed in r672)
+LibTest/isolate/SendPort/send_A02_t02: Skip # co19 issue 493 (not fixed in r672)
+LibTest/isolate/SendPort/send_A02_t03: Skip # co19 issue 495 (not fixed in r672)
 LibTest/isolate/SendPort/send_A02_t04: Fail # Co19 issue 639
 LibTest/isolate/SendPort/send_A02_t05: Fail # Co19 issue 639
 LibTest/isolate/SendPort/send_A02_t06: Fail # Co19 issue 639
 LibTest/isolate/SendPort/send_A03_t01: Fail # Co19 issue 639
 LibTest/isolate/SendPort/send_A03_t02: Fail # Co19 issue 639
-LibTest/math/acos_A01_t01: PASS, FAIL, OK  # Issue 26261
-LibTest/math/asin_A01_t01: PASS, FAIL, OK  # Issue 26261
-LibTest/math/atan_A01_t01: PASS, FAIL, OK  # Issue 26261
-LibTest/math/cos_A01_t01: PASS, FAIL, OK  # Issue 26261
-LibTest/math/tan_A01_t01: PASS, FAIL, OK  # Issue 26261
-LibTest/math/log_A01_t01: PASS, FAIL, OK  # Issue 26261
+LibTest/math/acos_A01_t01: Pass, Fail, OK # Issue 26261
+LibTest/math/asin_A01_t01: Pass, Fail, OK # Issue 26261
+LibTest/math/atan_A01_t01: Pass, Fail, OK # Issue 26261
+LibTest/math/cos_A01_t01: Pass, Fail, OK # Issue 26261
+LibTest/math/log_A01_t01: Pass, Fail, OK # Issue 26261
+LibTest/math/tan_A01_t01: Pass, Fail, OK # Issue 26261
+
+# Tests that fail everywhere, including the analyzer.
+[ $runtime == vm || $runtime != vm ]
+Language/Classes/Getters/type_object_t01: Fail # co19 issue 115
+Language/Classes/Getters/type_object_t02: Fail # co19 issue 115
+Language/Classes/Setters/type_object_t01: Fail # co19 issue 115
+Language/Classes/Setters/type_object_t02: Fail # co19 issue 115
+Language/Classes/Static_Methods/type_object_t01: Fail # co19 issue 115
+Language/Classes/Static_Methods/type_object_t02: Fail # co19 issue 115
+Language/Statements/Assert/syntax_t04: Pass, Fail # assert now has an optional second parameter.
+LibTest/async/Zone/bindBinaryCallback_A01_t02: Fail # co19 issue 126
+LibTest/async/Zone/bindCallback_A01_t02: Fail # co19 issue 126
+LibTest/async/Zone/bindUnaryCallback_A01_t02: Fail # co19 issue 126
+LibTest/core/RegExp/firstMatch_A01_t01: Fail # co19 issue 742
+LibTest/typed_data/ByteData/buffer_A01_t01: Fail # co19 r736 bug - sent comment.
+
diff --git a/tests/co19/co19-dart2js.status b/tests/co19/co19-dart2js.status
index fa19cf5..2dc6f9c 100644
--- a/tests/co19/co19-dart2js.status
+++ b/tests/co19/co19-dart2js.status
@@ -2,75 +2,19 @@
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
 
-[ $compiler == dart2js && $builder_tag != run_webgl_tests ]
-LayoutTests/fast/canvas/webgl*: Skip # Only run WebGL on special builders, issue 29961
-
 [ $compiler == dart2js ]
-Language/Classes/Constructors/Generative_Constructors/execution_t03: RuntimeError # https://github.com/dart-lang/sdk/issues/29596
-Language/Expressions/Function_Invocation/async_cleanup_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-Language/Expressions/Function_Invocation/async_cleanup_t03: Skip # https://github.com/dart-lang/sdk/issues/28873
-Language/Expressions/Function_Invocation/async_cleanup_t05: Skip # https://github.com/dart-lang/sdk/issues/28873
-Language/Expressions/Function_Invocation/async_cleanup_t06: Skip # https://github.com/dart-lang/sdk/issues/28873
-Language/Expressions/Function_Invocation/async_cleanup_t08: Skip # https://github.com/dart-lang/sdk/issues/28873
-Language/Expressions/Instance_Creation/New/execution_t04: RuntimeError # https://github.com/dart-lang/sdk/issues/29596
-Language/Expressions/Instance_Creation/New/execution_t06: RuntimeError # https://github.com/dart-lang/sdk/issues/29596
-Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t03: Skip # https://github.com/dart-lang/sdk/issues/28873
-Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t05: Skip # https://github.com/dart-lang/sdk/issues/28873
-Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t06: Skip # https://github.com/dart-lang/sdk/issues/28873
-Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t08: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/css/font-face-cache-bug_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/dom/HTMLLinkElement/link-onload-stylesheet-with-import_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/dom/mutation-event-remove-inserted-node_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/dom/shadow/event-path-not-in-document_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/dom/subtree-modified-attributes_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/files/file-reader-done-reading-abort_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/forms/search-popup-crasher_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/loader/stateobjects/replacestate-in-onunload_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/media/mq-parsing_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/mediastream/getusermedia_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/replaced/preferred-widths_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/replaced/table-percent-height_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/replaced/table-percent-width_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/table/css-table-max-height_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/table/hittest-tablecell-right-edge_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/table/hittest-tablecell-with-borders-right-edge_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/table/table-all-rowspans-height-distribution-in-rows-except-overlapped_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/table/table-colgroup-present-after-table-row_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/table/table-rowspan-height-distribution-in-rows_t02: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/table/table-size-integer-overflow_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/table/table-with-content-width-exceeding-max-width_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/text/find-case-folding_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/text/find-hidden-text_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/text/find-quotes_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/text/find-spaces_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/text/international/cjk-segmentation_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/text/zero-width-characters-complex-script_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/transforms/hit-test-large-scale_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/transforms/scrollIntoView-transformed_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/writing-mode/percentage-margins-absolute_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-abort_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t02: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/xpath/ambiguous-operators_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LibTest/async/Future/Future.delayed_A01_t02: Pass, Fail # Issue 15524
-LibTest/html/Element/addEventListener_A01_t04: Skip # https://github.com/dart-lang/sdk/issues/28873
-LibTest/html/IFrameElement/addEventListener_A01_t04: Skip # https://github.com/dart-lang/sdk/issues/28873
-LibTest/html/Window/postMessage_A01_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-WebPlatformTest/Utils/test/asyncTestFail_t02: Skip # https://github.com/dart-lang/sdk/issues/28873
-WebPlatformTest/dom/EventTarget/dispatchEvent_A02_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-WebPlatformTest/webstorage/event_local_storageeventinit_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-
 Language/Classes/Constructors/Generative_Constructors/execution_of_a_superinitializer_t01: RuntimeError # compiler cancelled: cannot resolve type T
 Language/Classes/Constructors/Generative_Constructors/execution_of_a_superinitializer_t01: RuntimeError, OK # co19 issue 258
-Language/Classes/Constructors/Generative_Constructors/execution_of_an_initializer_t02: fail # Issue 13363
-Language/Classes/Constructors/Generative_Constructors/initializing_formals_execution_t02: fail # Issue 13363
+Language/Classes/Constructors/Generative_Constructors/execution_of_an_initializer_t02: Fail # Issue 13363
+Language/Classes/Constructors/Generative_Constructors/execution_t03: RuntimeError # https://github.com/dart-lang/sdk/issues/29596
+Language/Classes/Constructors/Generative_Constructors/initializing_formals_execution_t02: Fail # Issue 13363
 Language/Classes/Getters/static_getter_t02: CompileTimeError # Should be fixed with unified frontend. Issue 24534
-Language/Classes/Instance_Methods/same_name_setter_t01: fail # Issue 21201
+Language/Classes/Instance_Methods/same_name_setter_t01: Fail # Issue 21201
 Language/Classes/Setters/name_t01: CompileTimeError # Issue 5023
 Language/Classes/Setters/name_t02: CompileTimeError # Issue 5023
 Language/Classes/Setters/name_t03: RuntimeError # Issue 5023
 Language/Classes/Setters/name_t07: CompileTimeError # Issue 5023
-Language/Classes/Setters/static_setter_t06: RuntimeError  # Should be fixed with unified frontend. Issue 23749
+Language/Classes/Setters/static_setter_t06: RuntimeError # Should be fixed with unified frontend. Issue 23749
 Language/Classes/Static_Methods/same_name_method_and_setter_t01: CompileTimeError # Should be fixed with unified frontend. Issue 23749
 Language/Classes/definition_t23: CompileTimeError # Please triage this failure
 Language/Classes/same_name_type_variable_t01: Fail # Missing CT error on class with same name a type parameter
@@ -90,19 +34,26 @@
 Language/Expressions/Await_Expressions/evaluation_throws_t07: RuntimeError # Please triage this failure
 Language/Expressions/Constants/identifier_denotes_a_constant_t06: MissingCompileTimeError # Issue 26580
 Language/Expressions/Constants/identifier_denotes_a_constant_t07: MissingCompileTimeError # Issue 26580
+Language/Expressions/Function_Invocation/async_cleanup_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+Language/Expressions/Function_Invocation/async_cleanup_t03: Skip # https://github.com/dart-lang/sdk/issues/28873
+Language/Expressions/Function_Invocation/async_cleanup_t05: Skip # https://github.com/dart-lang/sdk/issues/28873
+Language/Expressions/Function_Invocation/async_cleanup_t06: Skip # https://github.com/dart-lang/sdk/issues/28873
+Language/Expressions/Function_Invocation/async_cleanup_t08: Skip # https://github.com/dart-lang/sdk/issues/28873
 Language/Expressions/Function_Invocation/async_generator_invokation_t08: Skip # Issue 25967
 Language/Expressions/Function_Invocation/async_generator_invokation_t10: Skip # Issue 25967
 Language/Expressions/Function_Invocation/async_invokation_t04: RuntimeError, Pass # co19 issue 57
 Language/Expressions/Instance_Creation/New/evaluation_t19: RuntimeError # Please triage this failure
 Language/Expressions/Instance_Creation/New/evaluation_t20: RuntimeError # Please triage this failure
+Language/Expressions/Instance_Creation/New/execution_t04: RuntimeError # https://github.com/dart-lang/sdk/issues/29596
+Language/Expressions/Instance_Creation/New/execution_t06: RuntimeError # https://github.com/dart-lang/sdk/issues/29596
 Language/Expressions/Maps/key_value_equals_operator_t02: CompileTimeError # Please triage this failure
 Language/Expressions/Maps/static_type_dynamic_t01: CompileTimeError # Maybe ok. Issue 17207
 Language/Expressions/Method_Invocation/Ordinary_Invocation/object_method_invocation_t01: MissingCompileTimeError # Issue 25496
 Language/Expressions/Method_Invocation/Ordinary_Invocation/object_method_invocation_t02: MissingCompileTimeError # Issue 25496
-Language/Expressions/Numbers/syntax_t06: fail # Issue 21098
-Language/Expressions/Numbers/syntax_t09: fail # Issue 21098
-Language/Expressions/Object_Identity/Object_Identity/constant_objects_t01: fail # Issue 11551, also related to issue 563, 18738
-Language/Expressions/Object_Identity/Object_Identity/double_t02: fail # Issue 11551, also related to issue 563, 18738
+Language/Expressions/Numbers/syntax_t06: Fail # Issue 21098
+Language/Expressions/Numbers/syntax_t09: Fail # Issue 21098
+Language/Expressions/Object_Identity/Object_Identity/constant_objects_t01: Fail # Issue 11551, also related to issue 563, 18738
+Language/Expressions/Object_Identity/Object_Identity/double_t02: Fail # Issue 11551, also related to issue 563, 18738
 Language/Expressions/Object_Identity/constant_objects_t01: RuntimeError # Please triage this failure
 Language/Expressions/Object_Identity/double_t02: RuntimeError # Please triage this failure
 Language/Expressions/Object_Identity/double_t03: RuntimeError # Please triage this failure
@@ -157,6 +108,10 @@
 Language/Statements/Local_Function_Declaration/reference_before_declaration_t03: MissingCompileTimeError # Issue 21050
 Language/Statements/Try/catch_scope_t01: RuntimeError # Please triage this failure
 Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t02: RuntimeError # Please triage this failure
+Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t03: Skip # https://github.com/dart-lang/sdk/issues/28873
+Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t05: Skip # https://github.com/dart-lang/sdk/issues/28873
+Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t06: Skip # https://github.com/dart-lang/sdk/issues/28873
+Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t08: Skip # https://github.com/dart-lang/sdk/issues/28873
 Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_sync_t05: RuntimeError # Issue 25662,25634
 Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t01: MissingCompileTimeError # Issue 25495
 Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t03: MissingCompileTimeError # Issue 25495
@@ -164,13 +119,48 @@
 Language/Types/Dynamic_Type_System/deferred_type_error_t01: RuntimeError # Please triage this failure
 Language/Types/Interface_Types/subtype_t27: Skip # Times out or crashes. Issue 21174
 Language/Types/Interface_Types/subtype_t28: Pass, Fail, Crash # Stack overflow. Issue 25282
-Language/Types/Interface_Types/subtype_t30: fail # Issue 14654
+Language/Types/Interface_Types/subtype_t30: Fail # Issue 14654
 Language/Variables/final_t01/01: CompileTimeError # co19 issue 77
 Language/Variables/final_t02/01: CompileTimeError # co19 issue 77
 Language/Variables/local_variable_t01: MissingCompileTimeError # Issue 21050
+LayoutTests/fast/css/font-face-cache-bug_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/dom/HTMLLinkElement/link-onload-stylesheet-with-import_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
 LayoutTests/fast/dom/css-innerHTML_t01: SkipByDesign # Test is incorrect.
-LayoutTests/fast/loader/loadInProgress_t01: Skip # Issue 23466
+LayoutTests/fast/dom/mutation-event-remove-inserted-node_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/dom/shadow/event-path-not-in-document_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/dom/subtree-modified-attributes_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/files/file-reader-done-reading-abort_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
 LayoutTests/fast/forms/input-implicit-length-limit_t01: SkipByDesign # Test is not about Dart, but about a DOM-only webkit bug that has been fixed.
+LayoutTests/fast/forms/search-popup-crasher_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/loader/loadInProgress_t01: Skip # Issue 23466
+LayoutTests/fast/loader/stateobjects/replacestate-in-onunload_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/media/mq-parsing_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/mediastream/getusermedia_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/replaced/preferred-widths_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/replaced/table-percent-height_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/replaced/table-percent-width_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/table/css-table-max-height_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/table/hittest-tablecell-right-edge_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/table/hittest-tablecell-with-borders-right-edge_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/table/table-all-rowspans-height-distribution-in-rows-except-overlapped_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/table/table-colgroup-present-after-table-row_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/table/table-rowspan-height-distribution-in-rows_t02: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/table/table-size-integer-overflow_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/table/table-with-content-width-exceeding-max-width_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/text/find-case-folding_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/text/find-hidden-text_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/text/find-quotes_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/text/find-spaces_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/text/international/cjk-segmentation_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/text/zero-width-characters-complex-script_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/transforms/hit-test-large-scale_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/transforms/scrollIntoView-transformed_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/writing-mode/percentage-margins-absolute_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-abort_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t02: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/xpath/ambiguous-operators_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LibTest/async/Future/Future.delayed_A01_t02: Pass, Fail # Issue 15524
 LibTest/collection/LinkedHashSet/LinkedHashSet.from_A03_t01: RuntimeError # Please triage this failure.
 LibTest/collection/LinkedList/add_A01_t01: Pass, Slow # Slow tests that needs extra time to finish.
 LibTest/collection/ListBase/ListBase_class_A01_t01: RuntimeError # Please triage this failure
@@ -190,6 +180,7 @@
 LibTest/core/List/getRange_A03_t01: RuntimeError, OK # Tests that fail because they use the legacy try-catch syntax. co19 issue 184.
 LibTest/core/List/removeAt_A02_t01: RuntimeError # Issue 1533
 LibTest/core/List/sort_A01_t06: Slow, Pass # Slow tests that needs extra time to finish.
+LibTest/core/RegExp/Pattern_semantics/splitQueryString_A02_t01: Pass, RuntimeError # https://github.com/dart-lang/sdk/issues/29814
 LibTest/core/double/INFINITY_A01_t04: RuntimeError # Expected to fail because double.INFINITY is int.
 LibTest/core/double/NEGATIVE_INFINITY_A01_t04: RuntimeError # Expected to fail because double.NEGATIVE_INFINITY is int.
 LibTest/core/int/hashCode_A01_t01: RuntimeError, OK # co19 issue 308
@@ -205,9 +196,11 @@
 LibTest/core/int/operator_remainder_A01_t01: RuntimeError, OK # Requires bigints.
 LibTest/core/int/operator_right_shift_A01_t01: RuntimeError, OK # Expects negative result from bit-operation.
 LibTest/core/int/toDouble_A01_t01: RuntimeError, OK # co19 issue 200
-LibTest/core/RegExp/Pattern_semantics/splitQueryString_A02_t01: Pass,RuntimeError # https://github.com/dart-lang/sdk/issues/29814
+LibTest/html/Element/addEventListener_A01_t04: Skip # https://github.com/dart-lang/sdk/issues/28873
 LibTest/html/HttpRequest/responseType_A01_t03: CompileTimeError # co19-roll r706: Please triage this failure
+LibTest/html/IFrameElement/addEventListener_A01_t04: Skip # https://github.com/dart-lang/sdk/issues/28873
 LibTest/html/IFrameElement/enteredView_A01_t01: CompileTimeError # co19-roll r706: Please triage this failure
+LibTest/html/Window/postMessage_A01_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
 LibTest/isolate/Isolate/spawnUri_A01_t01: Fail # Dart issue 15974
 LibTest/isolate/Isolate/spawnUri_A01_t02: Fail # Dart issue 15974
 LibTest/isolate/Isolate/spawnUri_A01_t03: Fail # Dart issue 15974
@@ -224,62 +217,62 @@
 LibTest/isolate/SendPort/send_A01_t03: CompileTimeError # co19-roll r706: Please triage this failure
 LibTest/math/MutableRectangle/boundingBox_A01_t01: RuntimeError, Pass # co19-roll r706: Please triage this failure.
 LibTest/math/Rectangle/boundingBox_A01_t01: RuntimeError, Pass # co19-roll r706: Please triage this failure.
-LibTest/math/pow_A04_t01: fail # co19-roll r587: Please triage this failure
-LibTest/math/pow_A14_t01: fail # co19-roll r587: Please triage this failure
-LibTest/math/pow_A16_t01: fail # co19-roll r587: Please triage this failure
-LibTest/typed_data/ByteData/*Int64*: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/*Uint64*: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/ByteData.view_A01_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/ByteData.view_A03_t01: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/ByteData.view_A04_t01: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/ByteData.view_A05_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/ByteData.view_A05_t02: fail # Issue 12989
-LibTest/typed_data/ByteData/ByteData.view_A05_t03: fail # Issue 12989
-LibTest/typed_data/ByteData/ByteData_A01_t01: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/ByteData_A02_t01: fail # co19-roll r576: Please triage this failure
-LibTest/typed_data/ByteData/getFloat32_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/getFloat32_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/getFloat64_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/getFloat64_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/getInt16_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/getInt16_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/getInt32_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/getInt32_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/getInt64_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/getInt8_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/getInt8_A02_t02: fail # Issue 12989
-LibTest/typed_data/ByteData/getUint16_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/getUint16_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/getUint32_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/getUint32_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/getUint64_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/getUint8_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/getUint8_A02_t02: fail # Issue 12989
-LibTest/typed_data/ByteData/setFloat32_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/setFloat32_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/setFloat64_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/setFloat64_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/setInt16_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/setInt16_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/setInt32_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/setInt32_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/setInt64_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/setInt8_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/setInt8_A02_t02: fail # Issue 12989
-LibTest/typed_data/ByteData/setUint16_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/setUint16_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/setUint32_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/setUint32_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/setUint64_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/setUint8_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/setUint8_A02_t02: fail # Issue 12989
+LibTest/math/pow_A04_t01: Fail # co19-roll r587: Please triage this failure
+LibTest/math/pow_A14_t01: Fail # co19-roll r587: Please triage this failure
+LibTest/math/pow_A16_t01: Fail # co19-roll r587: Please triage this failure
+LibTest/typed_data/ByteData/*Int64*: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/*Uint64*: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/ByteData.view_A01_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/ByteData.view_A03_t01: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/ByteData.view_A04_t01: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/ByteData.view_A05_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/ByteData.view_A05_t02: Fail # Issue 12989
+LibTest/typed_data/ByteData/ByteData.view_A05_t03: Fail # Issue 12989
+LibTest/typed_data/ByteData/ByteData_A01_t01: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/ByteData_A02_t01: Fail # co19-roll r576: Please triage this failure
+LibTest/typed_data/ByteData/getFloat32_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/getFloat32_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/getFloat64_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/getFloat64_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/getInt16_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/getInt16_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/getInt32_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/getInt32_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/getInt64_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/getInt8_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/getInt8_A02_t02: Fail # Issue 12989
+LibTest/typed_data/ByteData/getUint16_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/getUint16_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/getUint32_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/getUint32_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/getUint64_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/getUint8_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/getUint8_A02_t02: Fail # Issue 12989
+LibTest/typed_data/ByteData/setFloat32_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/setFloat32_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/setFloat64_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/setFloat64_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/setInt16_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/setInt16_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/setInt32_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/setInt32_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/setInt64_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/setInt8_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/setInt8_A02_t02: Fail # Issue 12989
+LibTest/typed_data/ByteData/setUint16_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/setUint16_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/setUint32_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/setUint32_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/setUint64_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/setUint8_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/setUint8_A02_t02: Fail # Issue 12989
 LibTest/typed_data/Float32List/Float32List.view_A05_t01: RuntimeError # co19-roll r559: Please triage this failure
 LibTest/typed_data/Float32List/Float32List.view_A05_t02: RuntimeError # co19-roll r559: Please triage this failure
 LibTest/typed_data/Float32List/Float32List.view_A05_t03: RuntimeError # co19-roll r559: Please triage this failure
-LibTest/typed_data/Float32List/Float32List_A02_t01: fail # co19-roll r576: Please triage this failure
-LibTest/typed_data/Float32List/fold_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Float32List/join_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Float32List/join_A01_t02: fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Float32List/Float32List_A02_t01: Fail # co19-roll r576: Please triage this failure
+LibTest/typed_data/Float32List/fold_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Float32List/join_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Float32List/join_A01_t02: Fail # co19-roll r559: Please triage this failure
 LibTest/typed_data/Float32x4/equal_A01_t01: Skip # co19 issue 656
 LibTest/typed_data/Float32x4/greaterThanOrEqual_A01_t01: Skip # co19 issue 656
 LibTest/typed_data/Float32x4/greaterThan_A01_t01: Skip # co19 issue 656
@@ -289,539 +282,76 @@
 LibTest/typed_data/Float32x4List/Float32x4List.view_A05_t01: RuntimeError # co19-roll r559: Please triage this failure
 LibTest/typed_data/Float32x4List/Float32x4List.view_A05_t02: RuntimeError # co19-roll r559: Please triage this failure
 LibTest/typed_data/Float32x4List/Float32x4List.view_A05_t03: RuntimeError # co19-roll r559: Please triage this failure
-LibTest/typed_data/Float32x4List/Float32x4List_A02_t01: fail # co19-roll r576: Please triage this failure
-LibTest/typed_data/Float32x4List/fold_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Float32x4List/join_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Float32x4List/join_A01_t02: fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Float32x4List/Float32x4List_A02_t01: Fail # co19-roll r576: Please triage this failure
+LibTest/typed_data/Float32x4List/fold_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Float32x4List/join_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Float32x4List/join_A01_t02: Fail # co19-roll r559: Please triage this failure
 LibTest/typed_data/Float64List/Float64List.view_A05_t01: RuntimeError # co19-roll r559: Please triage this failure
 LibTest/typed_data/Float64List/Float64List.view_A05_t02: RuntimeError # co19-roll r559: Please triage this failure
 LibTest/typed_data/Float64List/Float64List.view_A05_t03: RuntimeError # co19-roll r559: Please triage this failure
-LibTest/typed_data/Float64List/Float64List_A02_t01: fail # co19-roll r576: Please triage this failure
-LibTest/typed_data/Float64List/fold_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Float64List/join_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Float64List/join_A01_t02: fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Float64List/Float64List_A02_t01: Fail # co19-roll r576: Please triage this failure
+LibTest/typed_data/Float64List/fold_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Float64List/join_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Float64List/join_A01_t02: Fail # co19-roll r559: Please triage this failure
 LibTest/typed_data/Int16List/Int16List.view_A05_t01: RuntimeError # co19-roll r559: Please triage this failure
 LibTest/typed_data/Int16List/Int16List.view_A05_t02: RuntimeError # co19-roll r559: Please triage this failure
 LibTest/typed_data/Int16List/Int16List.view_A05_t03: RuntimeError # co19-roll r559: Please triage this failure
-LibTest/typed_data/Int16List/Int16List_A02_t01: fail # co19-roll r576: Please triage this failure
+LibTest/typed_data/Int16List/Int16List_A02_t01: Fail # co19-roll r576: Please triage this failure
 LibTest/typed_data/Int32List/Int32List.view_A05_t01: RuntimeError # co19-roll r559: Please triage this failure
 LibTest/typed_data/Int32List/Int32List.view_A05_t02: RuntimeError # co19-roll r559: Please triage this failure
 LibTest/typed_data/Int32List/Int32List.view_A05_t03: RuntimeError # co19-roll r559: Please triage this failure
-LibTest/typed_data/Int32List/Int32List_A02_t01: fail # co19-roll r576: Please triage this failure
+LibTest/typed_data/Int32List/Int32List_A02_t01: Fail # co19-roll r576: Please triage this failure
 LibTest/typed_data/Int64List/*: Fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Int64List/Int64List_A02_t01: pass # co19-roll r559: Please triage this failure
+LibTest/typed_data/Int64List/Int64List_A02_t01: Pass # co19-roll r559: Please triage this failure
 LibTest/typed_data/Int8List/Int8List.view_A05_t01: RuntimeError # co19-roll r559: Please triage this failure
 LibTest/typed_data/Int8List/Int8List.view_A05_t02: RuntimeError # co19-roll r559: Please triage this failure
 LibTest/typed_data/Int8List/Int8List.view_A05_t03: RuntimeError # co19-roll r559: Please triage this failure
-LibTest/typed_data/Int8List/Int8List_A02_t01: fail # co19-roll r576: Please triage this failure
+LibTest/typed_data/Int8List/Int8List_A02_t01: Fail # co19-roll r576: Please triage this failure
 LibTest/typed_data/Uint16List/Uint16List.view_A05_t01: RuntimeError # co19-roll r559: Please triage this failure
 LibTest/typed_data/Uint16List/Uint16List.view_A05_t02: RuntimeError # co19-roll r559: Please triage this failure
 LibTest/typed_data/Uint16List/Uint16List.view_A05_t03: RuntimeError # co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint16List/Uint16List_A02_t01: fail # co19-roll r576: Please triage this failure
+LibTest/typed_data/Uint16List/Uint16List_A02_t01: Fail # co19-roll r576: Please triage this failure
 LibTest/typed_data/Uint32List/Uint32List.view_A05_t01: RuntimeError # co19-roll r559: Please triage this failure
 LibTest/typed_data/Uint32List/Uint32List.view_A05_t02: RuntimeError # co19-roll r559: Please triage this failure
 LibTest/typed_data/Uint32List/Uint32List.view_A05_t03: RuntimeError # co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint32List/Uint32List_A02_t01: fail # co19-roll r576: Please triage this failure
+LibTest/typed_data/Uint32List/Uint32List_A02_t01: Fail # co19-roll r576: Please triage this failure
 LibTest/typed_data/Uint64List/*: Fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint64List/Uint64List_A02_t01: pass # co19-roll r559: Please triage this failure
+LibTest/typed_data/Uint64List/Uint64List_A02_t01: Pass # co19-roll r559: Please triage this failure
 LibTest/typed_data/Uint8ClampedList/Uint8ClampedList.view_A05_t01: RuntimeError # co19-roll r559: Please triage this failure
 LibTest/typed_data/Uint8ClampedList/Uint8ClampedList.view_A05_t02: RuntimeError # co19-roll r559: Please triage this failure
 LibTest/typed_data/Uint8ClampedList/Uint8ClampedList.view_A05_t03: RuntimeError # co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint8ClampedList/Uint8ClampedList_A02_t01: Pass, fail # co19-roll r576: Passes on ie10. Please triage this failure
+LibTest/typed_data/Uint8ClampedList/Uint8ClampedList_A02_t01: Pass, Fail # co19-roll r576: Passes on ie10. Please triage this failure
 LibTest/typed_data/Uint8List/Uint8List.view_A05_t01: RuntimeError # co19-roll r559: Please triage this failure
 LibTest/typed_data/Uint8List/Uint8List.view_A05_t02: RuntimeError # co19-roll r559: Please triage this failure
 LibTest/typed_data/Uint8List/Uint8List.view_A05_t03: RuntimeError # co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint8List/Uint8List_A02_t01: fail # co19-roll r576: Please triage this failure
-Utils/tests/Expect/identical_A01_t01: fail # co19-roll r546: Please triage this failure
+LibTest/typed_data/Uint8List/Uint8List_A02_t01: Fail # co19-roll r576: Please triage this failure
+Utils/tests/Expect/identical_A01_t01: Fail # co19-roll r546: Please triage this failure
+WebPlatformTest/Utils/test/asyncTestFail_t02: Skip # https://github.com/dart-lang/sdk/issues/28873
 WebPlatformTest/Utils/test/testFail_t01: RuntimeError # co19-roll r722: Please triage this failure.
+WebPlatformTest/dom/EventTarget/dispatchEvent_A02_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
 WebPlatformTest/dom/nodes/DOMImplementation-createHTMLDocument_t01: CompileTimeError # co19-roll r722: Please triage this failure.
 WebPlatformTest/dom/nodes/Document-createElement_t01: CompileTimeError # co19-roll r722: Please triage this failure.
 WebPlatformTest/dom/nodes/Element-childElementCount-nochild_t01: CompileTimeError # co19-roll r722: Please triage this failure.
-WebPlatformTest/webstorage/storage_session_setitem_quotaexceedederr_t01: Skip # Times out. Please triage this failure
+WebPlatformTest/webstorage/event_local_storageeventinit_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
 WebPlatformTest/webstorage/storage_local_setitem_quotaexceedederr_t01: Skip # Times out. Please triage this failure.
+WebPlatformTest/webstorage/storage_session_setitem_quotaexceedederr_t01: Skip # Times out. Please triage this failure
 
-[ $compiler == dart2js && $checked ]
-Language/Errors_and_Warnings/static_warning_t02: RuntimeError # Please triage this failure
-Language/Errors_and_Warnings/static_warning_t03: RuntimeError # Please triage this failure
-Language/Errors_and_Warnings/static_warning_t04: RuntimeError # Please triage this failure
-Language/Errors_and_Warnings/static_warning_t05: RuntimeError # Please triage this failure
-Language/Errors_and_Warnings/static_warning_t06: RuntimeError # Please triage this failure
-Language/Expressions/Assignment/Compound_Assignment/null_aware_static_warning_super_t01/01: Fail # Please triage this failure
-Language/Expressions/Assignment/Compound_Assignment/null_aware_static_warning_variable_t01/01: Fail # Please triage this failure
-Language/Expressions/Assignment/super_assignment_static_warning_t04/01: Fail # Please triage this failure
-Language/Expressions/Assignment/super_assignment_dynamic_error_t01: RuntimeError # Please triage this failure
-Language/Expressions/Function_Expressions/static_type_dynamic_async_t03: RuntimeError # Please triage this failure
-Language/Expressions/Function_Expressions/static_type_dynamic_asyncs_t03: RuntimeError # Please triage this failure
-Language/Expressions/Function_Expressions/static_type_dynamic_syncs_t03: RuntimeError # Please triage this failure
-Language/Expressions/Function_Expressions/static_type_form_3_async_t03: RuntimeError # Please triage this failure
-Language/Expressions/Function_Expressions/static_type_form_3_asyncs_t03: RuntimeError # Please triage this failure
-Language/Expressions/Function_Expressions/static_type_form_3_syncs_t03: RuntimeError # Please triage this failure
-Language/Expressions/If_null_Expressions/static_type_t01: RuntimeError # Please triage this failure
-Language/Expressions/If_null_Expressions/static_type_t02: RuntimeError # Please triage this failure
-Language/Functions/async_return_type_t01: RuntimeError # Please triage this failure
-Language/Functions/generator_return_type_t01: RuntimeError # Please triage this failure
-Language/Functions/generator_return_type_t02: RuntimeError # Please triage this failure
-Language/Statements/Assert/execution_t03: RuntimeError # Please triage this failure
-Language/Statements/Assert/execution_t11: RuntimeError # Please triage this failure
-Language/Statements/Switch/execution_t01: Fail # Missing type check in switch expression
-Language/Statements/Switch/type_t01: RuntimeError # Issue 16089
-Language/Statements/Return/runtime_type_t04: RuntimeError # Issue 26584
-Language/Types/Static_Types/malformed_type_t01: RuntimeError # Issue 21089
-Language/Types/Dynamic_Type_System/malbounded_type_error_t01: RuntimeError # Issue 21088
-Language/Types/Parameterized_Types/malbounded_t06: RuntimeError # Issue 21088
-LibTest/collection/DoubleLinkedQueue/DoubleLinkedQueue_class_A01_t01: Skip # Timesout. Please triage this failure.
-LibTest/core/Map/Map_class_A01_t04: Slow, Pass # Please triage this failure
-LibTest/core/Uri/Uri_A06_t03: Slow, Pass # Please triage this failure
-LibTest/math/Point/operator_mult_A02_t01: RuntimeError # Issue 1533
+[ $builder_tag != run_webgl_tests && $compiler == dart2js ]
+LayoutTests/fast/canvas/webgl*: Skip # Only run WebGL on special builders, issue 29961
 
-[ $compiler == dart2js && ! $checked && $enable_asserts ]
-Language/Statements/Assert/execution_t01: SkipByDesign # Unspec'd feature.
-Language/Statements/Assert/execution_t02: SkipByDesign # Unspec'd feature.
-Language/Statements/Assert/execution_t03: SkipByDesign # Unspec'd feature.
-Language/Statements/Assert/execution_t04: SkipByDesign # Unspec'd feature.
-Language/Statements/Assert/execution_t05: SkipByDesign # Unspec'd feature.
-Language/Statements/Assert/execution_t06: SkipByDesign # Unspec'd feature.
-Language/Statements/Assert/execution_t11: SkipByDesign # Unspec'd feature.
-Language/Statements/Assert/production_mode_t01: SkipByDesign # Unspec'd feature.
-Language/Statements/Assert/type_t02: SkipByDesign # Unspec'd feature.
-Language/Statements/Assert/type_t03: SkipByDesign # Unspec'd feature.
-Language/Statements/Assert/type_t04: SkipByDesign # Unspec'd feature.
-Language/Statements/Assert/type_t05: SkipByDesign # Unspec'd feature.
-Language/Statements/Assert/type_t06: SkipByDesign # Unspec'd feature.
+[ $builder_tag == win7 && $compiler == dart2js && $runtime == ie11 ]
+LayoutTests/fast/files/file-reader-result-twice_t01: Pass, RuntimeError # Issue 31430
 
-[ $compiler == dart2js && $checked && $runtime != d8]
-LayoutTests/fast/canvas/webgl/framebuffer-object-attachment_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/read-pixels-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/empty-inline-before-collapsed-space_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/trivial_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/trivial-segments_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/writing-mode/auto-sizing-orthogonal-flows_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-body-context_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-context_t01: RuntimeError # Please triage this failure
-
-[ $compiler == dart2js && $checked && $runtime != drt && $runtime != d8]
-WebPlatformTest/custom-elements/instantiating/createElement_A04_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElementNS_A04_t01: RuntimeError # Please triage this failure
-
-[ $compiler == dart2js && $fast_startup ]
-Language/Classes/Instance_Methods/Operators/unary_minus: Fail # mirrors not supported
-Language/Expressions/Null/instance_of_class_null_t01: Fail # mirrors not supported
-Language/Metadata/before_class_t01: Fail # mirrors not supported
-Language/Metadata/before_ctor_t01: Fail # mirrors not supported
-Language/Metadata/before_ctor_t02: Fail # mirrors not supported
-Language/Metadata/before_export_t01: Fail # mirrors not supported
-Language/Metadata/before_factory_t01: Fail # mirrors not supported
-Language/Metadata/before_function_t01: Fail # mirrors not supported
-Language/Metadata/before_function_t02: Fail # mirrors not supported
-Language/Metadata/before_function_t03: Fail # mirrors not supported
-Language/Metadata/before_function_t04: Fail # mirrors not supported
-Language/Metadata/before_function_t05: Fail # mirrors not supported
-Language/Metadata/before_function_t06: Fail # mirrors not supported
-Language/Metadata/before_function_t07: Fail # mirrors not supported
-Language/Metadata/before_import_t01: Fail # mirrors not supported
-Language/Metadata/before_library_t01: Fail # mirrors not supported
-Language/Metadata/before_param_t01: Fail # mirrors not supported
-Language/Metadata/before_param_t02: Fail # mirrors not supported
-Language/Metadata/before_param_t03: Fail # mirrors not supported
-Language/Metadata/before_param_t04: Fail # mirrors not supported
-Language/Metadata/before_param_t05: Fail # mirrors not supported
-Language/Metadata/before_param_t06: Fail # mirrors not supported
-Language/Metadata/before_param_t07: Fail # mirrors not supported
-Language/Metadata/before_param_t08: Fail # mirrors not supported
-Language/Metadata/before_param_t09: Fail # mirrors not supported
-Language/Metadata/before_type_param_t01: Fail # mirrors not supported
-Language/Metadata/before_typedef_t01: Fail # mirrors not supported
-Language/Metadata/before_variable_t01: Fail # mirrors not supported
-Language/Metadata/before_variable_t02: Fail # mirrors not supported
-Language/Metadata/compilation_t01: Pass # mirrors not supported, fails for the wrong reason
-Language/Metadata/compilation_t02: Pass # mirrors not supported, fails for the wrong reason
-Language/Metadata/compilation_t03: Pass # mirrors not supported, fails for the wrong reason
-Language/Metadata/compilation_t04: Pass # mirrors not supported, fails for the wrong reason
-Language/Metadata/compilation_t05: Pass # mirrors not supported, fails for the wrong reason
-Language/Metadata/compilation_t06: Pass # mirrors not supported, fails for the wrong reason
-Language/Metadata/compilation_t07: Pass # mirrors not supported, fails for the wrong reason
-Language/Metadata/compilation_t08: Pass # mirrors not supported, fails for the wrong reason
-Language/Metadata/compilation_t09: Pass # mirrors not supported, fails for the wrong reason
-Language/Metadata/compilation_t10: Pass # mirrors not supported, fails for the wrong reason
-Language/Metadata/compilation_t11: Pass # mirrors not supported, fails for the wrong reason
-WebPlatformTest/shadow-dom/testcommon: Fail # mirrors not supported
-
-[ $compiler == dart2js && $runtime == jsshell ]
-LibTest/isolate/Isolate/spawn_A04_t04: Fail # Issue 27558
-
-[ $compiler == dart2js && $fast_startup && $runtime == d8]
-LibTest/isolate/Isolate/spawn_A04_t04: Fail # Issue 27558
-
-[ $compiler == dart2js && $fast_startup && $runtime == jsshell ]
-LibTest/isolate/ReceivePort/asBroadcastStream_A03_t01: Fail # please triage
-
-[ $compiler == dart2js && $fast_startup && $browser ]
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-001_t01: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t02: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/elements-001_t01: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t02: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-006_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t02: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-005_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/event-dispatch/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/event-dispatch/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/event-dispatch/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/event-retargeting/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/event-retargeting/test-002_t01: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/events/event-retargeting/test-004_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/custom-pseudo-elements/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-004_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-009_t01: Fail # please triage
-
-[ $compiler == dart2js && $fast_startup && $browser && $runtime != chrome && $runtime != drt]
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-005_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-event-interface/event-path-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-007_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-008_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-009_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-010_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-011_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-012_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-013_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-001_t01: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-007_t01: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-010_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-005_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-004_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/event-retargeting/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t03: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t04: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-001_t01: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/inert-html-elements/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/composition/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/distribution-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-005_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/nested-shadow-trees/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/rendering-shadow-trees/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/reprojection/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-004_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-005_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-006_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-017_t01: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/shadow-root-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-011_t01: Fail # please triage
-
-[ $compiler == dart2js && $fast_startup && $browser && $runtime != chrome ]
-WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-003_t01: Fail # please triage
-
-[ $compiler == dart2js && $fast_startup && $browser && $runtime != drt ]
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-004_t01: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-004_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-005_t01: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-006_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-007_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-008_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-009_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t02: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t05: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t06: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-005_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-007_t01: Fail # please triage
-
-[ $compiler == dart2js && ! $checked && $runtime != d8 && $runtime != jsshell]
-LayoutTests/fast/xpath/invalid-resolver_t01: RuntimeError # Please triage this failure
-
-[ $compiler == dart2js && $minified ]
-LibTest/typed_data/Float32List/runtimeType_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Float32x4List/runtimeType_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Float64List/runtimeType_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Int16List/runtimeType_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Int32List/runtimeType_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Int8List/runtimeType_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint16List/runtimeType_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint32List/runtimeType_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint8ClampedList/runtimeType_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint8List/runtimeType_A01_t01: fail # co19-roll r559: Please triage this failure
+[ $builder_tag == win8 && $compiler == dart2js && $runtime == ie11 ]
+LayoutTests/fast/dom/XMLSerializer-attribute-entities_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/serialize-attribute_t01: RuntimeError # Please triage this failure
+LibTest/typed_data/ByteData/offsetInBytes_A01_t01: RuntimeError # Please triage this failure
 
 [ $compiler == dart2js && $mode == debug ]
 LibTest/collection/ListBase/ListBase_class_A01_t01: Skip
 LibTest/collection/ListMixin/ListMixin_class_A01_t01: Skip
 LibTest/core/List/List_class_A01_t01: Skip
 
-[ $compiler == dart2js && $runtime == jsshell ]
-Language/Expressions/Await_Expressions/execution_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Expressions/Await_Expressions/execution_t02: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Expressions/Await_Expressions/execution_t03: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Expressions/Await_Expressions/execution_t04: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Expressions/Await_Expressions/execution_t05: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Expressions/Await_Expressions/execution_t06: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Statements/For/Asynchronous_For_in/execution_t04: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t04: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t02: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t03: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t04: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t05: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t06: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t07: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t08: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t09: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t10: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/async/Future/Future.delayed_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/async/Future/Future.delayed_A03_t01: fail # Issue 7728, timer not supported in jsshell
-LibTest/async/Future/doWhile_A05_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
-LibTest/async/Future/forEach_A04_t02: RuntimeError # Please triage. May be unsupported timer issue 7728.
-LibTest/async/Future/timeout_A01_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
-LibTest/async/Future/wait_A01_t07: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/async/Stream/Stream.periodic_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/async/Stream/Stream.periodic_A02_t01: fail # Issue 7728, timer not supported in jsshell
-LibTest/async/Stream/Stream.periodic_A03_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/async/Stream/asBroadcastStream_A03_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/async/Stream/asBroadcastStream_A04_t03: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/async/Stream/first_A01_t01: fail # co19-roll r546: Please triage this failure
-LibTest/async/Stream/first_A02_t02: fail # co19-roll r546: Please triage this failure
-LibTest/async/Stream/timeout_A01_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
-LibTest/async/Stream/timeout_A02_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
-LibTest/async/Stream/timeout_A03_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
-LibTest/async/Stream/timeout_A04_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
-LibTest/async/Timer/Timer.periodic_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/async/Timer/Timer.periodic_A02_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/async/Timer/Timer_A01_t01: fail # Issue 7728, timer not supported in jsshell
-LibTest/async/Timer/cancel_A01_t01: fail # Issue 7728, timer not supported in jsshell
-LibTest/async/Timer/isActive_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/async/Timer/isActive_A01_t02: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/async/Zone/createPeriodicTimer_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/async/Zone/createTimer_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/core/List/sort_A01_t04: Skip # Must be a bug in jsshell, test sometimes times out.
-LibTest/core/Map/Map_class_A01_t04: Pass, Slow # Issue 8096
-LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: Fail # co19-roll r706: Please triage this failure.
-LibTest/core/Stopwatch/elapsedInMs_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/core/Stopwatch/elapsedInUs_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/core/Stopwatch/elapsedTicks_A01_t01: RuntimeError # Please triage this failure
-LibTest/core/Stopwatch/elapsedTicks_A01_t02: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/core/Stopwatch/elapsedTicks_A01_t03: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/core/Stopwatch/elapsed_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/core/Stopwatch/elapsed_A01_t02: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/core/Stopwatch/elapsed_A01_t03: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/core/Stopwatch/start_A01_t01: RuntimeError # Please triage this failure
-LibTest/core/Stopwatch/start_A01_t02: RuntimeError # Please triage this failure
-LibTest/core/Stopwatch/start_A01_t03: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/core/Stopwatch/stop_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/core/Uri/Uri_A06_t03: Pass, Slow
-LibTest/isolate/Isolate/spawn_A03_t01: RuntimeError # Please triage this failure
-LibTest/isolate/Isolate/spawn_A03_t03: RuntimeError # Please triage this failure
-LibTest/isolate/Isolate/spawn_A03_t04: RuntimeError # Please triage this failure
-LibTest/isolate/Isolate/spawn_A04_t02: RuntimeError # Please triage this failure
-LibTest/isolate/Isolate/spawn_A04_t03: Fail # Please triage this failure
-LibTest/isolate/Isolate/spawn_A04_t05: Fail # Please triage this failure
-LibTest/isolate/Isolate/spawn_A06_t02: Fail # Please triage this failure
-LibTest/isolate/Isolate/spawn_A06_t03: Fail # Please triage this failure
-LibTest/isolate/Isolate/spawn_A06_t04: RuntimeError # Please triage this failure
-LibTest/isolate/Isolate/spawn_A06_t05: RuntimeError # Please triage this failure
-LibTest/isolate/Isolate/spawn_A06_t07: Fail # Please triage this failure
-LibTest/isolate/RawReceivePort/close_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/isolate/ReceivePort/asBroadcastStream_A03_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/isolate/ReceivePort/asBroadcastStream_A04_t03: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/isolate/ReceivePort/close_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/typed_data/Float32List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
-LibTest/typed_data/Float32x4List/Float32x4List.view_A06_t01: fail # co19-roll r587: Please triage this failure
-LibTest/typed_data/Float64List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
-LibTest/typed_data/Int16List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
-LibTest/typed_data/Int16List/toList_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Int32List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
-LibTest/typed_data/Int32List/toList_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Int32x4/operator_OR_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/typed_data/Int8List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint16List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint16List/toList_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint32List/toList_A01_t01: Skip # issue 16934, co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint8ClampedList/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint8List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
-
-[ $compiler == dart2js && $checked && $runtime == jsshell]
-LibTest/core/Map/Map_class_A01_t04: Skip # Issue 18093, timeout.
-LibTest/core/Uri/Uri_A06_t03: Skip # Issue 18093, timeout.
-LibTest/core/Uri/encodeQueryComponent_A01_t02: Skip # Issue 18093, timeout.
-
-[ $compiler == dart2js && $jscl ]
-LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: Fail, Pass # issue 3333
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError, OK # This is not rejected by V8. Issue 22200
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError # Issue 22200
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError # Issue 22200
-LibTest/core/int/compareTo_A01_t01: RuntimeError, OK # Requires big int.
-LibTest/core/int/hashCode_A01_t01: RuntimeError, OK # co19 testing missing assertion.
-LibTest/core/int/isEven_A01_t01: RuntimeError, OK # Not in API.
-LibTest/core/int/isOdd_A01_t01: RuntimeError, OK # Not in API.
-LibTest/core/int/operator_left_shift_A01_t01: RuntimeError, OK # Requires big int.
-LibTest/core/int/operator_remainder_A01_t03: RuntimeError, OK # Leg only has double.
-LibTest/core/int/operator_truncating_division_A01_t02: RuntimeError, OK # Leg only has double.
-LibTest/core/int/remainder_A01_t01: RuntimeError, OK # Requires big int.
-LibTest/core/int/remainder_A01_t03: RuntimeError, OK # Leg only has double.
-LibTest/core/int/toDouble_A01_t01: RuntimeError, OK # Requires big int.
-LibTest/core/int/toRadixString_A01_t01: RuntimeError, OK # Bad test: uses Expect.fail, Expect.throws, assumes case of result, and uses unsupported radixes.
-
-[ $compiler == dart2js && $runtime == d8 ]
-LibTest/isolate/Isolate/spawn_A03_t01: Pass # co19 issue 77
-LibTest/isolate/Isolate/spawn_A04_t02: RuntimeError # Please triage this failure.
-LibTest/typed_data/Float32x4List/Float32x4List.view_A06_t01: fail # co19-roll r587: Please triage this failure
-LibTest/typed_data/Int32x4/operator_OR_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-
-
-[ $compiler == dart2js && $runtime == d8 && $system == windows ]
-LibTest/async/DeferredLibrary/*: Skip # Issue 17458
-
-[ $compiler == dart2js && $browser ]
-LayoutTests/fast/mediastream/getusermedia_t01: Skip # Please triage this failure.
-LayoutTests/fast/css-generated-content/bug91547_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/filesystem/file-after-reload-crash_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/dom/HTMLButtonElement/change-type_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/dom/StyleSheet/discarded-sheet-owner-null_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/dom/css-cached-import-rule_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/dom/cssTarget-crash_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/dom/empty-hash-and-search_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/dom/shadow/form-in-shadow_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/forms/date/date-interactive-validation-required_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/forms/datetimelocal/datetimelocal-interactive-validation-required_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/forms/form-submission-create-crash_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/forms/formmethod-attribute-button-html_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/forms/formmethod-attribute-input-html_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/forms/formmethod-attribute-input-2_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/forms/missing-action_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/forms/submit-form-with-dirname-attribute_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/forms/submit-form-with-dirname-attribute-with-ancestor-dir-attribute_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/forms/submit-form-with-dirname-attribute-with-nonhtml-ancestor_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/forms/submit-nil-value-field-assert_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/forms/textarea-submit-crash_t01: Skip # Test reloads itself. Issue 18558.
-LibTest/html/IFrameElement/appendHtml_A01_t01: Pass, RuntimeError # Issue 23462
-LibTest/html/IFrameElement/appendHtml_A01_t02: Pass, RuntimeError # Issue 23462
-
-LayoutTests/fast/dynamic/insertAdjacentHTML_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/multicol/balance-unbreakable_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/multicol/newmulticol/balance_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/multicol/newmulticol/balance-maxheight_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/multicol/newmulticol/balance_t02: Pass, RuntimeError # Issue 747
-LayoutTests/fast/multicol/newmulticol/balance_t04: Pass, RuntimeError # Issue 747
-LayoutTests/fast/multicol/newmulticol/balance_t05: Pass, RuntimeError # Issue 747
-LayoutTests/fast/multicol/newmulticol/balance_t06: Pass, RuntimeError # Issue 747
-LayoutTests/fast/multicol/newmulticol/balance_t07: Pass, RuntimeError # Issue 747
-LayoutTests/fast/multicol/newmulticol/balance_t08: Pass, RuntimeError # Issue 747
-LayoutTests/fast/multicol/newmulticol/balance_t09: Pass, RuntimeError # Issue 747
-LayoutTests/fast/multicol/newmulticol/balance_t10: Pass, RuntimeError  # Issue 747, I don't understand how, but sometimes passes.
-LayoutTests/fast/multicol/newmulticol/balance-images_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/multicol/column-width-zero_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/multicol/widows_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/multicol/orphans-relayout_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/media/mq-parsing_t01: Pass, RuntimeError  # Issue 747, False passes on Firefox, but trying to keep these grouped with the issue.
-LayoutTests/fast/mediastream/RTCPeerConnection-AddRemoveStream_t01: Skip # Passes on Safari, Issue 23475
-LayoutTests/fast/overflow/replaced-child-100percent-height-inside-fixed-container-with-overflow-auto_t01: Pass, RuntimeError # Issue 747, False pass on Safari
-LayoutTests/fast/lists/list-style-position-inside_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/overflow/overflow-rtl-vertical-origin_t01: Pass, RuntimeError # Issue 747, False passes on Firefox, but trying to keep these grouped with the issue.
-LayoutTests/fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor_t01: Pass # Issue 747, False pass
-LayoutTests/fast/table/col-width-span-expand_t01: Skip # Issue 747
-LayoutTests/fast/text/font-fallback-synthetic-italics_t01: Pass, RuntimeError  # Issue 747
-LayoutTests/fast/text/glyph-reordering_t01: Pass, RuntimeError # Issue 747, This is a false pass. The font gets sanitized, so whether it works or not probably depends on default sizes.
-LayoutTests/fast/text/international/rtl-text-wrapping_t01: Pass # Issue 747, This is a false pass. All the content gets sanitized, so there's nothing to assert fail on. If the code did anything it would fail.
-LayoutTests/fast/text/line-break-after-empty-inline-hebrew_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/text/regional-indicator-symobls_t01: Pass, Fail # Issue 747
-LayoutTests/fast/text/font-fallback-synthetic-italics_t01: RuntimeError # Issue 747
-LayoutTests/fast/text/font-ligatures-linebreak_t01: Skip # Issue 747
-LayoutTests/fast/text/font-ligatures-linebreak-word_t01: Skip # Issue 747
-LayoutTests/fast/text/ipa-tone-letters_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/writing-mode/percentage-margins-absolute-replaced_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/writing-mode/positionForPoint_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/text/font-ligatures-linebreak-word_t01: Skip # Issue 747
-LayoutTests/fast/html/adjacent-html-context-element_t01:RuntimeError # Issue 747
-LayoutTests/fast/dom/HTMLElement/insertAdjacentHTML-errors_t01: RuntimeError # Issue 747
-LayoutTests/fast/transforms/transform-hit-test-flipped_t01: Pass, RuntimeError # Issue 747, Passes on Firefox, but is clearly not testing what it's trying to test.
-LayoutTests/fast/transforms/scrollIntoView-transformed_t01: Pass, RuntimeError # Issue 747, False passes on Firefox.
-LayoutTests/fast/transforms/bounding-rect-zoom_t01: RuntimeError, Pass # Issue 747, Erratic, but only passes because divs have been entirely removed.
-LayoutTests/fast/table/anonymous-table-section-removed_t01: Skip # Issue 747
-LayoutTests/fast/table/hittest-tablecell-bottom-edge_t01: Skip # Issue 747
-LayoutTests/fast/table/hittest-tablecell-with-borders-bottom-edge_t01: Skip # Issue 747
-LayoutTests/fast/table/table-width-exceeding-max-width_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/table/min-max-width-preferred-size_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/table/margins-flipped-text-direction_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/table/html-table-width-max-width-constrained_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/table/fixed-table-layout-width-change_t01: Pass, RuntimeError # Issue 747, False passes on Firefox
-LayoutTests/fast/sub-pixel/replaced-element-baseline_t01: Pass, RuntimeError # Issue 747, Fails on Safari, false pass on others
-LayoutTests/fast/ruby/parse-rp_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-table-cell-ignore-height_t01: RuntimeError, Pass # Issue 747, Spurious intermittent pass
-LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-anonymous-table-cell_t01: RuntimeError, Pass # Issue 747, Spurious intermittent pass.
-LayoutTests/fast/replaced/computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor_t01: RuntimeError, Pass # Issue 747, Spurious intermittent pass
-LayoutTests/fast/replaced/computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor-vertical-lr_t01: RuntimeError, Pass # Issue 747, Spurious intermittent pass
-LayoutTests/fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor-vertical-lr_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/parser/parse-wbr_t01: Pass, RuntimeError # Issue 747
-WebPlatformTest/html/syntax/parsing/Document.getElementsByTagName-foreign_t01: RuntimeError, Pass # Issue 747
-WebPlatformTest/html/semantics/document-metadata/styling/LinkStyle_t01: Pass,RuntimeError # Issue 747
-WebPlatformTest/html/semantics/grouping-content/the-ol-element/ol.start-reflection_t02: Skip # Issue 747
-WebPlatformTest/html/semantics/scripting-1/the-script-element/async_t11: Skip # Issue 747
-WebPlatformTest/html/semantics/selectors/pseudo-classes/disabled_t01: Pass, RuntimeError # Issue 747, Spurious pass
-WebPlatformTest/html/semantics/selectors/pseudo-classes/link_t01: Pass,RuntimeError # Issue 747
-WebPlatformTest/html/semantics/forms/the-form-element/form-nameditem_t01: RuntimeError # Issue 747
-
-[ $compiler == dart2js && $runtime == chromeOnAndroid ]
-LayoutTests/fast/multicol/newmulticol/balance-maxheight_t02: RuntimeError
-Language/Expressions/Strings/escape_backspace_t01: Pass, Slow # Please triage this failure.
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: Fail # Issue 22200.
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: Fail # Issue 22200.
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: Fail # Issue 22200.
-LibTest/core/Set/removeAll_A01_t02: Pass, Slow # Please triage this failure.
-LibTest/core/int/compareTo_A01_t01: Fail # Please triage this failure.
-LibTest/core/int/operator_left_shift_A01_t01: Fail # Please triage this failure.
-LibTest/core/int/operator_remainder_A01_t03: Fail # Please triage this failure.
-LibTest/core/int/operator_truncating_division_A01_t02: Fail # Please triage this failure.
-LibTest/core/int/remainder_A01_t01: Fail # Please triage this failure.
-LibTest/core/int/remainder_A01_t03: Fail # Please triage this failure.
-LibTest/core/int/toRadixString_A01_t01: Fail # Please triage this failure.
-LibTest/isolate/Isolate/spawnUri_A01_t01: Skip # Please triage this failure.
-LibTest/isolate/Isolate/spawnUri_A01_t02: Skip # Please triage this failure.
-LibTest/isolate/Isolate/spawnUri_A01_t03: Skip # Please triage this failure.
-LibTest/isolate/Isolate/spawnUri_A02_t01: RuntimeError # Please triage this failure.
-LibTest/isolate/Isolate/spawnUri_A02_t02: Skip # Please triage this failure.
-LibTest/isolate/Isolate/spawnUri_A02_t03: Skip # Please triage this failure.
-LibTest/isolate/Isolate/spawnUri_A02_t04: Skip # Please triage this failure.
-LibTest/math/log_A01_t01: Fail # Please triage this failure.
-LibTest/typed_data/Float32x4List/Float32x4List.view_A01_t02: RuntimeError # Please triage this failure.
-LibTest/typed_data/Float32x4List/Float32x4List.view_A06_t01: RuntimeError # Please triage this failure.
-LibTest/typed_data/Float64List/join_A01_t01: Pass, Slow # Please triage this failure.
-LibTest/typed_data/Int16List/single_A01_t02: Pass, Slow # Please triage this failure.
-LibTest/typed_data/Int32x4/operator_OR_A01_t01: RuntimeError # Please triage this failure.
-LibTest/typed_data/Int8List/sublist_A02_t01: Pass, Slow # Please triage this failure.
-LibTest/typed_data/Uint8ClampedList/map_A02_t01: Pass, Slow # Please triage this failure.
-
 [ $compiler == dart2js && $runtime == chrome ]
 Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t01: Pass, RuntimeError # Issue 26615
 Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t04: Pass, RuntimeError # Issue 26615
@@ -956,6 +486,7 @@
 LayoutTests/fast/css/child-selector-implicit-tbody_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/content/content-none_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/content/content-normal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/counters/complex-before_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/css-escaped-identifier_t01: RuntimeError # co19 issue 14
 LayoutTests/fast/css/css-properties-case-insensitive_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/css3-nth-tokens-style_t01: RuntimeError # Please triage this failure
@@ -987,6 +518,7 @@
 LayoutTests/fast/css/insertRule-media_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/invalid-hex-color_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/invalid-predefined-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/invalidation/targeted-class-shadow-combinator_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/max-device-aspect-ratio_t01: RuntimeError, Pass # Issue 28998
 LayoutTests/fast/css/media-query-recovery_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/parsing-at-rule-recovery_t01: RuntimeError # Please triage this failure
@@ -1042,6 +574,8 @@
 LayoutTests/fast/dom/HTMLBaseElement/href-attribute-resolves-with-respect-to-document_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/HTMLDialogElement/dialog-autofocus_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/HTMLDialogElement/dialog-close-event_t01: RuntimeError
+LayoutTests/fast/dom/HTMLDialogElement/dialog-open_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-return-value_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/HTMLDialogElement/dialog-scrolled-viewport_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/HTMLDialogElement/inert-node-is-unfocusable_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/HTMLDialogElement/inert-node-is-unselectable_t01: RuntimeError # Please triage this failure
@@ -1400,6 +934,7 @@
 LayoutTests/fast/text/zero-width-characters_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/transforms/bounding-rect-zoom_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/transforms/hit-test-large-scale_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/anchor_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/url/file-http-base_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/url/file_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/url/host_t01: RuntimeError # Please triage this failure
@@ -1447,7 +982,7 @@
 LayoutTests/fast/xpath/py-dom-xpath/paths_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/xpath/reverse-axes_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/xsl/default-html_t01: RuntimeError # Please triage this failure
-LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: Pass,RuntimeError # https://github.com/dart-lang/sdk/issues/29814
+LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: Pass, RuntimeError # https://github.com/dart-lang/sdk/issues/29814
 LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError # Issue 22200
 LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError # Issue 22200
 LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError # Issue 22200
@@ -1644,7 +1179,7 @@
 WebPlatformTest/html/semantics/selectors/pseudo-classes/dir_t01: RuntimeError # Please triage this failure
 WebPlatformTest/html/semantics/selectors/pseudo-classes/disabled_t01: RuntimeError # Please triage this failure
 WebPlatformTest/html/semantics/selectors/pseudo-classes/enabled_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/focus_t01: Pass,RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/focus_t01: Pass, RuntimeError # Please triage this failure
 WebPlatformTest/html/semantics/selectors/pseudo-classes/indeterminate_t01: RuntimeError # Please triage this failure
 WebPlatformTest/html/semantics/tabular-data/the-table-element/table-rows_t01: RuntimeError # Please triage this failure
 WebPlatformTest/html/syntax/parsing/Document.getElementsByTagName-foreign_t01: Pass, RuntimeError # Please triage this failure
@@ -1710,7 +1245,52 @@
 WebPlatformTest/webstorage/event_constructor_t01: RuntimeError # Please triage this failure
 WebPlatformTest/webstorage/event_constructor_t02: RuntimeError # Please triage this failure
 
-[ $compiler == dart2js && $runtime == chrome && $checked]
+[ $compiler == dart2js && $runtime == chrome && $system == linux ]
+LayoutTests/fast/canvas/canvas-before-css_t01: RuntimeError, Pass # Please triage this flake
+LayoutTests/fast/canvas/canvas-ellipse_t01: RuntimeError, Pass # Please triage this flake
+LayoutTests/fast/canvas/canvas-scale-fillRect-shadow_t01: RuntimeError, Pass # Please triage this flake
+LayoutTests/fast/canvas/canvas-transforms-fillRect-shadow_t01: RuntimeError, Pass # Please triage this flake
+LayoutTests/fast/canvas/webgl/WebGLContextEvent_t01: Pass, RuntimeError # 30174
+LayoutTests/fast/canvas/webgl/index-validation-verifies-too-many-indices_t01: RuntimeError, Pass # Please triage this flake
+LayoutTests/fast/canvas/webgl/premultiplyalpha-test_t01: RuntimeError, Pass # Please triage this flake
+LayoutTests/fast/canvas/webgl/triangle_t01: RuntimeError, Pass # Please triage this flake
+LayoutTests/fast/multicol/newmulticol/balance_t04: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-left_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/text/international/combining-marks-position_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/line-break-after-question-mark_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/regional-indicator-symobls_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/text-combine-shrink-to-fit_t01: RuntimeError # Please triage this failure
+LibTest/math/log_A01_t01: RuntimeError # Please triage this failure
+
+[ $compiler == dart2js && $runtime == chrome && $system == macos ]
+Language/Expressions/Function_Invocation/async_invokation_t04: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/canvas-test_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/canvas/webgl/context-lost-restored_t01: Skip # Times out. Please triage this failure.
+LayoutTests/fast/canvas/webgl/draw-webgl-to-canvas-2d_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/oes-vertex-array-object_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/MutationObserver/observe-attributes_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/forms/percent-height-auto-width-form-controls_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/newmulticol/balance_t04: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-left_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/text/glyph-reordering_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/line-break-after-question-mark_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/text-combine-shrink-to-fit_t01: RuntimeError # Please triage this failure
+LibTest/async/Timer/Timer.periodic_A01_t01: Skip # Times out. Please triage this failure
+LibTest/isolate/Isolate/spawn_A01_t05: Skip # Times out. Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-002_t01: Skip # Times out. Please triage this failure
+
+[ $compiler == dart2js && $runtime == chrome && $system != macos ]
+LayoutTests/fast/canvas/webgl/context-lost-restored_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/zero-width-characters-complex-script_t01: RuntimeError # Please triage this failure
+
+[ $compiler == dart2js && $runtime == chrome && $system == windows ]
+Language/Classes/Constructors/Generative_Constructors/execution_of_an_initializer_t04: Pass, Slow # Issue 25940
+Language/Expressions/Bitwise_Expressions/method_invocation_super_t01: Pass, Slow # Issue 25940
+LayoutTests/fast/css-grid-layout/grid-element-shrink-to-fit_t01: RuntimeError # Please triage this failure
+
+[ $compiler == dart2js && $runtime == chrome && $checked ]
 LayoutTests/fast/canvas/webgl/framebuffer-object-attachment_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/read-pixels-test_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css-intrinsic-dimensions/css-tables_t01: RuntimeError # Please triage this failure
@@ -1726,11 +1306,15 @@
 LayoutTests/fast/css/display-inline-block-scrollbar_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/fixed-width-intrinsic-width-excludes-scrollbars_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/style-scoped/style-scoped-scoping-nodes-different-order_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/submit-dialog-close-event_t01: Skip # Roll 50 failure
 LayoutTests/fast/dom/HTMLDialogElement/top-layer-position-relative_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/HTMLDialogElement/top-layer-position-static_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/HTMLLabelElement/form/test1_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/HTMLTableElement/insert-row_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/MutationObserver/database-callback-delivery_t01: Skip # Roll 50 failure
+LayoutTests/fast/dom/icon-size-property_t01: Skip # Roll 50 failure
 LayoutTests/fast/events/scroll-event-phase_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/filesystem/*: Skip # Roll 50 failure
 LayoutTests/fast/filesystem/file-writer-abort_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/filesystem/file-writer-events_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/filesystem/op-copy_t01: RuntimeError # Please triage this failure
@@ -1772,62 +1356,127 @@
 LayoutTests/fast/xpath/xpath-result-eventlistener-crash_t01: RuntimeError # Please triage this failure
 LibTest/html/Element/Element.tag_A01_t01: RuntimeError # Please triage this failure
 LibTest/html/Node/ownerDocument_A01_t01: RuntimeError # Issue 18251
+LibTest/html/Window/requestFileSystem_A01_t01: Skip # Roll 50 failure
+LibTest/html/Window/requestFileSystem_A01_t02: Skip # Roll 50 failure
 WebPlatformTest/DOMEvents/approved/Propagation.path.target.removed_t01: RuntimeError # Please triage this failure
 WebPlatformTest/custom-elements/instantiating/createElementNS_A05_t01: RuntimeError # Please triage this failure
 WebPlatformTest/custom-elements/instantiating/createElement_A05_t01: RuntimeError # Please triage this failure
 WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-row-context_t01: RuntimeError # Please triage this failure
 WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-001_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/submit-dialog-close-event_t01: Skip # Roll 50 failure
-LayoutTests/fast/dom/icon-size-property_t01: Skip # Roll 50 failure
-LayoutTests/fast/dom/MutationObserver/database-callback-delivery_t01: Skip # Roll 50 failure
-LayoutTests/fast/filesystem/*: Skip # Roll 50 failure
-LibTest/html/Window/requestFileSystem_A01_t01: Skip # Roll 50 failure
-LibTest/html/Window/requestFileSystem_A01_t02: Skip # Roll 50 failure
 
-[ $compiler == dart2js && $runtime == chrome && $system == macos ]
-Language/Expressions/Function_Invocation/async_invokation_t04: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/canvas-test_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/canvas/webgl/context-lost-restored_t01: Skip # Times out. Please triage this failure.
-LayoutTests/fast/canvas/webgl/draw-webgl-to-canvas-2d_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/oes-vertex-array-object_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/MutationObserver/observe-attributes_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/forms/percent-height-auto-width-form-controls_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/newmulticol/balance_t04: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-left_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/text/glyph-reordering_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/line-break-after-question-mark_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/text-combine-shrink-to-fit_t01: RuntimeError # Please triage this failure
-LibTest/async/Timer/Timer.periodic_A01_t01: Skip # Times out. Please triage this failure
-LibTest/isolate/Isolate/spawn_A01_t05: Skip # Times out. Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-002_t01: Skip # Times out. Please triage this failure
+[ $compiler == dart2js && $runtime != chrome && $runtime != drt && $browser && $fast_startup ]
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-005_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-event-interface/event-path-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-007_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-008_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-009_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-010_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-011_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-012_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-013_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-001_t01: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-007_t01: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-010_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-005_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-004_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/event-retargeting/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t03: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t04: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-001_t01: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/inert-html-elements/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/composition/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/distribution-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-005_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/nested-shadow-trees/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/rendering-shadow-trees/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/reprojection/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-004_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-005_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-006_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-017_t01: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/shadow-root-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-011_t01: Fail # please triage
 
-[ $compiler == dart2js && $runtime == chrome && $system == windows ]
-Language/Classes/Constructors/Generative_Constructors/execution_of_an_initializer_t04: Pass, Slow # Issue 25940
-Language/Expressions/Bitwise_Expressions/method_invocation_super_t01: Pass, Slow # Issue 25940
-LayoutTests/fast/css-grid-layout/grid-element-shrink-to-fit_t01: RuntimeError # Please triage this failure
+[ $compiler == dart2js && $runtime != chrome && $browser && $fast_startup ]
+WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-003_t01: Fail # please triage
 
-[ $compiler == dart2js && $runtime == chrome && $system != macos ]
-LayoutTests/fast/canvas/webgl/context-lost-restored_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/zero-width-characters-complex-script_t01: RuntimeError # Please triage this failure
+[ $compiler == dart2js && $runtime == chromeOnAndroid ]
+Language/Expressions/Strings/escape_backspace_t01: Pass, Slow # Please triage this failure.
+LayoutTests/fast/multicol/newmulticol/balance-maxheight_t02: RuntimeError
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: Fail # Issue 22200.
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: Fail # Issue 22200.
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: Fail # Issue 22200.
+LibTest/core/Set/removeAll_A01_t02: Pass, Slow # Please triage this failure.
+LibTest/core/int/compareTo_A01_t01: Fail # Please triage this failure.
+LibTest/core/int/operator_left_shift_A01_t01: Fail # Please triage this failure.
+LibTest/core/int/operator_remainder_A01_t03: Fail # Please triage this failure.
+LibTest/core/int/operator_truncating_division_A01_t02: Fail # Please triage this failure.
+LibTest/core/int/remainder_A01_t01: Fail # Please triage this failure.
+LibTest/core/int/remainder_A01_t03: Fail # Please triage this failure.
+LibTest/core/int/toRadixString_A01_t01: Fail # Please triage this failure.
+LibTest/isolate/Isolate/spawnUri_A01_t01: Skip # Please triage this failure.
+LibTest/isolate/Isolate/spawnUri_A01_t02: Skip # Please triage this failure.
+LibTest/isolate/Isolate/spawnUri_A01_t03: Skip # Please triage this failure.
+LibTest/isolate/Isolate/spawnUri_A02_t01: RuntimeError # Please triage this failure.
+LibTest/isolate/Isolate/spawnUri_A02_t02: Skip # Please triage this failure.
+LibTest/isolate/Isolate/spawnUri_A02_t03: Skip # Please triage this failure.
+LibTest/isolate/Isolate/spawnUri_A02_t04: Skip # Please triage this failure.
+LibTest/math/log_A01_t01: Fail # Please triage this failure.
+LibTest/typed_data/Float32x4List/Float32x4List.view_A01_t02: RuntimeError # Please triage this failure.
+LibTest/typed_data/Float32x4List/Float32x4List.view_A06_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Float64List/join_A01_t01: Pass, Slow # Please triage this failure.
+LibTest/typed_data/Int16List/single_A01_t02: Pass, Slow # Please triage this failure.
+LibTest/typed_data/Int32x4/operator_OR_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Int8List/sublist_A02_t01: Pass, Slow # Please triage this failure.
+LibTest/typed_data/Uint8ClampedList/map_A02_t01: Pass, Slow # Please triage this failure.
 
-[ $compiler == dart2js && $runtime == chrome && $system == linux]
-LayoutTests/fast/canvas/webgl/WebGLContextEvent_t01: Pass, RuntimeError # 30174
-LayoutTests/fast/multicol/newmulticol/balance_t04: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-left_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/text/international/combining-marks-position_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/line-break-after-question-mark_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/regional-indicator-symobls_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/text-combine-shrink-to-fit_t01: RuntimeError # Please triage this failure
-LibTest/math/log_A01_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/index-validation-verifies-too-many-indices_t01: RuntimeError, Pass # Please triage this flake
-LayoutTests/fast/canvas/webgl/premultiplyalpha-test_t01: RuntimeError, Pass # Please triage this flake
-LayoutTests/fast/canvas/canvas-transforms-fillRect-shadow_t01: RuntimeError, Pass # Please triage this flake
-LayoutTests/fast/canvas/canvas-ellipse_t01: RuntimeError, Pass # Please triage this flake
-LayoutTests/fast/canvas/canvas-before-css_t01: RuntimeError, Pass # Please triage this flake
-LayoutTests/fast/canvas/webgl/triangle_t01: RuntimeError, Pass # Please triage this flake
-LayoutTests/fast/canvas/canvas-scale-fillRect-shadow_t01: RuntimeError, Pass # Please triage this flake
+[ $compiler == dart2js && $runtime == d8 ]
+LibTest/isolate/Isolate/spawn_A03_t01: Pass # co19 issue 77
+LibTest/isolate/Isolate/spawn_A04_t02: RuntimeError # Please triage this failure.
+LibTest/typed_data/Float32x4List/Float32x4List.view_A06_t01: Fail # co19-roll r587: Please triage this failure
+LibTest/typed_data/Int32x4/operator_OR_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+
+[ $compiler == dart2js && $runtime == d8 && $system == windows ]
+LibTest/async/DeferredLibrary/*: Skip # Issue 17458
+
+[ $compiler == dart2js && $runtime == d8 && $fast_startup ]
+LibTest/isolate/Isolate/spawn_A04_t04: Fail # Issue 27558
+
+[ $compiler == dart2js && $runtime != d8 && $runtime != drt && $checked ]
+WebPlatformTest/custom-elements/instantiating/createElementNS_A04_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElement_A04_t01: RuntimeError # Please triage this failure
+
+[ $compiler == dart2js && $runtime != d8 && $runtime != jsshell && !$checked ]
+LayoutTests/fast/xpath/invalid-resolver_t01: RuntimeError # Please triage this failure
+
+[ $compiler == dart2js && $runtime != d8 && $checked ]
+LayoutTests/fast/canvas/webgl/framebuffer-object-attachment_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/read-pixels-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/empty-inline-before-collapsed-space_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/trivial-segments_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/trivial_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/writing-mode/auto-sizing-orthogonal-flows_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-body-context_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-context_t01: RuntimeError # Please triage this failure
 
 [ $compiler == dart2js && $runtime == drt ]
 Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t02: Pass # Fails on _all_ other platforms. Please triage
@@ -1840,6 +1489,7 @@
 LayoutTests/fast/canvas/canvas-as-image-incremental-repaint_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/canvas-as-image_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/canvas-css-crazy_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-currentTransform_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/canvas-empty-image-pattern_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/canvas-getImageData-invalid_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/canvas-getImageData-large-crash_t01: RuntimeError # Please triage this failure
@@ -1849,112 +1499,207 @@
 LayoutTests/fast/canvas/crash-set-font_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/draw-custom-focus-ring_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/WebGLContextEvent_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/WebGLContextEvent_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/array-bounds-clamping_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/array-bounds-clamping_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/attrib-location-length-limits_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/attrib-location-length-limits_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/bad-arguments-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/bad-arguments-test_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/buffer-bind-test_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/buffer-bind-test_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/buffer-data-array-buffer_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/canvas-2d-webgl-texture_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/canvas-2d-webgl-texture_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/canvas-resize-crash_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/canvas-resize-crash_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/canvas-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/canvas-test_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/canvas-zero-size_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/canvas-zero-size_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/compressed-tex-image_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/compressed-tex-image_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/context-attributes-alpha-depth-stencil-antialias-t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/context-destroyed-crash_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/context-destroyed-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/context-lost-restored_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/context-lost-restored_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/context-lost_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/context-lost_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/copy-tex-image-and-sub-image-2d_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/copy-tex-image-and-sub-image-2d_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/css-webkit-canvas-repaint_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/css-webkit-canvas_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/draw-arrays-out-of-bounds_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/draw-arrays-out-of-bounds_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/draw-elements-out-of-bounds_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/draw-elements-out-of-bounds_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/draw-webgl-to-canvas-2d_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/drawingbuffer-test_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/drawingbuffer-test_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/error-reporting_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/error-reporting_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/framebuffer-bindings-unaffected-on-resize_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/framebuffer-bindings-unaffected-on-resize_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/framebuffer-object-attachment_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/framebuffer-object-attachment_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/framebuffer-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/framebuffer-test_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/functions-returning-strings_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/functions-returning-strings_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/get-active-test_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/get-active-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-bind-attrib-location-test_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/gl-bind-attrib-location-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-enable-enum-test_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/gl-enum-tests_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/gl-enum-tests_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-get-calls_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/gl-get-calls_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/gl-getshadersource_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-getshadersource_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/gl-getstring_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-getstring_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/gl-object-get-calls_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-object-get-calls_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/gl-pixelstorei_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-pixelstorei_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/gl-teximage_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-teximage_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/gl-uniformmatrix4fv_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-uniformmatrix4fv_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/gl-vertex-attrib-zero-issues_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-vertex-attrib-zero-issues_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/gl-vertex-attrib_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-vertex-attrib_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/gl-vertexattribpointer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-vertexattribpointer_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/glsl-conformance_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/glsl-conformance_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/incorrect-context-object-behaviour_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/incorrect-context-object-behaviour_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/index-validation-copies-indices_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/index-validation-copies-indices_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/index-validation-crash-with-buffer-sub-data_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/index-validation-crash-with-buffer-sub-data_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/index-validation-verifies-too-many-indices_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/index-validation-verifies-too-many-indices_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/index-validation-with-resized-buffer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/index-validation-with-resized-buffer_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/index-validation_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/index-validation_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/invalid-UTF-16_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/invalid-UTF-16_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/invalid-passed-params_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/invalid-passed-params_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/is-object_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/is-object_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/null-object-behaviour_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/null-object-behaviour_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/null-uniform-location_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/null-uniform-location_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/object-deletion-behaviour_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/object-deletion-behaviour_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/oes-element-index-uint_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/oes-element-index-uint_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/oes-vertex-array-object_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/oes-vertex-array-object_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/point-size_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/point-size_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/premultiplyalpha-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/premultiplyalpha-test_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/program-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/program-test_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/read-pixels-pack-alignment_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/read-pixels-pack-alignment_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/read-pixels-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/read-pixels-test_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/renderbuffer-initialization_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/renderbuffer-initialization_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/renderer-and-vendor-strings_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/renderer-and-vendor-strings_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/shader-precision-format_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/shader-precision-format_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-array-buffer-view_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-array-buffer-view_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgb565_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgba4444_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgba4444_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgba5551_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgba5551_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgb565_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgb565_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgba4444_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgba4444_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgba5551_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgba5551_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgb565_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgba4444_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgba5551_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgb565_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgb565_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba4444_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba4444_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba5551_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba5551_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/tex-image-and-uniform-binding-bugs_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/tex-image-and-uniform-binding-bugs_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-webgl_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/tex-image-webgl_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/tex-input-validation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-sub-image-2d-bad-args_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/tex-sub-image-2d-bad-args_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-sub-image-2d_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/tex-sub-image-2d_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-sub-image-cube-maps_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/tex-sub-image-cube-maps_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/texImage2DImageDataTest_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texImage2DImageDataTest_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/texImageTest_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texImageTest_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/texture-active-bind_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/texture-active-bind_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-bindings-uneffected-on-resize_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/texture-bindings-uneffected-on-resize_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-color-profile_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/texture-color-profile_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-complete_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/texture-complete_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-npot_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/texture-npot_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/texture-transparent-pixels-initialized_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/triangle_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/triangle_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/uniform-location-length-limits_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/uniform-location-length-limits_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/uniform-location_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/uninitialized-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/viewport-unchanged-upon-resize_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/viewport-unchanged-upon-resize_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-composite-modes-repaint_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/webgl-composite-modes-repaint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-composite-modes_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/webgl-composite-modes_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/webgl-depth-texture_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/webgl-exceptions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-exceptions_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/webgl-large-texture_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-layer-update_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/webgl-layer-update_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-specific_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/webgl-specific_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-texture-binding-preserved_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/webgl-texture-binding-preserved_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/webgl-unprefixed-context-id_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-unprefixed-context-id_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/webgl-viewport-parameters-preserved_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/canvas/webgl/webgl-viewport-parameters-preserved_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css-generated-content/pseudo-element-events_t01: Skip # Times out.
 LayoutTests/fast/css-generated-content/pseudo-transition-event_t01: Skip # Times out.
@@ -1982,23 +1727,31 @@
 LayoutTests/fast/css-grid-layout/percent-padding-margin-resolution-grid-item-update_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css-grid-layout/percent-padding-margin-resolution-grid-item_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css-grid-layout/place-cell-by-index_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-intrinsic-dimensions/multicol_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/css/MarqueeLayoutTest_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/aspect-ratio-inheritance_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/aspect-ratio-parsing-tests_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/auto-min-size_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/checked-pseudo-selector_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/counters/complex-before_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/css-escaped-identifier_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/css/css3-nth-tokens-style_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/deprecated-flexbox-auto-min-size_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/font-face-unicode-range-load_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/font-shorthand-from-longhands_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/css/getComputedStyle/computed-style-border-image_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/css/getComputedStyle/computed-style-cross-fade_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/css/html-attr-case-sensitivity_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/id-or-class-before-stylesheet_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/inherit-initial-shorthand-values_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/invalid-predefined-color_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/parsing-css-allowed-string-characters_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-css-nonascii_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/css/parsing-object-position_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/css/parsing-object-position_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/pseudo-target-indirect-sibling-001_t01: Skip # Times out.
 LayoutTests/fast/css/pseudo-target-indirect-sibling-002_t01: Skip # Times out.
+LayoutTests/fast/css/selector-text-escape_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/css/sticky/parsing-position-sticky_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/sticky/remove-inline-sticky-crash_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/style-scoped/style-scoped-nested_t01: RuntimeError # Please triage this failure
@@ -2006,8 +1759,11 @@
 LayoutTests/fast/css/style-scoped/style-scoped-with-important-rule_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/stylesheet-enable-first-alternate-on-load-sheet_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/stylesheet-enable-second-alternate-link_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/unicode-bidi-computed-value_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/css/url-with-multi-byte-unicode-escape_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/dom/52776_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/DOMException/XPathException_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/DOMException/dispatch-event-exception_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/dom/DOMImplementation/createDocument-namespace-err_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-zoom-and-scroll_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/Document/CaretRangeFromPoint/replace-element_t01: RuntimeError # Please triage this failure
@@ -2046,6 +1802,7 @@
 LayoutTests/fast/dom/HTMLScriptElement/isURLAttribute_t01: Skip # Times out. Please triage this failure
 LayoutTests/fast/dom/HTMLScriptElement/remove-in-beforeload_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/HTMLSelectElement/remove-element-from-within-focus-handler-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLSelectElement/selected-index-preserved-when-option-text-changes_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/dom/HTMLSelectElement/selected-index-preserved-when-option-text-changes_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/HTMLTemplateElement/custom-element-wrapper-gc_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/HTMLTemplateElement/innerHTML_t01: RuntimeError # Please triage this failure
@@ -2067,8 +1824,10 @@
 LayoutTests/fast/dom/StyleSheet/css-medialist-item_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/StyleSheet/detached-stylesheet-without-wrapper_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/TreeWalker/TreeWalker-basic_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Window/getMatchedCSSRules-with-pseudo-elements-complex_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/dom/Window/window-resize-contents_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/Window/window-scroll-arguments_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/anchor-without-content_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/dom/anchor-without-content_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/attribute-namespaces-get-set_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/characterdata-api-arguments_t01: RuntimeError # Please triage this failure
@@ -2087,20 +1846,26 @@
 LayoutTests/fast/dom/navigatorcontentutils/is-protocol-handler-registered_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/navigatorcontentutils/unregister-protocol-handler_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/object-plugin-hides-properties_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/offset-position-writing-modes_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/dom/partial-layout-overlay-scrollbars_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/set-innerHTML_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-pseudo-element-css-text_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/dom/shadow/event-path_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/host-context-pseudo-class-css-text_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/dom/shadow/host-pseudo-class-css-text_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/dom/shadow/pseudoclass-update-checked-option_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-optgroup_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-option_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/shadow/pseudoclass-update-enabled-optgroup_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/shadow/pseudoclass-update-enabled-option_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/ancestor-to-absolute_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/dynamic/ancestor-to-absolute_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/events/add-event-without-document_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/events/change-overflow-on-overflow-change_t01: Skip # Times out.
 LayoutTests/fast/events/document-elementFromPoint_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/events/event-creation_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/events/event-trace_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/fire-scroll-event_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/events/initkeyboardevent-crash_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/events/invalid-003_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/events/invalid-004_t01: RuntimeError # Please triage this failure
@@ -2117,10 +1882,13 @@
 LayoutTests/fast/filesystem/directory-entry-to-uri_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/filesystem/file-entry-to-uri_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/filesystem/file-writer-abort-continue_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/ValidityState-tooLong-input_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/forms/ValidityState-tooLong-textarea_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/forms/autofocus-focus-only-once_t01: Skip # Times out.
 LayoutTests/fast/forms/date/input-valueasdate-date_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/forms/datetimelocal/input-valueasdate-datetimelocal_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/forms/file/file-input-capture_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/formnovalidate-attribute_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/forms/input-appearance-elementFromPoint_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/forms/listbox-selection-2_t01: RuntimeError # Please triage this failure
@@ -2128,7 +1896,9 @@
 LayoutTests/fast/forms/parser-associated-form-removal_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/forms/select-clientheight-large-size_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/forms/select-clientheight-with-multiple-attr_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/select-max-length_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/forms/setrangetext_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/submit-form-attributes_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/html/details-add-child-2_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/html/imports/import-element-removed-flag_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/html/imports/import-events_t01: RuntimeError # Please triage this failure
@@ -2137,6 +1907,7 @@
 LayoutTests/fast/inline/continuation-inlines-inserted-in-reverse-after-block_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/inline/inline-position-top-align_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/inline/out-of-flow-objects-and-whitespace-after-empty-inline_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/innerHTML/innerHTML-uri-resolution_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/loader/about-blank-hash-change_t01: Skip # Times out.
 LayoutTests/fast/loader/about-blank-hash-kept_t01: Skip # Times out.
 LayoutTests/fast/loader/hashchange-event-properties_t01: RuntimeError # Please triage this failure
@@ -2149,6 +1920,7 @@
 LayoutTests/fast/media/media-query-list-syntax_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/multicol/break-properties_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/multicol/cssom-view_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/flipped-blocks-hit-test_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/multicol/hit-test-above-or-below_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/multicol/hit-test-end-of-column-with-line-height_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/multicol/hit-test-float_t01: RuntimeError # Please triage this failure
@@ -2204,6 +1976,7 @@
 LayoutTests/fast/table/table-with-content-width-exceeding-max-width_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/text-autosizing/vertical-writing-mode_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/text/find-spaces_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/font-ligature-letter-spacing_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/text/international/cjk-segmentation_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/text/international/iso-8859-8_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/text/international/thai-offsetForPosition-inside-character_t01: RuntimeError # Please triage this failure
@@ -2232,6 +2005,8 @@
 LayoutTests/fast/url/segments_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/url/standard-url_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/writing-mode/display-mutation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/writing-mode/flipped-blocks-hit-test-overflow-scroll_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/writing-mode/flipped-blocks-hit-test-overflow_t01: Pass, RuntimeError # Issue 29634
 LayoutTests/fast/writing-mode/table-hit-test_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/xmlhttprequest/xmlhttprequest-responseXML-xml-text-responsetype_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-arraybuffer_t01: RuntimeError # Please triage this failure
@@ -2400,8 +2175,10 @@
 WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/src_t01: RuntimeError # Please triage this failure
 WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/cues_t01: Skip # Times out.
 WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/mode_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formAction_document_address_t01: Pass, RuntimeError # Issue 29634
 WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formAction_document_address_t01: RuntimeError # Please triage this failure
 WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formaction_t01: RuntimeError, Pass # Please triage this failure
+WebPlatformTest/html/semantics/forms/textfieldselection/selection_t01: Pass, RuntimeError # Issue 29634
 WebPlatformTest/html/semantics/forms/textfieldselection/selection_t01: RuntimeError # Please triage this failure
 WebPlatformTest/html/semantics/forms/textfieldselection/textfieldselection-setRangeText_t01: RuntimeError # Please triage this failure
 WebPlatformTest/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange_t01: RuntimeError # Please triage this failure
@@ -2425,6 +2202,7 @@
 WebPlatformTest/html/semantics/forms/the-input-element/time_t02: RuntimeError # Please triage this failure
 WebPlatformTest/html/semantics/forms/the-input-element/type-change-state_t01: RuntimeError # Please triage this failure
 WebPlatformTest/html/semantics/forms/the-input-element/url_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/url_t01: Pass, RuntimeError # Issue 29634
 WebPlatformTest/html/semantics/forms/the-input-element/valueMode_t01: RuntimeError # Please triage this failure
 WebPlatformTest/html/semantics/forms/the-input-element/week_t01: RuntimeError # Please triage this failure
 WebPlatformTest/html/semantics/forms/the-meter-element/meter_t01: RuntimeError # Please triage this failure
@@ -2441,6 +2219,7 @@
 WebPlatformTest/html/semantics/selectors/pseudo-classes/indeterminate_t01: RuntimeError # Please triage this failure
 WebPlatformTest/html/semantics/selectors/pseudo-classes/inrange-outofrange_t01: RuntimeError # Please triage this failure
 WebPlatformTest/html/semantics/tabular-data/the-table-element/table-rows_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/tabular-data/the-tr-element/rowIndex_t01: Pass, RuntimeError # Issue 29634
 WebPlatformTest/html/semantics/tabular-data/the-tr-element/rowIndex_t01: RuntimeError # Please triage this failure
 WebPlatformTest/html/syntax/parsing/Document.getElementsByTagName-foreign_t02: RuntimeError # Please triage this failure
 WebPlatformTest/html/syntax/serializing-html-fragments/outerHTML_t01: RuntimeError # Please triage this failure
@@ -2467,6 +2246,15 @@
 WebPlatformTest/shadow-dom/events/event-retargeting/test-001_t01: RuntimeError # Please triage this failure
 WebPlatformTest/shadow-dom/events/event-retargeting/test-002_t01: RuntimeError # Please triage this failure
 WebPlatformTest/shadow-dom/events/event-retargeting/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-001_t01: Pass, RuntimeError # Issue 29634
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-002_t01: Pass, RuntimeError # Issue 29634
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-003_t01: Pass, RuntimeError # Issue 29634
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-004_t01: Pass, RuntimeError # Issue 29634
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-005_t01: Pass, RuntimeError # Issue 29634
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-006_t01: Pass, RuntimeError # Issue 29634
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-007_t01: Pass, RuntimeError # Issue 29634
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-008_t01: Pass, RuntimeError # Issue 29634
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-009_t01: Pass, RuntimeError # Issue 29634
 WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-002_t01: RuntimeError # Please triage this failure
 WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-003_t01: RuntimeError # Please triage this failure
 WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-003_t01: RuntimeError # Please triage this failure
@@ -2493,157 +2281,8 @@
 WebPlatformTest/webstorage/event_session_oldvalue_t01: Skip # Times out. Please triage this failure
 WebPlatformTest/webstorage/event_session_storagearea_t01: Skip # Times out. Please triage this failure
 WebPlatformTest/webstorage/event_session_url_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/canvas/canvas-currentTransform_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/WebGLContextEvent_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/array-bounds-clamping_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/attrib-location-length-limits_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/bad-arguments-test_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/buffer-bind-test_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/canvas-2d-webgl-texture_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/canvas-resize-crash_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/canvas-test_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/canvas-zero-size_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/compressed-tex-image_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/context-destroyed-crash_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/context-lost-restored_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/context-lost_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/copy-tex-image-and-sub-image-2d_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/draw-arrays-out-of-bounds_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/draw-elements-out-of-bounds_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/drawingbuffer-test_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/error-reporting_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/framebuffer-bindings-unaffected-on-resize_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/framebuffer-object-attachment_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/framebuffer-test_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/functions-returning-strings_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/get-active-test_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/gl-bind-attrib-location-test_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/gl-enable-enum-test_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/gl-enum-tests_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/gl-get-calls_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/gl-getshadersource_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/gl-getstring_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/gl-object-get-calls_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/gl-pixelstorei_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/gl-teximage_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/gl-uniformmatrix4fv_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/gl-vertex-attrib-zero-issues_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/gl-vertex-attrib_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/gl-vertexattribpointer_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/glsl-conformance_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/incorrect-context-object-behaviour_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/index-validation-copies-indices_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/index-validation-crash-with-buffer-sub-data_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/index-validation-verifies-too-many-indices_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/index-validation-with-resized-buffer_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/index-validation_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/invalid-UTF-16_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/invalid-passed-params_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/is-object_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/null-object-behaviour_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/null-uniform-location_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/object-deletion-behaviour_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/oes-element-index-uint_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/oes-vertex-array-object_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/point-size_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/premultiplyalpha-test_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/program-test_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/read-pixels-pack-alignment_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/read-pixels-test_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/renderbuffer-initialization_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/renderer-and-vendor-strings_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/shader-precision-format_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-array-buffer-view_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgb565_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgba4444_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgba5551_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgb565_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgba4444_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgba5551_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgb565_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba4444_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba5551_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-and-uniform-binding-bugs_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-webgl_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-sub-image-2d-bad-args_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-sub-image-2d_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-sub-image-cube-maps_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/texImage2DImageDataTest_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/texImageTest_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/texture-active-bind_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/texture-bindings-uneffected-on-resize_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/texture-color-profile_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/texture-complete_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/texture-npot_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/triangle_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/uniform-location-length-limits_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/viewport-unchanged-upon-resize_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/webgl-composite-modes-repaint_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/webgl-composite-modes_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/webgl-exceptions_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/webgl-layer-update_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/webgl-specific_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/webgl-texture-binding-preserved_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/webgl-unprefixed-context-id_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/webgl-viewport-parameters-preserved_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/css-intrinsic-dimensions/multicol_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/css/css-escaped-identifier_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/css/font-shorthand-from-longhands_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/css/getComputedStyle/computed-style-border-image_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/css/getComputedStyle/computed-style-cross-fade_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/css/parsing-css-nonascii_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/css/parsing-object-position_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/css/selector-text-escape_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/css/unicode-bidi-computed-value_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/css/url-with-multi-byte-unicode-escape_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/dom/DOMException/dispatch-event-exception_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/dom/HTMLSelectElement/selected-index-preserved-when-option-text-changes_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/dom/Window/getMatchedCSSRules-with-pseudo-elements-complex_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/dom/anchor-without-content_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/dom/offset-position-writing-modes_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/dom/shadow/content-pseudo-element-css-text_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/dom/shadow/host-context-pseudo-class-css-text_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/dom/shadow/host-pseudo-class-css-text_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/dynamic/ancestor-to-absolute_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/events/fire-scroll-event_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/forms/ValidityState-tooLong-input_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/forms/ValidityState-tooLong-textarea_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/forms/formnovalidate-attribute_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/forms/select-max-length_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/forms/submit-form-attributes_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/innerHTML/innerHTML-uri-resolution_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/multicol/flipped-blocks-hit-test_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/text/font-ligature-letter-spacing_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/writing-mode/flipped-blocks-hit-test-overflow-scroll_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/writing-mode/flipped-blocks-hit-test-overflow_t01: Pass, RuntimeError # Issue 29634
-WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formAction_document_address_t01: Pass, RuntimeError # Issue 29634
-WebPlatformTest/html/semantics/forms/textfieldselection/selection_t01: Pass, RuntimeError # Issue 29634
-WebPlatformTest/html/semantics/forms/the-input-element/url_t01: Pass, RuntimeError # Issue 29634
-WebPlatformTest/html/semantics/tabular-data/the-tr-element/rowIndex_t01: Pass, RuntimeError # Issue 29634
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-001_t01: Pass, RuntimeError # Issue 29634
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-002_t01: Pass, RuntimeError # Issue 29634
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-003_t01: Pass, RuntimeError # Issue 29634
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-004_t01: Pass, RuntimeError # Issue 29634
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-005_t01: Pass, RuntimeError # Issue 29634
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-006_t01: Pass, RuntimeError # Issue 29634
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-007_t01: Pass, RuntimeError # Issue 29634
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-008_t01: Pass, RuntimeError # Issue 29634
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-009_t01: Pass, RuntimeError # Issue 29634
 
-[ $compiler == dart2js && $runtime == drt && $minified && $csp ]
-LayoutTests/fast/dom/HTMLScriptElement/script-for-attribute-unexpected-execution_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLScriptElement/script-reexecution_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/inertContents_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/create-contextual-fragment-script-unmark-already-started_t01: RuntimeError # Please triage this failure
-
-[ $compiler == dart2js && $runtime == drt && ! $minified && ! $csp]
-LayoutTests/fast/dom/HTMLScriptElement/remove-source_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/event-listener-html-non-html-confusion_t01: RuntimeError # Please triage this failure
-
-[ $compiler == dart2js && $runtime == drt && $fast_startup && $checked ]
+[ $compiler == dart2js && $runtime == drt && $checked && $fast_startup ]
 LayoutTests/fast/css-grid-layout/auto-content-resolution-rows_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css-grid-layout/breadth-size-resolution-grid_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css-grid-layout/calc-resolution-grid-item_t01: RuntimeError # Please triage this failure
@@ -2722,9 +2361,37 @@
 WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-row-context_t01: RuntimeError # Please triage this failure
 WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-001_t01: RuntimeError # Please triage this failure
 
-[ $compiler == dart2js && $runtime == drt && ! $checked ]
+[ $compiler == dart2js && $runtime == drt && !$checked ]
 LayoutTests/fast/xpath/invalid-resolver_t01: RuntimeError # Please triage this failure
 
+[ $compiler == dart2js && $runtime == drt && $csp && $minified ]
+LayoutTests/fast/dom/HTMLScriptElement/script-for-attribute-unexpected-execution_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLScriptElement/script-reexecution_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/inertContents_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/create-contextual-fragment-script-unmark-already-started_t01: RuntimeError # Please triage this failure
+
+[ $compiler == dart2js && $runtime == drt && !$csp && !$minified ]
+LayoutTests/fast/dom/HTMLScriptElement/remove-source_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/event-listener-html-non-html-confusion_t01: RuntimeError # Please triage this failure
+
+[ $compiler == dart2js && $runtime != drt && $browser && $fast_startup ]
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-004_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-005_t01: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-006_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-007_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-008_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-009_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t02: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t05: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t06: Fail # please triage
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-004_t01: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-005_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-007_t01: Fail # please triage
+
 [ $compiler == dart2js && $runtime == ff ]
 Language/Expressions/Postfix_Expressions/property_decrement_t02: Skip # Times out. Please triage this failure
 Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t01: Pass, RuntimeError # Issue 26615
@@ -3610,7 +3277,7 @@
 LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-right_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/speechsynthesis/speech-synthesis-boundary-events_t01:  Skip # Times out. Please triage this failure
+LayoutTests/fast/speechsynthesis/speech-synthesis-boundary-events_t01: Skip # Times out. Please triage this failure
 LayoutTests/fast/speechsynthesis/speech-synthesis-cancel_t01: Skip # Times out. Please triage this failure
 LayoutTests/fast/speechsynthesis/speech-synthesis-pause-resume_t01: Skip # Times out. Please triage this failure
 LayoutTests/fast/speechsynthesis/speech-synthesis-speak_t01: Skip # Times out. Please triage this failure
@@ -3716,7 +3383,7 @@
 LayoutTests/fast/xsl/default-html_t01: RuntimeError # Please triage this failure
 LibTest/async/Stream/Stream.periodic_A01_t01: Pass, RuntimeError # Please triage this failure
 LibTest/async/Timer/Timer.periodic_A01_t01: Pass, RuntimeError # Please triage this failure
-LibTest/core/RegExp/Pattern_semantics/firstMatch_Atom_A03_t03: Pass,RuntimeError # Please triage this failure
+LibTest/core/RegExp/Pattern_semantics/firstMatch_Atom_A03_t03: Pass, RuntimeError # Please triage this failure
 LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError # Issue 22200
 LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError # Issue 22200
 LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError # Issue 22200
@@ -3883,7 +3550,7 @@
 WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-head-insertion-mode/generating-of-implied-end-tags_t01: RuntimeError # Please triage this failure
 WebPlatformTest/html-templates/parsing-html-templates/creating-an-element-for-the-token/template-owner-document_t01: RuntimeError # Please triage this failure
 WebPlatformTest/html-templates/template-element/node-document-changes_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/template-element/template-as-a-descendant_t01 : RuntimeError # In Firefox, setting innerHTML on a Frameset element does nothing.
+WebPlatformTest/html-templates/template-element/template-as-a-descendant_t01: RuntimeError # In Firefox, setting innerHTML on a Frameset element does nothing.
 WebPlatformTest/html-templates/template-element/template-content_t01: RuntimeError # Please triage this failure
 WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-image_t01: RuntimeError # Please triage this failure
 WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-video_t01: RuntimeError # Please triage this failure
@@ -3895,7 +3562,7 @@
 WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t01: RuntimeError # Please triage this failure
 WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t07: RuntimeError # Please triage this failure
 WebPlatformTest/html/dom/documents/dom-tree-accessors/nameditem_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/nameditem_t05: Pass,RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/nameditem_t05: Pass, RuntimeError # Please triage this failure
 WebPlatformTest/html/dom/elements/global-attributes/dataset-delete_t01: RuntimeError # Please triage this failure
 WebPlatformTest/html/dom/elements/global-attributes/dataset-get_t01: RuntimeError # Please triage this failure
 WebPlatformTest/html/dom/elements/global-attributes/dataset-set_t01: RuntimeError # Please triage this failure
@@ -4056,24 +3723,48 @@
 WebPlatformTest/webstorage/event_constructor_t01: RuntimeError # Please triage this failure
 WebPlatformTest/webstorage/event_constructor_t02: RuntimeError # Please triage this failure
 
-[ $compiler == dart2js && $runtime == ff && ! $checked]
-LayoutTests/fast/xpath/invalid-resolver_t01: RuntimeError # Please triage this failure
+[ $compiler == dart2js && $runtime == ff && $system == linux ]
+LayoutTests/fast/canvas/webgl/*: Skip # Issue 26725
+LayoutTests/fast/canvas/webgl/oes-element-index-uint_t01: Skip # Times out always
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-input-validation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-sub-image-2d-bad-args_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-complete_t01: Skip # Times out sometimes
+LayoutTests/fast/canvas/webgl/texture-npot_t01: Skip # Times out sometimes
+LayoutTests/fast/forms/submit-form-attributes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/whitespace/nowrap-line-break-after-white-space_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Core/test_parser_t01: RuntimeError # Dartium JSInterop failure
+LayoutTests/fast/xpath/py-dom-xpath/abbreviations_t01: RuntimeError # Dartium JSInterop failure
 
-[ $compiler == dart2js && $runtime == ff && $checked]
-LayoutTests/fast/css-intrinsic-dimensions/width-shrinks-avoid-floats_t01: RuntimeError # Please triage this failure
+[ $compiler == dart2js && $runtime == ff && $system == windows ]
+Language/Classes/Abstract_Instance_Members/override_no_named_parameters_t06: Pass, Slow # Issue 25940
+Language/Classes/Constructors/Factories/return_type_t03: Pass, Slow # Issue 25940
+Language/Classes/Constructors/Factories/return_type_t05: Pass, Slow # Issue 25940
+Language/Classes/Constructors/Factories/return_wrong_type_t02: Pass, Slow # Issue 25940
+LayoutTests/fast/canvas/webgl/draw-webgl-to-canvas-2d_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/drawingbuffer-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/device-aspect-ratio_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/font-face-multiple-ranges-for-unicode-range_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/media-rule-screenDepthPerComponent_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/submit-form-attributes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/media/color-does-not-include-alpha_t01: RuntimeError # Issue 31161
+LayoutTests/fast/media/media-query-list_t01: RuntimeError # Please triage this failure
+
+[ $compiler == dart2js && $runtime == ff && $checked ]
 LayoutTests/fast/canvas/webgl/framebuffer-object-attachment_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/oes-vertex-array-object_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/read-pixels-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-intrinsic-dimensions/intrinsic-sized-column-flex-items_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-intrinsic-dimensions/intrinsic-sized-flex-items_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css-grid-layout/auto-content-resolution-rows_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css-grid-layout/implicit-rows-auto-resolution_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track-update_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-intrinsic-dimensions/intrinsic-sized-column-flex-items_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-intrinsic-dimensions/intrinsic-sized-flex-items_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-intrinsic-dimensions/width-shrinks-avoid-floats_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/box-sizing-border-box-dynamic-padding-border-update_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/display-inline-block-scrollbar_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/fixed-width-intrinsic-width-excludes-scrollbars_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/flexbox/flexing-overflow-scroll-item_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/HTMLTableElement/insert-row_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/flexbox/flexing-overflow-scroll-item_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/flexbox/intrinsic-min-width-applies-with-fixed-width_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/lists/marker-preferred-margins_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/multicol/fixed-column-percent-logical-height-orthogonal-writing-mode_t01: RuntimeError # Please triage this failure
@@ -4090,2500 +3781,8 @@
 WebPlatformTest/dom/nodes/DOMImplementation-createDocumentType_t01: RuntimeError # Please triage this failure
 WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-row-context_t01: RuntimeError # Please triage this failure
 
-[ $compiler == dart2js && $runtime == ff && $system == windows ]
-Language/Classes/Abstract_Instance_Members/override_no_named_parameters_t06: Pass, Slow # Issue 25940
-Language/Classes/Constructors/Factories/return_type_t03: Pass, Slow # Issue 25940
-Language/Classes/Constructors/Factories/return_type_t05: Pass, Slow # Issue 25940
-Language/Classes/Constructors/Factories/return_wrong_type_t02: Pass, Slow # Issue 25940
-LayoutTests/fast/canvas/webgl/draw-webgl-to-canvas-2d_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/drawingbuffer-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/device-aspect-ratio_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/font-face-multiple-ranges-for-unicode-range_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/media-rule-screenDepthPerComponent_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/submit-form-attributes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/media/color-does-not-include-alpha_t01: RuntimeError # Issue 31161
-LayoutTests/fast/media/media-query-list_t01: RuntimeError # Please triage this failure
-
-[ $compiler == dart2js && $runtime == ff && $system == linux]
-LayoutTests/fast/canvas/webgl/*: Skip # Issue 26725
-LayoutTests/fast/canvas/webgl/oes-element-index-uint_t01: Skip # Times out always
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-input-validation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-sub-image-2d-bad-args_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/texture-complete_t01: Skip # Times out sometimes
-LayoutTests/fast/canvas/webgl/texture-npot_t01: Skip # Times out sometimes
-LayoutTests/fast/forms/submit-form-attributes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/whitespace/nowrap-line-break-after-white-space_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Core/test_parser_t01: RuntimeError # Dartium JSInterop failure
-LayoutTests/fast/xpath/py-dom-xpath/abbreviations_t01: RuntimeError # Dartium JSInterop failure
-
-[ $compiler == dart2js && $runtime == safari ]
-LayoutTests/fast/alignment/parse-align-items_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/alignment/parse-align-self_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/alignment/parse-justify-self_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/animation/request-animation-frame-cancel2_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/animation/request-animation-frame-cancel_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/animation/request-animation-frame-timestamps-advance_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/animation/request-animation-frame-timestamps_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/animation/request-animation-frame-within-callback_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/backgrounds/background-repeat-computed-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/backgrounds/repeat/parsing-background-repeat_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/borders/border-image-width-numbers-computed-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/2d.fillText.gradient_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.gradient_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.negative_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.veryLarge_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.verySmall_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/alpha_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-arc-negative-radius_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-as-image-incremental-repaint_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/canvas/canvas-blend-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blend-solid_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-clipping_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-color-over-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-color-over-gradient_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-color-over-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-color-over-pattern_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-fill-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-global-alpha_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-gradient-over-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-gradient-over-gradient_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-gradient-over-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-gradient-over-pattern_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-image-over-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-image-over-gradient_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-image-over-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-image-over-pattern_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-pattern-over-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-pattern-over-gradient_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-pattern-over-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-pattern-over-pattern_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-transforms_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-currentTransform_t01: RuntimeError # Feature is not implemented
-LayoutTests/fast/canvas/canvas-drawImage-scaled-copy-to-self_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-ellipse-zero-lineto_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-empty-image-pattern_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-fillStyle-no-quirks-parsing_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-font-consistency_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-getImageData-invalid_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-getImageData-large-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-getImageData-largeNonintegralDimensions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-large-dimensions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-large-fills_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-lineDash-input-sequence_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-lose-restore-googol-size_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-lose-restore-max-int-size_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-putImageData_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-quadratic-same-endpoint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-resetTransform_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-scale-shadowBlur_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-scale-strokePath-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-setTransform_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/draw-custom-focus-ring_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/drawImage-with-broken-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/drawImage-with-valid-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/getPutImageDataPairTest_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/setWidthResetAfterForcedRender_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/canvas/webgl/context-attributes-alpha-depth-stencil-antialias-t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/context-lost_t01: Skip
-LayoutTests/fast/canvas/webgl/context-lost-restored_t01: Skip # Issue 28640
-LayoutTests/fast/canvas/webgl/glsl-conformance_t01: Skip # Times out 1 out of 20.
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgb565_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgba4444_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgba5551_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgb565_t01: Skip # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba4444_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba5551_t01: Skip # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video_t01: Skip
-LayoutTests/fast/canvas/webgl/texture-transparent-pixels-initialized_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/uniform-location_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/webgl-depth-texture_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/webgl-large-texture_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/WebGLContextEvent_t01: Skip # Issue 29010
-LayoutTests/fast/css-generated-content/malformed-url_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-generated-content/pseudo-animation-before-onload_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/css-generated-content/pseudo-animation_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/css-generated-content/pseudo-element-events_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/css-generated-content/pseudo-transition-event_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/css-generated-content/pseudo-transition_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/auto-content-resolution-rows_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/breadth-size-resolution-grid_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/calc-resolution-grid-item_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/display-grid-set-get_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/flex-and-minmax-content-resolution-rows_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/flex-content-resolution-columns_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/flex-content-resolution-rows_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-get-set_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-auto-flow-get-set_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-auto-flow-update_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-container-change-explicit-grid-recompute-child_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-element-border-grid-item_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-element-border-padding-grid-item_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-element-empty-row-column_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-element-min-max-height_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-element-padding-grid-item_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-element-padding-margin_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-element-shrink-to-fit_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-area-get-set_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-bad-named-area-auto-placement_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-bad-resolution-double-span_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-change-order-auto-flow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-display_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-horiz-bt_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vert-lr_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vert-rl_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-margin-resolution_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-order-auto-flow-resolution_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-template-areas-get-set_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/implicit-rows-auto-resolution_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/justify-self-cell_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/minmax-fixed-logical-height-only_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/minmax-fixed-logical-width-only_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track-in-percent-grid_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track-update_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/percent-padding-margin-resolution-grid-item-update_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/percent-padding-margin-resolution-grid-item_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/percent-resolution-grid-item_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/place-cell-by-index_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/MarqueeLayoutTest_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/aspect-ratio-inheritance_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/aspect-ratio-parsing-tests_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/background-serialize_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/border-image-style-length_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/checked-pseudo-selector_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/computed-offset-with-zoom_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/content/content-none_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/content/content-normal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/content/content-quotes-01_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
-LayoutTests/fast/css/content/content-quotes-05_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
-LayoutTests/fast/css/counters/counter-cssText_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/css-escaped-identifier_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/css3-nth-tokens-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/cssText-shorthand_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/csstext-of-content-string_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/deprecated-flexbox-auto-min-size_t01: Pass,RuntimeError # Please triage this failure
-LayoutTests/fast/css/draggable-region-parser_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/dynamic-class-backdrop-pseudo_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/first-child-display-change-inverse_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/focus-display-block-inline_t01: Pass, RuntimeError # Fails 5 out of 10.
-LayoutTests/fast/css/focus-display-block-inline_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/font-face-cache-bug_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/font-face-unicode-range-load_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/font-face-unicode-range-monospace_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/font-face-unicode-range-overlap-load_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/font-property-priority_t01: RuntimeError # Fails 10 out of 10.
-LayoutTests/fast/css/font-shorthand-from-longhands_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/fontface-properties_t01: RuntimeError # Uses FontFace class, not defined for this browser.
-LayoutTests/fast/css/fontfaceset-download-error_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/fontfaceset-events_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/fontfaceset-loadingdone_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/getComputedStyle/computed-style-border-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/getComputedStyle/computed-style-cross-fade_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/getComputedStyle/computed-style-font_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/getComputedStyle/computed-style-with-zoom_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/getComputedStyle/counterIncrement-without-counter_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/getPropertyValue-clip_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/getPropertyValue-columns_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/html-attr-case-sensitivity_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/id-or-class-before-stylesheet_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/important-js-override_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/inherit-initial-shorthand-values_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/inherited-properties-rare-text_t01: RuntimeError # Fails 10 out of 10.
-LayoutTests/fast/css/invalid-not-with-simple-selector-sequence_t01: RuntimeError # Fails 10 out of 10.
-LayoutTests/fast/css/invalid-predefined-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/invalidation/detach-reattach-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/invalidation/shadow-host-toggle_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/invalidation/targeted-class-host-pseudo_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/invalidation/targeted-class-shadow-combinator_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/invalidation/toggle-style-inside-shadow-root_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/link-alternate-stylesheet-1_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/link-alternate-stylesheet-2_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/link-alternate-stylesheet-3_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/link-alternate-stylesheet-4_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/link-alternate-stylesheet-5_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/media-query-recovery_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/media-rule-no-whitespace_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parse-color-int-or-percent-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parsing-at-rule-recovery_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parsing-css-nonascii_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parsing-css-nth-child_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parsing-font-variant-ligatures_t01: RuntimeError # Fails 10 out of 10.
-LayoutTests/fast/css/parsing-object-position_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parsing-page-rule_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parsing-selector-error-recovery_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parsing-unexpected-eof_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/pseudo-any_t01: Pass, RuntimeError # Fails 4 out of 10.
-LayoutTests/fast/css/pseudo-any_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/pseudo-target-indirect-sibling-001_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/css/pseudo-target-indirect-sibling-002_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/css/readonly-pseudoclass-opera-001_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/readonly-pseudoclass-opera-002_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/readonly-pseudoclass-opera-003_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/readonly-pseudoclass-opera-004_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/readonly-pseudoclass-opera-005_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/selector-text-escape_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/css/shorthand-setProperty-important_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/sticky/parsing-position-sticky_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/string-quote-binary_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/style-scoped/style-scoped-in-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/style-scoped/style-scoped-nested_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/style-scoped/style-scoped-scoping-nodes-different-order_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/style-scoped/style-scoped-shadow-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/style-scoped/style-scoped-with-dom-operation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/style-scoped/style-scoped-with-important-rule_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/stylesheet-enable-first-alternate-on-load-sheet_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/stylesheet-enable-second-alternate-link_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/transform-origin-parsing_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/unicode-bidi-computed-value_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/webkit-keyframes-errors_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-inherited_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-line_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-underline-position_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent-inherited_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/52776_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Attr/direction-attribute-set-and-cleared_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/DOMException/XPathException_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/DOMException/dispatch-event-exception_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/DOMImplementation/createDocument-namespace-err_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/basic_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-strict-mode-wtih-checkbox_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-user-select-none_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-zoom-and-scroll_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-with-first-letter-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/createElementNS-namespace-err_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Element/getClientRects_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Element/offsetTop-table-cell_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Element/setAttributeNS-namespace-err_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLAnchorElement/remove-href-from-focused-anchor_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-host_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-hostname_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-pathname_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/dialog-autofocus_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/dialog-close-event_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/dialog-enabled_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/dialog-open_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/dialog-return-value_t01: RuntimeError # Dartium JSInterop failure
-LayoutTests/fast/dom/HTMLDialogElement/dialog-scrolled-viewport_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/dialog-show-modal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/inert-does-not-match-disabled-selector_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/inert-node-is-unfocusable_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/inert-node-is-unselectable_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/multiple-centered-dialogs_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/non-anchored-dialog-positioning_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/show-modal-focusing-steps_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/submit-dialog-close-event_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/synthetic-click-inert_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/top-layer-position-relative_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/top-layer-position-static_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDocument/active-element-gets-unforcusable_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLDocument/set-focus-on-valid-element_t01: Skip
-LayoutTests/fast/dom/HTMLElement/insertAdjacentHTML-errors_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLElement/set-inner-outer-optimization_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLElement/spellcheck_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLFormElement/move-option-between-documents_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLImageElement/image-alt-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLImageElement/parse-src_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLInputElement/input-image-alt-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLLinkElement/link-and-subresource-test-nonexistent_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLLinkElement/link-and-subresource-test_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLLinkElement/prefetch-onerror_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLLinkElement/prefetch-onload_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLLinkElement/prefetch_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLLinkElement/resolve-url-on-insertion_t01: RuntimeError # Fails 10 out of 10.
-LayoutTests/fast/dom/HTMLOptionElement/collection-setter-getter_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLOutputElement/dom-settable-token-list_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLScriptElement/async-false-inside-async-false-load_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLScriptElement/async-inline-script_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLScriptElement/async-onbeforeload_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLScriptElement/defer-inline-script_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLScriptElement/defer-onbeforeload_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLScriptElement/script-set-src_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLSelectElement/selected-index-preserved-when-option-text-changes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/custom-element-wrapper-gc_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/cycles-in-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/innerHTML_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/ownerDocumentXHTML_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/MutationObserver/observe-childList_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/MutationObserver/observe-options-attributes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/MutationObserver/observe-options-character-data_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/MutationObserver/weak-callback-gc-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Node/initial-values_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/NodeIterator/NodeIterator-basic_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/bug-19527_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/insertNode-empty-fragment-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/mutation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-comparePoint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-constructor_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-created-during-remove-children_t01: RuntimeError
-LayoutTests/fast/dom/Range/range-detached-exceptions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-exceptions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-expand_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-insertNode-separate-endContainer_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-insertNode-splittext_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-isPointInRange_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-on-detached-node_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/remove-twice-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/surroundContents-for-detached-node_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/SelectorAPI/dumpNodeList-2_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/SelectorAPI/dumpNodeList_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/StyleSheet/css-insert-import-rule-to-shadow-stylesheets_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/StyleSheet/css-medialist-item_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/StyleSheet/detached-shadow-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/StyleSheet/empty-shadow-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/TreeWalker/TreeWalker-basic_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Window/atob-btoa_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Window/getMatchedCSSRules-parent-stylesheets_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Window/window-resize-contents_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Window/window-resize_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Window/window-scroll-arguments_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/XMLSerializer-attribute-entities_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/XMLSerializer-double-xmlns_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/anchor-without-content_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/attribute-namespaces-get-set_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/background-shorthand-csstext_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/characterdata-api-arguments_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/client-width-height-quirks_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/css-selectorText_t01: RuntimeError # Fails 10 out of 10.
-LayoutTests/fast/dom/custom/attribute-changed-callback_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/constructor-calls-created-synchronously_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/created-callback_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/document-register-basic_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/document-register-namespace_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/document-register-on-create-callback_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/document-register-svg-extends_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/document-register-type-extensions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/element-names_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/element-type_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/element-upgrade_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/lifecycle-created-createElement-recursion_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/type-extensions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/unresolved-pseudoclass_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/upgrade-candidate-remove-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/dataset-xhtml_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/dataset_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/document-set-title-mutations_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/document-set-title-no-reuse_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/domparser-parsefromstring-mimetype-support_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/fragment-activation-focuses-target_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/getElementsByClassName/dumpNodeList_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/horizontal-scrollbar-in-rtl-doesnt-fire-onscroll_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/horizontal-scrollbar-in-rtl_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/horizontal-scrollbar-when-dir-change_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/html-collections-named-getter-mandatory-arg_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/implementation-api-args_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/importNode-unsupported-node-type_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/location-hash_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/mutation-event-remove-inserted-node_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/navigatorcontentutils/is-protocol-handler-registered_t01: Skip # API not supported.
-LayoutTests/fast/dom/navigatorcontentutils/register-protocol-handler_t01: Skip # API not supported.
-LayoutTests/fast/dom/navigatorcontentutils/unregister-protocol-handler_t01: Skip # API not supported.
-LayoutTests/fast/dom/object-plugin-hides-properties_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/dom/option-properties_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/partial-layout-non-overlay-scrollbars_t01: Pass, RuntimeError # Issue 53
-LayoutTests/fast/dom/partial-layout-overlay-scrollbars_t01: Pass, RuntimeError # Fails 8 out of 10.
-LayoutTests/fast/dom/set-innerHTML_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/access-document-of-detached-stylesheetlist-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/base-in-shadow-tree_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-element-api_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-element-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-element-includer_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-element-outside-shadow-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-pseudo-element-css-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-pseudo-element-dynamic-attribute-change_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-pseudo-element-overridden_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-pseudo-element-relative-selector-css-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-pseudo-element-with-host-pseudo-class_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-reprojection-fallback-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/custom-pseudo-in-selector-api_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/distribution-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/distribution-for-event-path_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/distribution-update-recalcs-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/elementfrompoint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/elements-in-frameless-document_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/event-path-not-in-document_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/event-path_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/form-in-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/get-distributed-nodes-orphan_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/get-element-by-id-in-shadow-mutation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/getComputedStyle-composed-parent-dirty_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/getelementbyid-in-orphan_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/getelementbyid-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/host-context-pseudo-class-css-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/host-pseudo-class-css-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/host-wrapper-reclaimed_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/insertion-point-list-menu-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/insertion-point-shadow-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/insertion-point-video-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/link-in-shadow-tree_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/nested-reprojection-inconsistent_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/no-renderers-for-light-children_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/offsetWidth-host-style-change_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/olderShadowRoot_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/pseudoclass-update-checked-option_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-optgroup_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-option_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/pseudoclass-update-enabled-optgroup_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/pseudoclass-update-enabled-option_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/reinsert-insertion-point_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/remove-and-insert-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/remove-styles-in-shadow-crash-2_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/remove-styles-in-shadow-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-aware-shadow-root_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-content-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-disable_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-element-inactive_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-element_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-hierarchy-exception_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-removechild-and-blur-event_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-root-append_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-root-js-api_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-root-node-list_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-root-text-child_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-ul-li_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowdom-dynamic-styling_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowdom-for-input-spellcheck_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowdom-for-input-type-change_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowdom-for-unknown-with-form_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowhost-keyframes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowroot-clonenode_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowroot-host_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowroot-keyframes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/sibling-rules-dynamic-changes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/stale-distribution-after-shadow-removal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/style-insertion-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/style-of-distributed-node_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/style-sharing-sibling-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/style-sharing-styles-in-older-shadow-roots_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/suppress-mutation-events-in-shadow-characterdata_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/title-element-in-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dynamic/crash-generated-counter_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dynamic/crash-generated-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dynamic/crash-generated-quote_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dynamic/crash-generated-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dynamic/insertAdjacentElement_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dynamic/insertAdjacentHTML_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dynamic/recursive-layout_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/add-event-without-document_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/clipboard-clearData_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/events/clipboard-dataTransferItemList_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/events/dispatch-event-being-dispatched_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/document-elementFromPoint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/event-creation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/event-listener-html-non-html-confusion_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/event-on-created-document_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/event-on-xhr-document_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/event-trace_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/initkeyboardevent-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/invalid-003_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/invalid-004_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/mutation-during-replace-child-2_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/mutation-during-replace-child_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/overflowchanged-event-raf-timing_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/events/scoped/editing-commands_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/scroll-event-does-not-bubble_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/tabindex-removal-from-focused-element_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/exclusions/parsing/parsing-wrap-flow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/exclusions/parsing/parsing-wrap-through_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/blob-close-read_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/blob-close-revoke_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/blob-close_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/blob-constructor_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/blob-parts-slice-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/blob-slice-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/file-reader-abort-in-last-progress_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/file-reader-done-reading-abort_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/files/file-reader-methods-illegal-arguments_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/file-reader-readystate_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/url-null_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/xhr-response-blob_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/async-operations_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/directory-entry-to-uri_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-entry-to-uri_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-from-file-entry_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-metadata-after-write_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-abort-continue_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-abort-depth_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-abort_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-empty-blob_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-events_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-gc-blob_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-truncate-extend_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-write-overlapped_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/filesystem-reference_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/filesystem-unserializable_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/filesystem-uri-origin_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/input-access-entries_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-copy_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-get-entry_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-get-metadata_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-get-parent_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-move_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-read-directory_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-remove_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-restricted-chars_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-restricted-names_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-restricted-unicode_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/read-directory-many_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/read-directory_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/simple-readonly-file-object_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/simple-readonly_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/simple-required-arguments-getdirectory_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/simple-required-arguments-getfile_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/simple-temporary_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/snapshot-file-with-gc_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/flexbox/repaint-scrollbar_t01: Pass, RuntimeError # Fails 2 out of 10.
-LayoutTests/fast/flexbox/repaint-scrollbar_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/ValidityState-customError_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/ValidityState-typeMismatch-email_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/autocomplete_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/autofocus-input-css-style-change_t01: Pass, RuntimeError # Fails 7 out of 10.
-LayoutTests/fast/forms/autofocus-input-css-style-change_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/button-baseline-and-collapsing_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/button/button-disabled-blur_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/clone-input-with-dirty-value_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/color/color-setrangetext_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/color/input-value-sanitization-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datalist/datalist-child-validation_t01: RuntimeError # Fails 10 out of 10.
-LayoutTests/fast/forms/datalist/datalist_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datalist/input-list_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date-multiple-fields/date-multiple-fields-change-layout-by-value_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date-multiple-fields/date-multiple-fields-onblur-setvalue-onfocusremoved_t01: Pass, RuntimeError # Fails 6 out of 10.
-LayoutTests/fast/forms/date-multiple-fields/date-multiple-fields-onblur-setvalue-onfocusremoved_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date/ValidityState-rangeOverflow-date_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date/ValidityState-rangeUnderflow-date_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date/ValidityState-stepMismatch-date_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date/ValidityState-typeMismatch-date_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date/date-input-type_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date/date-pseudo-classes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date/date-setrangetext_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date/input-date-validation-message_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date/input-valueasdate-date_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date/input-valueasnumber-date_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-change-layout-by-value_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datetimelocal/ValidityState-rangeOverflow-datetimelocal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datetimelocal/ValidityState-rangeUnderflow-datetimelocal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datetimelocal/ValidityState-stepMismatch-datetimelocal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datetimelocal/ValidityState-typeMismatch-datetimelocal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datetimelocal/datetimelocal-input-type_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datetimelocal/datetimelocal-pseudo-classes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datetimelocal/datetimelocal-setrangetext_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datetimelocal/input-valueasdate-datetimelocal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datetimelocal/input-valueasnumber-datetimelocal_t01: RuntimeError # Dartium JSInterop failure
-LayoutTests/fast/forms/file/file-input-capture_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/form-attribute_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/input-appearance-elementFromPoint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/input-inputmode_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/input-type-change3_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/input-value-sanitization_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/interactive-validation-assertion-by-validate-twice_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/forms/interactive-validation-attach-assertion_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/forms/interactive-validation-select-crash_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/forms/select-max-length_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/forms/menulist-disabled-selected-option_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
-LayoutTests/fast/forms/menulist-selection-reset_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/menulist-submit-without-selection_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
-LayoutTests/fast/forms/multiple-selected-options-innerHTML_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/option-change-single-selected_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/option-strip-unicode-spaces_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/parser-associated-form-removal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/plaintext-mode-1_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/search-popup-crasher_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
-LayoutTests/fast/forms/select-set-length-with-mutation-remove_t01: RuntimeError
-LayoutTests/fast/forms/select-set-length-with-mutation-reparent_t01: RuntimeError
-LayoutTests/fast/forms/selection-wrongtype_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/setrangetext_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/textarea-maxlength_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/textarea-paste-newline_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/textarea-selection-preservation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/html/hidden-attr_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/html/imports/import-element-removed-flag_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/html/imports/import-events_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/html/select-dropdown-consistent-background-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/boundingBox-with-continuation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/continuation-inlines-inserted-in-reverse-after-block_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/inline-position-top-align_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/inline-with-empty-inline-children_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/out-of-flow-objects-and-whitespace-after-empty-inline_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/parent-inline-element-padding-contributes-width_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/positioned-element-padding-contributes-width_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/innerHTML/innerHTML-uri-resolution_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/innerHTML/innerHTML-svg-write_t01: RuntimeError # Issue 25941
-LayoutTests/fast/innerHTML/javascript-url_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/loader/about-blank-hash-change_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/loader/about-blank-hash-kept_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/loader/hashchange-event-properties_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/loader/onhashchange-attribute-listeners_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/loader/scroll-position-restored-on-back_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/loader/scroll-position-restored-on-reload-at-load-event_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/loader/stateobjects/replacestate-in-onunload_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/masking/parsing-clip-path-shape_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/masking/parsing-mask_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/media/matchmedium-query-api_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/media/media-query-list-syntax_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/media/media-query-list_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/media/mq-append-delete_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/media/mq-js-media-except_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/media/mq-js-media-except_t03: RuntimeError # Please triage this failure
-LayoutTests/fast/media/mq-parsing_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/mediastream/RTCIceCandidate_t01: Skip # Please triage this failure
-LayoutTests/fast/mediastream/RTCPeerConnection_t01: Skip # Issue 23475
-LayoutTests/fast/mediastream/constructors_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/balance-short-trailing-empty-block_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/balance-trailing-border_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/balance-trailing-border_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/balance-unbreakable_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/break-after-always-bottom-margin_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/break-properties_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/columns-shorthand-parsing_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/cssom-view_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/float-truncation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/hit-test-above-or-below_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/hit-test-end-of-column-with-line-height_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/hit-test-end-of-column_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/hit-test-float_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/newmulticol/balance-images_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/orphans-relayout_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/vertical-lr/float-truncation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/vertical-rl/float-truncation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/overflow/child-100percent-height-inside-fixed-container-with-overflow-auto_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/overflow/replaced-child-100percent-height-inside-fixed-container-with-overflow-auto_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/overflow/scrollbar-restored_t01: RuntimeError # Fails 10 out of 10.
-LayoutTests/fast/parser/foster-parent-adopted_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/parser/fragment-parser-doctype_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/parser/innerhtml-with-prefixed-elements_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/available-height-for-content_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/container-width-zero_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-anonymous-table-cell_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-table-cell-ignore-height_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/preferred-widths_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/table-percent-height-text-controls_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/table-percent-height_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/table-percent-width_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/ruby/ruby-line-height_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/scrolling/scroll-element-into-view_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/parsing/parsing-shape-lengths_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/parsing/parsing-shape-margin_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/parsing/parsing-shape-outside_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-big-box-border-radius_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-diamond-margin-polygon_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-margin-left_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-margin-right_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t02: Pass, RuntimeError # Fails on 6.2. Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-left_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-right_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/speechsynthesis/speech-synthesis-boundary-events_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/speechsynthesis/speech-synthesis-cancel_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/speechsynthesis/speech-synthesis-pause-resume_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/speechsynthesis/speech-synthesis-speak_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/speechsynthesis/speech-synthesis-utterance-uses-voice_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/speechsynthesis/speech-synthesis-voices_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/storage/disallowed-storage_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/storage/storage-disallowed-in-data-url_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/sub-pixel/cssom-subpixel-precision_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/sub-pixel/shadows-computed-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/svg/tabindex-focus_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/svg/whitespace-angle_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/svg/whitespace-integer_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/svg/whitespace-length_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/svg/whitespace-number_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/absolute-table-percent-lengths_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/anonymous-table-section-removed_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/caption-orthogonal-writing-mode-sizing_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/col-width-span-expand_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/css-table-max-height_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/css-table-max-width_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/fixed-table-layout-width-change_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/hittest-tablecell-bottom-edge_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/hittest-tablecell-right-edge_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/hittest-tablecell-with-borders-bottom-edge_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/hittest-tablecell-with-borders-right-edge_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/html-table-width-max-width-constrained_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/large-shrink-wrapped-width_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/margins-perpendicular-containing-block_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/min-width-css-block-table_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/table/min-width-css-inline-table_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/table/min-width-html-block-table_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/table/min-width-html-inline-table_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/table/nested-tables-with-div-offset_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/padding-height-and-override-height_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/switch-table-layout-dynamic-cells_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/switch-table-layout-multiple-section_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/switch-table-layout_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-all-rowspans-height-distribution-in-rows-except-overlapped_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-all-rowspans-height-distribution-in-rows_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-cell-offset-width_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-colgroup-present-after-table-row_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-rowspan-cell-with-empty-cell_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-rowspan-height-distribution-in-rows_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-rowspan-height-distribution-in-rows_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-with-content-width-exceeding-max-width_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text-autosizing/vertical-writing-mode_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/find-case-folding_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/find-russian_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/find-soft-hyphen_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/find-spaces_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/font-ligature-letter-spacing_t01: Pass, RuntimeError # Fails on 6.2. Please triage this failure
-LayoutTests/fast/text/font-ligatures-linebreak-word_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/text/font-ligatures-linebreak_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/text/glyph-reordering_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
-LayoutTests/fast/text/international/cjk-segmentation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/international/iso-8859-8_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/international/listbox-width-rtl_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/international/rtl-text-wrapping_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/international/thai-offsetForPosition-inside-character_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/line-break-after-question-mark_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/offsetForPosition-cluster-at-zero_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/remove-zero-length-run_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/sub-pixel/text-scaling-ltr_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/sub-pixel/text-scaling-pixel_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/sub-pixel/text-scaling-rtl_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/sub-pixel/text-scaling-vertical_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/sub-pixel/text-scaling-webfont_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/text-combine-shrink-to-fit_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/transforms/bounding-rect-zoom_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/transforms/hit-test-large-scale_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/anchor_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/file-http-base_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/file_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/host-lowercase-per-scheme_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/host_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/idna2003_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/idna2008_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/invalid-urls-utf8_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/ipv4_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/ipv6_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/path_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/port_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/query_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/relative-unix_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/relative-win_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/relative_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/safari-extension_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/segments-from-data-url_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/segments_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/standard-url_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/writing-mode/positionForPoint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/writing-mode/table-hit-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/writing-mode/vertical-font-vmtx-units-per-em_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-responseXML-xml-text-responsetype_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-arraybuffer_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-before-open-sync-request_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-sync-request_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Borrowed/cz_20030217_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Borrowed/namespace-nodes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Core/test_node_test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Core/test_node_test_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Core/test_parser_t01: RuntimeError # Dartium JSInterop failure
-LayoutTests/fast/xpath/ambiguous-operators_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/attr-namespace_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/ensure-null-namespace_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/implicit-node-args_t01: RuntimeError # Please triage this failure
+[ $compiler == dart2js && $runtime == ff && !$checked ]
 LayoutTests/fast/xpath/invalid-resolver_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/node-name-case-sensitivity_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/node-name-case-sensitivity_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/position_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/py-dom-xpath/abbreviations_t01: RuntimeError # Dartium JSInterop failure
-LayoutTests/fast/xpath/py-dom-xpath/axes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/py-dom-xpath/data_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/py-dom-xpath/expressions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/py-dom-xpath/paths_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/reverse-axes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xsl/default-html_t01: RuntimeError # Please triage this failure
-LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: RuntimeError # Please triage this failure
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError # Issue 22200
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError # Issue 22200
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError # Issue 22200
-LibTest/core/double/roundToDouble_A01_t01: RuntimeError # Please triage this failure
-LibTest/core/double/round_A01_t01: RuntimeError # Please triage this failure
-LibTest/core/int/compareTo_A01_t01: RuntimeError # Please triage this failure
-LibTest/core/int/operator_left_shift_A01_t01: RuntimeError # Please triage this failure
-LibTest/core/int/operator_remainder_A01_t03: RuntimeError # Please triage this failure
-LibTest/core/int/operator_truncating_division_A01_t02: RuntimeError # Please triage this failure
-LibTest/core/int/remainder_A01_t01: RuntimeError # Please triage this failure
-LibTest/core/int/remainder_A01_t03: RuntimeError # Please triage this failure
-LibTest/core/int/toRadixString_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/CanvasRenderingContext2D/addEventListener_A01_t03: RuntimeError # Please triage this failure
-LibTest/html/CanvasRenderingContext2D/addEventListener_A01_t06: RuntimeError # Please triage this failure
-LibTest/html/Document/childNodes_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Document/clone_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Document/clone_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Document/getElementsByTagName_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Document/securityPolicy_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/Element.tag_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/attributeChanged_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/borderEdge_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/contentEdge_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/dataset_A02_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/enteredView_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/getAttributeNS_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/getAttributeNS_A02_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/getBoundingClientRect_A01_t02: Pass, RuntimeError # Issue 53
-LibTest/html/Element/getClientRects_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Element/getNamespacedAttributes_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/isContentEditable_A01_t01: Pass, RuntimeError # Issue 28187
-LibTest/html/Element/isContentEditable_A02_t01: Pass, RuntimeError # Issue 28187
-LibTest/html/Element/isTagSupported_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/isTagSupported_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Element/leftView_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/marginEdge_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/mouseWheelEvent_A01_t01: Skip # Times out. Please triage this failure
-LibTest/html/Element/onMouseWheel_A01_t01: Skip # Times out. Please triage this failure
-LibTest/html/Element/onTransitionEnd_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/paddingEdge_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/querySelectorAll_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Element/replaceWith_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Element/tagName_A01_t03: RuntimeError # Please triage this failure
-LibTest/html/Element/transitionEndEvent_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/getAllResponseHeaders_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/getResponseHeader_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/getString_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/onError_A01_t02: Skip # Times out. Please triage this failure
-LibTest/html/HttpRequest/request_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/responseText_A01_t02: Skip # Times out. Please triage this failure
-LibTest/html/HttpRequest/responseType_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/setRequestHeader_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/statusText_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/status_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequestUpload/onError_A01_t02: Skip # Times out. Please triage this failure
-LibTest/html/HttpRequestUpload/onLoadEnd_A01_t01: Skip # Times out. Please triage this failure
-LibTest/html/HttpRequestUpload/onLoadStart_A01_t01: Skip # Times out. Please triage this failure
-LibTest/html/HttpRequestUpload/onLoad_A01_t01: Skip # Times out. Please triage this failure
-LibTest/html/IFrameElement/IFrameElement.created_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/attributeChanged_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/attributes_setter_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/blur_A01_t01: Skip # Times out. Please triage this failure
-LibTest/html/IFrameElement/borderEdge_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/clone_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/contentWindow_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/createFragment_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/createFragment_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/createFragment_A01_t03: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/createShadowRoot_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/getClientRects_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/getNamespacedAttributes_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/innerHtml_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/isContentEditable_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/isContentEditable_A01_t01: RuntimeError, Pass # Fails 19 out of 20.
-LibTest/html/IFrameElement/leftView_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/marginEdge_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/offsetTo_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/onMouseWheel_A01_t01: Skip # Times out. Please triage this failure
-LibTest/html/IFrameElement/onTransitionEnd_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/outerHtml_setter_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/paddingEdge_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/querySelector_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/setInnerHtml_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/tagName_A01_t03: RuntimeError # Please triage this failure
-LibTest/html/Node/append_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Node/nodes_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Node/nodes_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Node/parent_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Node/previousNode_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/animationFrame_A01_t01: Skip # Times out. Please triage this failure
-LibTest/html/Window/close_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/document_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/find_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/find_A03_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/find_A06_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/moveBy_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/moveTo_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/moveTo_A02_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/postMessage_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/postMessage_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Window/requestFileSystem_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/requestFileSystem_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Window/requestFileSystem_A02_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/resizeBy_A01_t01: Skip # Times out. Please triage this failure
-LibTest/html/Window/resizeTo_A01_t01: RuntimeError # Please triage this failure
-LibTest/typed_data/Float32x4List/Float32x4List.view_A06_t01: RuntimeError # Please triage this failure
-LibTest/typed_data/Int32x4/operator_OR_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/DOMEvents/approved/EventObject.after.dispatchEvenr_t01: RuntimeError # Please triage this failure
-WebPlatformTest/DOMEvents/approved/EventObject.multiple.dispatchEvent_t01: RuntimeError # Please triage this failure
-WebPlatformTest/DOMEvents/approved/ProcessingInstruction.DOMCharacterDataModified_t01: Skip # Times out. Please triage this failure
-WebPlatformTest/DOMEvents/approved/addEventListener.optional.useCapture_t01: RuntimeError # Please triage this failure
-WebPlatformTest/Utils/test/asyncTestFail_t01: RuntimeError # Please triage this failure
-WebPlatformTest/Utils/test/asyncTestFail_t02: RuntimeError # Please triage this failure
-WebPlatformTest/Utils/test/asyncTestTimeout_t01: Skip # Times out. Please triage this failure
-WebPlatformTest/custom-elements/concepts/type_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/concepts/type_A04_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/concepts/type_A05_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/concepts/type_A06_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/concepts/type_A07_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/concepts/type_A08_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElementNS_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElementNS_A02_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElementNS_A03_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElementNS_A04_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElementNS_A05_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElement_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElement_A02_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElement_A03_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElement_A04_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElement_A05_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/isAttribute_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/isAttribute_A01_t02: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/isAttribute_A02_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/isAttribute_A03_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/localName_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/namespace_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/EventTarget/dispatchEvent_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/EventTarget/dispatchEvent_A02_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/EventTarget/dispatchEvent_A03_t01: Skip # Times out. Please triage this failure
-WebPlatformTest/dom/events/type_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/DOMImplementation-createDocument_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/DOMImplementation-hasFeature_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Document-adoptNode_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Document-getElementsByTagName_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Document-importNode_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Element-childElementCount_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Node-appendChild_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Node-appendChild_t02: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Node-insertBefore_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Node-isEqualNode_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Node-replaceChild_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/attributes_A04_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/attributes_A05_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A05_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A06_t03: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A07_t02: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A07_t03: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A08_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A09_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A09_t02: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttribute_A02_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttribute_A02_t02: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttribute_A03_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/ranges/Range-attributes_t02: RuntimeError # Please triage this failure
-WebPlatformTest/dom/ranges/Range-comparePoint_t02: RuntimeError # Please triage this failure
-WebPlatformTest/dom/ranges/Range-comparePoint_t03: RuntimeError # Please triage this failure
-WebPlatformTest/dom/ranges/Range-detach_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-imports/link-import_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-imports/link-import_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html-imports/loading-import_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/definitions/template-contents-owner-test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/innerhtml-on-templates/innerhtml_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-head-insertion-mode/generating-of-implied-end-tags_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/creating-an-element-for-the-token/template-owner-document_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/template-element/node-document-changes_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-image_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-video_t01: Skip # Times out. Please triage this failure
-WebPlatformTest/html/browsers/browsing-the-web/read-text/load-text-plain_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.body-getter_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.body-setter_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.getElementsByName-namespace_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t05: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t07: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/nameditem_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/elements/global-attributes/dataset-delete_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/elements/global-attributes/dataset-get_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/elements/global-attributes/dataset-set_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/document-metadata/styling/LinkStyle_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
-WebPlatformTest/html/semantics/embedded-content/media-elements/error-codes/error_t01: Skip # Times out. Please triage this failure
-WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/src_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/cues_t01: Skip # Times out. Please triage this failure
-WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/mode_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formAction_document_address_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formaction_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/textfieldselection/selection_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/textfieldselection/textfieldselection-setRangeText_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-button-element/button-validation_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-datalist-element/datalistelement_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-datalist-element/datalistoptions_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-form-element/form-autocomplete_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-form-element/form-elements-matches_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-form-element/form-elements-nameditem_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/color_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/date_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/datetime-local_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/datetime_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/datetime_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/email_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/hidden_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/input-textselection_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/month_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/password_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/range_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/text_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/time_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/time_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/type-change-state_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/url_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/valueMode_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/week_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-meter-element/meter_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-option-element/option-text-recurse_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-option-element/option-text-spaces_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/grouping-content/the-blockquote-element/grouping-blockquote_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/grouping-content/the-ol-element/ol.start-reflection_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/interactive-elements/the-details-element/toggleEvent_t01: Skip # Times out. Please triage this failure
-WebPlatformTest/html/semantics/interactive-elements/the-dialog-element/dialog-close_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/interactive-elements/the-dialog-element/dialog-showModal_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/scripting-1/the-script-element/async_t11: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/scripting-1/the-script-element/script-text_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/checked_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/default_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/dir_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/disabled_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/enabled_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/focus_t01: Pass,RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/indeterminate_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/inrange-outofrange_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/tabular-data/the-table-element/table-insertRow_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/tabular-data/the-table-element/table-rows_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/tabular-data/the-tr-element/rowIndex_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/syntax/parsing/Document.getElementsByTagName-foreign_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/syntax/serializing-html-fragments/outerHTML_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t03: RuntimeError # Please triage this failure
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t04: RuntimeError # Please triage this failure
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t05: RuntimeError # Please triage this failure
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t06: RuntimeError # Please triage this failure
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol_t00: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t02: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/elements-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-event-interface/event-path-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-007_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-008_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-009_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-010_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-011_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-012_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-013_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-007_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-010_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t02: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-006_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t02: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/event-dispatch/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/event-dispatch/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/event-dispatch/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/event-retargeting/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/event-retargeting/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/event-retargeting/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/event-retargeting/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-006_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-007_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-008_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-009_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t02: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t03: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t04: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t05: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t06: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/inert-html-elements/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/composition/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/custom-pseudo-elements/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/distribution-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/nested-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/rendering-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/reprojection/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-006_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-017_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/shadow-root-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-007_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-009_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-011_t01: RuntimeError # Please triage this failure
-WebPlatformTest/webstorage/event_constructor_t01: RuntimeError # Please triage this failure
-WebPlatformTest/webstorage/event_constructor_t02: RuntimeError # Please triage this failure
-WebPlatformTest/webstorage/event_local_key_t01: RuntimeError # Please triage this failure
-WebPlatformTest/webstorage/event_session_key_t01: RuntimeError # Please triage this failure
-WebPlatformTest/webstorage/event_session_storagearea_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
-WebPlatformTest/webstorage/event_session_url_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-get_t01: RuntimeError # Roll 50 failure
-LayoutTests/fast/dom/HTMLOutputElement/htmloutputelement_t01: Pass, RuntimeError # Issue 29632
-LayoutTests/fast/dom/icon-size-property_t01: Pass, RuntimeError # Issue 29632
-LayoutTests/fast/events/event-fire-order_t01: Pass, RuntimeError # Issue 29632
-
-[ $compiler == dart2js && $runtime == safarimobilesim ]
-LayoutTests/fast/alignment/parse-align-items_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/alignment/parse-align-self_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/alignment/parse-justify-self_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/backgrounds/background-repeat-computed-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/backgrounds/repeat/parsing-background-repeat_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/borders/border-image-width-numbers-computed-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/2d.composite.globalAlpha.fillPath_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/2d.fillText.gradient_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.gradient_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.negative_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.veryLarge_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.verySmall_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/alpha_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-alphaImageData-behavior_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-arc-negative-radius_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-arc-zero-lineto_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-before-css_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-bezier-same-endpoint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blend-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blend-solid_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-clipping_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-color-over-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-color-over-gradient_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-color-over-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-color-over-pattern_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-fill-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-global-alpha_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-gradient-over-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-gradient-over-gradient_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-gradient-over-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-gradient-over-pattern_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-image-over-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-image-over-gradient_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-image-over-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-image-over-pattern_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-pattern-over-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-pattern-over-gradient_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-pattern-over-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-pattern-over-pattern_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-transforms_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-composite-canvas_t01: Skip # Times out on Windows 8. Please triage this failure
-LayoutTests/fast/canvas/canvas-composite-stroke-alpha_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-composite-text-alpha_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-currentTransform_t01: RuntimeError # Feature is not implemented
-LayoutTests/fast/canvas/canvas-drawImage-scaled-copy-to-self_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-ellipse-360-winding_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-ellipse-negative-radius_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-ellipse-zero-lineto_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-ellipse_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-empty-image-pattern_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-fillStyle-no-quirks-parsing_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-font-consistency_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-getImageData-invalid_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-getImageData-large-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-getImageData-largeNonintegralDimensions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-imageSmoothingEnabled-repaint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-imageSmoothingEnabled_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-invalid-fillstyle_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-invalid-strokestyle_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-large-dimensions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-large-fills_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-lineDash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-lose-restore-googol-size_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-lose-restore-max-int-size_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-putImageData_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-quadratic-same-endpoint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-resetTransform_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-scale-shadowBlur_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-scale-strokePath-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-setTransform_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/draw-custom-focus-ring_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/drawImage-with-broken-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/drawImage-with-negative-source-destination_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/drawImage-with-valid-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/drawImageFromRect_withToDataURLAsSource_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/fillText-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/getPutImageDataPairTest_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/pointInPath_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/WebGLContextEvent_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/array-bounds-clamping_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/attrib-location-length-limits_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/bad-arguments-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/buffer-bind-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/buffer-data-array-buffer_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/canvas-2d-webgl-texture_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/canvas-resize-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/canvas-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/canvas-zero-size_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/compressed-tex-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/context-attributes-alpha-depth-stencil-antialias-t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/context-destroyed-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/context-lost-restored_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/context-lost_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/copy-tex-image-and-sub-image-2d_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/css-webkit-canvas-repaint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/css-webkit-canvas_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/draw-arrays-out-of-bounds_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/draw-elements-out-of-bounds_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/draw-webgl-to-canvas-2d_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/drawingbuffer-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/error-reporting_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/framebuffer-bindings-unaffected-on-resize_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/framebuffer-object-attachment_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/framebuffer-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/functions-returning-strings_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/get-active-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/gl-bind-attrib-location-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/gl-enable-enum-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/gl-enum-tests_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/gl-get-calls_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/gl-getshadersource_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/gl-getstring_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/gl-object-get-calls_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/gl-pixelstorei_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/gl-teximage_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/gl-uniformmatrix4fv_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/gl-vertex-attrib-zero-issues_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/gl-vertex-attrib_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/gl-vertexattribpointer_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/glsl-conformance_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/incorrect-context-object-behaviour_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/index-validation-copies-indices_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/index-validation-crash-with-buffer-sub-data_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/index-validation-verifies-too-many-indices_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/index-validation-with-resized-buffer_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/index-validation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/invalid-UTF-16_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/invalid-passed-params_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/is-object_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/null-object-behaviour_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/null-uniform-location_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/object-deletion-behaviour_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/oes-element-index-uint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/oes-vertex-array-object_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/point-size_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/premultiplyalpha-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/program-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/read-pixels-pack-alignment_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/read-pixels-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/renderbuffer-initialization_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/renderer-and-vendor-strings_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/shader-precision-format_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-array-buffer-view_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgb565_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgba4444_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgba5551_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgb565_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgba4444_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgba5551_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgb565_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgba4444_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgba5551_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgb565_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba4444_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba5551_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-uniform-binding-bugs_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-webgl_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-input-validation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-sub-image-2d-bad-args_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-sub-image-2d_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-sub-image-cube-maps_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/texImage2DImageDataTest_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/texImageTest_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/texture-active-bind_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/texture-bindings-uneffected-on-resize_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/texture-color-profile_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/texture-complete_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/texture-npot_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/texture-transparent-pixels-initialized_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/triangle_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/uniform-location-length-limits_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/uniform-location_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/uninitialized-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/viewport-unchanged-upon-resize_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/webgl-composite-modes-repaint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/webgl-composite-modes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/webgl-depth-texture_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/webgl-exceptions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/webgl-large-texture_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/webgl-layer-update_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/webgl-specific_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/webgl-texture-binding-preserved_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/webgl-unprefixed-context-id_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/webgl-viewport-parameters-preserved_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-generated-content/malformed-url_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-generated-content/pseudo-element-events_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/css-generated-content/pseudo-transition-event_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/css-generated-content/pseudo-transition_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/auto-content-resolution-rows_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/breadth-size-resolution-grid_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/calc-resolution-grid-item_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/display-grid-set-get_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/flex-and-minmax-content-resolution-rows_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/flex-content-resolution-columns_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/flex-content-resolution-rows_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-get-set_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-auto-flow-get-set_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-auto-flow-update_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-container-change-explicit-grid-recompute-child_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-element-border-grid-item_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-element-border-padding-grid-item_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-element-empty-row-column_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-element-min-max-height_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-element-padding-grid-item_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-element-padding-margin_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-element-shrink-to-fit_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-area-get-set_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-bad-named-area-auto-placement_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-bad-resolution-double-span_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-change-order-auto-flow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-display_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-horiz-bt_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vert-lr_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vert-rl_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-margin-resolution_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-order-auto-flow-resolution_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-template-areas-get-set_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/implicit-rows-auto-resolution_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/justify-self-cell_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/minmax-fixed-logical-height-only_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/minmax-fixed-logical-width-only_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track-in-percent-grid_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track-update_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/percent-padding-margin-resolution-grid-item-update_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/percent-padding-margin-resolution-grid-item_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/percent-resolution-grid-item_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/place-cell-by-index_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-intrinsic-dimensions/height-property-value_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-intrinsic-dimensions/multicol_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/add-remove-stylesheets-at-once-minimal-recalc-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/background-position-serialize_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/background-serialize_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/border-image-style-length_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/button-height_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/checked-pseudo-selector_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/collapsed-whitespace-reattach-in-style-recalc_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/computed-offset-with-zoom_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/content/content-none_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/content/content-normal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/content/content-quotes-05_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/css-escaped-identifier_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/css-properties-case-insensitive_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/css3-nth-tokens-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/csstext-of-content-string_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/cursor-parsing-quirks_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/deprecated-flexbox-auto-min-size_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/display-inline-block-scrollbar_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/draggable-region-parser_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/dynamic-class-backdrop-pseudo_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/first-child-display-change-inverse_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/focus-display-block-inline_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/font-face-cache-bug_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/font-face-unicode-range-load_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/font-face-unicode-range-overlap-load_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/font-shorthand-from-longhands_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/fontface-properties_t01: RuntimeError # Uses FontFace class not defined for this browser
-LayoutTests/fast/css/fontfaceset-download-error_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/fontfaceset-events_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/fontfaceset-loadingdone_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/getComputedStyle/computed-style-font_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/getComputedStyle/computed-style-with-zoom_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/getComputedStyle/getComputedStyle-border-radius-shorthand_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/getComputedStyle/getComputedStyle-borderRadius-2_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/html-attr-case-sensitivity_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/id-or-class-before-stylesheet_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/inherit-initial-shorthand-values_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/invalid-predefined-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/invalidation/detach-reattach-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/invalidation/shadow-host-toggle_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/invalidation/targeted-class-any-pseudo_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/invalidation/targeted-class-host-pseudo_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/invalidation/targeted-class-shadow-combinator_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/invalidation/toggle-style-inside-shadow-root_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/link-alternate-stylesheet-1_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/link-alternate-stylesheet-2_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/link-alternate-stylesheet-3_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/link-alternate-stylesheet-4_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/link-alternate-stylesheet-5_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/media-query-recovery_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/media-rule-no-whitespace_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/modify-ua-rules-from-javascript_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parse-color-int-or-percent-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parsing-at-rule-recovery_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parsing-expr-error-recovery_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parsing-object-fit_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parsing-object-position_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parsing-page-rule_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parsing-selector-error-recovery_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parsing-unexpected-eof_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/pseudo-any_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/pseudo-target-indirect-sibling-001_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/css/pseudo-target-indirect-sibling-002_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/css/readonly-pseudoclass-opera-001_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/readonly-pseudoclass-opera-002_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/readonly-pseudoclass-opera-003_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/readonly-pseudoclass-opera-004_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/readonly-pseudoclass-opera-005_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/readwrite-contenteditable-recalc_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/shorthand-setProperty-important_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/sibling-selectors-dynamic_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/sticky/parsing-position-sticky_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/style-scoped/style-scoped-in-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/style-scoped/style-scoped-nested_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/style-scoped/style-scoped-scoping-nodes-different-order_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/style-scoped/style-scoped-shadow-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/style-scoped/style-scoped-with-dom-operation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/style-scoped/style-scoped-with-important-rule_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/style-sharing-type-and-readonly_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/stylesheet-enable-first-alternate-on-load-sheet_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/stylesheet-enable-second-alternate-link_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/webkit-keyframes-errors_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/word-break-user-modify-allowed-values_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-inherited_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-line_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-underline-position_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent-inherited_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/52776_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Attr/direction-attribute-set-and-cleared_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/DOMException/XPathException_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/DOMException/dispatch-event-exception_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/DOMImplementation/createDocument-namespace-err_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/basic_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-strict-mode-wtih-checkbox_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-user-select-none_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-zoom-and-scroll_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-with-first-letter-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/clone-node_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/createElementNS-namespace-err_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/title-property-creates-title-element_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/title-property-set-multiple-times_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/title-with-multiple-children_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Element/attribute-uppercase_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Element/getBoundingClientRect-getClientRects-relative-to-viewport_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Element/getClientRects_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Element/setAttributeNS-namespace-err_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLAnchorElement/remove-href-from-focused-anchor_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-host_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-hostname_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-pathname_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/dialog-autofocus_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/dialog-close-event_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/dialog-enabled_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/dialog-open_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/dialog-scrolled-viewport_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/dialog-show-modal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/inert-does-not-match-disabled-selector_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/inert-node-is-unfocusable_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/inert-node-is-unselectable_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/multiple-centered-dialogs_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/non-anchored-dialog-positioning_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/show-modal-focusing-steps_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/submit-dialog-close-event_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/synthetic-click-inert_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/top-layer-position-relative_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/top-layer-position-static_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDocument/active-element-gets-unforcusable_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLDocument/clone-node_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDocument/set-focus-on-valid-element_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLDocument/title-get_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDocument/title-set_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLElement/insertAdjacentHTML-errors_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLElement/set-inner-outer-optimization_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLElement/spellcheck_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLFormElement/move-option-between-documents_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLImageElement/image-alt-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLImageElement/parse-src_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLInputElement/input-image-alt-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLLinkElement/link-and-subresource-test-nonexistent_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLLinkElement/link-and-subresource-test_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLLinkElement/link-beforeload-recursive_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLLinkElement/prefetch-onerror_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLLinkElement/prefetch-onload_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLLinkElement/prefetch_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLLinkElement/resolve-url-on-insertion_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLMeterElement/set-meter-properties_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLOptionElement/collection-setter-getter_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLOutputElement/dom-settable-token-list_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLScriptElement/async-false-inside-async-false-load_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLScriptElement/async-inline-script_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLScriptElement/async-onbeforeload_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLScriptElement/defer-inline-script_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLScriptElement/defer-onbeforeload_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLScriptElement/script-set-src_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLSelectElement/selected-index-preserved-when-option-text-changes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/cloneNode_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/content-outlives-template-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/contentWrappers_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/custom-element-wrapper-gc_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/cycles-in-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/cycles_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/inertContents_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/innerHTML-inert_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/innerHTML_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/no-form-association_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/ownerDocumentXHTML_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/ownerDocument_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/xhtml-parsing-and-serialization_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/MutationObserver/observe-childList_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/MutationObserver/observe-options-attributes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/MutationObserver/observe-options-character-data_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/MutationObserver/weak-callback-gc-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Node/initial-values_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/NodeIterator/NodeIterator-basic_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/bug-19527_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/insertNode-empty-fragment-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/mutation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-comparePoint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-constructor_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-detached-exceptions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-exceptions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-expand_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-insertNode-separate-endContainer_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-insertNode-splittext_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-isPointInRange_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-on-detached-node_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/surroundContents-for-detached-node_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/SelectorAPI/caseID-almost-strict_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/SelectorAPI/caseID_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/SelectorAPI/dumpNodeList-2_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/SelectorAPI/dumpNodeList-almost-strict_t01: RuntimeError # Dartium JSInterop failure
-LayoutTests/fast/dom/SelectorAPI/dumpNodeList_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/SelectorAPI/id-fastpath-almost-strict_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/SelectorAPI/id-fastpath-strict_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/StyleSheet/css-insert-import-rule-to-shadow-stylesheets_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/StyleSheet/css-medialist-item_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/StyleSheet/detached-shadow-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/StyleSheet/empty-shadow-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Text/next-element-sibling_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Text/previous-element-sibling_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/TreeWalker/TreeWalker-basic_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Window/atob-btoa_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Window/getMatchedCSSRules-nested-rules_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Window/getMatchedCSSRules-parent-stylesheets_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Window/window-resize-contents_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Window/window-resize_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Window/window-scroll-arguments_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/XMLSerializer-attribute-entities_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/XMLSerializer-attribute-namespaces_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/XMLSerializer-doctype2_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/XMLSerializer-double-xmlns_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/anchor-without-content_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/assertion-on-node-removal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/attribute-namespaces-get-set_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/characterdata-api-arguments_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/client-width-height-quirks_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/comment-not-documentElement_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/createDocumentType-ownerDocument_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/createElementNS-namespace-errors_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/attribute-changed-callback_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/constructor-calls-created-synchronously_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/created-callback_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/document-register-basic_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/document-register-namespace_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/document-register-on-create-callback_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/document-register-svg-extends_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/document-register-type-extensions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/element-names_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/element-type_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/element-upgrade_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/lifecycle-created-createElement-recursion_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/type-extension-undo-assert_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/custom/type-extensions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/unresolved-pseudoclass_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/upgrade-candidate-remove-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/dataset-xhtml_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/dataset_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/document-set-title-mutations_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/document-set-title-no-child-on-empty_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/document-set-title-no-reuse_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/domparser-parsefromstring-mimetype-support_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/elementFromPoint-scaled-scrolled_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/getElementsByClassName/014_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/getElementsByClassName/dumpNodeList_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/horizontal-scrollbar-in-rtl-doesnt-fire-onscroll_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/horizontal-scrollbar-in-rtl_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/horizontal-scrollbar-when-dir-change_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/html-collections-named-getter-mandatory-arg_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/dialog-return-value_t01: RuntimeError # Dartium JSInterop failure
-LayoutTests/fast/dom/implementation-api-args_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/importNode-unsupported-node-type_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/jsDevicePixelRatio_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/location-hash_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/dom/navigatorcontentutils/is-protocol-handler-registered_t01: Skip # API not supported.
-LayoutTests/fast/dom/navigatorcontentutils/register-protocol-handler_t01: Skip # API not supported.
-LayoutTests/fast/dom/navigatorcontentutils/unregister-protocol-handler_t01: Skip # API not supported.
-LayoutTests/fast/dom/node-iterator-with-doctype-root_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/option-properties_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/partial-layout-non-overlay-scrollbars_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/set-innerHTML_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/access-document-of-detached-stylesheetlist-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/base-in-shadow-tree_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-element-api_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-element-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-element-includer_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-element-outside-shadow-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-pseudo-element-css-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-pseudo-element-dynamic-attribute-change_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-pseudo-element-overridden_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-pseudo-element-relative-selector-css-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-pseudo-element-with-host-pseudo-class_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-reprojection-fallback-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/custom-pseudo-in-selector-api_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/distribution-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/distribution-for-event-path_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/distribution-update-recalcs-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/elementfrompoint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/elements-in-frameless-document_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/event-path-not-in-document_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/event-path_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/form-in-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/get-distributed-nodes-orphan_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/get-element-by-id-in-shadow-mutation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/getComputedStyle-composed-parent-dirty_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/getelementbyid-in-orphan_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/getelementbyid-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/host-context-pseudo-class-css-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/host-pseudo-class-css-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/host-wrapper-reclaimed_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/insertion-point-list-menu-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/insertion-point-shadow-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/insertion-point-video-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/link-in-shadow-tree_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/nested-reprojection-inconsistent_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/no-renderers-for-light-children_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/offsetWidth-host-style-change_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/olderShadowRoot_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/pseudoclass-update-checked-option_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-optgroup_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-option_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/pseudoclass-update-enabled-optgroup_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/pseudoclass-update-enabled-option_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/reinsert-insertion-point_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/remove-and-insert-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/remove-styles-in-shadow-crash-2_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/remove-styles-in-shadow-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-aware-shadow-root_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-content-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-disable_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-element-inactive_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-element_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-hierarchy-exception_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-removechild-and-blur-event_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-root-append_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-root-js-api_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-root-node-list_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-root-text-child_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-ul-li_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowdom-dynamic-styling_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowdom-for-input-spellcheck_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowdom-for-input-type-change_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowdom-for-unknown-with-form_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowhost-keyframes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowroot-clonenode_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowroot-host_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowroot-keyframes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/sibling-rules-dynamic-changes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/stale-distribution-after-shadow-removal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/style-insertion-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/style-of-distributed-node_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/style-sharing-sibling-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/style-sharing-styles-in-older-shadow-roots_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/suppress-mutation-events-in-shadow-characterdata_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/title-element-in-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/vertical-scrollbar-when-dir-change_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/xmlserializer-serialize-to-string-exception_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dynamic/crash-generated-counter_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dynamic/crash-generated-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dynamic/crash-generated-quote_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dynamic/crash-generated-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dynamic/insertAdjacentElement_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dynamic/insertAdjacentHTML_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dynamic/recursive-layout_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/add-event-without-document_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/clipboard-clearData_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/events/clipboard-dataTransferItemList_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/events/dispatch-event-being-dispatched_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/dispatch-event-no-document_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/events/document-elementFromPoint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/event-creation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/event-listener-html-non-html-confusion_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/event-on-created-document_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/event-on-xhr-document_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/event-trace_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/fire-scroll-event_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/events/initkeyboardevent-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/invalid-003_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/invalid-004_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/mutation-during-replace-child-2_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/mutation-during-replace-child_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/scroll-event-does-not-bubble_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/scroll-event-phase_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/events/wheelevent-constructor_t01: RuntimeError # Safarimobilesim does not support WheelEvent
-LayoutTests/fast/events/tabindex-removal-from-focused-element_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/exclusions/parsing/parsing-wrap-flow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/exclusions/parsing/parsing-wrap-through_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/blob-close-read_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/blob-close-revoke_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/blob-close_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/blob-constructor_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/blob-parts-slice-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/blob-slice-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/file-reader-abort-in-last-progress_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/file-reader-methods-illegal-arguments_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/file-reader-readystate_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/url-null_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/xhr-response-blob_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/async-operations_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/directory-entry-to-uri_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-entry-to-uri_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-from-file-entry_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-metadata-after-write_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-abort-continue_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-abort-depth_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-abort_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-empty-blob_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-events_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-gc-blob_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-truncate-extend_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-write-overlapped_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/filesystem-reference_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/filesystem-unserializable_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/filesystem-uri-origin_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/input-access-entries_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-copy_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-get-entry_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-get-metadata_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-get-parent_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-move_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-read-directory_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-remove_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-restricted-chars_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-restricted-names_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-restricted-unicode_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/read-directory-many_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/read-directory_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/simple-readonly-file-object_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/simple-readonly_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/simple-required-arguments-getdirectory_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/simple-required-arguments-getfile_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/simple-temporary_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/snapshot-file-with-gc_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/flexbox/vertical-box-form-controls_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/ValidityState-typeMismatch-email_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/autocomplete_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/autofocus-input-css-style-change_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/button-baseline-and-collapsing_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/button/button-disabled-blur_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/clone-input-with-dirty-value_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/color/color-setrangetext_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/color/input-value-sanitization-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/control-detach-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datalist/datalist_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datalist/input-list_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date-multiple-fields/date-multiple-fields-change-layout-by-value_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date-multiple-fields/date-multiple-fields-onblur-setvalue-onfocusremoved_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date/input-date-validation-message_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date/input-valueasdate-date_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date/input-valueasnumber-date_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-change-layout-by-value_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datetimelocal/input-valueasdate-datetimelocal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datetimelocal/input-valueasnumber-datetimelocal_t01: RuntimeError # Dartium JSInterop failure
-LayoutTests/fast/forms/file/file-input-capture_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/focus-style-pending_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/forms/form-attribute_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/input-appearance-elementFromPoint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/input-inputmode_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/input-select-webkit-user-select-none_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/input-type-change3_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/input-value-sanitization_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/interactive-validation-assertion-by-validate-twice_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/forms/interactive-validation-attach-assertion_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/forms/interactive-validation-select-crash_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/forms/listbox-selection-2_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/menulist-disabled-selected-option_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/menulist-selection-reset_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/menulist-submit-without-selection_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/multiple-selected-options-innerHTML_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/option-change-single-selected_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/option-strip-unicode-spaces_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/plaintext-mode-1_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/search-popup-crasher_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/select-clientheight-large-size_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/select-clientheight-with-multiple-attr_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/selection-direction_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/selection-wrongtype_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/setrangetext_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/shadow-tree-exposure_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/textarea-maxlength_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/textarea-paste-newline_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/textarea-selection-preservation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/textarea-set-defaultvalue-after-value_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/html/hidden-attr_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/html/imports/import-element-removed-flag_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/html/imports/import-events_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/html/select-dropdown-consistent-background-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/boundingBox-with-continuation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/continuation-inlines-inserted-in-reverse-after-block_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/inline-position-top-align_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/inline-relative-offset-boundingbox_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/inline-with-empty-inline-children_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/out-of-flow-objects-and-whitespace-after-empty-inline_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/parent-inline-element-padding-contributes-width_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/positioned-element-padding-contributes-width_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/innerHTML/innerHTML-custom-tag_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/layers/normal-flow-hit-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/lists/list-style-position-inside_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/loader/about-blank-hash-change_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/loader/about-blank-hash-kept_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/loader/hashchange-event-properties_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/loader/onhashchange-attribute-listeners_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/loader/scroll-position-restored-on-back_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/loader/scroll-position-restored-on-reload-at-load-event_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/loader/stateobjects/replacestate-in-onunload_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/masking/parsing-clip-path-shape_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/masking/parsing-mask-source-type_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/masking/parsing-mask_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/media/matchmedium-query-api_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/media/media-query-list-syntax_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/media/media-query-list_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/media/mq-append-delete_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/media/mq-js-media-except_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/media/mq-js-media-except_t03: RuntimeError # Please triage this failure
-LayoutTests/fast/media/mq-parsing_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/mediastream/RTCIceCandidate_t01: Skip # Please triage this failure
-LayoutTests/fast/mediastream/RTCPeerConnection_t01: Skip #  Issue 23475
-LayoutTests/fast/mediastream/constructors_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/balance-short-trailing-empty-block_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/balance-trailing-border_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/balance-trailing-border_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/break-after-always-bottom-margin_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/break-properties_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/columns-shorthand-parsing_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/cssom-view_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/float-truncation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/hit-test-above-or-below_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/hit-test-end-of-column-with-line-height_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/hit-test-end-of-column_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/hit-test-float_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/hit-test-gap-between-pages-flipped_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/newmulticol/balance-maxheight_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/newmulticol/balance_t07: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/newmulticol/balance_t08: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/newmulticol/balance_t09: Skip # Times out. Please triage this failure
-LayoutTests/fast/multicol/newmulticol/balance_t10: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/vertical-lr/break-properties_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/vertical-lr/float-truncation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/vertical-rl/break-properties_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/vertical-rl/float-truncation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/widows_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/widows_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/overflow/child-100percent-height-inside-fixed-container-with-overflow-auto_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/overflow/replaced-child-100percent-height-inside-fixed-container-with-overflow-auto_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/overflow/scrollbar-restored_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/parser/foster-parent-adopted_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/parser/fragment-parser-doctype_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/parser/innerhtml-with-prefixed-elements_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/parser/pre-first-line-break_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/available-height-for-content_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/container-width-zero_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-anonymous-table-cell_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/preferred-widths_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/table-percent-height-text-controls_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/table-percent-height_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/table-percent-width_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/ruby/ruby-line-height_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/scrolling/scroll-element-into-view_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/parsing/parsing-shape-image-threshold_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/parsing/parsing-shape-lengths_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/parsing/parsing-shape-margin_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/parsing/parsing-shape-outside-none_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/parsing/parsing-shape-outside_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/parsing/parsing-shape-property-aliases_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-big-box-border-radius_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-diamond-margin-polygon_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-margin-left_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-margin-right_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t02: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-left_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-right_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/speechsynthesis/speech-synthesis-boundary-events_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/speechsynthesis/speech-synthesis-cancel_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/speechsynthesis/speech-synthesis-pause-resume_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/speechsynthesis/speech-synthesis-speak_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/speechsynthesis/speech-synthesis-utterance-uses-voice_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/speechsynthesis/speech-synthesis-voices_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/storage/disallowed-storage_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/storage/storage-disallowed-in-data-url_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/sub-pixel/boundingclientrect-subpixel-margin_t01: Skip # Issue 747
-LayoutTests/fast/sub-pixel/computedstylemargin_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/sub-pixel/cssom-subpixel-precision_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/sub-pixel/float-list-inside_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/sub-pixel/inline-block-with-padding_t01: Skip # Issue 747
-LayoutTests/fast/sub-pixel/layout-boxes-with-zoom_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/sub-pixel/shadows-computed-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/sub-pixel/size-of-span-with-different-positions_t01: Skip # Issue 747
-LayoutTests/fast/svg/getbbox_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/svg/tabindex-focus_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/svg/whitespace-angle_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/svg/whitespace-integer_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/svg/whitespace-length_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/svg/whitespace-number_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/absolute-table-percent-lengths_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/caption-orthogonal-writing-mode-sizing_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/css-table-max-height_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/css-table-max-width_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/css-table-width-with-border-padding_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/fixed-table-layout-width-change_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/hittest-tablecell-right-edge_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/hittest-tablecell-with-borders-right-edge_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/html-table-width-max-width-constrained_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/incorrect-colgroup-span-values_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/large-shrink-wrapped-width_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/margins-perpendicular-containing-block_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/min-width-css-block-table_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/table/min-width-css-inline-table_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/table/min-width-html-block-table_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/table/min-width-html-inline-table_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/table/nested-tables-with-div-offset_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/padding-height-and-override-height_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/switch-table-layout-dynamic-cells_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/switch-table-layout-multiple-section_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/switch-table-layout_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-all-rowspans-height-distribution-in-rows-except-overlapped_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-all-rowspans-height-distribution-in-rows_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-cell-offset-width_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-colgroup-present-after-table-row_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-rowspan-cell-with-empty-cell_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-rowspan-height-distribution-in-rows_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-rowspan-height-distribution-in-rows_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-sections-border-spacing_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-with-content-width-exceeding-max-width_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/find-case-folding_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/find-russian_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/find-soft-hyphen_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/find-spaces_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/font-ligature-letter-spacing_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/text/font-ligatures-linebreak-word_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/font-ligatures-linebreak_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/glyph-reordering_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/international/cjk-segmentation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/international/iso-8859-8_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/international/listbox-width-rtl_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/international/thai-offsetForPosition-inside-character_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/ipa-tone-letters_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/line-break-after-question-mark_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/line-breaks-after-hyphen-before-number_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/offsetForPosition-cluster-at-zero_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/remove-zero-length-run_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/sub-pixel/text-scaling-ltr_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/sub-pixel/text-scaling-pixel_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/sub-pixel/text-scaling-rtl_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/sub-pixel/text-scaling-vertical_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/sub-pixel/text-scaling-webfont_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/text-combine-shrink-to-fit_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/tokenizer/entities_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/tokenizer/entities_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/tokenizer/entities_t03: RuntimeError # Please triage this failure
-LayoutTests/fast/transforms/bounding-rect-zoom_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/transforms/hit-test-large-scale_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/anchor_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/file-http-base_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/file_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/host-lowercase-per-scheme_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/host_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/idna2003_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/idna2008_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/invalid-urls-utf8_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/ipv4_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/ipv6_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/path_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/port_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/query_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/relative-unix_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/relative-win_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/relative_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/safari-extension_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/segments-from-data-url_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/segments_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/standard-url_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/writing-mode/auto-sizing-orthogonal-flows_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/writing-mode/table-hit-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/writing-mode/vertical-font-vmtx-units-per-em_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-get_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-responseXML-xml-text-responsetype_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-arraybuffer_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-before-open-sync-request_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-sync-request_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-set-responsetype_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Borrowed/cz_20030217_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Borrowed/namespace-nodes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Core/test_node_test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Core/test_node_test_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Core/test_parser_t01: RuntimeError # Dartium JSInterop failure
-LayoutTests/fast/xpath/ambiguous-operators_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/attr-namespace_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/ensure-null-namespace_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/implicit-node-args_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/invalid-resolver_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/node-name-case-sensitivity_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/node-name-case-sensitivity_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/position_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/py-dom-xpath/abbreviations_t01: RuntimeError # Dartium JSInterop failure
-LayoutTests/fast/xpath/py-dom-xpath/axes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/py-dom-xpath/data_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/py-dom-xpath/expressions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/py-dom-xpath/paths_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/reverse-axes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/xpath-template-element_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xsl/default-html_t01: RuntimeError # Please triage this failure
-LibTest/async/Future/doWhile_A05_t01: RuntimeError # Please triage this failure
-LibTest/async/Future/forEach_A04_t02: RuntimeError # Please triage this failure
-LibTest/async/Stream/timeout_A01_t01: Pass, RuntimeError # Please triage this failure
-LibTest/async/Stream/timeout_A03_t01: Pass, RuntimeError # Please triage this failure
-LibTest/async/Stream/timeout_A04_t01: Pass, RuntimeError # Please triage this failure
-LibTest/core/List/List_A02_t01: RuntimeError # Please triage this failure
-LibTest/core/List/List_A03_t01: RuntimeError # Please triage this failure
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError # Issue 22200
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError # Issue 22200
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError # Issue 22200
-LibTest/core/double/roundToDouble_A01_t01: RuntimeError # Please triage this failure
-LibTest/core/double/round_A01_t01: RuntimeError # Please triage this failure
-LibTest/core/int/compareTo_A01_t01: RuntimeError # Please triage this failure
-LibTest/core/int/operator_left_shift_A01_t01: RuntimeError # Please triage this failure
-LibTest/core/int/operator_remainder_A01_t03: RuntimeError # Please triage this failure
-LibTest/core/int/operator_truncating_division_A01_t02: RuntimeError # Please triage this failure
-LibTest/core/int/remainder_A01_t01: RuntimeError # Please triage this failure
-LibTest/core/int/remainder_A01_t03: RuntimeError # Please triage this failure
-LibTest/core/int/toRadixString_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/CanvasRenderingContext2D/addEventListener_A01_t03: RuntimeError # Please triage this failure
-LibTest/html/CanvasRenderingContext2D/addEventListener_A01_t06: RuntimeError # Please triage this failure
-LibTest/html/Document/childNodes_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Document/clone_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Document/clone_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Document/getElementsByTagName_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Document/securityPolicy_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/Element.tag_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/attributeChanged_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/borderEdge_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/contentEdge_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/dataset_A02_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/enteredView_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/getAttributeNS_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/getAttributeNS_A02_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/getBoundingClientRect_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Element/getClientRects_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Element/getNamespacedAttributes_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/isContentEditable_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/isContentEditable_A02_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/isTagSupported_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/isTagSupported_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Element/leftView_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/marginEdge_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/mouseWheelEvent_A01_t01: Skip # Safari mobile sim does not support WheelEvent
-LibTest/html/Element/onMouseWheel_A01_t01: Skip # Safari mobile sim does not support WheelEvent
-LibTest/html/Element/onTransitionEnd_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/paddingEdge_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/querySelectorAll_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Element/replaceWith_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Element/tagName_A01_t03: RuntimeError # Please triage this failure
-LibTest/html/Element/transitionEndEvent_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/getAllResponseHeaders_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/getResponseHeader_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/getString_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/onError_A01_t02: Skip # Times out. Please triage this failure
-LibTest/html/HttpRequest/request_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/responseText_A01_t02: Skip # Times out. Please triage this failure
-LibTest/html/HttpRequest/responseType_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/responseType_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/setRequestHeader_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/statusText_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/status_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequestUpload/onError_A01_t02: Skip # Times out. Please triage this failure
-LibTest/html/HttpRequestUpload/onLoadEnd_A01_t01: Skip # Times out. Please triage this failure
-LibTest/html/HttpRequestUpload/onLoadStart_A01_t01: Skip # Times out. Please triage this failure
-LibTest/html/HttpRequestUpload/onLoad_A01_t01: Skip # Times out. Please triage this failure
-LibTest/html/IFrameElement/IFrameElement.created_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/attributeChanged_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/attributes_setter_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/blur_A01_t01: Skip # Times out. Please triage this failure
-LibTest/html/IFrameElement/borderEdge_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/clone_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/contentWindow_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/createFragment_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/createFragment_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/createFragment_A01_t03: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/createShadowRoot_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/getNamespacedAttributes_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/innerHtml_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/isContentEditable_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/leftView_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/marginEdge_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/mouseWheelEvent_A01_t01: Skip # Safari mobile sim does not support WheelEvent
-LibTest/html/IFrameElement/onMouseWheel_A01_t01: Skip # Safari mobile sim does not support WheelEvent
-LibTest/html/IFrameElement/offsetTo_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/onTransitionEnd_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/outerHtml_setter_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/paddingEdge_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/querySelector_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/setInnerHtml_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/tagName_A01_t03: RuntimeError # Please triage this failure
-LibTest/html/Node/append_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Node/nodes_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Node/nodes_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Node/parent_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Node/previousNode_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/close_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/document_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/find_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/find_A03_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/find_A06_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/moveBy_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/moveTo_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/moveTo_A02_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/open_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/postMessage_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/postMessage_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Window/requestFileSystem_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/requestFileSystem_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Window/requestFileSystem_A02_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/resizeBy_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/resizeTo_A01_t01: RuntimeError # Please triage this failure
-LibTest/typed_data/Float32x4List/Float32x4List.view_A06_t01: RuntimeError # Please triage this failure
-LibTest/typed_data/Int32x4/operator_OR_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/DOMEvents/approved/EventObject.after.dispatchEvenr_t01: RuntimeError # Please triage this failure
-WebPlatformTest/DOMEvents/approved/EventObject.multiple.dispatchEvent_t01: RuntimeError # Please triage this failure
-WebPlatformTest/DOMEvents/approved/ProcessingInstruction.DOMCharacterDataModified_t01: Skip # Times out. Please triage this failure
-WebPlatformTest/DOMEvents/approved/addEventListener.optional.useCapture_t01: RuntimeError # Please triage this failure
-WebPlatformTest/Utils/test/asyncTestFail_t01: RuntimeError # Please triage this failure
-WebPlatformTest/Utils/test/asyncTestFail_t02: RuntimeError # Please triage this failure
-WebPlatformTest/Utils/test/asyncTestTimeout_t01: Skip # Times out. Please triage this failure
-WebPlatformTest/custom-elements/concepts/type_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/concepts/type_A04_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/concepts/type_A05_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/concepts/type_A06_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/concepts/type_A07_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/concepts/type_A08_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElementNS_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElementNS_A02_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElementNS_A03_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElementNS_A04_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElementNS_A05_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElement_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElement_A02_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElement_A03_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElement_A04_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElement_A05_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/isAttribute_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/isAttribute_A01_t02: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/isAttribute_A02_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/isAttribute_A03_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/localName_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/namespace_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/EventTarget/dispatchEvent_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/EventTarget/dispatchEvent_A02_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/EventTarget/dispatchEvent_A03_t01: Skip # Times out. Please triage this failure
-WebPlatformTest/dom/events/type_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/DOMImplementation-createDocumentType_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/DOMImplementation-createDocument_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/DOMImplementation-hasFeature_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Document-adoptNode_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Document-createElementNS_t02: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Document-getElementsByTagName_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Document-importNode_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Element-childElementCount_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Node-appendChild_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Node-appendChild_t02: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Node-insertBefore_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Node-isEqualNode_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Node-replaceChild_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/attributes_A04_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/attributes_A05_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A05_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A06_t03: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A07_t02: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A07_t03: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A08_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A09_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A09_t02: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttribute_A02_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttribute_A02_t02: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttribute_A03_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/ranges/Range-attributes_t02: RuntimeError # Please triage this failure
-WebPlatformTest/dom/ranges/Range-comparePoint_t02: RuntimeError # Please triage this failure
-WebPlatformTest/dom/ranges/Range-comparePoint_t03: RuntimeError # Please triage this failure
-WebPlatformTest/dom/ranges/Range-detach_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-imports/link-import_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-imports/link-import_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html-imports/loading-import_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/additions-to-the-steps-to-clone-a-node/template-clone-children_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/additions-to-the-steps-to-clone-a-node/templates-copy-document-owner_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/definitions/template-contents-owner-document-type_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/definitions/template-contents-owner-test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/definitions/template-contents_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/innerhtml-on-templates/innerhtml_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-foster-parenting/template-is-a-foster-parent-element_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-foster-parenting/template-is-not-a-foster-parent-element_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/generating-of-implied-end-tags_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/ignore-body-token_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/ignore-frameset-token_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/ignore-head-token_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/ignore-html-token_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/start-tag-body_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-head-insertion-mode/generating-of-implied-end-tags_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-table-insertion-mode/end-tag-table_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/appending-to-a-template/template-child-nodes_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-body-context_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-context_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-row-context_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/creating-an-element-for-the-token/template-owner-document_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/serializing-html-templates/outerhtml_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/template-element/content-attribute_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/template-element/node-document-changes_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/template-element/template-as-a-descendant_t01 : RuntimeError # In Safari mobile sim, setting innerHTML on a Frameset element does nothing.
-WebPlatformTest/html-templates/template-element/template-content-node-document_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/template-element/template-content_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-image_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-video_t01: Skip # Times out. Please triage this failure
-WebPlatformTest/html/browsers/browsing-the-web/read-text/load-text-plain_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.body-getter_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.body-setter_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.getElementsByName-namespace_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t05: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t07: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/nameditem_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/elements/global-attributes/dataset-delete_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/elements/global-attributes/dataset-get_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/elements/global-attributes/dataset-set_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/document-metadata/styling/LinkStyle_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/embedded-content/media-elements/error-codes/error_t01: Skip # Times out. Please triage this failure
-WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/src_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/cues_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/mode_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formAction_document_address_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formaction_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/textfieldselection/selection_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/textfieldselection/textfieldselection-setRangeText_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-button-element/button-validation_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-datalist-element/datalistelement_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-datalist-element/datalistoptions_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-fieldset-element/disabled_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-form-element/form-autocomplete_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-form-element/form-elements-matches_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-form-element/form-elements-nameditem_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/color_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/date_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/datetime-local_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/datetime_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/datetime_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/email_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/hidden_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/input-textselection_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/month_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/password_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/range_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/text_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/time_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/time_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/type-change-state_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/url_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/valueMode_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/week_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-meter-element/meter_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-option-element/option-text-recurse_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-option-element/option-text-spaces_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/grouping-content/the-blockquote-element/grouping-blockquote_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/interactive-elements/the-details-element/toggleEvent_t01: Skip # Times out. Please triage this failure
-WebPlatformTest/html/semantics/interactive-elements/the-dialog-element/dialog-close_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/interactive-elements/the-dialog-element/dialog-showModal_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/scripting-1/the-script-element/async_t11: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/scripting-1/the-script-element/script-text_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/checked_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/default_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/dir_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/disabled_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/enabled_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/focus_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/indeterminate_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/inrange-outofrange_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/valid-invalid_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/tabular-data/the-table-element/table-insertRow_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/tabular-data/the-table-element/table-rows_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/tabular-data/the-tr-element/rowIndex_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/syntax/parsing/Document.getElementsByTagName-foreign_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/syntax/serializing-html-fragments/outerHTML_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t01: Skip # Times out. Please triage this failure
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t03: RuntimeError # Please triage this failure
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t04: RuntimeError # Please triage this failure
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t05: RuntimeError # Please triage this failure
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t06: RuntimeError # Please triage this failure
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol_t00: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t02: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/elements-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-event-interface/event-path-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-007_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-008_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-009_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-010_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-011_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-012_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-013_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-007_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-010_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t02: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-006_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t02: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/event-dispatch/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/event-dispatch/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/event-dispatch/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/event-retargeting/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/event-retargeting/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/event-retargeting/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/event-retargeting/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-006_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-007_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-008_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-009_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t02: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t03: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t04: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t05: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t06: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/inert-html-elements/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/composition/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/custom-pseudo-elements/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/distribution-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/nested-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/rendering-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/reprojection/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-006_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-017_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/shadow-root-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-007_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-009_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-011_t01: RuntimeError # Please triage this failure
-WebPlatformTest/webstorage/event_constructor_t01: RuntimeError # Please triage this failure
-WebPlatformTest/webstorage/event_constructor_t02: RuntimeError # Please triage this failure
-WebPlatformTest/webstorage/event_local_key_t01: RuntimeError # Please triage this failure
-WebPlatformTest/webstorage/event_session_key_t01: RuntimeError # Please triage this failure
 
 [ $compiler == dart2js && $runtime == ie11 ]
 Language/Expressions/Conditional/type_t04: Skip # Times out. Please triage this failure
@@ -6910,7 +4109,7 @@
 LayoutTests/fast/css/id-or-class-before-stylesheet_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/image-set-setting_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/implicit-attach-marking_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/css/important-js-override_t01:  RuntimeError # Please triage this failure
+LayoutTests/fast/css/important-js-override_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/inherit-initial-shorthand-values_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/inherited-properties-rare-text_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/insertRule-font-face_t01: RuntimeError # Please triage this failure
@@ -8197,7 +5396,7 @@
 WebPlatformTest/html-templates/serializing-html-templates/outerhtml_t01: RuntimeError # Please triage this failure
 WebPlatformTest/html-templates/template-element/content-attribute_t01: RuntimeError # Please triage this failure
 WebPlatformTest/html-templates/template-element/node-document-changes_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/template-element/template-as-a-descendant_t01 : RuntimeError # In IE, setting innerHTML on a Frameset element does nothing.
+WebPlatformTest/html-templates/template-element/template-as-a-descendant_t01: RuntimeError # In IE, setting innerHTML on a Frameset element does nothing.
 WebPlatformTest/html-templates/template-element/template-content-node-document_t01: RuntimeError # Please triage this failure
 WebPlatformTest/html-templates/template-element/template-content_t01: RuntimeError # Please triage this failure
 WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-image_t01: Skip # Times out. Please triage this failure
@@ -8404,13 +5603,2814 @@
 WebPlatformTest/webstorage/event_session_url_t01: RuntimeError # Please triage this failure
 WebPlatformTest/webstorage/storage_builtins_t01: RuntimeError # Please triage this failure
 
-[ $compiler == dart2js && $runtime == ie11 && $builder_tag == win8]
-LibTest/typed_data/ByteData/offsetInBytes_A01_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/XMLSerializer-attribute-entities_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/serialize-attribute_t01: RuntimeError # Please triage this failure
+[ $compiler == dart2js && $runtime == jsshell ]
+Language/Expressions/Await_Expressions/execution_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Expressions/Await_Expressions/execution_t02: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Expressions/Await_Expressions/execution_t03: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Expressions/Await_Expressions/execution_t04: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Expressions/Await_Expressions/execution_t05: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Expressions/Await_Expressions/execution_t06: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Statements/For/Asynchronous_For_in/execution_t04: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t04: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t02: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t03: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t04: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t05: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t06: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t07: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t08: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t09: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t10: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/async/Future/Future.delayed_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/async/Future/Future.delayed_A03_t01: Fail # Issue 7728, timer not supported in jsshell
+LibTest/async/Future/doWhile_A05_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
+LibTest/async/Future/forEach_A04_t02: RuntimeError # Please triage. May be unsupported timer issue 7728.
+LibTest/async/Future/timeout_A01_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
+LibTest/async/Future/wait_A01_t07: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/async/Stream/Stream.periodic_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/async/Stream/Stream.periodic_A02_t01: Fail # Issue 7728, timer not supported in jsshell
+LibTest/async/Stream/Stream.periodic_A03_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/async/Stream/asBroadcastStream_A03_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/async/Stream/asBroadcastStream_A04_t03: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/async/Stream/first_A01_t01: Fail # co19-roll r546: Please triage this failure
+LibTest/async/Stream/first_A02_t02: Fail # co19-roll r546: Please triage this failure
+LibTest/async/Stream/timeout_A01_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
+LibTest/async/Stream/timeout_A02_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
+LibTest/async/Stream/timeout_A03_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
+LibTest/async/Stream/timeout_A04_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
+LibTest/async/Timer/Timer.periodic_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/async/Timer/Timer.periodic_A02_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/async/Timer/Timer_A01_t01: Fail # Issue 7728, timer not supported in jsshell
+LibTest/async/Timer/cancel_A01_t01: Fail # Issue 7728, timer not supported in jsshell
+LibTest/async/Timer/isActive_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/async/Timer/isActive_A01_t02: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/async/Zone/createPeriodicTimer_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/async/Zone/createTimer_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/core/List/sort_A01_t04: Skip # Must be a bug in jsshell, test sometimes times out.
+LibTest/core/Map/Map_class_A01_t04: Pass, Slow # Issue 8096
+LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: Fail # co19-roll r706: Please triage this failure.
+LibTest/core/Stopwatch/elapsedInMs_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/core/Stopwatch/elapsedInUs_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/core/Stopwatch/elapsedTicks_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/Stopwatch/elapsedTicks_A01_t02: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/core/Stopwatch/elapsedTicks_A01_t03: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/core/Stopwatch/elapsed_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/core/Stopwatch/elapsed_A01_t02: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/core/Stopwatch/elapsed_A01_t03: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/core/Stopwatch/start_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/Stopwatch/start_A01_t02: RuntimeError # Please triage this failure
+LibTest/core/Stopwatch/start_A01_t03: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/core/Stopwatch/stop_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/core/Uri/Uri_A06_t03: Pass, Slow
+LibTest/isolate/Isolate/spawn_A03_t01: RuntimeError # Please triage this failure
+LibTest/isolate/Isolate/spawn_A03_t03: RuntimeError # Please triage this failure
+LibTest/isolate/Isolate/spawn_A03_t04: RuntimeError # Please triage this failure
+LibTest/isolate/Isolate/spawn_A04_t02: RuntimeError # Please triage this failure
+LibTest/isolate/Isolate/spawn_A04_t03: Fail # Please triage this failure
+LibTest/isolate/Isolate/spawn_A04_t04: Fail # Issue 27558
+LibTest/isolate/Isolate/spawn_A04_t05: Fail # Please triage this failure
+LibTest/isolate/Isolate/spawn_A06_t02: Fail # Please triage this failure
+LibTest/isolate/Isolate/spawn_A06_t03: Fail # Please triage this failure
+LibTest/isolate/Isolate/spawn_A06_t04: RuntimeError # Please triage this failure
+LibTest/isolate/Isolate/spawn_A06_t05: RuntimeError # Please triage this failure
+LibTest/isolate/Isolate/spawn_A06_t07: Fail # Please triage this failure
+LibTest/isolate/RawReceivePort/close_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/isolate/ReceivePort/asBroadcastStream_A03_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/isolate/ReceivePort/asBroadcastStream_A04_t03: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/isolate/ReceivePort/close_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/typed_data/Float32List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
+LibTest/typed_data/Float32x4List/Float32x4List.view_A06_t01: Fail # co19-roll r587: Please triage this failure
+LibTest/typed_data/Float64List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
+LibTest/typed_data/Int16List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
+LibTest/typed_data/Int16List/toList_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Int32List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
+LibTest/typed_data/Int32List/toList_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Int32x4/operator_OR_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/typed_data/Int8List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
+LibTest/typed_data/Uint16List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
+LibTest/typed_data/Uint16List/toList_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Uint32List/toList_A01_t01: Skip # issue 16934, co19-roll r559: Please triage this failure
+LibTest/typed_data/Uint8ClampedList/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
+LibTest/typed_data/Uint8List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
 
-[ $compiler == dart2js && $runtime == ie11 && $builder_tag == win7]
-LayoutTests/fast/files/file-reader-result-twice_t01: Pass, RuntimeError # Issue 31430
+[ $compiler == dart2js && $runtime == jsshell && $checked ]
+LibTest/core/Map/Map_class_A01_t04: Skip # Issue 18093, timeout.
+LibTest/core/Uri/Uri_A06_t03: Skip # Issue 18093, timeout.
+LibTest/core/Uri/encodeQueryComponent_A01_t02: Skip # Issue 18093, timeout.
+
+[ $compiler == dart2js && $runtime == jsshell && $fast_startup ]
+LibTest/isolate/ReceivePort/asBroadcastStream_A03_t01: Fail # please triage
+
+[ $compiler == dart2js && $runtime == safari ]
+LayoutTests/fast/alignment/parse-align-items_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/alignment/parse-align-self_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/alignment/parse-justify-self_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/animation/request-animation-frame-cancel2_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/animation/request-animation-frame-cancel_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/animation/request-animation-frame-timestamps-advance_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/animation/request-animation-frame-timestamps_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/animation/request-animation-frame-within-callback_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/backgrounds/background-repeat-computed-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/backgrounds/repeat/parsing-background-repeat_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/borders/border-image-width-numbers-computed-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/2d.fillText.gradient_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.gradient_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.negative_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.veryLarge_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.verySmall_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/alpha_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-arc-negative-radius_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-as-image-incremental-repaint_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/canvas/canvas-blend-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blend-solid_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-clipping_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-color-over-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-color-over-gradient_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-color-over-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-color-over-pattern_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-fill-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-global-alpha_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-gradient-over-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-gradient-over-gradient_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-gradient-over-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-gradient-over-pattern_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-image-over-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-image-over-gradient_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-image-over-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-image-over-pattern_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-pattern-over-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-pattern-over-gradient_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-pattern-over-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-pattern-over-pattern_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-transforms_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-currentTransform_t01: RuntimeError # Feature is not implemented
+LayoutTests/fast/canvas/canvas-drawImage-scaled-copy-to-self_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-ellipse-zero-lineto_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-empty-image-pattern_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-fillStyle-no-quirks-parsing_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-font-consistency_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-getImageData-invalid_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-getImageData-large-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-getImageData-largeNonintegralDimensions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-large-dimensions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-large-fills_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-lineDash-input-sequence_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-lose-restore-googol-size_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-lose-restore-max-int-size_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-putImageData_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-quadratic-same-endpoint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-resetTransform_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-scale-shadowBlur_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-scale-strokePath-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-setTransform_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/draw-custom-focus-ring_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/drawImage-with-broken-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/drawImage-with-valid-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/getPutImageDataPairTest_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/setWidthResetAfterForcedRender_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/canvas/webgl/WebGLContextEvent_t01: Skip # Issue 29010
+LayoutTests/fast/canvas/webgl/context-attributes-alpha-depth-stencil-antialias-t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/context-lost-restored_t01: Skip # Issue 28640
+LayoutTests/fast/canvas/webgl/context-lost_t01: Skip
+LayoutTests/fast/canvas/webgl/glsl-conformance_t01: Skip # Times out 1 out of 20.
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgb565_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgba4444_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgba5551_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgb565_t01: Skip # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba4444_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba5551_t01: Skip # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video_t01: Skip
+LayoutTests/fast/canvas/webgl/texture-transparent-pixels-initialized_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/uniform-location_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-depth-texture_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-large-texture_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-generated-content/malformed-url_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-generated-content/pseudo-animation-before-onload_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/css-generated-content/pseudo-animation_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/css-generated-content/pseudo-element-events_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/css-generated-content/pseudo-transition-event_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/css-generated-content/pseudo-transition_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/auto-content-resolution-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/breadth-size-resolution-grid_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/calc-resolution-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/display-grid-set-get_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/flex-and-minmax-content-resolution-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/flex-content-resolution-columns_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/flex-content-resolution-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-get-set_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-auto-flow-get-set_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-auto-flow-update_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-container-change-explicit-grid-recompute-child_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-border-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-border-padding-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-empty-row-column_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-min-max-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-padding-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-padding-margin_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-shrink-to-fit_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-area-get-set_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-bad-named-area-auto-placement_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-bad-resolution-double-span_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-change-order-auto-flow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-display_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-horiz-bt_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vert-lr_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vert-rl_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-margin-resolution_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-order-auto-flow-resolution_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-template-areas-get-set_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/implicit-rows-auto-resolution_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/justify-self-cell_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/minmax-fixed-logical-height-only_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/minmax-fixed-logical-width-only_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track-in-percent-grid_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track-update_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-padding-margin-resolution-grid-item-update_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-padding-margin-resolution-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-resolution-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/place-cell-by-index_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/MarqueeLayoutTest_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/aspect-ratio-inheritance_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/aspect-ratio-parsing-tests_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/background-serialize_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/border-image-style-length_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/checked-pseudo-selector_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/computed-offset-with-zoom_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/content/content-none_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/content/content-normal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/content/content-quotes-01_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
+LayoutTests/fast/css/content/content-quotes-05_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
+LayoutTests/fast/css/counters/counter-cssText_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/css-escaped-identifier_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/css3-nth-tokens-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/cssText-shorthand_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/csstext-of-content-string_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/deprecated-flexbox-auto-min-size_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/css/draggable-region-parser_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/dynamic-class-backdrop-pseudo_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/first-child-display-change-inverse_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/focus-display-block-inline_t01: Pass, RuntimeError # Fails 5 out of 10.
+LayoutTests/fast/css/focus-display-block-inline_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/font-face-cache-bug_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/font-face-unicode-range-load_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/font-face-unicode-range-monospace_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/font-face-unicode-range-overlap-load_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/font-property-priority_t01: RuntimeError # Fails 10 out of 10.
+LayoutTests/fast/css/font-shorthand-from-longhands_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/fontface-properties_t01: RuntimeError # Uses FontFace class, not defined for this browser.
+LayoutTests/fast/css/fontfaceset-download-error_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/fontfaceset-events_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/fontfaceset-loadingdone_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/getComputedStyle/computed-style-border-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/getComputedStyle/computed-style-cross-fade_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/getComputedStyle/computed-style-font_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/getComputedStyle/computed-style-with-zoom_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/getComputedStyle/counterIncrement-without-counter_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/getPropertyValue-clip_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/getPropertyValue-columns_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/html-attr-case-sensitivity_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/id-or-class-before-stylesheet_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/important-js-override_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/inherit-initial-shorthand-values_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/inherited-properties-rare-text_t01: RuntimeError # Fails 10 out of 10.
+LayoutTests/fast/css/invalid-not-with-simple-selector-sequence_t01: RuntimeError # Fails 10 out of 10.
+LayoutTests/fast/css/invalid-predefined-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/invalidation/detach-reattach-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/invalidation/shadow-host-toggle_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/invalidation/targeted-class-host-pseudo_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/invalidation/targeted-class-shadow-combinator_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/invalidation/toggle-style-inside-shadow-root_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/link-alternate-stylesheet-1_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/link-alternate-stylesheet-2_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/link-alternate-stylesheet-3_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/link-alternate-stylesheet-4_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/link-alternate-stylesheet-5_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/media-query-recovery_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/media-rule-no-whitespace_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parse-color-int-or-percent-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-at-rule-recovery_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-css-nonascii_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-css-nth-child_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-font-variant-ligatures_t01: RuntimeError # Fails 10 out of 10.
+LayoutTests/fast/css/parsing-object-position_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-page-rule_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-selector-error-recovery_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-unexpected-eof_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/pseudo-any_t01: Pass, RuntimeError # Fails 4 out of 10.
+LayoutTests/fast/css/pseudo-any_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/pseudo-target-indirect-sibling-001_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/css/pseudo-target-indirect-sibling-002_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/css/readonly-pseudoclass-opera-001_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/readonly-pseudoclass-opera-002_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/readonly-pseudoclass-opera-003_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/readonly-pseudoclass-opera-004_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/readonly-pseudoclass-opera-005_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/selector-text-escape_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/css/shorthand-setProperty-important_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/sticky/parsing-position-sticky_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/string-quote-binary_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-scoped/style-scoped-in-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-scoped/style-scoped-nested_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-scoped/style-scoped-scoping-nodes-different-order_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-scoped/style-scoped-shadow-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-scoped/style-scoped-with-dom-operation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-scoped/style-scoped-with-important-rule_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/stylesheet-enable-first-alternate-on-load-sheet_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/stylesheet-enable-second-alternate-link_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/transform-origin-parsing_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/unicode-bidi-computed-value_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/webkit-keyframes-errors_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-inherited_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-line_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-underline-position_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent-inherited_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/52776_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Attr/direction-attribute-set-and-cleared_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/DOMException/XPathException_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/DOMException/dispatch-event-exception_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/DOMImplementation/createDocument-namespace-err_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/CaretRangeFromPoint/basic_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-strict-mode-wtih-checkbox_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-user-select-none_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-zoom-and-scroll_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-with-first-letter-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/createElementNS-namespace-err_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Element/getClientRects_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Element/offsetTop-table-cell_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Element/setAttributeNS-namespace-err_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLAnchorElement/remove-href-from-focused-anchor_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-host_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-hostname_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-pathname_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-autofocus_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-close-event_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-enabled_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-open_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-return-value_t01: RuntimeError # Dartium JSInterop failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-scrolled-viewport_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-show-modal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/inert-does-not-match-disabled-selector_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/inert-node-is-unfocusable_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/inert-node-is-unselectable_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/multiple-centered-dialogs_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/non-anchored-dialog-positioning_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/show-modal-focusing-steps_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/submit-dialog-close-event_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/synthetic-click-inert_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/top-layer-position-relative_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/top-layer-position-static_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDocument/active-element-gets-unforcusable_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLDocument/set-focus-on-valid-element_t01: Skip
+LayoutTests/fast/dom/HTMLElement/insertAdjacentHTML-errors_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLElement/set-inner-outer-optimization_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLElement/spellcheck_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLFormElement/move-option-between-documents_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLImageElement/image-alt-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLImageElement/parse-src_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLInputElement/input-image-alt-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLLinkElement/link-and-subresource-test-nonexistent_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLLinkElement/link-and-subresource-test_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLLinkElement/prefetch-onerror_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLLinkElement/prefetch-onload_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLLinkElement/prefetch_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLLinkElement/resolve-url-on-insertion_t01: RuntimeError # Fails 10 out of 10.
+LayoutTests/fast/dom/HTMLOptionElement/collection-setter-getter_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLOutputElement/dom-settable-token-list_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLOutputElement/htmloutputelement_t01: Pass, RuntimeError # Issue 29632
+LayoutTests/fast/dom/HTMLScriptElement/async-false-inside-async-false-load_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLScriptElement/async-inline-script_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLScriptElement/async-onbeforeload_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLScriptElement/defer-inline-script_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLScriptElement/defer-onbeforeload_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLScriptElement/script-set-src_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLSelectElement/selected-index-preserved-when-option-text-changes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/custom-element-wrapper-gc_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/cycles-in-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/innerHTML_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/ownerDocumentXHTML_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/MutationObserver/observe-childList_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/MutationObserver/observe-options-attributes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/MutationObserver/observe-options-character-data_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/MutationObserver/weak-callback-gc-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Node/initial-values_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/NodeIterator/NodeIterator-basic_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/bug-19527_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/insertNode-empty-fragment-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/mutation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-comparePoint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-constructor_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-created-during-remove-children_t01: RuntimeError
+LayoutTests/fast/dom/Range/range-detached-exceptions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-exceptions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-expand_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-insertNode-separate-endContainer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-insertNode-splittext_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-isPointInRange_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-on-detached-node_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/remove-twice-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/surroundContents-for-detached-node_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/SelectorAPI/dumpNodeList-2_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/SelectorAPI/dumpNodeList_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/StyleSheet/css-insert-import-rule-to-shadow-stylesheets_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/StyleSheet/css-medialist-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/StyleSheet/detached-shadow-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/StyleSheet/empty-shadow-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/TreeWalker/TreeWalker-basic_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Window/atob-btoa_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Window/getMatchedCSSRules-parent-stylesheets_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Window/window-resize-contents_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Window/window-resize_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Window/window-scroll-arguments_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/XMLSerializer-attribute-entities_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/XMLSerializer-double-xmlns_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/anchor-without-content_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/attribute-namespaces-get-set_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/background-shorthand-csstext_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/characterdata-api-arguments_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/client-width-height-quirks_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/css-selectorText_t01: RuntimeError # Fails 10 out of 10.
+LayoutTests/fast/dom/custom/attribute-changed-callback_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/constructor-calls-created-synchronously_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/created-callback_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/document-register-basic_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/document-register-namespace_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/document-register-on-create-callback_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/document-register-svg-extends_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/document-register-type-extensions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/element-names_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/element-type_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/element-upgrade_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/lifecycle-created-createElement-recursion_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/type-extensions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/unresolved-pseudoclass_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/upgrade-candidate-remove-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/dataset-xhtml_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/dataset_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/document-set-title-mutations_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/document-set-title-no-reuse_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/domparser-parsefromstring-mimetype-support_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/fragment-activation-focuses-target_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/getElementsByClassName/dumpNodeList_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/horizontal-scrollbar-in-rtl-doesnt-fire-onscroll_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/horizontal-scrollbar-in-rtl_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/horizontal-scrollbar-when-dir-change_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/html-collections-named-getter-mandatory-arg_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/icon-size-property_t01: Pass, RuntimeError # Issue 29632
+LayoutTests/fast/dom/implementation-api-args_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/importNode-unsupported-node-type_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/location-hash_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/mutation-event-remove-inserted-node_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/navigatorcontentutils/is-protocol-handler-registered_t01: Skip # API not supported.
+LayoutTests/fast/dom/navigatorcontentutils/register-protocol-handler_t01: Skip # API not supported.
+LayoutTests/fast/dom/navigatorcontentutils/unregister-protocol-handler_t01: Skip # API not supported.
+LayoutTests/fast/dom/object-plugin-hides-properties_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/dom/option-properties_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/partial-layout-non-overlay-scrollbars_t01: Pass, RuntimeError # Issue 53
+LayoutTests/fast/dom/partial-layout-overlay-scrollbars_t01: Pass, RuntimeError # Fails 8 out of 10.
+LayoutTests/fast/dom/set-innerHTML_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/access-document-of-detached-stylesheetlist-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/base-in-shadow-tree_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-element-api_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-element-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-element-includer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-element-outside-shadow-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-pseudo-element-css-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-pseudo-element-dynamic-attribute-change_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-pseudo-element-overridden_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-pseudo-element-relative-selector-css-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-pseudo-element-with-host-pseudo-class_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-reprojection-fallback-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/custom-pseudo-in-selector-api_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/distribution-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/distribution-for-event-path_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/distribution-update-recalcs-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/elementfrompoint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/elements-in-frameless-document_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/event-path-not-in-document_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/event-path_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/form-in-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/get-distributed-nodes-orphan_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/get-element-by-id-in-shadow-mutation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/getComputedStyle-composed-parent-dirty_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/getelementbyid-in-orphan_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/getelementbyid-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/host-context-pseudo-class-css-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/host-pseudo-class-css-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/host-wrapper-reclaimed_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/insertion-point-list-menu-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/insertion-point-shadow-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/insertion-point-video-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/link-in-shadow-tree_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/nested-reprojection-inconsistent_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/no-renderers-for-light-children_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/offsetWidth-host-style-change_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/olderShadowRoot_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/pseudoclass-update-checked-option_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-optgroup_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-option_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/pseudoclass-update-enabled-optgroup_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/pseudoclass-update-enabled-option_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/reinsert-insertion-point_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/remove-and-insert-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/remove-styles-in-shadow-crash-2_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/remove-styles-in-shadow-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-aware-shadow-root_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-content-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-disable_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-element-inactive_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-element_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-hierarchy-exception_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-removechild-and-blur-event_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-root-append_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-root-js-api_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-root-node-list_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-root-text-child_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-ul-li_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowdom-dynamic-styling_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowdom-for-input-spellcheck_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowdom-for-input-type-change_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowdom-for-unknown-with-form_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowhost-keyframes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowroot-clonenode_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowroot-host_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowroot-keyframes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/sibling-rules-dynamic-changes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/stale-distribution-after-shadow-removal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/style-insertion-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/style-of-distributed-node_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/style-sharing-sibling-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/style-sharing-styles-in-older-shadow-roots_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/suppress-mutation-events-in-shadow-characterdata_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/title-element-in-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/crash-generated-counter_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/crash-generated-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/crash-generated-quote_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/crash-generated-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/insertAdjacentElement_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/insertAdjacentHTML_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/recursive-layout_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/add-event-without-document_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/clipboard-clearData_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/events/clipboard-dataTransferItemList_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/events/dispatch-event-being-dispatched_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/document-elementFromPoint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/event-creation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/event-fire-order_t01: Pass, RuntimeError # Issue 29632
+LayoutTests/fast/events/event-listener-html-non-html-confusion_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/event-on-created-document_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/event-on-xhr-document_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/event-trace_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/initkeyboardevent-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/invalid-003_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/invalid-004_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/mutation-during-replace-child-2_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/mutation-during-replace-child_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/overflowchanged-event-raf-timing_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/events/scoped/editing-commands_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/scroll-event-does-not-bubble_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/tabindex-removal-from-focused-element_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/exclusions/parsing/parsing-wrap-flow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/exclusions/parsing/parsing-wrap-through_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/blob-close-read_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/blob-close-revoke_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/blob-close_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/blob-constructor_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/blob-parts-slice-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/blob-slice-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/file-reader-abort-in-last-progress_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/file-reader-done-reading-abort_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/files/file-reader-methods-illegal-arguments_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/file-reader-readystate_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/url-null_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/xhr-response-blob_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/async-operations_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/directory-entry-to-uri_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-entry-to-uri_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-from-file-entry_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-metadata-after-write_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-abort-continue_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-abort-depth_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-abort_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-empty-blob_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-events_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-gc-blob_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-truncate-extend_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-write-overlapped_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/filesystem-reference_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/filesystem-unserializable_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/filesystem-uri-origin_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/input-access-entries_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-copy_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-get-entry_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-get-metadata_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-get-parent_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-move_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-read-directory_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-remove_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-restricted-chars_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-restricted-names_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-restricted-unicode_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/read-directory-many_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/read-directory_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/simple-readonly-file-object_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/simple-readonly_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/simple-required-arguments-getdirectory_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/simple-required-arguments-getfile_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/simple-temporary_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/snapshot-file-with-gc_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/flexbox/repaint-scrollbar_t01: Pass, RuntimeError # Fails 2 out of 10.
+LayoutTests/fast/flexbox/repaint-scrollbar_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/ValidityState-customError_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/ValidityState-typeMismatch-email_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/autocomplete_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/autofocus-input-css-style-change_t01: Pass, RuntimeError # Fails 7 out of 10.
+LayoutTests/fast/forms/autofocus-input-css-style-change_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/button-baseline-and-collapsing_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/button/button-disabled-blur_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/clone-input-with-dirty-value_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/color/color-setrangetext_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/color/input-value-sanitization-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datalist/datalist-child-validation_t01: RuntimeError # Fails 10 out of 10.
+LayoutTests/fast/forms/datalist/datalist_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datalist/input-list_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date-multiple-fields/date-multiple-fields-change-layout-by-value_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date-multiple-fields/date-multiple-fields-onblur-setvalue-onfocusremoved_t01: Pass, RuntimeError # Fails 6 out of 10.
+LayoutTests/fast/forms/date-multiple-fields/date-multiple-fields-onblur-setvalue-onfocusremoved_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date/ValidityState-rangeOverflow-date_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date/ValidityState-rangeUnderflow-date_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date/ValidityState-stepMismatch-date_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date/ValidityState-typeMismatch-date_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date/date-input-type_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date/date-pseudo-classes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date/date-setrangetext_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date/input-date-validation-message_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date/input-valueasdate-date_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date/input-valueasnumber-date_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-change-layout-by-value_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datetimelocal/ValidityState-rangeOverflow-datetimelocal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datetimelocal/ValidityState-rangeUnderflow-datetimelocal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datetimelocal/ValidityState-stepMismatch-datetimelocal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datetimelocal/ValidityState-typeMismatch-datetimelocal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datetimelocal/datetimelocal-input-type_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datetimelocal/datetimelocal-pseudo-classes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datetimelocal/datetimelocal-setrangetext_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datetimelocal/input-valueasdate-datetimelocal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datetimelocal/input-valueasnumber-datetimelocal_t01: RuntimeError # Dartium JSInterop failure
+LayoutTests/fast/forms/file/file-input-capture_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/form-attribute_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/input-appearance-elementFromPoint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/input-inputmode_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/input-type-change3_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/input-value-sanitization_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/interactive-validation-assertion-by-validate-twice_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/forms/interactive-validation-attach-assertion_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/forms/interactive-validation-select-crash_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/forms/menulist-disabled-selected-option_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
+LayoutTests/fast/forms/menulist-selection-reset_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/menulist-submit-without-selection_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
+LayoutTests/fast/forms/multiple-selected-options-innerHTML_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/option-change-single-selected_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/option-strip-unicode-spaces_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/parser-associated-form-removal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/plaintext-mode-1_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/search-popup-crasher_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
+LayoutTests/fast/forms/select-max-length_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/forms/select-set-length-with-mutation-remove_t01: RuntimeError
+LayoutTests/fast/forms/select-set-length-with-mutation-reparent_t01: RuntimeError
+LayoutTests/fast/forms/selection-wrongtype_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/setrangetext_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/textarea-maxlength_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/textarea-paste-newline_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/textarea-selection-preservation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/html/hidden-attr_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/html/imports/import-element-removed-flag_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/html/imports/import-events_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/html/select-dropdown-consistent-background-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/boundingBox-with-continuation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/continuation-inlines-inserted-in-reverse-after-block_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/inline-position-top-align_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/inline-with-empty-inline-children_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/out-of-flow-objects-and-whitespace-after-empty-inline_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/parent-inline-element-padding-contributes-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/positioned-element-padding-contributes-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/innerHTML/innerHTML-svg-write_t01: RuntimeError # Issue 25941
+LayoutTests/fast/innerHTML/innerHTML-uri-resolution_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/innerHTML/javascript-url_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/loader/about-blank-hash-change_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/loader/about-blank-hash-kept_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/loader/hashchange-event-properties_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/loader/onhashchange-attribute-listeners_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/loader/scroll-position-restored-on-back_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/loader/scroll-position-restored-on-reload-at-load-event_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/loader/stateobjects/replacestate-in-onunload_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/masking/parsing-clip-path-shape_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/masking/parsing-mask_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/media/matchmedium-query-api_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/media/media-query-list-syntax_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/media/media-query-list_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/media/mq-append-delete_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/media/mq-js-media-except_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/media/mq-js-media-except_t03: RuntimeError # Please triage this failure
+LayoutTests/fast/media/mq-parsing_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/mediastream/RTCIceCandidate_t01: Skip # Please triage this failure
+LayoutTests/fast/mediastream/RTCPeerConnection_t01: Skip # Issue 23475
+LayoutTests/fast/mediastream/constructors_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/balance-short-trailing-empty-block_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/balance-trailing-border_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/balance-trailing-border_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/balance-unbreakable_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/break-after-always-bottom-margin_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/break-properties_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/columns-shorthand-parsing_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/cssom-view_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/float-truncation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/hit-test-above-or-below_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/hit-test-end-of-column-with-line-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/hit-test-end-of-column_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/hit-test-float_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/newmulticol/balance-images_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/orphans-relayout_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/vertical-lr/float-truncation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/vertical-rl/float-truncation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/overflow/child-100percent-height-inside-fixed-container-with-overflow-auto_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/overflow/replaced-child-100percent-height-inside-fixed-container-with-overflow-auto_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/overflow/scrollbar-restored_t01: RuntimeError # Fails 10 out of 10.
+LayoutTests/fast/parser/foster-parent-adopted_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/parser/fragment-parser-doctype_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/parser/innerhtml-with-prefixed-elements_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/available-height-for-content_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/container-width-zero_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-anonymous-table-cell_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-table-cell-ignore-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/preferred-widths_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/table-percent-height-text-controls_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/table-percent-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/table-percent-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/ruby/ruby-line-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/scrolling/scroll-element-into-view_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/parsing/parsing-shape-lengths_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/parsing/parsing-shape-margin_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/parsing/parsing-shape-outside_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-big-box-border-radius_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-diamond-margin-polygon_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-margin-left_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-margin-right_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t02: Pass, RuntimeError # Fails on 6.2. Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-left_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-right_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/speechsynthesis/speech-synthesis-boundary-events_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/speechsynthesis/speech-synthesis-cancel_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/speechsynthesis/speech-synthesis-pause-resume_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/speechsynthesis/speech-synthesis-speak_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/speechsynthesis/speech-synthesis-utterance-uses-voice_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/speechsynthesis/speech-synthesis-voices_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/storage/disallowed-storage_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/storage/storage-disallowed-in-data-url_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/sub-pixel/cssom-subpixel-precision_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/sub-pixel/shadows-computed-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/svg/tabindex-focus_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/svg/whitespace-angle_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/svg/whitespace-integer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/svg/whitespace-length_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/svg/whitespace-number_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/absolute-table-percent-lengths_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/anonymous-table-section-removed_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/caption-orthogonal-writing-mode-sizing_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/col-width-span-expand_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/css-table-max-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/css-table-max-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/fixed-table-layout-width-change_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/hittest-tablecell-bottom-edge_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/hittest-tablecell-right-edge_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/hittest-tablecell-with-borders-bottom-edge_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/hittest-tablecell-with-borders-right-edge_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/html-table-width-max-width-constrained_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/large-shrink-wrapped-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/margins-perpendicular-containing-block_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/min-width-css-block-table_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/table/min-width-css-inline-table_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/table/min-width-html-block-table_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/table/min-width-html-inline-table_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/table/nested-tables-with-div-offset_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/padding-height-and-override-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/switch-table-layout-dynamic-cells_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/switch-table-layout-multiple-section_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/switch-table-layout_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-all-rowspans-height-distribution-in-rows-except-overlapped_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-all-rowspans-height-distribution-in-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-cell-offset-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-colgroup-present-after-table-row_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-rowspan-cell-with-empty-cell_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-rowspan-height-distribution-in-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-rowspan-height-distribution-in-rows_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-with-content-width-exceeding-max-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text-autosizing/vertical-writing-mode_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/find-case-folding_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/find-russian_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/find-soft-hyphen_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/find-spaces_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/font-ligature-letter-spacing_t01: Pass, RuntimeError # Fails on 6.2. Please triage this failure
+LayoutTests/fast/text/font-ligatures-linebreak-word_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/text/font-ligatures-linebreak_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/text/glyph-reordering_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
+LayoutTests/fast/text/international/cjk-segmentation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/international/iso-8859-8_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/international/listbox-width-rtl_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/international/rtl-text-wrapping_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/international/thai-offsetForPosition-inside-character_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/line-break-after-question-mark_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/offsetForPosition-cluster-at-zero_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/remove-zero-length-run_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/sub-pixel/text-scaling-ltr_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/sub-pixel/text-scaling-pixel_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/sub-pixel/text-scaling-rtl_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/sub-pixel/text-scaling-vertical_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/sub-pixel/text-scaling-webfont_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/text-combine-shrink-to-fit_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/transforms/bounding-rect-zoom_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/transforms/hit-test-large-scale_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/anchor_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/file-http-base_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/file_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/host-lowercase-per-scheme_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/host_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/idna2003_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/idna2008_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/invalid-urls-utf8_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/ipv4_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/ipv6_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/path_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/port_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/query_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/relative-unix_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/relative-win_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/relative_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/safari-extension_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/segments-from-data-url_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/segments_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/standard-url_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/writing-mode/positionForPoint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/writing-mode/table-hit-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/writing-mode/vertical-font-vmtx-units-per-em_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-get_t01: RuntimeError # Roll 50 failure
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-responseXML-xml-text-responsetype_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-arraybuffer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-before-open-sync-request_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-sync-request_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Borrowed/cz_20030217_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Borrowed/namespace-nodes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Core/test_node_test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Core/test_node_test_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Core/test_parser_t01: RuntimeError # Dartium JSInterop failure
+LayoutTests/fast/xpath/ambiguous-operators_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/attr-namespace_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/ensure-null-namespace_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/implicit-node-args_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/invalid-resolver_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/node-name-case-sensitivity_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/node-name-case-sensitivity_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/position_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/py-dom-xpath/abbreviations_t01: RuntimeError # Dartium JSInterop failure
+LayoutTests/fast/xpath/py-dom-xpath/axes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/py-dom-xpath/data_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/py-dom-xpath/expressions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/py-dom-xpath/paths_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/reverse-axes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xsl/default-html_t01: RuntimeError # Please triage this failure
+LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: RuntimeError # Please triage this failure
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError # Issue 22200
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError # Issue 22200
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError # Issue 22200
+LibTest/core/double/roundToDouble_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/double/round_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/int/compareTo_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/int/operator_left_shift_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/int/operator_remainder_A01_t03: RuntimeError # Please triage this failure
+LibTest/core/int/operator_truncating_division_A01_t02: RuntimeError # Please triage this failure
+LibTest/core/int/remainder_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/int/remainder_A01_t03: RuntimeError # Please triage this failure
+LibTest/core/int/toRadixString_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/CanvasRenderingContext2D/addEventListener_A01_t03: RuntimeError # Please triage this failure
+LibTest/html/CanvasRenderingContext2D/addEventListener_A01_t06: RuntimeError # Please triage this failure
+LibTest/html/Document/childNodes_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Document/clone_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Document/clone_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Document/getElementsByTagName_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Document/securityPolicy_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/Element.tag_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/attributeChanged_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/borderEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/contentEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/dataset_A02_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/enteredView_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/getAttributeNS_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/getAttributeNS_A02_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/getBoundingClientRect_A01_t02: Pass, RuntimeError # Issue 53
+LibTest/html/Element/getClientRects_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Element/getNamespacedAttributes_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/isContentEditable_A01_t01: Pass, RuntimeError # Issue 28187
+LibTest/html/Element/isContentEditable_A02_t01: Pass, RuntimeError # Issue 28187
+LibTest/html/Element/isTagSupported_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/isTagSupported_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Element/leftView_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/marginEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/mouseWheelEvent_A01_t01: Skip # Times out. Please triage this failure
+LibTest/html/Element/onMouseWheel_A01_t01: Skip # Times out. Please triage this failure
+LibTest/html/Element/onTransitionEnd_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/paddingEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/querySelectorAll_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Element/replaceWith_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Element/tagName_A01_t03: RuntimeError # Please triage this failure
+LibTest/html/Element/transitionEndEvent_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/getAllResponseHeaders_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/getResponseHeader_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/getString_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/onError_A01_t02: Skip # Times out. Please triage this failure
+LibTest/html/HttpRequest/request_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/responseText_A01_t02: Skip # Times out. Please triage this failure
+LibTest/html/HttpRequest/responseType_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/setRequestHeader_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/statusText_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/status_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequestUpload/onError_A01_t02: Skip # Times out. Please triage this failure
+LibTest/html/HttpRequestUpload/onLoadEnd_A01_t01: Skip # Times out. Please triage this failure
+LibTest/html/HttpRequestUpload/onLoadStart_A01_t01: Skip # Times out. Please triage this failure
+LibTest/html/HttpRequestUpload/onLoad_A01_t01: Skip # Times out. Please triage this failure
+LibTest/html/IFrameElement/IFrameElement.created_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/attributeChanged_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/attributes_setter_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/blur_A01_t01: Skip # Times out. Please triage this failure
+LibTest/html/IFrameElement/borderEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/clone_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/contentWindow_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/createFragment_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/createFragment_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/createFragment_A01_t03: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/createShadowRoot_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/getClientRects_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/getNamespacedAttributes_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/innerHtml_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/isContentEditable_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/isContentEditable_A01_t01: RuntimeError, Pass # Fails 19 out of 20.
+LibTest/html/IFrameElement/leftView_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/marginEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/offsetTo_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/onMouseWheel_A01_t01: Skip # Times out. Please triage this failure
+LibTest/html/IFrameElement/onTransitionEnd_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/outerHtml_setter_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/paddingEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/querySelector_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/setInnerHtml_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/tagName_A01_t03: RuntimeError # Please triage this failure
+LibTest/html/Node/append_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Node/nodes_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Node/nodes_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Node/parent_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Node/previousNode_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/animationFrame_A01_t01: Skip # Times out. Please triage this failure
+LibTest/html/Window/close_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/document_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/find_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/find_A03_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/find_A06_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/moveBy_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/moveTo_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/moveTo_A02_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/postMessage_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/postMessage_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Window/requestFileSystem_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/requestFileSystem_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Window/requestFileSystem_A02_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/resizeBy_A01_t01: Skip # Times out. Please triage this failure
+LibTest/html/Window/resizeTo_A01_t01: RuntimeError # Please triage this failure
+LibTest/typed_data/Float32x4List/Float32x4List.view_A06_t01: RuntimeError # Please triage this failure
+LibTest/typed_data/Int32x4/operator_OR_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/DOMEvents/approved/EventObject.after.dispatchEvenr_t01: RuntimeError # Please triage this failure
+WebPlatformTest/DOMEvents/approved/EventObject.multiple.dispatchEvent_t01: RuntimeError # Please triage this failure
+WebPlatformTest/DOMEvents/approved/ProcessingInstruction.DOMCharacterDataModified_t01: Skip # Times out. Please triage this failure
+WebPlatformTest/DOMEvents/approved/addEventListener.optional.useCapture_t01: RuntimeError # Please triage this failure
+WebPlatformTest/Utils/test/asyncTestFail_t01: RuntimeError # Please triage this failure
+WebPlatformTest/Utils/test/asyncTestFail_t02: RuntimeError # Please triage this failure
+WebPlatformTest/Utils/test/asyncTestTimeout_t01: Skip # Times out. Please triage this failure
+WebPlatformTest/custom-elements/concepts/type_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/concepts/type_A04_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/concepts/type_A05_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/concepts/type_A06_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/concepts/type_A07_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/concepts/type_A08_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElementNS_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElementNS_A02_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElementNS_A03_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElementNS_A04_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElementNS_A05_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElement_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElement_A02_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElement_A03_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElement_A04_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElement_A05_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/isAttribute_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/isAttribute_A01_t02: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/isAttribute_A02_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/isAttribute_A03_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/localName_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/namespace_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/EventTarget/dispatchEvent_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/EventTarget/dispatchEvent_A02_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/EventTarget/dispatchEvent_A03_t01: Skip # Times out. Please triage this failure
+WebPlatformTest/dom/events/type_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/DOMImplementation-createDocument_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/DOMImplementation-hasFeature_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Document-adoptNode_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Document-getElementsByTagName_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Document-importNode_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Element-childElementCount_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Node-appendChild_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Node-appendChild_t02: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Node-insertBefore_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Node-isEqualNode_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Node-replaceChild_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/attributes_A04_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/attributes_A05_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A05_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A06_t03: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A07_t02: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A07_t03: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A08_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A09_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A09_t02: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttribute_A02_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttribute_A02_t02: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttribute_A03_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/ranges/Range-attributes_t02: RuntimeError # Please triage this failure
+WebPlatformTest/dom/ranges/Range-comparePoint_t02: RuntimeError # Please triage this failure
+WebPlatformTest/dom/ranges/Range-comparePoint_t03: RuntimeError # Please triage this failure
+WebPlatformTest/dom/ranges/Range-detach_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-imports/link-import_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-imports/link-import_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html-imports/loading-import_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/definitions/template-contents-owner-test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/innerhtml-on-templates/innerhtml_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-head-insertion-mode/generating-of-implied-end-tags_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/creating-an-element-for-the-token/template-owner-document_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/template-element/node-document-changes_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-image_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-video_t01: Skip # Times out. Please triage this failure
+WebPlatformTest/html/browsers/browsing-the-web/read-text/load-text-plain_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.body-getter_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.body-setter_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.getElementsByName-namespace_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t05: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t07: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/nameditem_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/elements/global-attributes/dataset-delete_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/elements/global-attributes/dataset-get_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/elements/global-attributes/dataset-set_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/document-metadata/styling/LinkStyle_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
+WebPlatformTest/html/semantics/embedded-content/media-elements/error-codes/error_t01: Skip # Times out. Please triage this failure
+WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/src_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/cues_t01: Skip # Times out. Please triage this failure
+WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/mode_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formAction_document_address_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formaction_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/textfieldselection/selection_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/textfieldselection/textfieldselection-setRangeText_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-button-element/button-validation_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-datalist-element/datalistelement_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-datalist-element/datalistoptions_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-form-element/form-autocomplete_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-form-element/form-elements-matches_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-form-element/form-elements-nameditem_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/color_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/date_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/datetime-local_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/datetime_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/datetime_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/email_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/hidden_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/input-textselection_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/month_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/password_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/range_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/text_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/time_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/time_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/type-change-state_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/url_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/valueMode_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/week_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-meter-element/meter_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-option-element/option-text-recurse_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-option-element/option-text-spaces_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/grouping-content/the-blockquote-element/grouping-blockquote_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/grouping-content/the-ol-element/ol.start-reflection_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/interactive-elements/the-details-element/toggleEvent_t01: Skip # Times out. Please triage this failure
+WebPlatformTest/html/semantics/interactive-elements/the-dialog-element/dialog-close_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/interactive-elements/the-dialog-element/dialog-showModal_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/scripting-1/the-script-element/async_t11: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/scripting-1/the-script-element/script-text_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/checked_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/default_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/dir_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/disabled_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/enabled_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/focus_t01: Pass, RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/indeterminate_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/inrange-outofrange_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/tabular-data/the-table-element/table-insertRow_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/tabular-data/the-table-element/table-rows_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/tabular-data/the-tr-element/rowIndex_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/syntax/parsing/Document.getElementsByTagName-foreign_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/syntax/serializing-html-fragments/outerHTML_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t03: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t04: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t05: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t06: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol_t00: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t02: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/elements-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-event-interface/event-path-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-007_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-008_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-009_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-010_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-011_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-012_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-013_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-007_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-010_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t02: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-006_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t02: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-dispatch/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-dispatch/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-dispatch/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-retargeting/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-retargeting/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-retargeting/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-retargeting/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-006_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-007_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-008_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-009_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t02: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t03: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t04: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t05: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t06: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/inert-html-elements/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/composition/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/custom-pseudo-elements/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/distribution-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/nested-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/rendering-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/reprojection/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-006_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-017_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/shadow-root-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-007_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-009_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-011_t01: RuntimeError # Please triage this failure
+WebPlatformTest/webstorage/event_constructor_t01: RuntimeError # Please triage this failure
+WebPlatformTest/webstorage/event_constructor_t02: RuntimeError # Please triage this failure
+WebPlatformTest/webstorage/event_local_key_t01: RuntimeError # Please triage this failure
+WebPlatformTest/webstorage/event_session_key_t01: RuntimeError # Please triage this failure
+WebPlatformTest/webstorage/event_session_storagearea_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
+WebPlatformTest/webstorage/event_session_url_t01: Skip # Times out. Please triage this failure
+
+[ $compiler == dart2js && $runtime == safarimobilesim ]
+LayoutTests/fast/alignment/parse-align-items_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/alignment/parse-align-self_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/alignment/parse-justify-self_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/backgrounds/background-repeat-computed-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/backgrounds/repeat/parsing-background-repeat_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/borders/border-image-width-numbers-computed-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/2d.composite.globalAlpha.fillPath_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/2d.fillText.gradient_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.gradient_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.negative_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.veryLarge_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.verySmall_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/alpha_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-alphaImageData-behavior_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-arc-negative-radius_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-arc-zero-lineto_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-before-css_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-bezier-same-endpoint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blend-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blend-solid_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-clipping_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-color-over-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-color-over-gradient_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-color-over-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-color-over-pattern_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-fill-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-global-alpha_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-gradient-over-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-gradient-over-gradient_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-gradient-over-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-gradient-over-pattern_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-image-over-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-image-over-gradient_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-image-over-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-image-over-pattern_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-pattern-over-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-pattern-over-gradient_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-pattern-over-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-pattern-over-pattern_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-transforms_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-composite-canvas_t01: Skip # Times out on Windows 8. Please triage this failure
+LayoutTests/fast/canvas/canvas-composite-stroke-alpha_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-composite-text-alpha_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-currentTransform_t01: RuntimeError # Feature is not implemented
+LayoutTests/fast/canvas/canvas-drawImage-scaled-copy-to-self_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-ellipse-360-winding_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-ellipse-negative-radius_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-ellipse-zero-lineto_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-ellipse_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-empty-image-pattern_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-fillStyle-no-quirks-parsing_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-font-consistency_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-getImageData-invalid_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-getImageData-large-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-getImageData-largeNonintegralDimensions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-imageSmoothingEnabled-repaint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-imageSmoothingEnabled_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-invalid-fillstyle_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-invalid-strokestyle_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-large-dimensions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-large-fills_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-lineDash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-lose-restore-googol-size_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-lose-restore-max-int-size_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-putImageData_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-quadratic-same-endpoint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-resetTransform_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-scale-shadowBlur_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-scale-strokePath-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-setTransform_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/draw-custom-focus-ring_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/drawImage-with-broken-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/drawImage-with-negative-source-destination_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/drawImage-with-valid-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/drawImageFromRect_withToDataURLAsSource_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/fillText-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/getPutImageDataPairTest_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/pointInPath_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/WebGLContextEvent_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/array-bounds-clamping_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/attrib-location-length-limits_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/bad-arguments-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/buffer-bind-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/buffer-data-array-buffer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/canvas-2d-webgl-texture_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/canvas-resize-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/canvas-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/canvas-zero-size_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/compressed-tex-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/context-attributes-alpha-depth-stencil-antialias-t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/context-destroyed-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/context-lost-restored_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/context-lost_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/copy-tex-image-and-sub-image-2d_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/css-webkit-canvas-repaint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/css-webkit-canvas_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/draw-arrays-out-of-bounds_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/draw-elements-out-of-bounds_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/draw-webgl-to-canvas-2d_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/drawingbuffer-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/error-reporting_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/framebuffer-bindings-unaffected-on-resize_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/framebuffer-object-attachment_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/framebuffer-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/functions-returning-strings_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/get-active-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-bind-attrib-location-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-enable-enum-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-enum-tests_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-get-calls_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-getshadersource_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-getstring_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-object-get-calls_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-pixelstorei_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-teximage_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-uniformmatrix4fv_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-vertex-attrib-zero-issues_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-vertex-attrib_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-vertexattribpointer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/glsl-conformance_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/incorrect-context-object-behaviour_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/index-validation-copies-indices_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/index-validation-crash-with-buffer-sub-data_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/index-validation-verifies-too-many-indices_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/index-validation-with-resized-buffer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/index-validation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/invalid-UTF-16_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/invalid-passed-params_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/is-object_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/null-object-behaviour_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/null-uniform-location_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/object-deletion-behaviour_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/oes-element-index-uint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/oes-vertex-array-object_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/point-size_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/premultiplyalpha-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/program-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/read-pixels-pack-alignment_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/read-pixels-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/renderbuffer-initialization_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/renderer-and-vendor-strings_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/shader-precision-format_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-array-buffer-view_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgb565_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgba4444_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgba5551_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgb565_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgba4444_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgba5551_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgb565_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgba4444_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgba5551_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgb565_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba4444_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba5551_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-uniform-binding-bugs_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-webgl_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-input-validation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-sub-image-2d-bad-args_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-sub-image-2d_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-sub-image-cube-maps_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texImage2DImageDataTest_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texImageTest_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-active-bind_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-bindings-uneffected-on-resize_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-color-profile_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-complete_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-npot_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-transparent-pixels-initialized_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/triangle_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/uniform-location-length-limits_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/uniform-location_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/uninitialized-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/viewport-unchanged-upon-resize_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-composite-modes-repaint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-composite-modes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-depth-texture_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-exceptions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-large-texture_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-layer-update_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-specific_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-texture-binding-preserved_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-unprefixed-context-id_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-viewport-parameters-preserved_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-generated-content/malformed-url_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-generated-content/pseudo-element-events_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/css-generated-content/pseudo-transition-event_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/css-generated-content/pseudo-transition_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/auto-content-resolution-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/breadth-size-resolution-grid_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/calc-resolution-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/display-grid-set-get_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/flex-and-minmax-content-resolution-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/flex-content-resolution-columns_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/flex-content-resolution-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-get-set_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-auto-flow-get-set_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-auto-flow-update_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-container-change-explicit-grid-recompute-child_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-border-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-border-padding-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-empty-row-column_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-min-max-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-padding-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-padding-margin_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-shrink-to-fit_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-area-get-set_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-bad-named-area-auto-placement_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-bad-resolution-double-span_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-change-order-auto-flow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-display_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-horiz-bt_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vert-lr_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vert-rl_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-margin-resolution_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-order-auto-flow-resolution_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-template-areas-get-set_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/implicit-rows-auto-resolution_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/justify-self-cell_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/minmax-fixed-logical-height-only_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/minmax-fixed-logical-width-only_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track-in-percent-grid_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track-update_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-padding-margin-resolution-grid-item-update_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-padding-margin-resolution-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-resolution-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/place-cell-by-index_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-intrinsic-dimensions/height-property-value_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-intrinsic-dimensions/multicol_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/add-remove-stylesheets-at-once-minimal-recalc-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/background-position-serialize_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/background-serialize_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/border-image-style-length_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/button-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/checked-pseudo-selector_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/collapsed-whitespace-reattach-in-style-recalc_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/computed-offset-with-zoom_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/content/content-none_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/content/content-normal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/content/content-quotes-05_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/css-escaped-identifier_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/css-properties-case-insensitive_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/css3-nth-tokens-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/csstext-of-content-string_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/cursor-parsing-quirks_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/deprecated-flexbox-auto-min-size_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/display-inline-block-scrollbar_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/draggable-region-parser_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/dynamic-class-backdrop-pseudo_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/first-child-display-change-inverse_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/focus-display-block-inline_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/font-face-cache-bug_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/font-face-unicode-range-load_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/font-face-unicode-range-overlap-load_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/font-shorthand-from-longhands_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/fontface-properties_t01: RuntimeError # Uses FontFace class not defined for this browser
+LayoutTests/fast/css/fontfaceset-download-error_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/fontfaceset-events_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/fontfaceset-loadingdone_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/getComputedStyle/computed-style-font_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/getComputedStyle/computed-style-with-zoom_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/getComputedStyle/getComputedStyle-border-radius-shorthand_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/getComputedStyle/getComputedStyle-borderRadius-2_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/html-attr-case-sensitivity_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/id-or-class-before-stylesheet_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/inherit-initial-shorthand-values_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/invalid-predefined-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/invalidation/detach-reattach-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/invalidation/shadow-host-toggle_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/invalidation/targeted-class-any-pseudo_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/invalidation/targeted-class-host-pseudo_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/invalidation/targeted-class-shadow-combinator_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/invalidation/toggle-style-inside-shadow-root_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/link-alternate-stylesheet-1_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/link-alternate-stylesheet-2_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/link-alternate-stylesheet-3_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/link-alternate-stylesheet-4_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/link-alternate-stylesheet-5_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/media-query-recovery_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/media-rule-no-whitespace_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/modify-ua-rules-from-javascript_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parse-color-int-or-percent-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-at-rule-recovery_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-expr-error-recovery_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-object-fit_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-object-position_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-page-rule_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-selector-error-recovery_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-unexpected-eof_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/pseudo-any_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/pseudo-target-indirect-sibling-001_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/css/pseudo-target-indirect-sibling-002_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/css/readonly-pseudoclass-opera-001_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/readonly-pseudoclass-opera-002_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/readonly-pseudoclass-opera-003_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/readonly-pseudoclass-opera-004_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/readonly-pseudoclass-opera-005_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/readwrite-contenteditable-recalc_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/shorthand-setProperty-important_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/sibling-selectors-dynamic_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/sticky/parsing-position-sticky_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-scoped/style-scoped-in-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-scoped/style-scoped-nested_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-scoped/style-scoped-scoping-nodes-different-order_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-scoped/style-scoped-shadow-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-scoped/style-scoped-with-dom-operation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-scoped/style-scoped-with-important-rule_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-sharing-type-and-readonly_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/stylesheet-enable-first-alternate-on-load-sheet_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/stylesheet-enable-second-alternate-link_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/webkit-keyframes-errors_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/word-break-user-modify-allowed-values_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-inherited_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-line_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-underline-position_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent-inherited_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/52776_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Attr/direction-attribute-set-and-cleared_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/DOMException/XPathException_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/DOMException/dispatch-event-exception_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/DOMImplementation/createDocument-namespace-err_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/CaretRangeFromPoint/basic_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-strict-mode-wtih-checkbox_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-user-select-none_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-zoom-and-scroll_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-with-first-letter-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/clone-node_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/createElementNS-namespace-err_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/title-property-creates-title-element_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/title-property-set-multiple-times_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/title-with-multiple-children_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Element/attribute-uppercase_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Element/getBoundingClientRect-getClientRects-relative-to-viewport_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Element/getClientRects_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Element/setAttributeNS-namespace-err_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLAnchorElement/remove-href-from-focused-anchor_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-host_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-hostname_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-pathname_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-autofocus_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-close-event_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-enabled_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-open_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-return-value_t01: RuntimeError # Dartium JSInterop failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-scrolled-viewport_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-show-modal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/inert-does-not-match-disabled-selector_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/inert-node-is-unfocusable_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/inert-node-is-unselectable_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/multiple-centered-dialogs_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/non-anchored-dialog-positioning_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/show-modal-focusing-steps_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/submit-dialog-close-event_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/synthetic-click-inert_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/top-layer-position-relative_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/top-layer-position-static_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDocument/active-element-gets-unforcusable_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLDocument/clone-node_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDocument/set-focus-on-valid-element_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLDocument/title-get_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDocument/title-set_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLElement/insertAdjacentHTML-errors_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLElement/set-inner-outer-optimization_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLElement/spellcheck_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLFormElement/move-option-between-documents_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLImageElement/image-alt-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLImageElement/parse-src_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLInputElement/input-image-alt-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLLinkElement/link-and-subresource-test-nonexistent_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLLinkElement/link-and-subresource-test_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLLinkElement/link-beforeload-recursive_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLLinkElement/prefetch-onerror_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLLinkElement/prefetch-onload_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLLinkElement/prefetch_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLLinkElement/resolve-url-on-insertion_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLMeterElement/set-meter-properties_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLOptionElement/collection-setter-getter_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLOutputElement/dom-settable-token-list_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLScriptElement/async-false-inside-async-false-load_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLScriptElement/async-inline-script_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLScriptElement/async-onbeforeload_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLScriptElement/defer-inline-script_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLScriptElement/defer-onbeforeload_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLScriptElement/script-set-src_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLSelectElement/selected-index-preserved-when-option-text-changes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/cloneNode_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/content-outlives-template-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/contentWrappers_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/custom-element-wrapper-gc_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/cycles-in-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/cycles_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/inertContents_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/innerHTML-inert_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/innerHTML_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/no-form-association_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/ownerDocumentXHTML_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/ownerDocument_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/xhtml-parsing-and-serialization_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/MutationObserver/observe-childList_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/MutationObserver/observe-options-attributes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/MutationObserver/observe-options-character-data_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/MutationObserver/weak-callback-gc-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Node/initial-values_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/NodeIterator/NodeIterator-basic_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/bug-19527_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/insertNode-empty-fragment-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/mutation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-comparePoint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-constructor_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-detached-exceptions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-exceptions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-expand_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-insertNode-separate-endContainer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-insertNode-splittext_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-isPointInRange_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-on-detached-node_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/surroundContents-for-detached-node_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/SelectorAPI/caseID-almost-strict_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/SelectorAPI/caseID_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/SelectorAPI/dumpNodeList-2_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/SelectorAPI/dumpNodeList-almost-strict_t01: RuntimeError # Dartium JSInterop failure
+LayoutTests/fast/dom/SelectorAPI/dumpNodeList_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/SelectorAPI/id-fastpath-almost-strict_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/SelectorAPI/id-fastpath-strict_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/StyleSheet/css-insert-import-rule-to-shadow-stylesheets_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/StyleSheet/css-medialist-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/StyleSheet/detached-shadow-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/StyleSheet/empty-shadow-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Text/next-element-sibling_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Text/previous-element-sibling_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/TreeWalker/TreeWalker-basic_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Window/atob-btoa_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Window/getMatchedCSSRules-nested-rules_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Window/getMatchedCSSRules-parent-stylesheets_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Window/window-resize-contents_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Window/window-resize_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Window/window-scroll-arguments_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/XMLSerializer-attribute-entities_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/XMLSerializer-attribute-namespaces_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/XMLSerializer-doctype2_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/XMLSerializer-double-xmlns_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/anchor-without-content_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/assertion-on-node-removal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/attribute-namespaces-get-set_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/characterdata-api-arguments_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/client-width-height-quirks_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/comment-not-documentElement_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/createDocumentType-ownerDocument_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/createElementNS-namespace-errors_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/attribute-changed-callback_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/constructor-calls-created-synchronously_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/created-callback_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/document-register-basic_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/document-register-namespace_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/document-register-on-create-callback_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/document-register-svg-extends_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/document-register-type-extensions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/element-names_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/element-type_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/element-upgrade_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/lifecycle-created-createElement-recursion_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/type-extension-undo-assert_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/custom/type-extensions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/unresolved-pseudoclass_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/upgrade-candidate-remove-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/dataset-xhtml_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/dataset_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/document-set-title-mutations_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/document-set-title-no-child-on-empty_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/document-set-title-no-reuse_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/domparser-parsefromstring-mimetype-support_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/elementFromPoint-scaled-scrolled_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/getElementsByClassName/014_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/getElementsByClassName/dumpNodeList_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/horizontal-scrollbar-in-rtl-doesnt-fire-onscroll_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/horizontal-scrollbar-in-rtl_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/horizontal-scrollbar-when-dir-change_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/html-collections-named-getter-mandatory-arg_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/implementation-api-args_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/importNode-unsupported-node-type_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/jsDevicePixelRatio_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/location-hash_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/dom/navigatorcontentutils/is-protocol-handler-registered_t01: Skip # API not supported.
+LayoutTests/fast/dom/navigatorcontentutils/register-protocol-handler_t01: Skip # API not supported.
+LayoutTests/fast/dom/navigatorcontentutils/unregister-protocol-handler_t01: Skip # API not supported.
+LayoutTests/fast/dom/node-iterator-with-doctype-root_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/option-properties_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/partial-layout-non-overlay-scrollbars_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/set-innerHTML_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/access-document-of-detached-stylesheetlist-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/base-in-shadow-tree_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-element-api_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-element-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-element-includer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-element-outside-shadow-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-pseudo-element-css-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-pseudo-element-dynamic-attribute-change_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-pseudo-element-overridden_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-pseudo-element-relative-selector-css-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-pseudo-element-with-host-pseudo-class_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-reprojection-fallback-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/custom-pseudo-in-selector-api_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/distribution-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/distribution-for-event-path_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/distribution-update-recalcs-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/elementfrompoint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/elements-in-frameless-document_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/event-path-not-in-document_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/event-path_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/form-in-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/get-distributed-nodes-orphan_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/get-element-by-id-in-shadow-mutation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/getComputedStyle-composed-parent-dirty_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/getelementbyid-in-orphan_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/getelementbyid-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/host-context-pseudo-class-css-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/host-pseudo-class-css-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/host-wrapper-reclaimed_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/insertion-point-list-menu-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/insertion-point-shadow-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/insertion-point-video-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/link-in-shadow-tree_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/nested-reprojection-inconsistent_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/no-renderers-for-light-children_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/offsetWidth-host-style-change_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/olderShadowRoot_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/pseudoclass-update-checked-option_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-optgroup_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-option_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/pseudoclass-update-enabled-optgroup_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/pseudoclass-update-enabled-option_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/reinsert-insertion-point_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/remove-and-insert-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/remove-styles-in-shadow-crash-2_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/remove-styles-in-shadow-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-aware-shadow-root_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-content-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-disable_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-element-inactive_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-element_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-hierarchy-exception_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-removechild-and-blur-event_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-root-append_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-root-js-api_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-root-node-list_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-root-text-child_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-ul-li_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowdom-dynamic-styling_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowdom-for-input-spellcheck_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowdom-for-input-type-change_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowdom-for-unknown-with-form_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowhost-keyframes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowroot-clonenode_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowroot-host_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowroot-keyframes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/sibling-rules-dynamic-changes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/stale-distribution-after-shadow-removal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/style-insertion-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/style-of-distributed-node_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/style-sharing-sibling-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/style-sharing-styles-in-older-shadow-roots_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/suppress-mutation-events-in-shadow-characterdata_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/title-element-in-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/vertical-scrollbar-when-dir-change_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/xmlserializer-serialize-to-string-exception_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/crash-generated-counter_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/crash-generated-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/crash-generated-quote_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/crash-generated-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/insertAdjacentElement_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/insertAdjacentHTML_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/recursive-layout_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/add-event-without-document_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/clipboard-clearData_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/events/clipboard-dataTransferItemList_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/events/dispatch-event-being-dispatched_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/dispatch-event-no-document_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/events/document-elementFromPoint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/event-creation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/event-listener-html-non-html-confusion_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/event-on-created-document_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/event-on-xhr-document_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/event-trace_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/fire-scroll-event_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/events/initkeyboardevent-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/invalid-003_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/invalid-004_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/mutation-during-replace-child-2_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/mutation-during-replace-child_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/scroll-event-does-not-bubble_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/scroll-event-phase_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/events/tabindex-removal-from-focused-element_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/wheelevent-constructor_t01: RuntimeError # Safarimobilesim does not support WheelEvent
+LayoutTests/fast/exclusions/parsing/parsing-wrap-flow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/exclusions/parsing/parsing-wrap-through_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/blob-close-read_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/blob-close-revoke_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/blob-close_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/blob-constructor_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/blob-parts-slice-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/blob-slice-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/file-reader-abort-in-last-progress_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/file-reader-methods-illegal-arguments_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/file-reader-readystate_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/url-null_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/xhr-response-blob_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/async-operations_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/directory-entry-to-uri_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-entry-to-uri_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-from-file-entry_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-metadata-after-write_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-abort-continue_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-abort-depth_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-abort_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-empty-blob_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-events_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-gc-blob_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-truncate-extend_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-write-overlapped_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/filesystem-reference_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/filesystem-unserializable_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/filesystem-uri-origin_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/input-access-entries_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-copy_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-get-entry_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-get-metadata_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-get-parent_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-move_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-read-directory_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-remove_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-restricted-chars_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-restricted-names_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-restricted-unicode_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/read-directory-many_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/read-directory_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/simple-readonly-file-object_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/simple-readonly_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/simple-required-arguments-getdirectory_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/simple-required-arguments-getfile_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/simple-temporary_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/snapshot-file-with-gc_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/flexbox/vertical-box-form-controls_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/ValidityState-typeMismatch-email_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/autocomplete_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/autofocus-input-css-style-change_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/button-baseline-and-collapsing_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/button/button-disabled-blur_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/clone-input-with-dirty-value_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/color/color-setrangetext_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/color/input-value-sanitization-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/control-detach-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datalist/datalist_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datalist/input-list_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date-multiple-fields/date-multiple-fields-change-layout-by-value_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date-multiple-fields/date-multiple-fields-onblur-setvalue-onfocusremoved_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date/input-date-validation-message_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date/input-valueasdate-date_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date/input-valueasnumber-date_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-change-layout-by-value_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datetimelocal/input-valueasdate-datetimelocal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datetimelocal/input-valueasnumber-datetimelocal_t01: RuntimeError # Dartium JSInterop failure
+LayoutTests/fast/forms/file/file-input-capture_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/focus-style-pending_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/forms/form-attribute_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/input-appearance-elementFromPoint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/input-inputmode_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/input-select-webkit-user-select-none_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/input-type-change3_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/input-value-sanitization_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/interactive-validation-assertion-by-validate-twice_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/forms/interactive-validation-attach-assertion_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/forms/interactive-validation-select-crash_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/forms/listbox-selection-2_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/menulist-disabled-selected-option_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/menulist-selection-reset_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/menulist-submit-without-selection_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/multiple-selected-options-innerHTML_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/option-change-single-selected_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/option-strip-unicode-spaces_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/plaintext-mode-1_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/search-popup-crasher_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/select-clientheight-large-size_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/select-clientheight-with-multiple-attr_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/selection-direction_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/selection-wrongtype_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/setrangetext_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/shadow-tree-exposure_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/textarea-maxlength_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/textarea-paste-newline_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/textarea-selection-preservation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/textarea-set-defaultvalue-after-value_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/html/hidden-attr_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/html/imports/import-element-removed-flag_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/html/imports/import-events_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/html/select-dropdown-consistent-background-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/boundingBox-with-continuation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/continuation-inlines-inserted-in-reverse-after-block_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/inline-position-top-align_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/inline-relative-offset-boundingbox_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/inline-with-empty-inline-children_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/out-of-flow-objects-and-whitespace-after-empty-inline_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/parent-inline-element-padding-contributes-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/positioned-element-padding-contributes-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/innerHTML/innerHTML-custom-tag_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/layers/normal-flow-hit-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/lists/list-style-position-inside_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/loader/about-blank-hash-change_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/loader/about-blank-hash-kept_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/loader/hashchange-event-properties_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/loader/onhashchange-attribute-listeners_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/loader/scroll-position-restored-on-back_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/loader/scroll-position-restored-on-reload-at-load-event_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/loader/stateobjects/replacestate-in-onunload_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/masking/parsing-clip-path-shape_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/masking/parsing-mask-source-type_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/masking/parsing-mask_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/media/matchmedium-query-api_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/media/media-query-list-syntax_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/media/media-query-list_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/media/mq-append-delete_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/media/mq-js-media-except_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/media/mq-js-media-except_t03: RuntimeError # Please triage this failure
+LayoutTests/fast/media/mq-parsing_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/mediastream/RTCIceCandidate_t01: Skip # Please triage this failure
+LayoutTests/fast/mediastream/RTCPeerConnection_t01: Skip #  Issue 23475
+LayoutTests/fast/mediastream/constructors_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/balance-short-trailing-empty-block_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/balance-trailing-border_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/balance-trailing-border_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/break-after-always-bottom-margin_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/break-properties_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/columns-shorthand-parsing_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/cssom-view_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/float-truncation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/hit-test-above-or-below_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/hit-test-end-of-column-with-line-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/hit-test-end-of-column_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/hit-test-float_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/hit-test-gap-between-pages-flipped_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/newmulticol/balance-maxheight_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/newmulticol/balance_t07: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/newmulticol/balance_t08: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/newmulticol/balance_t09: Skip # Times out. Please triage this failure
+LayoutTests/fast/multicol/newmulticol/balance_t10: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/vertical-lr/break-properties_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/vertical-lr/float-truncation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/vertical-rl/break-properties_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/vertical-rl/float-truncation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/widows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/widows_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/overflow/child-100percent-height-inside-fixed-container-with-overflow-auto_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/overflow/replaced-child-100percent-height-inside-fixed-container-with-overflow-auto_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/overflow/scrollbar-restored_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/parser/foster-parent-adopted_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/parser/fragment-parser-doctype_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/parser/innerhtml-with-prefixed-elements_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/parser/pre-first-line-break_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/available-height-for-content_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/container-width-zero_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-anonymous-table-cell_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/preferred-widths_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/table-percent-height-text-controls_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/table-percent-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/table-percent-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/ruby/ruby-line-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/scrolling/scroll-element-into-view_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/parsing/parsing-shape-image-threshold_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/parsing/parsing-shape-lengths_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/parsing/parsing-shape-margin_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/parsing/parsing-shape-outside-none_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/parsing/parsing-shape-outside_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/parsing/parsing-shape-property-aliases_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-big-box-border-radius_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-diamond-margin-polygon_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-margin-left_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-margin-right_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t02: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-left_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-right_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/speechsynthesis/speech-synthesis-boundary-events_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/speechsynthesis/speech-synthesis-cancel_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/speechsynthesis/speech-synthesis-pause-resume_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/speechsynthesis/speech-synthesis-speak_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/speechsynthesis/speech-synthesis-utterance-uses-voice_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/speechsynthesis/speech-synthesis-voices_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/storage/disallowed-storage_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/storage/storage-disallowed-in-data-url_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/sub-pixel/boundingclientrect-subpixel-margin_t01: Skip # Issue 747
+LayoutTests/fast/sub-pixel/computedstylemargin_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/sub-pixel/cssom-subpixel-precision_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/sub-pixel/float-list-inside_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/sub-pixel/inline-block-with-padding_t01: Skip # Issue 747
+LayoutTests/fast/sub-pixel/layout-boxes-with-zoom_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/sub-pixel/shadows-computed-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/sub-pixel/size-of-span-with-different-positions_t01: Skip # Issue 747
+LayoutTests/fast/svg/getbbox_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/svg/tabindex-focus_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/svg/whitespace-angle_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/svg/whitespace-integer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/svg/whitespace-length_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/svg/whitespace-number_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/absolute-table-percent-lengths_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/caption-orthogonal-writing-mode-sizing_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/css-table-max-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/css-table-max-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/css-table-width-with-border-padding_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/fixed-table-layout-width-change_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/hittest-tablecell-right-edge_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/hittest-tablecell-with-borders-right-edge_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/html-table-width-max-width-constrained_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/incorrect-colgroup-span-values_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/large-shrink-wrapped-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/margins-perpendicular-containing-block_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/min-width-css-block-table_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/table/min-width-css-inline-table_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/table/min-width-html-block-table_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/table/min-width-html-inline-table_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/table/nested-tables-with-div-offset_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/padding-height-and-override-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/switch-table-layout-dynamic-cells_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/switch-table-layout-multiple-section_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/switch-table-layout_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-all-rowspans-height-distribution-in-rows-except-overlapped_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-all-rowspans-height-distribution-in-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-cell-offset-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-colgroup-present-after-table-row_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-rowspan-cell-with-empty-cell_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-rowspan-height-distribution-in-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-rowspan-height-distribution-in-rows_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-sections-border-spacing_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-with-content-width-exceeding-max-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/find-case-folding_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/find-russian_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/find-soft-hyphen_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/find-spaces_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/font-ligature-letter-spacing_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/text/font-ligatures-linebreak-word_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/font-ligatures-linebreak_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/glyph-reordering_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/international/cjk-segmentation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/international/iso-8859-8_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/international/listbox-width-rtl_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/international/thai-offsetForPosition-inside-character_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/ipa-tone-letters_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/line-break-after-question-mark_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/line-breaks-after-hyphen-before-number_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/offsetForPosition-cluster-at-zero_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/remove-zero-length-run_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/sub-pixel/text-scaling-ltr_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/sub-pixel/text-scaling-pixel_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/sub-pixel/text-scaling-rtl_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/sub-pixel/text-scaling-vertical_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/sub-pixel/text-scaling-webfont_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/text-combine-shrink-to-fit_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/tokenizer/entities_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/tokenizer/entities_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/tokenizer/entities_t03: RuntimeError # Please triage this failure
+LayoutTests/fast/transforms/bounding-rect-zoom_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/transforms/hit-test-large-scale_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/anchor_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/file-http-base_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/file_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/host-lowercase-per-scheme_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/host_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/idna2003_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/idna2008_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/invalid-urls-utf8_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/ipv4_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/ipv6_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/path_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/port_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/query_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/relative-unix_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/relative-win_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/relative_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/safari-extension_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/segments-from-data-url_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/segments_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/standard-url_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/writing-mode/auto-sizing-orthogonal-flows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/writing-mode/table-hit-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/writing-mode/vertical-font-vmtx-units-per-em_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-get_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-responseXML-xml-text-responsetype_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-arraybuffer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-before-open-sync-request_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-sync-request_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-set-responsetype_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Borrowed/cz_20030217_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Borrowed/namespace-nodes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Core/test_node_test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Core/test_node_test_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Core/test_parser_t01: RuntimeError # Dartium JSInterop failure
+LayoutTests/fast/xpath/ambiguous-operators_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/attr-namespace_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/ensure-null-namespace_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/implicit-node-args_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/invalid-resolver_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/node-name-case-sensitivity_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/node-name-case-sensitivity_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/position_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/py-dom-xpath/abbreviations_t01: RuntimeError # Dartium JSInterop failure
+LayoutTests/fast/xpath/py-dom-xpath/axes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/py-dom-xpath/data_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/py-dom-xpath/expressions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/py-dom-xpath/paths_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/reverse-axes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/xpath-template-element_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xsl/default-html_t01: RuntimeError # Please triage this failure
+LibTest/async/Future/doWhile_A05_t01: RuntimeError # Please triage this failure
+LibTest/async/Future/forEach_A04_t02: RuntimeError # Please triage this failure
+LibTest/async/Stream/timeout_A01_t01: Pass, RuntimeError # Please triage this failure
+LibTest/async/Stream/timeout_A03_t01: Pass, RuntimeError # Please triage this failure
+LibTest/async/Stream/timeout_A04_t01: Pass, RuntimeError # Please triage this failure
+LibTest/core/List/List_A02_t01: RuntimeError # Please triage this failure
+LibTest/core/List/List_A03_t01: RuntimeError # Please triage this failure
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError # Issue 22200
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError # Issue 22200
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError # Issue 22200
+LibTest/core/double/roundToDouble_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/double/round_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/int/compareTo_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/int/operator_left_shift_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/int/operator_remainder_A01_t03: RuntimeError # Please triage this failure
+LibTest/core/int/operator_truncating_division_A01_t02: RuntimeError # Please triage this failure
+LibTest/core/int/remainder_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/int/remainder_A01_t03: RuntimeError # Please triage this failure
+LibTest/core/int/toRadixString_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/CanvasRenderingContext2D/addEventListener_A01_t03: RuntimeError # Please triage this failure
+LibTest/html/CanvasRenderingContext2D/addEventListener_A01_t06: RuntimeError # Please triage this failure
+LibTest/html/Document/childNodes_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Document/clone_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Document/clone_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Document/getElementsByTagName_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Document/securityPolicy_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/Element.tag_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/attributeChanged_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/borderEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/contentEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/dataset_A02_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/enteredView_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/getAttributeNS_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/getAttributeNS_A02_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/getBoundingClientRect_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Element/getClientRects_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Element/getNamespacedAttributes_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/isContentEditable_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/isContentEditable_A02_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/isTagSupported_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/isTagSupported_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Element/leftView_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/marginEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/mouseWheelEvent_A01_t01: Skip # Safari mobile sim does not support WheelEvent
+LibTest/html/Element/onMouseWheel_A01_t01: Skip # Safari mobile sim does not support WheelEvent
+LibTest/html/Element/onTransitionEnd_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/paddingEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/querySelectorAll_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Element/replaceWith_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Element/tagName_A01_t03: RuntimeError # Please triage this failure
+LibTest/html/Element/transitionEndEvent_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/getAllResponseHeaders_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/getResponseHeader_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/getString_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/onError_A01_t02: Skip # Times out. Please triage this failure
+LibTest/html/HttpRequest/request_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/responseText_A01_t02: Skip # Times out. Please triage this failure
+LibTest/html/HttpRequest/responseType_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/responseType_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/setRequestHeader_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/statusText_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/status_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequestUpload/onError_A01_t02: Skip # Times out. Please triage this failure
+LibTest/html/HttpRequestUpload/onLoadEnd_A01_t01: Skip # Times out. Please triage this failure
+LibTest/html/HttpRequestUpload/onLoadStart_A01_t01: Skip # Times out. Please triage this failure
+LibTest/html/HttpRequestUpload/onLoad_A01_t01: Skip # Times out. Please triage this failure
+LibTest/html/IFrameElement/IFrameElement.created_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/attributeChanged_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/attributes_setter_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/blur_A01_t01: Skip # Times out. Please triage this failure
+LibTest/html/IFrameElement/borderEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/clone_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/contentWindow_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/createFragment_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/createFragment_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/createFragment_A01_t03: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/createShadowRoot_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/getNamespacedAttributes_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/innerHtml_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/isContentEditable_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/leftView_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/marginEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/mouseWheelEvent_A01_t01: Skip # Safari mobile sim does not support WheelEvent
+LibTest/html/IFrameElement/offsetTo_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/onMouseWheel_A01_t01: Skip # Safari mobile sim does not support WheelEvent
+LibTest/html/IFrameElement/onTransitionEnd_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/outerHtml_setter_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/paddingEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/querySelector_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/setInnerHtml_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/tagName_A01_t03: RuntimeError # Please triage this failure
+LibTest/html/Node/append_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Node/nodes_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Node/nodes_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Node/parent_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Node/previousNode_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/close_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/document_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/find_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/find_A03_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/find_A06_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/moveBy_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/moveTo_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/moveTo_A02_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/open_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/postMessage_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/postMessage_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Window/requestFileSystem_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/requestFileSystem_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Window/requestFileSystem_A02_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/resizeBy_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/resizeTo_A01_t01: RuntimeError # Please triage this failure
+LibTest/typed_data/Float32x4List/Float32x4List.view_A06_t01: RuntimeError # Please triage this failure
+LibTest/typed_data/Int32x4/operator_OR_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/DOMEvents/approved/EventObject.after.dispatchEvenr_t01: RuntimeError # Please triage this failure
+WebPlatformTest/DOMEvents/approved/EventObject.multiple.dispatchEvent_t01: RuntimeError # Please triage this failure
+WebPlatformTest/DOMEvents/approved/ProcessingInstruction.DOMCharacterDataModified_t01: Skip # Times out. Please triage this failure
+WebPlatformTest/DOMEvents/approved/addEventListener.optional.useCapture_t01: RuntimeError # Please triage this failure
+WebPlatformTest/Utils/test/asyncTestFail_t01: RuntimeError # Please triage this failure
+WebPlatformTest/Utils/test/asyncTestFail_t02: RuntimeError # Please triage this failure
+WebPlatformTest/Utils/test/asyncTestTimeout_t01: Skip # Times out. Please triage this failure
+WebPlatformTest/custom-elements/concepts/type_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/concepts/type_A04_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/concepts/type_A05_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/concepts/type_A06_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/concepts/type_A07_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/concepts/type_A08_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElementNS_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElementNS_A02_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElementNS_A03_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElementNS_A04_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElementNS_A05_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElement_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElement_A02_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElement_A03_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElement_A04_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElement_A05_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/isAttribute_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/isAttribute_A01_t02: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/isAttribute_A02_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/isAttribute_A03_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/localName_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/namespace_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/EventTarget/dispatchEvent_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/EventTarget/dispatchEvent_A02_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/EventTarget/dispatchEvent_A03_t01: Skip # Times out. Please triage this failure
+WebPlatformTest/dom/events/type_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/DOMImplementation-createDocumentType_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/DOMImplementation-createDocument_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/DOMImplementation-hasFeature_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Document-adoptNode_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Document-createElementNS_t02: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Document-getElementsByTagName_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Document-importNode_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Element-childElementCount_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Node-appendChild_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Node-appendChild_t02: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Node-insertBefore_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Node-isEqualNode_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Node-replaceChild_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/attributes_A04_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/attributes_A05_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A05_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A06_t03: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A07_t02: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A07_t03: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A08_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A09_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A09_t02: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttribute_A02_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttribute_A02_t02: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttribute_A03_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/ranges/Range-attributes_t02: RuntimeError # Please triage this failure
+WebPlatformTest/dom/ranges/Range-comparePoint_t02: RuntimeError # Please triage this failure
+WebPlatformTest/dom/ranges/Range-comparePoint_t03: RuntimeError # Please triage this failure
+WebPlatformTest/dom/ranges/Range-detach_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-imports/link-import_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-imports/link-import_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html-imports/loading-import_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/additions-to-the-steps-to-clone-a-node/template-clone-children_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/additions-to-the-steps-to-clone-a-node/templates-copy-document-owner_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/definitions/template-contents-owner-document-type_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/definitions/template-contents-owner-test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/definitions/template-contents_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/innerhtml-on-templates/innerhtml_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/additions-to-foster-parenting/template-is-a-foster-parent-element_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/additions-to-foster-parenting/template-is-not-a-foster-parent-element_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/generating-of-implied-end-tags_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/ignore-body-token_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/ignore-frameset-token_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/ignore-head-token_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/ignore-html-token_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/start-tag-body_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-head-insertion-mode/generating-of-implied-end-tags_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-table-insertion-mode/end-tag-table_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/appending-to-a-template/template-child-nodes_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-body-context_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-context_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-row-context_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/creating-an-element-for-the-token/template-owner-document_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/serializing-html-templates/outerhtml_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/template-element/content-attribute_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/template-element/node-document-changes_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/template-element/template-as-a-descendant_t01: RuntimeError # In Safari mobile sim, setting innerHTML on a Frameset element does nothing.
+WebPlatformTest/html-templates/template-element/template-content-node-document_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/template-element/template-content_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-image_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-video_t01: Skip # Times out. Please triage this failure
+WebPlatformTest/html/browsers/browsing-the-web/read-text/load-text-plain_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.body-getter_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.body-setter_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.getElementsByName-namespace_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t05: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t07: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/nameditem_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/elements/global-attributes/dataset-delete_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/elements/global-attributes/dataset-get_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/elements/global-attributes/dataset-set_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/document-metadata/styling/LinkStyle_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/embedded-content/media-elements/error-codes/error_t01: Skip # Times out. Please triage this failure
+WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/src_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/cues_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/mode_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formAction_document_address_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formaction_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/textfieldselection/selection_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/textfieldselection/textfieldselection-setRangeText_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-button-element/button-validation_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-datalist-element/datalistelement_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-datalist-element/datalistoptions_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-fieldset-element/disabled_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-form-element/form-autocomplete_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-form-element/form-elements-matches_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-form-element/form-elements-nameditem_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/color_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/date_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/datetime-local_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/datetime_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/datetime_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/email_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/hidden_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/input-textselection_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/month_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/password_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/range_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/text_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/time_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/time_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/type-change-state_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/url_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/valueMode_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/week_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-meter-element/meter_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-option-element/option-text-recurse_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-option-element/option-text-spaces_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/grouping-content/the-blockquote-element/grouping-blockquote_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/interactive-elements/the-details-element/toggleEvent_t01: Skip # Times out. Please triage this failure
+WebPlatformTest/html/semantics/interactive-elements/the-dialog-element/dialog-close_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/interactive-elements/the-dialog-element/dialog-showModal_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/scripting-1/the-script-element/async_t11: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/scripting-1/the-script-element/script-text_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/checked_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/default_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/dir_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/disabled_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/enabled_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/focus_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/indeterminate_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/inrange-outofrange_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/valid-invalid_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/tabular-data/the-table-element/table-insertRow_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/tabular-data/the-table-element/table-rows_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/tabular-data/the-tr-element/rowIndex_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/syntax/parsing/Document.getElementsByTagName-foreign_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/syntax/serializing-html-fragments/outerHTML_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t01: Skip # Times out. Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t03: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t04: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t05: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t06: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol_t00: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t02: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/elements-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-event-interface/event-path-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-007_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-008_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-009_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-010_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-011_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-012_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-013_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-007_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-010_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t02: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-006_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t02: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-dispatch/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-dispatch/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-dispatch/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-retargeting/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-retargeting/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-retargeting/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-retargeting/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-006_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-007_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-008_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-009_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t02: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t03: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t04: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t05: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t06: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/inert-html-elements/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/composition/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/custom-pseudo-elements/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/distribution-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/nested-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/rendering-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/reprojection/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-006_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-017_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/shadow-root-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-007_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-009_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-011_t01: RuntimeError # Please triage this failure
+WebPlatformTest/webstorage/event_constructor_t01: RuntimeError # Please triage this failure
+WebPlatformTest/webstorage/event_constructor_t02: RuntimeError # Please triage this failure
+WebPlatformTest/webstorage/event_local_key_t01: RuntimeError # Please triage this failure
+WebPlatformTest/webstorage/event_session_key_t01: RuntimeError # Please triage this failure
+
+[ $compiler == dart2js && $browser ]
+LayoutTests/fast/css-generated-content/bug91547_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/dom/HTMLButtonElement/change-type_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/dom/HTMLElement/insertAdjacentHTML-errors_t01: RuntimeError # Issue 747
+LayoutTests/fast/dom/StyleSheet/discarded-sheet-owner-null_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/dom/css-cached-import-rule_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/dom/cssTarget-crash_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/dom/empty-hash-and-search_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/dom/shadow/form-in-shadow_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/dynamic/insertAdjacentHTML_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/filesystem/file-after-reload-crash_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/forms/date/date-interactive-validation-required_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/forms/datetimelocal/datetimelocal-interactive-validation-required_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/forms/form-submission-create-crash_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/forms/formmethod-attribute-button-html_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/forms/formmethod-attribute-input-2_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/forms/formmethod-attribute-input-html_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/forms/missing-action_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/forms/submit-form-with-dirname-attribute-with-ancestor-dir-attribute_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/forms/submit-form-with-dirname-attribute-with-nonhtml-ancestor_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/forms/submit-form-with-dirname-attribute_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/forms/submit-nil-value-field-assert_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/forms/textarea-submit-crash_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/html/adjacent-html-context-element_t01: RuntimeError # Issue 747
+LayoutTests/fast/lists/list-style-position-inside_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/media/mq-parsing_t01: Pass, RuntimeError # Issue 747, False passes on Firefox, but trying to keep these grouped with the issue.
+LayoutTests/fast/mediastream/RTCPeerConnection-AddRemoveStream_t01: Skip # Passes on Safari, Issue 23475
+LayoutTests/fast/mediastream/getusermedia_t01: Skip # Please triage this failure.
+LayoutTests/fast/multicol/balance-unbreakable_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/multicol/column-width-zero_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/multicol/newmulticol/balance-images_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/multicol/newmulticol/balance-maxheight_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/multicol/newmulticol/balance_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/multicol/newmulticol/balance_t02: Pass, RuntimeError # Issue 747
+LayoutTests/fast/multicol/newmulticol/balance_t04: Pass, RuntimeError # Issue 747
+LayoutTests/fast/multicol/newmulticol/balance_t05: Pass, RuntimeError # Issue 747
+LayoutTests/fast/multicol/newmulticol/balance_t06: Pass, RuntimeError # Issue 747
+LayoutTests/fast/multicol/newmulticol/balance_t07: Pass, RuntimeError # Issue 747
+LayoutTests/fast/multicol/newmulticol/balance_t08: Pass, RuntimeError # Issue 747
+LayoutTests/fast/multicol/newmulticol/balance_t09: Pass, RuntimeError # Issue 747
+LayoutTests/fast/multicol/newmulticol/balance_t10: Pass, RuntimeError # Issue 747, I don't understand how, but sometimes passes.
+LayoutTests/fast/multicol/orphans-relayout_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/multicol/widows_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/overflow/overflow-rtl-vertical-origin_t01: Pass, RuntimeError # Issue 747, False passes on Firefox, but trying to keep these grouped with the issue.
+LayoutTests/fast/overflow/replaced-child-100percent-height-inside-fixed-container-with-overflow-auto_t01: Pass, RuntimeError # Issue 747, False pass on Safari
+LayoutTests/fast/parser/parse-wbr_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor-vertical-lr_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor_t01: Pass # Issue 747, False pass
+LayoutTests/fast/replaced/computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor-vertical-lr_t01: RuntimeError, Pass # Issue 747, Spurious intermittent pass
+LayoutTests/fast/replaced/computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor_t01: RuntimeError, Pass # Issue 747, Spurious intermittent pass
+LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-anonymous-table-cell_t01: RuntimeError, Pass # Issue 747, Spurious intermittent pass.
+LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-table-cell-ignore-height_t01: RuntimeError, Pass # Issue 747, Spurious intermittent pass
+LayoutTests/fast/ruby/parse-rp_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/sub-pixel/replaced-element-baseline_t01: Pass, RuntimeError # Issue 747, Fails on Safari, false pass on others
+LayoutTests/fast/table/anonymous-table-section-removed_t01: Skip # Issue 747
+LayoutTests/fast/table/col-width-span-expand_t01: Skip # Issue 747
+LayoutTests/fast/table/fixed-table-layout-width-change_t01: Pass, RuntimeError # Issue 747, False passes on Firefox
+LayoutTests/fast/table/hittest-tablecell-bottom-edge_t01: Skip # Issue 747
+LayoutTests/fast/table/hittest-tablecell-with-borders-bottom-edge_t01: Skip # Issue 747
+LayoutTests/fast/table/html-table-width-max-width-constrained_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/table/margins-flipped-text-direction_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/table/min-max-width-preferred-size_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/table/table-width-exceeding-max-width_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/text/font-fallback-synthetic-italics_t01: RuntimeError # Issue 747
+LayoutTests/fast/text/font-fallback-synthetic-italics_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/text/font-ligatures-linebreak-word_t01: Skip # Issue 747
+LayoutTests/fast/text/font-ligatures-linebreak_t01: Skip # Issue 747
+LayoutTests/fast/text/glyph-reordering_t01: Pass, RuntimeError # Issue 747, This is a false pass. The font gets sanitized, so whether it works or not probably depends on default sizes.
+LayoutTests/fast/text/international/rtl-text-wrapping_t01: Pass # Issue 747, This is a false pass. All the content gets sanitized, so there's nothing to assert fail on. If the code did anything it would fail.
+LayoutTests/fast/text/ipa-tone-letters_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/text/line-break-after-empty-inline-hebrew_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/text/regional-indicator-symobls_t01: Pass, Fail # Issue 747
+LayoutTests/fast/transforms/bounding-rect-zoom_t01: RuntimeError, Pass # Issue 747, Erratic, but only passes because divs have been entirely removed.
+LayoutTests/fast/transforms/scrollIntoView-transformed_t01: Pass, RuntimeError # Issue 747, False passes on Firefox.
+LayoutTests/fast/transforms/transform-hit-test-flipped_t01: Pass, RuntimeError # Issue 747, Passes on Firefox, but is clearly not testing what it's trying to test.
+LayoutTests/fast/writing-mode/percentage-margins-absolute-replaced_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/writing-mode/positionForPoint_t01: Pass, RuntimeError # Issue 747
+LibTest/html/IFrameElement/appendHtml_A01_t01: Pass, RuntimeError # Issue 23462
+LibTest/html/IFrameElement/appendHtml_A01_t02: Pass, RuntimeError # Issue 23462
+WebPlatformTest/html/semantics/document-metadata/styling/LinkStyle_t01: Pass, RuntimeError # Issue 747
+WebPlatformTest/html/semantics/forms/the-form-element/form-nameditem_t01: RuntimeError # Issue 747
+WebPlatformTest/html/semantics/grouping-content/the-ol-element/ol.start-reflection_t02: Skip # Issue 747
+WebPlatformTest/html/semantics/scripting-1/the-script-element/async_t11: Skip # Issue 747
+WebPlatformTest/html/semantics/selectors/pseudo-classes/disabled_t01: Pass, RuntimeError # Issue 747, Spurious pass
+WebPlatformTest/html/semantics/selectors/pseudo-classes/link_t01: Pass, RuntimeError # Issue 747
+WebPlatformTest/html/syntax/parsing/Document.getElementsByTagName-foreign_t01: RuntimeError, Pass # Issue 747
+
+[ $compiler == dart2js && $browser && $fast_startup ]
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-001_t01: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t02: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/elements-001_t01: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t02: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-006_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t02: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-005_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/event-dispatch/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/event-dispatch/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/event-dispatch/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/event-retargeting/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/event-retargeting/test-002_t01: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/events/event-retargeting/test-004_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/custom-pseudo-elements/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-004_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-009_t01: Fail # please triage
+
+[ $compiler == dart2js && $checked ]
+Language/Errors_and_Warnings/static_warning_t02: RuntimeError # Please triage this failure
+Language/Errors_and_Warnings/static_warning_t03: RuntimeError # Please triage this failure
+Language/Errors_and_Warnings/static_warning_t04: RuntimeError # Please triage this failure
+Language/Errors_and_Warnings/static_warning_t05: RuntimeError # Please triage this failure
+Language/Errors_and_Warnings/static_warning_t06: RuntimeError # Please triage this failure
+Language/Expressions/Assignment/Compound_Assignment/null_aware_static_warning_super_t01/01: Fail # Please triage this failure
+Language/Expressions/Assignment/Compound_Assignment/null_aware_static_warning_variable_t01/01: Fail # Please triage this failure
+Language/Expressions/Assignment/super_assignment_dynamic_error_t01: RuntimeError # Please triage this failure
+Language/Expressions/Assignment/super_assignment_static_warning_t04/01: Fail # Please triage this failure
+Language/Expressions/Function_Expressions/static_type_dynamic_async_t03: RuntimeError # Please triage this failure
+Language/Expressions/Function_Expressions/static_type_dynamic_asyncs_t03: RuntimeError # Please triage this failure
+Language/Expressions/Function_Expressions/static_type_dynamic_syncs_t03: RuntimeError # Please triage this failure
+Language/Expressions/Function_Expressions/static_type_form_3_async_t03: RuntimeError # Please triage this failure
+Language/Expressions/Function_Expressions/static_type_form_3_asyncs_t03: RuntimeError # Please triage this failure
+Language/Expressions/Function_Expressions/static_type_form_3_syncs_t03: RuntimeError # Please triage this failure
+Language/Expressions/If_null_Expressions/static_type_t01: RuntimeError # Please triage this failure
+Language/Expressions/If_null_Expressions/static_type_t02: RuntimeError # Please triage this failure
+Language/Functions/async_return_type_t01: RuntimeError # Please triage this failure
+Language/Functions/generator_return_type_t01: RuntimeError # Please triage this failure
+Language/Functions/generator_return_type_t02: RuntimeError # Please triage this failure
+Language/Statements/Assert/execution_t03: RuntimeError # Please triage this failure
+Language/Statements/Assert/execution_t11: RuntimeError # Please triage this failure
+Language/Statements/Return/runtime_type_t04: RuntimeError # Issue 26584
+Language/Statements/Switch/execution_t01: Fail # Missing type check in switch expression
+Language/Statements/Switch/type_t01: RuntimeError # Issue 16089
+Language/Types/Dynamic_Type_System/malbounded_type_error_t01: RuntimeError # Issue 21088
+Language/Types/Parameterized_Types/malbounded_t06: RuntimeError # Issue 21088
+Language/Types/Static_Types/malformed_type_t01: RuntimeError # Issue 21089
+LibTest/collection/DoubleLinkedQueue/DoubleLinkedQueue_class_A01_t01: Skip # Timesout. Please triage this failure.
+LibTest/core/Map/Map_class_A01_t04: Slow, Pass # Please triage this failure
+LibTest/core/Uri/Uri_A06_t03: Slow, Pass # Please triage this failure
+LibTest/math/Point/operator_mult_A02_t01: RuntimeError # Issue 1533
+
+[ $compiler == dart2js && !$checked && $enable_asserts ]
+Language/Statements/Assert/execution_t01: SkipByDesign # Unspec'd feature.
+Language/Statements/Assert/execution_t02: SkipByDesign # Unspec'd feature.
+Language/Statements/Assert/execution_t03: SkipByDesign # Unspec'd feature.
+Language/Statements/Assert/execution_t04: SkipByDesign # Unspec'd feature.
+Language/Statements/Assert/execution_t05: SkipByDesign # Unspec'd feature.
+Language/Statements/Assert/execution_t06: SkipByDesign # Unspec'd feature.
+Language/Statements/Assert/execution_t11: SkipByDesign # Unspec'd feature.
+Language/Statements/Assert/production_mode_t01: SkipByDesign # Unspec'd feature.
+Language/Statements/Assert/type_t02: SkipByDesign # Unspec'd feature.
+Language/Statements/Assert/type_t03: SkipByDesign # Unspec'd feature.
+Language/Statements/Assert/type_t04: SkipByDesign # Unspec'd feature.
+Language/Statements/Assert/type_t05: SkipByDesign # Unspec'd feature.
+Language/Statements/Assert/type_t06: SkipByDesign # Unspec'd feature.
+
+[ $compiler == dart2js && $fast_startup ]
+Language/Classes/Instance_Methods/Operators/unary_minus: Fail # mirrors not supported
+Language/Expressions/Null/instance_of_class_null_t01: Fail # mirrors not supported
+Language/Metadata/before_class_t01: Fail # mirrors not supported
+Language/Metadata/before_ctor_t01: Fail # mirrors not supported
+Language/Metadata/before_ctor_t02: Fail # mirrors not supported
+Language/Metadata/before_export_t01: Fail # mirrors not supported
+Language/Metadata/before_factory_t01: Fail # mirrors not supported
+Language/Metadata/before_function_t01: Fail # mirrors not supported
+Language/Metadata/before_function_t02: Fail # mirrors not supported
+Language/Metadata/before_function_t03: Fail # mirrors not supported
+Language/Metadata/before_function_t04: Fail # mirrors not supported
+Language/Metadata/before_function_t05: Fail # mirrors not supported
+Language/Metadata/before_function_t06: Fail # mirrors not supported
+Language/Metadata/before_function_t07: Fail # mirrors not supported
+Language/Metadata/before_import_t01: Fail # mirrors not supported
+Language/Metadata/before_library_t01: Fail # mirrors not supported
+Language/Metadata/before_param_t01: Fail # mirrors not supported
+Language/Metadata/before_param_t02: Fail # mirrors not supported
+Language/Metadata/before_param_t03: Fail # mirrors not supported
+Language/Metadata/before_param_t04: Fail # mirrors not supported
+Language/Metadata/before_param_t05: Fail # mirrors not supported
+Language/Metadata/before_param_t06: Fail # mirrors not supported
+Language/Metadata/before_param_t07: Fail # mirrors not supported
+Language/Metadata/before_param_t08: Fail # mirrors not supported
+Language/Metadata/before_param_t09: Fail # mirrors not supported
+Language/Metadata/before_type_param_t01: Fail # mirrors not supported
+Language/Metadata/before_typedef_t01: Fail # mirrors not supported
+Language/Metadata/before_variable_t01: Fail # mirrors not supported
+Language/Metadata/before_variable_t02: Fail # mirrors not supported
+Language/Metadata/compilation_t01: Pass # mirrors not supported, fails for the wrong reason
+Language/Metadata/compilation_t02: Pass # mirrors not supported, fails for the wrong reason
+Language/Metadata/compilation_t03: Pass # mirrors not supported, fails for the wrong reason
+Language/Metadata/compilation_t04: Pass # mirrors not supported, fails for the wrong reason
+Language/Metadata/compilation_t05: Pass # mirrors not supported, fails for the wrong reason
+Language/Metadata/compilation_t06: Pass # mirrors not supported, fails for the wrong reason
+Language/Metadata/compilation_t07: Pass # mirrors not supported, fails for the wrong reason
+Language/Metadata/compilation_t08: Pass # mirrors not supported, fails for the wrong reason
+Language/Metadata/compilation_t09: Pass # mirrors not supported, fails for the wrong reason
+Language/Metadata/compilation_t10: Pass # mirrors not supported, fails for the wrong reason
+Language/Metadata/compilation_t11: Pass # mirrors not supported, fails for the wrong reason
+WebPlatformTest/shadow-dom/testcommon: Fail # mirrors not supported
 
 [ $compiler == dart2js && $host_checked ]
 Language/Types/Function_Types/call_t01: Crash # Issue 28894
+
+[ $compiler == dart2js && $jscl ]
+LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: Fail, Pass # issue 3333
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError, OK # This is not rejected by V8. Issue 22200
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError # Issue 22200
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError # Issue 22200
+LibTest/core/int/compareTo_A01_t01: RuntimeError, OK # Requires big int.
+LibTest/core/int/hashCode_A01_t01: RuntimeError, OK # co19 testing missing assertion.
+LibTest/core/int/isEven_A01_t01: RuntimeError, OK # Not in API.
+LibTest/core/int/isOdd_A01_t01: RuntimeError, OK # Not in API.
+LibTest/core/int/operator_left_shift_A01_t01: RuntimeError, OK # Requires big int.
+LibTest/core/int/operator_remainder_A01_t03: RuntimeError, OK # Leg only has double.
+LibTest/core/int/operator_truncating_division_A01_t02: RuntimeError, OK # Leg only has double.
+LibTest/core/int/remainder_A01_t01: RuntimeError, OK # Requires big int.
+LibTest/core/int/remainder_A01_t03: RuntimeError, OK # Leg only has double.
+LibTest/core/int/toDouble_A01_t01: RuntimeError, OK # Requires big int.
+LibTest/core/int/toRadixString_A01_t01: RuntimeError, OK # Bad test: uses Expect.fail, Expect.throws, assumes case of result, and uses unsupported radixes.
+
+[ $compiler == dart2js && $minified ]
+LibTest/typed_data/Float32List/runtimeType_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Float32x4List/runtimeType_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Float64List/runtimeType_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Int16List/runtimeType_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Int32List/runtimeType_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Int8List/runtimeType_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Uint16List/runtimeType_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Uint32List/runtimeType_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Uint8ClampedList/runtimeType_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Uint8List/runtimeType_A01_t01: Fail # co19-roll r559: Please triage this failure
+
diff --git a/tests/co19/co19-kernel.status b/tests/co19/co19-kernel.status
index 3c26710..c643a7b 100644
--- a/tests/co19/co19-kernel.status
+++ b/tests/co19/co19-kernel.status
@@ -2,6 +2,64 @@
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
 
+# dartk: JIT failures
+[ $compiler == dartk ]
+Language/Expressions/Instance_Creation/Const/canonicalized_t05: RuntimeError
+Language/Expressions/Object_Identity/string_t01: RuntimeError
+Language/Expressions/Strings/adjacent_strings_t02: RuntimeError
+Language/Metadata/before_type_param_t01: RuntimeError
+LibTest/isolate/Isolate/spawnUri_A01_t03: Pass, Timeout
+
+# dartk: precompilation failures
+[ $compiler == dartkp ]
+Language/Classes/Constructors/Generative_Constructors/execution_of_an_initializer_t02: Pass
+Language/Expressions/Constants/bitwise_operators_t05: Crash
+Language/Expressions/Constants/depending_on_itself_t01: MissingCompileTimeError
+Language/Expressions/Constants/depending_on_itself_t02: MissingCompileTimeError
+Language/Expressions/Constants/logical_expression_t04: Crash
+Language/Overview/Scoping/hiding_declaration_t11: Crash
+Language/Overview/Scoping/hiding_declaration_t11: Pass
+Language/Overview/Scoping/hiding_declaration_t12: Crash
+Language/Overview/Scoping/hiding_declaration_t12: Pass
+
+# dartk: JIT failures (debug)
+[ $compiler == dartk && $mode == debug ]
+LibTest/isolate/Isolate/spawnUri_A01_t04: Pass, Slow, Timeout
+
+[ $compiler == dartk && $strong ]
+*: SkipByDesign
+
+# dartk: precompilation failures (debug)
+[ $compiler == dartkp && $mode == debug ]
+Language/Functions/External_Functions/not_connected_to_a_body_t01: Crash
+Language/Statements/For/Asynchronous_For_in/execution_t04: Crash
+
+[ $compiler == dartkp && $strong ]
+*: SkipByDesign
+
+[ $mode == debug && ($compiler == dartk || $compiler == dartkp) ]
+Language/Classes/Constructors/Generative_Constructors/execution_t04: Crash
+Language/Classes/Instance_Variables/constant_t01: Crash
+
+# dartk: checked mode failures
+[ $checked && ($compiler == dartk || $compiler == dartkp) ]
+Language/Classes/Constructors/Factories/arguments_type_t01: RuntimeError
+Language/Classes/Constructors/Factories/function_type_t02: Fail # dartbug.com/30527
+Language/Expressions/Constants/exception_t04: Pass
+Language/Expressions/Function_Expressions/static_type_dynamic_async_t03: RuntimeError # dartbgug.com/30667
+Language/Expressions/Function_Expressions/static_type_dynamic_asyncs_t03: RuntimeError # dartbgug.com/30667
+Language/Expressions/Function_Expressions/static_type_dynamic_syncs_t03: RuntimeError # dartbug.com/30667
+Language/Expressions/Function_Expressions/static_type_form_3_async_t03: RuntimeError # dartbgug.com/30667
+Language/Expressions/Function_Expressions/static_type_form_3_asyncs_t03: RuntimeError # dartbgug.com/30667
+Language/Expressions/Function_Expressions/static_type_form_3_syncs_t03: RuntimeError # dartbgug.com/30667
+Language/Generics/malformed_t02: RuntimeError
+Language/Statements/Return/runtime_type_t04: RuntimeError
+Language/Statements/Switch/execution_t01: RuntimeError
+Language/Statements/Switch/type_t01: RuntimeError
+Language/Types/Dynamic_Type_System/malbounded_type_error_t01: RuntimeError
+Language/Types/Parameterized_Types/malbounded_t06: RuntimeError
+Language/Types/Static_Types/malformed_type_t04: RuntimeError
+
 [ $compiler == dartk || $compiler == dartkp ]
 Language/Classes/Constructors/Constant_Constructors/initializer_not_a_constant_t03: MissingCompileTimeError
 Language/Classes/Constructors/Factories/const_modifier_t01: MissingCompileTimeError
@@ -72,23 +130,25 @@
 Language/Functions/Formal_Parameters/Required_Formals/syntax_t06: MissingCompileTimeError
 Language/Functions/Formal_Parameters/Required_Formals/syntax_t07: MissingCompileTimeError
 Language/Libraries_and_Scripts/Exports/reexport_t01: MissingCompileTimeError
+Language/Libraries_and_Scripts/Imports/deferred_import_t01: CompileTimeError # Deferred loading kernel issue 28335.
+Language/Libraries_and_Scripts/Imports/deferred_import_t02: CompileTimeError # Deferred loading kernel issue 28335.
 Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t02: CompileTimeError
 Language/Libraries_and_Scripts/Imports/invalid_uri_t01: MissingCompileTimeError
 Language/Libraries_and_Scripts/Imports/same_name_t10: RuntimeError
 Language/Libraries_and_Scripts/Imports/static_type_t01: Skip # No support for deferred libraries.
-Language/Metadata/before_export_t01: RuntimeError  # Issue 28434: Kernel IR misses these annotations.
-Language/Metadata/before_import_t01: RuntimeError  # Issue 28434: Kernel IR misses these annotations.
-Language/Metadata/before_library_t01: RuntimeError  # Issue 28434: Kernel IR misses these annotations.
-Language/Metadata/before_param_t01: RuntimeError  # Issue 28434: Kernel IR misses these annotations.
-Language/Metadata/before_param_t02: RuntimeError  # Issue 28434: Kernel IR misses these annotations.
-Language/Metadata/before_param_t03: RuntimeError  # Issue 28434: Kernel IR misses these annotations.
-Language/Metadata/before_param_t04: RuntimeError  # Issue 28434: Kernel IR misses these annotations.
-Language/Metadata/before_param_t05: RuntimeError  # Issue 28434: Kernel IR misses these annotations.
-Language/Metadata/before_param_t06: RuntimeError  # Issue 28434: Kernel IR misses these annotations.
-Language/Metadata/before_param_t07: RuntimeError  # Issue 28434: Kernel IR misses these annotations.
-Language/Metadata/before_param_t08: RuntimeError  # Issue 28434: Kernel IR misses these annotations.
-Language/Metadata/before_param_t09: RuntimeError  # Issue 28434: Kernel IR misses these annotations.
-Language/Metadata/before_typedef_t01: RuntimeError  # Issue 28434: Kernel IR misses these annotations.
+Language/Metadata/before_export_t01: RuntimeError # Issue 28434: Kernel IR misses these annotations.
+Language/Metadata/before_import_t01: RuntimeError # Issue 28434: Kernel IR misses these annotations.
+Language/Metadata/before_library_t01: RuntimeError # Issue 28434: Kernel IR misses these annotations.
+Language/Metadata/before_param_t01: RuntimeError # Issue 28434: Kernel IR misses these annotations.
+Language/Metadata/before_param_t02: RuntimeError # Issue 28434: Kernel IR misses these annotations.
+Language/Metadata/before_param_t03: RuntimeError # Issue 28434: Kernel IR misses these annotations.
+Language/Metadata/before_param_t04: RuntimeError # Issue 28434: Kernel IR misses these annotations.
+Language/Metadata/before_param_t05: RuntimeError # Issue 28434: Kernel IR misses these annotations.
+Language/Metadata/before_param_t06: RuntimeError # Issue 28434: Kernel IR misses these annotations.
+Language/Metadata/before_param_t07: RuntimeError # Issue 28434: Kernel IR misses these annotations.
+Language/Metadata/before_param_t08: RuntimeError # Issue 28434: Kernel IR misses these annotations.
+Language/Metadata/before_param_t09: RuntimeError # Issue 28434: Kernel IR misses these annotations.
+Language/Metadata/before_typedef_t01: RuntimeError # Issue 28434: Kernel IR misses these annotations.
 Language/Mixins/Mixin_Application/deferred_t01: MissingCompileTimeError
 Language/Mixins/Mixin_Application/syntax_t16: CompileTimeError # Issue 25765
 Language/Mixins/declaring_constructor_t05: MissingCompileTimeError # Issue 24767
@@ -119,60 +179,3 @@
 LibTest/async/DeferredLibrary/DeferredLibrary_A01_t01: Skip # No support for deferred libraries.
 LibTest/isolate/Isolate/spawnUri_A01_t06: Skip
 
-[ ($compiler == dartk || $compiler == dartkp) && $mode == debug ]
-Language/Classes/Constructors/Generative_Constructors/execution_t04: Crash
-Language/Classes/Instance_Variables/constant_t01: Crash
-
-# dartk: JIT failures
-[ $compiler == dartk ]
-Language/Expressions/Instance_Creation/Const/canonicalized_t05: RuntimeError
-Language/Expressions/Object_Identity/string_t01: RuntimeError
-Language/Expressions/Strings/adjacent_strings_t02: RuntimeError
-Language/Metadata/before_type_param_t01: RuntimeError
-LibTest/isolate/Isolate/spawnUri_A01_t03: Pass, Timeout
-
-# dartk: JIT failures (debug)
-[ $compiler == dartk && $mode == debug ]
-LibTest/isolate/Isolate/spawnUri_A01_t04: Pass, Slow, Timeout
-
-# dartk: precompilation failures
-[ $compiler == dartkp ]
-Language/Overview/Scoping/hiding_declaration_t11: Crash
-Language/Overview/Scoping/hiding_declaration_t12: Crash
-Language/Expressions/Constants/depending_on_itself_t01: MissingCompileTimeError
-Language/Expressions/Constants/depending_on_itself_t02: MissingCompileTimeError
-Language/Classes/Constructors/Generative_Constructors/execution_of_an_initializer_t02: Pass
-Language/Expressions/Constants/bitwise_operators_t05: Crash
-Language/Expressions/Constants/logical_expression_t04: Crash
-Language/Overview/Scoping/hiding_declaration_t11: Pass
-Language/Overview/Scoping/hiding_declaration_t12: Pass
-
-
-# dartk: precompilation failures (debug)
-[ $compiler == dartkp && $mode == debug ]
-Language/Functions/External_Functions/not_connected_to_a_body_t01: Crash
-Language/Statements/For/Asynchronous_For_in/execution_t04: Crash
-
-# dartk: checked mode failures
-[ $checked && ($compiler == dartk || $compiler == dartkp) ]
-Language/Classes/Constructors/Factories/arguments_type_t01: RuntimeError
-Language/Classes/Constructors/Factories/function_type_t02: Fail # dartbug.com/30527
-Language/Expressions/Constants/exception_t04: Pass
-Language/Expressions/Function_Expressions/static_type_dynamic_asyncs_t03: RuntimeError # dartbgug.com/30667
-Language/Expressions/Function_Expressions/static_type_dynamic_async_t03: RuntimeError # dartbgug.com/30667
-Language/Expressions/Function_Expressions/static_type_dynamic_syncs_t03: RuntimeError # dartbug.com/30667
-Language/Expressions/Function_Expressions/static_type_form_3_asyncs_t03: RuntimeError # dartbgug.com/30667
-Language/Expressions/Function_Expressions/static_type_form_3_async_t03:  RuntimeError # dartbgug.com/30667
-Language/Expressions/Function_Expressions/static_type_form_3_syncs_t03: RuntimeError # dartbgug.com/30667
-Language/Generics/malformed_t02: RuntimeError
-Language/Statements/Return/runtime_type_t04: RuntimeError
-Language/Statements/Switch/execution_t01: RuntimeError
-Language/Statements/Switch/type_t01: RuntimeError
-Language/Types/Dynamic_Type_System/malbounded_type_error_t01: RuntimeError
-Language/Types/Parameterized_Types/malbounded_t06: RuntimeError
-Language/Types/Static_Types/malformed_type_t04: RuntimeError
-
-# Deferred loading kernel issue 28335.
-[ $compiler == dartk || $compiler == dartkp ]
-Language/Libraries_and_Scripts/Imports/deferred_import_t01: CompileTimeError # Deferred loading kernel issue 28335.
-Language/Libraries_and_Scripts/Imports/deferred_import_t02: CompileTimeError # Deferred loading kernel issue 28335.
diff --git a/tests/co19/co19-runtime.status b/tests/co19/co19-runtime.status
index fb18e00..92571b0 100644
--- a/tests/co19/co19-runtime.status
+++ b/tests/co19/co19-runtime.status
@@ -2,236 +2,23 @@
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
 
-[ $runtime == vm ]
-LibTest/isolate/Isolate/spawnUri_A01_t06: Pass, Fail # Issue 28269, These tests are timing dependent and should be non-flaky once the fix for https://github.com/dart-lang/co19/issues/86 is merged into master. (They are skipped on $runtime == pre_compiled below.)
-LibTest/isolate/Isolate/spawnUri_A01_t07: Pass, Fail  # Issue 28269, These tests are timing dependent and should be non-flaky once the fix for https://github.com/dart-lang/co19/issues/86 is merged into master. (They are skipped on $runtime == pre_compiled below.)
-LibTest/isolate/Isolate/spawn_A04_t01: Pass, Fail  # Issue 28269, These tests are timing dependent and should be non-flaky once the fix for https://github.com/dart-lang/co19/issues/86 is merged into master. (They are skipped on $runtime == pre_compiled below.)
-
-[ $runtime == vm && $checked ]
-LibTest/typed_data/Float64List/firstWhere_A02_t01: Fail # These tests fail in checked mode because they are incorrect.
-LibTest/typed_data/Float64List/reduce_A01_t01: Fail # These tests fail in checked mode because they are incorrect.
-LibTest/typed_data/Float64List/add_A01_t01: Fail # These tests fail in checked mode because they are incorrect.
-LibTest/typed_data/Float32List/reduce_A01_t01: Fail # These tests fail in checked mode because they are incorrect.
-
-[$runtime == vm && $compiler == none && $system == fuchsia]
-*: Skip  # Tests not included in the image.
-
-[ ($runtime == vm || $runtime == dart_precompiled) && ($compiler != dartk && $compiler != dartkp) ]
-Language/Classes/Constructors/Generative_Constructors/initializing_formals_execution_t02: CompileTimeError # Issue 114
-
-[ $runtime == dart_precompiled ]
-Language/Classes/Constructors/Generative_Constructors/execution_of_an_initializer_t02: CompileTimeError # Issue 114
-
-[ $runtime == vm || $runtime == flutter || $runtime == dart_precompiled ]
-LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: RuntimeError # Issue 1296
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError, Fail # Issue 22200
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError, Fail # Issue 22200
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError, Fail # Issue 22200
-LibTest/core/RegExp/Pattern_semantics/splitQueryString_A02_t01: RuntimeError # Issue 1296
-
-LibTest/core/int/toRadixString_A01_t01: Fail # co19 issue 492
-
-Language/Libraries_and_Scripts/Exports/reexport_t02: MissingCompileTimeError, fail # Dart issue 12916
-
-Language/Libraries_and_Scripts/Scripts/top_level_main_t01: skip # Issue 29895
-
-Language/Statements/Assert/execution_t02: skip # co19 issue 734
-Language/Statements/Assert/execution_t03: skip # co19 issue 734
-Language/Statements/Assert/type_t02: skip # co19 issue 734
-Language/Statements/Assert/type_t05: skip # co19 issue 734
-
-LibTest/isolate/Isolate/spawnUri_A02_t02: Skip # Issue 15974
-LibTest/isolate/Isolate/spawnUri_A02_t03: Skip # Issue 15974
-LibTest/isolate/Isolate/spawn_A03_t02: Skip # Issue 15974
-LibTest/isolate/Isolate/spawn_A04_t01: Skip # Issue 15974
-LibTest/isolate/Isolate/spawn_A04_t04: Skip # Issue 15974
-LibTest/isolate/Isolate/spawn_A06_t03: Skip # Issue 15974
-LibTest/isolate/Isolate/spawn_A06_t05: Skip # Issue 15974
-LibTest/isolate/Isolate/spawn_A04_t03: Skip # Flaky, Issue 15974
-
-LibTest/core/Symbol/Symbol_A01_t03: RuntimeError # Issue 13596
-LibTest/core/Symbol/Symbol_A01_t05: RuntimeError # Issue 13596
-
-[ $runtime == vm || $runtime == flutter || $runtime == dart_precompiled ]
-LibTest/typed_data/Float32x4/reciprocalSqrt_A01_t01: Pass, Fail # co19 issue 599
-LibTest/typed_data/Float32x4/reciprocal_A01_t01: Pass, Fail # co19 issue 599
-
-[ ($runtime == vm || $runtime == dart_precompiled ) && $mode == debug ]
-LibTest/core/List/List_class_A01_t02: Pass, Slow
-
-[ ($runtime == vm || $runtime == dart_precompiled) && ($arch != x64 && $arch != simarm64 && $arch != arm64 && $arch != simdbc64 && $arch != simdbc) ]
-LibTest/core/int/operator_left_shift_A01_t02: Fail # co19 issue 129
-
-[ ($compiler == none || $compiler == precompiler) && ($runtime == vm || $runtime == dart_precompiled) && $arch == arm64 ]
-LibTest/core/List/List_class_A01_t02: Skip # co19 issue 673, These tests take too much memory (300 MB) for our 1 GB test machine co19 issue 673. http://code.google.com/p/co19/issues/detail?id=673
-LibTest/collection/ListMixin/ListMixin_class_A01_t02: Skip # co19 issue 673, These tests take too much memory (300 MB) for our 1 GB test machine co19 issue 673. http://code.google.com/p/co19/issues/detail?id=673
-LibTest/collection/ListBase/ListBase_class_A01_t02: Skip # co19 issue 673, These tests take too much memory (300 MB) for our 1 GB test machine co19 issue 673. http://code.google.com/p/co19/issues/detail?id=673
-
-[ ($runtime == vm || $runtime == dart_precompiled) && ($arch == simarm || $arch == simarmv6 || $arch == simarmv5te || $arch == simarm64 || $arch == simdbc || $arch == simdbc64) ]
-LibTest/collection/DoubleLinkedQueue/DoubleLinkedQueue_class_A01_t01: Skip # Timeout
-LibTest/collection/IterableBase/IterableBase_class_A01_t02: Skip  # Timeout
-LibTest/collection/IterableMixin/IterableMixin_class_A02_t01: Skip  # Timeout
-LibTest/collection/ListBase/ListBase_class_A01_t01: Skip  # Timeout
-LibTest/collection/ListBase/ListBase_class_A01_t02: Skip  # Timeout
-LibTest/collection/ListMixin/ListMixin_class_A01_t01: Skip  # Timeout
-LibTest/collection/ListMixin/ListMixin_class_A01_t02: Skip  # Timeout
-LibTest/core/Uri/Uri_A06_t03: Skip  # Timeout
-
-[ $system == windows ]
-LibTest/collection/ListMixin/ListMixin_class_A01_t02: Pass, Slow
-LibTest/collection/ListBase/ListBase_class_A01_t02: Pass, Slow
-
-[ $runtime == vm || $runtime == dart_precompiled || $runtime == flutter]
-LibTest/isolate/Isolate/spawn_A02_t01: Skip # co19 issue 667
-LibTest/html/*: SkipByDesign # dart:html not supported on VM.
-LayoutTests/fast/*: SkipByDesign # DOM not supported on VM.
-WebPlatformTest/*: SkipByDesign # dart:html not supported on VM.
-Language/Expressions/Function_Invocation/async_generator_invokation_t08: Fail # Issue 25967
-Language/Expressions/Function_Invocation/async_generator_invokation_t10: Fail # Issue 25967
-Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t08: RuntimeError # Issue 25748
-Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t09: RuntimeError # Issue 25748
-Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t10: RuntimeError # Issue 25748
-Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_sync_t05: RuntimeError # Issue 25662,25634
-Language/Expressions/Assignment/super_assignment_failed_t05: RuntimeError # Issue 25671
-
-[ ($runtime == vm || $runtime == dart_precompiled) && $mode == debug && $builder_tag == asan ]
-Language/Types/Interface_Types/subtype_t27: Skip  # Issue 21174.
-
-#
-# flutter runs with --error-on-bad-type so the following two tests end up
-# with errors and pass
-#
-[ $runtime == flutter ]
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t14: Pass
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t19: Pass
-Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t01: Pass
-Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t03: Pass
-Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t05: Pass
-
-[ ($runtime == vm || $runtime == dart_precompiled || $runtime == flutter) && $compiler != dartk && $compiler != dartkp ]
-Language/Expressions/Method_Invocation/Ordinary_Invocation/object_method_invocation_t01: MissingCompileTimeError # Issue 25496
-Language/Expressions/Method_Invocation/Ordinary_Invocation/object_method_invocation_t02: MissingCompileTimeError # Issue 25496
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t01: MissingCompileTimeError # Issue 24332
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t02: MissingCompileTimeError # Issue 24332
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t03: MissingCompileTimeError # Issue 24332
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t04: MissingCompileTimeError # Issue 24332
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t05: MissingCompileTimeError # Issue 24332
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t06: MissingCompileTimeError # Issue 24332
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t07: MissingCompileTimeError # Issue 24332
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t08: MissingCompileTimeError # Issue 24332
-Language/Mixins/Mixin_Application/syntax_t16: CompileTimeError # Issue 25765
-Language/Mixins/declaring_constructor_t05: MissingCompileTimeError # Issue 24767
-Language/Mixins/declaring_constructor_t06: MissingCompileTimeError # Issue 24767
-Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t01: MissingCompileTimeError # Issue 25495
-Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t03: MissingCompileTimeError # Issue 25495
-Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t05: MissingCompileTimeError # Issue 25495
-
-Language/Libraries_and_Scripts/Exports/invalid_uri_t02: Fail
-Language/Libraries_and_Scripts/Exports/reexport_t01: fail # Dart issue 12916
-Language/Libraries_and_Scripts/Imports/invalid_uri_t02: Fail
-Language/Libraries_and_Scripts/Parts/syntax_t06: Fail
-Language/Statements/Labels/syntax_t03: fail # Dart issue 2238
-Language/Statements/Switch/syntax_t02: fail # Dart issue 12908
-
-[ $runtime == dart_precompiled ]
-Language/Metadata/*: SkipByDesign # Uses dart:mirrors
-Language/Expressions/Null/instance_of_class_null_t01: Skip # Uses dart:mirrors
-
-[ $compiler == precompiler || $compiler == app_jit || $mode == product || $runtime == flutter]
-Language/Libraries_and_Scripts/Imports/deferred_import_t01: Skip # Eager loading
-Language/Libraries_and_Scripts/Imports/deferred_import_t02: Skip # Eager loading
-Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t01: Skip # Eager loading
-Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t02: Skip # Eager loading
-
-[ $runtime == dart_precompiled ]
-LibTest/isolate/Isolate/spawnUri*: SkipByDesign # Isolate.spawnUri
-
 [ $compiler == precompiler ]
 LibTest/collection/ListBase/ListBase_class_A01_t02: Pass, Timeout
 LibTest/collection/ListMixin/ListMixin_class_A01_t02: Pass, Timeout
 LibTest/core/Map/Map_class_A01_t04: Pass, Timeout
 LibTest/core/Uri/encodeQueryComponent_A01_t02: Pass, Timeout
 
-[ $compiler == precompiler || $compiler == app_jit ]
-Language/Mixins/Mixin_Application/error_t01: Pass
-Language/Mixins/Mixin_Application/error_t02: Pass
-Language/Mixins/declaring_constructor_t01: Pass
+[ $runtime == dart_precompiled ]
+Language/Classes/Constructors/Generative_Constructors/execution_of_an_initializer_t02: CompileTimeError # Issue 114
+Language/Expressions/Null/instance_of_class_null_t01: Skip # Uses dart:mirrors
+Language/Metadata/*: SkipByDesign # Uses dart:mirrors
+LibTest/isolate/Isolate/spawnUri*: SkipByDesign # Isolate.spawnUri
 
-[ ($arch == simdbc || $arch == simdbc64) && $mode == debug ]
-LibTest/collection/ListMixin/ListMixin_class_A01_t02: Timeout # TODO(vegorov) These tests are very slow on unoptimized SIMDBC
-LibTest/collection/ListBase/ListBase_class_A01_t02: Timeout # TODO(vegorov) These tests are very slow on unoptimized SIMDBC
-
-[ $compiler == precompiler && $runtime == dart_precompiled && $system == android ]
-*: Skip # Issue 27294
-
-LibTest/math/log_A01_t01: RuntimeError # Precision of Math.log (Issue #18998)
-Language/Expressions/Object_Identity/double_t02: RuntimeError # Issue #26374
-
-[ $compiler == precompiler && $runtime == dart_precompiled && $arch == simarm ]
-LibTest/typed_data/Float32x4/operator_division_A01_t02: RuntimeError # Issue #26675
-
-[ $hot_reload || $hot_reload_rollback || $runtime == flutter ]
-Language/Expressions/Assignment/prefix_object_t02: Skip # Requires deferred libraries
-Language/Expressions/Constants/constant_constructor_t03: Skip # Requires deferred libraries
-Language/Expressions/Constants/identifier_denotes_a_constant_t06: Skip # Requires deferred libraries
-Language/Expressions/Constants/identifier_denotes_a_constant_t07: Skip # Requires deferred libraries
-Language/Expressions/Constants/static_constant_t06: Skip # Requires deferred libraries
-Language/Expressions/Constants/static_constant_t07: Skip # Requires deferred libraries
-Language/Expressions/Constants/top_level_function_t04: Skip # Requires deferred libraries
-Language/Expressions/Constants/top_level_function_t05: Skip # Requires deferred libraries
-Language/Expressions/Instance_Creation/Const/deferred_type_t01: Skip # Requires deferred libraries
-Language/Expressions/Instance_Creation/Const/deferred_type_t02: Skip # Requires deferred libraries
-Language/Expressions/Instance_Creation/New/evaluation_t19: Skip # Requires deferred libraries
-Language/Expressions/Instance_Creation/New/evaluation_t20: Skip # Requires deferred libraries
-Language/Expressions/Type_Cast/evaluation_t10: Skip # Requires deferred libraries
-Language/Expressions/Type_Test/evaluation_t10: Skip # Requires deferred libraries
-Language/Libraries_and_Scripts/Imports/deferred_import_t01: Skip # Requires deferred libraries
-Language/Libraries_and_Scripts/Imports/deferred_import_t02: Skip # Requires deferred libraries
-Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t01: Skip # Requires deferred libraries
-Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t02: Skip # Requires deferred libraries
-Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t03: Skip # Requires deferred libraries
-Language/Libraries_and_Scripts/Imports/static_type_t01: Skip # Requires deferred libraries
-Language/Types/Dynamic_Type_System/deferred_type_error_t01: Skip # Requires deferred libraries
-Language/Types/Static_Types/deferred_type_t01: Skip # Requires deferred libraries
-LibTest/async/DeferredLibrary/DeferredLibrary_A01_t01: Skip # Requires deferred libraries
-LibTest/collection/IterableBase/IterableBase_class_A01_t02: Pass, Timeout
-LibTest/collection/IterableMixin/IterableMixin_class_A02_t01: Pass, Timeout
-LibTest/collection/ListBase/ListBase_class_A01_t01: Pass, Timeout
-LibTest/collection/ListBase/ListBase_class_A01_t02: Pass, Timeout
-LibTest/collection/ListMixin/ListMixin_class_A01_t01: Pass, Timeout
-LibTest/collection/ListMixin/ListMixin_class_A01_t02: Pass, Timeout
-LibTest/core/List/List_class_A01_t01: Pass, Timeout
-LibTest/core/List/List_class_A01_t02: Pass, Timeout
-LibTest/core/Map/Map_class_A01_t04: Pass, Timeout
-LibTest/core/Uri/Uri_A06_t03: Pass, Timeout
-LibTest/core/Uri/encodeQueryComponent_A01_t02: Pass, Timeout
-LibTest/isolate/Isolate/spawn_A01_t04: Pass, Timeout
-LibTest/isolate/ReceivePort/take_A01_t02: Skip # Issue 27773
-LibTest/collection/DoubleLinkedQueue/DoubleLinkedQueue_class_A01_t01: Pass, Slow
-
-[ $runtime == vm && $mode == release && $system == linux && ($arch == x64 || $arch == ia32)]
-LibTest/isolate/Isolate/spawn_A04_t05: Pass, Slow
-
-[ $runtime == vm && $mode == release && $system == linux && $arch == ia32]
-service/dev_fs_spawn_test: Pass, Fail # Issue 28411
-
-# flutter uses --error_on_bad_type, --error_on_bad_override and
-# --await_is_keyword so that tests failing with a Compilation Error is fine.
+#
+# flutter runs with --error-on-bad-type so the following two tests end up
+# with errors and pass
+#
 [ $runtime == flutter ]
-LibTest/isolate/Isolate/spawnUri* : Skip # spawnUri is not supported by flutter
-LibTest/collection/SplayTreeSet/SplayTreeSet.from_A02_t04: Pass, Timeout
-LibTest/collection/LinkedList/addFirst_A01_t01: Pass, Timeout # Flutter Issue 9109
-LibTest/typed_data/Int32List/buffer_A01_t02: Pass, Timeout # Flutter Issue 9109
-LibTest/collection/DoubleLinkedQueueEntry/append_A01_t01: Pass, Timeout # Flutter Issue 9109
-
-LibTest/async/Future/doWhile_A05_t01: Pass, RuntimeError # Flutter Issue 9109
-LibTest/async/Future/forEach_A04_t02: Pass, RuntimeError # Flutter Issue 9109
-LibTest/async/StreamController/StreamController.broadcast_A04_t01: Pass, RuntimeError # Flutter Issue 9109
-LibTest/async/Stream/timeout_A01_t01: Pass, RuntimeError # Flutter Issue 9109
-LibTest/async/Stream/timeout_A03_t01: Pass, RuntimeError # Flutter Issue 9109
-LibTest/async/Stream/timeout_A04_t01: Pass, RuntimeError # Flutter Issue 9109
-LibTest/isolate/ReceivePort/sendPort_A01_t01: Pass, Timeout # Flutter Issue 9109
-
 Language/Classes/Abstract_Instance_Members/override_more_required_parameters_t01: CompileTimeError
 Language/Classes/Abstract_Instance_Members/override_no_named_parameters_t01: CompileTimeError
 Language/Classes/Abstract_Instance_Members/override_not_a_subtype_t01: CompileTimeError
@@ -258,9 +45,12 @@
 Language/Errors_and_Warnings/static_warning_t01: CompileTimeError
 Language/Expressions/Assignment/expression_assignment_failed_t06: CompileTimeError
 Language/Expressions/Assignment/super_assignment_failed_t05: CompileTimeError
-Language/Expressions/Instance_Creation/malformed_or_malbounded_t01: CompileTimeError
-Language/Expressions/Instance_Creation/malformed_or_malbounded_t03: CompileTimeError
-Language/Expressions/Instance_Creation/malformed_or_malbounded_t07: CompileTimeError
+Language/Expressions/Await_Expressions/syntax_t07: CompileTimeError
+Language/Expressions/Await_Expressions/syntax_t08: CompileTimeError
+Language/Expressions/Await_Expressions/syntax_t09: CompileTimeError
+Language/Expressions/Identifier_Reference/async_and_generator_t01: CompileTimeError
+Language/Expressions/Identifier_Reference/built_in_not_dynamic_t14: Pass
+Language/Expressions/Identifier_Reference/built_in_not_dynamic_t19: Pass
 Language/Expressions/Instance_Creation/New/evaluation_t03: CompileTimeError
 Language/Expressions/Instance_Creation/New/evaluation_t16: CompileTimeError
 Language/Expressions/Instance_Creation/New/evaluation_t17: CompileTimeError
@@ -274,6 +64,9 @@
 Language/Expressions/Instance_Creation/New/type_t02: CompileTimeError
 Language/Expressions/Instance_Creation/New/type_t03: CompileTimeError
 Language/Expressions/Instance_Creation/New/type_t05: CompileTimeError
+Language/Expressions/Instance_Creation/malformed_or_malbounded_t01: CompileTimeError
+Language/Expressions/Instance_Creation/malformed_or_malbounded_t03: CompileTimeError
+Language/Expressions/Instance_Creation/malformed_or_malbounded_t07: CompileTimeError
 Language/Expressions/Null/instance_of_class_null_t01: CompileTimeError
 Language/Expressions/Type_Cast/evaluation_t04: CompileTimeError
 Language/Expressions/Type_Cast/evaluation_t05: CompileTimeError
@@ -323,8 +116,8 @@
 Language/Metadata/before_param_t07: CompileTimeError
 Language/Metadata/before_param_t08: CompileTimeError
 Language/Metadata/before_param_t09: CompileTimeError
-Language/Metadata/before_typedef_t01: CompileTimeError
 Language/Metadata/before_type_param_t01: CompileTimeError
+Language/Metadata/before_typedef_t01: CompileTimeError
 Language/Metadata/before_variable_t01: CompileTimeError
 Language/Metadata/before_variable_t02: CompileTimeError
 Language/Mixins/Mixin_Application/syntax_t21: CompileTimeError
@@ -337,6 +130,9 @@
 Language/Statements/Try/malformed_type_t01: CompileTimeError
 Language/Statements/Try/malformed_type_t02: CompileTimeError
 Language/Statements/Try/malformed_type_t03: CompileTimeError
+Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t01: Pass
+Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t03: Pass
+Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t05: Pass
 Language/Types/Dynamic_Type_System/malbounded_type_error_t01: CompileTimeError
 Language/Types/Parameterized_Types/Actual_Type_of_Declaration/actual_type_t02: CompileTimeError
 Language/Types/Parameterized_Types/Actual_Type_of_Declaration/actual_type_t03: CompileTimeError
@@ -358,13 +154,196 @@
 Language/Types/Static_Types/malformed_type_t04: CompileTimeError
 Language/Types/Static_Types/malformed_type_t05: CompileTimeError
 Language/Types/Static_Types/malformed_type_t06: CompileTimeError
-Language/Expressions/Await_Expressions/syntax_t07: CompileTimeError
-Language/Expressions/Await_Expressions/syntax_t08: CompileTimeError
-Language/Expressions/Await_Expressions/syntax_t09: CompileTimeError
-Language/Expressions/Identifier_Reference/async_and_generator_t01: CompileTimeError
+LibTest/async/Future/doWhile_A05_t01: Pass, RuntimeError # Flutter Issue 9109
+LibTest/async/Future/forEach_A04_t02: Pass, RuntimeError # Flutter Issue 9109
+LibTest/async/Stream/timeout_A01_t01: Pass, RuntimeError # Flutter Issue 9109
+LibTest/async/Stream/timeout_A03_t01: Pass, RuntimeError # Flutter Issue 9109
+LibTest/async/Stream/timeout_A04_t01: Pass, RuntimeError # Flutter Issue 9109
+LibTest/async/StreamController/StreamController.broadcast_A04_t01: Pass, RuntimeError # Flutter Issue 9109
+LibTest/collection/DoubleLinkedQueueEntry/append_A01_t01: Pass, Timeout # Flutter Issue 9109
+LibTest/collection/LinkedList/addFirst_A01_t01: Pass, Timeout # Flutter Issue 9109
+LibTest/collection/SplayTreeSet/SplayTreeSet.from_A02_t04: Pass, Timeout
+LibTest/isolate/Isolate/spawnUri*: Skip # spawnUri is not supported by flutter
+LibTest/isolate/ReceivePort/sendPort_A01_t01: Pass, Timeout # Flutter Issue 9109
+LibTest/typed_data/Int32List/buffer_A01_t02: Pass, Timeout # Flutter Issue 9109
+
+[ $runtime == vm ]
+LibTest/isolate/Isolate/spawnUri_A01_t06: Pass, Fail # Issue 28269, These tests are timing dependent and should be non-flaky once the fix for https://github.com/dart-lang/co19/issues/86 is merged into master. (They are skipped on $runtime == pre_compiled below.)
+LibTest/isolate/Isolate/spawnUri_A01_t07: Pass, Fail # Issue 28269, These tests are timing dependent and should be non-flaky once the fix for https://github.com/dart-lang/co19/issues/86 is merged into master. (They are skipped on $runtime == pre_compiled below.)
+LibTest/isolate/Isolate/spawn_A04_t01: Pass, Fail # Issue 28269, These tests are timing dependent and should be non-flaky once the fix for https://github.com/dart-lang/co19/issues/86 is merged into master. (They are skipped on $runtime == pre_compiled below.)
+
+[ $system == windows ]
+LibTest/collection/ListBase/ListBase_class_A01_t02: Pass, Slow
+LibTest/collection/ListMixin/ListMixin_class_A01_t02: Pass, Slow
+
+[ $arch == arm64 && ($compiler == none || $compiler == precompiler) && ($runtime == dart_precompiled || $runtime == vm) ]
+LibTest/collection/ListBase/ListBase_class_A01_t02: Skip # co19 issue 673, These tests take too much memory (300 MB) for our 1 GB test machine co19 issue 673. http://code.google.com/p/co19/issues/detail?id=673
+LibTest/collection/ListMixin/ListMixin_class_A01_t02: Skip # co19 issue 673, These tests take too much memory (300 MB) for our 1 GB test machine co19 issue 673. http://code.google.com/p/co19/issues/detail?id=673
+LibTest/core/List/List_class_A01_t02: Skip # co19 issue 673, These tests take too much memory (300 MB) for our 1 GB test machine co19 issue 673. http://code.google.com/p/co19/issues/detail?id=673
+
+[ $arch != arm64 && $arch != simarm64 && $arch != simdbc && $arch != simdbc64 && $arch != x64 && ($runtime == dart_precompiled || $runtime == vm) ]
+LibTest/core/int/operator_left_shift_A01_t02: Fail # co19 issue 129
+
+[ $arch == ia32 && $mode == release && $runtime == vm && $system == linux ]
+service/dev_fs_spawn_test: Pass, Fail # Issue 28411
+
+[ $arch == simarm && $compiler == precompiler && $runtime == dart_precompiled ]
+LibTest/typed_data/Float32x4/operator_division_A01_t02: RuntimeError # Issue #26675
+
+[ $builder_tag == asan && $mode == debug && ($runtime == dart_precompiled || $runtime == vm) ]
+Language/Types/Interface_Types/subtype_t27: Skip # Issue 21174.
+
+[ $compiler != dartk && $compiler != dartkp && ($runtime == dart_precompiled || $runtime == flutter || $runtime == vm) ]
+Language/Expressions/Method_Invocation/Ordinary_Invocation/object_method_invocation_t01: MissingCompileTimeError # Issue 25496
+Language/Expressions/Method_Invocation/Ordinary_Invocation/object_method_invocation_t02: MissingCompileTimeError # Issue 25496
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t01: MissingCompileTimeError # Issue 24332
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t02: MissingCompileTimeError # Issue 24332
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t03: MissingCompileTimeError # Issue 24332
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t04: MissingCompileTimeError # Issue 24332
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t05: MissingCompileTimeError # Issue 24332
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t06: MissingCompileTimeError # Issue 24332
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t07: MissingCompileTimeError # Issue 24332
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t08: MissingCompileTimeError # Issue 24332
+Language/Libraries_and_Scripts/Exports/invalid_uri_t02: Fail
+Language/Libraries_and_Scripts/Exports/reexport_t01: Fail # Dart issue 12916
+Language/Libraries_and_Scripts/Imports/invalid_uri_t02: Fail
+Language/Libraries_and_Scripts/Parts/syntax_t06: Fail
+Language/Mixins/Mixin_Application/syntax_t16: CompileTimeError # Issue 25765
+Language/Mixins/declaring_constructor_t05: MissingCompileTimeError # Issue 24767
+Language/Mixins/declaring_constructor_t06: MissingCompileTimeError # Issue 24767
+Language/Statements/Labels/syntax_t03: Fail # Dart issue 2238
+Language/Statements/Switch/syntax_t02: Fail # Dart issue 12908
+Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t01: MissingCompileTimeError # Issue 25495
+Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t03: MissingCompileTimeError # Issue 25495
+Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t05: MissingCompileTimeError # Issue 25495
+
+[ $compiler != dartk && $compiler != dartkp && ($runtime == dart_precompiled || $runtime == vm) ]
+Language/Classes/Constructors/Generative_Constructors/initializing_formals_execution_t02: CompileTimeError # Issue 114
+
+[ $compiler == none && $runtime == vm && $system == fuchsia ]
+*: Skip # Tests not included in the image.
+
+[ $compiler == precompiler && $runtime == dart_precompiled && $system == android ]
+*: Skip # Issue 27294
+Language/Expressions/Object_Identity/double_t02: RuntimeError # Issue #26374
+LibTest/math/log_A01_t01: RuntimeError # Precision of Math.log (Issue #18998)
+
+[ $mode == debug && ($arch == simdbc || $arch == simdbc64) ]
+LibTest/collection/ListBase/ListBase_class_A01_t02: Timeout # TODO(vegorov) These tests are very slow on unoptimized SIMDBC
+LibTest/collection/ListMixin/ListMixin_class_A01_t02: Timeout # TODO(vegorov) These tests are very slow on unoptimized SIMDBC
+
+[ $mode == debug && ($runtime == dart_precompiled || $runtime == vm) ]
+LibTest/core/List/List_class_A01_t02: Pass, Slow
+
+[ $mode == release && $runtime == vm && $system == linux && ($arch == ia32 || $arch == x64) ]
+LibTest/isolate/Isolate/spawn_A04_t05: Pass, Slow
 
 # Obfuscated mode expectations
 [ $runtime == dart_precompiled && $minified ]
-Language/Enums/declaration_equivalent_t01: Skip  # Enum.toString is obfuscated.
-Language/Expressions/Property_Extraction/Super_Getter_Access_and_Method_Closurization/no_such_method_t01: Skip  # Uses new Symbol() instead of const Symbol()
-LibTest/core/Symbol/Symbol_A01_t01: Skip  # Uses new Symbol()
+Language/Enums/declaration_equivalent_t01: Skip # Enum.toString is obfuscated.
+Language/Expressions/Property_Extraction/Super_Getter_Access_and_Method_Closurization/no_such_method_t01: Skip # Uses new Symbol() instead of const Symbol()
+LibTest/core/Symbol/Symbol_A01_t01: Skip # Uses new Symbol()
+
+[ $runtime == vm && $checked ]
+LibTest/typed_data/Float32List/reduce_A01_t01: Fail # These tests fail in checked mode because they are incorrect.
+LibTest/typed_data/Float64List/add_A01_t01: Fail # These tests fail in checked mode because they are incorrect.
+LibTest/typed_data/Float64List/firstWhere_A02_t01: Fail # These tests fail in checked mode because they are incorrect.
+LibTest/typed_data/Float64List/reduce_A01_t01: Fail # These tests fail in checked mode because they are incorrect.
+
+[ ($arch == simarm || $arch == simarm64 || $arch == simarmv5te || $arch == simarmv6 || $arch == simdbc || $arch == simdbc64) && ($runtime == dart_precompiled || $runtime == vm) ]
+LibTest/collection/DoubleLinkedQueue/DoubleLinkedQueue_class_A01_t01: Skip # Timeout
+LibTest/collection/IterableBase/IterableBase_class_A01_t02: Skip # Timeout
+LibTest/collection/IterableMixin/IterableMixin_class_A02_t01: Skip # Timeout
+LibTest/collection/ListBase/ListBase_class_A01_t01: Skip # Timeout
+LibTest/collection/ListBase/ListBase_class_A01_t02: Skip # Timeout
+LibTest/collection/ListMixin/ListMixin_class_A01_t01: Skip # Timeout
+LibTest/collection/ListMixin/ListMixin_class_A01_t02: Skip # Timeout
+LibTest/core/Uri/Uri_A06_t03: Skip # Timeout
+
+[ $compiler == app_jit || $compiler == precompiler ]
+Language/Mixins/Mixin_Application/error_t01: Pass
+Language/Mixins/Mixin_Application/error_t02: Pass
+Language/Mixins/declaring_constructor_t01: Pass
+
+[ $compiler == app_jit || $compiler == precompiler || $mode == product || $runtime == flutter ]
+Language/Libraries_and_Scripts/Imports/deferred_import_t01: Skip # Eager loading
+Language/Libraries_and_Scripts/Imports/deferred_import_t02: Skip # Eager loading
+Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t01: Skip # Eager loading
+Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t02: Skip # Eager loading
+
+[ $runtime == dart_precompiled || $runtime == flutter || $runtime == vm ]
+Language/Expressions/Assignment/super_assignment_failed_t05: RuntimeError # Issue 25671
+Language/Expressions/Function_Invocation/async_generator_invokation_t08: Fail # Issue 25967
+Language/Expressions/Function_Invocation/async_generator_invokation_t10: Fail # Issue 25967
+Language/Libraries_and_Scripts/Exports/reexport_t02: MissingCompileTimeError, Fail # Dart issue 12916
+Language/Libraries_and_Scripts/Scripts/top_level_main_t01: Skip # Issue 29895
+Language/Statements/Assert/execution_t02: Skip # co19 issue 734
+Language/Statements/Assert/execution_t03: Skip # co19 issue 734
+Language/Statements/Assert/type_t02: Skip # co19 issue 734
+Language/Statements/Assert/type_t05: Skip # co19 issue 734
+Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t08: RuntimeError # Issue 25748
+Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t09: RuntimeError # Issue 25748
+Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t10: RuntimeError # Issue 25748
+Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_sync_t05: RuntimeError # Issue 25662,25634
+LayoutTests/fast/*: SkipByDesign # DOM not supported on VM.
+LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: RuntimeError # Issue 1296
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError, Fail # Issue 22200
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError, Fail # Issue 22200
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError, Fail # Issue 22200
+LibTest/core/RegExp/Pattern_semantics/splitQueryString_A02_t01: RuntimeError # Issue 1296
+LibTest/core/Symbol/Symbol_A01_t03: RuntimeError # Issue 13596
+LibTest/core/Symbol/Symbol_A01_t05: RuntimeError # Issue 13596
+LibTest/core/int/toRadixString_A01_t01: Fail # co19 issue 492
+LibTest/html/*: SkipByDesign # dart:html not supported on VM.
+LibTest/isolate/Isolate/spawnUri_A02_t02: Skip # Issue 15974
+LibTest/isolate/Isolate/spawnUri_A02_t03: Skip # Issue 15974
+LibTest/isolate/Isolate/spawn_A02_t01: Skip # co19 issue 667
+LibTest/isolate/Isolate/spawn_A03_t02: Skip # Issue 15974
+LibTest/isolate/Isolate/spawn_A04_t01: Skip # Issue 15974
+LibTest/isolate/Isolate/spawn_A04_t03: Skip # Flaky, Issue 15974
+LibTest/isolate/Isolate/spawn_A04_t04: Skip # Issue 15974
+LibTest/isolate/Isolate/spawn_A06_t03: Skip # Issue 15974
+LibTest/isolate/Isolate/spawn_A06_t05: Skip # Issue 15974
+LibTest/typed_data/Float32x4/reciprocalSqrt_A01_t01: Pass, Fail # co19 issue 599
+LibTest/typed_data/Float32x4/reciprocal_A01_t01: Pass, Fail # co19 issue 599
+WebPlatformTest/*: SkipByDesign # dart:html not supported on VM.
+
+[ $runtime == flutter || $hot_reload || $hot_reload_rollback ]
+Language/Expressions/Assignment/prefix_object_t02: Skip # Requires deferred libraries
+Language/Expressions/Constants/constant_constructor_t03: Skip # Requires deferred libraries
+Language/Expressions/Constants/identifier_denotes_a_constant_t06: Skip # Requires deferred libraries
+Language/Expressions/Constants/identifier_denotes_a_constant_t07: Skip # Requires deferred libraries
+Language/Expressions/Constants/static_constant_t06: Skip # Requires deferred libraries
+Language/Expressions/Constants/static_constant_t07: Skip # Requires deferred libraries
+Language/Expressions/Constants/top_level_function_t04: Skip # Requires deferred libraries
+Language/Expressions/Constants/top_level_function_t05: Skip # Requires deferred libraries
+Language/Expressions/Instance_Creation/Const/deferred_type_t01: Skip # Requires deferred libraries
+Language/Expressions/Instance_Creation/Const/deferred_type_t02: Skip # Requires deferred libraries
+Language/Expressions/Instance_Creation/New/evaluation_t19: Skip # Requires deferred libraries
+Language/Expressions/Instance_Creation/New/evaluation_t20: Skip # Requires deferred libraries
+Language/Expressions/Type_Cast/evaluation_t10: Skip # Requires deferred libraries
+Language/Expressions/Type_Test/evaluation_t10: Skip # Requires deferred libraries
+Language/Libraries_and_Scripts/Imports/deferred_import_t01: Skip # Requires deferred libraries
+Language/Libraries_and_Scripts/Imports/deferred_import_t02: Skip # Requires deferred libraries
+Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t01: Skip # Requires deferred libraries
+Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t02: Skip # Requires deferred libraries
+Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t03: Skip # Requires deferred libraries
+Language/Libraries_and_Scripts/Imports/static_type_t01: Skip # Requires deferred libraries
+Language/Types/Dynamic_Type_System/deferred_type_error_t01: Skip # Requires deferred libraries
+Language/Types/Static_Types/deferred_type_t01: Skip # Requires deferred libraries
+LibTest/async/DeferredLibrary/DeferredLibrary_A01_t01: Skip # Requires deferred libraries
+LibTest/collection/DoubleLinkedQueue/DoubleLinkedQueue_class_A01_t01: Pass, Slow
+LibTest/collection/IterableBase/IterableBase_class_A01_t02: Pass, Timeout
+LibTest/collection/IterableMixin/IterableMixin_class_A02_t01: Pass, Timeout
+LibTest/collection/ListBase/ListBase_class_A01_t01: Pass, Timeout
+LibTest/collection/ListBase/ListBase_class_A01_t02: Pass, Timeout
+LibTest/collection/ListMixin/ListMixin_class_A01_t01: Pass, Timeout
+LibTest/collection/ListMixin/ListMixin_class_A01_t02: Pass, Timeout
+LibTest/core/List/List_class_A01_t01: Pass, Timeout
+LibTest/core/List/List_class_A01_t02: Pass, Timeout
+LibTest/core/Map/Map_class_A01_t04: Pass, Timeout
+LibTest/core/Uri/Uri_A06_t03: Pass, Timeout
+LibTest/core/Uri/encodeQueryComponent_A01_t02: Pass, Timeout
+LibTest/isolate/Isolate/spawn_A01_t04: Pass, Timeout
+LibTest/isolate/ReceivePort/take_A01_t02: Skip # Issue 27773
+
diff --git a/tests/compiler/dart2js/const_exp_test.dart b/tests/compiler/dart2js/const_exp_test.dart
index 45d212c..21d977e 100644
--- a/tests/compiler/dart2js/const_exp_test.dart
+++ b/tests/compiler/dart2js/const_exp_test.dart
@@ -30,6 +30,8 @@
 """, expectNoWarningsOrErrors: true).then((env) {
         dynamic element = env.getElement('constant');
         Expect.isNotNull(element, "Element 'constant' not found.");
+
+        /// ignore: undefined_getter
         var constant = element.constant;
         var value = env.compiler.constants.getConstantValue(constant);
         Expect.isNotNull(constant, "No constant computed for '$element'.");
diff --git a/tests/compiler/dart2js/dart2js.status b/tests/compiler/dart2js/dart2js.status
index 9c1324e..d189e0d 100644
--- a/tests/compiler/dart2js/dart2js.status
+++ b/tests/compiler/dart2js/dart2js.status
@@ -1,78 +1,77 @@
-# Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
-
-packages/*: Skip # Skip packages folder
-
-analyze_test: Slow, Pass
-
+# Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 analyze_dart_test: Slow, Pass
-
+analyze_test: Slow, Pass
+async_await_syntax_test: Pass # DON'T CHANGE THIS LINE -- Don't mark these tests as failing. Instead, fix the errors/warnings that they report or update the whitelist in the test-files to temporarily allow digression.
+backend_dart/opt_cyclic_redundant_phi_test: Fail # Issue 20159
+boolified_operator_test: Fail # Issue 8001
+check_elements_invariants_test: Skip # Times out even with Slow marker. Slow due to inlining in the CPS backend
 compile_with_empty_libraries_test: Fail # Issue 24223
-
+equivalence/id_equivalence_test: Pass, Slow
+gvn_dynamic_field_get_test: Fail # Issue 18519
 inference/inference_test: Slow, Pass
 inference/swarm_test: Slow, Pass
-
+inlining/inlining_test: Slow, Pass
 kernel/*: Slow, Pass
-
-boolified_operator_test: Fail # Issue 8001
-
+logical_expression_test: Fail # Issue 17027
+mirrors/library_exports_hidden_test: Fail
+mirrors/library_exports_shown_test: Fail
+mirrors/library_imports_hidden_test: Fail
+mirrors/library_imports_prefixed_show_hide_test: Fail
+mirrors/library_imports_prefixed_test: Fail
+mirrors/library_imports_shown_test: Fail
+packages/*: Skip # Skip packages folder
+patch_test/bug: RuntimeError # Issue 21132
+quarantined/http_test: Pass, Slow
 serialization/analysis1_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
 serialization/analysis3_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
 serialization/analysis4_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
 serialization/analysis5_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
-serialization/compilation_1_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
 serialization/compilation0_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
 serialization/compilation1_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
-serialization/compilation4_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
 serialization/compilation3_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
+serialization/compilation4_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
 serialization/compilation5_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
+serialization/compilation_1_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
 serialization/library_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
-serialization/model_1_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
 serialization/model1_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
 serialization/model3_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
 serialization/model4_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
 serialization/model5_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
+serialization/model_1_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
 serialization/native_data_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
-
-async_await_syntax_test: Pass # DON'T CHANGE THIS LINE -- Don't mark these tests as failing. Instead, fix the errors/warnings that they report or update the whitelist in the test-files to temporarily allow digression.
-
 simple_function_subtype_test: Fail # simple_function_subtype_test is temporarily(?) disabled due to new method for building function type tests.
-
-simple_inferrer_const_closure_test: Fail # Issue 16507
 simple_inferrer_const_closure2_test: Fail # Issue 16507
+simple_inferrer_const_closure_test: Fail # Issue 16507
 simple_inferrer_global_field_closure_test: Fail # Issue 16507
-
-logical_expression_test: Fail # Issue 17027
-
-gvn_dynamic_field_get_test: Fail # Issue 18519
-
-backend_dart/opt_cyclic_redundant_phi_test: Fail # Issue 20159
-
-mirrors/library_exports_hidden_test: Fail
-mirrors/library_exports_shown_test: Fail
-mirrors/library_imports_hidden_test: Fail
-mirrors/library_imports_prefixed_test: Fail
-mirrors/library_imports_prefixed_show_hide_test: Fail
-mirrors/library_imports_shown_test: Fail
-
-patch_test/bug: RuntimeError # Issue 21132
-
-quarantined/http_test: Pass, Slow
-
-sourcemaps/source_mapping_operators_test: Pass, Slow
 sourcemaps/source_mapping_invokes_test: Pass, Slow
+sourcemaps/source_mapping_operators_test: Pass, Slow
 sourcemaps/source_mapping_test: Pass, Slow
-
-check_elements_invariants_test: Skip # Times out even with Slow marker. Slow due to inlining in the CPS backend
-
+subtype_test: Slow, Pass
 uri_retention_test: Fail # Issue 26504
-equivalence/id_equivalence_test: Pass, Slow
 
-[ ! $checked ]
-exit_code_test: Skip # This tests requires checked mode.
-serialization*: Slow, Pass
-jsinterop/declaration_test: Slow, Pass
+[ $mode == debug ]
+analyze_api_test: Pass, Slow # DON'T CHANGE THIS LINE -- Don't mark these tests as failing. Instead, fix the errors/warnings that they report or update the whitelist in the test-files to temporarily allow digression.
+analyze_dart2js_test: Pass, Slow # DON'T CHANGE THIS LINE -- Don't mark these tests as failing. Instead, fix the errors/warnings that they report or update the whitelist in the test-files to temporarily allow digression.
+analyze_unused_dart2js_test: Pass, Slow
+check_elements_invariants_test: Skip # Slow and only needs to be run in one configuration
+check_members_test: Pass, Slow
+dart2js_batch_test: Pass, Slow
+deferred_load_graph_segmentation_test: Pass, Slow
+deferred_load_mapping_test: Pass, Slow
+deferred_mirrors_test: Pass, Slow
+duplicate_library_test: Pass, Slow
+exit_code_test: Pass, Slow
+import_mirrors_test: Pass, Slow
+in_user_code_test: Pass, Slow
+message_kind_test: Pass, Slow
+mirror_final_field_inferrer2_test: Crash, Pass, Slow # Issue 15581
+show_package_warnings_test: Pass, Slow
+source_map_pub_build_validity_test: Pass, Slow
+
+[ $system == linux ]
+dart2js_batch2_test: Pass, RuntimeError # Issue 29021
 
 [ $checked ]
 analyze_dart2js_helpers_test: Pass, Slow
@@ -85,41 +84,22 @@
 import_mirrors_test: Slow, Pass
 interop_anonymous_unreachable_test: Pass, Slow
 jsinterop/declaration_test: Slow, Pass
-mirror_final_field_inferrer2_test: Pass, Slow
-source_map_pub_build_validity_test: Pass, Slow
-serialization*: Slow, Pass
-uri_retention_test: Pass, Slow
-value_range_test: Pass, Slow
 jsinterop/world_test: Pass, Slow
-sourcemaps/stacktrace_test: Pass, Slow
 kernel/visitor_test: Pass, Slow
+mirror_final_field_inferrer2_test: Pass, Slow
 output_type_test: Pass, Slow
 preserve_uris_test: Pass, Slow
-
-[ $mode == debug ]
-check_elements_invariants_test: Skip # Slow and only needs to be run in one configuration
-
-mirror_final_field_inferrer2_test: Crash, Pass, Slow # Issue 15581
-
-analyze_unused_dart2js_test: Pass, Slow
-check_members_test: Pass, Slow
-dart2js_batch_test: Pass, Slow
-deferred_load_graph_segmentation_test: Pass, Slow
-deferred_load_mapping_test: Pass, Slow
-deferred_mirrors_test: Pass, Slow
-duplicate_library_test: Pass, Slow
-exit_code_test: Pass, Slow
-import_mirrors_test: Pass, Slow
-in_user_code_test: Pass, Slow
-message_kind_test: Pass, Slow
-show_package_warnings_test: Pass, Slow
+serialization*: Slow, Pass
 source_map_pub_build_validity_test: Pass, Slow
+sourcemaps/stacktrace_test: Pass, Slow
+uri_retention_test: Pass, Slow
+value_range_test: Pass, Slow
 
-analyze_api_test: Pass, Slow # DON'T CHANGE THIS LINE -- Don't mark these tests as failing. Instead, fix the errors/warnings that they report or update the whitelist in the test-files to temporarily allow digression.
-analyze_dart2js_test: Pass, Slow # DON'T CHANGE THIS LINE -- Don't mark these tests as failing. Instead, fix the errors/warnings that they report or update the whitelist in the test-files to temporarily allow digression.
+[ !$checked ]
+exit_code_test: Skip # This tests requires checked mode.
+jsinterop/declaration_test: Slow, Pass
+serialization*: Slow, Pass
 
-[ $jscl || $runtime == ff || $runtime == firefox || $runtime == chrome || $runtime == safari ]
+[ $runtime == chrome || $runtime == ff || $runtime == firefox || $runtime == safari || $jscl ]
 *: Skip # dart2js uses #import('dart:io'); and it is not self-hosted (yet).
 
-[ $system == linux ]
-dart2js_batch2_test: Pass, RuntimeError # Issue 29021
diff --git a/tests/compiler/dart2js/deferred_closures_test.dart b/tests/compiler/dart2js/deferred_closures_test.dart
new file mode 100644
index 0000000..f65fc1c
--- /dev/null
+++ b/tests/compiler/dart2js/deferred_closures_test.dart
@@ -0,0 +1,61 @@
+// Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Ensures that closures are in the output unit of their enclosing element.
+
+import 'package:async_helper/async_helper.dart';
+import 'package:compiler/compiler_new.dart';
+import 'package:compiler/src/commandline_options.dart';
+import 'package:expect/expect.dart';
+
+import 'memory_compiler.dart';
+import 'output_collector.dart';
+
+void main() {
+  asyncTest(() async {
+    await runTest(false);
+    await runTest(true);
+  });
+}
+
+runTest(bool useKernel) async {
+  OutputCollector collector = new OutputCollector();
+  var options = useKernel ? [Flags.useKernel] : [];
+  await runCompiler(
+      memorySourceFiles: sources, outputProvider: collector, options: options);
+  String mainOutput = collector.getOutput("", OutputType.js);
+  String deferredOutput = collector.getOutput("out_1", OutputType.jsPart);
+
+  Expect.isTrue(mainOutput.contains("other_method_name:"));
+  Expect.isFalse(mainOutput.contains("unique_method_name:"));
+  Expect.isFalse(mainOutput.contains("unique_method_name_closure:"));
+  Expect.isFalse(mainOutput.contains("unique-string"));
+
+  Expect.isFalse(deferredOutput.contains("other_method_name:"));
+  Expect.isTrue(deferredOutput.contains("unique_method_name:"));
+  Expect.isTrue(deferredOutput.contains("unique_method_name_closure:"));
+  Expect.isTrue(deferredOutput.contains("unique-string"));
+}
+
+// Make sure that deferred constants are not inlined into the main hunk.
+const Map sources = const {
+  "main.dart": """
+    import 'lib.dart' deferred as lib;
+
+    main() async {
+      await (lib.loadLibrary)();
+      lib.unique_method_name();
+      other_method_name();
+    }
+    other_method_name() { throw "hi"; }""",
+  "lib.dart": """
+    library deferred;
+
+    unique_method_name() {
+      return (() => print("unique-string"))();
+      // TODO(sigmund): this line prevents inlining, but it should not be
+      // necessary: the kernel pipeline is incorrectly inlining this method.
+      return "1";
+    }"""
+};
diff --git a/tests/compiler/dart2js/equivalence/id_equivalence_helper.dart b/tests/compiler/dart2js/equivalence/id_equivalence_helper.dart
index 02219c1..c3d22e2 100644
--- a/tests/compiler/dart2js/equivalence/id_equivalence_helper.dart
+++ b/tests/compiler/dart2js/equivalence/id_equivalence_helper.dart
@@ -115,8 +115,7 @@
     if (member is ConstructorElement && member.isRedirectingFactory) {
       return;
     }
-    if (skipUnprocessedMembers &&
-        !closedWorld.processedMembers.contains(member)) {
+    if (!closedWorld.processedMembers.contains(member)) {
       return;
     }
     if (member.enclosingClass != null) {
@@ -138,8 +137,7 @@
   if (forMainLibraryOnly) {
     LibraryEntity mainLibrary = elementEnvironment.mainLibrary;
     elementEnvironment.forEachClass(mainLibrary, (ClassEntity cls) {
-      if (closedWorld.isInstantiated(cls) &&
-          !elementEnvironment.isEnumClass(cls)) {
+      if (!elementEnvironment.isEnumClass(cls)) {
         elementEnvironment.forEachConstructor(cls, processMember);
       }
       elementEnvironment.forEachLocalClassMember(cls, processMember);
diff --git a/tests/compiler/dart2js/function_type_variable_test.dart b/tests/compiler/dart2js/function_type_variable_test.dart
new file mode 100644
index 0000000..0193b35
--- /dev/null
+++ b/tests/compiler/dart2js/function_type_variable_test.dart
@@ -0,0 +1,86 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:async_helper/async_helper.dart';
+import 'package:compiler/src/elements/types.dart';
+import 'package:compiler/src/kernel/element_map_impl.dart';
+import 'package:expect/expect.dart';
+import 'type_test_helper.dart';
+
+const List<FunctionTypeData> existentialTypeData = const <FunctionTypeData>[
+  // TODO(johnniwinther): Test generic bounds when #31531 is fixed.
+  const FunctionTypeData('void', 'F1', '<T>(T t)'),
+  const FunctionTypeData('void', 'F2', '<S>(S s)'),
+  const FunctionTypeData('void', 'F3', '<U, V>(U u, V v)'),
+  const FunctionTypeData('void', 'F4', '<U, V>(V v, U u)'),
+];
+
+main() {
+  DartTypeConverter.enableFunctionTypeVariables = true;
+  asyncTest(() async {
+    var env = await TypeEnvironment
+        .create(createTypedefs(existentialTypeData, additionalData: """
+    class C1 {}
+    class C2 {}
+  """), compileMode: CompileMode.dill);
+
+    testToString(FunctionType type, String expectedToString) {
+      Expect.equals(expectedToString, type.toString());
+    }
+
+    testInstantiate(FunctionType type, List<DartType> instantiation,
+        String expectedToString) {
+      DartType result = type.instantiate(instantiation);
+      Expect.equals(expectedToString, result.toString(),
+          "Unexpected instantiation of $type with $instantiation: $result");
+    }
+
+    testEquals(DartType a, DartType b, bool expectedEquals) {
+      Expect.equals(
+          expectedEquals, a == b, "Unexpected equality for $a and $b.");
+    }
+
+    InterfaceType C1 = instantiate(env.getClass('C1'), []);
+    InterfaceType C2 = instantiate(env.getClass('C2'), []);
+    FunctionType F1 = env.getFieldType('F1');
+    FunctionType F2 = env.getFieldType('F2');
+    FunctionType F3 = env.getFieldType('F3');
+    FunctionType F4 = env.getFieldType('F4');
+
+    testToString(F1, 'void Function<#A>(#A)');
+    testToString(F2, 'void Function<#A>(#A)');
+    testToString(F3, 'void Function<#A,#B>(#A,#B)');
+    testToString(F4, 'void Function<#A,#B>(#B,#A)');
+
+    testInstantiate(F1, [C1], 'void Function(C1)');
+    testInstantiate(F2, [C2], 'void Function(C2)');
+    testInstantiate(F3, [C1, C2], 'void Function(C1,C2)');
+    testInstantiate(F4, [C1, C2], 'void Function(C2,C1)');
+
+    testEquals(F1, F1, true);
+    testEquals(F1, F2, true);
+    testEquals(F1, F3, false);
+    testEquals(F1, F4, false);
+
+    testEquals(F2, F1, true);
+    testEquals(F2, F2, true);
+    testEquals(F2, F3, false);
+    testEquals(F2, F4, false);
+
+    testEquals(F3, F1, false);
+    testEquals(F3, F2, false);
+    testEquals(F3, F3, true);
+    testEquals(F3, F4, false);
+
+    testEquals(F4, F1, false);
+    testEquals(F4, F2, false);
+    testEquals(F4, F3, false);
+    testEquals(F4, F4, true);
+
+    testEquals(F1.typeVariables.first, F1.typeVariables.first, true);
+    testEquals(F1.typeVariables.first, F2.typeVariables.first, false);
+
+    // TODO(johnniwinther): Test subtyping.
+  });
+}
diff --git a/tests/compiler/dart2js/generic_method_test.dart b/tests/compiler/dart2js/generic_method_test.dart
new file mode 100644
index 0000000..69412bd
--- /dev/null
+++ b/tests/compiler/dart2js/generic_method_test.dart
@@ -0,0 +1,52 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:async_helper/async_helper.dart';
+import 'package:compiler/src/elements/entities.dart';
+import 'package:compiler/src/elements/types.dart';
+import 'package:compiler/src/kernel/element_map_impl.dart';
+import 'package:compiler/src/universe/call_structure.dart';
+import 'package:expect/expect.dart';
+import 'type_test_helper.dart';
+
+List<FunctionTypeData> signatures = const <FunctionTypeData>[
+  const FunctionTypeData("void", "0", "()"),
+  const FunctionTypeData("void", "1", "<T>(T t)"),
+  const FunctionTypeData("void", "2", "<T, S>(T t, S s)"),
+  const FunctionTypeData("void", "3", "<T, S>(T t, [S s])"),
+  const FunctionTypeData("void", "4", "<T, S>(T t, {S s})"),
+];
+
+main() {
+  DartTypeConverter.enableFunctionTypeVariables = true;
+
+  asyncTest(() async {
+    TypeEnvironment env = await TypeEnvironment.create("""
+      ${createTypedefs(signatures, prefix: 't')}
+      ${createMethods(signatures, prefix: 'm')}
+    """, compileMode: CompileMode.dill);
+
+    for (FunctionTypeData data in signatures) {
+      FunctionType functionType = env.getElementType('t${data.name}');
+      FunctionEntity method = env.getElement('m${data.name}');
+      FunctionType methodType = env.getElementType('m${data.name}');
+      ParameterStructure parameterStructure = method.parameterStructure;
+      Expect.equals(functionType, methodType, "Type mismatch on $data");
+      Expect.equals(
+          parameterStructure.typeParameters,
+          methodType.typeVariables.length,
+          "Type parameter mismatch on $data with $parameterStructure.");
+      CallStructure callStructure = parameterStructure.callStructure;
+      Expect.isTrue(callStructure.signatureApplies(parameterStructure));
+      CallStructure noTypeArguments = new CallStructure(
+          callStructure.argumentCount, callStructure.namedArguments, 0);
+      Expect.isTrue(noTypeArguments.signatureApplies(parameterStructure));
+      CallStructure tooManyTypeArguments = new CallStructure(
+          callStructure.argumentCount,
+          callStructure.namedArguments,
+          callStructure.typeArgumentCount + 1);
+      Expect.isFalse(tooManyTypeArguments.signatureApplies(parameterStructure));
+    }
+  });
+}
diff --git a/tests/compiler/dart2js/inlining/data/constructor.dart b/tests/compiler/dart2js/inlining/data/constructor.dart
index e4e9cad..d65c500 100644
--- a/tests/compiler/dart2js/inlining/data/constructor.dart
+++ b/tests/compiler/dart2js/inlining/data/constructor.dart
@@ -8,6 +8,9 @@
 /*element: main:[]*/
 main() {
   forceInlineConstructor();
+  forceInlineConstructorBody();
+  forceInlineGenericConstructor();
+  forceInlineGenericFactory();
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -15,7 +18,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 class Class1 {
-  /*element: Class1.:[forceInlineConstructor]*/
+  /*element: Class1.:[forceInlineConstructor:Class1]*/
   @ForceInline()
   Class1();
 }
@@ -25,3 +28,59 @@
 forceInlineConstructor() {
   new Class1();
 }
+
+////////////////////////////////////////////////////////////////////////////////
+// Force inline a constructor call with non-empty constructor body.
+////////////////////////////////////////////////////////////////////////////////
+
+class Class2 {
+  /*element: Class2.:[forceInlineConstructorBody+,forceInlineConstructorBody:Class2]*/
+  @ForceInline()
+  Class2() {
+    print('foo');
+  }
+}
+
+/*element: forceInlineConstructorBody:[]*/
+@NoInline()
+forceInlineConstructorBody() {
+  new Class2();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Force inline a generic constructor call.
+////////////////////////////////////////////////////////////////////////////////
+
+class Class3<T> {
+  /*element: Class3.:[forceInlineGenericConstructor:Class3<int>]*/
+  @ForceInline()
+  Class3();
+}
+
+/*element: forceInlineGenericConstructor:[]*/
+@NoInline()
+forceInlineGenericConstructor() {
+  new Class3<int>();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Force inline a generic factory call.
+////////////////////////////////////////////////////////////////////////////////
+
+class Class4a<T> implements Class4b<T> {
+  /*element: Class4a.:[forceInlineGenericFactory:Class4a<int>]*/
+  @ForceInline()
+  Class4a();
+}
+
+class Class4b<T> {
+  /*element: Class4b.:[forceInlineGenericFactory:Class4b<int>]*/
+  @ForceInline()
+  factory Class4b() => new Class4a<T>();
+}
+
+/*element: forceInlineGenericFactory:[]*/
+@NoInline()
+forceInlineGenericFactory() {
+  new Class4b<int>();
+}
diff --git a/tests/compiler/dart2js/inlining/data/dynamic.dart b/tests/compiler/dart2js/inlining/data/dynamic.dart
index 58b5800..99d6861 100644
--- a/tests/compiler/dart2js/inlining/data/dynamic.dart
+++ b/tests/compiler/dart2js/inlining/data/dynamic.dart
@@ -8,6 +8,7 @@
 /*element: main:[]*/
 main() {
   forceInlineDynamic();
+  forceInlineOptional();
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -29,3 +30,23 @@
 forceInlineDynamic() {
   new Class1().method();
 }
+
+////////////////////////////////////////////////////////////////////////////////
+// Force inline a instance method with optional argument.
+////////////////////////////////////////////////////////////////////////////////
+
+class Class2 {
+  /*element: Class2.:[]*/
+  @NoInline()
+  Class2();
+
+  /*element: Class2.method:[forceInlineOptional]*/
+  @ForceInline()
+  method([x]) {}
+}
+
+/*element: forceInlineOptional:[]*/
+@NoInline()
+forceInlineOptional() {
+  new Class2().method();
+}
diff --git a/tests/compiler/dart2js/inlining/data/force_inline.dart b/tests/compiler/dart2js/inlining/data/force_inline.dart
index 604359d..3932fa2 100644
--- a/tests/compiler/dart2js/inlining/data/force_inline.dart
+++ b/tests/compiler/dart2js/inlining/data/force_inline.dart
@@ -11,6 +11,7 @@
   forceInlineTwice1();
   forceInlineTwice2();
   forceInlineNested();
+  forceInlineOptional();
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -66,3 +67,17 @@
 forceInlineNested() {
   _forceInlineNested2();
 }
+
+////////////////////////////////////////////////////////////////////////////////
+// Force inline a top level method with optional argument.
+////////////////////////////////////////////////////////////////////////////////
+
+/*element: _forceInlineOptional:[forceInlineOptional]*/
+@ForceInline()
+_forceInlineOptional([x]) {}
+
+/*element: forceInlineOptional:[]*/
+@NoInline()
+forceInlineOptional() {
+  _forceInlineOptional();
+}
diff --git a/tests/compiler/dart2js/inlining/data/force_inline_loops.dart b/tests/compiler/dart2js/inlining/data/force_inline_loops.dart
index b45dadd..782b867 100644
--- a/tests/compiler/dart2js/inlining/data/force_inline_loops.dart
+++ b/tests/compiler/dart2js/inlining/data/force_inline_loops.dart
@@ -13,7 +13,7 @@
 // Force inline a top level method with loops.
 ////////////////////////////////////////////////////////////////////////////////
 
-/*element: _forLoop:[forceInlineLoops]*/
+/*element: _forLoop:loop,[forceInlineLoops]*/
 @ForceInline()
 _forLoop() {
   for (int i = 0; i < 10; i++) {
@@ -21,7 +21,7 @@
   }
 }
 
-/*element: _forInLoop:[forceInlineLoops]*/
+/*element: _forInLoop:loop,[forceInlineLoops]*/
 @ForceInline()
 _forInLoop() {
   for (var e in [0, 1, 2]) {
@@ -29,7 +29,7 @@
   }
 }
 
-/*element: _whileLoop:[forceInlineLoops]*/
+/*element: _whileLoop:loop,[forceInlineLoops]*/
 @ForceInline()
 _whileLoop() {
   int i = 0;
@@ -39,7 +39,7 @@
   }
 }
 
-/*element: _doLoop:[forceInlineLoops]*/
+/*element: _doLoop:loop,[forceInlineLoops]*/
 @ForceInline()
 _doLoop() {
   int i = 0;
diff --git a/tests/compiler/dart2js/inlining/data/heuristics.dart b/tests/compiler/dart2js/inlining/data/heuristics.dart
new file mode 100644
index 0000000..76e346d
--- /dev/null
+++ b/tests/compiler/dart2js/inlining/data/heuristics.dart
@@ -0,0 +1,147 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// ignore: IMPORT_INTERNAL_LIBRARY
+import 'dart:_js_helper';
+
+/*element: main:[]*/
+main() {
+  outsideLoopNoArgsCalledOnce();
+  outsideLoopNoArgsCalledTwice();
+  outsideLoopOneArgCalledOnce();
+  outsideLoopOneArgCalledTwice();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Inline a method with no parameters called once based regardless the number of
+// static no-arg calls in its body.
+////////////////////////////////////////////////////////////////////////////////
+
+/*element: _method1:[outsideLoopNoArgsCalledOnce]*/
+_method1() {}
+
+/*element: _outsideLoopNoArgsCalledOnce:[outsideLoopNoArgsCalledOnce]*/
+_outsideLoopNoArgsCalledOnce() {
+  _method1();
+  _method1();
+  _method1();
+  _method1();
+  // This would be one too many calls if this method were called twice.
+  _method1();
+}
+
+/*element: outsideLoopNoArgsCalledOnce:[]*/
+@NoInline()
+outsideLoopNoArgsCalledOnce() {
+  _outsideLoopNoArgsCalledOnce();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Inline a method with no parameters called twice based on the number of
+// static no-arg calls in its body.
+////////////////////////////////////////////////////////////////////////////////
+
+/*element: _method2:[_outsideLoopNoArgs2,outsideLoopNoArgsCalledTwice]*/
+_method2() {}
+
+/*element: _outsideLoopNoArgs1:[outsideLoopNoArgsCalledTwice]*/
+_outsideLoopNoArgs1() {
+  _method2();
+  _method2();
+  _method2();
+  _method2();
+}
+
+/*element: _outsideLoopNoArgs2:[]*/
+_outsideLoopNoArgs2() {
+  _method2();
+  _method2();
+  _method2();
+  _method2();
+  // One too many calls:
+  _method2();
+}
+
+/*element: outsideLoopNoArgsCalledTwice:[]*/
+@NoInline()
+outsideLoopNoArgsCalledTwice() {
+  _outsideLoopNoArgs1();
+  _outsideLoopNoArgs1();
+  _outsideLoopNoArgs2();
+  _outsideLoopNoArgs2();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Inline a method with one parameter called once based regardless the number of
+// static no-arg calls in its body.
+////////////////////////////////////////////////////////////////////////////////
+
+/*element: _method3:[outsideLoopOneArgCalledOnce]*/
+_method3() {}
+
+/*element: _outsideLoopOneArgCalledOnce:[outsideLoopOneArgCalledOnce]*/
+_outsideLoopOneArgCalledOnce(arg) {
+  _method3();
+  _method3();
+  _method3();
+  _method3();
+  _method3();
+  // This would be too many calls if this method were called twice.
+  _method3();
+  _method3();
+  _method3();
+  _method3();
+  _method3();
+  _method3();
+  _method3();
+  _method3();
+  _method3();
+  _method3();
+  _method3();
+}
+
+/*element: outsideLoopOneArgCalledOnce:[]*/
+@NoInline()
+outsideLoopOneArgCalledOnce() {
+  _outsideLoopOneArgCalledOnce(0);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Inline a method with one parameter called twice based on the number of
+// static no-arg calls in its body.
+////////////////////////////////////////////////////////////////////////////////
+
+/*element: _method4:[_outsideLoopOneArg2,outsideLoopOneArgCalledTwice]*/
+_method4() {}
+
+/*element: _outsideLoopOneArg1:[outsideLoopOneArgCalledTwice]*/
+_outsideLoopOneArg1(arg) {
+  _method4();
+  _method4();
+  _method4();
+  _method4();
+  // Extra call granted by one parameter.
+  _method4();
+}
+
+/*element: _outsideLoopOneArg2:[]*/
+_outsideLoopOneArg2(arg) {
+  _method4();
+  _method4();
+  _method4();
+  _method4();
+  // Extra call granted by one parameter.
+  _method4();
+  // One too many calls:
+  _method4();
+}
+
+/*element: outsideLoopOneArgCalledTwice:[]*/
+@NoInline()
+outsideLoopOneArgCalledTwice() {
+  _outsideLoopOneArg1(0);
+  _outsideLoopOneArg1(0);
+  _outsideLoopOneArg2(0);
+  _outsideLoopOneArg2(0);
+}
diff --git a/tests/compiler/dart2js/inlining/data/native.dart b/tests/compiler/dart2js/inlining/data/native.dart
new file mode 100644
index 0000000..1c907e1
--- /dev/null
+++ b/tests/compiler/dart2js/inlining/data/native.dart
@@ -0,0 +1,73 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:html';
+
+/// ignore: IMPORT_INTERNAL_LIBRARY
+import 'dart:_js_helper';
+
+/*element: main:[]*/
+main() {
+  document.createElement(CustomElement.tag);
+  newCustom();
+  newCustomCreated();
+  newNormal();
+  newNormalCreated();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Create a custom element. The factory is inlined but the generative
+// constructor isn't.
+////////////////////////////////////////////////////////////////////////////////
+
+/*element: newCustom:[]*/
+@NoInline()
+newCustom() {
+  new CustomElement();
+}
+
+/*element: newCustomCreated:[]*/
+@NoInline()
+newCustomCreated() {
+  new CustomElement.created();
+}
+
+class CustomElement extends HtmlElement {
+  static final tag = 'x-foo';
+
+  /*element: CustomElement.:[newCustom:CustomElement]*/
+  factory CustomElement() => new Element.tag(tag);
+
+  /*element: CustomElement.created:[]*/
+  CustomElement.created() : super.created() {
+    print('boo');
+  }
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Create a normal class, similar to a custom element. Both the factory and
+// the generative constructor are inlined.
+////////////////////////////////////////////////////////////////////////////////
+
+/*element: newNormal:[]*/
+@NoInline()
+newNormal() {
+  new NormalElement();
+}
+
+/*element: newNormalCreated:[]*/
+@NoInline()
+newNormalCreated() {
+  new NormalElement.created();
+}
+
+class NormalElement {
+  /*element: NormalElement.:[newNormal:NormalElement]*/
+  factory NormalElement() => null;
+
+  /*element: NormalElement.created:[newNormalCreated+,newNormalCreated:NormalElement]*/
+  NormalElement.created() {
+    print('foo');
+  }
+}
diff --git a/tests/compiler/dart2js/inlining/data/nested.dart b/tests/compiler/dart2js/inlining/data/nested.dart
new file mode 100644
index 0000000..6357ede
--- /dev/null
+++ b/tests/compiler/dart2js/inlining/data/nested.dart
@@ -0,0 +1,94 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// ignore: IMPORT_INTERNAL_LIBRARY
+import 'dart:_js_helper';
+
+/*element: main:[]*/
+main() {
+  nestedGenericInlining();
+  nestedGenericFactoryInlining();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Force inline a generic constructor calls.
+////////////////////////////////////////////////////////////////////////////////
+
+class Class1<T> {
+  /*element: Class1.:[nestedGenericInlining:Class1<int>]*/
+  @ForceInline()
+  Class1();
+
+  /*element: Class1.method:[nestedGenericInlining]*/
+  @ForceInline()
+  method() {
+    new Class2<List<T>>().method();
+  }
+}
+
+class Class2<T> {
+  // TODO(johnniwinther): Should the type have been Class<List<int>>?
+  // Similarly below.
+  /*element: Class2.:[nestedGenericInlining:Class2<List<Class1.T>>]*/
+  @ForceInline()
+  Class2();
+
+  /*element: Class2.method:[nestedGenericInlining]*/
+  @ForceInline()
+  method() {}
+}
+
+/*element: nestedGenericInlining:[]*/
+@NoInline()
+nestedGenericInlining() {
+  new Class1<int>().method();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Force inline of generic factories.
+////////////////////////////////////////////////////////////////////////////////
+
+class Class3a<T> implements Class3b<T> {
+  /*element: Class3a.:[nestedGenericFactoryInlining:Class3a<int>]*/
+  @ForceInline()
+  Class3a();
+
+  /*element: Class3a.method:[nestedGenericFactoryInlining]*/
+  @ForceInline()
+  method() {
+    new Class4b<List<T>>().method();
+  }
+}
+
+abstract class Class3b<T> {
+  /*element: Class3b.:[nestedGenericFactoryInlining:Class3b<int>]*/
+  @ForceInline()
+  factory Class3b() => new Class3a<T>();
+
+  method();
+}
+
+class Class4a<T> implements Class4b<T> {
+  /*element: Class4a.:[nestedGenericFactoryInlining:Class4a<Class4b.T>]*/
+  @ForceInline()
+  Class4a();
+
+  /*element: Class4a.method:[nestedGenericFactoryInlining]*/
+  @ForceInline()
+  method() {}
+}
+
+abstract class Class4b<T> {
+  /*element: Class4b.:[nestedGenericFactoryInlining:Class4b<List<Class3a.T>>]*/
+  @ForceInline()
+  factory Class4b() => new Class4a<T>();
+
+  method();
+}
+
+/*element: nestedGenericFactoryInlining:[]*/
+@NoInline()
+nestedGenericFactoryInlining() {
+  new Class3b<int>().method();
+}
diff --git a/tests/compiler/dart2js/inlining/data/too_difficult.dart b/tests/compiler/dart2js/inlining/data/too_difficult.dart
index 86d758e..5033474 100644
--- a/tests/compiler/dart2js/inlining/data/too_difficult.dart
+++ b/tests/compiler/dart2js/inlining/data/too_difficult.dart
@@ -2,13 +2,11 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+/// ignore: IMPORT_INTERNAL_LIBRARY
+import 'dart:_js_helper';
+
 /*element: main:[]*/
 main() {
-  multipleReturns(true);
-  codeAfterReturn(true);
-  multipleThrows(true);
-  codeAfterThrow(true);
-  throwAndReturn(true);
   asyncMethod();
   asyncStarMethod();
   syncStarMethod();
@@ -21,96 +19,123 @@
   forInLoop();
   whileLoop();
   doLoop();
+
+  multipleReturns();
+  codeAfterReturn();
+  multipleThrows();
+  returnAndThrow();
 }
 
-/*element: multipleReturns:[]*/
-multipleReturns(c) {
+/*element: _multipleReturns:code after return*/
+_multipleReturns(c) {
   if (c)
     return;
   else
     return;
 }
 
-/*element: codeAfterReturn:[]*/
-codeAfterReturn(c) {
+/*element: multipleReturns:[]*/
+@NoInline()
+multipleReturns() {
+  _multipleReturns(true);
+  _multipleReturns(false);
+}
+
+/*element: _codeAfterReturn:code after return*/
+_codeAfterReturn(c) {
   if (c) return;
   print(c);
 }
 
+/*element: codeAfterReturn:[]*/
+@NoInline()
+codeAfterReturn() {
+  _codeAfterReturn(true);
+  _codeAfterReturn(false);
+}
+
+/*element: _multipleThrows:[]*/
+_multipleThrows(c) {
+  if (c)
+    throw '';
+  else
+    throw '';
+}
+
 /*element: multipleThrows:[]*/
-multipleThrows(c) {
-  if (c)
-    throw '';
-  else
-    throw '';
+@NoInline()
+multipleThrows() {
+  _multipleThrows(true);
+  _multipleThrows(false);
 }
 
-/*element: codeAfterThrow:[]*/
-codeAfterThrow(c) {
-  if (c) throw '';
-  print(c);
-}
-
-/*element: throwAndReturn:[]*/
-throwAndReturn(c) {
+/*element: _returnAndThrow:code after return*/
+_returnAndThrow(c) {
   if (c)
-    throw '';
-  else
     return;
+  else
+    throw '';
 }
 
-/*element: asyncMethod:[]*/
+/*element: returnAndThrow:[]*/
+@NoInline()
+returnAndThrow() {
+  _returnAndThrow(true);
+  _returnAndThrow(false);
+}
+
+/*element: asyncMethod:async/await*/
 asyncMethod() async {}
 
-/*element: asyncStarMethod:[]*/
+/*element: asyncStarMethod:async/await*/
 asyncStarMethod() async* {}
 
-/*element: syncStarMethod:[]*/
+/*element: syncStarMethod:async/await*/
 syncStarMethod() sync* {}
 
-/*element: localFunction:[]*/
+/*element: localFunction:closure*/
 localFunction() {
   // ignore: UNUSED_ELEMENT
   /*[]*/ local() {}
 }
 
-/*element: anonymousFunction:[]*/
+/*element: anonymousFunction:closure*/
 anonymousFunction() {
   /*[]*/ () {};
 }
 
-/*element: tryCatch:[]*/
+/*element: tryCatch:try*/
 tryCatch() {
   try {} catch (e) {}
 }
 
-/*element: tryFinally:[]*/
+/*element: tryFinally:try*/
 tryFinally() {
-  try {} catch (e) {}
+  try {} finally {}
 }
 
-/*element: tryWithRethrow:[]*/
+/*element: tryWithRethrow:try*/
 tryWithRethrow() {
   try {} catch (e) {
     rethrow;
   }
 }
 
-/*element: forLoop:[]*/
+/*element: forLoop:loop*/
 forLoop() {
   for (int i = 0; i < 10; i++) {
     print(i);
   }
 }
 
-/*element: forInLoop:[]*/
+/*element: forInLoop:loop*/
 forInLoop() {
   for (var e in [0, 1, 2]) {
     print(e);
   }
 }
 
-/*element: whileLoop:[]*/
+/*element: whileLoop:loop*/
 whileLoop() {
   int i = 0;
   while (i < 10) {
@@ -119,7 +144,7 @@
   }
 }
 
-/*element: doLoop:[]*/
+/*element: doLoop:loop*/
 doLoop() {
   int i = 0;
   do {
diff --git a/tests/compiler/dart2js/inlining/inlining_test.dart b/tests/compiler/dart2js/inlining/inlining_test.dart
index 77511ea..c602214 100644
--- a/tests/compiler/dart2js/inlining/inlining_test.dart
+++ b/tests/compiler/dart2js/inlining/inlining_test.dart
@@ -14,6 +14,8 @@
 import 'package:compiler/src/js_backend/backend.dart';
 import 'package:compiler/src/kernel/element_map.dart';
 import 'package:compiler/src/kernel/kernel_backend_strategy.dart';
+import 'package:compiler/src/ssa/builder.dart' as ast;
+import 'package:compiler/src/ssa/builder_kernel.dart' as kernel;
 import 'package:compiler/src/universe/world_impact.dart';
 import 'package:compiler/src/universe/use.dart';
 import 'package:kernel/ast.dart' as ir;
@@ -26,7 +28,7 @@
     Directory dataDir = new Directory.fromUri(Platform.script.resolve('data'));
     await checkTests(
         dataDir, computeMemberAstInlinings, computeMemberIrInlinings,
-        args: args);
+        args: args, skipForKernel: []);
   });
 }
 
@@ -48,17 +50,51 @@
 abstract class ComputeValueMixin<T> {
   JavaScriptBackend get backend;
 
+  ConstructorBodyEntity getConstructorBody(ConstructorEntity constructor);
+
+  String getTooDifficultReason(MemberEntity member);
+
   String getMemberValue(MemberEntity member) {
-    StaticUse use = new StaticUse.inlining(member);
-    List<String> inlinedIn = <String>[];
-    backend.codegenImpactsForTesting
-        .forEach((MemberEntity member, WorldImpact impact) {
-      if (impact.staticUses.contains(use)) {
-        inlinedIn.add(member.name);
+    if (member is FunctionEntity) {
+      ConstructorBodyEntity constructorBody;
+      if (member is ConstructorEntity && member.isGenerativeConstructor) {
+        constructorBody = getConstructorBody(member);
       }
-    });
-    inlinedIn.sort();
-    return '[${inlinedIn.join(',')}]';
+      List<String> inlinedIn = <String>[];
+      backend.codegenImpactsForTesting
+          .forEach((MemberEntity user, WorldImpact impact) {
+        for (StaticUse use in impact.staticUses) {
+          if (use.kind == StaticUseKind.INLINING) {
+            if (use.element == member) {
+              if (use.type != null) {
+                inlinedIn.add('${user.name}:${use.type}');
+              } else {
+                inlinedIn.add(user.name);
+              }
+            } else if (use.element == constructorBody) {
+              if (use.type != null) {
+                inlinedIn.add('${user.name}+:${use.type}');
+              } else {
+                inlinedIn.add('${user.name}+');
+              }
+            }
+          }
+        }
+      });
+      StringBuffer sb = new StringBuffer();
+      String tooDifficultReason = getTooDifficultReason(member);
+      inlinedIn.sort();
+      if (tooDifficultReason != null) {
+        sb.write(tooDifficultReason);
+        if (inlinedIn.isNotEmpty) {
+          sb.write(',[${inlinedIn.join(',')}]');
+        }
+      } else {
+        sb.write('[${inlinedIn.join(',')}]');
+      }
+      return sb.toString();
+    }
+    return null;
   }
 }
 
@@ -72,6 +108,21 @@
       : super(reporter, actualMap, resolvedAst);
 
   @override
+  ConstructorBodyEntity getConstructorBody(
+      covariant ConstructorElement constructor) {
+    return constructor.enclosingClass.lookupConstructorBody(constructor.name);
+  }
+
+  @override
+  String getTooDifficultReason(MemberEntity member) {
+    if (member is MethodElement) {
+      return ast.InlineWeeder.cannotBeInlinedReason(member.resolvedAst, null,
+          enableUserAssertions: true);
+    }
+    return null;
+  }
+
+  @override
   String computeElementValue(Id id, AstElement element) {
     if (element.isParameter) {
       return null;
@@ -128,6 +179,18 @@
       this._closureDataLookup)
       : super(reporter, actualMap);
 
+  ConstructorBodyEntity getConstructorBody(ConstructorEntity constructor) {
+    return _elementMap
+        .getConstructorBody(_elementMap.getMemberDefinition(constructor).node);
+  }
+
+  @override
+  String getTooDifficultReason(MemberEntity member) {
+    if (member is! FunctionEntity) return null;
+    return kernel.InlineWeeder.cannotBeInlinedReason(_elementMap, member, null,
+        enableUserAssertions: true);
+  }
+
   @override
   String computeMemberValue(Id id, ir.Member node) {
     return getMemberValue(_elementMap.getMember(node));
diff --git a/tests/compiler/dart2js/subtype_test.dart b/tests/compiler/dart2js/subtype_test.dart
index 127c0e7..ddacca5 100644
--- a/tests/compiler/dart2js/subtype_test.dart
+++ b/tests/compiler/dart2js/subtype_test.dart
@@ -4,370 +4,363 @@
 
 library subtype_test;
 
-import 'package:expect/expect.dart';
-import "package:async_helper/async_helper.dart";
-import 'type_test_helper.dart';
+import 'dart:async';
+import 'package:async_helper/async_helper.dart';
+import 'package:compiler/src/elements/entities.dart' show ClassEntity;
+import 'package:compiler/src/elements/types.dart';
 import 'package:compiler/src/elements/resolution_types.dart';
-import "package:compiler/src/elements/elements.dart" show ClassElement;
+import 'package:expect/expect.dart';
+import 'type_test_helper.dart';
 
 void main() {
-  testInterfaceSubtype();
-  testCallableSubtype();
-  testFunctionSubtyping();
-  testTypedefSubtyping();
-  testFunctionSubtypingOptional();
-  testTypedefSubtypingOptional();
-  testFunctionSubtypingNamed();
-  testTypedefSubtypingNamed();
-  testTypeVariableSubtype();
+  asyncTest(() async {
+    await runTests(CompileMode.memory);
+    await runTests(CompileMode.dill);
+  });
 }
 
-void testTypes(TypeEnvironment env, ResolutionDartType subtype,
-    ResolutionDartType supertype, bool expectSubtype, bool expectMoreSpecific) {
+Future runTests(CompileMode compileMode) async {
+  await testInterfaceSubtype(compileMode);
+  await testCallableSubtype(compileMode);
+  await testFunctionSubtyping(compileMode);
+  await testTypedefSubtyping(compileMode);
+  await testFunctionSubtypingOptional(compileMode);
+  await testTypedefSubtypingOptional(compileMode);
+  await testFunctionSubtypingNamed(compileMode);
+  await testTypedefSubtypingNamed(compileMode);
+  await testTypeVariableSubtype(compileMode);
+}
+
+void testTypes(TypeEnvironment env, DartType subtype, DartType supertype,
+    bool expectSubtype, bool expectMoreSpecific) {
   if (expectMoreSpecific == null) expectMoreSpecific = expectSubtype;
   Expect.equals(expectSubtype, env.isSubtype(subtype, supertype),
       '$subtype <: $supertype');
-  Expect.equals(expectMoreSpecific, env.isMoreSpecific(subtype, supertype),
-      '$subtype << $supertype');
+  if (env.types is Types) {
+    Expect.equals(expectMoreSpecific, env.isMoreSpecific(subtype, supertype),
+        '$subtype << $supertype');
+  }
 }
 
 void testElementTypes(TypeEnvironment env, String subname, String supername,
     bool expectSubtype, bool expectMoreSpecific) {
-  ResolutionDartType subtype = env.getElementType(subname);
-  ResolutionDartType supertype = env.getElementType(supername);
+  DartType subtype = env.getElementType(subname);
+  DartType supertype = env.getElementType(supername);
   testTypes(env, subtype, supertype, expectSubtype, expectMoreSpecific);
 }
 
-void testInterfaceSubtype() {
-  asyncTest(() => TypeEnvironment.create(r"""
+Future testInterfaceSubtype(CompileMode compileMode) async {
+  await TypeEnvironment.create(r"""
       class A<T> {}
       class B<T1, T2> extends A<T1> {}
       // TODO(johnniwinther): Inheritance with different type arguments is
       // currently not supported by the implementation.
       class C<T1, T2> extends B<T2, T1> /*implements A<A<T1>>*/ {}
-      """).then((env) {
-        void expect(
-            bool expectSubtype, ResolutionDartType T, ResolutionDartType S,
-            {bool expectMoreSpecific}) {
-          testTypes(env, T, S, expectSubtype, expectMoreSpecific);
-        }
+      """, compileMode: compileMode).then((env) {
+    void expect(bool expectSubtype, DartType T, DartType S,
+        {bool expectMoreSpecific}) {
+      testTypes(env, T, S, expectSubtype, expectMoreSpecific);
+    }
 
-        ClassElement A = env.getElement('A');
-        ClassElement B = env.getElement('B');
-        ClassElement C = env.getElement('C');
-        ResolutionDartType Object_ = env['Object'];
-        ResolutionDartType num_ = env['num'];
-        ResolutionDartType int_ = env['int'];
-        ResolutionDartType String_ = env['String'];
-        ResolutionDartType dynamic_ = env['dynamic'];
-        ResolutionDartType void_ = env['void'];
-        ResolutionDartType Null_ = env['Null'];
+    ClassEntity A = env.getClass('A');
+    ClassEntity B = env.getClass('B');
+    ClassEntity C = env.getClass('C');
+    DartType Object_ = env['Object'];
+    DartType num_ = env['num'];
+    DartType int_ = env['int'];
+    DartType String_ = env['String'];
+    DartType dynamic_ = env['dynamic'];
+    DartType void_ = env['void'];
+    DartType Null_ = env['Null'];
 
-        expect(true, void_, void_);
-        expect(true, void_, dynamic_);
-        // Unsure about the next one, see dartbug.com/14933.
-        expect(true, dynamic_, void_, expectMoreSpecific: false);
-        expect(false, void_, Object_);
-        expect(false, Object_, void_);
-        expect(true, Null_, void_);
+    expect(true, void_, void_);
+    expect(true, void_, dynamic_);
+    // Unsure about the next one, see dartbug.com/14933.
+    expect(true, dynamic_, void_, expectMoreSpecific: false);
+    expect(false, void_, Object_);
+    expect(false, Object_, void_);
+    expect(true, Null_, void_);
 
-        expect(true, Object_, Object_);
-        expect(true, num_, Object_);
-        expect(true, int_, Object_);
-        expect(true, String_, Object_);
-        expect(true, dynamic_, Object_, expectMoreSpecific: false);
-        expect(true, Null_, Object_);
+    expect(true, Object_, Object_);
+    expect(true, num_, Object_);
+    expect(true, int_, Object_);
+    expect(true, String_, Object_);
+    expect(true, dynamic_, Object_, expectMoreSpecific: false);
+    expect(true, Null_, Object_);
 
-        expect(false, Object_, num_);
-        expect(true, num_, num_);
-        expect(true, int_, num_);
-        expect(false, String_, num_);
-        expect(true, dynamic_, num_, expectMoreSpecific: false);
-        expect(true, Null_, num_);
+    expect(false, Object_, num_);
+    expect(true, num_, num_);
+    expect(true, int_, num_);
+    expect(false, String_, num_);
+    expect(true, dynamic_, num_, expectMoreSpecific: false);
+    expect(true, Null_, num_);
 
-        expect(false, Object_, int_);
-        expect(false, num_, int_);
-        expect(true, int_, int_);
-        expect(false, String_, int_);
-        expect(true, dynamic_, int_, expectMoreSpecific: false);
-        expect(true, Null_, int_);
+    expect(false, Object_, int_);
+    expect(false, num_, int_);
+    expect(true, int_, int_);
+    expect(false, String_, int_);
+    expect(true, dynamic_, int_, expectMoreSpecific: false);
+    expect(true, Null_, int_);
 
-        expect(false, Object_, String_);
-        expect(false, num_, String_);
-        expect(false, int_, String_);
-        expect(true, String_, String_);
-        expect(true, dynamic_, String_, expectMoreSpecific: false);
-        expect(true, Null_, String_);
+    expect(false, Object_, String_);
+    expect(false, num_, String_);
+    expect(false, int_, String_);
+    expect(true, String_, String_);
+    expect(true, dynamic_, String_, expectMoreSpecific: false);
+    expect(true, Null_, String_);
 
-        expect(true, Object_, dynamic_);
-        expect(true, num_, dynamic_);
-        expect(true, int_, dynamic_);
-        expect(true, String_, dynamic_);
-        expect(true, dynamic_, dynamic_);
-        expect(true, Null_, dynamic_);
+    expect(true, Object_, dynamic_);
+    expect(true, num_, dynamic_);
+    expect(true, int_, dynamic_);
+    expect(true, String_, dynamic_);
+    expect(true, dynamic_, dynamic_);
+    expect(true, Null_, dynamic_);
 
-        expect(false, Object_, Null_);
-        expect(false, num_, Null_);
-        expect(false, int_, Null_);
-        expect(false, String_, Null_);
-        expect(true, dynamic_, Null_, expectMoreSpecific: false);
-        expect(true, Null_, Null_);
+    expect(false, Object_, Null_);
+    expect(false, num_, Null_);
+    expect(false, int_, Null_);
+    expect(false, String_, Null_);
+    expect(true, dynamic_, Null_, expectMoreSpecific: false);
+    expect(true, Null_, Null_);
 
-        ResolutionDartType A_Object = instantiate(A, [Object_]);
-        ResolutionDartType A_num = instantiate(A, [num_]);
-        ResolutionDartType A_int = instantiate(A, [int_]);
-        ResolutionDartType A_String = instantiate(A, [String_]);
-        ResolutionDartType A_dynamic = instantiate(A, [dynamic_]);
-        ResolutionDartType A_Null = instantiate(A, [Null_]);
+    DartType A_Object = instantiate(A, [Object_]);
+    DartType A_num = instantiate(A, [num_]);
+    DartType A_int = instantiate(A, [int_]);
+    DartType A_String = instantiate(A, [String_]);
+    DartType A_dynamic = instantiate(A, [dynamic_]);
+    DartType A_Null = instantiate(A, [Null_]);
 
-        expect(true, A_Object, Object_);
-        expect(false, A_Object, num_);
-        expect(false, A_Object, int_);
-        expect(false, A_Object, String_);
-        expect(true, A_Object, dynamic_);
-        expect(false, A_Object, Null_);
+    expect(true, A_Object, Object_);
+    expect(false, A_Object, num_);
+    expect(false, A_Object, int_);
+    expect(false, A_Object, String_);
+    expect(true, A_Object, dynamic_);
+    expect(false, A_Object, Null_);
 
-        expect(true, A_Object, A_Object);
-        expect(true, A_num, A_Object);
-        expect(true, A_int, A_Object);
-        expect(true, A_String, A_Object);
-        expect(true, A_dynamic, A_Object, expectMoreSpecific: false);
-        expect(true, A_Null, A_Object);
+    expect(true, A_Object, A_Object);
+    expect(true, A_num, A_Object);
+    expect(true, A_int, A_Object);
+    expect(true, A_String, A_Object);
+    expect(true, A_dynamic, A_Object, expectMoreSpecific: false);
+    expect(true, A_Null, A_Object);
 
-        expect(false, A_Object, A_num);
-        expect(true, A_num, A_num);
-        expect(true, A_int, A_num);
-        expect(false, A_String, A_num);
-        expect(true, A_dynamic, A_num, expectMoreSpecific: false);
-        expect(true, A_Null, A_num);
+    expect(false, A_Object, A_num);
+    expect(true, A_num, A_num);
+    expect(true, A_int, A_num);
+    expect(false, A_String, A_num);
+    expect(true, A_dynamic, A_num, expectMoreSpecific: false);
+    expect(true, A_Null, A_num);
 
-        expect(false, A_Object, A_int);
-        expect(false, A_num, A_int);
-        expect(true, A_int, A_int);
-        expect(false, A_String, A_int);
-        expect(true, A_dynamic, A_int, expectMoreSpecific: false);
-        expect(true, A_Null, A_int);
+    expect(false, A_Object, A_int);
+    expect(false, A_num, A_int);
+    expect(true, A_int, A_int);
+    expect(false, A_String, A_int);
+    expect(true, A_dynamic, A_int, expectMoreSpecific: false);
+    expect(true, A_Null, A_int);
 
-        expect(false, A_Object, A_String);
-        expect(false, A_num, A_String);
-        expect(false, A_int, A_String);
-        expect(true, A_String, A_String);
-        expect(true, A_dynamic, A_String, expectMoreSpecific: false);
-        expect(true, A_Null, A_String);
+    expect(false, A_Object, A_String);
+    expect(false, A_num, A_String);
+    expect(false, A_int, A_String);
+    expect(true, A_String, A_String);
+    expect(true, A_dynamic, A_String, expectMoreSpecific: false);
+    expect(true, A_Null, A_String);
 
-        expect(true, A_Object, A_dynamic);
-        expect(true, A_num, A_dynamic);
-        expect(true, A_int, A_dynamic);
-        expect(true, A_String, A_dynamic);
-        expect(true, A_dynamic, A_dynamic);
-        expect(true, A_Null, A_dynamic);
+    expect(true, A_Object, A_dynamic);
+    expect(true, A_num, A_dynamic);
+    expect(true, A_int, A_dynamic);
+    expect(true, A_String, A_dynamic);
+    expect(true, A_dynamic, A_dynamic);
+    expect(true, A_Null, A_dynamic);
 
-        expect(false, A_Object, A_Null);
-        expect(false, A_num, A_Null);
-        expect(false, A_int, A_Null);
-        expect(false, A_String, A_Null);
-        expect(true, A_dynamic, A_Null, expectMoreSpecific: false);
-        expect(true, A_Null, A_Null);
+    expect(false, A_Object, A_Null);
+    expect(false, A_num, A_Null);
+    expect(false, A_int, A_Null);
+    expect(false, A_String, A_Null);
+    expect(true, A_dynamic, A_Null, expectMoreSpecific: false);
+    expect(true, A_Null, A_Null);
 
-        ResolutionDartType B_Object_Object = instantiate(B, [Object_, Object_]);
-        ResolutionDartType B_num_num = instantiate(B, [num_, num_]);
-        ResolutionDartType B_int_num = instantiate(B, [int_, num_]);
-        ResolutionDartType B_dynamic_dynamic =
-            instantiate(B, [dynamic_, dynamic_]);
-        ResolutionDartType B_String_dynamic =
-            instantiate(B, [String_, dynamic_]);
+    DartType B_Object_Object = instantiate(B, [Object_, Object_]);
+    DartType B_num_num = instantiate(B, [num_, num_]);
+    DartType B_int_num = instantiate(B, [int_, num_]);
+    DartType B_dynamic_dynamic = instantiate(B, [dynamic_, dynamic_]);
+    DartType B_String_dynamic = instantiate(B, [String_, dynamic_]);
 
-        expect(true, B_Object_Object, Object_);
-        expect(true, B_Object_Object, A_Object);
-        expect(false, B_Object_Object, A_num);
-        expect(false, B_Object_Object, A_int);
-        expect(false, B_Object_Object, A_String);
-        expect(true, B_Object_Object, A_dynamic);
+    expect(true, B_Object_Object, Object_);
+    expect(true, B_Object_Object, A_Object);
+    expect(false, B_Object_Object, A_num);
+    expect(false, B_Object_Object, A_int);
+    expect(false, B_Object_Object, A_String);
+    expect(true, B_Object_Object, A_dynamic);
 
-        expect(true, B_num_num, Object_);
-        expect(true, B_num_num, A_Object);
-        expect(true, B_num_num, A_num);
-        expect(false, B_num_num, A_int);
-        expect(false, B_num_num, A_String);
-        expect(true, B_num_num, A_dynamic);
+    expect(true, B_num_num, Object_);
+    expect(true, B_num_num, A_Object);
+    expect(true, B_num_num, A_num);
+    expect(false, B_num_num, A_int);
+    expect(false, B_num_num, A_String);
+    expect(true, B_num_num, A_dynamic);
 
-        expect(true, B_int_num, Object_);
-        expect(true, B_int_num, A_Object);
-        expect(true, B_int_num, A_num);
-        expect(true, B_int_num, A_int);
-        expect(false, B_int_num, A_String);
-        expect(true, B_int_num, A_dynamic);
+    expect(true, B_int_num, Object_);
+    expect(true, B_int_num, A_Object);
+    expect(true, B_int_num, A_num);
+    expect(true, B_int_num, A_int);
+    expect(false, B_int_num, A_String);
+    expect(true, B_int_num, A_dynamic);
 
-        expect(true, B_dynamic_dynamic, Object_);
-        expect(true, B_dynamic_dynamic, A_Object, expectMoreSpecific: false);
-        expect(true, B_dynamic_dynamic, A_num, expectMoreSpecific: false);
-        expect(true, B_dynamic_dynamic, A_int, expectMoreSpecific: false);
-        expect(true, B_dynamic_dynamic, A_String, expectMoreSpecific: false);
-        expect(true, B_dynamic_dynamic, A_dynamic);
+    expect(true, B_dynamic_dynamic, Object_);
+    expect(true, B_dynamic_dynamic, A_Object, expectMoreSpecific: false);
+    expect(true, B_dynamic_dynamic, A_num, expectMoreSpecific: false);
+    expect(true, B_dynamic_dynamic, A_int, expectMoreSpecific: false);
+    expect(true, B_dynamic_dynamic, A_String, expectMoreSpecific: false);
+    expect(true, B_dynamic_dynamic, A_dynamic);
 
-        expect(true, B_String_dynamic, Object_);
-        expect(true, B_String_dynamic, A_Object);
-        expect(false, B_String_dynamic, A_num);
-        expect(false, B_String_dynamic, A_int);
-        expect(true, B_String_dynamic, A_String);
-        expect(true, B_String_dynamic, A_dynamic);
+    expect(true, B_String_dynamic, Object_);
+    expect(true, B_String_dynamic, A_Object);
+    expect(false, B_String_dynamic, A_num);
+    expect(false, B_String_dynamic, A_int);
+    expect(true, B_String_dynamic, A_String);
+    expect(true, B_String_dynamic, A_dynamic);
 
-        expect(true, B_Object_Object, B_Object_Object);
-        expect(true, B_num_num, B_Object_Object);
-        expect(true, B_int_num, B_Object_Object);
-        expect(true, B_dynamic_dynamic, B_Object_Object,
-            expectMoreSpecific: false);
-        expect(true, B_String_dynamic, B_Object_Object,
-            expectMoreSpecific: false);
+    expect(true, B_Object_Object, B_Object_Object);
+    expect(true, B_num_num, B_Object_Object);
+    expect(true, B_int_num, B_Object_Object);
+    expect(true, B_dynamic_dynamic, B_Object_Object, expectMoreSpecific: false);
+    expect(true, B_String_dynamic, B_Object_Object, expectMoreSpecific: false);
 
-        expect(false, B_Object_Object, B_num_num);
-        expect(true, B_num_num, B_num_num);
-        expect(true, B_int_num, B_num_num);
-        expect(true, B_dynamic_dynamic, B_num_num, expectMoreSpecific: false);
-        expect(false, B_String_dynamic, B_num_num);
+    expect(false, B_Object_Object, B_num_num);
+    expect(true, B_num_num, B_num_num);
+    expect(true, B_int_num, B_num_num);
+    expect(true, B_dynamic_dynamic, B_num_num, expectMoreSpecific: false);
+    expect(false, B_String_dynamic, B_num_num);
 
-        expect(false, B_Object_Object, B_int_num);
-        expect(false, B_num_num, B_int_num);
-        expect(true, B_int_num, B_int_num);
-        expect(true, B_dynamic_dynamic, B_int_num, expectMoreSpecific: false);
-        expect(false, B_String_dynamic, B_int_num);
+    expect(false, B_Object_Object, B_int_num);
+    expect(false, B_num_num, B_int_num);
+    expect(true, B_int_num, B_int_num);
+    expect(true, B_dynamic_dynamic, B_int_num, expectMoreSpecific: false);
+    expect(false, B_String_dynamic, B_int_num);
 
-        expect(true, B_Object_Object, B_dynamic_dynamic);
-        expect(true, B_num_num, B_dynamic_dynamic);
-        expect(true, B_int_num, B_dynamic_dynamic);
-        expect(true, B_dynamic_dynamic, B_dynamic_dynamic);
-        expect(true, B_String_dynamic, B_dynamic_dynamic);
+    expect(true, B_Object_Object, B_dynamic_dynamic);
+    expect(true, B_num_num, B_dynamic_dynamic);
+    expect(true, B_int_num, B_dynamic_dynamic);
+    expect(true, B_dynamic_dynamic, B_dynamic_dynamic);
+    expect(true, B_String_dynamic, B_dynamic_dynamic);
 
-        expect(false, B_Object_Object, B_String_dynamic);
-        expect(false, B_num_num, B_String_dynamic);
-        expect(false, B_int_num, B_String_dynamic);
-        expect(true, B_dynamic_dynamic, B_String_dynamic,
-            expectMoreSpecific: false);
-        expect(true, B_String_dynamic, B_String_dynamic);
+    expect(false, B_Object_Object, B_String_dynamic);
+    expect(false, B_num_num, B_String_dynamic);
+    expect(false, B_int_num, B_String_dynamic);
+    expect(true, B_dynamic_dynamic, B_String_dynamic,
+        expectMoreSpecific: false);
+    expect(true, B_String_dynamic, B_String_dynamic);
 
-        ResolutionDartType C_Object_Object = instantiate(C, [Object_, Object_]);
-        ResolutionDartType C_num_num = instantiate(C, [num_, num_]);
-        ResolutionDartType C_int_String = instantiate(C, [int_, String_]);
-        ResolutionDartType C_dynamic_dynamic =
-            instantiate(C, [dynamic_, dynamic_]);
+    DartType C_Object_Object = instantiate(C, [Object_, Object_]);
+    DartType C_num_num = instantiate(C, [num_, num_]);
+    DartType C_int_String = instantiate(C, [int_, String_]);
+    DartType C_dynamic_dynamic = instantiate(C, [dynamic_, dynamic_]);
 
-        expect(true, C_Object_Object, B_Object_Object);
-        expect(false, C_Object_Object, B_num_num);
-        expect(false, C_Object_Object, B_int_num);
-        expect(true, C_Object_Object, B_dynamic_dynamic);
-        expect(false, C_Object_Object, B_String_dynamic);
+    expect(true, C_Object_Object, B_Object_Object);
+    expect(false, C_Object_Object, B_num_num);
+    expect(false, C_Object_Object, B_int_num);
+    expect(true, C_Object_Object, B_dynamic_dynamic);
+    expect(false, C_Object_Object, B_String_dynamic);
 
-        expect(true, C_num_num, B_Object_Object);
-        expect(true, C_num_num, B_num_num);
-        expect(false, C_num_num, B_int_num);
-        expect(true, C_num_num, B_dynamic_dynamic);
-        expect(false, C_num_num, B_String_dynamic);
+    expect(true, C_num_num, B_Object_Object);
+    expect(true, C_num_num, B_num_num);
+    expect(false, C_num_num, B_int_num);
+    expect(true, C_num_num, B_dynamic_dynamic);
+    expect(false, C_num_num, B_String_dynamic);
 
-        expect(true, C_int_String, B_Object_Object);
-        expect(false, C_int_String, B_num_num);
-        expect(false, C_int_String, B_int_num);
-        expect(true, C_int_String, B_dynamic_dynamic);
-        expect(true, C_int_String, B_String_dynamic);
+    expect(true, C_int_String, B_Object_Object);
+    expect(false, C_int_String, B_num_num);
+    expect(false, C_int_String, B_int_num);
+    expect(true, C_int_String, B_dynamic_dynamic);
+    expect(true, C_int_String, B_String_dynamic);
 
-        expect(true, C_dynamic_dynamic, B_Object_Object,
-            expectMoreSpecific: false);
-        expect(true, C_dynamic_dynamic, B_num_num, expectMoreSpecific: false);
-        expect(true, C_dynamic_dynamic, B_int_num, expectMoreSpecific: false);
-        expect(true, C_dynamic_dynamic, B_dynamic_dynamic);
-        expect(true, C_dynamic_dynamic, B_String_dynamic,
-            expectMoreSpecific: false);
+    expect(true, C_dynamic_dynamic, B_Object_Object, expectMoreSpecific: false);
+    expect(true, C_dynamic_dynamic, B_num_num, expectMoreSpecific: false);
+    expect(true, C_dynamic_dynamic, B_int_num, expectMoreSpecific: false);
+    expect(true, C_dynamic_dynamic, B_dynamic_dynamic);
+    expect(true, C_dynamic_dynamic, B_String_dynamic,
+        expectMoreSpecific: false);
 
-        expect(false, C_int_String, A_int);
-        expect(true, C_int_String, A_String);
-        // TODO(johnniwinther): Inheritance with different type arguments is
-        // currently not supported by the implementation.
-        //expect(true, C_int_String, instantiate(A, [A_int]));
-        expect(false, C_int_String, instantiate(A, [A_String]));
-      }));
+    expect(false, C_int_String, A_int);
+    expect(true, C_int_String, A_String);
+    // TODO(johnniwinther): Inheritance with different type arguments is
+    // currently not supported by the implementation.
+    //expect(true, C_int_String, instantiate(A, [A_int]));
+    expect(false, C_int_String, instantiate(A, [A_String]));
+  });
 }
 
-void testCallableSubtype() {
-  asyncTest(() => TypeEnvironment.create(r"""
+Future testCallableSubtype(CompileMode compileMode) async {
+  await TypeEnvironment.create(r"""
       class U {}
       class V extends U {}
       class W extends V {}
       class A {
-        int call(V v, int i);
+        int call(V v, int i) => null;
 
-        int m1(U u, int i);
-        int m2(W w, num n);
-        U m3(V v, int i);
-        int m4(V v, U u);
-        void m5(V v, int i);
+        int m1(U u, int i) => null;
+        int m2(W w, num n) => null;
+        U m3(V v, int i) => null;
+        int m4(V v, U u) => null;
+        void m5(V v, int i) => null;
       }
-      """).then((env) {
-        void expect(
-            bool expectSubtype, ResolutionDartType T, ResolutionDartType S,
-            {bool expectMoreSpecific}) {
-          testTypes(env, T, S, expectSubtype, expectMoreSpecific);
-        }
+      """, compileMode: compileMode).then((env) {
+    void expect(bool expectSubtype, DartType T, DartType S,
+        {bool expectMoreSpecific}) {
+      testTypes(env, T, S, expectSubtype, expectMoreSpecific);
+    }
 
-        ClassElement classA = env.getElement('A');
-        ResolutionDartType A = classA.rawType;
-        ResolutionDartType function = env['Function'];
-        ResolutionDartType call = env.getMemberType(classA, 'call');
-        ResolutionDartType m1 = env.getMemberType(classA, 'm1');
-        ResolutionDartType m2 = env.getMemberType(classA, 'm2');
-        ResolutionDartType m3 = env.getMemberType(classA, 'm3');
-        ResolutionDartType m4 = env.getMemberType(classA, 'm4');
-        ResolutionDartType m5 = env.getMemberType(classA, 'm5');
+    ClassEntity classA = env.getClass('A');
+    DartType A = env.elementEnvironment.getRawType(classA);
+    DartType function = env['Function'];
+    DartType call = env.getMemberType(classA, 'call');
+    DartType m1 = env.getMemberType(classA, 'm1');
+    DartType m2 = env.getMemberType(classA, 'm2');
+    DartType m3 = env.getMemberType(classA, 'm3');
+    DartType m4 = env.getMemberType(classA, 'm4');
+    DartType m5 = env.getMemberType(classA, 'm5');
 
-        expect(true, A, function);
-        expect(true, A, call);
-        expect(true, call, m1);
-        expect(true, A, m1);
-        expect(true, A, m2, expectMoreSpecific: false);
-        expect(false, A, m3);
-        expect(false, A, m4);
-        expect(true, A, m5);
-      }));
+    expect(true, A, function);
+    expect(true, A, call);
+    expect(true, call, m1);
+    expect(true, A, m1);
+    expect(true, A, m2, expectMoreSpecific: false);
+    expect(false, A, m3);
+    expect(false, A, m4);
+    expect(true, A, m5);
+  });
 }
 
-testFunctionSubtyping() {
-  asyncTest(() => TypeEnvironment.create(r"""
-      _() => null;
-      void void_() {}
-      void void_2() {}
-      int int_() => 0;
-      int int_2() => 0;
-      Object Object_() => null;
-      double double_() => 0.0;
-      void void__int(int i) {}
-      int int__int(int i) => 0;
-      int int__int2(int i) => 0;
-      int int__Object(Object o) => 0;
-      Object Object__int(int i) => null;
-      int int__double(double d) => 0;
-      int int__int_int(int i1, int i2) => 0;
-      void inline_void_(void f()) {}
-      void inline_void__int(void f(int i)) {}
-      """).then(functionSubtypingHelper));
+const List<FunctionTypeData> functionTypesData = const <FunctionTypeData>[
+  const FunctionTypeData('', '_', '()'),
+  const FunctionTypeData('void', 'void_', '()'),
+  const FunctionTypeData('void', 'void_2', '()'),
+  const FunctionTypeData('int', 'int_', '()'),
+  const FunctionTypeData('int', 'int_2', '()'),
+  const FunctionTypeData('Object', 'Object_', '()'),
+  const FunctionTypeData('double', 'double_', '()'),
+  const FunctionTypeData('void', 'void__int', '(int i)'),
+  const FunctionTypeData('int', 'int__int', '(int i)'),
+  const FunctionTypeData('int', 'int__int2', '(int i)'),
+  const FunctionTypeData('int', 'int__Object', '(Object o)'),
+  const FunctionTypeData('Object', 'Object__int', '(int i)'),
+  const FunctionTypeData('int', 'int__double', '(double d)'),
+  const FunctionTypeData('int', 'int__int_int', '(int i1, int i2)'),
+  const FunctionTypeData('void', 'inline_void_', '(void Function() f)'),
+  const FunctionTypeData(
+      'void', 'inline_void__int', '(void Function(int i) f)'),
+];
+
+Future testFunctionSubtyping(CompileMode compileMode) async {
+  await TypeEnvironment
+      .create(createMethods(functionTypesData), compileMode: compileMode)
+      .then(functionSubtypingHelper);
 }
 
-testTypedefSubtyping() {
-  asyncTest(() => TypeEnvironment.create(r"""
-      typedef _();
-      typedef void void_();
-      typedef void void_2();
-      typedef int int_();
-      typedef int int_2();
-      typedef Object Object_();
-      typedef double double_();
-      typedef void void__int(int i);
-      typedef int int__int(int i);
-      typedef int int__int2(int i);
-      typedef int int__Object(Object o);
-      typedef Object Object__int(int i);
-      typedef int int__double(double d);
-      typedef int int__int_int(int i1, int i2);
-      typedef void inline_void_(void f());
-      typedef void inline_void__int(void f(int i));
-      """).then(functionSubtypingHelper));
+Future testTypedefSubtyping(CompileMode compileMode) async {
+  await TypeEnvironment
+      .create(createTypedefs(functionTypesData), compileMode: compileMode)
+      .then(functionSubtypingHelper);
 }
 
 functionSubtypingHelper(TypeEnvironment env) {
@@ -424,38 +417,36 @@
   expect(false, 'inline_void__int', 'inline_void_');
 }
 
-testFunctionSubtypingOptional() {
-  asyncTest(() => TypeEnvironment.create(r"""
-      void void_() {}
-      void void__int(int i) {}
-      void void___int([int i]) {}
-      void void___int2([int i]) {}
-      void void___Object([Object o]) {}
-      void void__int__int(int i1, [int i2]) {}
-      void void__int__int2(int i1, [int i2]) {}
-      void void__int__int_int(int i1, [int i2, int i3]);
-      void void___double(double d) {}
-      void void___int_int([int i1, int i2]) {}
-      void void___int_int_int([int i1, int i2, int i3]);
-      void void___Object_int([Object o, int i]) {}
-      """).then(functionSubtypingOptionalHelper));
+const List<FunctionTypeData> optionalFunctionTypesData =
+    const <FunctionTypeData>[
+  const FunctionTypeData('void', 'void_', '()'),
+  const FunctionTypeData('void', 'void__int', '(int i)'),
+  const FunctionTypeData('void', 'void___int', '([int i])'),
+  const FunctionTypeData('void', 'void___int2', '([int i])'),
+  const FunctionTypeData('void', 'void___Object', '([Object o])'),
+  const FunctionTypeData('void', 'void__int__int', '(int i1, [int i2])'),
+  const FunctionTypeData('void', 'void__int__int2', '(int i1, [int i2])'),
+  const FunctionTypeData(
+      'void', 'void__int__int_int', '(int i1, [int i2, int i3])'),
+  const FunctionTypeData('void', 'void___double', '(double d)'),
+  const FunctionTypeData('void', 'void___int_int', '([int i1, int i2])'),
+  const FunctionTypeData(
+      'void', 'void___int_int_int', '([int i1, int i2, int i3])'),
+  const FunctionTypeData('void', 'void___Object_int', '([Object o, int i])'),
+];
+
+Future testFunctionSubtypingOptional(CompileMode compileMode) async {
+  await TypeEnvironment
+      .create(createMethods(optionalFunctionTypesData),
+          compileMode: compileMode)
+      .then(functionSubtypingOptionalHelper);
 }
 
-testTypedefSubtypingOptional() {
-  asyncTest(() => TypeEnvironment.create(r"""
-      typedef void void_();
-      typedef void void__int(int i);
-      typedef void void___int([int i]);
-      typedef void void___int2([int i]);
-      typedef void void___Object([Object o]);
-      typedef void void__int__int(int i1, [int i2]);
-      typedef void void__int__int2(int i1, [int i2]);
-      typedef void void__int__int_int(int i1, [int i2, int i3]);
-      typedef void void___double(double d);
-      typedef void void___int_int([int i1, int i2]);
-      typedef void void___int_int_int([int i1, int i2, int i3]);
-      typedef void void___Object_int([Object o, int i]);
-      """).then(functionSubtypingOptionalHelper));
+Future testTypedefSubtypingOptional(CompileMode compileMode) async {
+  await TypeEnvironment
+      .create(createTypedefs(optionalFunctionTypesData),
+          compileMode: compileMode)
+      .then(functionSubtypingOptionalHelper);
 }
 
 functionSubtypingOptionalHelper(TypeEnvironment env) {
@@ -500,42 +491,34 @@
   expect(true, 'void___Object_int', 'void___int', expectMoreSpecific: false);
 }
 
-testFunctionSubtypingNamed() {
-  asyncTest(() => TypeEnvironment.create(r"""
-      void void_() {}
-      void void__int(int i) {}
-      void void___a_int({int a}) {}
-      void void___a_int2({int a}) {}
-      void void___b_int({int b}) {}
-      void void___a_Object({Object a}) {}
-      void void__int__a_int(int i1, {int a}) {}
-      void void__int__a_int2(int i1, {int a}) {}
-      void void___a_double({double a}) {}
-      void void___a_int_b_int({int a, int b}) {}
-      void void___a_int_b_int_c_int({int a, int b, int c}) {}
-      void void___a_int_c_int({int a, int c}) {}
-      void void___b_int_c_int({int b, int c}) {}
-      void void___c_int({int c}) {}
-      """).then(functionSubtypingNamedHelper));
+const List<FunctionTypeData> namedFunctionTypesData = const <FunctionTypeData>[
+  const FunctionTypeData('void', 'void_', '()'),
+  const FunctionTypeData('void', 'void__int', '(int i)'),
+  const FunctionTypeData('void', 'void___a_int', '({int a})'),
+  const FunctionTypeData('void', 'void___a_int2', '({int a})'),
+  const FunctionTypeData('void', 'void___b_int', '({int b})'),
+  const FunctionTypeData('void', 'void___a_Object', '({Object a})'),
+  const FunctionTypeData('void', 'void__int__a_int', '(int i1, {int a})'),
+  const FunctionTypeData('void', 'void__int__a_int2', '(int i1, {int a})'),
+  const FunctionTypeData('void', 'void___a_double', '({double a})'),
+  const FunctionTypeData('void', 'void___a_int_b_int', '({int a, int b})'),
+  const FunctionTypeData(
+      'void', 'void___a_int_b_int_c_int', '({int a, int b, int c})'),
+  const FunctionTypeData('void', 'void___a_int_c_int', '({int a, int c})'),
+  const FunctionTypeData('void', 'void___b_int_c_int', '({int b, int c})'),
+  const FunctionTypeData('void', 'void___c_int', '({int c})'),
+];
+
+Future testFunctionSubtypingNamed(CompileMode compileMode) async {
+  await TypeEnvironment
+      .create(createMethods(namedFunctionTypesData), compileMode: compileMode)
+      .then(functionSubtypingNamedHelper);
 }
 
-testTypedefSubtypingNamed() {
-  asyncTest(() => TypeEnvironment.create(r"""
-      typedef void void_();
-      typedef void void__int(int i);
-      typedef void void___a_int({int a});
-      typedef void void___a_int2({int a});
-      typedef void void___b_int({int b});
-      typedef void void___a_Object({Object a});
-      typedef void void__int__a_int(int i1, {int a});
-      typedef void void__int__a_int2(int i1, {int a});
-      typedef void void___a_double({double a});
-      typedef void void___a_int_b_int({int a, int b});
-      typedef void void___a_int_b_int_c_int({int a, int b, int c});
-      typedef void void___a_int_c_int({int a, int c});
-      typedef void void___b_int_c_int({int b, int c});
-      typedef void void___c_int({int c});
-      """).then(functionSubtypingNamedHelper));
+Future testTypedefSubtypingNamed(CompileMode compileMode) async {
+  await TypeEnvironment
+      .create(createTypedefs(namedFunctionTypesData), compileMode: compileMode)
+      .then(functionSubtypingNamedHelper);
 }
 
 functionSubtypingNamedHelper(TypeEnvironment env) {
@@ -574,8 +557,8 @@
   expect(true, 'void___a_int_b_int_c_int', 'void___c_int');
 }
 
-void testTypeVariableSubtype() {
-  asyncTest(() => TypeEnvironment.create(r"""
+Future testTypeVariableSubtype(CompileMode compileMode) async {
+  await TypeEnvironment.create(r"""
       class A<T> {}
       class B<T extends Object> {}
       class C<T extends num> {}
@@ -586,209 +569,212 @@
       class H<T extends S, S extends T> {}
       class I<T extends S, S extends U, U extends T> {}
       class J<T extends S, S extends U, U extends S> {}
-      """).then((env) {
-        void expect(
-            bool expectSubtype, ResolutionDartType T, ResolutionDartType S,
-            {bool expectMoreSpecific}) {
-          testTypes(env, T, S, expectSubtype, expectMoreSpecific);
-        }
+      """, compileMode: compileMode).then((env) {
+    void expect(bool expectSubtype, DartType T, DartType S,
+        {bool expectMoreSpecific}) {
+      testTypes(env, T, S, expectSubtype, expectMoreSpecific);
+    }
 
-        ClassElement A = env.getElement('A');
-        ResolutionTypeVariableType A_T = A.thisType.typeArguments[0];
-        ClassElement B = env.getElement('B');
-        ResolutionTypeVariableType B_T = B.thisType.typeArguments[0];
-        ClassElement C = env.getElement('C');
-        ResolutionTypeVariableType C_T = C.thisType.typeArguments[0];
-        ClassElement D = env.getElement('D');
-        ResolutionTypeVariableType D_T = D.thisType.typeArguments[0];
-        ClassElement E = env.getElement('E');
-        ResolutionTypeVariableType E_T = E.thisType.typeArguments[0];
-        ResolutionTypeVariableType E_S = E.thisType.typeArguments[1];
-        ClassElement F = env.getElement('F');
-        ResolutionTypeVariableType F_T = F.thisType.typeArguments[0];
-        ResolutionTypeVariableType F_S = F.thisType.typeArguments[1];
-        ClassElement G = env.getElement('G');
-        ResolutionTypeVariableType G_T = G.thisType.typeArguments[0];
-        ClassElement H = env.getElement('H');
-        ResolutionTypeVariableType H_T = H.thisType.typeArguments[0];
-        ResolutionTypeVariableType H_S = H.thisType.typeArguments[1];
-        ClassElement I = env.getElement('I');
-        ResolutionTypeVariableType I_T = I.thisType.typeArguments[0];
-        ResolutionTypeVariableType I_S = I.thisType.typeArguments[1];
-        ResolutionTypeVariableType I_U = I.thisType.typeArguments[2];
-        ClassElement J = env.getElement('J');
-        ResolutionTypeVariableType J_T = J.thisType.typeArguments[0];
-        ResolutionTypeVariableType J_S = J.thisType.typeArguments[1];
-        ResolutionTypeVariableType J_U = J.thisType.typeArguments[2];
+    TypeVariableType getTypeVariable(ClassEntity cls, int index) {
+      return env.elementEnvironment.getThisType(cls).typeArguments[index];
+    }
 
-        ResolutionDartType Object_ = env['Object'];
-        ResolutionDartType num_ = env['num'];
-        ResolutionDartType int_ = env['int'];
-        ResolutionDartType String_ = env['String'];
-        ResolutionDartType dynamic_ = env['dynamic'];
+    ClassEntity A = env.getClass('A');
+    TypeVariableType A_T = getTypeVariable(A, 0);
+    ClassEntity B = env.getClass('B');
+    TypeVariableType B_T = getTypeVariable(B, 0);
+    ClassEntity C = env.getClass('C');
+    TypeVariableType C_T = getTypeVariable(C, 0);
+    ClassEntity D = env.getClass('D');
+    TypeVariableType D_T = getTypeVariable(D, 0);
+    ClassEntity E = env.getClass('E');
+    TypeVariableType E_T = getTypeVariable(E, 0);
+    TypeVariableType E_S = getTypeVariable(E, 1);
+    ClassEntity F = env.getClass('F');
+    TypeVariableType F_T = getTypeVariable(F, 0);
+    TypeVariableType F_S = getTypeVariable(F, 1);
+    ClassEntity G = env.getClass('G');
+    TypeVariableType G_T = getTypeVariable(G, 0);
+    ClassEntity H = env.getClass('H');
+    TypeVariableType H_T = getTypeVariable(H, 0);
+    TypeVariableType H_S = getTypeVariable(H, 1);
+    ClassEntity I = env.getClass('I');
+    TypeVariableType I_T = getTypeVariable(I, 0);
+    TypeVariableType I_S = getTypeVariable(I, 1);
+    TypeVariableType I_U = getTypeVariable(I, 2);
+    ClassEntity J = env.getClass('J');
+    TypeVariableType J_T = getTypeVariable(J, 0);
+    TypeVariableType J_S = getTypeVariable(J, 1);
+    TypeVariableType J_U = getTypeVariable(J, 2);
 
-        // class A<T> {}
-        expect(true, A_T, Object_);
-        expect(false, A_T, num_);
-        expect(false, A_T, int_);
-        expect(false, A_T, String_);
-        expect(true, A_T, dynamic_);
-        expect(true, A_T, A_T);
-        expect(false, A_T, B_T);
+    DartType Object_ = env['Object'];
+    DartType num_ = env['num'];
+    DartType int_ = env['int'];
+    DartType String_ = env['String'];
+    DartType dynamic_ = env['dynamic'];
 
-        // class B<T extends Object> {}
-        expect(true, B_T, Object_);
-        expect(false, B_T, num_);
-        expect(false, B_T, int_);
-        expect(false, B_T, String_);
-        expect(true, B_T, dynamic_);
-        expect(true, B_T, B_T);
-        expect(false, B_T, A_T);
+    // class A<T> {}
+    expect(true, A_T, Object_);
+    expect(false, A_T, num_);
+    expect(false, A_T, int_);
+    expect(false, A_T, String_);
+    expect(true, A_T, dynamic_);
+    expect(true, A_T, A_T);
+    expect(false, A_T, B_T);
 
-        // class C<T extends num> {}
-        expect(true, C_T, Object_);
-        expect(true, C_T, num_);
-        expect(false, C_T, int_);
-        expect(false, C_T, String_);
-        expect(true, C_T, dynamic_);
-        expect(true, C_T, C_T);
-        expect(false, C_T, A_T);
+    // class B<T extends Object> {}
+    expect(true, B_T, Object_);
+    expect(false, B_T, num_);
+    expect(false, B_T, int_);
+    expect(false, B_T, String_);
+    expect(true, B_T, dynamic_);
+    expect(true, B_T, B_T);
+    expect(false, B_T, A_T);
 
-        // class D<T extends int> {}
-        expect(true, D_T, Object_);
-        expect(true, D_T, num_);
-        expect(true, D_T, int_);
-        expect(false, D_T, String_);
-        expect(true, D_T, dynamic_);
-        expect(true, D_T, D_T);
-        expect(false, D_T, A_T);
+    // class C<T extends num> {}
+    expect(true, C_T, Object_);
+    expect(true, C_T, num_);
+    expect(false, C_T, int_);
+    expect(false, C_T, String_);
+    expect(true, C_T, dynamic_);
+    expect(true, C_T, C_T);
+    expect(false, C_T, A_T);
 
-        // class E<T extends S, S extends num> {}
-        expect(true, E_T, Object_);
-        expect(true, E_T, num_);
-        expect(false, E_T, int_);
-        expect(false, E_T, String_);
-        expect(true, E_T, dynamic_);
-        expect(true, E_T, E_T);
-        expect(true, E_T, E_S);
-        expect(false, E_T, A_T);
+    // class D<T extends int> {}
+    expect(true, D_T, Object_);
+    expect(true, D_T, num_);
+    expect(true, D_T, int_);
+    expect(false, D_T, String_);
+    expect(true, D_T, dynamic_);
+    expect(true, D_T, D_T);
+    expect(false, D_T, A_T);
 
-        expect(true, E_S, Object_);
-        expect(true, E_S, num_);
-        expect(false, E_S, int_);
-        expect(false, E_S, String_);
-        expect(true, E_S, dynamic_);
-        expect(false, E_S, E_T);
-        expect(true, E_S, E_S);
-        expect(false, E_S, A_T);
+    // class E<T extends S, S extends num> {}
+    expect(true, E_T, Object_);
+    expect(true, E_T, num_);
+    expect(false, E_T, int_);
+    expect(false, E_T, String_);
+    expect(true, E_T, dynamic_);
+    expect(true, E_T, E_T);
+    expect(true, E_T, E_S);
+    expect(false, E_T, A_T);
 
-        // class F<T extends num, S extends T> {}
-        expect(true, F_T, Object_);
-        expect(true, F_T, num_);
-        expect(false, F_T, int_);
-        expect(false, F_T, String_);
-        expect(true, F_T, dynamic_);
-        expect(false, F_T, F_S);
-        expect(true, F_T, F_T);
-        expect(false, F_T, A_T);
+    expect(true, E_S, Object_);
+    expect(true, E_S, num_);
+    expect(false, E_S, int_);
+    expect(false, E_S, String_);
+    expect(true, E_S, dynamic_);
+    expect(false, E_S, E_T);
+    expect(true, E_S, E_S);
+    expect(false, E_S, A_T);
 
-        expect(true, F_S, Object_);
-        expect(true, F_S, num_);
-        expect(false, F_S, int_);
-        expect(false, F_S, String_);
-        expect(true, F_S, dynamic_);
-        expect(true, F_S, F_S);
-        expect(true, F_S, F_T);
-        expect(false, F_S, A_T);
+    // class F<T extends num, S extends T> {}
+    expect(true, F_T, Object_);
+    expect(true, F_T, num_);
+    expect(false, F_T, int_);
+    expect(false, F_T, String_);
+    expect(true, F_T, dynamic_);
+    expect(false, F_T, F_S);
+    expect(true, F_T, F_T);
+    expect(false, F_T, A_T);
 
-        // class G<T extends T> {}
-        expect(true, G_T, Object_);
-        expect(false, G_T, num_);
-        expect(false, G_T, int_);
-        expect(false, G_T, String_);
-        expect(true, G_T, dynamic_);
-        expect(true, G_T, G_T);
-        expect(false, G_T, A_T);
+    expect(true, F_S, Object_);
+    expect(true, F_S, num_);
+    expect(false, F_S, int_);
+    expect(false, F_S, String_);
+    expect(true, F_S, dynamic_);
+    expect(true, F_S, F_S);
+    expect(true, F_S, F_T);
+    expect(false, F_S, A_T);
 
-        // class H<T extends S, S extends T> {}
-        expect(true, H_T, Object_);
-        expect(false, H_T, num_);
-        expect(false, H_T, int_);
-        expect(false, H_T, String_);
-        expect(true, H_T, dynamic_);
-        expect(true, H_T, H_T);
-        expect(true, H_T, H_S);
-        expect(false, H_T, A_T);
+    // class G<T extends T> {}
+    expect(true, G_T, Object_);
+    expect(false, G_T, num_);
+    expect(false, G_T, int_);
+    expect(false, G_T, String_);
+    expect(true, G_T, dynamic_);
+    expect(true, G_T, G_T);
+    expect(false, G_T, A_T);
 
-        expect(true, H_S, Object_);
-        expect(false, H_S, num_);
-        expect(false, H_S, int_);
-        expect(false, H_S, String_);
-        expect(true, H_S, dynamic_);
-        expect(true, H_S, H_T);
-        expect(true, H_S, H_S);
-        expect(false, H_S, A_T);
+    // class H<T extends S, S extends T> {}
+    expect(true, H_T, Object_);
+    expect(false, H_T, num_);
+    expect(false, H_T, int_);
+    expect(false, H_T, String_);
+    expect(true, H_T, dynamic_);
+    expect(true, H_T, H_T);
+    expect(true, H_T, H_S);
+    expect(false, H_T, A_T);
 
-        // class I<T extends S, S extends U, U extends T> {}
-        expect(true, I_T, Object_);
-        expect(false, I_T, num_);
-        expect(false, I_T, int_);
-        expect(false, I_T, String_);
-        expect(true, I_T, dynamic_);
-        expect(true, I_T, I_T);
-        expect(true, I_T, I_S);
-        expect(true, I_T, I_U);
-        expect(false, I_T, A_T);
+    expect(true, H_S, Object_);
+    expect(false, H_S, num_);
+    expect(false, H_S, int_);
+    expect(false, H_S, String_);
+    expect(true, H_S, dynamic_);
+    expect(true, H_S, H_T);
+    expect(true, H_S, H_S);
+    expect(false, H_S, A_T);
 
-        expect(true, I_S, Object_);
-        expect(false, I_S, num_);
-        expect(false, I_S, int_);
-        expect(false, I_S, String_);
-        expect(true, I_S, dynamic_);
-        expect(true, I_S, I_T);
-        expect(true, I_S, I_S);
-        expect(true, I_S, I_U);
-        expect(false, I_S, A_T);
+    // class I<T extends S, S extends U, U extends T> {}
+    expect(true, I_T, Object_);
+    expect(false, I_T, num_);
+    expect(false, I_T, int_);
+    expect(false, I_T, String_);
+    expect(true, I_T, dynamic_);
+    expect(true, I_T, I_T);
+    expect(true, I_T, I_S);
+    expect(true, I_T, I_U);
+    expect(false, I_T, A_T);
 
-        expect(true, I_U, Object_);
-        expect(false, I_U, num_);
-        expect(false, I_U, int_);
-        expect(false, I_U, String_);
-        expect(true, I_U, dynamic_);
-        expect(true, I_U, I_T);
-        expect(true, I_U, I_S);
-        expect(true, I_U, I_U);
-        expect(false, I_U, A_T);
+    expect(true, I_S, Object_);
+    expect(false, I_S, num_);
+    expect(false, I_S, int_);
+    expect(false, I_S, String_);
+    expect(true, I_S, dynamic_);
+    expect(true, I_S, I_T);
+    expect(true, I_S, I_S);
+    expect(true, I_S, I_U);
+    expect(false, I_S, A_T);
 
-        // class J<T extends S, S extends U, U extends S> {}
-        expect(true, J_T, Object_);
-        expect(false, J_T, num_);
-        expect(false, J_T, int_);
-        expect(false, J_T, String_);
-        expect(true, J_T, dynamic_);
-        expect(true, J_T, J_T);
-        expect(true, J_T, J_S);
-        expect(true, J_T, J_U);
-        expect(false, J_T, A_T);
+    expect(true, I_U, Object_);
+    expect(false, I_U, num_);
+    expect(false, I_U, int_);
+    expect(false, I_U, String_);
+    expect(true, I_U, dynamic_);
+    expect(true, I_U, I_T);
+    expect(true, I_U, I_S);
+    expect(true, I_U, I_U);
+    expect(false, I_U, A_T);
 
-        expect(true, J_S, Object_);
-        expect(false, J_S, num_);
-        expect(false, J_S, int_);
-        expect(false, J_S, String_);
-        expect(true, J_S, dynamic_);
-        expect(false, J_S, J_T);
-        expect(true, J_S, J_S);
-        expect(true, J_S, J_U);
-        expect(false, J_S, A_T);
+    // class J<T extends S, S extends U, U extends S> {}
+    expect(true, J_T, Object_);
+    expect(false, J_T, num_);
+    expect(false, J_T, int_);
+    expect(false, J_T, String_);
+    expect(true, J_T, dynamic_);
+    expect(true, J_T, J_T);
+    expect(true, J_T, J_S);
+    expect(true, J_T, J_U);
+    expect(false, J_T, A_T);
 
-        expect(true, J_U, Object_);
-        expect(false, J_U, num_);
-        expect(false, J_U, int_);
-        expect(false, J_U, String_);
-        expect(true, J_U, dynamic_);
-        expect(false, J_U, J_T);
-        expect(true, J_U, J_S);
-        expect(true, J_U, J_U);
-        expect(false, J_U, A_T);
-      }));
+    expect(true, J_S, Object_);
+    expect(false, J_S, num_);
+    expect(false, J_S, int_);
+    expect(false, J_S, String_);
+    expect(true, J_S, dynamic_);
+    expect(false, J_S, J_T);
+    expect(true, J_S, J_S);
+    expect(true, J_S, J_U);
+    expect(false, J_S, A_T);
+
+    expect(true, J_U, Object_);
+    expect(false, J_U, num_);
+    expect(false, J_U, int_);
+    expect(false, J_U, String_);
+    expect(true, J_U, dynamic_);
+    expect(false, J_U, J_T);
+    expect(true, J_U, J_S);
+    expect(true, J_U, J_U);
+    expect(false, J_U, A_T);
+  });
 }
diff --git a/tests/compiler/dart2js/type_test_helper.dart b/tests/compiler/dart2js/type_test_helper.dart
index 4b6e58c..8dde099 100644
--- a/tests/compiler/dart2js/type_test_helper.dart
+++ b/tests/compiler/dart2js/type_test_helper.dart
@@ -14,7 +14,8 @@
 import 'package:compiler/src/compiler.dart' show Compiler;
 import 'package:compiler/src/elements/entities.dart';
 import 'package:compiler/src/elements/elements.dart'
-    show Element, MemberElement, ClassElement, LibraryElement, TypedefElement;
+    show ClassElement, LibraryElement, TypedefElement;
+import 'package:compiler/src/kernel/kernel_strategy.dart';
 import 'package:compiler/src/world.dart' show ClosedWorld;
 import 'compiler_helper.dart' as mock;
 import 'memory_compiler.dart' as memory;
@@ -39,8 +40,6 @@
 
   Resolution get resolution => compiler.resolution;
 
-  Types get types => resolution.types;
-
   static Future<TypeEnvironment> create(String source,
       {CompileMode compileMode: CompileMode.mock,
       bool useDillCompiler: false,
@@ -48,7 +47,8 @@
       bool expectNoWarningsOrErrors: false,
       bool stopAfterTypeInference: false,
       String mainSource,
-      bool testBackendWorld: false}) async {
+      bool testBackendWorld: false,
+      Map<String, String> fieldTypeMap: const <String, String>{}}) async {
     Uri uri;
     Compiler compiler;
     if (mainSource != null) {
@@ -128,13 +128,40 @@
     }
   }
 
-  Element getElement(String name) {
-    LibraryElement mainApp = elementEnvironment.mainLibrary;
-    dynamic element = mainApp.find(name);
-    Expect.isNotNull(element);
-    if (element.isClass) {
+  CommonElements get commonElements {
+    if (testBackendWorld) {
+      return compiler.backendClosedWorldForTesting.commonElements;
+    } else {
+      return compiler.frontendStrategy.commonElements;
+    }
+  }
+
+  DartTypes get types {
+    if (resolution != null) {
+      return resolution.types;
+    } else {
+      if (testBackendWorld) {
+        return compiler.backendClosedWorldForTesting.dartTypes;
+      } else {
+        KernelFrontEndStrategy frontendStrategy = compiler.frontendStrategy;
+        return frontendStrategy.elementMap.types;
+      }
+    }
+  }
+
+  Entity getElement(String name) {
+    LibraryEntity mainLibrary = elementEnvironment.mainLibrary;
+    dynamic element = elementEnvironment.lookupLibraryMember(mainLibrary, name);
+    element ??= elementEnvironment.lookupClass(mainLibrary, name);
+    element ??=
+        elementEnvironment.lookupClass(commonElements.coreLibrary, name);
+    if (element == null && mainLibrary is LibraryElement) {
+      element = mainLibrary.find(name);
+    }
+    Expect.isNotNull(element, "No element named '$name' found.");
+    if (element is ClassElement) {
       element.ensureResolved(compiler.resolution);
-    } else if (element.isTypedef) {
+    } else if (element is TypedefElement) {
       element.computeType(compiler.resolution);
     }
     return element;
@@ -143,44 +170,78 @@
   ClassEntity getClass(String name) {
     LibraryEntity mainLibrary = elementEnvironment.mainLibrary;
     ClassEntity element = elementEnvironment.lookupClass(mainLibrary, name);
-    Expect.isNotNull(element);
+    Expect.isNotNull(element, "No class named '$name' found.");
     if (element is ClassElement) {
       element.ensureResolved(compiler.resolution);
     }
     return element;
   }
 
-  ResolutionDartType getElementType(String name) {
+  DartType getElementType(String name) {
     dynamic element = getElement(name);
-    return element.computeType(compiler.resolution);
+    if (element is FieldEntity) {
+      return elementEnvironment.getFieldType(element);
+    } else if (element is FunctionEntity) {
+      return elementEnvironment.getFunctionType(element);
+    } else if (element is ClassEntity) {
+      return elementEnvironment.getThisType(element);
+    } else {
+      /// ignore: undefined_method
+      return element.computeType(compiler.resolution);
+    }
   }
 
-  ResolutionDartType operator [](String name) {
-    if (name == 'dynamic') return const ResolutionDynamicType();
-    if (name == 'void') return const ResolutionVoidType();
+  DartType operator [](String name) {
+    if (name == 'dynamic') {
+      if (resolution != null) {
+        return const ResolutionDynamicType();
+      } else {
+        return const DynamicType();
+      }
+    }
+    if (name == 'void') {
+      if (resolution != null) {
+        return const ResolutionVoidType();
+      } else {
+        return const VoidType();
+      }
+    }
     return getElementType(name);
   }
 
-  ResolutionDartType getMemberType(ClassElement element, String name) {
-    MemberElement member = element.localLookup(name);
-    return member.computeType(compiler.resolution);
+  DartType getMemberType(ClassEntity cls, String name) {
+    MemberEntity member = elementEnvironment.lookupLocalClassMember(cls, name);
+    if (member is FieldEntity) {
+      return elementEnvironment.getFieldType(member);
+    } else if (member is FunctionEntity) {
+      return elementEnvironment.getFunctionType(member);
+    }
+    throw 'Unexpected member: $member';
   }
 
-  bool isSubtype(ResolutionDartType T, ResolutionDartType S) {
+  DartType getFieldType(String name) {
+    LibraryEntity mainLibrary = elementEnvironment.mainLibrary;
+    FieldEntity field =
+        elementEnvironment.lookupLibraryMember(mainLibrary, name);
+    Expect.isNotNull(field);
+    return elementEnvironment.getFieldType(field);
+  }
+
+  bool isSubtype(DartType T, DartType S) {
     return types.isSubtype(T, S);
   }
 
   bool isMoreSpecific(ResolutionDartType T, ResolutionDartType S) {
-    return types.isMoreSpecific(T, S);
+    return (types as Types).isMoreSpecific(T, S);
   }
 
   ResolutionDartType computeLeastUpperBound(
       ResolutionDartType T, ResolutionDartType S) {
-    return types.computeLeastUpperBound(T, S);
+    return (types as Types).computeLeastUpperBound(T, S);
   }
 
   ResolutionDartType flatten(ResolutionDartType T) {
-    return types.flatten(T);
+    return (types as Types).flatten(T);
   }
 
   ResolutionFunctionType functionType(
@@ -208,3 +269,53 @@
     }
   }
 }
+
+/// Data used to create a function type either as method declaration or a
+/// typedef declaration.
+class FunctionTypeData {
+  final String returnType;
+  final String name;
+  final String parameters;
+
+  const FunctionTypeData(this.returnType, this.name, this.parameters);
+
+  String toString() => '$returnType $name$parameters';
+}
+
+/// Return source code that declares the function types in [dataList] as
+/// method declarations of the form:
+///
+///     $returnType $name$parameters => null;
+String createMethods(List<FunctionTypeData> dataList,
+    {String additionalData: '', String prefix: ''}) {
+  StringBuffer sb = new StringBuffer();
+  for (FunctionTypeData data in dataList) {
+    sb.writeln(
+        '${data.returnType} $prefix${data.name}${data.parameters} => null;');
+  }
+  sb.write(additionalData);
+  return sb.toString();
+}
+
+/// Return source code that declares the function types in [dataList] as
+/// typedefs of the form:
+///
+///     typedef fx = $returnType Function$parameters;
+///     fx $name;
+///
+/// where a field using the typedef is add to make the type accessible by name.
+String createTypedefs(List<FunctionTypeData> dataList,
+    {String additionalData: '', String prefix: ''}) {
+  StringBuffer sb = new StringBuffer();
+  for (int index = 0; index < dataList.length; index++) {
+    FunctionTypeData data = dataList[index];
+    sb.writeln(
+        'typedef f$index = ${data.returnType} Function${data.parameters};');
+  }
+  for (int index = 0; index < dataList.length; index++) {
+    FunctionTypeData data = dataList[index];
+    sb.writeln('f$index $prefix${data.name};');
+  }
+  sb.write(additionalData);
+  return sb.toString();
+}
diff --git a/tests/compiler/dart2js_extra/dart2js_extra.status b/tests/compiler/dart2js_extra/dart2js_extra.status
index b84425a..e6eedf8 100644
--- a/tests/compiler/dart2js_extra/dart2js_extra.status
+++ b/tests/compiler/dart2js_extra/dart2js_extra.status
@@ -2,147 +2,154 @@
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
 
-[ $compiler == dart2js ]
-class_test: Fail
-statements_test: Fail
-typed_locals_test: Fail
-no_such_method_test: Fail # Wrong Invocation.memberName.
-constant_javascript_semantics4_test: Fail, OK
-mirrors_used_closure_test: Fail # Issue 17939
-dummy_compiler_test: Slow, Pass
-recursive_import_test: Slow, Pass
-
-[ $compiler == dart2js && $browser ]
-dummy_compiler_test: Skip
-recursive_import_test: Skip
-
-[ $compiler == dart2js && $runtime == d8 && $host_checked ]
-dummy_compiler_test: Skip # Issue 30773
-recursive_import_test: Skip # Issue 30773
-
-[ $compiler == dart2analyzer && $builder_tag == strong ]
-dummy_compiler_test: Skip # Issue 28649
-recursive_import_test: Skip # Issue 28649
-
-[ $hot_reload || $hot_reload_rollback ]
-recursive_import_test: Skip # Running dart2js under frequent reloads is slow.
-dummy_compiler_test: Skip # Running dart2js under frequent reloads is slow.
-
 [ $builder_tag == asan ]
 recursive_import_test: Skip # Issue 27441
 
-[ ($compiler == dartk || $compiler == dartkp) && $mode == debug ]
+[ $compiler == dart2js ]
+class_test: Fail
+constant_javascript_semantics4_test: Fail, OK
 dummy_compiler_test: Slow, Pass
+mirror_printer_test: Pass, Slow # Issue 25940, 16473
+mirrors_used_closure_test: Fail # Issue 17939
+no_such_method_test: Fail # Wrong Invocation.memberName.
 recursive_import_test: Slow, Pass
+statements_test: Fail
+typed_locals_test: Fail
 
-[ $compiler == dart2js && $checked ]
-variable_type_test/03: Fail, OK
-variable_type_test/01: Fail, OK
+[ $runtime == jsshell ]
+deferred/load_in_correct_order_test: SkipByDesign # jsshell preamble does not support this test.
+timer_test: Fail # Issue 7728.
 
-[ $compiler == dart2js && $fast_startup ]
-21666_test: Fail # mirrors not supported
-23056_test: Fail # mirrors not supported
-closure_type_reflection2_test: Fail # mirrors not supported
-closure_type_reflection_test: Fail # mirrors not supported
-deferred/deferred_mirrors1_lib: Fail # mirrors not supported
-deferred/deferred_mirrors1_test: Fail # mirrors not supported
-deferred/deferred_mirrors2_lazy: Fail # mirrors not supported
-deferred/deferred_mirrors2_lib3: Fail # mirrors not supported
-deferred/deferred_mirrors2_test: Fail # mirrors not supported
-deferred/reflect_multiple_annotations_test: CompileTimeError # mirrors not supported
-deferred/reflect_multiple_default_arg_test: CompileTimeError # mirrors not supported
-inference_nsm_mirrors_test: Fail # mirrors not supported
-invalid_annotation2_test/none: Fail # mirrors not supported
-invalid_annotation2_test/01: Pass # mirrors not supported, passes for the wrong reason
-mirror_enqueuer_regression_test: Fail # mirrors not supported
-mirror_invalid_field_access2_test: Fail # mirrors not supported
-mirror_invalid_field_access3_test: Fail # mirrors not supported
-mirror_invalid_field_access4_test: Fail # mirrors not supported
-mirror_invalid_field_access_test: Fail # mirrors not supported
-mirror_invalid_invoke2_test: Fail # mirrors not supported
-mirror_invalid_invoke3_test: Fail # mirrors not supported
-mirror_invalid_invoke_test: Fail # mirrors not supported
-mirror_printer_test: Fail # mirrors not supported
-mirror_test: Fail # mirrors not supported
-mirror_type_inference_field2_test: Fail # mirrors not supported
-mirror_type_inference_field_test: Fail # mirrors not supported
-mirror_type_inference_function_test: Fail # mirrors not supported
-mirrors_declarations_filtering_test: Fail # mirrors not supported
-mirrors_used_closure_test: Fail # mirrors not supported
-mirrors_used_metatargets_test: Fail # mirrors not supported
-mirrors_used_native_test: Fail # mirrors not supported
-mirrors_used_warning2_test: Fail # mirrors not supported
-mirrors_used_warning_test: Fail # mirrors not supported
-no_such_method_mirrors_test: Fail # mirrors not supported
-reflect_native_types_test: Fail # mirrors not supported
+[ $runtime == none ]
+timer_negative_test: Fail, OK # A negative runtime test.
 
-[ $compiler == dart2js && ($runtime == d8 || $runtime == chrome || $runtime == drt) ]
-bound_closure_interceptor_type_test: Fail, Pass # v8 issue 3084. https://code.google.com/p/v8/issues/detail?id=3084
+[ $builder_tag == strong && $compiler == dart2analyzer ]
+dummy_compiler_test: Skip # Issue 28649
+recursive_import_test: Skip # Issue 28649
 
 [ $compiler == dart2js && $mode == debug ]
 operator_test: Skip
 string_interpolation_test: Skip
 
+[ $compiler == dart2js && $runtime == chrome && $system == windows ]
+class_test: Pass, Slow # Issue 25940
+closure_capture3_test: Pass, Slow # Issue 25940
+closure_capture5_test: Pass, Slow # Issue 25940
+conditional_test: Pass, Slow # Issue 25940
+consistent_codeUnitAt_error_test: Pass, Slow # Issue 25940
+constant_javascript_semantics2_test: Pass, Slow # Issue 25940
+deferred_split_test: Pass, Slow # Issue 25940
+
 [ $compiler == dart2js && $runtime == chromeOnAndroid ]
 no_such_method_mirrors_test: Pass, Slow # TODO(kasperl): Please triage.
 
-[ $compiler == dart2js && $runtime == none ]
-*: Fail, Pass # TODO(ahe): Triage these tests.
+[ $compiler == dart2js && $runtime == d8 && $host_checked ]
+dummy_compiler_test: Skip # Issue 30773
+recursive_import_test: Skip # Issue 30773
 
-[ $compiler == dart2js && $minified ]
-to_string_test: Fail # Issue 7179.
-runtime_type_test: Fail, OK # Tests extected output of Type.toString().
-code_motion_exception_test: Skip  # Requires unminified operator names.
-mirrors_used_warning_test/minif: Fail, OK # Tests warning that minified code will be broken.
-deferred/reflect_multiple_annotations_test: Fail
-deferred/reflect_multiple_default_arg_test: Fail
-
-
-[ $compiler == dart2js && $runtime == safari ]
-deferred_fail_and_retry_worker_test: Timeout  # Issue 22106
-
-[ $compiler == dart2js && ($runtime == drt || $runtime == ff || $runtime == safari || $runtime == jsshell) ]
-code_motion_exception_test: Skip  # Required V8 specific format of JavaScript errors.
-
-[ $compiler == dart2js && ($runtime == drt || $runtime == ff || $runtime == safari || $runtime == safarimobilesim || $runtime == chrome || $runtime == chromeOnAndroid) ]
-isolate2_test/01: Fail # Issue 14458.
-
-[ $runtime == jsshell ]
-timer_test: Fail # Issue 7728.
-deferred/load_in_correct_order_test: SkipByDesign # jsshell preamble does not support this test.
-
-[ $runtime == none ]
-timer_negative_test: Fail, OK # A negative runtime test.
-
-[ $compiler == dart2js && $csp ]
-deferred_fail_and_retry_test: SkipByDesign # Uses eval to simulate failed loading.
-deferred_fail_and_retry_worker_test: SkipByDesign # Uses eval to simulate failed loading.
-deferred_custom_loader_test: SkipByDesign # Issue 25683
-js_interop_test: RuntimeError # Issue 31082
-
-[ $compiler == none && $runtime == vm ]
-invalid_annotation_test/01: MissingCompileTimeError, OK # vm is lazy
-unconditional_dartio_import_test: SkipByDesign # dart2js only test
-new_from_env_test: SkipByDesign # dart2js only test
-
-[ $compiler == dart2js && $runtime == chrome && $system == windows ]
-class_test: Pass, Slow # Issue 25940
-consistent_codeUnitAt_error_test: Pass, Slow # Issue 25940
-closure_capture3_test: Pass, Slow # Issue 25940
-deferred_split_test: Pass, Slow # Issue 25940
-closure_capture5_test: Pass, Slow # Issue 25940
-conditional_test: Pass, Slow # Issue 25940
-constant_javascript_semantics2_test: Pass, Slow # Issue 25940
+[ $compiler == dart2js && $runtime == drt && $csp ]
+deferred/load_in_correct_order_test: SkipByDesign # Purposely uses `eval`
 
 [ $compiler == dart2js && $runtime == ff && $system == windows ]
 consistent_index_error_string_test: Pass, Slow # Issue 25940
 
-[ $compiler == dart2js ]
-mirror_printer_test: Pass, Slow # Issue 25940, 16473
+[ $compiler == dart2js && $runtime == none ]
+*: Fail, Pass # TODO(ahe): Triage these tests.
 
-[ $compiler == dart2js && !$dart2js_with_kernel ]
-expose_this1_test: RuntimeError # Issue 31254
-expose_this2_test: RuntimeError # Issue 31254
+[ $compiler == dart2js && $runtime == safari ]
+deferred_fail_and_retry_worker_test: Timeout # Issue 22106
+
+[ $compiler == dart2js && $browser ]
+dummy_compiler_test: Skip
+recursive_import_test: Skip
+
+[ $compiler == dart2js && $checked ]
+variable_type_test/01: Fail, OK
+variable_type_test/03: Fail, OK
+
+[ $compiler == dart2js && $checked && $dart2js_with_kernel ]
+21666_test: RuntimeError
+closure_capture2_test: RuntimeError
+closure_type_reflection2_test: RuntimeError
+closure_type_reflection_test: RuntimeError
+constant_javascript_semantics_test/01: MissingCompileTimeError
+deferred/deferred_mirrors1_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
+deferred/deferred_mirrors2_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
+deferred/reflect_multiple_annotations_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
+deferred/reflect_multiple_default_arg_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
+deferred/uninstantiated_type_variable_test: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
+deferred_custom_loader_test: RuntimeError
+deferred_fail_and_retry_test: RuntimeError
+deferred_fail_and_retry_worker_test: Fail
+dummy_compiler_test: CompileTimeError
+invalid_annotation2_test/none: RuntimeError
+label_test/06: MissingCompileTimeError
+minus_zero_test/01: MissingCompileTimeError
+mirror_invalid_field_access2_test: RuntimeError
+mirror_invalid_field_access3_test: RuntimeError
+mirror_invalid_field_access4_test: RuntimeError
+mirror_invalid_field_access_test: RuntimeError
+mirror_invalid_invoke2_test: RuntimeError
+mirror_invalid_invoke3_test: RuntimeError
+mirror_invalid_invoke_test: RuntimeError
+mirror_printer_test/01: RuntimeError
+mirror_printer_test/none: RuntimeError
+mirror_test: RuntimeError
+mirror_type_inference_field2_test: RuntimeError
+mirror_type_inference_field_test: RuntimeError
+mirror_type_inference_function_test: RuntimeError
+mirrors_declarations_filtering_test: RuntimeError
+mirrors_used_metatargets_test: RuntimeError
+mirrors_used_native_test: RuntimeError
+mirrors_used_warning2_test: RuntimeError
+mirrors_used_warning_test/minif: RuntimeError
+mirrors_used_warning_test/none: RuntimeError
+private_symbol_literal_test/01: MissingCompileTimeError
+private_symbol_literal_test/02: MissingCompileTimeError
+private_symbol_literal_test/03: MissingCompileTimeError
+private_symbol_literal_test/04: MissingCompileTimeError
+private_symbol_literal_test/05: MissingCompileTimeError
+private_symbol_literal_test/06: MissingCompileTimeError
+recursive_import_test: CompileTimeError
+reflect_native_types_test: RuntimeError
+regress/4562_test/none: CompileTimeError
+string_interpolation_dynamic_test: RuntimeError
+string_interpolation_test: RuntimeError
+type_constant_switch_test/01: MissingCompileTimeError
+unconditional_dartio_import_test: RuntimeError
+
+[ $compiler == dart2js && $csp ]
+deferred_custom_loader_test: SkipByDesign # Issue 25683
+deferred_fail_and_retry_test: SkipByDesign # Uses eval to simulate failed loading.
+deferred_fail_and_retry_worker_test: SkipByDesign # Uses eval to simulate failed loading.
+js_interop_test: RuntimeError # Issue 31082
+
+[ $compiler == dart2js && $dart2js_with_kernel && $fast_startup ]
+23056_test: Pass
+closure_capture2_test: RuntimeError
+constant_javascript_semantics_test/01: MissingCompileTimeError
+deferred/deferred_mirrors1_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
+deferred/deferred_mirrors2_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
+deferred/reflect_multiple_annotations_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
+deferred/reflect_multiple_default_arg_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
+deferred_custom_loader_test: RuntimeError
+deferred_fail_and_retry_test: RuntimeError
+deferred_fail_and_retry_worker_test: Fail
+dummy_compiler_test: CompileTimeError
+label_test/06: MissingCompileTimeError
+mirror_enqueuer_regression_test: Pass
+private_symbol_literal_test/01: MissingCompileTimeError
+private_symbol_literal_test/02: MissingCompileTimeError
+private_symbol_literal_test/03: MissingCompileTimeError
+private_symbol_literal_test/04: MissingCompileTimeError
+private_symbol_literal_test/05: MissingCompileTimeError
+private_symbol_literal_test/06: MissingCompileTimeError
+recursive_import_test: CompileTimeError
+regress/4562_test/none: CompileTimeError
+string_interpolation_dynamic_test: RuntimeError
+string_interpolation_test: RuntimeError
+type_constant_switch_test/01: MissingCompileTimeError
+unconditional_dartio_import_test: RuntimeError
 
 [ $compiler == dart2js && $dart2js_with_kernel && $host_checked ]
 21666_test: RuntimeError
@@ -155,8 +162,8 @@
 deferred/reflect_multiple_annotations_test: Crash # Assertion failure: Missing scope info for j:method(_loadLibraryWrapper).
 deferred/reflect_multiple_default_arg_test: Crash # Assertion failure: Missing scope info for j:method(_loadLibraryWrapper).
 deferred_custom_loader_test: RuntimeError
-deferred_fail_and_retry_test: RuntimeError
-deferred_fail_and_retry_worker_test: Fail
+deferred_fail_and_retry_test: Crash # type 'Class' is not a subtype of type 'Member' of 'key' where
+deferred_fail_and_retry_worker_test: Crash # type 'Class' is not a subtype of type 'Member' of 'key' where
 invalid_annotation2_test/none: RuntimeError
 label_test/06: MissingCompileTimeError
 mirror_invalid_field_access2_test: RuntimeError
@@ -238,86 +245,74 @@
 type_constant_switch_test/01: MissingCompileTimeError
 unconditional_dartio_import_test: RuntimeError # Issue 30902
 
-[ $compiler == dart2js && $dart2js_with_kernel && $fast_startup ]
-23056_test: Pass
-mirror_enqueuer_regression_test: Pass
-closure_capture2_test: RuntimeError
-constant_javascript_semantics_test/01: MissingCompileTimeError
-deferred/deferred_constant3_test: RuntimeError
-deferred/deferred_constant4_test: RuntimeError
-deferred/deferred_mirrors1_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
-deferred/deferred_mirrors2_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
-deferred/reflect_multiple_annotations_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
-deferred/reflect_multiple_default_arg_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
-deferred/uninstantiated_type_variable_test: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
-deferred_custom_loader_test: RuntimeError
-deferred_fail_and_retry_test: RuntimeError
-deferred_fail_and_retry_worker_test: Fail
-dummy_compiler_test: CompileTimeError
-label_test/06: MissingCompileTimeError
-private_symbol_literal_test/01: MissingCompileTimeError
-private_symbol_literal_test/02: MissingCompileTimeError
-private_symbol_literal_test/03: MissingCompileTimeError
-private_symbol_literal_test/04: MissingCompileTimeError
-private_symbol_literal_test/05: MissingCompileTimeError
-private_symbol_literal_test/06: MissingCompileTimeError
-recursive_import_test: CompileTimeError
-regress/4562_test/none: CompileTimeError
-string_interpolation_dynamic_test: RuntimeError
-string_interpolation_test: RuntimeError
-type_constant_switch_test/01: MissingCompileTimeError
-unconditional_dartio_import_test: RuntimeError
+[ $compiler == dart2js && !$dart2js_with_kernel ]
+expose_this1_test: RuntimeError # Issue 31254
+expose_this2_test: RuntimeError # Issue 31254
 
-[ $compiler == dart2js && $dart2js_with_kernel && $checked ]
-21666_test: RuntimeError
-closure_capture2_test: RuntimeError
-closure_type_reflection2_test: RuntimeError
-closure_type_reflection_test: RuntimeError
-constant_javascript_semantics_test/01: MissingCompileTimeError
-deferred/deferred_mirrors1_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
-deferred/deferred_mirrors2_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
-deferred/reflect_multiple_annotations_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
-deferred/reflect_multiple_default_arg_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
-deferred/uninstantiated_type_variable_test: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
-deferred_custom_loader_test: RuntimeError
-deferred_fail_and_retry_test: RuntimeError
-deferred_fail_and_retry_worker_test: Fail
-dummy_compiler_test: CompileTimeError
-invalid_annotation2_test/none: RuntimeError
-label_test/06: MissingCompileTimeError
-minus_zero_test/01: MissingCompileTimeError
-mirror_invalid_field_access2_test: RuntimeError
-mirror_invalid_field_access3_test: RuntimeError
-mirror_invalid_field_access4_test: RuntimeError
-mirror_invalid_field_access_test: RuntimeError
-mirror_invalid_invoke2_test: RuntimeError
-mirror_invalid_invoke3_test: RuntimeError
-mirror_invalid_invoke_test: RuntimeError
-mirror_printer_test/01: RuntimeError
-mirror_printer_test/none: RuntimeError
-mirror_test: RuntimeError
-mirror_type_inference_field2_test: RuntimeError
-mirror_type_inference_field_test: RuntimeError
-mirror_type_inference_function_test: RuntimeError
-mirrors_declarations_filtering_test: RuntimeError
-mirrors_used_metatargets_test: RuntimeError
-mirrors_used_native_test: RuntimeError
-mirrors_used_warning2_test: RuntimeError
-mirrors_used_warning_test/minif: RuntimeError
-mirrors_used_warning_test/none: RuntimeError
-private_symbol_literal_test/01: MissingCompileTimeError
-private_symbol_literal_test/02: MissingCompileTimeError
-private_symbol_literal_test/03: MissingCompileTimeError
-private_symbol_literal_test/04: MissingCompileTimeError
-private_symbol_literal_test/05: MissingCompileTimeError
-private_symbol_literal_test/06: MissingCompileTimeError
-recursive_import_test: CompileTimeError
-reflect_native_types_test: RuntimeError
-regress/4562_test/none: CompileTimeError
-string_interpolation_dynamic_test: RuntimeError
-string_interpolation_test: RuntimeError
-type_constant_switch_test/01: MissingCompileTimeError
-unconditional_dartio_import_test: RuntimeError
+[ $compiler == dart2js && $fast_startup ]
+21666_test: Fail # mirrors not supported
+23056_test: Fail # mirrors not supported
+closure_type_reflection2_test: Fail # mirrors not supported
+closure_type_reflection_test: Fail # mirrors not supported
+deferred/deferred_mirrors1_lib: Fail # mirrors not supported
+deferred/deferred_mirrors1_test: Fail # mirrors not supported
+deferred/deferred_mirrors2_lazy: Fail # mirrors not supported
+deferred/deferred_mirrors2_lib3: Fail # mirrors not supported
+deferred/deferred_mirrors2_test: Fail # mirrors not supported
+deferred/reflect_multiple_annotations_test: CompileTimeError # mirrors not supported
+deferred/reflect_multiple_default_arg_test: CompileTimeError # mirrors not supported
+inference_nsm_mirrors_test: Fail # mirrors not supported
+invalid_annotation2_test/01: Pass # mirrors not supported, passes for the wrong reason
+invalid_annotation2_test/none: Fail # mirrors not supported
+mirror_enqueuer_regression_test: Fail # mirrors not supported
+mirror_invalid_field_access2_test: Fail # mirrors not supported
+mirror_invalid_field_access3_test: Fail # mirrors not supported
+mirror_invalid_field_access4_test: Fail # mirrors not supported
+mirror_invalid_field_access_test: Fail # mirrors not supported
+mirror_invalid_invoke2_test: Fail # mirrors not supported
+mirror_invalid_invoke3_test: Fail # mirrors not supported
+mirror_invalid_invoke_test: Fail # mirrors not supported
+mirror_printer_test: Fail # mirrors not supported
+mirror_test: Fail # mirrors not supported
+mirror_type_inference_field2_test: Fail # mirrors not supported
+mirror_type_inference_field_test: Fail # mirrors not supported
+mirror_type_inference_function_test: Fail # mirrors not supported
+mirrors_declarations_filtering_test: Fail # mirrors not supported
+mirrors_used_closure_test: Fail # mirrors not supported
+mirrors_used_metatargets_test: Fail # mirrors not supported
+mirrors_used_native_test: Fail # mirrors not supported
+mirrors_used_warning2_test: Fail # mirrors not supported
+mirrors_used_warning_test: Fail # mirrors not supported
+no_such_method_mirrors_test: Fail # mirrors not supported
+reflect_native_types_test: Fail # mirrors not supported
 
-[ $compiler == dart2js && $runtime == drt && $csp ]
-deferred/load_in_correct_order_test: SkipByDesign # Purposely uses `eval`
+[ $compiler == dart2js && $minified ]
+code_motion_exception_test: Skip # Requires unminified operator names.
+deferred/reflect_multiple_annotations_test: Fail
+deferred/reflect_multiple_default_arg_test: Fail
+mirrors_used_warning_test/minif: Fail, OK # Tests warning that minified code will be broken.
+runtime_type_test: Fail, OK # Tests extected output of Type.toString().
+to_string_test: Fail # Issue 7179.
+
+[ $compiler == dart2js && ($runtime == chrome || $runtime == chromeOnAndroid || $runtime == drt || $runtime == ff || $runtime == safari || $runtime == safarimobilesim) ]
+isolate2_test/01: Fail # Issue 14458.
+
+[ $compiler == dart2js && ($runtime == chrome || $runtime == d8 || $runtime == drt) ]
+bound_closure_interceptor_type_test: Fail, Pass # v8 issue 3084. https://code.google.com/p/v8/issues/detail?id=3084
+
+[ $compiler == dart2js && ($runtime == drt || $runtime == ff || $runtime == jsshell || $runtime == safari) ]
+code_motion_exception_test: Skip # Required V8 specific format of JavaScript errors.
+
+[ $compiler == none && $runtime == vm ]
+invalid_annotation_test/01: MissingCompileTimeError, OK # vm is lazy
+new_from_env_test: SkipByDesign # dart2js only test
+unconditional_dartio_import_test: SkipByDesign # dart2js only test
+
+[ $mode == debug && ($compiler == dartk || $compiler == dartkp) ]
+dummy_compiler_test: Slow, Pass
+recursive_import_test: Slow, Pass
+
+[ $hot_reload || $hot_reload_rollback ]
+dummy_compiler_test: Skip # Running dart2js under frequent reloads is slow.
+recursive_import_test: Skip # Running dart2js under frequent reloads is slow.
+
diff --git a/tests/compiler/dart2js_extra/deferred/deferred_metadata_lib.dart b/tests/compiler/dart2js_extra/deferred/deferred_metadata_lib.dart
new file mode 100644
index 0000000..2bb5573
--- /dev/null
+++ b/tests/compiler/dart2js_extra/deferred/deferred_metadata_lib.dart
@@ -0,0 +1,18 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+class Annotation {
+  final annotationField;
+  const Annotation([this.annotationField]);
+}
+
+class X {
+  @Annotation()
+  int xvalue = 3;
+}
+
+foo() {
+  X x = new X();
+  return x.xvalue++;
+}
diff --git a/tests/compiler/dart2js_extra/deferred/deferred_metadata_test.dart b/tests/compiler/dart2js_extra/deferred/deferred_metadata_test.dart
new file mode 100644
index 0000000..03c1b50
--- /dev/null
+++ b/tests/compiler/dart2js_extra/deferred/deferred_metadata_test.dart
@@ -0,0 +1,23 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// Regression tests to ensure that member metadata is not considered by the
+/// deferred loading algorithm, unless mirrors are available.
+///
+/// This test was failing in the past because the deferred-loading algorithm was
+/// adding entities to the K-element-map after we had closed the world and we
+/// had created the J-element-map.  Later, when we convert the K annotation to
+/// its J conterpart, we couldn't find it in the conversion maps because it was
+/// added too late.
+///
+/// If we add support for mirrors in the future, we just need to ensure that
+/// such K annotations are discovered during resolution, before the deferred
+/// loading phase.
+
+import 'deferred_metadata_lib.dart' deferred as d show foo;
+
+main() async {
+  await d.loadLibrary();
+  print(d.foo());
+}
diff --git a/tests/compiler/dart2js_extra/inline_generic_test.dart b/tests/compiler/dart2js_extra/inline_generic_test.dart
new file mode 100644
index 0000000..a5a8c38
--- /dev/null
+++ b/tests/compiler/dart2js_extra/inline_generic_test.dart
@@ -0,0 +1,23 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// Test that inlining of constructors with `double` as type argument registers
+/// that double is need for checking passed values.
+
+class C<T> implements D<T> {
+  T a;
+
+  C.gen(this.a);
+}
+
+class D<T> {
+  factory D.fact(T a) => new C<T>.gen(a);
+}
+
+main() {
+  new C<double>.gen(0.5); //# 01: ok
+  new D<double>.fact(0.5); //# 02: ok
+  <double>[].add(0.5); //# 03: ok
+  <int, double>{}[0] = 0.5; //# 04: ok
+}
diff --git a/tests/compiler/dart2js_native/dart2js_native.status b/tests/compiler/dart2js_native/dart2js_native.status
index c21b5b3..fb8f6dd 100644
--- a/tests/compiler/dart2js_native/dart2js_native.status
+++ b/tests/compiler/dart2js_native/dart2js_native.status
@@ -5,25 +5,38 @@
 [ $browser ]
 *: Skip
 
-[ $compiler == dart2js && !$dart2js_with_kernel ]
-native_no_such_method_exception4_frog_test: CompileTimeError # Issue 9631
-native_no_such_method_exception5_frog_test: CompileTimeError # Issue 9631
-bound_closure_super_test: Fail
-fake_thing_test: Fail # Issue 13010
-
-[ $compiler == dart2js && $fast_startup && !$dart2js_with_kernel ]
-mirror_intercepted_field_test: Fail # mirrors not supported
-native_mirror_test: Fail # mirrors not supported
-native_no_such_method_exception3_frog_test: Fail # mirrors not supported
-native_no_such_method_exception4_frog_test: Fail # mirrors not supported
-native_no_such_method_exception5_frog_test: Fail # mirrors not supported
-
-[ $compiler == dart2js && $minified && !$dart2js_with_kernel ]
-optimization_hints_test: Fail, OK # Test relies on unminified names.
-
 [ $compiler == dart2js && $runtime == d8 && $system == windows && !$dart2js_with_kernel ]
 compute_this_script_test: Skip # Issue 17458
 
+[ $compiler == dart2js && $checked && $dart2js_with_kernel ]
+bound_closure_super_test: RuntimeError
+fake_thing_test: RuntimeError
+mirror_intercepted_field_test: RuntimeError
+native_library_same_name_used_frog_test: CompileTimeError
+native_mirror_test: RuntimeError
+native_no_such_method_exception4_frog_test: RuntimeError
+native_no_such_method_exception5_frog_test: RuntimeError
+optimization_hints_test: RuntimeError
+subclassing_constructor_1_test: RuntimeError
+subclassing_super_call_test: RuntimeError
+subclassing_super_field_1_test: RuntimeError
+subclassing_super_field_2_test: RuntimeError
+
+[ $compiler == dart2js && $dart2js_with_kernel && $fast_startup ]
+bound_closure_super_test: RuntimeError
+fake_thing_test: RuntimeError
+mirror_intercepted_field_test: RuntimeError
+native_library_same_name_used_frog_test: CompileTimeError
+native_mirror_test: RuntimeError
+native_no_such_method_exception3_frog_test: RuntimeError
+native_no_such_method_exception4_frog_test: RuntimeError
+native_no_such_method_exception5_frog_test: RuntimeError
+optimization_hints_test: RuntimeError
+subclassing_constructor_1_test: RuntimeError
+subclassing_super_call_test: RuntimeError
+subclassing_super_field_1_test: RuntimeError
+subclassing_super_field_2_test: RuntimeError
+
 [ $compiler == dart2js && $dart2js_with_kernel && $host_checked ]
 bound_closure_super_test: RuntimeError
 compute_this_script_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/types.dart': Failed assertion: line 63 pos 12: '!result.isEmpty': is not true.
@@ -53,34 +66,19 @@
 subclassing_super_field_1_test: RuntimeError
 subclassing_super_field_2_test: RuntimeError
 
-[ $compiler == dart2js && $dart2js_with_kernel && $fast_startup ]
-bound_closure_super_test: RuntimeError
-fake_thing_test: RuntimeError
-mirror_intercepted_field_test: RuntimeError
-native_library_same_name_used_frog_test: CompileTimeError
-native_method_inlining_test: RuntimeError
-native_mirror_test: RuntimeError
-native_mixin_field_test: RuntimeError
-native_no_such_method_exception3_frog_test: RuntimeError
-native_no_such_method_exception4_frog_test: RuntimeError
-native_no_such_method_exception5_frog_test: RuntimeError
-optimization_hints_test: RuntimeError
-subclassing_constructor_1_test: RuntimeError
-subclassing_super_call_test: RuntimeError
-subclassing_super_field_1_test: RuntimeError
-subclassing_super_field_2_test: RuntimeError
+[ $compiler == dart2js && !$dart2js_with_kernel ]
+bound_closure_super_test: Fail
+fake_thing_test: Fail # Issue 13010
+native_no_such_method_exception4_frog_test: CompileTimeError # Issue 9631
+native_no_such_method_exception5_frog_test: CompileTimeError # Issue 9631
 
-[ $compiler == dart2js && $dart2js_with_kernel && $checked ]
-bound_closure_super_test: RuntimeError
-fake_thing_test: RuntimeError
-mirror_intercepted_field_test: RuntimeError
-native_library_same_name_used_frog_test: CompileTimeError
-native_mirror_test: RuntimeError
-native_no_such_method_exception4_frog_test: RuntimeError
-native_no_such_method_exception5_frog_test: RuntimeError
-optimization_hints_test: RuntimeError
-subclassing_constructor_1_test: RuntimeError
-subclassing_super_call_test: RuntimeError
-subclassing_super_field_1_test: RuntimeError
-subclassing_super_field_2_test: RuntimeError
+[ $compiler == dart2js && !$dart2js_with_kernel && $fast_startup ]
+mirror_intercepted_field_test: Fail # mirrors not supported
+native_mirror_test: Fail # mirrors not supported
+native_no_such_method_exception3_frog_test: Fail # mirrors not supported
+native_no_such_method_exception4_frog_test: Fail # mirrors not supported
+native_no_such_method_exception5_frog_test: Fail # mirrors not supported
+
+[ $compiler == dart2js && !$dart2js_with_kernel && $minified ]
+optimization_hints_test: Fail, OK # Test relies on unminified names.
 
diff --git a/tests/corelib/corelib.status b/tests/corelib/corelib.status
index 6b3dab8..9c4289e 100644
--- a/tests/corelib/corelib.status
+++ b/tests/corelib/corelib.status
@@ -2,168 +2,20 @@
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
 
-[ $strong ]
-*: SkipByDesign # tests/corelib_strong has the strong mode versions of these tests.
-
-[ $compiler == none || $compiler == precompiler || $compiler == app_jit ]
-compare_to2_test: Fail    # Bug 4018
-symbol_test/01: Fail, Pass # bug 11669
-unicode_test: Fail        # Bug 6706
-
-symbol_reserved_word_test/05: CompileTimeError # bug 20191
-symbol_reserved_word_test/06: RuntimeError # bug 11669
-symbol_reserved_word_test/09: RuntimeError # bug 11669
-symbol_reserved_word_test/12: RuntimeError # bug 11669
-
-symbol_test/none: Fail # bug 11669
-symbol_operator_test/03: Fail # bug 11669
-string_case_test/01: Fail # Bug 18061
-
-[ $compiler == none && ($runtime == vm || $runtime == flutter)]
-string_trimlr_test/02: RuntimeError # Issue 29060
-
-[ $compiler == precompiler || $compiler == app_jit ]
-string_trimlr_test/02: RuntimeError # Issue 29060
-
-[ $compiler == none || $compiler == precompiler || $compiler == app_jit ]
-symbol_reserved_word_test/02: CompileTimeError # bug 20191
-
-symbol_reserved_word_test/04: MissingCompileTimeError # bug 11669, 19972
-symbol_reserved_word_test/07: MissingCompileTimeError # bug 11669, 19972
-symbol_reserved_word_test/10: MissingCompileTimeError # bug 11669, 19972
-
-[ $compiler == dart2js && !$dart2js_with_kernel ]
-double_parse_test/01: Pass, Fail # JS implementations disagree on U+0085 being whitespace.
-int_modulo_arith_test/bignum: RuntimeError # No bigints.
-int_modulo_arith_test/modPow: RuntimeError # No bigints.
-int_parse_radix_test/01: Pass, Fail # JS implementations disagree on U+0085 being whitespace.
-int_parse_radix_test/02: Fail # No bigints.
-integer_to_radix_string_test: RuntimeError # issue 22045
-list_unmodifiable_test: Pass, RuntimeError # Issue 28712
-symbol_reserved_word_test/02: CompileTimeError # bug 20191
-symbol_reserved_word_test/03: RuntimeError # bug 19972, new Symbol('void') should be allowed.
-symbol_reserved_word_test/05: Crash # bug 20191
-
-[ $compiler == dart2js && $fast_startup ]
-apply3_test: Fail # mirrors not supported
-
-[ ($compiler == none || $compiler == precompiler || $compiler == app_jit) && $runtime != drt ]
-symbol_test/02: MissingCompileTimeError # bug 11669
-symbol_test/03: MissingCompileTimeError # bug 11669
-
-# Firefox takes advantage of the ECMAScript number parsing cop-out clause
-# (presumably added to allow Mozilla's existing behavior)
-# and only looks at the first 20 significant digits.
-# The Dart VM and the other ECMAScript implementations follow the correct
-# IEEE-754 rounding algorithm.
-[ $runtime == ff || $runtime == jsshell ]
-double_parse_test/02: Fail, OK
-
-[ $runtime == safari || $runtime == safarimobilesim ]
-double_round3_test: RuntimeError
-double_round_to_double2_test: Pass, Fail, OK
-string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
-
-[ $runtime == ff ]
-double_round3_test: Pass, Fail, OK # Fails on ff 34, passes on ff 35. Runtime rounds 0.49999999999999994 to 1.
-double_round_to_double2_test: Pass, Fail, OK # Fails on ff 34, passes on ff 35. Runtime rounds 0.49999999999999994 to 1.
-
-[ $runtime == jsshell ]
-string_case_test/01: RuntimeError # jsshell does not recognize character 223 aka \xdf
-unicode_test: RuntimeError # jsshell does not recognize character 223 aka \xdf
-
-[ $compiler == dart2js && $runtime == drt && $csp && $minified ]
-core_runtime_types_test: Pass, Fail # Issue 27913
-
-[ $compiler == dart2js && !$dart2js_with_kernel ]
-error_stack_trace1_test: RuntimeError # Issue 12399
-hash_set_test/01: RuntimeError # Issue 11551
-integer_to_string_test/01: RuntimeError # Issue 1533
-iterable_return_type_test/01: RuntimeError # Issue 20085
-iterable_return_type_test/02: RuntimeError # Dart2js does not support Uint64*.
-iterable_to_list_test/01: RuntimeError # Issue 26501
-
-big_integer_*: Skip # VM specific test.
-bit_twiddling_bigint_test: RuntimeError # Requires bigint support.
-compare_to2_test: RuntimeError, OK    # Requires bigint support.
-string_base_vm_test: RuntimeError, OK # VM specific test.
-nan_infinity_test/01: Fail # Issue 11551
-regress_r21715_test: RuntimeError # Requires bigint support.
+[ $compiler == dart2analyzer ]
+duration2_test: StaticWarning, OK # Test generates error on purpose.
+error_stack_trace_test: StaticWarning, OK # Test generates errors on purpose.
+hash_set_type_check_test: StaticWarning, OK # Tests failing type tests.
+int_parse_radix_bad_handler_test: Fail
+iterable_element_at_test: StaticWarning, OK # Test generates errors on purpose.
+num_clamp_test: StaticWarning, OK # Test generates errors on purpose.
+string_test: StaticWarning, OK # Test generates error on purpose.
 
 [ $compiler == dart2js ]
 regexp/pcre_test: Pass, Slow # Issue 21593
 
-[ $compiler == dart2js && $runtime == none ]
-*: Fail, Pass # TODO(ahe): Triage these tests.
-
-[ $compiler == dart2js && $runtime == chromeOnAndroid ]
-list_as_map_test: Pass, Slow # TODO(kasperl): Please triage.
-string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
-
-[ $compiler == dart2js && $runtime == drt ]
-string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
-
-[ $compiler == dart2js && $runtime == safarimobilesim ]
-string_split_test: RuntimeError # Issue 21431
-
-[ $compiler == dart2js && $runtime == safarimobilesim ]
-list_test/01: Fail # Safari bug: Array(-2) seen as dead code.
-string_trimlr_test/01: Fail
-string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
-
-# Analyzer's implementation of fromEnvironment assumes that undefined
-# environment variables have an unspecified value (rather than being
-# null) because it is expected that the user will supply a value when
-# the code is run.  This means that it produces slightly different
-# error messages than the VM and Dart2js.
-[ $compiler == dart2analyzer && $checked ]
-from_environment_const_type_undefined_test/09: CompileTimeError
-from_environment_const_type_undefined_test/11: CompileTimeError
-from_environment_const_type_undefined_test/12: CompileTimeError
-from_environment_const_type_undefined_test/13: CompileTimeError
-from_environment_const_type_undefined_test/14: CompileTimeError
-from_environment_const_type_undefined_test/16: CompileTimeError
-
-[ $compiler == dart2analyzer ]
-int_parse_radix_bad_handler_test: fail
-hash_set_type_check_test: StaticWarning, OK # Tests failing type tests.
-error_stack_trace_test: StaticWarning, OK # Test generates errors on purpose.
-iterable_element_at_test: StaticWarning, OK # Test generates errors on purpose.
-num_clamp_test: StaticWarning, OK # Test generates errors on purpose.
-string_test: StaticWarning, OK # Test generates error on purpose.
-duration2_test: StaticWarning, OK # Test generates error on purpose.
-
-[ $compiler == dart2analyzer && $builder_tag == strong ]
-*: Skip # Issue 28649
-
-[ $system == windows && $arch == x64 ]
-stopwatch_test: Skip  # Flaky test due to expected performance behaviour.
-
-[ $runtime != d8 && $runtime != vm && $runtime != dart_precompiled ]
-regexp/*: Skip # The regexp tests are not verified to work on non d8/vm platforms yet.
-
-[ $runtime == d8 ]
-uri_base_test: RuntimeError # d8 preamble uses custom URI scheme "org-dartlang-d8-preamble:".
-
-[ $runtime == vm || $runtime == dart_precompiled || $runtime == flutter]
-regexp/global_test: Skip # Timeout. Issue 21709 and 21708
-regexp/pcre_test: Pass, Slow, Timeout # Issues 21593 and 22008
-regexp/capture-3: Pass, Slow, Timeout # Issues 21593 and 22008
-
-[ $runtime != vm && $runtime != dart_precompiled && $compiler != dart2analyzer]
-data_resource_test: RuntimeError # Issue 23825 (not implemented yet).
-file_resource_test: Skip, OK # VM specific test, uses dart:io.
-http_resource_test: Skip, OK # VM specific test, uses dart:io.
-
-[ $compiler == dart2js && !$browser ]
-package_resource_test: RuntimeError # Issue 26842
-
-[ $mode == debug ]
-regexp/pcre_test: Pass, Slow # Timeout. Issue 22008
-
-[ ($runtime == vm || $runtime == dart_precompiled) && $arch == simarmv5te ]
-int_parse_radix_test/*: Pass, Slow
-big_integer_parsed_mul_div_vm_test: Pass, Slow
+[ $compiler == dartkp ]
+apply3_test: CompileTimeError # No support for mirrors
 
 [ $compiler == precompiler ]
 apply3_test: SkipByDesign # Imports dart:mirrors
@@ -171,85 +23,18 @@
 big_integer_parsed_mul_div_vm_test: Pass, Timeout # --no_intrinsify
 int_parse_radix_test: Pass, Timeout # --no_intrinsify
 
-[ $compiler == precompiler || $compiler == dartkp ]
-regexp/stack-overflow_test: RuntimeError, OK # Smaller limit with irregex interpreter
+[ $mode == debug ]
+regexp/pcre_test: Pass, Slow # Timeout. Issue 22008
 
-[ $compiler == precompiler || $compiler == app_jit ]
-data_resource_test: Skip # Resolve URI not supported yet in product mode.
-package_resource_test: Skip # Resolve URI not supported yet in product mode.
-file_resource_test: Skip # Resolve URI not supported yet in product mode.
-http_resource_test: Skip # Resolve URI not supported yet in product mode.
+[ $runtime == d8 ]
+uri_base_test: RuntimeError # d8 preamble uses custom URI scheme "org-dartlang-d8-preamble:".
 
-[ $arch == simdbc || $arch == simdbc64 ]
-regexp/stack-overflow_test: RuntimeError, OK # Smaller limit with irregex interpreter
-
-[ $hot_reload || $hot_reload_rollback ]
-big_integer_parsed_mul_div_vm_test: Pass, Slow # Slow.
-big_integer_huge_mul_vm_test: Pass, Slow # Slow
-
-[ $compiler == dart2js && !$dart2js_with_kernel ]
-symbol_reserved_word_test/04: MissingCompileTimeError
-symbol_reserved_word_test/07: MissingCompileTimeError
-symbol_reserved_word_test/10: MissingCompileTimeError
-
-[ ($compiler == dartk || $compiler == dartkp) && ($runtime == vm || $runtime == dart_precompiled) ]
-bool_from_environment2_test/01: MissingCompileTimeError
-bool_from_environment2_test/02: MissingCompileTimeError
-bool_from_environment2_test/03: MissingCompileTimeError
-bool_from_environment2_test/04: MissingCompileTimeError
-compare_to2_test: RuntimeError
-int_from_environment3_test/01: MissingCompileTimeError
-int_from_environment3_test/02: MissingCompileTimeError
-int_from_environment3_test/03: MissingCompileTimeError
-int_from_environment3_test/04: MissingCompileTimeError
-string_case_test/01: RuntimeError
-string_from_environment3_test/01: MissingCompileTimeError
-string_from_environment3_test/02: MissingCompileTimeError
-string_from_environment3_test/03: MissingCompileTimeError
-string_from_environment3_test/04: MissingCompileTimeError
-string_trimlr_test/02: RuntimeError
-symbol_operator_test/03: RuntimeError
-symbol_reserved_word_test/04: MissingCompileTimeError
-symbol_reserved_word_test/06: RuntimeError
-symbol_reserved_word_test/07: MissingCompileTimeError
-symbol_reserved_word_test/09: RuntimeError
-symbol_reserved_word_test/10: MissingCompileTimeError
-symbol_reserved_word_test/12: RuntimeError
-symbol_test/01: MissingCompileTimeError
-symbol_test/02: MissingCompileTimeError
-symbol_test/03: MissingCompileTimeError
-symbol_test/none: RuntimeError
-unicode_test: Fail # Bug 6706
-
-# dartk: checked mode failures
-[ $checked && ($compiler == dartk || $compiler == dartkp) ]
-symbol_test/01: Pass
-symbol_test/02: Pass
-from_environment_const_type_test/02: MissingCompileTimeError
-from_environment_const_type_test/03: MissingCompileTimeError
-from_environment_const_type_test/04: MissingCompileTimeError
-from_environment_const_type_test/06: MissingCompileTimeError
-from_environment_const_type_test/07: MissingCompileTimeError
-from_environment_const_type_test/08: MissingCompileTimeError
-from_environment_const_type_test/09: MissingCompileTimeError
-from_environment_const_type_test/11: MissingCompileTimeError
-from_environment_const_type_test/12: MissingCompileTimeError
-from_environment_const_type_test/13: MissingCompileTimeError
-from_environment_const_type_test/14: MissingCompileTimeError
-from_environment_const_type_test/16: MissingCompileTimeError
-from_environment_const_type_undefined_test/02: MissingCompileTimeError
-from_environment_const_type_undefined_test/03: MissingCompileTimeError
-from_environment_const_type_undefined_test/04: MissingCompileTimeError
-from_environment_const_type_undefined_test/06: MissingCompileTimeError
-from_environment_const_type_undefined_test/07: MissingCompileTimeError
-from_environment_const_type_undefined_test/08: MissingCompileTimeError
-
-[ $compiler == dartkp ]
-apply3_test: CompileTimeError # No support for mirrors
+[ $runtime == ff ]
+double_round3_test: Pass, Fail, OK # Fails on ff 34, passes on ff 35. Runtime rounds 0.49999999999999994 to 1.
+double_round_to_double2_test: Pass, Fail, OK # Fails on ff 34, passes on ff 35. Runtime rounds 0.49999999999999994 to 1.
 
 [ $runtime == flutter ]
 apply3_test: CompileTimeError # No support for mirrors
-
 bool_from_environment_test: Fail # Flutter Issue 9111
 format_exception_test: RuntimeError # Flutter Issue 9111
 from_environment_const_type_test/01: Fail # Flutter Issue 9111
@@ -276,6 +61,164 @@
 string_from_environment_test: Fail # Flutter Issue 9111
 string_trimlr_test/02: RuntimeError # Flutter Issue 9111
 
+[ $runtime == jsshell ]
+string_case_test/01: RuntimeError # jsshell does not recognize character 223 aka \xdf
+unicode_test: RuntimeError # jsshell does not recognize character 223 aka \xdf
+
+[ $strong ]
+*: SkipByDesign # tests/corelib_strong has the strong mode versions of these tests.
+
+[ $arch == simarmv5te && ($runtime == dart_precompiled || $runtime == vm) ]
+big_integer_parsed_mul_div_vm_test: Pass, Slow
+int_parse_radix_test/*: Pass, Slow
+
+[ $arch == x64 && $system == windows ]
+stopwatch_test: Skip # Flaky test due to expected performance behaviour.
+
+[ $builder_tag == strong && $compiler == dart2analyzer ]
+*: Skip # Issue 28649
+
+# Analyzer's implementation of fromEnvironment assumes that undefined
+# environment variables have an unspecified value (rather than being
+# null) because it is expected that the user will supply a value when
+# the code is run.  This means that it produces slightly different
+# error messages than the VM and Dart2js.
+[ $compiler == dart2analyzer && $checked ]
+from_environment_const_type_undefined_test/09: CompileTimeError
+from_environment_const_type_undefined_test/11: CompileTimeError
+from_environment_const_type_undefined_test/12: CompileTimeError
+from_environment_const_type_undefined_test/13: CompileTimeError
+from_environment_const_type_undefined_test/14: CompileTimeError
+from_environment_const_type_undefined_test/16: CompileTimeError
+
+[ $compiler != dart2analyzer && $runtime != dart_precompiled && $runtime != vm ]
+data_resource_test: RuntimeError # Issue 23825 (not implemented yet).
+file_resource_test: Skip, OK # VM specific test, uses dart:io.
+http_resource_test: Skip, OK # VM specific test, uses dart:io.
+
+[ $compiler == dart2js && $runtime == chromeOnAndroid ]
+list_as_map_test: Pass, Slow # TODO(kasperl): Please triage.
+string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
+
+[ $compiler == dart2js && $runtime == drt ]
+string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
+
+[ $compiler == dart2js && $runtime == drt && $csp && $minified ]
+core_runtime_types_test: Pass, Fail # Issue 27913
+
+[ $compiler == dart2js && $runtime == none ]
+*: Fail, Pass # TODO(ahe): Triage these tests.
+
+[ $compiler == dart2js && $runtime == safarimobilesim ]
+list_test/01: Fail # Safari bug: Array(-2) seen as dead code.
+string_split_test: RuntimeError # Issue 21431
+string_trimlr_test/01: Fail
+string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
+
+[ $compiler == dart2js && !$browser ]
+package_resource_test: RuntimeError # Issue 26842
+
+[ $compiler == dart2js && $checked && $dart2js_with_kernel ]
+apply3_test: RuntimeError
+big_integer_arith_vm_test/add: RuntimeError
+big_integer_arith_vm_test/div: RuntimeError
+big_integer_arith_vm_test/gcd: RuntimeError
+big_integer_arith_vm_test/mod: RuntimeError
+big_integer_arith_vm_test/modInv: RuntimeError
+big_integer_arith_vm_test/modPow: RuntimeError
+big_integer_arith_vm_test/mul: RuntimeError
+big_integer_arith_vm_test/negate: RuntimeError
+big_integer_arith_vm_test/none: RuntimeError
+big_integer_arith_vm_test/overflow: RuntimeError
+big_integer_arith_vm_test/shift: RuntimeError
+big_integer_arith_vm_test/sub: RuntimeError
+big_integer_arith_vm_test/trunDiv: RuntimeError
+big_integer_parsed_arith_vm_test: RuntimeError
+big_integer_parsed_div_rem_vm_test: RuntimeError
+big_integer_parsed_mul_div_vm_test: RuntimeError
+bit_twiddling_bigint_test: RuntimeError
+compare_to2_test: RuntimeError
+double_parse_test/01: RuntimeError
+from_environment_const_type_test/02: MissingCompileTimeError
+from_environment_const_type_test/03: MissingCompileTimeError
+from_environment_const_type_test/04: MissingCompileTimeError
+from_environment_const_type_test/06: MissingCompileTimeError
+from_environment_const_type_test/07: MissingCompileTimeError
+from_environment_const_type_test/08: MissingCompileTimeError
+from_environment_const_type_test/09: MissingCompileTimeError
+from_environment_const_type_test/11: MissingCompileTimeError
+from_environment_const_type_test/12: MissingCompileTimeError
+from_environment_const_type_test/13: MissingCompileTimeError
+from_environment_const_type_test/14: MissingCompileTimeError
+from_environment_const_type_test/16: MissingCompileTimeError
+from_environment_const_type_undefined_test/02: MissingCompileTimeError
+from_environment_const_type_undefined_test/03: MissingCompileTimeError
+from_environment_const_type_undefined_test/04: MissingCompileTimeError
+from_environment_const_type_undefined_test/06: MissingCompileTimeError
+from_environment_const_type_undefined_test/07: MissingCompileTimeError
+from_environment_const_type_undefined_test/08: MissingCompileTimeError
+hash_set_test/01: RuntimeError
+int_modulo_arith_test/bignum: RuntimeError
+int_modulo_arith_test/modPow: RuntimeError
+int_parse_radix_test/01: RuntimeError
+int_parse_radix_test/02: RuntimeError
+integer_to_radix_string_test: RuntimeError
+integer_to_string_test/01: RuntimeError
+iterable_return_type_test/01: RuntimeError
+iterable_return_type_test/02: RuntimeError
+iterable_to_list_test/01: RuntimeError
+map_test: Crash # tests/corelib/map_test.dart:866:7: Internal problem: Unhandled Null in installDefaultConstructor.
+nan_infinity_test/01: RuntimeError
+regress_r21715_test: RuntimeError
+string_base_vm_test: RuntimeError
+symbol_reserved_word_test/03: RuntimeError
+symbol_reserved_word_test/04: MissingCompileTimeError
+symbol_reserved_word_test/07: MissingCompileTimeError
+symbol_reserved_word_test/10: MissingCompileTimeError
+symbol_test/02: MissingCompileTimeError
+symbol_test/03: MissingCompileTimeError
+
+[ $compiler == dart2js && $dart2js_with_kernel && $fast_startup ]
+big_integer_arith_vm_test/add: RuntimeError
+big_integer_arith_vm_test/div: RuntimeError
+big_integer_arith_vm_test/gcd: RuntimeError
+big_integer_arith_vm_test/mod: RuntimeError
+big_integer_arith_vm_test/modInv: RuntimeError
+big_integer_arith_vm_test/modPow: RuntimeError
+big_integer_arith_vm_test/mul: RuntimeError
+big_integer_arith_vm_test/negate: RuntimeError
+big_integer_arith_vm_test/none: RuntimeError
+big_integer_arith_vm_test/overflow: RuntimeError
+big_integer_arith_vm_test/shift: RuntimeError
+big_integer_arith_vm_test/sub: RuntimeError
+big_integer_arith_vm_test/trunDiv: RuntimeError
+big_integer_parsed_arith_vm_test: RuntimeError
+big_integer_parsed_div_rem_vm_test: RuntimeError
+big_integer_parsed_mul_div_vm_test: RuntimeError
+bit_twiddling_bigint_test: RuntimeError
+compare_to2_test: RuntimeError
+double_parse_test/01: RuntimeError
+hash_set_test/01: RuntimeError
+int_modulo_arith_test/bignum: RuntimeError
+int_modulo_arith_test/modPow: RuntimeError
+int_parse_radix_test/01: RuntimeError
+int_parse_radix_test/02: RuntimeError
+integer_to_radix_string_test: RuntimeError
+integer_to_string_test/01: RuntimeError
+iterable_return_type_test/01: RuntimeError
+iterable_return_type_test/02: RuntimeError
+iterable_to_list_test/01: RuntimeError
+map_test: Crash # tests/corelib/map_test.dart:866:7: Internal problem: Unhandled Null in installDefaultConstructor.
+nan_infinity_test/01: RuntimeError
+regress_r21715_test: RuntimeError
+string_base_vm_test: RuntimeError
+symbol_reserved_word_test/03: RuntimeError
+symbol_reserved_word_test/04: MissingCompileTimeError
+symbol_reserved_word_test/07: MissingCompileTimeError
+symbol_reserved_word_test/10: MissingCompileTimeError
+symbol_test/02: MissingCompileTimeError
+symbol_test/03: MissingCompileTimeError
+
 [ $compiler == dart2js && $dart2js_with_kernel && $host_checked ]
 apply3_test: RuntimeError
 big_integer_arith_vm_test/add: RuntimeError
@@ -364,68 +307,48 @@
 symbol_test/02: MissingCompileTimeError
 symbol_test/03: MissingCompileTimeError
 
-[ $compiler == dart2js && $dart2js_with_kernel && $fast_startup ]
-big_integer_arith_vm_test/add: RuntimeError
-big_integer_arith_vm_test/div: RuntimeError
-big_integer_arith_vm_test/gcd: RuntimeError
-big_integer_arith_vm_test/mod: RuntimeError
-big_integer_arith_vm_test/modInv: RuntimeError
-big_integer_arith_vm_test/modPow: RuntimeError
-big_integer_arith_vm_test/mul: RuntimeError
-big_integer_arith_vm_test/negate: RuntimeError
-big_integer_arith_vm_test/none: RuntimeError
-big_integer_arith_vm_test/overflow: RuntimeError
-big_integer_arith_vm_test/shift: RuntimeError
-big_integer_arith_vm_test/sub: RuntimeError
-big_integer_arith_vm_test/trunDiv: RuntimeError
-big_integer_parsed_arith_vm_test: RuntimeError
-big_integer_parsed_div_rem_vm_test: RuntimeError
-big_integer_parsed_mul_div_vm_test: RuntimeError
-bit_twiddling_bigint_test: RuntimeError
-compare_to2_test: RuntimeError
-double_parse_test/01: RuntimeError
-hash_set_test/01: RuntimeError
-int_modulo_arith_test/bignum: RuntimeError
-int_modulo_arith_test/modPow: RuntimeError
-int_parse_radix_test/01: RuntimeError
-int_parse_radix_test/02: RuntimeError
-integer_to_radix_string_test: RuntimeError
-integer_to_string_test/01: RuntimeError
-iterable_return_type_test/01: RuntimeError
-iterable_return_type_test/02: RuntimeError
-iterable_to_list_test/01: RuntimeError
-map_test: Crash # tests/corelib/map_test.dart:866:7: Internal problem: Unhandled Null in installDefaultConstructor.
-nan_infinity_test/01: RuntimeError
-regress_r21715_test: RuntimeError
-string_base_vm_test: RuntimeError
-symbol_reserved_word_test/03: RuntimeError
+[ $compiler == dart2js && !$dart2js_with_kernel ]
+big_integer_*: Skip # VM specific test.
+bit_twiddling_bigint_test: RuntimeError # Requires bigint support.
+compare_to2_test: RuntimeError, OK # Requires bigint support.
+double_parse_test/01: Pass, Fail # JS implementations disagree on U+0085 being whitespace.
+error_stack_trace1_test: RuntimeError # Issue 12399
+hash_set_test/01: RuntimeError # Issue 11551
+int_modulo_arith_test/bignum: RuntimeError # No bigints.
+int_modulo_arith_test/modPow: RuntimeError # No bigints.
+int_parse_radix_test/01: Pass, Fail # JS implementations disagree on U+0085 being whitespace.
+int_parse_radix_test/02: Fail # No bigints.
+integer_to_radix_string_test: RuntimeError # issue 22045
+integer_to_string_test/01: RuntimeError # Issue 1533
+iterable_return_type_test/01: RuntimeError # Issue 20085
+iterable_return_type_test/02: RuntimeError # Dart2js does not support Uint64*.
+iterable_to_list_test/01: RuntimeError # Issue 26501
+list_unmodifiable_test: Pass, RuntimeError # Issue 28712
+nan_infinity_test/01: Fail # Issue 11551
+regress_r21715_test: RuntimeError # Requires bigint support.
+string_base_vm_test: RuntimeError, OK # VM specific test.
+symbol_reserved_word_test/02: CompileTimeError # bug 20191
+symbol_reserved_word_test/03: RuntimeError # bug 19972, new Symbol('void') should be allowed.
 symbol_reserved_word_test/04: MissingCompileTimeError
+symbol_reserved_word_test/05: Crash # bug 20191
 symbol_reserved_word_test/07: MissingCompileTimeError
 symbol_reserved_word_test/10: MissingCompileTimeError
-symbol_test/02: MissingCompileTimeError
-symbol_test/03: MissingCompileTimeError
 
-[ $compiler == dart2js && $dart2js_with_kernel && $checked ]
-apply3_test: RuntimeError
-big_integer_arith_vm_test/add: RuntimeError
-big_integer_arith_vm_test/div: RuntimeError
-big_integer_arith_vm_test/gcd: RuntimeError
-big_integer_arith_vm_test/mod: RuntimeError
-big_integer_arith_vm_test/modInv: RuntimeError
-big_integer_arith_vm_test/modPow: RuntimeError
-big_integer_arith_vm_test/mul: RuntimeError
-big_integer_arith_vm_test/negate: RuntimeError
-big_integer_arith_vm_test/none: RuntimeError
-big_integer_arith_vm_test/overflow: RuntimeError
-big_integer_arith_vm_test/shift: RuntimeError
-big_integer_arith_vm_test/sub: RuntimeError
-big_integer_arith_vm_test/trunDiv: RuntimeError
-big_integer_parsed_arith_vm_test: RuntimeError
-big_integer_parsed_div_rem_vm_test: RuntimeError
-big_integer_parsed_mul_div_vm_test: RuntimeError
-bit_twiddling_bigint_test: RuntimeError
-compare_to2_test: RuntimeError
-double_parse_test/01: RuntimeError
+[ $compiler == dart2js && $fast_startup ]
+apply3_test: Fail # mirrors not supported
+
+[ $compiler == none && ($runtime == flutter || $runtime == vm) ]
+string_trimlr_test/02: RuntimeError # Issue 29060
+
+[ $runtime != d8 && $runtime != dart_precompiled && $runtime != vm ]
+regexp/*: Skip # The regexp tests are not verified to work on non d8/vm platforms yet.
+
+[ $runtime != drt && ($compiler == app_jit || $compiler == none || $compiler == precompiler) ]
+symbol_test/02: MissingCompileTimeError # bug 11669
+symbol_test/03: MissingCompileTimeError # bug 11669
+
+# dartk: checked mode failures
+[ $checked && ($compiler == dartk || $compiler == dartkp) ]
 from_environment_const_type_test/02: MissingCompileTimeError
 from_environment_const_type_test/03: MissingCompileTimeError
 from_environment_const_type_test/04: MissingCompileTimeError
@@ -444,23 +367,86 @@
 from_environment_const_type_undefined_test/06: MissingCompileTimeError
 from_environment_const_type_undefined_test/07: MissingCompileTimeError
 from_environment_const_type_undefined_test/08: MissingCompileTimeError
-hash_set_test/01: RuntimeError
-int_modulo_arith_test/bignum: RuntimeError
-int_modulo_arith_test/modPow: RuntimeError
-int_parse_radix_test/01: RuntimeError
-int_parse_radix_test/02: RuntimeError
-integer_to_radix_string_test: RuntimeError
-integer_to_string_test/01: RuntimeError
-iterable_return_type_test/01: RuntimeError
-iterable_return_type_test/02: RuntimeError
-iterable_to_list_test/01: RuntimeError
-map_test: Crash # tests/corelib/map_test.dart:866:7: Internal problem: Unhandled Null in installDefaultConstructor.
-nan_infinity_test/01: RuntimeError
-regress_r21715_test: RuntimeError
-string_base_vm_test: RuntimeError
-symbol_reserved_word_test/03: RuntimeError
+symbol_test/01: Pass
+symbol_test/02: Pass
+
+[ ($compiler == dartk || $compiler == dartkp) && ($runtime == dart_precompiled || $runtime == vm) ]
+bool_from_environment2_test/01: MissingCompileTimeError
+bool_from_environment2_test/02: MissingCompileTimeError
+bool_from_environment2_test/03: MissingCompileTimeError
+bool_from_environment2_test/04: MissingCompileTimeError
+compare_to2_test: RuntimeError
+int_from_environment3_test/01: MissingCompileTimeError
+int_from_environment3_test/02: MissingCompileTimeError
+int_from_environment3_test/03: MissingCompileTimeError
+int_from_environment3_test/04: MissingCompileTimeError
+string_case_test/01: RuntimeError
+string_from_environment3_test/01: MissingCompileTimeError
+string_from_environment3_test/02: MissingCompileTimeError
+string_from_environment3_test/03: MissingCompileTimeError
+string_from_environment3_test/04: MissingCompileTimeError
+string_trimlr_test/02: RuntimeError
+symbol_operator_test/03: RuntimeError
 symbol_reserved_word_test/04: MissingCompileTimeError
+symbol_reserved_word_test/06: RuntimeError
 symbol_reserved_word_test/07: MissingCompileTimeError
+symbol_reserved_word_test/09: RuntimeError
 symbol_reserved_word_test/10: MissingCompileTimeError
+symbol_reserved_word_test/12: RuntimeError
+symbol_test/01: MissingCompileTimeError
 symbol_test/02: MissingCompileTimeError
 symbol_test/03: MissingCompileTimeError
+symbol_test/none: RuntimeError
+unicode_test: Fail # Bug 6706
+
+[ $arch == simdbc || $arch == simdbc64 ]
+regexp/stack-overflow_test: RuntimeError, OK # Smaller limit with irregex interpreter
+
+[ $compiler == app_jit || $compiler == none || $compiler == precompiler ]
+compare_to2_test: Fail # Bug 4018
+string_case_test/01: Fail # Bug 18061
+symbol_operator_test/03: Fail # bug 11669
+symbol_reserved_word_test/02: CompileTimeError # bug 20191
+symbol_reserved_word_test/04: MissingCompileTimeError # bug 11669, 19972
+symbol_reserved_word_test/05: CompileTimeError # bug 20191
+symbol_reserved_word_test/06: RuntimeError # bug 11669
+symbol_reserved_word_test/07: MissingCompileTimeError # bug 11669, 19972
+symbol_reserved_word_test/09: RuntimeError # bug 11669
+symbol_reserved_word_test/10: MissingCompileTimeError # bug 11669, 19972
+symbol_reserved_word_test/12: RuntimeError # bug 11669
+symbol_test/01: Fail, Pass # bug 11669
+symbol_test/none: Fail # bug 11669
+unicode_test: Fail # Bug 6706
+
+[ $compiler == app_jit || $compiler == precompiler ]
+data_resource_test: Skip # Resolve URI not supported yet in product mode.
+file_resource_test: Skip # Resolve URI not supported yet in product mode.
+http_resource_test: Skip # Resolve URI not supported yet in product mode.
+package_resource_test: Skip # Resolve URI not supported yet in product mode.
+string_trimlr_test/02: RuntimeError # Issue 29060
+
+[ $compiler == dartkp || $compiler == precompiler ]
+regexp/stack-overflow_test: RuntimeError, OK # Smaller limit with irregex interpreter
+
+[ $runtime == dart_precompiled || $runtime == flutter || $runtime == vm ]
+regexp/capture-3: Pass, Slow, Timeout # Issues 21593 and 22008
+regexp/global_test: Skip # Timeout. Issue 21709 and 21708
+regexp/pcre_test: Pass, Slow, Timeout # Issues 21593 and 22008
+
+# Firefox takes advantage of the ECMAScript number parsing cop-out clause
+# (presumably added to allow Mozilla's existing behavior)
+# and only looks at the first 20 significant digits.
+# The Dart VM and the other ECMAScript implementations follow the correct
+# IEEE-754 rounding algorithm.
+[ $runtime == ff || $runtime == jsshell ]
+double_parse_test/02: Fail, OK
+
+[ $runtime == safari || $runtime == safarimobilesim ]
+double_round3_test: RuntimeError
+double_round_to_double2_test: Pass, Fail, OK
+string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
+
+[ $hot_reload || $hot_reload_rollback ]
+big_integer_huge_mul_vm_test: Pass, Slow # Slow
+big_integer_parsed_mul_div_vm_test: Pass, Slow # Slow.
+
diff --git a/tests/corelib_2/corelib_2.status b/tests/corelib_2/corelib_2.status
index 6474974..ccb021f 100644
--- a/tests/corelib_2/corelib_2.status
+++ b/tests/corelib_2/corelib_2.status
@@ -2,298 +2,125 @@
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
 
-# All static_tests have expected compile-time errors.
-[ $strong && $compiler != dart2analyzer && $compiler != dartdevc && $compiler != dartk && $compiler != dartkp ]
-core_runtime_types_static_test: MissingCompileTimeError
-splay_tree_test/01: MissingCompileTimeError
-splay_tree_test/02: MissingCompileTimeError
-string_base_vm_static_test: MissingCompileTimeError
-string_replace_static_test: MissingCompileTimeError
-string_static_test: MissingCompileTimeError
-
-[ !$strong && $compiler != dartdevc && $checked ]
-core_runtime_types_static_test: MissingCompileTimeError
-splay_tree_test/01: MissingCompileTimeError
-splay_tree_test/02: MissingCompileTimeError
-string_base_vm_static_test: MissingCompileTimeError
-string_replace_static_test: MissingCompileTimeError
-string_static_test: MissingCompileTimeError
-
-[ !$checked && !$strong && $compiler != dartdevc && $runtime != none ]
-null_nosuchmethod_test: RuntimeError # needs Dart 2 or checked mode
-
-[ $compiler != dartdevc && $runtime != none && $compiler != dartk && $compiler != dartkp ]
-map_keys2_test: RuntimeError # needs Dart 2 is checks
-
-[ (!$checked && !$strong && $runtime == vm) || (!$checked && $compiler == dart2js) || $compiler == precompiler ]
-int_parse_radix_test/badTypes: RuntimeError # wrong exception returned
-
-[ ($compiler == dart2analyzer && $strong) || $compiler == dartdevc ]
-iterable_reduce_test/01: CompileTimeError
-
-double_parse_test/01: Skip # Temporarily disable the following tests until we figure out why they started failing.
-double_parse_test/02: Skip # Temporarily disable the following tests until we figure out why they started failing.
-double_parse_test/03: Skip # Temporarily disable the following tests until we figure out why they started failing.
-double_parse_test/04: Skip # Temporarily disable the following tests until we figure out why they started failing.
-double_parse_test/none: Skip # Temporarily disable the following tests until we figure out why they started failing.
-
-[ !$strong && !$checked ]
-core_runtime_types_static_test: MissingCompileTimeError
-splay_tree_test/01: MissingCompileTimeError
-splay_tree_test/02: MissingCompileTimeError
-string_base_vm_static_test: MissingCompileTimeError
-string_replace_static_test: MissingCompileTimeError
-string_static_test: MissingCompileTimeError
-
-[ $compiler == none || $compiler == app_jit || $compiler == precompiler || $compiler == dart2js ]
+[ $compiler == dart2analyzer ]
 int_parse_radix_bad_handler_test: MissingCompileTimeError
+iterable_element_at_test/static: Pass
 
-[ $compiler == dart2analyzer && !$strong ]
-symbol_reserved_word_test/05: MissingCompileTimeError # Issue 30245
-
-[ $compiler != dartdevc && $compiler != dartk && $compiler != dartkp && ($compiler != dart2analyzer || !$strong) ]
-iterable_mapping_test/01: MissingCompileTimeError
-
-[ $compiler == dart2analyzer && !$strong && !$checked ]
-from_environment_const_type_test/02: MissingCompileTimeError
-from_environment_const_type_test/03: MissingCompileTimeError
-from_environment_const_type_test/04: MissingCompileTimeError
-from_environment_const_type_test/06: MissingCompileTimeError
-from_environment_const_type_test/07: MissingCompileTimeError
-from_environment_const_type_test/08: MissingCompileTimeError
-from_environment_const_type_test/09: MissingCompileTimeError
-from_environment_const_type_test/11: MissingCompileTimeError
-from_environment_const_type_test/12: MissingCompileTimeError
-from_environment_const_type_test/13: MissingCompileTimeError
-from_environment_const_type_test/14: MissingCompileTimeError
-from_environment_const_type_test/16: MissingCompileTimeError
-from_environment_const_type_undefined_test/02: MissingCompileTimeError
-from_environment_const_type_undefined_test/03: MissingCompileTimeError
-from_environment_const_type_undefined_test/04: MissingCompileTimeError
-from_environment_const_type_undefined_test/06: MissingCompileTimeError
-from_environment_const_type_undefined_test/07: MissingCompileTimeError
-from_environment_const_type_undefined_test/08: MissingCompileTimeError
-from_environment_const_type_undefined_test/09: MissingCompileTimeError
-from_environment_const_type_undefined_test/11: MissingCompileTimeError
-from_environment_const_type_undefined_test/12: MissingCompileTimeError
-from_environment_const_type_undefined_test/13: MissingCompileTimeError
-from_environment_const_type_undefined_test/14: MissingCompileTimeError
-from_environment_const_type_undefined_test/16: MissingCompileTimeError
-
-[ $compiler == dart2js && $fast_startup ]
-apply3_test: Fail # mirrors not supported
-dynamic_nosuchmethod_test: Fail # mirrors not supported
-
-[ $compiler == precompiler ]
-regexp/stack-overflow_test: RuntimeError, OK # Smaller limit with irregex interpreter
-int_parse_radix_test: Pass, Timeout # --no_intrinsify
-
-[ $compiler == precompiler || $compiler == dartkp ]
-apply3_test: SkipByDesign
-dynamic_nosuchmethod_test: SkipByDesign
-
-[ $compiler == dart2js && $runtime != none && !$checked ]
-growable_list_test: RuntimeError # Concurrent modifications test always runs
-
-[ $compiler == dartdevc && $runtime != none ]
-apply2_test: RuntimeError # Issue 29921
-apply3_test: RuntimeError # Issue 29921
-integer_arith_vm_test/modPow: RuntimeError # Issue 30170
-integer_parsed_arith_vm_test: RuntimeError # Issue 29921
-compare_to2_test: RuntimeError # Issue 30170
-date_time10_test: RuntimeError # Issue 29921
-hash_set_test/01: RuntimeError # Issue 29921
-iterable_reduce_test/none: RuntimeError
-iterable_to_list_test/*: RuntimeError
-list_concurrent_modify_test: RuntimeError # DDC uses ES6 array iterators so it does not issue this
-nan_infinity_test/01: RuntimeError # Issue 29921
-main_test: RuntimeError # Issue 29921
-null_nosuchmethod_test/01: RuntimeError # DDC checks type before too many arguments, so TypeError instead of NSM
-regexp/bol-with-multiline_test: RuntimeError # Issue 29921
-regexp/invalid-range-in-class_test: RuntimeError # Issue 29921
-regexp/look-ahead_test: RuntimeError # Issue 29921
-regexp/loop-capture_test: RuntimeError # Issue 29921
-regexp/malformed-escapes_test: RuntimeError # Issue 29921
-regexp/many-brackets_test: RuntimeError # Issue 29921
-regexp/negative-special-characters_test: RuntimeError # Issue 29921
-regexp/no-extensions_test: RuntimeError # Issue 29921
-regexp/non-bmp_test: RuntimeError # Issue 29921
-regexp/non-capturing-backtracking_test: RuntimeError # Issue 29921
-regexp/non-capturing-groups_test: RuntimeError # Issue 29921
-regexp/non-character_test: RuntimeError # Issue 29921
-regexp/non-greedy-parentheses_test: RuntimeError # Issue 29921
-regexp/pcre-test-4_test: RuntimeError # Issue 29921
-regexp/alternative-length-miscalculation_test: RuntimeError # Issue 29921
-regexp/ascii-regexp-subject_test: RuntimeError # Issue 29921
-regexp/capture-3_test: RuntimeError # Issue 29921
-regexp/char-insensitive_test: RuntimeError # Issue 29921
-regexp/character-match-out-of-order_test: RuntimeError # Issue 29921
-regexp/compile-crash_test: RuntimeError # Issue 29921
-regexp/default_arguments_test: RuntimeError # Issue 29921
-regexp/early-acid3-86_test: RuntimeError # Issue 29921
-regexp/ecma-regex-examples_test: RuntimeError # Issue 29921
-regexp/extended-characters-match_test: RuntimeError # Issue 29921
-regexp/extended-characters-more_test: RuntimeError # Issue 29921
-regexp/find-first-asserted_test: RuntimeError # Issue 29921
-regexp/quantified-assertions_test: RuntimeError # Issue 29921
-regexp/range-bound-ffff_test: RuntimeError # Issue 29921
-regexp/range-out-of-order_test: RuntimeError # Issue 29921
-regexp/ranges-and-escaped-hyphens_test: RuntimeError # Issue 29921
-regexp/regress-6-9-regexp_test: RuntimeError # Issue 29921
-regexp/regress-regexp-codeflush_test: RuntimeError # Issue 29921
-regexp/regress-regexp-construct-result_test: RuntimeError # Issue 29921
-regexp/repeat-match-waldemar_test: RuntimeError # Issue 29921
-regexp/results-cache_test: RuntimeError # Issue 29921
-regexp/stack-overflow2_test: RuntimeError # Issue 29921
-regexp/stack-overflow_test: RuntimeError # Issue 29921
-regexp/unicode-handling_test: RuntimeError # Issue 29921
-regexp/zero-length-alternatives_test: RuntimeError # Issue 29921
-regress_r21715_test: RuntimeError # Issue 29921
-string_operations_with_null_test: RuntimeError # Issue 29921
-symbol_operator_test: RuntimeError # Issue 29921
-symbol_operator_test/03: RuntimeError # Issue 29921
-symbol_test/none: RuntimeError # Issue 29921
-symbol_reserved_word_test/06: RuntimeError # Issue 29921
-symbol_reserved_word_test/09: RuntimeError # Issue 29921
-symbol_reserved_word_test/12: RuntimeError # Issue 29921
-int_parse_with_limited_ints_test: Skip # dartdevc doesn't know about --limit-ints-to-64-bits
-typed_data_with_limited_ints_test: Skip # dartdevc doesn't know about --limit-ints-to-64-bits
-int_modulo_arith_test/none: RuntimeError # Issue 29921
-iterable_return_type_test/02: RuntimeError # Issue 29921
-
-[ ($compiler == dart2js || $compiler == dartdevc) && $runtime != none ]
-integer_arith_vm_test/modPow: RuntimeError # Issues 10245, 30170
-integer_parsed_arith_vm_test: RuntimeError # Issues 10245, 29921
-integer_parsed_div_rem_vm_test: RuntimeError # Issue 29921
-integer_parsed_mul_div_vm_test: RuntimeError # Issue 29921
-bit_twiddling_test/int64: RuntimeError, OK # Requires fixed-size int64 support.
-double_ceil_test/int64: RuntimeError, OK # Requires fixed-size int64 support.
-double_floor_test/int64: RuntimeError, OK # Requires fixed-size int64 support.
-double_round_test/int64: RuntimeError, OK # Requires fixed-size int64 support.
-double_truncate_test/int64: RuntimeError, OK # Requires fixed-size int64 support.
-json_map_test: RuntimeError
-compare_to2_test: RuntimeError, OK # Requires fixed-size int64 support.
+[ $compiler == dart2js ]
+date_time11_test: RuntimeError, Pass # Fails when US is on winter time, issue 31285.
 hash_set_test/01: RuntimeError # Issue 11551
-int_modulo_arith_test/modPow: RuntimeError # Issue 29921
-regress_r21715_test: RuntimeError # Requires fixed-size int64 support.
-int_parse_with_limited_ints_test: Skip # dart2js and dartdevc don't know about --limit-ints-to-64-bits
-typed_data_with_limited_ints_test: Skip # dart2js and dartdevc don't know about --limit-ints-to-64-bits
-
-[ $compiler == dart2js && $runtime != none ]
-nan_infinity_test/01: RuntimeError
-integer_to_string_test/01: RuntimeError
-iterable_to_set_test: RuntimeError # is-checks do not implement strong mode type system
-int_parse_radix_test/01: RuntimeError
-int_parse_radix_test/02: RuntimeError
-list_test/*: RuntimeError # dart2js doesn't implement strong mode covariance checks
-string_split_test: RuntimeError # does not return List<String>
-list_concurrent_modify_test: RuntimeError # dart2js does not fully implement these
-
-[ $compiler == dart2js && $runtime == drt && $csp && $minified ]
-core_runtime_types_test: Pass, Fail # Issue 27913
+integer_to_radix_string_test: RuntimeError # Issue 29921
+string_static_test: MissingCompileTimeError
 
 [ $compiler != dartdevc ]
 error_stack_trace_test/static: MissingCompileTimeError
 
-[ $compiler != dartdevc && $compiler != dartk && $compiler != dartkp ]
-iterable_element_at_test/static: MissingCompileTimeError
+[ $compiler == dartdevk ]
+bool_from_environment2_test/01: MissingCompileTimeError
+bool_from_environment2_test/02: MissingCompileTimeError
+bool_from_environment2_test/03: MissingCompileTimeError
+bool_from_environment2_test/04: MissingCompileTimeError
+from_environment_const_type_test/01: Pass
+from_environment_const_type_test/02: MissingCompileTimeError
+from_environment_const_type_test/03: MissingCompileTimeError
+from_environment_const_type_test/04: MissingCompileTimeError
+from_environment_const_type_test/05: Pass
+from_environment_const_type_test/06: MissingCompileTimeError
+from_environment_const_type_test/07: MissingCompileTimeError
+from_environment_const_type_test/08: MissingCompileTimeError
+from_environment_const_type_test/09: MissingCompileTimeError
+from_environment_const_type_test/10: Pass
+from_environment_const_type_test/11: MissingCompileTimeError
+from_environment_const_type_test/12: MissingCompileTimeError
+from_environment_const_type_test/13: MissingCompileTimeError
+from_environment_const_type_test/14: MissingCompileTimeError
+from_environment_const_type_test/15: Pass
+from_environment_const_type_test/16: MissingCompileTimeError
+from_environment_const_type_test/none: Pass
+from_environment_const_type_undefined_test/02: MissingCompileTimeError
+from_environment_const_type_undefined_test/03: MissingCompileTimeError
+from_environment_const_type_undefined_test/04: MissingCompileTimeError
+from_environment_const_type_undefined_test/06: MissingCompileTimeError
+from_environment_const_type_undefined_test/07: MissingCompileTimeError
+from_environment_const_type_undefined_test/08: MissingCompileTimeError
+from_environment_const_type_undefined_test/09: MissingCompileTimeError
+from_environment_const_type_undefined_test/11: MissingCompileTimeError
+from_environment_const_type_undefined_test/12: MissingCompileTimeError
+from_environment_const_type_undefined_test/13: MissingCompileTimeError
+from_environment_const_type_undefined_test/14: MissingCompileTimeError
+from_environment_const_type_undefined_test/16: MissingCompileTimeError
+int_parse_radix_bad_handler_test: MissingCompileTimeError
+map_test: Crash # crash in front_end.
+string_from_environment3_test/01: MissingCompileTimeError
+string_from_environment3_test/02: MissingCompileTimeError
+string_from_environment3_test/03: MissingCompileTimeError
+string_from_environment3_test/04: MissingCompileTimeError
+symbol_reserved_word_test/04: MissingCompileTimeError
+symbol_reserved_word_test/05: MissingCompileTimeError
+symbol_reserved_word_test/07: MissingCompileTimeError
+symbol_reserved_word_test/10: MissingCompileTimeError
+symbol_test/01: MissingCompileTimeError
+symbol_test/02: MissingCompileTimeError
+symbol_test/03: MissingCompileTimeError
 
-[ $compiler == dartdevc && $runtime != none ]
-error_stack_trace_test/nullThrown: RuntimeError # .stackTrace not present for exception caught from 'throw null;'
-list_removeat_test: RuntimeError # Issue 29921
-list_replace_range_test: RuntimeError # Issue 29921
-list_set_all_test: RuntimeError # Issue 29921
-json_map_test: RuntimeError # Issue 29921
-int_parse_radix_test/01: RuntimeError # Issue 29921
-int_parse_radix_test/02: RuntimeError # Issue 29921
-integer_to_radix_string_test: RuntimeError # Issue 29921
-integer_to_string_test/01: RuntimeError # Issue 29921
-iterable_fold_test/02: RuntimeError # different type inference problem
+[ $compiler == dartkp ]
+bit_twiddling_test/int64: CompileTimeError # Issue 31339
+integer_to_radix_string_test/01: CompileTimeError # Issue 31339
+integer_to_radix_string_test/02: CompileTimeError # Issue 31339
+integer_to_string_test/01: CompileTimeError # Issue 31339
+num_sign_test: CompileTimeError, Crash # Issue 31339
+
+[ $compiler == precompiler ]
+int_parse_radix_test: Pass, Timeout # --no_intrinsify
+integer_parsed_mul_div_vm_test: Pass, Timeout # --no_intrinsify
+regexp/stack-overflow_test: RuntimeError, OK # Smaller limit with irregex interpreter
+
+[ $mode == debug ]
+regexp/pcre_test: Pass, Slow # Issue 22008
 
 [ $runtime == flutter ]
 apply3_test: CompileTimeError # mirrors not supported
 bool_from_environment_test: Fail # Flutter Issue 9111
-int_from_environment_test: Fail # Flutter Issue 9111
-int_from_environment2_test: Fail # Flutter Issue 9111
 format_exception_test: RuntimeError # Flutter Issue 9111
-from_environment_const_type_test/none: Fail # Flutter Issue 9111
 from_environment_const_type_test/01: Fail # Flutter Issue 9111
-from_environment_const_type_test/05: Fail # Flutter Issue 9111
-from_environment_const_type_test/10: Fail # Flutter Issue 9111
-from_environment_const_type_test/15: Fail # Flutter Issue 9111
 from_environment_const_type_test/02: MissingCompileTimeError # Flutter Issue 9111
 from_environment_const_type_test/03: MissingCompileTimeError # Flutter Issue 9111
 from_environment_const_type_test/04: MissingCompileTimeError # Flutter Issue 9111
+from_environment_const_type_test/05: Fail # Flutter Issue 9111
 from_environment_const_type_test/06: MissingCompileTimeError # Flutter Issue 9111
 from_environment_const_type_test/07: MissingCompileTimeError # Flutter Issue 9111
 from_environment_const_type_test/08: MissingCompileTimeError # Flutter Issue 9111
 from_environment_const_type_test/09: MissingCompileTimeError # Flutter Issue 9111
-from_environment_const_type_test/12: MissingCompileTimeError # Flutter Issue 9111
+from_environment_const_type_test/10: Fail # Flutter Issue 9111
 from_environment_const_type_test/11: MissingCompileTimeError # Flutter Issue 9111
+from_environment_const_type_test/12: MissingCompileTimeError # Flutter Issue 9111
 from_environment_const_type_test/13: MissingCompileTimeError # Flutter Issue 9111
 from_environment_const_type_test/14: MissingCompileTimeError # Flutter Issue 9111
+from_environment_const_type_test/15: Fail # Flutter Issue 9111
 from_environment_const_type_test/16: MissingCompileTimeError # Flutter Issue 9111
-string_trimlr_test/02: RuntimeError # Flutter Issue 9111
-string_from_environment_test: Fail # Flutter Issue 9111
-string_from_environment2_test: Fail # Flutter Issue 9111
+from_environment_const_type_test/none: Fail # Flutter Issue 9111
+int_from_environment2_test: Fail # Flutter Issue 9111
+int_from_environment_test: Fail # Flutter Issue 9111
 main_test: RuntimeError # Flutter Issue 9111
-
-[ $hot_reload || $hot_reload_rollback ]
-integer_parsed_mul_div_vm_test: Pass, Slow # Slow
-
-[ $compiler == none || $compiler == precompiler || $compiler == app_jit ]
-compare_to2_test: Fail # Issue 4018
-unicode_test: Fail # Issue 6706
-symbol_test/01: Fail, Pass # Issue 11669
-
-symbol_reserved_word_test/06: RuntimeError # Issue 11669, With the exception of 'void', new Symbol() should not accept reserved words.
-symbol_reserved_word_test/09: RuntimeError # Issue 11669, With the exception of 'void', new Symbol() should not accept reserved words.
-symbol_reserved_word_test/12: RuntimeError # Issue 11669, With the exception of 'void', new Symbol() should not accept reserved words.
-
-symbol_test/none: Fail # Issue 11669
-symbol_operator_test/03: Fail # Issue 11669
-string_case_test/01: Fail # Bug 18061
-
-[ $runtime == ff || $runtime == jsshell ]
-double_parse_test/02: Fail, OK # Issue 30468
-regexp/UC16_test: RuntimeError
+string_from_environment2_test: Fail # Flutter Issue 9111
+string_from_environment_test: Fail # Flutter Issue 9111
+string_trimlr_test/02: RuntimeError # Flutter Issue 9111
 
 [ $runtime == jsshell ]
-unicode_test: Fail
 string_case_test/01: Fail, OK
+unicode_test: Fail
 
-[ ($runtime == vm || $runtime == dart_precompiled) && $arch == simarmv5te ]
-integer_parsed_mul_div_vm_test: Pass, Slow
+[ $runtime == vm ]
+string_case_test/01: RuntimeError
+
+[ $arch == simarmv5te && ($runtime == dart_precompiled || $runtime == vm) ]
 int_parse_radix_test/*: Pass, Slow
+integer_parsed_mul_div_vm_test: Pass, Slow
 
-[ $compiler == precompiler ]
-integer_parsed_mul_div_vm_test: Pass, Timeout # --no_intrinsify
+[ $arch == x64 && $system == windows ]
+stopwatch_test: Skip # Flaky test due to expected performance behaviour.
 
-[ $compiler == none && ($runtime == vm || $runtime == flutter)]
-string_trimlr_test/02: RuntimeError # Issue 29060
-iterable_to_set_test: RuntimeError # is-checks do not implement strong mode type system
-
-[ $compiler == precompiler || $compiler == app_jit ]
-string_trimlr_test/02: RuntimeError # Issue 29060
-
-# void should be a valid symbol.
-[ $compiler == none || $compiler == precompiler || $compiler == app_jit || ($compiler == dart2js && !$dart2js_with_kernel) ]
-symbol_reserved_word_test/02: CompileTimeError # Issue 20191
-
-symbol_reserved_word_test/04: MissingCompileTimeError # Issue 11669, 19972, With the exception of 'void', const Symbol() should not accept reserved words.
-symbol_reserved_word_test/07: MissingCompileTimeError # Issue 11669, 19972, With the exception of 'void', const Symbol() should not accept reserved words.
-symbol_reserved_word_test/10: MissingCompileTimeError # Issue 11669, 19972, With the exception of 'void', const Symbol() should not accept reserved words.
-
-[ $compiler == dart2js ]
-hash_set_test/01: RuntimeError # Issue 11551
-integer_to_radix_string_test: RuntimeError # Issue 29921
-string_static_test: MissingCompileTimeError
-
-[ ($compiler == none || $compiler == precompiler || $compiler == app_jit) && $runtime != drt ]
-symbol_test/02: MissingCompileTimeError # Issue 11669
-symbol_test/03: MissingCompileTimeError # Issue 11669
-
-[ $compiler == app_jit || $compiler == precompiler ]
+[ $compiler == dart2analyzer && !$checked && !$strong ]
 from_environment_const_type_test/02: MissingCompileTimeError
 from_environment_const_type_test/03: MissingCompileTimeError
 from_environment_const_type_test/04: MissingCompileTimeError
@@ -318,48 +145,70 @@
 from_environment_const_type_undefined_test/13: MissingCompileTimeError
 from_environment_const_type_undefined_test/14: MissingCompileTimeError
 from_environment_const_type_undefined_test/16: MissingCompileTimeError
-iterable_to_set_test: RuntimeError # is-checks do not implement strong mode type system
 
-[ $compiler == dart2js ]
-date_time11_test: RuntimeError, Pass # Fails when US is on winter time, issue 31285.
+[ $compiler == dart2analyzer && $strong ]
+int_parse_radix_bad_handler_test: Pass
 
-[ $compiler == dart2js && $runtime == safari ]
-regexp/no-extensions_test: RuntimeError
-regexp/lookahead_test: RuntimeError
-regexp/overflow_test: RuntimeError
+[ $compiler == dart2analyzer && !$strong ]
+symbol_reserved_word_test/05: MissingCompileTimeError # Issue 30245
 
-[ $runtime == safari || $runtime == safarimobilesim ]
-string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
-double_round3_test: Fail, OK # Runtime rounds 0.49999999999999994 to 1.
-double_round_to_double2_test: Fail, OK # Runtime rounds 0.49999999999999994 to 1.
+# All static_tests have expected compile-time errors.
+[ $compiler != dart2analyzer && $compiler != dartdevc && $compiler != dartk && $compiler != dartkp && $strong ]
+core_runtime_types_static_test: MissingCompileTimeError
+splay_tree_test/01: MissingCompileTimeError
+splay_tree_test/02: MissingCompileTimeError
+string_base_vm_static_test: MissingCompileTimeError
+string_replace_static_test: MissingCompileTimeError
+string_static_test: MissingCompileTimeError
 
 [ $compiler == dart2js && $runtime == chromeOnAndroid ]
 list_as_map_test: Pass, Slow # TODO(kasperl): Please triage.
 string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
 
-[ ($compiler == dart2js || $compiler == dartdevc) && $runtime == drt ]
-string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
-
-[ $compiler == dart2js && $runtime == safarimobilesim ]
-string_trimlr_test/01: Fail
-string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
-list_test/01: Fail # Safari bug: Array(-2) seen as dead code.
-
 [ $compiler == dart2js && $runtime == d8 ]
 string_trimlr_test/02: RuntimeError, Pass # Uses Unicode 6.2.0 or earlier, issue 30279.
 uri_base_test: RuntimeError # D8 uses a custom uri scheme for Uri.base
 
-[ $compiler == none && $runtime == vm ]
-string_static_test: MissingCompileTimeError
+[ $compiler == dart2js && $runtime == drt && $csp && $minified ]
+core_runtime_types_test: Pass, Fail # Issue 27913
 
-[ $compiler == dart2js && $runtime != none && !$dart2js_with_kernel]
+[ $compiler == dart2js && $runtime != none ]
+int_parse_radix_test/01: RuntimeError
+int_parse_radix_test/02: RuntimeError
+integer_to_string_test/01: RuntimeError
+iterable_to_set_test: RuntimeError # is-checks do not implement strong mode type system
+list_concurrent_modify_test: RuntimeError # dart2js does not fully implement these
+list_test/*: RuntimeError # dart2js doesn't implement strong mode covariance checks
+nan_infinity_test/01: RuntimeError
+regexp/pcre_test: Pass, Slow # Issue 21593
+string_split_test: RuntimeError # does not return List<String>
+
+[ $compiler == dart2js && $runtime != none && !$checked ]
+growable_list_test: RuntimeError # Concurrent modifications test always runs
+splay_tree_from_iterable_test: RuntimeError
+
+[ $compiler == dart2js && $runtime != none && $dart2js_with_kernel ]
+list_concurrent_modify_test: Crash # Issue 30559
+
+[ $compiler == dart2js && $runtime != none && !$dart2js_with_kernel ]
 error_stack_trace1_test: RuntimeError # Issue 12399
 symbol_reserved_word_test/03: RuntimeError # Issue 19972, new Symbol('void') should be allowed.
 
-[ $compiler == dart2js && $runtime != none ]
-regexp/pcre_test: Pass, Slow # Issue 21593
+[ $compiler == dart2js && $runtime == safari ]
+regexp/lookahead_test: RuntimeError
+regexp/no-extensions_test: RuntimeError
+regexp/overflow_test: RuntimeError
 
-[ !$checked && (($compiler == none && $runtime == vm) || $compiler == dart2js) ]
+[ $compiler == dart2js && $runtime == safarimobilesim ]
+list_test/01: Fail # Safari bug: Array(-2) seen as dead code.
+string_trimlr_test/01: Fail
+string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
+
+[ $compiler == dart2js && !$browser ]
+package_resource_test: RuntimeError # Issue 26842
+
+[ $compiler == dart2js && $checked && $dart2js_with_kernel ]
+apply3_test: RuntimeError
 from_environment_const_type_test/02: MissingCompileTimeError
 from_environment_const_type_test/03: MissingCompileTimeError
 from_environment_const_type_test/04: MissingCompileTimeError
@@ -378,36 +227,35 @@
 from_environment_const_type_undefined_test/06: MissingCompileTimeError
 from_environment_const_type_undefined_test/07: MissingCompileTimeError
 from_environment_const_type_undefined_test/08: MissingCompileTimeError
-iterable_generate_test/01: RuntimeError
+iterable_return_type_test/01: RuntimeError
+iterable_return_type_test/02: RuntimeError
+iterable_to_list_test/01: RuntimeError
+list_test/01: Crash # Unsupported operation: Unsupported type parameter type node T.
+list_test/none: Crash # Unsupported operation: Unsupported type parameter type node T.
+map_test: Crash # tests/corelib_2/map_test.dart:903:7: Internal problem: Unhandled Null in installDefaultConstructor.
+symbol_reserved_word_test/03: RuntimeError
+symbol_reserved_word_test/04: MissingCompileTimeError
+symbol_reserved_word_test/05: MissingCompileTimeError
+symbol_reserved_word_test/07: MissingCompileTimeError
+symbol_reserved_word_test/10: MissingCompileTimeError
+symbol_test/02: MissingCompileTimeError
+symbol_test/03: MissingCompileTimeError
 
-
-[ ($compiler == none && $runtime == vm) || $compiler == dart2js ]
-from_environment_const_type_undefined_test/09: MissingCompileTimeError
-from_environment_const_type_undefined_test/11: MissingCompileTimeError
-from_environment_const_type_undefined_test/12: MissingCompileTimeError
-from_environment_const_type_undefined_test/13: MissingCompileTimeError
-from_environment_const_type_undefined_test/14: MissingCompileTimeError
-from_environment_const_type_undefined_test/16: MissingCompileTimeError
-
-[ ($compiler == none && $runtime == vm) || $compiler == dart2js ]
-string_base_vm_static_test: MissingCompileTimeError
-
-[ $compiler == none && $runtime == drt ]
-string_from_environment2_test: Skip
-string_from_environment3_test: Skip
-string_from_environment_test: Skip
-
-[ $system == windows && $arch == x64 ]
-stopwatch_test: Skip  # Flaky test due to expected performance behaviour.
-
-[ $runtime == vm ]
-string_case_test/01: RuntimeError
-
-[ ($runtime == vm || $runtime == dart_precompiled) ]
-string_split_test: RuntimeError # does not return List<String>
-
-[ ($runtime == vm || $runtime == dart_precompiled) && !$strong ]
-list_test/*: RuntimeError # VM doesn't implement strong mode covariance checks
+[ $compiler == dart2js && $dart2js_with_kernel && $fast_startup ]
+iterable_return_type_test/01: RuntimeError
+iterable_return_type_test/02: RuntimeError
+iterable_to_list_test/01: RuntimeError
+list_test/01: Crash # Unsupported operation: Unsupported type parameter type node T.
+list_test/none: Crash # Unsupported operation: Unsupported type parameter type node T.
+map_test: Crash # tests/corelib_2/map_test.dart:903:7: Internal problem: Unhandled Null in installDefaultConstructor.
+symbol_reserved_word_test/03: RuntimeError
+symbol_reserved_word_test/04: MissingCompileTimeError
+symbol_reserved_word_test/05: MissingCompileTimeError
+symbol_reserved_word_test/07: MissingCompileTimeError
+symbol_reserved_word_test/10: MissingCompileTimeError
+symbol_test/02: MissingCompileTimeError
+symbol_test/03: MissingCompileTimeError
+uri_base_test: Crash # RangeError (index): Invalid value: Valid value range is empty: 0
 
 [ $compiler == dart2js && $dart2js_with_kernel && $host_checked ]
 apply3_test: RuntimeError
@@ -453,76 +301,111 @@
 symbol_test/03: MissingCompileTimeError
 uri_base_test: Crash # RangeError (index): Invalid value: Valid value range is empty: 0
 
-[ $compiler == dart2js && $dart2js_with_kernel && $fast_startup ]
-iterable_return_type_test/01: RuntimeError
-iterable_return_type_test/02: RuntimeError
-iterable_to_list_test/01: RuntimeError
-list_test/01: Crash # Unsupported operation: Unsupported type parameter type node T.
-list_test/none: Crash # Unsupported operation: Unsupported type parameter type node T.
-map_test: Crash # tests/corelib_2/map_test.dart:903:7: Internal problem: Unhandled Null in installDefaultConstructor.
-symbol_reserved_word_test/03: RuntimeError
-symbol_reserved_word_test/04: MissingCompileTimeError
-symbol_reserved_word_test/05: MissingCompileTimeError
-symbol_reserved_word_test/07: MissingCompileTimeError
-symbol_reserved_word_test/10: MissingCompileTimeError
-symbol_test/02: MissingCompileTimeError
-symbol_test/03: MissingCompileTimeError
-uri_base_test: Crash # RangeError (index): Invalid value: Valid value range is empty: 0
-
-[$arch == simdbc || $arch == simdbc64]
-regexp/stack-overflow_test: RuntimeError, OK # Smaller limit with irregex interpreter
-
-[ $compiler == dart2js && $runtime != none && !$checked ]
-splay_tree_from_iterable_test: RuntimeError
-
-[ ($compiler == none || $compiler == app_jit) && $runtime == vm && !$checked ]
-iterable_generate_test/01: RuntimeError
-splay_tree_from_iterable_test: RuntimeError
-
-[ $compiler == precompiler && $runtime == dart_precompiled && !$checked ]
-iterable_generate_test/01: RuntimeError
-splay_tree_from_iterable_test: RuntimeError
-
-[ $runtime == vm || $runtime == dart_precompiled || $runtime == flutter ]
-regexp/pcre_test: Pass, Slow, Timeout
-regexp/global_test: Skip # Issue 21709
-
-[ $mode == debug ]
-regexp/pcre_test: Pass, Slow # Issue 22008
-
-[ $compiler == dart2js && ! $browser ]
-package_resource_test: RuntimeError # Issue 26842
-
-[ $compiler == dart2js && ! $dart2js_with_kernel ]
-list_unmodifiable_test: Pass, RuntimeError # Issue 28712
-iterable_to_list_test/01: RuntimeError # Issue 26501
+[ $compiler == dart2js && !$dart2js_with_kernel ]
 iterable_return_type_test/01: RuntimeError # Issue 20085
 iterable_return_type_test/02: RuntimeError # Dart2js does not support Uint64*.
+iterable_to_list_test/01: RuntimeError # Issue 26501
+list_unmodifiable_test: Pass, RuntimeError # Issue 28712
 
-[ $compiler == dart2analyzer ]
-int_parse_radix_bad_handler_test: MissingCompileTimeError
-iterable_element_at_test/static: Pass
+[ $compiler == dart2js && $fast_startup ]
+apply3_test: Fail # mirrors not supported
+dynamic_nosuchmethod_test: Fail # mirrors not supported
 
-[ $compiler == dart2analyzer && $strong ]
-int_parse_radix_bad_handler_test: Pass
+[ $compiler == dartdevc && $runtime != none ]
+apply2_test: RuntimeError # Issue 29921
+apply3_test: RuntimeError # Issue 29921
+compare_to2_test: RuntimeError # Issue 30170
+date_time10_test: RuntimeError # Issue 29921
+error_stack_trace_test/nullThrown: RuntimeError # .stackTrace not present for exception caught from 'throw null;'
+hash_set_test/01: RuntimeError # Issue 29921
+int_modulo_arith_test/none: RuntimeError # Issue 29921
+int_parse_radix_test/01: RuntimeError # Issue 29921
+int_parse_radix_test/02: RuntimeError # Issue 29921
+int_parse_with_limited_ints_test: Skip # dartdevc doesn't know about --limit-ints-to-64-bits
+integer_arith_vm_test/modPow: RuntimeError # Issue 30170
+integer_parsed_arith_vm_test: RuntimeError # Issue 29921
+integer_to_radix_string_test: RuntimeError # Issue 29921
+integer_to_string_test/01: RuntimeError # Issue 29921
+iterable_fold_test/02: RuntimeError # different type inference problem
+iterable_reduce_test/none: RuntimeError
+iterable_return_type_test/02: RuntimeError # Issue 29921
+iterable_to_list_test/*: RuntimeError
+json_map_test: RuntimeError # Issue 29921
+list_concurrent_modify_test: RuntimeError # DDC uses ES6 array iterators so it does not issue this
+list_removeat_test: RuntimeError # Issue 29921
+list_replace_range_test: RuntimeError # Issue 29921
+list_set_all_test: RuntimeError # Issue 29921
+main_test: RuntimeError # Issue 29921
+nan_infinity_test/01: RuntimeError # Issue 29921
+null_nosuchmethod_test/01: RuntimeError # DDC checks type before too many arguments, so TypeError instead of NSM
+regexp/alternative-length-miscalculation_test: RuntimeError # Issue 29921
+regexp/ascii-regexp-subject_test: RuntimeError # Issue 29921
+regexp/bol-with-multiline_test: RuntimeError # Issue 29921
+regexp/capture-3_test: RuntimeError # Issue 29921
+regexp/char-insensitive_test: RuntimeError # Issue 29921
+regexp/character-match-out-of-order_test: RuntimeError # Issue 29921
+regexp/compile-crash_test: RuntimeError # Issue 29921
+regexp/default_arguments_test: RuntimeError # Issue 29921
+regexp/early-acid3-86_test: RuntimeError # Issue 29921
+regexp/ecma-regex-examples_test: RuntimeError # Issue 29921
+regexp/extended-characters-match_test: RuntimeError # Issue 29921
+regexp/extended-characters-more_test: RuntimeError # Issue 29921
+regexp/find-first-asserted_test: RuntimeError # Issue 29921
+regexp/invalid-range-in-class_test: RuntimeError # Issue 29921
+regexp/look-ahead_test: RuntimeError # Issue 29921
+regexp/loop-capture_test: RuntimeError # Issue 29921
+regexp/malformed-escapes_test: RuntimeError # Issue 29921
+regexp/many-brackets_test: RuntimeError # Issue 29921
+regexp/negative-special-characters_test: RuntimeError # Issue 29921
+regexp/no-extensions_test: RuntimeError # Issue 29921
+regexp/non-bmp_test: RuntimeError # Issue 29921
+regexp/non-capturing-backtracking_test: RuntimeError # Issue 29921
+regexp/non-capturing-groups_test: RuntimeError # Issue 29921
+regexp/non-character_test: RuntimeError # Issue 29921
+regexp/non-greedy-parentheses_test: RuntimeError # Issue 29921
+regexp/pcre-test-4_test: RuntimeError # Issue 29921
+regexp/quantified-assertions_test: RuntimeError # Issue 29921
+regexp/range-bound-ffff_test: RuntimeError # Issue 29921
+regexp/range-out-of-order_test: RuntimeError # Issue 29921
+regexp/ranges-and-escaped-hyphens_test: RuntimeError # Issue 29921
+regexp/regress-6-9-regexp_test: RuntimeError # Issue 29921
+regexp/regress-regexp-codeflush_test: RuntimeError # Issue 29921
+regexp/regress-regexp-construct-result_test: RuntimeError # Issue 29921
+regexp/repeat-match-waldemar_test: RuntimeError # Issue 29921
+regexp/results-cache_test: RuntimeError # Issue 29921
+regexp/stack-overflow2_test: RuntimeError # Issue 29921
+regexp/stack-overflow_test: RuntimeError # Issue 29921
+regexp/unicode-handling_test: RuntimeError # Issue 29921
+regexp/zero-length-alternatives_test: RuntimeError # Issue 29921
+regress_r21715_test: RuntimeError # Issue 29921
+string_operations_with_null_test: RuntimeError # Issue 29921
+symbol_operator_test: RuntimeError # Issue 29921
+symbol_operator_test/03: RuntimeError # Issue 29921
+symbol_reserved_word_test/06: RuntimeError # Issue 29921
+symbol_reserved_word_test/09: RuntimeError # Issue 29921
+symbol_reserved_word_test/12: RuntimeError # Issue 29921
+symbol_test/none: RuntimeError # Issue 29921
+typed_data_with_limited_ints_test: Skip # dartdevc doesn't know about --limit-ints-to-64-bits
 
-[ $runtime == dart_precompiled && $minified ]
-apply_test: Skip  # Uses new Symbol via symbolMapToStringMap helper
-error_stack_trace1_test: Skip  # Expects unobfuscated stack trace
+[ $compiler != dartdevc && $compiler != dartk && $compiler != dartkp ]
+iterable_element_at_test/static: MissingCompileTimeError
 
-[ $compiler == dart2js && $runtime != none && $dart2js_with_kernel ]
-list_concurrent_modify_test: Crash # Issue 30559
+[ $compiler != dartdevc && $compiler != dartk && $compiler != dartkp && $runtime != none ]
+map_keys2_test: RuntimeError # needs Dart 2 is checks
 
-# Sections for dartk and dartkp.
-#
-# Note: these sections are normalized so we can update them with automated
-# tools. Please add any new status lines affecting those two compilers in the
-# existing sections, if possible keep the alphabetic ordering. If we are missing
-# a section you need, please reach out to sigmund@ to see the best way to add
-# them.
-# ===== Skip dartk and darkp in !$strong mode ====
-[ ($compiler == dartk || $compiler == dartkp) && !$strong ]
-*: SkipByDesign
+[ $compiler != dartdevc && $compiler != dartk && $compiler != dartkp && ($compiler != dart2analyzer || !$strong) ]
+iterable_mapping_test/01: MissingCompileTimeError
+
+[ $compiler != dartdevc && $runtime != none && !$checked && !$strong ]
+null_nosuchmethod_test: RuntimeError # needs Dart 2 or checked mode
+
+[ $compiler != dartdevc && $checked && !$strong ]
+core_runtime_types_static_test: MissingCompileTimeError
+splay_tree_test/01: MissingCompileTimeError
+splay_tree_test/02: MissingCompileTimeError
+string_base_vm_static_test: MissingCompileTimeError
+string_replace_static_test: MissingCompileTimeError
+string_static_test: MissingCompileTimeError
 
 # ===== dartk + vm status lines =====
 [ $compiler == dartk && $runtime == vm && $strong ]
@@ -564,23 +447,36 @@
 symbol_test/none: RuntimeError
 unicode_test: RuntimeError
 
+[ $compiler == dartkp && $mode == debug && $runtime == dart_precompiled && $strong ]
+bit_twiddling_test/int64: CompileTimeError
+integer_parsed_arith_vm_test/01: RuntimeError
+integer_parsed_arith_vm_test/02: RuntimeError
+
 # ===== dartkp + dart_precompiled status lines =====
 [ $compiler == dartkp && $runtime == dart_precompiled && $strong ]
 bool_from_environment2_test/03: MissingCompileTimeError
+collection_removes_test: RuntimeError
 compare_to2_test: RuntimeError
+hash_set_test/01: RuntimeError
+hash_set_test/none: RuntimeError
 int_modulo_arith_test/modPow: CompileTimeError # Issue 31402 (Assert statement)
 int_modulo_arith_test/none: CompileTimeError # Issue 31402 (Assert statement)
+iterable_empty_test: RuntimeError
 iterable_fold_test/02: RuntimeError
-iterable_generate_test/01: RuntimeError # Issue 31385 (--strong is not passed to the runtime)
+iterable_mapping_test/none: RuntimeError
 iterable_reduce_test/01: CompileTimeError # Issue 31533
 iterable_reduce_test/none: RuntimeError
 iterable_to_list_test/01: RuntimeError
 iterable_to_list_test/none: RuntimeError
-iterable_to_set_test: RuntimeError # Issue 31385 (--strong is not passed to the runtime)
-map_keys2_test: RuntimeError # Issue 31385 (--strong is not passed to the runtime)
+json_map_test: RuntimeError
+list_replace_range_test: RuntimeError
+list_set_all_test: RuntimeError
 null_nosuchmethod_test/01: CompileTimeError # Issue 31402 (Invocation arguments)
 null_nosuchmethod_test/none: CompileTimeError # Issue 31402 (Invocation arguments)
 regexp/stack-overflow_test: RuntimeError
+set_test: RuntimeError
+splay_tree_from_iterable_test: RuntimeError
+splay_tree_test/none: RuntimeError
 string_case_test/01: RuntimeError
 string_from_environment3_test/03: MissingCompileTimeError
 string_trimlr_test/02: RuntimeError
@@ -596,33 +492,135 @@
 symbol_test/none: RuntimeError
 unicode_test: RuntimeError
 
-[ $compiler == dartkp && $runtime == dart_precompiled && $strong && $mode == debug ]
-bit_twiddling_test/int64: CompileTimeError
-integer_parsed_arith_vm_test/01: RuntimeError
-integer_parsed_arith_vm_test/02: RuntimeError
+[ $compiler == none && $runtime == drt ]
+string_from_environment2_test: Skip
+string_from_environment3_test: Skip
+string_from_environment_test: Skip
 
-[ $compiler == dartdevk ]
-bool_from_environment2_test/01: MissingCompileTimeError
-bool_from_environment2_test/02: MissingCompileTimeError
-bool_from_environment2_test/03: MissingCompileTimeError
-bool_from_environment2_test/04: MissingCompileTimeError
-from_environment_const_type_test/01: Pass
+[ $compiler == none && $runtime == vm ]
+string_static_test: MissingCompileTimeError
+
+[ $compiler == none && ($runtime == flutter || $runtime == vm) ]
+iterable_to_set_test: RuntimeError # is-checks do not implement strong mode type system
+string_trimlr_test/02: RuntimeError # Issue 29060
+
+[ $compiler == precompiler && $runtime == dart_precompiled && !$checked ]
+iterable_generate_test/01: RuntimeError
+splay_tree_from_iterable_test: RuntimeError
+
+[ $runtime == dart_precompiled && $minified ]
+apply_test: Skip # Uses new Symbol via symbolMapToStringMap helper
+error_stack_trace1_test: Skip # Expects unobfuscated stack trace
+
+[ $runtime == drt && ($compiler == dart2js || $compiler == dartdevc) ]
+string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
+
+[ $runtime != drt && ($compiler == app_jit || $compiler == none || $compiler == precompiler) ]
+symbol_test/02: MissingCompileTimeError # Issue 11669
+symbol_test/03: MissingCompileTimeError # Issue 11669
+
+[ $runtime != none && ($compiler == dart2js || $compiler == dartdevc) ]
+bit_twiddling_test/int64: RuntimeError, OK # Requires fixed-size int64 support.
+compare_to2_test: RuntimeError, OK # Requires fixed-size int64 support.
+double_ceil_test/int64: RuntimeError, OK # Requires fixed-size int64 support.
+double_floor_test/int64: RuntimeError, OK # Requires fixed-size int64 support.
+double_round_test/int64: RuntimeError, OK # Requires fixed-size int64 support.
+double_truncate_test/int64: RuntimeError, OK # Requires fixed-size int64 support.
+hash_set_test/01: RuntimeError # Issue 11551
+int_modulo_arith_test/modPow: RuntimeError # Issue 29921
+int_parse_with_limited_ints_test: Skip # dart2js and dartdevc don't know about --limit-ints-to-64-bits
+integer_arith_vm_test/modPow: RuntimeError # Issues 10245, 30170
+integer_parsed_arith_vm_test: RuntimeError # Issues 10245, 29921
+integer_parsed_div_rem_vm_test: RuntimeError # Issue 29921
+integer_parsed_mul_div_vm_test: RuntimeError # Issue 29921
+json_map_test: RuntimeError
+regress_r21715_test: RuntimeError # Requires fixed-size int64 support.
+typed_data_with_limited_ints_test: Skip # dart2js and dartdevc don't know about --limit-ints-to-64-bits
+
+[ $runtime == vm && !$checked && ($compiler == app_jit || $compiler == none) ]
+iterable_generate_test/01: RuntimeError
+splay_tree_from_iterable_test: RuntimeError
+
+[ !$checked && !$strong ]
+core_runtime_types_static_test: MissingCompileTimeError
+splay_tree_test/01: MissingCompileTimeError
+splay_tree_test/02: MissingCompileTimeError
+string_base_vm_static_test: MissingCompileTimeError
+string_replace_static_test: MissingCompileTimeError
+string_static_test: MissingCompileTimeError
+
+[ !$checked && ($compiler == dart2js || $compiler == none && $runtime == vm) ]
 from_environment_const_type_test/02: MissingCompileTimeError
 from_environment_const_type_test/03: MissingCompileTimeError
 from_environment_const_type_test/04: MissingCompileTimeError
-from_environment_const_type_test/05: Pass
 from_environment_const_type_test/06: MissingCompileTimeError
 from_environment_const_type_test/07: MissingCompileTimeError
 from_environment_const_type_test/08: MissingCompileTimeError
 from_environment_const_type_test/09: MissingCompileTimeError
-from_environment_const_type_test/10: Pass
 from_environment_const_type_test/11: MissingCompileTimeError
 from_environment_const_type_test/12: MissingCompileTimeError
 from_environment_const_type_test/13: MissingCompileTimeError
 from_environment_const_type_test/14: MissingCompileTimeError
-from_environment_const_type_test/15: Pass
 from_environment_const_type_test/16: MissingCompileTimeError
-from_environment_const_type_test/none: Pass
+from_environment_const_type_undefined_test/02: MissingCompileTimeError
+from_environment_const_type_undefined_test/03: MissingCompileTimeError
+from_environment_const_type_undefined_test/04: MissingCompileTimeError
+from_environment_const_type_undefined_test/06: MissingCompileTimeError
+from_environment_const_type_undefined_test/07: MissingCompileTimeError
+from_environment_const_type_undefined_test/08: MissingCompileTimeError
+iterable_generate_test/01: RuntimeError
+
+# Sections for dartk and dartkp.
+#
+# Note: these sections are normalized so we can update them with automated
+# tools. Please add any new status lines affecting those two compilers in the
+# existing sections, if possible keep the alphabetic ordering. If we are missing
+# a section you need, please reach out to sigmund@ to see the best way to add
+# them.
+# ===== Skip dartk and darkp in !$strong mode ====
+[ !$strong && ($compiler == dartk || $compiler == dartkp) ]
+*: SkipByDesign
+
+[ !$strong && ($runtime == dart_precompiled || $runtime == vm) ]
+list_test/*: RuntimeError # VM doesn't implement strong mode covariance checks
+
+[ $arch == simdbc || $arch == simdbc64 ]
+regexp/stack-overflow_test: RuntimeError, OK # Smaller limit with irregex interpreter
+
+[ $compiler == app_jit || $compiler == dart2js || $compiler == none || $compiler == precompiler ]
+int_parse_radix_bad_handler_test: MissingCompileTimeError
+
+[ $compiler == app_jit || $compiler == none || $compiler == precompiler ]
+compare_to2_test: Fail # Issue 4018
+string_case_test/01: Fail # Bug 18061
+symbol_operator_test/03: Fail # Issue 11669
+symbol_reserved_word_test/06: RuntimeError # Issue 11669, With the exception of 'void', new Symbol() should not accept reserved words.
+symbol_reserved_word_test/09: RuntimeError # Issue 11669, With the exception of 'void', new Symbol() should not accept reserved words.
+symbol_reserved_word_test/12: RuntimeError # Issue 11669, With the exception of 'void', new Symbol() should not accept reserved words.
+symbol_test/01: Fail, Pass # Issue 11669
+symbol_test/none: Fail # Issue 11669
+unicode_test: Fail # Issue 6706
+
+# void should be a valid symbol.
+[ $compiler == app_jit || $compiler == none || $compiler == precompiler || $compiler == dart2js && !$dart2js_with_kernel ]
+symbol_reserved_word_test/02: CompileTimeError # Issue 20191
+symbol_reserved_word_test/04: MissingCompileTimeError # Issue 11669, 19972, With the exception of 'void', const Symbol() should not accept reserved words.
+symbol_reserved_word_test/07: MissingCompileTimeError # Issue 11669, 19972, With the exception of 'void', const Symbol() should not accept reserved words.
+symbol_reserved_word_test/10: MissingCompileTimeError # Issue 11669, 19972, With the exception of 'void', const Symbol() should not accept reserved words.
+
+[ $compiler == app_jit || $compiler == precompiler ]
+from_environment_const_type_test/02: MissingCompileTimeError
+from_environment_const_type_test/03: MissingCompileTimeError
+from_environment_const_type_test/04: MissingCompileTimeError
+from_environment_const_type_test/06: MissingCompileTimeError
+from_environment_const_type_test/07: MissingCompileTimeError
+from_environment_const_type_test/08: MissingCompileTimeError
+from_environment_const_type_test/09: MissingCompileTimeError
+from_environment_const_type_test/11: MissingCompileTimeError
+from_environment_const_type_test/12: MissingCompileTimeError
+from_environment_const_type_test/13: MissingCompileTimeError
+from_environment_const_type_test/14: MissingCompileTimeError
+from_environment_const_type_test/16: MissingCompileTimeError
 from_environment_const_type_undefined_test/02: MissingCompileTimeError
 from_environment_const_type_undefined_test/03: MissingCompileTimeError
 from_environment_const_type_undefined_test/04: MissingCompileTimeError
@@ -635,65 +633,53 @@
 from_environment_const_type_undefined_test/13: MissingCompileTimeError
 from_environment_const_type_undefined_test/14: MissingCompileTimeError
 from_environment_const_type_undefined_test/16: MissingCompileTimeError
-int_parse_radix_bad_handler_test: MissingCompileTimeError
-string_from_environment3_test/01: MissingCompileTimeError
-string_from_environment3_test/02: MissingCompileTimeError
-string_from_environment3_test/03: MissingCompileTimeError
-string_from_environment3_test/04: MissingCompileTimeError
-symbol_reserved_word_test/04: MissingCompileTimeError
-symbol_reserved_word_test/05: MissingCompileTimeError
-symbol_reserved_word_test/07: MissingCompileTimeError
-symbol_reserved_word_test/10: MissingCompileTimeError
-symbol_test/01: MissingCompileTimeError
-symbol_test/02: MissingCompileTimeError
-symbol_test/03: MissingCompileTimeError
-map_test: Crash # crash in front_end.
+iterable_to_set_test: RuntimeError # is-checks do not implement strong mode type system
+string_trimlr_test/02: RuntimeError # Issue 29060
 
-[ $compiler == dart2js && $dart2js_with_kernel && $checked ]
-apply3_test: RuntimeError
-from_environment_const_type_test/02: MissingCompileTimeError
-from_environment_const_type_test/03: MissingCompileTimeError
-from_environment_const_type_test/04: MissingCompileTimeError
-from_environment_const_type_test/06: MissingCompileTimeError
-from_environment_const_type_test/07: MissingCompileTimeError
-from_environment_const_type_test/08: MissingCompileTimeError
-from_environment_const_type_test/09: MissingCompileTimeError
-from_environment_const_type_test/11: MissingCompileTimeError
-from_environment_const_type_test/12: MissingCompileTimeError
-from_environment_const_type_test/13: MissingCompileTimeError
-from_environment_const_type_test/14: MissingCompileTimeError
-from_environment_const_type_test/16: MissingCompileTimeError
-from_environment_const_type_undefined_test/02: MissingCompileTimeError
-from_environment_const_type_undefined_test/03: MissingCompileTimeError
-from_environment_const_type_undefined_test/04: MissingCompileTimeError
-from_environment_const_type_undefined_test/06: MissingCompileTimeError
-from_environment_const_type_undefined_test/07: MissingCompileTimeError
-from_environment_const_type_undefined_test/08: MissingCompileTimeError
-iterable_return_type_test/01: RuntimeError
-iterable_return_type_test/02: RuntimeError
-iterable_to_list_test/01: RuntimeError
-list_test/01: Crash # Unsupported operation: Unsupported type parameter type node T.
-list_test/none: Crash # Unsupported operation: Unsupported type parameter type node T.
-map_test: Crash # tests/corelib_2/map_test.dart:903:7: Internal problem: Unhandled Null in installDefaultConstructor.
-symbol_reserved_word_test/03: RuntimeError
-symbol_reserved_word_test/04: MissingCompileTimeError
-symbol_reserved_word_test/05: MissingCompileTimeError
-symbol_reserved_word_test/07: MissingCompileTimeError
-symbol_reserved_word_test/10: MissingCompileTimeError
-symbol_test/02: MissingCompileTimeError
-symbol_test/03: MissingCompileTimeError
+[ $compiler == dart2js || $compiler == none && $runtime == vm ]
+from_environment_const_type_undefined_test/09: MissingCompileTimeError
+from_environment_const_type_undefined_test/11: MissingCompileTimeError
+from_environment_const_type_undefined_test/12: MissingCompileTimeError
+from_environment_const_type_undefined_test/13: MissingCompileTimeError
+from_environment_const_type_undefined_test/14: MissingCompileTimeError
+from_environment_const_type_undefined_test/16: MissingCompileTimeError
+string_base_vm_static_test: MissingCompileTimeError
 
-[ $runtime == vm || $runtime == dart_precompiled ]
-integer_to_radix_string_test/01: RuntimeError   # Issue 31346
+[ $compiler == dartdevc || $compiler == dart2analyzer && $strong ]
+double_parse_test/01: Skip # Temporarily disable the following tests until we figure out why they started failing.
+double_parse_test/02: Skip # Temporarily disable the following tests until we figure out why they started failing.
+double_parse_test/03: Skip # Temporarily disable the following tests until we figure out why they started failing.
+double_parse_test/04: Skip # Temporarily disable the following tests until we figure out why they started failing.
+double_parse_test/none: Skip # Temporarily disable the following tests until we figure out why they started failing.
+iterable_reduce_test/01: CompileTimeError
+
+[ $compiler == dartkp || $compiler == precompiler ]
+apply3_test: SkipByDesign
+dynamic_nosuchmethod_test: SkipByDesign
+
+[ $compiler == precompiler || $compiler == dart2js && !$checked || $runtime == vm && !$checked && !$strong ]
+int_parse_radix_test/badTypes: RuntimeError # wrong exception returned
+
+[ $runtime == dart_precompiled || $runtime == flutter || $runtime == vm ]
+regexp/global_test: Skip # Issue 21709
+regexp/pcre_test: Pass, Slow, Timeout
+
+[ $runtime == dart_precompiled || $runtime == vm ]
+integer_parsed_arith_vm_test/01: RuntimeError # Issue 31346
+integer_parsed_arith_vm_test/02: RuntimeError # Issue 31369
 integer_parsed_div_rem_vm_test/01: RuntimeError # Issue 31346
-integer_parsed_arith_vm_test/01: RuntimeError   # Issue 31346
+integer_to_radix_string_test/01: RuntimeError # Issue 31346
+string_split_test: RuntimeError # does not return List<String>
 
-[ $runtime == vm || $runtime == dart_precompiled ]
-integer_parsed_arith_vm_test/02: RuntimeError   # Issue 31369
+[ $runtime == ff || $runtime == jsshell ]
+double_parse_test/02: Fail, OK # Issue 30468
+regexp/UC16_test: RuntimeError
 
-[ $compiler == dartkp ]
-integer_to_radix_string_test/01: CompileTimeError # Issue 31339
-integer_to_radix_string_test/02: CompileTimeError # Issue 31339
-integer_to_string_test/01: CompileTimeError       # Issue 31339
-bit_twiddling_test/int64: CompileTimeError        # Issue 31339
-num_sign_test: CompileTimeError, Crash            # Issue 31339
+[ $runtime == safari || $runtime == safarimobilesim ]
+double_round3_test: Fail, OK # Runtime rounds 0.49999999999999994 to 1.
+double_round_to_double2_test: Fail, OK # Runtime rounds 0.49999999999999994 to 1.
+string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
+
+[ $hot_reload || $hot_reload_rollback ]
+integer_parsed_mul_div_vm_test: Pass, Slow # Slow
+
diff --git a/tests/html/html.status b/tests/html/html.status
index 9122f62..663af62 100644
--- a/tests/html/html.status
+++ b/tests/html/html.status
@@ -1,20 +1,31 @@
 # Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
-
-interactive_test: Skip # Must be run manually.
 cross_frame_test: Skip # Test reloads itself. Issue 18558
+interactive_test: Skip # Must be run manually.
+
+[ $compiler == dart2analyzer ]
+custom/document_register_basic_test: StaticWarning
+custom/element_upgrade_test: StaticWarning
+datalistelement_test: StaticWarning
+documentfragment_test: StaticWarning
+element_add_test: StaticWarning
+element_test: StaticWarning
+events_test: StaticWarning
+htmlelement_test: StaticWarning
+js_function_getter_trust_types_test: Skip # dart2js specific flags.
+js_typed_interop_default_arg_test/default_value: MissingCompileTimeError # Issue #25759
+localstorage_test: StaticWarning
+mutationobserver_test: StaticWarning
+queryall_test: Fail
+track_element_constructor_test: StaticWarning
+transferables_test: StaticWarning
+typed_arrays_range_checks_test: StaticWarning
+typing_test: StaticWarning
+webgl_1_test: StaticWarning
+window_nosuchmethod_test: StaticWarning
 
 [ $compiler == dart2js ]
-input_element_test/attributes: Fail # Issue 21555
-wrapping_collections_test: SkipByDesign # Testing an issue that is only relevant to Dartium
-js_typed_interop_default_arg_test/default_value: MissingCompileTimeError # Issue #25759
-mirrors_js_typed_interop_test: Pass, Slow
-js_type_test/dynamic-null-not-Foo: Fail  # Issue 26838
-js_type_test/dynamic-String-not-Foo: Fail  # Issue 26838
-js_type_test/dynamic-String-not-dynamic-Foo: Fail  # Issue 26838
-js_interop_constructor_name_test/HTMLDivElement-types-erroneous1: Fail # Issue 26838
-js_interop_constructor_name_test/HTMLDivElement-types-erroneous2: Fail # Issue 26838
 custom/document_register_type_extensions_test/construction: Pass, Timeout # Roll 50 failure
 custom/document_register_type_extensions_test/registration: Pass, Timeout # Roll 50 failure
 custom/entered_left_view_test/shadow_dom: Pass, Timeout # Roll 50 failure
@@ -28,26 +39,118 @@
 indexeddb_3_test: Pass, Timeout # Roll 50 failure
 indexeddb_4_test: Pass, Timeout # Roll 50 failure
 indexeddb_5_test: Pass, Timeout # Roll 50 failure
+input_element_test/attributes: Fail # Issue 21555
+js_interop_constructor_name_test/HTMLDivElement-types-erroneous1: Fail # Issue 26838
+js_interop_constructor_name_test/HTMLDivElement-types-erroneous2: Fail # Issue 26838
+js_type_test/dynamic-String-not-Foo: Fail # Issue 26838
+js_type_test/dynamic-String-not-dynamic-Foo: Fail # Issue 26838
+js_type_test/dynamic-null-not-Foo: Fail # Issue 26838
+js_typed_interop_default_arg_test/default_value: MissingCompileTimeError # Issue #25759
 js_typed_interop_side_cast_exp_test: Pass, RuntimeError # Roll 50 failure
+mirrors_js_typed_interop_test: Pass, Slow
 svgelement_test/PathElement: Pass, RuntimeError # Roll 50 failure
 websql_test/functional: Pass, Timeout # Roll 50 failure
+wrapping_collections_test: SkipByDesign # Testing an issue that is only relevant to Dartium
 xhr_test/xhr: Pass, RuntimeError # Roll 50 failure
 
-[ $compiler == dart2js && $checked ]
-js_function_getter_trust_types_test: Skip # --trust-type-annotations incompatible with --checked
+[ $runtime == drt ]
+webgl_extensions_test: Skip # webgl does not work properly on DRT, which is 'headless'.
 
-[ $compiler == dart2js && $csp && $browser ]
-custom/js_custom_test: Fail # Issue 14643
-custom/element_upgrade_test: Fail # Issue 17298
+[ $runtime == ie11 ]
+audiobuffersourcenode_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+audiocontext_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+canvasrenderingcontext2d_test/arc: Pass, Fail # Pixel unexpected value. Please triage this failure.
+canvasrenderingcontext2d_test/drawImage_video_element: Fail # IE does not support drawImage w/ video element
+canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Fail # IE does not support drawImage w/ video element
+crypto_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+css_test/supportsPointConversions: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+custom/document_register_type_extensions_test/single-parameter: Fail # Issue 13193.
+deferred_multi_app_htmltest: Skip # Times out on IE.  Issue 21537
+element_animate_test: Fail # Element.animate not supported on these browsers.
+element_test/click: Fail # IE does not support firing this event.
+element_types_test/supported_content: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+element_types_test/supported_details: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+element_types_test/supported_keygen: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+element_types_test/supported_meter: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+element_types_test/supported_output: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+element_types_test/supported_shadow: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+element_types_test/supported_template: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+event_test: RuntimeError # Issue 23437. Only three failures, but hard to break them out.
+fileapi_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+gamepad_test: Fail # IE does not support Navigator.getGamepads()
+history_test/supported_HashChangeEvent: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+indexeddb_5_test: Fail # Issue 12893
+input_element_test/supported_date: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+input_element_test/supported_datetime-local: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+input_element_test/supported_month: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+input_element_test/supported_time: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+input_element_test/supported_week: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+js_test/transferrables: RuntimeError # Issue 14246
+js_util_test/callConstructor: RuntimeError # Issue 26978
+localstorage_test: Pass, RuntimeError # Issue 22166
+media_stream_test/supported_MediaStreamEvent: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+media_stream_test/supported_MediaStreamTrackEvent: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+media_stream_test/supported_media: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+mediasource_test/functional: Pass, Fail # Fails on Windows 8
+mediasource_test/supported: Pass, Fail # Should pass on Windows 8
+no_linked_scripts_htmltest: Skip # Times out on IE.  Issue 21537
+notification_test/supported_notification: Fail # Notification not supported on IE
+postmessage_structured_test/more_primitives: Fail # Does not support the MessageEvent constructor.
+request_animation_frame_test: Skip # Times out. Issue 22167
+rtc_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+scripts_htmltest: Skip # Times out on IE.  Issue 21537
+serialized_script_value_test: Fail
+shadow_dom_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+speechrecognition_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+storage_test: Pass, RuntimeError # Issue 22166
+svgelement_test/supported_altGlyph: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+svgelement_test/supported_animate: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+svgelement_test/supported_animateMotion: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+svgelement_test/supported_animateTransform: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+svgelement_test/supported_foreignObject: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+svgelement_test/supported_set: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+text_event_test: RuntimeError # Issue 23437
+touchevent_test/supported: Fail # IE does not support TouchEvents
+transferables_test: Pass, Fail # Issues 20659.
+transition_event_test/functional: Skip # Times out. Issue 22167
+two_scripts_htmltest: Skip # Times out on IE.  Issue 21537
+webgl_1_test/functional: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+websocket_test/websocket: Fail # Issue 7875. Closed with "working as intended".
+websql_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+wheelevent_test: RuntimeError # Issue 23437
+worker_test/functional: Pass, Fail # Issues 20659.
+xhr_test/json: Fail # IE10 returns string, not JSON object
+xsltprocessor_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
 
-[ $compiler == dart2js && $browser ]
-custom/created_callback_test: Fail # Support for created constructor. Issue 14835
-fontface_loaded_test: Fail # Support for promises.
+[ $runtime == safari ]
+audiobuffersourcenode_test/functional: RuntimeError
+indexeddb_1_test/functional: Skip # Times out. Issue 21433
+indexeddb_2_test: RuntimeError # Issue 21433
+indexeddb_3_test: Skip # Times out 1 out of 10.
+indexeddb_4_test: RuntimeError # Issue 21433
+indexeddb_5_test: RuntimeError # Issue 21433
+input_element_test/supported_date: Fail
+input_element_test/supported_datetime-local: Fail
+input_element_test/supported_month: RuntimeError
+input_element_test/supported_time: RuntimeError
+input_element_test/supported_week: RuntimeError
+notification_test/constructors: Fail # Safari doesn't let us access the fields of the Notification to verify them.
+touchevent_test/supported: Fail # Safari does not support TouchEvents
 
-[ $compiler == dart2js && ($runtime == safari || $runtime == safarimobilesim || $runtime == ff  || $ie) ]
-custom/entered_left_view_test/viewless_document: Fail # Polyfill does not handle this
-fontface_test: Fail # Fontface not supported on these.
-custom/attribute_changed_callback_test/unsupported_on_polyfill: Fail # Polyfill does not support
+[ $runtime == safarimobilesim ]
+element_offset_test/offset: RuntimeError # Issue 18573
+element_types_test/supported_meter: RuntimeError # Issue 18573
+element_types_test/supported_template: Fail
+event_test: RuntimeError # Safarimobilesim does not support WheelEvent
+indexeddb_1_test/supported: Fail
+notification_test/constructors: Pass # Safari mobile will pass this test on the basis that notifications aren't supported at all.
+notification_test/supported_notification: RuntimeError # Issue 22869
+performance_api_test/supported: Fail
+wheelevent_test: RuntimeError # Safarimobilesim does not support WheelEvent
+xhr_test/json: Fail # Safari doesn't support JSON response type
+
+[ $builder_tag == strong && $compiler == dart2analyzer ]
+*: Skip # Issue 28649
 
 [ $compiler == dart2js && $runtime == chrome ]
 element_animate_test/timing_dict: RuntimeError # Issue 26730
@@ -64,20 +167,18 @@
 touchevent_test/supported: Fail # Touch events are only supported on touch devices
 
 [ $compiler == dart2js && $runtime == chromeOnAndroid ]
+audiobuffersourcenode_test/supported: Fail # TODO(dart2js-team): Please triage this failure.
+audiocontext_test/supported: RuntimeError # TODO(dart2js-team): Please triage this failure.
+canvasrenderingcontext2d_test/drawImage_video_element: Fail # TODO(dart2js-team): Please triage this failure.
+canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Fail # TODO(dart2js-team): Please triage this failure.
+canvasrenderingcontext2d_test/fillText: Fail # TODO(dart2js-team): Please triage this failure.
 crypto_test/functional: Pass, Slow # TODO(dart2js-team): Please triage this failure.
-input_element_test/supported_datetime-local: Pass, Slow # TODO(dart2js-team): Please triage this failure.
-
+element_types_test/supported_datalist: Fail # TODO(dart2js-team): Please triage this failure.
 fileapi_test/entry: Fail, Pass # TODO(dart2js-team): Please triage this failure.
 fileapi_test/fileEntry: Fail, Pass # TODO(dart2js-team): Please triage this failure.
 fileapi_test/getDirectory: Fail, Pass # TODO(dart2js-team): Please triage this failure.
 fileapi_test/getFile: Fail, Pass # TODO(dart2js-team): Please triage this failure.
-
-audiocontext_test/supported: RuntimeError # TODO(dart2js-team): Please triage this failure.
-audiobuffersourcenode_test/supported: Fail # TODO(dart2js-team): Please triage this failure.
-canvasrenderingcontext2d_test/drawImage_video_element: Fail # TODO(dart2js-team): Please triage this failure.
-canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Fail # TODO(dart2js-team): Please triage this failure.
-canvasrenderingcontext2d_test/fillText: Fail # TODO(dart2js-team): Please triage this failure.
-element_types_test/supported_datalist: Fail # TODO(dart2js-team): Please triage this failure.
+input_element_test/supported_datetime-local: Pass, Slow # TODO(dart2js-team): Please triage this failure.
 input_element_test/supported_week: Fail # TODO(dart2js-team): Please triage this failure.
 media_stream_test/supported_media: Fail # TODO(dart2js-team): Please triage this failure.
 rtc_test/supported: Fail # TODO(dart2js-team): Please triage this failure.
@@ -85,253 +186,45 @@
 speechrecognition_test/types: Fail # TODO(dart2js-team): Please triage this failure.
 xhr_test/json: Fail # TODO(dart2js-team): Please triage this failure.
 
-[ $runtime == safarimobilesim ]
-element_offset_test/offset: RuntimeError # Issue 18573
-element_types_test/supported_meter: RuntimeError # Issue 18573
-
-[ $runtime == chrome && $system == macos ]
-canvasrenderingcontext2d_test/drawImage_video_element: Skip # Times out. Please triage this failure.
-canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Skip # Times out. Please triage this failure.
-transition_event_test/functional: Skip # Times out. Issue 22167
-request_animation_frame_test: Skip # Times out. Issue 22167
-custom/*: Pass, Timeout # Issue 26789
-custom_elements_test: Pass, Timeout # Issue 26789
-custom_element_method_clash_test: Pass, Timeout # Issue 26789
-custom_element_name_clash_test: Pass, Timeout # Issue 26789
-
-[$runtime == drt || $runtime == chrome || $runtime == chromeOnAndroid ]
-webgl_1_test: Pass, Fail # Issue 8219
-
-[ $compiler == dart2js && $minified ]
-canvas_pixel_array_type_alias_test/types2_runtimeTypeName: Fail, OK # Issue 12605
-
-[ $runtime == ie11 ]
-canvasrenderingcontext2d_test/arc: Pass, Fail # Pixel unexpected value. Please triage this failure.
-canvasrenderingcontext2d_test/drawImage_video_element: Fail # IE does not support drawImage w/ video element
-canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Fail # IE does not support drawImage w/ video element
-custom/document_register_type_extensions_test/single-parameter: Fail # Issue 13193.
-deferred_multi_app_htmltest: Skip # Times out on IE.  Issue 21537
-element_animate_test: Fail # Element.animate not supported on these browsers.
-element_test/click: Fail # IE does not support firing this event.
-event_test: RuntimeError # Issue 23437. Only three failures, but hard to break them out.
-gamepad_test: Fail # IE does not support Navigator.getGamepads()
-indexeddb_5_test: Fail # Issue 12893
-js_test/transferrables: RuntimeError # Issue 14246
-js_util_test/callConstructor: RuntimeError # Issue 26978
-localstorage_test: Pass, RuntimeError # Issue 22166
-no_linked_scripts_htmltest: Skip # Times out on IE.  Issue 21537
-notification_test/supported_notification: Fail # Notification not supported on IE
-postmessage_structured_test/more_primitives: Fail # Does not support the MessageEvent constructor.
-request_animation_frame_test: Skip # Times out. Issue 22167
-scripts_htmltest: Skip # Times out on IE.  Issue 21537
-serialized_script_value_test: Fail
-storage_test: Pass, RuntimeError # Issue 22166
-text_event_test: RuntimeError # Issue 23437
-transferables_test: Pass, Fail # Issues 20659.
-transition_event_test/functional: Skip # Times out. Issue 22167
-two_scripts_htmltest: Skip # Times out on IE.  Issue 21537
-websocket_test/websocket: Fail # Issue 7875. Closed with "working as intended".
-wheelevent_test: RuntimeError # Issue 23437
-worker_test/functional: Pass, Fail # Issues 20659.
-
-audiobuffersourcenode_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-audiocontext_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-crypto_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-css_test/supportsPointConversions: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-element_types_test/supported_content: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-element_types_test/supported_details: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-element_types_test/supported_keygen: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-element_types_test/supported_meter: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-element_types_test/supported_output: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-element_types_test/supported_shadow: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-element_types_test/supported_template: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-fileapi_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-history_test/supported_HashChangeEvent: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-input_element_test/supported_date: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-input_element_test/supported_datetime-local: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-input_element_test/supported_month: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-input_element_test/supported_time: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-input_element_test/supported_week: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-media_stream_test/supported_MediaStreamEvent: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-media_stream_test/supported_MediaStreamTrackEvent: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-media_stream_test/supported_media: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-mediasource_test/supported: Pass, Fail # Should pass on Windows 8
-mediasource_test/functional: Pass, Fail # Fails on Windows 8
-rtc_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-shadow_dom_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-speechrecognition_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-svgelement_test/supported_altGlyph: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-svgelement_test/supported_animate: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-svgelement_test/supported_animateMotion: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-svgelement_test/supported_animateTransform: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-svgelement_test/supported_foreignObject: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-svgelement_test/supported_set: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-touchevent_test/supported: Fail # IE does not support TouchEvents
-webgl_1_test/functional: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-websql_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-xhr_test/json: Fail # IE10 returns string, not JSON object
-xsltprocessor_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-
-[ $compiler == dart2js && $runtime == drt && ! $checked ]
+[ $compiler == dart2js && $runtime == drt && !$checked ]
 audiocontext_test/functional: Pass, Fail
 
-[ $runtime == safari || $runtime == safarimobilesim ]
-worker_api_test: Skip # Issue 13221
-webgl_1_test: Pass, Fail # Issue 8219
-canvasrenderingcontext2d_test/drawImage_video_element: Fail # Safari does not support drawImage w/ video element
-canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Fail # Safari does not support drawImage w/ video element
-element_test: Pass, Fail # Issue 21434
-mediasource_test: Pass, Fail # MediaSource only available on Safari 8 desktop, we can't express that.
-element_animate_test: Fail # Element.animate not supported on these browsers.
-gamepad_test: Fail # Safari does not support Navigator.getGamepads()
-
-element_types_test/supported_content: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
-element_types_test/supported_datalist: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
-element_types_test/supported_shadow: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
-fileapi_test/supported: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
-media_stream_test/supported_MediaStreamEvent: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
-media_stream_test/supported_MediaStreamTrackEvent: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
-media_stream_test/supported_media: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
-rtc_test/supported: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
-shadow_dom_test/supported: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
-speechrecognition_test/supported: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
-
-[ $runtime == safarimobilesim ]
-performance_api_test/supported: Fail
-indexeddb_1_test/supported: Fail
-element_types_test/supported_template: Fail
-xhr_test/json: Fail # Safari doesn't support JSON response type
-notification_test/constructors: Pass # Safari mobile will pass this test on the basis that notifications aren't supported at all.
-notification_test/supported_notification: RuntimeError # Issue 22869
-wheelevent_test: RuntimeError # Safarimobilesim does not support WheelEvent
-event_test: RuntimeError # Safarimobilesim does not support WheelEvent
-
-[ $runtime == safari ]
-audiobuffersourcenode_test/functional: RuntimeError
-input_element_test/supported_month: RuntimeError
-input_element_test/supported_time: RuntimeError
-input_element_test/supported_week: RuntimeError
-input_element_test/supported_date: Fail
-input_element_test/supported_datetime-local: Fail
-touchevent_test/supported: Fail # Safari does not support TouchEvents
-notification_test/constructors: Fail # Safari doesn't let us access the fields of the Notification to verify them.
-indexeddb_1_test/functional: Skip # Times out. Issue 21433
-indexeddb_2_test: RuntimeError # Issue 21433
-indexeddb_4_test: RuntimeError # Issue 21433
-indexeddb_5_test: RuntimeError # Issue 21433
-indexeddb_3_test: Skip # Times out 1 out of 10.
-
-[  $compiler == dart2js && $runtime == ff ]
-history_test/history: Skip # Issue 22050
-xhr_test/xhr: Pass, Fail # Issue 11602
-dart_object_local_storage_test: Skip  # sessionStorage NS_ERROR_DOM_NOT_SUPPORTED_ERR
-webgl_1_test: Pass, Fail   # Issue 8219
-text_event_test: Fail # Issue 17893
+[ $compiler == dart2js && $runtime == ff ]
+dart_object_local_storage_test: Skip # sessionStorage NS_ERROR_DOM_NOT_SUPPORTED_ERR
 element_animate_test/timing_dict: RuntimeError # Issue 26730
-messageevent_test: Pass, RuntimeError # Issue 28983
-serialized_script_value_test: Pass, RuntimeError # Issue 28983
-element_types_test/supported_content: Pass, RuntimeError # Issue 28983
-element_types_test/supported_shadow: Pass, RuntimeError # Issue 28983
-
 element_classes_test: RuntimeError # Issue 27535
+element_types_test/supported_content: Pass, RuntimeError # Issue 28983
 element_types_test/supported_keygen: Fail # Firefox Feature support statuses - All changes should be accompanied by platform support annotation changes.
+element_types_test/supported_shadow: Pass, RuntimeError # Issue 28983
 fileapi_test/supported: Fail # Firefox Feature support statuses - All changes should be accompanied by platform support annotation changes.
+history_test/history: Skip # Issue 22050
 input_element_test/supported_datetime-local: Fail # Firefox Feature support statuses - All changes should be accompanied by platform support annotation changes.
 input_element_test/supported_month: Fail # Firefox Feature support statuses - All changes should be accompanied by platform support annotation changes.
 input_element_test/supported_week: Fail # Firefox Feature support statuses - All changes should be accompanied by platform support annotation changes.
 media_stream_test/supported_MediaStreamEvent: Fail # Firefox Feature support statuses - All changes should be accompanied by platform support annotation changes.
 media_stream_test/supported_MediaStreamTrackEvent: Fail # Firefox Feature support statuses - All changes should be accompanied by platform support annotation changes.
+messageevent_test: Pass, RuntimeError # Issue 28983
+serialized_script_value_test: Pass, RuntimeError # Issue 28983
 shadow_dom_test/supported: Fail # Firefox Feature support statuses - All changes should be accompanied by platform support annotation changes.
 speechrecognition_test/supported: Fail # Firefox Feature support statuses - All changes should be accompanied by platform support annotation changes.
+text_event_test: Fail # Issue 17893
 touchevent_test/supported: Fail # Firefox Feature support statuses - All changes should be accompanied by platform support annotation changes.
+webgl_1_test: Pass, Fail # Issue 8219
 websql_test/supported: Fail # Firefox Feature support statuses - All changes should be accompanied by platform support annotation changes.
+xhr_test/xhr: Pass, Fail # Issue 11602
 
-# 'html' tests import the HTML library, so they only make sense in
-# a browser environment.
-[ $runtime == vm || $runtime == dart_precompiled ]
-*: Skip
+[ $compiler == dart2js && $browser ]
+custom/created_callback_test: Fail # Support for created constructor. Issue 14835
+fontface_loaded_test: Fail # Support for promises.
 
-[ $compiler == dart2js && ($runtime == drt || $runtime == ff) ]
-request_animation_frame_test: Skip # Async test hangs.
+[ $compiler == dart2js && $browser && $csp ]
+custom/element_upgrade_test: Fail # Issue 17298
+custom/js_custom_test: Fail # Issue 14643
 
-[ $runtime == drt ]
-webgl_extensions_test: Skip # webgl does not work properly on DRT, which is 'headless'.
+[ $compiler == dart2js && $checked ]
+js_function_getter_trust_types_test: Skip # --trust-type-annotations incompatible with --checked
 
-# Note: these tests are all injecting scripts by design.  This is not allowed under CSP.
-# TODO(sra): Change these tests to use a same-origin JavaScript script file.
-[ $compiler == dart2js && $csp && ($runtime == drt || $runtime == safari || $runtime == ff || $runtime == chrome || $runtime == chromeOnAndroid) ]
-event_customevent_test: SkipByDesign
-js_interop_1_test: SkipByDesign
-js_test: SkipByDesign
-js_array_test: SkipByDesign
-js_util_test: SkipByDesign
-js_typed_interop_bind_this_test: SkipByDesign
-js_typed_interop_callable_object_test: SkipByDesign
-js_typed_interop_test: SkipByDesign
-js_typed_interop_default_arg_test: SkipByDesign
-js_typed_interop_type_test: SkipByDesign
-js_typed_interop_type1_test: SkipByDesign
-js_typed_interop_type3_test: SkipByDesign
-js_typed_interop_window_property_test: SkipByDesign
-js_function_getter_test: SkipByDesign
-js_function_getter_trust_types_test: SkipByDesign
-js_dart_to_string_test: SkipByDesign
-mirrors_js_typed_interop_test: SkipByDesign
-postmessage_structured_test: SkipByDesign
-
-[ $compiler == dart2js &&  ($runtime == chrome || $runtime == drt) ]
-svgelement_test/supported_altGlyph: RuntimeError # Issue 25787
-
-[ ($runtime == drt && $system == macos) || $system == windows ]
-xhr_test/xhr: Skip # Times out.  Issue 21527
-
-[ $compiler == dart2analyzer ]
-custom/document_register_basic_test: StaticWarning
-custom/element_upgrade_test: StaticWarning
-datalistelement_test: StaticWarning
-documentfragment_test: StaticWarning
-element_add_test: StaticWarning
-element_test: StaticWarning
-events_test: StaticWarning
-htmlelement_test: StaticWarning
-js_function_getter_trust_types_test: skip # dart2js specific flags.
-localstorage_test: StaticWarning
-mutationobserver_test: StaticWarning
-queryall_test: fail
-track_element_constructor_test: StaticWarning
-transferables_test: StaticWarning
-typed_arrays_range_checks_test: StaticWarning
-typing_test: StaticWarning
-webgl_1_test: StaticWarning
-window_nosuchmethod_test: StaticWarning
-js_typed_interop_default_arg_test/default_value: MissingCompileTimeError # Issue #25759
-
-[ $compiler == dart2analyzer && $builder_tag == strong ]
-*: Skip # Issue 28649
-
-[ $compiler == dart2js && $dart2js_with_kernel && $host_checked ]
-custom/mirrors_2_test: RuntimeError
-custom/mirrors_test: RuntimeError
-fileapi_test/entry: RuntimeError
-js_typed_interop_default_arg_test/explicit_argument: RuntimeError
-js_typed_interop_test/static_method_tearoff_1: RuntimeError
-
-[ $compiler == dart2js && $dart2js_with_kernel && $minified ]
-custom/mirrors_2_test: RuntimeError
-custom/mirrors_test: RuntimeError
-fileapi_test/entry: RuntimeError
-js_typed_interop_default_arg_test/explicit_argument: RuntimeError
-js_typed_interop_test/static_method_tearoff_1: RuntimeError
-
-[ $compiler == dart2js && $dart2js_with_kernel && $fast_startup ]
-js_typed_interop_default_arg_test/explicit_argument: RuntimeError
-js_typed_interop_default_arg_test/none: RuntimeError
-js_typed_interop_test/object literal: RuntimeError
-js_typed_interop_test/static_method_call: RuntimeError
-js_typed_interop_test/static_method_tearoff_1: RuntimeError
-js_util_test/hasProperty: RuntimeError
-
-[ $compiler == dart2js && $dart2js_with_kernel && $checked ]
+[ $compiler == dart2js && $checked && $dart2js_with_kernel ]
 canvasrenderingcontext2d_test/drawImage_image_element: Timeout
 canvasrenderingcontext2d_test/drawImage_video_element: Timeout
 canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Timeout
@@ -390,12 +283,112 @@
 xhr_test/headers: RuntimeError
 xhr_test/json: Timeout
 xhr_test/xhr: Timeout
-xhr_test/xhr_requestBlob/xhr_requestBlob: Pass
 xhr_test/xhr_requestBlob: RuntimeError
+xhr_test/xhr_requestBlob/xhr_requestBlob: Pass
+
+# Note: these tests are all injecting scripts by design.  This is not allowed under CSP.
+# TODO(sra): Change these tests to use a same-origin JavaScript script file.
+[ $compiler == dart2js && $csp && ($runtime == chrome || $runtime == chromeOnAndroid || $runtime == drt || $runtime == ff || $runtime == safari) ]
+event_customevent_test: SkipByDesign
+js_array_test: SkipByDesign
+js_dart_to_string_test: SkipByDesign
+js_function_getter_test: SkipByDesign
+js_function_getter_trust_types_test: SkipByDesign
+js_interop_1_test: SkipByDesign
+js_test: SkipByDesign
+js_typed_interop_bind_this_test: SkipByDesign
+js_typed_interop_callable_object_test: SkipByDesign
+js_typed_interop_default_arg_test: SkipByDesign
+js_typed_interop_test: SkipByDesign
+js_typed_interop_type1_test: SkipByDesign
+js_typed_interop_type3_test: SkipByDesign
+js_typed_interop_type_test: SkipByDesign
+js_typed_interop_window_property_test: SkipByDesign
+js_util_test: SkipByDesign
+mirrors_js_typed_interop_test: SkipByDesign
+postmessage_structured_test: SkipByDesign
+
+[ $compiler == dart2js && $dart2js_with_kernel && $fast_startup ]
+js_typed_interop_default_arg_test/explicit_argument: RuntimeError
+js_typed_interop_default_arg_test/none: RuntimeError
+js_typed_interop_test/object literal: RuntimeError
+js_typed_interop_test/static_method_call: RuntimeError
+js_typed_interop_test/static_method_tearoff_1: RuntimeError
+js_util_test/hasProperty: RuntimeError
+
+[ $compiler == dart2js && $dart2js_with_kernel && $host_checked ]
+custom/mirrors_2_test: RuntimeError
+custom/mirrors_test: RuntimeError
+fileapi_test/entry: RuntimeError
+js_typed_interop_default_arg_test/explicit_argument: RuntimeError
+js_typed_interop_test/static_method_tearoff_1: RuntimeError
+
+[ $compiler == dart2js && $dart2js_with_kernel && $minified ]
+custom/mirrors_2_test: RuntimeError
+custom/mirrors_test: RuntimeError
+fileapi_test/entry: RuntimeError
+js_typed_interop_default_arg_test/explicit_argument: RuntimeError
+js_typed_interop_test/static_method_tearoff_1: RuntimeError
 
 [ $compiler == dart2js && $fast_startup ]
 custom/constructor_calls_created_synchronously_test: Fail # mirrors not supported
 custom/js_custom_test: Fail # mirrors not supported
-custom/mirrors_test: Fail # mirrors not supported
 custom/mirrors_2_test: Fail # mirrors not supported
+custom/mirrors_test: Fail # mirrors not supported
 mirrors_js_typed_interop_test: Fail # mirrors not supported
+
+[ $compiler == dart2js && $minified ]
+canvas_pixel_array_type_alias_test/types2_runtimeTypeName: Fail, OK # Issue 12605
+
+[ $compiler == dart2js && ($runtime == chrome || $runtime == drt) ]
+svgelement_test/supported_altGlyph: RuntimeError # Issue 25787
+
+[ $compiler == dart2js && ($runtime == drt || $runtime == ff) ]
+request_animation_frame_test: Skip # Async test hangs.
+
+[ $compiler == dart2js && ($runtime == ff || $runtime == safari || $runtime == safarimobilesim || $ie) ]
+custom/attribute_changed_callback_test/unsupported_on_polyfill: Fail # Polyfill does not support
+custom/entered_left_view_test/viewless_document: Fail # Polyfill does not handle this
+fontface_test: Fail # Fontface not supported on these.
+
+[ $runtime == chrome && $system == macos ]
+canvasrenderingcontext2d_test/drawImage_video_element: Skip # Times out. Please triage this failure.
+canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Skip # Times out. Please triage this failure.
+custom/*: Pass, Timeout # Issue 26789
+custom_element_method_clash_test: Pass, Timeout # Issue 26789
+custom_element_name_clash_test: Pass, Timeout # Issue 26789
+custom_elements_test: Pass, Timeout # Issue 26789
+request_animation_frame_test: Skip # Times out. Issue 22167
+transition_event_test/functional: Skip # Times out. Issue 22167
+
+[ $runtime == chrome || $runtime == chromeOnAndroid || $runtime == drt ]
+webgl_1_test: Pass, Fail # Issue 8219
+
+# 'html' tests import the HTML library, so they only make sense in
+# a browser environment.
+[ $runtime == dart_precompiled || $runtime == vm ]
+*: Skip
+
+[ $runtime == safari || $runtime == safarimobilesim ]
+canvasrenderingcontext2d_test/drawImage_video_element: Fail # Safari does not support drawImage w/ video element
+canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Fail # Safari does not support drawImage w/ video element
+element_animate_test: Fail # Element.animate not supported on these browsers.
+element_test: Pass, Fail # Issue 21434
+element_types_test/supported_content: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
+element_types_test/supported_datalist: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
+element_types_test/supported_shadow: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
+fileapi_test/supported: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
+gamepad_test: Fail # Safari does not support Navigator.getGamepads()
+media_stream_test/supported_MediaStreamEvent: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
+media_stream_test/supported_MediaStreamTrackEvent: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
+media_stream_test/supported_media: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
+mediasource_test: Pass, Fail # MediaSource only available on Safari 8 desktop, we can't express that.
+rtc_test/supported: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
+shadow_dom_test/supported: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
+speechrecognition_test/supported: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
+webgl_1_test: Pass, Fail # Issue 8219
+worker_api_test: Skip # Issue 13221
+
+[ $system == windows || $runtime == drt && $system == macos ]
+xhr_test/xhr: Skip # Times out.  Issue 21527
+
diff --git a/tests/isolate/isolate.status b/tests/isolate/isolate.status
index bb7c9b2..9b965dd 100644
--- a/tests/isolate/isolate.status
+++ b/tests/isolate/isolate.status
@@ -2,47 +2,17 @@
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
 
-[$runtime == vm && $compiler == none && $system == fuchsia]
-*: Skip  # Not yet triaged.
-
-[ $runtime == vm || $runtime == flutter || $runtime == dart_precompiled ]
-browser/*: SkipByDesign  # Browser specific tests
-isolate_stress_test: Skip # Issue 12588: Uses dart:html. This should be able to pass when we have wrapper-less tests.
-stacktrace_message_test: RuntimeError # Fails to send stacktrace object.
-
-[ $runtime != vm || $mode == product || $compiler == app_jit ]
-checked_test: Skip # Unsupported.
-
-[ $compiler == none || $compiler == precompiler || $compiler == app_jit ]
-compile_time_error_test/01: Skip # Issue 12587
-ping_test: Skip           # Resolve test issues
-ping_pause_test: Skip     # Resolve test issues
-kill3_test: Pass, Fail    # Bad test: expects total message order
-
-message3_test/int32x4: Fail, Crash, Timeout # Issue 21818
-
-[ $compiler == dart2js && $runtime == safarimobilesim ]
-compile_time_error_test/none: Pass, Slow
-
-[ $compiler == dart2js && $jscl ]
-browser/*: SkipByDesign  # Browser specific tests
-
-[ $compiler == dart2js && $runtime == jsshell ]
-pause_test: Fail, OK  # non-zero timer not supported.
-timer_isolate_test: Fail, OK # Needs Timer to run.
-
-[ $compiler == dart2js && $runtime == safari ]
-cross_isolate_message_test: Skip # Issue 12627
-message_test: Skip # Issue 12627
+[ $compiler == dart2analyzer ]
+browser/typed_data_message_test: StaticWarning
+mint_maker_test: StaticWarning
 
 [ $compiler == dart2js ]
-stacktrace_message_test: RuntimeError # Fails to send stacktrace object.
 browser/issue_12474_test: CompileTimeError # Issue 22529
 enum_const_test/02: RuntimeError # Issue 21817
-error_at_spawnuri_test: SkipByDesign  # Test uses a ".dart" URI.
-error_exit_at_spawnuri_test: SkipByDesign  # Test uses a ".dart" URI.
-exit_at_spawnuri_test: SkipByDesign  # Test uses a ".dart" URI.
-function_send1_test: SkipByDesign   # Test uses a ".dart" URI.
+error_at_spawnuri_test: SkipByDesign # Test uses a ".dart" URI.
+error_exit_at_spawnuri_test: SkipByDesign # Test uses a ".dart" URI.
+exit_at_spawnuri_test: SkipByDesign # Test uses a ".dart" URI.
+function_send1_test: SkipByDesign # Test uses a ".dart" URI.
 issue_21398_parent_isolate1_test: SkipByDesign # Test uses a ".dart" URI.
 issue_21398_parent_isolate2_test: SkipByDesign # Test uses a ".dart" URI.
 issue_21398_parent_isolate_test: SkipByDesign # Test uses a ".dart" URI.
@@ -51,22 +21,60 @@
 message3_test/constInstance: RuntimeError # Issue 21817
 message3_test/constList: RuntimeError # Issue 21817
 message3_test/constList_identical: RuntimeError # Issue 21817
-message3_test/constMap: RuntimeError  # Issue 21817
+message3_test/constMap: RuntimeError # Issue 21817
 non_fatal_exception_in_timer_callback_test: Skip # Issue 23876
 spawn_uri_exported_main_test: SkipByDesign # Test uses a ".dart" URI.
 spawn_uri_nested_vm_test: SkipByDesign # Test uses a ".dart" URI.
 spawn_uri_vm_test: SkipByDesign # Test uses a ".dart" URI.
+stacktrace_message_test: RuntimeError # Fails to send stacktrace object.
+
+[ $mode == product ]
+issue_24243_parent_isolate_test: Skip # Requires checked mode
+
+[ $runtime == flutter ]
+isolate_import_test/01: Skip # Flutter Issue 9114
+issue_21398_parent_isolate2_test/01: Skip # Flutter Issue 9114
+simple_message_test/01: Skip # Flutter Issue 9114
+
+[ $csp ]
+browser/package_resolve_browser_hook_test: SkipByDesign # Test written in a way that violates CSP.
+deferred_in_isolate2_test: Skip # Issue 16898. Deferred loading does not work from an isolate in CSP-mode
+
+[ $jscl ]
+spawn_uri_multi_test/none: RuntimeError # Issue 13544
+
+[ $builder_tag == strong && $compiler == dart2analyzer ]
+*: Skip # Issue 28649
+
+[ $compiler == dart2js && $runtime == chrome ]
+function_send_test: Skip # Crashes Chrome 62: https://bugs.chromium.org/p/chromium/issues/detail?id=775506
+
+[ $compiler == dart2js && $runtime == chromeOnAndroid ]
+isolate_stress_test: Pass, Slow # TODO(kasperl): Please triage.
+mandel_isolate_test: Pass, Timeout # TODO(kasperl): Please triage.
+unresolved_ports_test: Pass, Timeout # Issue 15610
 
 [ $compiler == dart2js && $runtime != d8 ]
-error_exit_at_spawn_test: Skip # Issue 23876
 error_at_spawn_test: Skip # Issue 23876
+error_exit_at_spawn_test: Skip # Issue 23876
 exit_at_spawn_test: Skip # Issue 23876
 message4_test: Skip # Issue 30247
 
-[ $compiler == dart2js && $jscl ]
-spawn_uri_test: SkipByDesign # Loading another file is not supported in JS shell
+[ $compiler == dart2js && $runtime == jsshell ]
+pause_test: Fail, OK # non-zero timer not supported.
+timer_isolate_test: Fail, OK # Needs Timer to run.
 
-[ ($compiler == dart2js && $fast_startup) ]
+[ $compiler == dart2js && $runtime == safari ]
+cross_isolate_message_test: Skip # Issue 12627
+message_test: Skip # Issue 12627
+
+[ $compiler == dart2js && $runtime == safarimobilesim ]
+compile_time_error_test/none: Pass, Slow
+
+[ $compiler == dart2js && !$browser && $fast_startup ]
+isolate_current_test: Fail # please triage
+
+[ $compiler == dart2js && $fast_startup ]
 browser/compute_this_script_browser_test: Fail # mirrors not supported
 browser/typed_data_message_test: Fail # mirrors not supported
 count_test: Fail # mirrors not supported
@@ -89,46 +97,97 @@
 static_function_test: Fail # mirrors not supported
 unresolved_ports_test: Fail # mirrors not supported
 
-[ $compiler == dart2js && $fast_startup && ! $browser ]
-isolate_current_test: Fail  # please triage
+[ $compiler == dart2js && $jscl ]
+browser/*: SkipByDesign # Browser specific tests
+spawn_uri_test: SkipByDesign # Loading another file is not supported in JS shell
 
-[ $csp ]
-deferred_in_isolate2_test: Skip # Issue 16898. Deferred loading does not work from an isolate in CSP-mode
-browser/package_resolve_browser_hook_test: SkipByDesign # Test written in a way that violates CSP.
-
-[ $compiler == dart2js && $runtime == chrome ]
-function_send_test: Skip # Crashes Chrome 62: https://bugs.chromium.org/p/chromium/issues/detail?id=775506
-
-[ $compiler == dart2js && $runtime == chromeOnAndroid ]
-isolate_stress_test: Pass, Slow # TODO(kasperl): Please triage.
-
-mandel_isolate_test: Pass, Timeout # TODO(kasperl): Please triage.
-
-[ $compiler == dart2js && ( $runtime == ff || $runtime == safari || $runtime == drt || $runtime == chrome || $runtime == chromeOnAndroid) ]
+[ $compiler == dart2js && ($runtime == chrome || $runtime == chromeOnAndroid || $runtime == drt || $runtime == ff || $runtime == safari) ]
 isolate_stress_test: Pass, Slow # Issue 10697
 
-[ $compiler == dart2js && $runtime == chromeOnAndroid ]
-unresolved_ports_test: Pass, Timeout # Issue 15610
+[ $compiler == dartk && $strong ]
+checked_test: RuntimeError
+count_test: CompileTimeError
+cross_isolate_message_test: CompileTimeError
+error_at_spawnuri_test: RuntimeError
+error_exit_at_spawnuri_test: RuntimeError
+exit_at_spawnuri_test: RuntimeError
+function_send1_test: CompileTimeError
+function_send_test: CompileTimeError
+handle_error2_test: CompileTimeError
+handle_error3_test: CompileTimeError
+illegal_msg_function_test: CompileTimeError
+illegal_msg_mirror_test: CompileTimeError
+isolate_complex_messages_test: CompileTimeError
+isolate_current_test: CompileTimeError
+issue_21398_parent_isolate1_test: RuntimeError
+issue_21398_parent_isolate_test: RuntimeError
+issue_22778_test: Crash
+issue_24243_parent_isolate_test: RuntimeError
+kill_self_synchronously_test: RuntimeError
+kill_test: CompileTimeError
+mandel_isolate_test: CompileTimeError
+message2_test: CompileTimeError
+message3_test/byteBuffer: CompileTimeError
+message3_test/constInstance: CompileTimeError
+message3_test/constList: CompileTimeError
+message3_test/constList_identical: CompileTimeError
+message3_test/constMap: CompileTimeError
+message3_test/fun: CompileTimeError
+message3_test/int32x4: CompileTimeError
+message3_test/none: CompileTimeError
+message_test: CompileTimeError
+mint_maker_test: CompileTimeError
+nested_spawn2_test: CompileTimeError
+nested_spawn_test: CompileTimeError
+raw_port_test: CompileTimeError
+request_reply_test: CompileTimeError
+spawn_function_custom_class_test: CompileTimeError
+spawn_function_test: CompileTimeError
+spawn_uri_exported_main_test: RuntimeError
+spawn_uri_multi_test/none: CompileTimeError
+spawn_uri_nested_vm_test: CompileTimeError
+spawn_uri_test: CompileTimeError
+spawn_uri_vm_test: CompileTimeError
+static_function_test: CompileTimeError
+timer_isolate_test: CompileTimeError
+typed_message_test: CompileTimeError
+unresolved_ports_test: CompileTimeError
 
-[ $jscl ]
-spawn_uri_multi_test/none: RuntimeError # Issue 13544
+[ $compiler == none && $runtime == vm && $system == fuchsia ]
+*: Skip # Not yet triaged.
 
-[ $compiler == dart2analyzer ]
-browser/typed_data_message_test: StaticWarning
-mint_maker_test: StaticWarning
+[ $compiler == none && ($runtime == flutter || $runtime == vm) ]
+scenarios/short_package/short_package_test: Fail, OK # We do not plan to support the tested behavior anyway.
 
-[ $compiler == dart2analyzer && $builder_tag == strong ]
-*: Skip # Issue 28649
+[ $mode == debug && ($compiler == dartk || $compiler == dartkp) ]
+static_function_test: Skip # Flaky (https://github.com/dart-lang/sdk/issues/30063).
 
-[ $compiler == none && ($runtime == vm || $runtime == flutter) ]
-scenarios/short_package/short_package_test: Fail, OK  # We do not plan to support the tested behavior anyway.
+[ $compiler == app_jit || $compiler == none || $compiler == precompiler ]
+compile_time_error_test/01: Skip # Issue 12587
+kill3_test: Pass, Fail # Bad test: expects total message order
+message3_test/int32x4: Fail, Crash, Timeout # Issue 21818
+ping_pause_test: Skip # Resolve test issues
+ping_test: Skip # Resolve test issues
+
+[ $compiler == app_jit || $mode == product || $runtime != vm ]
+checked_test: Skip # Unsupported.
+
+[ $compiler == dartk || $compiler == dartkp ]
+compile_time_error_test/01: MissingCompileTimeError
+deferred_in_isolate2_test: Skip # Timeout. Deferred loading kernel issue 28335.
+deferred_in_isolate_test: Skip # Timeout. Deferred loading kernel issue 28335.
+issue_21398_parent_isolate2_test/01: Skip # Timeout. Deferred loading kernel issue 28335.
+message3_test/int32x4: Crash
+ping_pause_test: Pass, Timeout
+spawn_function_custom_class_test: Pass, Timeout
+spawn_uri_nested_vm_test: Pass, Timeout
 
 [ $compiler != none || $runtime != vm ]
-package_root_test: SkipByDesign  # Uses Isolate.packageRoot
-package_config_test: SkipByDesign  # Uses Isolate.packageConfig
-package_resolve_test: SkipByDesign  # Uses Isolate.resolvePackageUri
-spawn_uri_fail_test: SkipByDesign  # Uses dart:io.
-scenarios/*: SkipByDesign  # Use automatic package resolution, spawnFunction and .dart URIs.
+package_config_test: SkipByDesign # Uses Isolate.packageConfig
+package_resolve_test: SkipByDesign # Uses Isolate.resolvePackageUri
+package_root_test: SkipByDesign # Uses Isolate.packageRoot
+scenarios/*: SkipByDesign # Use automatic package resolution, spawnFunction and .dart URIs.
+spawn_uri_fail_test: SkipByDesign # Uses dart:io.
 
 [ $compiler == precompiler || $runtime == flutter ]
 count_test: SkipByDesign # Imports dart:mirrors
@@ -185,34 +244,16 @@
 static_function_test: Skip # Isolate.spawnUri
 unresolved_ports_test: Skip # Isolate.spawnUri
 
-[ $mode == product ]
-issue_24243_parent_isolate_test: Skip # Requires checked mode
+[ $runtime == dart_precompiled || $runtime == flutter || $runtime == vm ]
+browser/*: SkipByDesign # Browser specific tests
+isolate_stress_test: Skip # Issue 12588: Uses dart:html. This should be able to pass when we have wrapper-less tests.
+stacktrace_message_test: RuntimeError # Fails to send stacktrace object.
 
 [ $hot_reload || $hot_reload_rollback ]
-function_send_test: Pass, Fail # Closure identity
-message3_test/fun: Pass, Fail # Closure identity
-deferred_in_isolate_test: Crash # Requires deferred libraries
 deferred_in_isolate2_test: Crash # Requires deferred libraries
+deferred_in_isolate_test: Crash # Requires deferred libraries
+function_send_test: Pass, Fail # Closure identity
 issue_21398_parent_isolate2_test: Crash # Requires deferred libraries
+message3_test/fun: Pass, Fail # Closure identity
 spawn_uri_nested_vm_test: Pass, Crash # Issue 28192
 
-[ ($compiler == dartk || $compiler == dartkp) ]
-compile_time_error_test/01: MissingCompileTimeError
-message3_test/int32x4: Crash
-ping_pause_test: Pass, Timeout
-spawn_function_custom_class_test: Pass, Timeout
-spawn_uri_nested_vm_test: Pass, Timeout
-
-[ ($compiler == dartk || $compiler == dartkp) && $mode == debug ]
-static_function_test: Skip # Flaky (https://github.com/dart-lang/sdk/issues/30063).
-
-[ $runtime == flutter ]
-issue_21398_parent_isolate2_test/01: Skip # Flutter Issue 9114
-simple_message_test/01: Skip # Flutter Issue 9114
-isolate_import_test/01: Skip # Flutter Issue 9114
-
-# Deferred loading kernel issue 28335.
-[ ($compiler == dartk || $compiler == dartkp) ]
-deferred_in_isolate2_test: Skip # Timeout. Deferred loading kernel issue 28335.
-deferred_in_isolate_test: Skip # Timeout. Deferred loading kernel issue 28335.
-issue_21398_parent_isolate2_test/01: Skip # Timeout. Deferred loading kernel issue 28335.
diff --git a/tests/kernel/kernel.status b/tests/kernel/kernel.status
index 38ca3b0..3f36f5d 100644
--- a/tests/kernel/kernel.status
+++ b/tests/kernel/kernel.status
@@ -1,22 +1,26 @@
 # Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
-
 unsorted/invocation_errors_test: RuntimeError
 
+[ $compiler == dart2js ]
+unsorted/invocation_errors_test: Pass
+unsorted/loop_test: Skip
+unsorted/nsm_dispatcher_test: Skip # The test uses Symbol without MirrorsUsed
+unsorted/super_initializer_test: Skip
+unsorted/super_mixin_test: CompileTimeError
+
+[ $builder_tag == strong && $compiler == dart2analyzer ]
+*: Skip # Issue 28649
+
 [ $compiler == dart2analyzer && $runtime == none ]
 unsorted/invocation_errors_test: StaticWarning
 unsorted/super_mixin_test: CompileTimeError
 
-[ $compiler == dart2analyzer && $builder_tag == strong ]
-*: Skip # Issue 28649
-
-[ $compiler == dart2js ]
-unsorted/invocation_errors_test: Pass
-unsorted/nsm_dispatcher_test: Skip # The test uses Symbol without MirrorsUsed
-unsorted/super_initializer_test: Skip
-unsorted/super_mixin_test: CompileTimeError
-unsorted/loop_test: Skip
+[ $compiler == dartk && $strong ]
+unsorted/loop_test: RuntimeError
+unsorted/nsm_dispatcher_test: CompileTimeError
+unsorted/types_test: RuntimeError
 
 [ $runtime == dart_precompiled && $minified ]
-unsorted/symbol_literal_test: Skip  # Expects unobfuscated Symbol.toString.
+unsorted/symbol_literal_test: Skip # Expects unobfuscated Symbol.toString.
diff --git a/tests/language/built_in_identifier_illegal_test.dart b/tests/language/built_in_identifier_illegal_test.dart
index 36cdeec..d3bb320 100644
--- a/tests/language/built_in_identifier_illegal_test.dart
+++ b/tests/language/built_in_identifier_illegal_test.dart
@@ -4,20 +4,20 @@
 // Check that we cannot use a pseudo keyword at the class level code.
 
 // Pseudo keywords are not allowed to be used as class names.
-class abstract { } //   //# 01: compile-time error
-class as { } //         //# 19: compile-time error
+class abstract { } //   //# 01: syntax error
+class as { } //         //# 19: syntax error
 class dynamic { } //    //# 04: compile-time error
-class export { } //     //# 17: compile-time error
-class external { } //   //# 20: compile-time error
-class factory { } //    //# 05: compile-time error
-class get { } //        //# 06: compile-time error
-class implements { } // //# 07: compile-time error
-class import { } //     //# 08: compile-time error
-class library { } //    //# 10: compile-time error
-class operator { } //   //# 12: compile-time error
-class part { } //       //# 18: compile-time error
-class set { } //        //# 13: compile-time error
-class static { } //     //# 15: compile-time error
-class typedef { } //    //# 16: compile-time error
+class export { } //     //# 17: syntax error
+class external { } //   //# 20: syntax error
+class factory { } //    //# 05: syntax error
+class get { } //        //# 06: syntax error
+class implements { } // //# 07: syntax error
+class import { } //     //# 08: syntax error
+class library { } //    //# 10: syntax error
+class operator { } //   //# 12: syntax error
+class part { } //       //# 18: syntax error
+class set { } //        //# 13: syntax error
+class static { } //     //# 15: syntax error
+class typedef { } //    //# 16: syntax error
 
 main() {}
diff --git a/tests/language/generic_function_typedef2_test.dart b/tests/language/generic_function_typedef2_test.dart
index 4e322eb..ea58c89 100644
--- a/tests/language/generic_function_typedef2_test.dart
+++ b/tests/language/generic_function_typedef2_test.dart
@@ -19,16 +19,16 @@
         ));
 typedef L = Function(
     {
-  /* //  //# 05: compile-time error
+  /* //  //# 05: syntax error
     bool
-  */ //  //# 05: compile-time error
+  */ //  //# 05: continued
         x});
 
 typedef M = Function(
     {
-  /* //  //# 06: compile-time error
+  /* //  //# 06: syntax error
     bool
-  */ //  //# 06: compile-time error
+  */ //  //# 06: continued
         int});
 
 foo({bool int}) {}
diff --git a/tests/language/language.status b/tests/language/language.status
index 987c8d0..fcc41e1 100644
--- a/tests/language/language.status
+++ b/tests/language/language.status
@@ -1,117 +1,37 @@
 # Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
-
 # This directory contains tests that are intended to show the
 # current state of the language.
 
-[ $strong ]
-*: SkipByDesign # tests/language_2 has the strong mode versions of these tests.
+[ $compiler == app_jit ]
+deferred_inheritance_constraints_test/redirecting_constructor: Crash
 
-[ $compiler == precompiler && $runtime == dart_precompiled ]
-stacktrace_demangle_ctors_test: RuntimeError
+[ $compiler == dart2analyzer ]
+config_import_corelib_test: StaticWarning, OK
+vm/regress_27201_test: SkipByDesign # Loads bad library, so will always crash.
 
-[ $compiler == precompiler && $runtime == dart_precompiled && $checked ]
-assertion_initializer_const_error2_test/cc02: Crash
+[ $compiler == precompiler ]
+deferred_global_test: Fail # Deferred loading happens eagerly. Issue #27587
+deopt_inlined_function_lazy_test: Skip # Incompatible flag: --deoptimize-alot
+implicit_closure_test: Skip # Incompatible flag: --use_slow_path
+regress_23408_test: RuntimeError
+vm/regress_27201_test: Fail # Deferred loading happens eagerly. Issue #27587
 
-[$compiler == none && $runtime == vm && !$checked]
-assertion_initializer_const_error_test/01: MissingCompileTimeError
-assertion_initializer_const_function_error_test/01: MissingCompileTimeError
-
-[$compiler == app_jit && $runtime == vm && !$checked]
-assertion_initializer_const_error_test/01: MissingCompileTimeError
-assertion_initializer_const_function_error_test/01: MissingCompileTimeError
-
-[ ($runtime == vm || $runtime == flutter || $runtime == dart_precompiled) && $compiler != dartk && $compiler != dartkp ]
-abstract_beats_arguments2_test/01: Crash # Issue 29171
-
-# These test entries will be valid for vm (with and without kernel).
-[ $compiler == none || $compiler == app_jit || $compiler == dartk || $runtime == dart_precompiled ]
-async_star_cancel_while_paused_test: RuntimeError
-async_star_pause_test: Fail, OK # This is OK for now, but we may want to change the semantics to match the test.
-
-mixin_illegal_super_use_test: Skip # Issues 24478 and 23773, # These tests are skipped in the VM because it has "--supermixin" functionality enabled unconditionally.  The tests should be removed once the same is true for analyzer (#24478) and dart2js (#23773)
-mixin_illegal_superclass_test: Skip # Issues 24478 and 23773, # These tests are skipped in the VM because it has "--supermixin" functionality enabled unconditionally.  The tests should be removed once the same is true for analyzer (#24478) and dart2js (#23773)
-
-constructor5_test: Fail # Issue 6422, These bugs refer currently ongoing language discussions.
-constructor6_test: Fail # Issue 6422, These bugs refer currently ongoing language discussions.
-
-generalized_void_syntax_test: CompileTimeError
-generic_methods_type_expression_test: RuntimeError # Issue 25869 / 27460
-
-super_test: Fail, OK # Failures related to super call in ctor initializer list
-final_field_initialization_order_test: Fail, OK # Failures related to super call in ctor initializer list
-field_initialization_order_test: Fail, OK # Failures related to super call in ctor initializer list
-example_constructor_test: Fail, OK # Failures related to super call in ctor initializer list
-constructor3_test: Fail, OK # Failures related to super call in ctor initializer list
-constructor2_test: Fail, OK # Failures related to super call in ctor initializer list
-
-duplicate_export_negative_test: Fail # Issue 6134
-
-cyclic_type_test/02: Fail, OK # Non-contractive types are not supported in the vm.
-cyclic_type_test/04: Fail, OK # Non-contractive types are not supported in the vm.
-cyclic_type2_test: Fail, OK # Non-contractive types are not supported in the vm.
-least_upper_bound_expansive_test/*: Fail, OK # Non-contractive types are not supported in the vm.
-
-vm/regress_29145_test: Skip # Issue 29145
-
-no_main_test/01: Skip # Skipped temporaril until Issue 29895 is fixed.
-main_not_a_function_test/01: Skip # Skipped temporaril until Issue 29895 is fixed.
-
-[ $compiler == none || $compiler == precompiler || $compiler == app_jit ]
-dynamic_prefix_core_test/01: RuntimeError # Issue 12478
-multiline_strings_test: Fail # Issue 23020
-
-deferred_redirecting_factory_test: Fail, Crash # Issue 23408
-redirecting_constructor_initializer_test: RuntimeError # Issue 23488
-
-async_star_regression_2238_test: CompileTimeError
-
-[ ($compiler == none || $compiler == precompiler || $compiler == app_jit) && $checked ]
-generic_methods_function_type_test: Pass # Issue 25869, These generic functions tests pass for the wrong reason in checked mode, because the parsed type parameters are mapped to dynamic type.
-generic_methods_test: Pass # Issue 25869, These generic functions tests pass for the wrong reason in checked mode, because the parsed type parameters are mapped to dynamic type.
-generic_methods_new_test: Pass # Issue 25869, These generic functions tests pass for the wrong reason in checked mode, because the parsed type parameters are mapped to dynamic type.
-generic_local_functions_test: Pass # Issue 25869, These generic functions tests pass for the wrong reason in checked mode, because the parsed type parameters are mapped to dynamic type.
-generic_functions_test: Pass # Issue 25869, These generic functions tests pass for the wrong reason in checked mode, because the parsed type parameters are mapped to dynamic type.
-generic_methods_generic_function_parameter_test: Pass # Issue 25869, These generic functions tests pass for the wrong reason in checked mode, because the parsed type parameters are mapped to dynamic type.
-
-[ ($compiler == none || $compiler == precompiler || $compiler == app_jit) && ($runtime == vm || $runtime == dart_precompiled || $runtime == flutter) ]
-class_keyword_test/02: MissingCompileTimeError # Issue 13627
-unicode_bom_test: Fail # Issue 16067
-vm/debug_break_enabled_vm_test/01: Crash, OK # Expected to hit breakpoint.
-
-[ ($compiler == none || $compiler == precompiler || $compiler == app_jit) && $checked ]
-type_variable_bounds4_test/01: Fail # Issue 14006
-
-[ ($compiler == none || $compiler == precompiler || $compiler == app_jit) && ($runtime == vm || $runtime == dart_precompiled || $runtime == flutter) ]
-export_ambiguous_main_negative_test: Fail # Issue 14763
-
-[ ($compiler == none || $compiler == precompiler || $compiler == app_jit || $compiler == dartk || $compiler == dartkp) && (($runtime == vm || $runtime == dart_precompiled) || $runtime == flutter) ]
-dynamic_prefix_core_test/none: Fail # Issue 12478
-
-[ ($runtime == vm || $runtime == flutter || $runtime == dart_precompiled) && $arch == arm64 ]
-large_class_declaration_test: SkipSlow # Uses too much memory.
-closure_cycles_test: Pass, Slow
-
-[ $runtime == vm || $runtime == dart_precompiled ]
-vm/load_to_load_unaligned_forwarding_vm_test: Pass, Crash # Unaligned offset. Issue 22151
-vm/unaligned_float_access_literal_index_test: Pass, Crash # Unaligned offset. Issue 22151
-
-[ ($compiler == none || $compiler == precompiler || $compiler == app_jit) && (($runtime == vm || $runtime == dart_precompiled)) && $arch == ia32 ]
-vm/regress_24517_test: Pass, Fail # Issue 24517.
-
-[ $compiler == precompiler && $runtime == dart_precompiled ]
-vm/regress_27671_test: Skip # Unsupported
-export_double_same_main_test: Skip # Issue 29895
-export_ambiguous_main_negative_test: Skip # Issue 29895
-vm/optimized_stacktrace_test: Skip # Issue 30198
-
-[ $compiler == precompiler && $runtime == dart_precompiled && !$checked]
-assertion_initializer_const_error_test/01: MissingCompileTimeError
-assertion_initializer_const_function_error_test/01: MissingCompileTimeError
-
-[ $compiler == precompiler && $runtime == dart_precompiled && $mode == debug ]
-regress_29025_test: Crash  # Issue dartbug.com/29331
+[ $mode == product ]
+assertion_test: SkipByDesign # Requires checked mode.
+generic_test: SkipByDesign # Requires checked mode.
+issue13474_test: SkipByDesign # Requires checked mode.
+list_literal4_test: SkipByDesign # Requires checked mode.
+map_literal4_test: SkipByDesign # Requires checked mode.
+named_parameters_type_test/01: SkipByDesign # Requires checked mode.
+named_parameters_type_test/02: SkipByDesign # Requires checked mode.
+named_parameters_type_test/03: SkipByDesign # Requires checked mode.
+positional_parameters_type_test/01: SkipByDesign # Requires checked mode.
+positional_parameters_type_test/02: SkipByDesign # Requires checked mode.
+stacktrace_demangle_ctors_test: SkipByDesign # Names are not scrubbed.
+type_checks_in_factory_method_test: SkipByDesign # Requires checked mode.
+vm/type_vm_test: Fail, OK # Expects exact type name.
 
 [ $runtime == dart_precompiled ]
 const_evaluation_test: SkipByDesign # Imports dart:mirrors
@@ -123,6 +43,7 @@
 invocation_mirror_invoke_on2_test: SkipByDesign # Imports dart:mirrors
 invocation_mirror_invoke_on_test: SkipByDesign # Imports dart:mirrors
 issue21079_test: SkipByDesign # Imports dart:mirrors
+library_env_test/has_mirror_support: RuntimeError, OK # The test is supposed to fail.
 many_overridden_no_such_method_test: SkipByDesign # Imports dart:mirrors
 no_such_method_test: SkipByDesign # Imports dart:mirrors
 null_test/none: SkipByDesign # Imports dart:mirrors
@@ -131,78 +52,422 @@
 regress_13462_0_test: SkipByDesign # Imports dart:mirrors
 regress_13462_1_test: SkipByDesign # Imports dart:mirrors
 regress_18535_test: SkipByDesign # Imports dart:mirrors
+regress_28255_test: SkipByDesign # Imports dart:mirrors
 super_call4_test: SkipByDesign # Imports dart:mirrors
 super_getter_setter_test: SkipByDesign # Imports dart:mirrors
 vm/reflect_core_vm_test: SkipByDesign # Imports dart:mirrors
-regress_28255_test: SkipByDesign # Imports dart:mirrors
 
-[ $runtime == dart_precompiled || $mode == product ]
-vm/causal_async_exception_stack_test: SkipByDesign # Causal async stacks are not supported in product mode
-vm/causal_async_exception_stack2_test: SkipByDesign # Causal async stacks are not supported in product mode
+# flutter uses --error_on_bad_type, --error_on_bad_override
+# and --await_is_keyword so # the following tests fail with
+# a Compilation Error
+[ $runtime == flutter ]
+async_await_syntax_test/a05c: CompileTimeError
+async_await_syntax_test/a05e: CompileTimeError
+async_await_syntax_test/d08c: CompileTimeError
+async_await_test: CompileTimeError
+async_return_types_test/nestedFuture: Skip # Flutter Issue 9110
+async_return_types_test/return_value_sync_star: Skip # Flutter Issue 9110
+async_return_types_test/tooManyTypeParameters: CompileTimeError
+async_return_types_test/wrongReturnType: Skip # Flutter Issue 9110
+async_return_types_test/wrongTypeParameter: Skip # Flutter Issue 9110
+async_star_cancel_while_paused_test: Skip # Flutter Issue 9110
+async_star_no_cancel_test: Skip # Flutter Issue 9110
+asyncstar_yield_test: Skip # Flutter Issue 9110
+await_backwards_compatibility_test/none: CompileTimeError
+await_for_cancel_test: Skip # Flutter Issue 9110
+await_for_test: Skip # Flutter Issue 9110
+await_test: CompileTimeError
+bad_override_test/06: CompileTimeError
+call_constructor_on_unresolvable_class_test/01: CompileTimeError
+call_constructor_on_unresolvable_class_test/02: CompileTimeError
+call_constructor_on_unresolvable_class_test/03: CompileTimeError
+call_constructor_on_unresolvable_class_test/07: CompileTimeError
+check_method_override_test/01: CompileTimeError
+check_method_override_test/02: CompileTimeError
+class_keyword_test/02: CompileTimeError
+class_override_test/00: CompileTimeError
+conditional_import_string_test: CompileTimeError
+conditional_import_test: CompileTimeError
+config_import_test: RuntimeError # Flutter Issue 9110
+const_evaluation_test/01: CompileTimeError
+const_evaluation_test/none: CompileTimeError
+const_types_test/01: CompileTimeError
+const_types_test/02: CompileTimeError
+const_types_test/03: CompileTimeError
+const_types_test/04: CompileTimeError
+const_types_test/05: CompileTimeError
+const_types_test/06: CompileTimeError
+const_types_test/13: CompileTimeError
+const_types_test/35: CompileTimeError
+const_types_test/40: CompileTimeError
+default_factory_test/01: CompileTimeError
+deferred_closurize_load_library_test: Skip # Timeout, deferred loading is not supported by Flutter
+deferred_constant_list_test: Skip # Timeout, deferred loading is not supported by Flutter
+deferred_constraints_constants_test/none: CompileTimeError
+deferred_constraints_constants_test/reference_after_load: CompileTimeError
+deferred_constraints_type_annotation_test/as_operation: CompileTimeError
+deferred_constraints_type_annotation_test/catch_check: CompileTimeError
+deferred_constraints_type_annotation_test/is_check: CompileTimeError
+deferred_constraints_type_annotation_test/new: CompileTimeError
+deferred_constraints_type_annotation_test/new_before_load: CompileTimeError
+deferred_constraints_type_annotation_test/new_generic1: CompileTimeError
+deferred_constraints_type_annotation_test/new_generic2: CompileTimeError
+deferred_constraints_type_annotation_test/new_generic3: CompileTimeError
+deferred_constraints_type_annotation_test/none: Skip # Timeout, deferred loading is not supported by Flutter
+deferred_constraints_type_annotation_test/static_method: Skip # Timeout, deferred loading is not supported by Flutter
+deferred_constraints_type_annotation_test/type_annotation_generic2: CompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_generic3: CompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_null: CompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_top_level: CompileTimeError
+deferred_global_test: Skip # Timeout, deferred loading is not supported by Flutter
+deferred_inheritance_constraints_test/redirecting_constructor: CompileTimeError
+deferred_mixin_test: CompileTimeError
+deferred_no_such_method_test: CompileTimeError
+deferred_not_loaded_check_test: CompileTimeError
+deferred_redirecting_factory_test: Skip # Timeout, deferred loading is not supported by Flutter
+deferred_shadow_load_library_test: Skip # Timeout, deferred loading is not supported by Flutter
+deferred_shared_and_unshared_classes_test: Skip # Timeout, deferred loading is not supported by Flutter
+deferred_static_seperate_test: CompileTimeError
+deferred_super_dependency_test/01: CompileTimeError
+deferred_type_dependency_test/as: Skip # Timeout, deferred loading is not supported by Flutter
+deferred_type_dependency_test/is: Skip # Timeout, deferred loading is not supported by Flutter
+deferred_type_dependency_test/none: Skip # Timeout, deferred loading is not supported by Flutter
+deferred_type_dependency_test/type_annotation: Skip # Timeout, deferred loading is not supported by Flutter
+enum_mirror_test: CompileTimeError
+f_bounded_quantification5_test: CompileTimeError
+f_bounded_quantification_test/01: CompileTimeError
+f_bounded_quantification_test/02: CompileTimeError
+factory2_test: CompileTimeError
+factory4_test: CompileTimeError
+factory6_test/00: CompileTimeError
+field_increment_bailout_test: CompileTimeError
+field_override_test/01: CompileTimeError
+function_malformed_result_type_test: CompileTimeError
+generic_function_typedef2_test/04: CompileTimeError
+instance_creation_in_function_annotation_test: CompileTimeError
+instanceof3_test: CompileTimeError
+internal_library_test/01: MissingCompileTimeError
+internal_library_test/01: CompileTimeError
+internal_library_test/02: CompileTimeError
+internal_library_test/02: MissingCompileTimeError
+invocation_mirror2_test: CompileTimeError
+invocation_mirror_invoke_on2_test: CompileTimeError
+invocation_mirror_invoke_on_test: CompileTimeError
+is_malformed_type_test/94: CompileTimeError
+is_malformed_type_test/95: CompileTimeError
+is_malformed_type_test/96: CompileTimeError
+is_malformed_type_test/97: CompileTimeError
+is_malformed_type_test/98: CompileTimeError
+is_malformed_type_test/99: CompileTimeError
+is_not_class2_test: RuntimeError
+isnot_malformed_type_test: RuntimeError
+issue21079_test: CompileTimeError
+issue_25671a_test/01: CompileTimeError
+issue_25671b_test/01: CompileTimeError
+library_env_test/has_mirror_support: RuntimeError, OK # No mirrors support in Flutter.
+library_env_test/has_no_mirror_support: Pass # No mirrors support in Flutter.
+list_literal_syntax_test/01: CompileTimeError
+list_literal_syntax_test/02: CompileTimeError
+list_literal_syntax_test/03: CompileTimeError
+malbounded_instantiation_test/01: CompileTimeError
+malbounded_redirecting_factory2_test/01: CompileTimeError
+malbounded_redirecting_factory2_test/none: CompileTimeError
+malbounded_redirecting_factory_test/01: CompileTimeError
+malbounded_redirecting_factory_test/none: CompileTimeError
+malbounded_type_cast_test: CompileTimeError
+malbounded_type_literal_test: CompileTimeError
+malbounded_type_test_test/02: CompileTimeError
+malformed2_test/00: CompileTimeError
+malformed_inheritance_test/02: CompileTimeError
+malformed_inheritance_test/04: CompileTimeError
+malformed_inheritance_test/06: CompileTimeError
+malformed_test/none: CompileTimeError
+malformed_type_test: CompileTimeError
+many_overridden_no_such_method_test: CompileTimeError
+method_override2_test/01: CompileTimeError
+method_override3_test/00: CompileTimeError
+method_override3_test/01: CompileTimeError
+method_override3_test/02: CompileTimeError
+method_override4_test: CompileTimeError
+method_override5_test: CompileTimeError
+method_override6_test: CompileTimeError
+mixin_invalid_bound2_test/01: CompileTimeError
+mixin_invalid_bound2_test/04: CompileTimeError
+mixin_invalid_bound2_test/07: CompileTimeError
+mixin_invalid_bound2_test/none: CompileTimeError
+mixin_invalid_bound_test/01: CompileTimeError
+mixin_invalid_bound_test/03: CompileTimeError
+mixin_invalid_bound_test/05: CompileTimeError
+mixin_invalid_bound_test/none: CompileTimeError
+mixin_super_bound2_test/01: CompileTimeError
+mixin_super_bound_test: CompileTimeError
+mixin_type_parameters_errors_test/01: CompileTimeError
+mixin_type_parameters_errors_test/02: CompileTimeError
+mixin_type_parameters_errors_test/03: CompileTimeError
+mixin_type_parameters_errors_test/04: CompileTimeError
+mixin_type_parameters_errors_test/05: CompileTimeError
+new_expression_type_args_test/02: CompileTimeError
+no_such_method_test: CompileTimeError
+non_parameterized_factory2_test: CompileTimeError
+non_parameterized_factory_test: CompileTimeError
+null_test/none: CompileTimeError
+on_catch_malformed_type_test: CompileTimeError
+overridden_no_such_method_test: CompileTimeError
+override_inheritance_field_test/05: CompileTimeError
+override_inheritance_field_test/06: CompileTimeError
+override_inheritance_field_test/07: CompileTimeError
+override_inheritance_field_test/08: CompileTimeError
+override_inheritance_field_test/09: CompileTimeError
+override_inheritance_field_test/10: CompileTimeError
+override_inheritance_field_test/11: CompileTimeError
+override_inheritance_field_test/28: CompileTimeError
+override_inheritance_field_test/29: CompileTimeError
+override_inheritance_field_test/30: CompileTimeError
+override_inheritance_field_test/31: CompileTimeError
+override_inheritance_field_test/32: CompileTimeError
+override_inheritance_field_test/33: CompileTimeError
+override_inheritance_field_test/33a: CompileTimeError
+override_inheritance_field_test/34: CompileTimeError
+override_inheritance_field_test/44: CompileTimeError
+override_inheritance_field_test/45: CompileTimeError
+override_inheritance_field_test/47: CompileTimeError
+override_inheritance_field_test/48: CompileTimeError
+override_inheritance_field_test/53: CompileTimeError
+override_inheritance_field_test/54: CompileTimeError
+override_inheritance_method_test/04: CompileTimeError
+override_inheritance_method_test/05: CompileTimeError
+override_inheritance_method_test/06: CompileTimeError
+override_inheritance_method_test/11: CompileTimeError
+override_inheritance_method_test/12: CompileTimeError
+override_inheritance_method_test/13: CompileTimeError
+override_inheritance_method_test/14: CompileTimeError
+override_inheritance_method_test/19: CompileTimeError
+override_inheritance_method_test/20: CompileTimeError
+override_inheritance_method_test/21: CompileTimeError
+override_inheritance_method_test/27: CompileTimeError
+override_inheritance_method_test/28: CompileTimeError
+override_inheritance_method_test/29: CompileTimeError
+override_inheritance_method_test/30: CompileTimeError
+override_inheritance_method_test/31: CompileTimeError
+override_inheritance_method_test/32: CompileTimeError
+override_inheritance_method_test/33: CompileTimeError
+prefix16_test: CompileTimeError
+prefix22_test: CompileTimeError
+private_access_test/03: CompileTimeError
+private_access_test/04: CompileTimeError
+redirecting_factory_incompatible_signature_test: CompileTimeError
+redirecting_factory_reflection_test: CompileTimeError
+regress_12561_test: CompileTimeError
+regress_13462_0_test: CompileTimeError
+regress_13462_1_test: CompileTimeError
+regress_18535_test: CompileTimeError
+regress_22438_test: CompileTimeError
+regress_23408_test: CompileTimeError
+regress_28255_test: CompileTimeError
+static_initializer_type_error_test: CompileTimeError
+super_call4_test: CompileTimeError
+super_getter_setter_test: CompileTimeError
+try_catch_on_syntax_test/07: CompileTimeError
+try_catch_syntax_test/08: CompileTimeError
+type_parameter_test/none: CompileTimeError
+type_variable_bounds_test/00: CompileTimeError
+type_variable_bounds_test/06: CompileTimeError
+type_variable_bounds_test/07: CompileTimeError
+type_variable_bounds_test/08: CompileTimeError
+type_variable_bounds_test/09: CompileTimeError
+type_variable_bounds_test/10: CompileTimeError
+type_variable_scope2_test: CompileTimeError
+type_variable_scope_test/00: CompileTimeError
+type_variable_scope_test/01: CompileTimeError
+type_variable_scope_test/02: CompileTimeError
+type_variable_scope_test/03: CompileTimeError
+type_variable_scope_test/04: CompileTimeError
+type_variable_scope_test/05: CompileTimeError
+type_variable_scope_test/none: CompileTimeError
+unicode_bom_test: CompileTimeError
+vm/debug_break_enabled_vm_test/01: CompileTimeError
+vm/debug_break_enabled_vm_test/none: CompileTimeError
+vm/no_such_method_error_message_callable_vm_test: RuntimeError # Flutter Issue 9110
+vm/reflect_core_vm_test: CompileTimeError
+vm/regress_27201_test: Fail # Flutter Issue 9110
+wrong_number_type_arguments_test/00: CompileTimeError
+wrong_number_type_arguments_test/01: CompileTimeError
+wrong_number_type_arguments_test/02: CompileTimeError
 
-[ $mode == product || $compiler == app_jit || $compiler == precompiler ]
+[ $strong ]
+*: SkipByDesign # tests/language_2 has the strong mode versions of these tests.
+
+[ $arch == arm64 && ($runtime == dart_precompiled || $runtime == flutter || $runtime == vm) ]
+closure_cycles_test: Pass, Slow
+large_class_declaration_test: SkipSlow # Uses too much memory.
+
+[ $arch == ia32 && $compiler == none && $runtime == vm && $system == windows ]
+vm/optimized_stacktrace_test: Pass, Crash # Issue 28276
+
+[ $arch == ia32 && $mode == release && $runtime == vm ]
+deep_nesting1_negative_test: Crash, Pass # Issue 31496
+
+[ $arch == ia32 && ($compiler == app_jit || $compiler == none || $compiler == precompiler) && ($runtime == dart_precompiled || $runtime == vm) ]
+vm/regress_24517_test: Pass, Fail # Issue 24517.
+
+[ $compiler == app_jit && $runtime == vm && !$checked ]
+assertion_initializer_const_error_test/01: MissingCompileTimeError
+assertion_initializer_const_function_error_test/01: MissingCompileTimeError
+
+[ $compiler != dartk && $compiler != dartkp && ($runtime == dart_precompiled || $runtime == flutter || $runtime == vm) ]
+abstract_beats_arguments2_test/01: Crash # Issue 29171
+
+[ $compiler == none && $runtime == vm && $system == fuchsia ]
+async_await_test: RuntimeError # Use package:unittest
+async_star_test: RuntimeError # Use package:unittest
+closure_cycles_test: Pass, Crash # TODO(zra): Investigate
+vm/causal_async_exception_stack2_test: RuntimeError # Use package:unittest
+vm/causal_async_exception_stack_test: RuntimeError # Use package:unittest
+vm/math_vm_test: Crash # TODO(zra): Investigate
+
+[ $compiler == none && $runtime == vm && !$checked ]
+assertion_initializer_const_error_test/01: MissingCompileTimeError
+assertion_initializer_const_function_error_test/01: MissingCompileTimeError
+
+[ $compiler == none && $checked && ($runtime == flutter || $runtime == vm) ]
+assert_initializer_test/4*: MissingCompileTimeError # Issue 392. The VM doesn't enforce that potentially const expressions are actually const expressions when the constructor is called with `const`.
+
+[ $compiler == none && ($runtime == flutter || $runtime == vm) ]
+duplicate_part_test/01: MissingCompileTimeError # Issue 27516
+
+[ $compiler == precompiler && $mode == debug && $runtime == dart_precompiled ]
+regress_29025_test: Crash # Issue dartbug.com/29331
+
+[ $compiler == precompiler && $runtime == dart_precompiled ]
+export_ambiguous_main_negative_test: Skip # Issue 29895
+export_double_same_main_test: Skip # Issue 29895
+stacktrace_demangle_ctors_test: RuntimeError
+vm/optimized_stacktrace_test: Skip # Issue 30198
+vm/regress_27671_test: Skip # Unsupported
+
+[ $compiler == precompiler && $runtime == dart_precompiled && $checked ]
+assertion_initializer_const_error2_test/cc02: Crash
+
+[ $compiler == precompiler && $runtime == dart_precompiled && !$checked ]
+assertion_initializer_const_error_test/01: MissingCompileTimeError
+assertion_initializer_const_function_error_test/01: MissingCompileTimeError
+
+[ $runtime == dart_precompiled && $minified ]
+cyclic_type_test/*: Skip # Tests below rely on Type.toString()
+enum_duplicate_test/*: Skip # Uses Enum.toString()
+enum_private_test/*: Skip # Uses Enum.toString()
+enum_test: Skip # Uses Enum.toString()
+f_bounded_quantification4_test: Skip # Tests below rely on Type.toString()
+f_bounded_quantification5_test: Skip # Tests below rely on Type.toString()
+full_stacktrace1_test: Skip # Tests below rely on Stacktrace.toString()
+full_stacktrace2_test: Skip # Tests below rely on Stacktrace.toString()
+full_stacktrace3_test: Skip # Tests below rely on Stacktrace.toString()
+mixin_generic_test: Skip # Tests below rely on Type.toString()
+mixin_mixin2_test: Skip # Tests below rely on Type.toString()
+mixin_mixin3_test: Skip # Tests below rely on Type.toString()
+mixin_mixin5_test: Skip # Tests below rely on Type.toString()
+mixin_mixin6_test: Skip # Tests below rely on Type.toString()
+mixin_mixin_bound2_test: Skip # Tests below rely on Type.toString()
+mixin_mixin_type_arguments_test: Skip # Tests below rely on Type.toString()
+mixin_super_2_test: Skip # Tests below rely on Type.toString()
+no_such_method_dispatcher_test: Skip # Uses new Symbol()
+stacktrace_rethrow_error_test: Skip # Tests below rely on Stacktrace.toString()
+stacktrace_rethrow_nonerror_test: Skip # Tests below rely on Stacktrace.toString()
+vm/no_such_args_error_message_vm_test: Skip # Tests below rely on Stacktrace.toString()
+vm/no_such_method_error_message_callable_vm_test: Skip # Tests below rely on Stacktrace.toString()
+vm/no_such_method_error_message_vm_test: Skip # Tests below rely on Stacktrace.toString()
+vm/regress_28325_test: Skip # Tests below rely on Stacktrace.toString()
+
+[ $browser && ($compiler == app_jit || $compiler == none || $compiler == precompiler) ]
+library_env_test/has_io_support: RuntimeError, OK # The test is supposed to fail.
+library_env_test/has_no_html_support: RuntimeError, OK # The test is supposed to fail.
+
+[ !$browser && ($compiler == app_jit || $compiler == none || $compiler == precompiler) ]
+library_env_test/has_html_support: RuntimeError, OK # The test is supposed to fail.
+library_env_test/has_no_io_support: RuntimeError, OK # The test is supposed to fail.
+
+[ $checked && ($compiler == app_jit || $compiler == none || $compiler == precompiler) ]
+generic_functions_test: Pass # Issue 25869, These generic functions tests pass for the wrong reason in checked mode, because the parsed type parameters are mapped to dynamic type.
+generic_local_functions_test: Pass # Issue 25869, These generic functions tests pass for the wrong reason in checked mode, because the parsed type parameters are mapped to dynamic type.
+generic_methods_function_type_test: Pass # Issue 25869, These generic functions tests pass for the wrong reason in checked mode, because the parsed type parameters are mapped to dynamic type.
+generic_methods_generic_function_parameter_test: Pass # Issue 25869, These generic functions tests pass for the wrong reason in checked mode, because the parsed type parameters are mapped to dynamic type.
+generic_methods_new_test: Pass # Issue 25869, These generic functions tests pass for the wrong reason in checked mode, because the parsed type parameters are mapped to dynamic type.
+generic_methods_test: Pass # Issue 25869, These generic functions tests pass for the wrong reason in checked mode, because the parsed type parameters are mapped to dynamic type.
+type_variable_bounds4_test/01: Fail # Issue 14006
+
+[ ($compiler == app_jit || $compiler == dartk || $compiler == dartkp || $compiler == none || $compiler == precompiler) && ($runtime == dart_precompiled || $runtime == flutter || $runtime == vm) ]
+dynamic_prefix_core_test/none: Fail # Issue 12478
+
+[ ($compiler == app_jit || $compiler == none || $compiler == precompiler) && ($runtime == dart_precompiled || $runtime == flutter || $runtime == vm) ]
+await_for_test: RuntimeError # issue 28974
+class_keyword_test/02: MissingCompileTimeError # Issue 13627
+export_ambiguous_main_negative_test: Fail # Issue 14763
+syntax_test/none: CompileTimeError # Issue #30176.
+unicode_bom_test: Fail # Issue 16067
+vm/debug_break_enabled_vm_test/01: Crash, OK # Expected to hit breakpoint.
+
+# These test entries will be valid for vm (with and without kernel).
+[ $compiler == app_jit || $compiler == dartk || $compiler == none || $runtime == dart_precompiled ]
+async_star_cancel_while_paused_test: RuntimeError
+async_star_pause_test: Fail, OK # This is OK for now, but we may want to change the semantics to match the test.
+constructor2_test: Fail, OK # Failures related to super call in ctor initializer list
+constructor3_test: Fail, OK # Failures related to super call in ctor initializer list
+constructor5_test: Fail # Issue 6422, These bugs refer currently ongoing language discussions.
+constructor6_test: Fail # Issue 6422, These bugs refer currently ongoing language discussions.
+cyclic_type2_test: Fail, OK # Non-contractive types are not supported in the vm.
+cyclic_type_test/02: Fail, OK # Non-contractive types are not supported in the vm.
+cyclic_type_test/04: Fail, OK # Non-contractive types are not supported in the vm.
+duplicate_export_negative_test: Fail # Issue 6134
+example_constructor_test: Fail, OK # Failures related to super call in ctor initializer list
+field_initialization_order_test: Fail, OK # Failures related to super call in ctor initializer list
+final_field_initialization_order_test: Fail, OK # Failures related to super call in ctor initializer list
+generalized_void_syntax_test: CompileTimeError
+generic_methods_type_expression_test: RuntimeError # Issue 25869 / 27460
+least_upper_bound_expansive_test/*: Fail, OK # Non-contractive types are not supported in the vm.
+main_not_a_function_test/01: Skip # Skipped temporaril until Issue 29895 is fixed.
+mixin_illegal_super_use_test: Skip # Issues 24478 and 23773, # These tests are skipped in the VM because it has "--supermixin" functionality enabled unconditionally.  The tests should be removed once the same is true for analyzer (#24478) and dart2js (#23773)
+mixin_illegal_superclass_test: Skip # Issues 24478 and 23773, # These tests are skipped in the VM because it has "--supermixin" functionality enabled unconditionally.  The tests should be removed once the same is true for analyzer (#24478) and dart2js (#23773)
+no_main_test/01: Skip # Skipped temporaril until Issue 29895 is fixed.
+super_test: Fail, OK # Failures related to super call in ctor initializer list
+vm/regress_29145_test: Skip # Issue 29145
+
+[ $compiler == app_jit || $compiler == none ]
+library_env_test/has_no_mirror_support: RuntimeError, OK # The test is supposed to fail.
+
+[ $compiler == app_jit || $compiler == none || $compiler == precompiler ]
+async_star_regression_2238_test: CompileTimeError
+deferred_redirecting_factory_test: Fail, Crash # Issue 23408
+dynamic_prefix_core_test/01: RuntimeError # Issue 12478
+multiline_strings_test: Fail # Issue 23020
+redirecting_constructor_initializer_test: RuntimeError # Issue 23488
+
+[ $compiler == app_jit || $compiler == precompiler || $mode == product ]
 deferred_load_constants_test/02: Fail # Deferred loading happens eagerly. Issue #27587
 deferred_load_constants_test/03: Fail # Deferred loading happens eagerly. Issue #27587
 deferred_load_constants_test/05: Fail # Deferred loading happens eagerly. Issue #27587
 deferred_not_loaded_check_test: Fail # Deferred loading happens eagerly. Issue #27587
 vm/regress_27201_test: Fail
 
-[ $compiler == app_jit ]
-deferred_inheritance_constraints_test/redirecting_constructor: Crash
-
-[ $compiler == precompiler ]
-deferred_global_test: Fail # Deferred loading happens eagerly. Issue #27587
-vm/regress_27201_test: Fail # Deferred loading happens eagerly. Issue #27587
-regress_23408_test: RuntimeError
-
-[ $compiler == precompiler ]
-implicit_closure_test: Skip # Incompatible flag: --use_slow_path
-deopt_inlined_function_lazy_test: Skip # Incompatible flag: --deoptimize-alot
-
-[ $runtime == dart_precompiled || $compiler == app_jit ]
+[ $compiler == app_jit || $runtime == dart_precompiled ]
 ct_const2_test: Skip # Incompatible flag: --compile_all
 hello_dart_test: Skip # Incompatible flag: --compile_all
-vm/type_vm_test: RuntimeError # Expects line and column numbers
 vm/type_cast_vm_test: RuntimeError # Expects line and column numbers
+vm/type_vm_test: RuntimeError # Expects line and column numbers
 
-[ $mode == product ]
-assertion_test: SkipByDesign # Requires checked mode.
-issue13474_test: SkipByDesign # Requires checked mode.
-named_parameters_type_test/01: SkipByDesign # Requires checked mode.
-named_parameters_type_test/02: SkipByDesign # Requires checked mode.
-named_parameters_type_test/03: SkipByDesign # Requires checked mode.
-type_checks_in_factory_method_test: SkipByDesign # Requires checked mode.
-positional_parameters_type_test/01: SkipByDesign # Requires checked mode.
-positional_parameters_type_test/02: SkipByDesign # Requires checked mode.
-list_literal4_test: SkipByDesign # Requires checked mode.
-generic_test: SkipByDesign # Requires checked mode.
-map_literal4_test: SkipByDesign # Requires checked mode.
+[ $mode == product || $runtime == dart_precompiled ]
+vm/causal_async_exception_stack2_test: SkipByDesign # Causal async stacks are not supported in product mode
+vm/causal_async_exception_stack_test: SkipByDesign # Causal async stacks are not supported in product mode
 
-vm/type_vm_test: Fail,OK  # Expects exact type name.
-
-stacktrace_demangle_ctors_test: SkipByDesign # Names are not scrubbed.
-
-[ ($compiler == none || $compiler == precompiler || $compiler == app_jit) && $browser ]
-library_env_test/has_io_support: RuntimeError, OK # The test is supposed to fail.
-library_env_test/has_no_html_support: RuntimeError, OK # The test is supposed to fail.
-
-[ ($compiler == none || $compiler == precompiler || $compiler == app_jit) && ! $browser ]
-library_env_test/has_html_support: RuntimeError, OK # The test is supposed to fail.
-library_env_test/has_no_io_support: RuntimeError, OK # The test is supposed to fail.
-
-[ $compiler == none || $compiler == app_jit ]
-library_env_test/has_no_mirror_support: RuntimeError, OK  # The test is supposed to fail.
-
-[ $runtime == dart_precompiled ]
-library_env_test/has_mirror_support: RuntimeError, OK  # The test is supposed to fail.
+[ $runtime == dart_precompiled || $runtime == vm ]
+vm/load_to_load_unaligned_forwarding_vm_test: Pass, Crash # Unaligned offset. Issue 22151
+vm/unaligned_float_access_literal_index_test: Pass, Crash # Unaligned offset. Issue 22151
 
 [ $hot_reload || $hot_reload_rollback ]
-issue21159_test: Pass, Crash # Issue 29094
-issue_22780_test/01: Pass, Crash # Issue 29094
-static_closure_identical_test: Pass, Fail # Closure identity
 cha_deopt1_test: Crash # Requires deferred libraries
 cha_deopt2_test: Crash # Requires deferred libraries
 cha_deopt3_test: Crash # Requires deferred libraries
+conditional_import_string_test: Crash # Requires deferred libraries
+conditional_import_test: Crash # Requires deferred libraries
 deferred_call_empty_before_load_test: Crash # Requires deferred libraries
 deferred_closurize_load_library_test: Crash # Requires deferred libraries
 deferred_constant_list_test: Crash # Requires deferred libraries
@@ -211,8 +476,8 @@
 deferred_function_type_test: Crash # Requires deferred libraries
 deferred_global_test: Crash # Requires deferred libraries
 deferred_import_core_test: Crash # Requires deferred libraries
-deferred_inlined_test: Crash # Requires deferred libraries
 deferred_inheritance_constraints_test: Crash # Requires deferred libraries
+deferred_inlined_test: Crash # Requires deferred libraries
 deferred_load_constants_test: Crash # Requires deferred libraries
 deferred_load_inval_code_test: Crash # Requires deferred libraries
 deferred_load_library_wrong_args_test: Crash # Requires deferred libraries
@@ -229,310 +494,16 @@
 deferred_static_seperate_test: Crash # Requires deferred libraries
 deferred_super_dependency_test: Pass, Crash # Requires deferred libraries
 deferred_type_dependency_test: Crash # Requires deferred libraries
+issue21159_test: Pass, Crash # Issue 29094
 issue_1751477_test: Crash # Requires deferred libraries
-regress_23408_test: Crash # Requires deferred libraries
+issue_22780_test/01: Pass, Crash # Issue 29094
 regress_22443_test: Crash # Requires deferred libraries
+regress_23408_test: Crash # Requires deferred libraries
 regress_28278_test: Crash # Requires deferred libraries
-conditional_import_test: Crash # Requires deferred libraries
-conditional_import_string_test: Crash # Requires deferred libraries
-vm/regress_27201_test: Pass, Crash # Requires deferred libraries
+static_closure_identical_test: Pass, Fail # Closure identity
 vm/optimized_stacktrace_test: Pass, Slow
+vm/regress_27201_test: Pass, Crash # Requires deferred libraries
 
-[ ($runtime != vm && $compiler != dartk && $compiler != dartkp ) || ($compiler != none && $compiler != dartk && $compiler != dartkp )]
-assert_initializer_test/*: SKIP  # not implemented yet, experiment is VM only.
+[ $compiler != dartk && $compiler != dartkp && $compiler != none || $compiler != dartk && $compiler != dartkp && $runtime != vm ]
+assert_initializer_test/*: Skip # not implemented yet, experiment is VM only.
 
-[($runtime == vm || $runtime == flutter) && $compiler == none && $checked]
-assert_initializer_test/4*: MissingCompileTimeError # Issue 392. The VM doesn't enforce that potentially const expressions are actually const expressions when the constructor is called with `const`.
-
-[($runtime == vm || $runtime == flutter) && $compiler == none]
-duplicate_part_test/01: MissingCompileTimeError # Issue 27516
-
-[$runtime == vm && $compiler == none && $system == windows && $arch == ia32]
-vm/optimized_stacktrace_test: Pass, Crash # Issue 28276
-
-[$runtime == vm && $compiler == none && $system == fuchsia]
-async_await_test: RuntimeError # Use package:unittest
-async_star_test: RuntimeError # Use package:unittest
-vm/causal_async_exception_stack_test: RuntimeError # Use package:unittest
-vm/causal_async_exception_stack2_test: RuntimeError # Use package:unittest
-closure_cycles_test: Pass, Crash # TODO(zra): Investigate
-vm/math_vm_test: Crash # TODO(zra): Investigate
-
-[$compiler == dart2analyzer]
-vm/regress_27201_test: SkipByDesign # Loads bad library, so will always crash.
-config_import_corelib_test: StaticWarning, OK
-
-[ ($runtime == vm || $runtime == flutter || $runtime == dart_precompiled) && ($compiler == none || $compiler == app_jit || $compiler == precompiler) ]
-await_for_test: RuntimeError # issue 28974
-syntax_test/none: CompileTimeError # Issue #30176.
-
-# flutter uses --error_on_bad_type, --error_on_bad_override
-# and --await_is_keyword so # the following tests fail with
-# a Compilation Error
-[ $runtime == flutter ]
-await_backwards_compatibility_test/none: CompileTimeError
-await_test: CompileTimeError
-async_await_test: CompileTimeError
-async_await_syntax_test/a05c: CompileTimeError
-async_await_syntax_test/a05e: CompileTimeError
-async_await_syntax_test/d08c: CompileTimeError
-static_initializer_type_error_test: CompileTimeError
-new_expression_type_args_test/02: CompileTimeError
-super_getter_setter_test: CompileTimeError
-malformed_test/none: CompileTimeError
-malbounded_type_test_test/02: CompileTimeError
-factory6_test/00: CompileTimeError
-method_override2_test/01: CompileTimeError
-regress_22438_test: CompileTimeError
-regress_13462_1_test: CompileTimeError
-instance_creation_in_function_annotation_test: CompileTimeError
-type_variable_scope_test/none: CompileTimeError
-type_variable_scope_test/00: CompileTimeError
-type_variable_scope_test/01: CompileTimeError
-type_variable_scope_test/03: CompileTimeError
-type_variable_scope_test/02: CompileTimeError
-type_variable_scope_test/04: CompileTimeError
-type_variable_scope_test/05: CompileTimeError
-invocation_mirror_invoke_on_test: CompileTimeError
-method_override3_test/00: CompileTimeError
-method_override3_test/01: CompileTimeError
-method_override3_test/02: CompileTimeError
-type_variable_bounds_test/00: CompileTimeError
-type_variable_bounds_test/06: CompileTimeError
-type_variable_bounds_test/07: CompileTimeError
-type_variable_bounds_test/09: CompileTimeError
-type_variable_bounds_test/10: CompileTimeError
-type_variable_bounds_test/08: CompileTimeError
-factory4_test: CompileTimeError
-factory2_test: CompileTimeError
-regress_18535_test: CompileTimeError
-prefix22_test: CompileTimeError
-regress_28255_test: CompileTimeError
-enum_mirror_test: CompileTimeError
-field_override_test/01: CompileTimeError
-override_inheritance_field_test/05: CompileTimeError
-override_inheritance_field_test/07: CompileTimeError
-override_inheritance_field_test/06: CompileTimeError
-override_inheritance_field_test/08: CompileTimeError
-override_inheritance_field_test/28: CompileTimeError
-override_inheritance_field_test/29: CompileTimeError
-override_inheritance_field_test/30: CompileTimeError
-override_inheritance_field_test/31: CompileTimeError
-override_inheritance_field_test/44: CompileTimeError
-override_inheritance_field_test/45: CompileTimeError
-override_inheritance_field_test/48: CompileTimeError
-override_inheritance_field_test/47: CompileTimeError
-override_inheritance_field_test/53: CompileTimeError
-override_inheritance_field_test/10: CompileTimeError
-override_inheritance_field_test/54: CompileTimeError
-override_inheritance_field_test/09: CompileTimeError
-override_inheritance_field_test/33a: CompileTimeError
-override_inheritance_field_test/34: CompileTimeError
-override_inheritance_field_test/32: CompileTimeError
-override_inheritance_field_test/11: CompileTimeError
-override_inheritance_field_test/33: CompileTimeError
-issue_25671b_test/01: CompileTimeError
-mixin_super_bound2_test/01: CompileTimeError
-override_inheritance_method_test/04: CompileTimeError
-override_inheritance_method_test/06: CompileTimeError
-override_inheritance_method_test/11: CompileTimeError
-override_inheritance_method_test/12: CompileTimeError
-override_inheritance_method_test/13: CompileTimeError
-override_inheritance_method_test/14: CompileTimeError
-override_inheritance_method_test/19: CompileTimeError
-override_inheritance_method_test/20: CompileTimeError
-override_inheritance_method_test/21: CompileTimeError
-override_inheritance_method_test/27: CompileTimeError
-override_inheritance_method_test/28: CompileTimeError
-override_inheritance_method_test/29: CompileTimeError
-override_inheritance_method_test/05: CompileTimeError
-override_inheritance_method_test/31: CompileTimeError
-override_inheritance_method_test/33: CompileTimeError
-override_inheritance_method_test/32: CompileTimeError
-override_inheritance_method_test/30: CompileTimeError
-redirecting_factory_reflection_test: CompileTimeError
-method_override6_test: CompileTimeError
-try_catch_syntax_test/08: CompileTimeError
-async_return_types_test/tooManyTypeParameters: CompileTimeError
-method_override4_test: CompileTimeError
-super_call4_test: CompileTimeError
-wrong_number_type_arguments_test/00: CompileTimeError
-wrong_number_type_arguments_test/02: CompileTimeError
-wrong_number_type_arguments_test/01: CompileTimeError
-is_malformed_type_test/97: CompileTimeError
-class_keyword_test/02: CompileTimeError
-is_malformed_type_test/98: CompileTimeError
-is_malformed_type_test/99: CompileTimeError
-is_malformed_type_test/95: CompileTimeError
-is_malformed_type_test/96: CompileTimeError
-is_malformed_type_test/94: CompileTimeError
-field_increment_bailout_test: CompileTimeError
-on_catch_malformed_type_test: CompileTimeError
-f_bounded_quantification_test/01: CompileTimeError
-f_bounded_quantification_test/02: CompileTimeError
-mixin_type_parameters_errors_test/02: CompileTimeError
-mixin_type_parameters_errors_test/05: CompileTimeError
-mixin_type_parameters_errors_test/01: CompileTimeError
-mixin_type_parameters_errors_test/03: CompileTimeError
-mixin_type_parameters_errors_test/04: CompileTimeError
-issue21079_test: CompileTimeError
-f_bounded_quantification5_test: CompileTimeError
-malformed_type_test: CompileTimeError
-issue_25671a_test/01: CompileTimeError
-regress_13462_0_test: CompileTimeError
-overridden_no_such_method_test: CompileTimeError
-deferred_constraints_type_annotation_test/new_before_load: CompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_null: CompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_generic2: CompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_generic3: CompileTimeError
-deferred_constraints_type_annotation_test/new: CompileTimeError
-deferred_constraints_type_annotation_test/new_generic1: CompileTimeError
-deferred_constraints_type_annotation_test/new_generic2: CompileTimeError
-deferred_constraints_type_annotation_test/new_generic3: CompileTimeError
-deferred_constraints_type_annotation_test/is_check: CompileTimeError
-deferred_constraints_type_annotation_test/as_operation: CompileTimeError
-deferred_constraints_type_annotation_test/catch_check: CompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_top_level: CompileTimeError
-deferred_constraints_constants_test/none: CompileTimeError
-deferred_constraints_constants_test/reference_after_load: CompileTimeError
-no_such_method_test: CompileTimeError
-conditional_import_string_test: CompileTimeError
-try_catch_on_syntax_test/07: CompileTimeError
-non_parameterized_factory_test: CompileTimeError
-instanceof3_test: CompileTimeError
-malbounded_redirecting_factory_test/none: CompileTimeError
-malbounded_redirecting_factory_test/01: CompileTimeError
-null_test/none: CompileTimeError
-check_method_override_test/01: CompileTimeError
-check_method_override_test/02: CompileTimeError
-malformed_inheritance_test/02: CompileTimeError
-malformed_inheritance_test/04: CompileTimeError
-malformed_inheritance_test/06: CompileTimeError
-call_constructor_on_unresolvable_class_test/01: CompileTimeError
-call_constructor_on_unresolvable_class_test/03: CompileTimeError
-call_constructor_on_unresolvable_class_test/02: CompileTimeError
-call_constructor_on_unresolvable_class_test/07: CompileTimeError
-unicode_bom_test: CompileTimeError
-prefix16_test: CompileTimeError
-deferred_not_loaded_check_test: CompileTimeError
-regress_23408_test: CompileTimeError
-redirecting_factory_incompatible_signature_test: CompileTimeError
-malbounded_instantiation_test/01: CompileTimeError
-const_evaluation_test/none: CompileTimeError
-mixin_invalid_bound_test/01: CompileTimeError
-const_evaluation_test/01: CompileTimeError
-mixin_invalid_bound_test/none: CompileTimeError
-mixin_invalid_bound_test/05: CompileTimeError
-mixin_invalid_bound_test/03: CompileTimeError
-malformed2_test/00: CompileTimeError
-conditional_import_test: CompileTimeError
-non_parameterized_factory2_test: CompileTimeError
-private_access_test/03: CompileTimeError
-private_access_test/04: CompileTimeError
-function_malformed_result_type_test: CompileTimeError
-mixin_invalid_bound2_test/none: CompileTimeError
-mixin_invalid_bound2_test/01: CompileTimeError
-mixin_invalid_bound2_test/04: CompileTimeError
-mixin_invalid_bound2_test/07: CompileTimeError
-deferred_super_dependency_test/01: CompileTimeError
-method_override5_test: CompileTimeError
-deferred_static_seperate_test: CompileTimeError
-default_factory_test/01: CompileTimeError
-internal_library_test/01: CompileTimeError
-internal_library_test/02: CompileTimeError
-type_variable_scope2_test: CompileTimeError
-mixin_super_bound_test: CompileTimeError
-bad_override_test/06: CompileTimeError
-invocation_mirror2_test: CompileTimeError
-deferred_inheritance_constraints_test/redirecting_constructor: CompileTimeError
-deferred_no_such_method_test: CompileTimeError
-malbounded_type_literal_test: CompileTimeError
-deferred_mixin_test: CompileTimeError
-many_overridden_no_such_method_test: CompileTimeError
-malbounded_redirecting_factory2_test/none: CompileTimeError
-malbounded_redirecting_factory2_test/01: CompileTimeError
-malbounded_type_cast_test: CompileTimeError
-type_parameter_test/none: CompileTimeError
-list_literal_syntax_test/03: CompileTimeError
-list_literal_syntax_test/01: CompileTimeError
-list_literal_syntax_test/02: CompileTimeError
-vm/reflect_core_vm_test: CompileTimeError
-vm/debug_break_enabled_vm_test/01: CompileTimeError
-vm/debug_break_enabled_vm_test/none: CompileTimeError
-generic_function_typedef2_test/04: CompileTimeError
-class_override_test/00: CompileTimeError
-const_types_test/01: CompileTimeError
-const_types_test/02: CompileTimeError
-const_types_test/03: CompileTimeError
-const_types_test/04: CompileTimeError
-const_types_test/05: CompileTimeError
-const_types_test/06: CompileTimeError
-const_types_test/13: CompileTimeError
-const_types_test/35: CompileTimeError
-const_types_test/40: CompileTimeError
-regress_12561_test: CompileTimeError
-invocation_mirror_invoke_on2_test: CompileTimeError
-
-isnot_malformed_type_test: RuntimeError
-is_not_class2_test: RuntimeError
-
-library_env_test/has_no_mirror_support: Pass # No mirrors support in Flutter.
-library_env_test/has_mirror_support: RuntimeError, Ok # No mirrors support in Flutter.
-
-internal_library_test/01: MissingCompileTimeError
-internal_library_test/02: MissingCompileTimeError
-
-deferred_type_dependency_test/is: Skip # Timeout, deferred loading is not supported by Flutter
-deferred_type_dependency_test/none: Skip # Timeout, deferred loading is not supported by Flutter
-deferred_type_dependency_test/as: Skip # Timeout, deferred loading is not supported by Flutter
-deferred_type_dependency_test/type_annotation: Skip # Timeout, deferred loading is not supported by Flutter
-deferred_closurize_load_library_test: Skip # Timeout, deferred loading is not supported by Flutter
-deferred_constraints_type_annotation_test/none: Skip # Timeout, deferred loading is not supported by Flutter
-deferred_constraints_type_annotation_test/static_method: Skip # Timeout, deferred loading is not supported by Flutter
-deferred_shared_and_unshared_classes_test: Skip # Timeout, deferred loading is not supported by Flutter
-deferred_constant_list_test: Skip # Timeout, deferred loading is not supported by Flutter
-deferred_redirecting_factory_test: Skip # Timeout, deferred loading is not supported by Flutter
-deferred_shadow_load_library_test: Skip # Timeout, deferred loading is not supported by Flutter
-deferred_global_test: Skip # Timeout, deferred loading is not supported by Flutter
-
-config_import_test: RuntimeError # Flutter Issue 9110
-vm/no_such_method_error_message_callable_vm_test: RuntimeError # Flutter Issue 9110
-vm/regress_27201_test: Fail # Flutter Issue 9110
-async_return_types_test/nestedFuture: Skip # Flutter Issue 9110
-async_return_types_test/wrongTypeParameter: Skip # Flutter Issue 9110
-async_return_types_test/wrongReturnType: Skip # Flutter Issue 9110
-async_return_types_test/return_value_sync_star: Skip # Flutter Issue 9110
-asyncstar_yield_test: Skip # Flutter Issue 9110
-async_star_no_cancel_test: Skip # Flutter Issue 9110
-async_star_cancel_while_paused_test: Skip # Flutter Issue 9110
-await_for_test: Skip # Flutter Issue 9110
-await_for_cancel_test: Skip # Flutter Issue 9110
-
-[ $runtime == dart_precompiled && $minified ]
-enum_duplicate_test/*: Skip  # Uses Enum.toString()
-enum_private_test/*: Skip  # Uses Enum.toString()
-enum_test: Skip  # Uses Enum.toString()
-no_such_method_dispatcher_test: Skip  # Uses new Symbol()
-cyclic_type_test/*: Skip # Tests below rely on Type.toString()
-f_bounded_quantification4_test: Skip # Tests below rely on Type.toString()
-f_bounded_quantification5_test: Skip # Tests below rely on Type.toString()
-mixin_generic_test: Skip # Tests below rely on Type.toString()
-mixin_mixin2_test: Skip # Tests below rely on Type.toString()
-mixin_mixin3_test: Skip # Tests below rely on Type.toString()
-mixin_mixin5_test: Skip # Tests below rely on Type.toString()
-mixin_mixin6_test: Skip # Tests below rely on Type.toString()
-mixin_mixin_bound2_test: Skip # Tests below rely on Type.toString()
-mixin_mixin_type_arguments_test: Skip # Tests below rely on Type.toString()
-mixin_super_2_test: Skip # Tests below rely on Type.toString()
-full_stacktrace1_test: Skip # Tests below rely on Stacktrace.toString()
-full_stacktrace2_test: Skip # Tests below rely on Stacktrace.toString()
-full_stacktrace3_test: Skip # Tests below rely on Stacktrace.toString()
-stacktrace_rethrow_error_test: Skip # Tests below rely on Stacktrace.toString()
-stacktrace_rethrow_nonerror_test: Skip # Tests below rely on Stacktrace.toString()
-vm/no_such_args_error_message_vm_test: Skip # Tests below rely on Stacktrace.toString()
-vm/no_such_method_error_message_callable_vm_test: Skip # Tests below rely on Stacktrace.toString()
-vm/no_such_method_error_message_vm_test: Skip # Tests below rely on Stacktrace.toString()
-vm/regress_28325_test:Skip # Tests below rely on Stacktrace.toString()
-
-[ $runtime == vm && $mode == release && $arch == ia32 ]
-deep_nesting1_negative_test: Crash, Pass # Issue 31496
diff --git a/tests/language/language_analyzer2.status b/tests/language/language_analyzer2.status
index eec8134..21780f3 100644
--- a/tests/language/language_analyzer2.status
+++ b/tests/language/language_analyzer2.status
@@ -3,117 +3,67 @@
 # BSD-style license that can be found in the LICENSE file.
 
 [ $compiler == dart2analyzer ]
-
-generic_methods_generic_function_parameter_test: CompileTimeError # Issue 28515
-generic_local_functions_test: CompileTimeError # Issue 28515
-
-regress_26668_test: Fail # Issue 26678
-regress_27617_test/1: MissingCompileTimeError
-regress_29025_test: StaticWarning # Issue 29081
-regress_29405_test: StaticWarning # Issue 29421
-regress_29349_test: CompileTimeError # Issue 29744
-
-closure_call_wrong_argument_count_negative_test: skip # Runtime negative test. No static errors or warnings.
-
-deep_nesting1_negative_test: CompileTimeError # Issue 25558
-deep_nesting2_negative_test: CompileTimeError # Issue 25558
-
-enum_syntax_test/05: Fail # Issue 21649
-enum_syntax_test/06: Fail # Issue 21649
-
-regress_17382_test: Skip # don't care about the static warning.
-regress_23408_test: Skip # don't care about the static warning.
-regress_25246_test: Skip
-getter_setter_in_lib_test: Fail # Issue 23286
-
-final_attempt_reinitialization_test/01: MissingCompileTimeError # Issue 29657
-final_attempt_reinitialization_test/02: MissingCompileTimeError # Issue 29657
+abstract_beats_arguments_test: StaticWarning
+accessor_conflict_export2_test: StaticWarning # Issue 25624
+accessor_conflict_export_test: StaticWarning # Issue 25624
+accessor_conflict_import2_test: StaticWarning # Issue 25624
+accessor_conflict_import_prefixed2_test: StaticWarning # Issue 25624
+accessor_conflict_import_prefixed_test: StaticWarning # Issue 25624
+accessor_conflict_import_test: StaticWarning # Issue 25624
+application_negative_test: CompileTimeError # Issue 14528, The following tests are currently assumed to be failing because the test is wrong.
+bad_initializer1_negative_test: CompileTimeError # Issue 14529, The following tests are currently assumed to be failing because the test is wrong.
+bad_initializer2_negative_test: Fail # Issue 14880
+bad_named_constructor_negative_test: CompileTimeError # Issue 18693, The following tests are currently assumed to be failing because the test is wrong.
+black_listed_test/none: Fail # Issue 14228
+body_less_constructor_wrong_arg_negative_test: CompileTimeError # Issue 18695, The following tests are currently assumed to be failing because the test is wrong.
+cascade_test/none: Fail # Issue 11577
+closure_call_wrong_argument_count_negative_test: Skip # Runtime negative test. No static errors or warnings.
+conflicting_type_variable_and_setter_test: CompileTimeError # Issue 25525
+const_counter_negative_test: CompileTimeError
 const_error_multiply_initialized_test/02: MissingCompileTimeError # Issue 29657
 const_error_multiply_initialized_test/04: MissingCompileTimeError # Issue 29657
-
-override_field_test/03: Fail # Issue 29703
-method_override7_test/03: Fail # Issue 11497
-
+const_for_in_variable_test/01: MissingCompileTimeError # Issue 25161
+const_optional_args_negative_test: CompileTimeError
+constructor3_negative_test: Fail # Issue 11585
+constructor_call_wrong_argument_count_negative_test: Fail # Issue 11585
+constructor_duplicate_final_test/03: MissingCompileTimeError
+constructor_redirect1_negative_test: CompileTimeError
+constructor_redirect2_negative_test: CompileTimeError
+constructor_setter_negative_test: CompileTimeError
+deep_nesting1_negative_test: CompileTimeError # Issue 25558
+deep_nesting2_negative_test: CompileTimeError # Issue 25558
+default_factory2_test/none: Fail # Issue 13956
+duplicate_export_negative_test: CompileTimeError
+duplicate_interface_negative_test: CompileTimeError
+empty_block_case_test: StaticWarning # Issue 18701, The following tests are currently assumed to be failing because the test is wrong.
+enum_syntax_test/05: Fail # Issue 21649
+enum_syntax_test/06: Fail # Issue 21649
+error_stacktrace_test: StaticWarning # Issue 18702, The following tests are currently assumed to be failing because the test is wrong.
+export_ambiguous_main_negative_test: CompileTimeError
+extend_type_parameter2_negative_test: CompileTimeError
+extend_type_parameter_negative_test: CompileTimeError
 external_test/21: Fail
 external_test/24: Fail
 external_test/25: Fail
-constructor_duplicate_final_test/03: MissingCompileTimeError
-reify_typevar_static_test/00: MissingCompileTimeError # Issue 21565
-
-multiline_newline_test/01: CompileTimeError # Issue 23888
-multiline_newline_test/02: CompileTimeError # Issue 23888
-multiline_newline_test/03: CompileTimeError # Issue 23888
-multiline_newline_test/04: MissingCompileTimeError # Issue 23888
-multiline_newline_test/05: MissingCompileTimeError # Issue 23888
-multiline_newline_test/06: MissingCompileTimeError # Issue 23888
-multiline_newline_test/01r: CompileTimeError # Issue 23888
-multiline_newline_test/02r: CompileTimeError # Issue 23888
-multiline_newline_test/03r: CompileTimeError # Issue 23888
-multiline_newline_test/04r: MissingCompileTimeError # Issue 23888
-multiline_newline_test/05r: MissingCompileTimeError # Issue 23888
-multiline_newline_test/06r: MissingCompileTimeError # Issue 23888
-
-const_for_in_variable_test/01: MissingCompileTimeError # Issue 25161
-
-bad_initializer2_negative_test: fail # Issue 14880
-field3a_negative_test: Fail # Issue 11124
-final_syntax_test/01: Fail # Issue 11124
-final_syntax_test/04: Fail # Issue 11124
-final_syntax_test/02: Fail # Issue 11124
-final_syntax_test/03: Fail # Issue 11124
-get_set_syntax_test/none: fail # Issue 11575
-implicit_this_test/none: fail # Issue 11575
-interface_test/none: fail # Issue 11575
-syntax_test/none: fail # Issue 11575
-cascade_test/none: fail # Issue 11577
-factory5_test/none: fail # Issue 11578
-type_variable_bounds_test/none: fail # Issue 11578
-type_variable_scope_test/none: fail # Issue 11578
-factory_implementation_test/none: fail # Issue 11578
-malbounded_redirecting_factory_test/none: fail # Issue 11578
-malbounded_redirecting_factory2_test/none: fail # Issue 11578
-getter_no_setter_test/none: fail # Issue 11579
-constructor3_negative_test: fail # Issue 11585
-constructor_call_wrong_argument_count_negative_test: fail # Issue 11585
-instance_call_wrong_argument_count_negative_test: fail # Issue 11585
-field_method4_negative_test: fail # Issue 11590
-import_combinators_negative_test: fail # Issue 11594
-interface_static_non_final_fields_negative_test: fail # Issue 11594
-prefix1_negative_test: fail # Issue 11962
-prefix2_negative_test: fail # Issue 11962
-prefix4_negative_test: fail # Issue 11962
-prefix5_negative_test: fail # Issue 11962
-prefix12_negative_test: fail # Issue 11962
-prefix8_negative_test: fail # Issue 11964
-prefix11_negative_test: fail # Issue 11964
-static_call_wrong_argument_count_negative_test: fail # Issue 12156
-type_parameter_test/none: fail # Issue 12160
-type_variable_static_context_negative_test: fail # Issue 12161
-unresolved_in_factory_negative_test: fail # Issue 12163
-unresolved_top_level_var_negative_test: fail # Issue 12163
-prefix3_negative_test: fail # Issue 12191
-issue11724_test: fail # Issue 12381
-static_field_test/01: fail # Issue 12541
-static_field_test/02: fail # Issue 12541
-static_field_test/03: fail # Issue 12541
-static_field_test/04: fail # Issue 12541
-redirecting_factory_infinite_steps_test/01: fail # Issue 13916
-redirecting_factory_default_values_test/none: StaticWarning # Issue 14471
-default_factory2_test/none: fail # Issue 13956
-private_member1_negative_test: fail # Issue 14021
-private_member2_negative_test: fail # Issue 14021
-private_member3_negative_test: fail # Issue 14021
-malformed_test/none: fail # Issue 14079
-malformed_test/05: fail # Issue 14079
-malformed_test/06: fail # Issue 14079
-regress_22438_test: fail # Issue 14079
-black_listed_test/none: fail # Issue 14228
-setter4_test: StaticWarning # Issue 14736
-proxy_test/05: StaticWarning # Issue 15467
-proxy_test/06: StaticWarning # Issue 15467
-proxy3_test/03: StaticWarning # Issue 15467
-proxy3_test/04: StaticWarning # Issue 15467
+f_bounded_quantification4_test: StaticWarning
+f_bounded_quantification5_test: StaticWarning
+factory1_test/00: StaticWarning # Issue 18726 # Issues to be fixed now that type parameters have been fixed (issues 14221, 15553)
+factory1_test/01: StaticWarning # Issue 18726 # Issues to be fixed now that type parameters have been fixed (issues 14221, 15553)
+factory1_test/none: StaticWarning # Issue 18726 # Issues to be fixed now that type parameters have been fixed (issues 14221, 15553)
+factory2_negative_test: CompileTimeError
+factory2_test: StaticWarning # Issue 18727
+factory3_negative_test: CompileTimeError
+factory3_test: StaticWarning # Issue 18727
+factory4_test: StaticWarning # Issue 18727
+factory5_test/none: Fail # Issue 11578
+factory_implementation_test/00: StaticWarning
+factory_implementation_test/none: Fail # Issue 11578
+factory_negative_test: CompileTimeError
+factory_redirection_test/01: StaticWarning # Issue 11578
 factory_redirection_test/02: StaticWarning # Issue 18230
+factory_redirection_test/03: StaticWarning # Issue 11578
+factory_redirection_test/05: StaticWarning # Issue 11578
+factory_redirection_test/06: StaticWarning # Issue 11578
 factory_redirection_test/08: StaticWarning # Issue 18230
 factory_redirection_test/09: StaticWarning # Issue 18230
 factory_redirection_test/10: StaticWarning # Issue 18230
@@ -122,46 +72,24 @@
 factory_redirection_test/13: StaticWarning # Issue 18230
 factory_redirection_test/14: StaticWarning # Issue 18230
 factory_redirection_test/none: StaticWarning # Issue 18230
-
-application_negative_test: CompileTimeError # Issue 14528, The following tests are currently assumed to be failing because the test is wrong.
-bad_initializer1_negative_test: CompileTimeError # Issue 14529, The following tests are currently assumed to be failing because the test is wrong.
-bad_named_constructor_negative_test: CompileTimeError # Issue 18693, The following tests are currently assumed to be failing because the test is wrong.
-body_less_constructor_wrong_arg_negative_test: CompileTimeError # Issue 18695, The following tests are currently assumed to be failing because the test is wrong.
-empty_block_case_test: StaticWarning # Issue 18701, The following tests are currently assumed to be failing because the test is wrong.
-error_stacktrace_test: StaticWarning # Issue 18702, The following tests are currently assumed to be failing because the test is wrong.
-
-abstract_beats_arguments_test: StaticWarning
-const_counter_negative_test: CompileTimeError
-const_optional_args_negative_test: CompileTimeError
-constructor_redirect1_negative_test: CompileTimeError
-constructor_redirect2_negative_test: CompileTimeError
-constructor_setter_negative_test: CompileTimeError
-duplicate_export_negative_test: CompileTimeError
-duplicate_interface_negative_test: CompileTimeError
-export_ambiguous_main_negative_test: CompileTimeError
-extend_type_parameter2_negative_test: CompileTimeError
-extend_type_parameter_negative_test: CompileTimeError
-factory2_negative_test: CompileTimeError
-factory2_test: StaticWarning # Issue 18727
-factory3_negative_test: CompileTimeError
-factory3_test: StaticWarning # Issue 18727
-factory4_test: StaticWarning # Issue 18727
-factory_implementation_test/00: StaticWarning
-factory_negative_test: CompileTimeError
-factory_redirection_test/01: StaticWarning # Issue 11578
-factory_redirection_test/03: StaticWarning # Issue 11578
-factory_redirection_test/05: StaticWarning # Issue 11578
-factory_redirection_test/06: StaticWarning # Issue 11578
 factory_return_type_checked_test: StaticWarning # Issue 18728
-f_bounded_quantification4_test: StaticWarning
-f_bounded_quantification5_test: StaticWarning
 field1_negative_test: CompileTimeError
 field2_negative_test: CompileTimeError
 field3_negative_test: CompileTimeError
+field3a_negative_test: Fail # Issue 11124
 field4_negative_test: CompileTimeError
 field5_negative_test: CompileTimeError
-field6a_negative_test: CompileTimeError
 field6_negative_test: CompileTimeError
+field6a_negative_test: CompileTimeError
+field_method4_negative_test: Fail # Issue 11590
+final_attempt_reinitialization_test/01: MissingCompileTimeError # Issue 29657
+final_attempt_reinitialization_test/02: MissingCompileTimeError # Issue 29657
+final_syntax_test/01: Fail # Issue 11124
+final_syntax_test/02: Fail # Issue 11124
+final_syntax_test/03: Fail # Issue 11124
+final_syntax_test/04: Fail # Issue 11124
+for_in3_test: StaticWarning, OK # Test should have warning by design.
+for_in_side_effects_test: StaticWarning, OK # Test uses custom class that does not implement Iterable in for-in.
 function_malformed_result_type_test: StaticWarning
 function_subtype_bound_closure7_test: StaticWarning
 function_subtype_checked0_test: StaticWarning
@@ -172,34 +100,49 @@
 function_type2_test: StaticWarning
 function_type_parameter2_negative_test: CompileTimeError
 function_type_parameter_negative_test: CompileTimeError
+generalized_void_syntax_test: Skip # TODO, Issue #30177.
+generic_closure_test: StaticWarning
 generic_list_checked_test: StaticWarning
-generics_test: StaticWarning
+generic_local_functions_test: CompileTimeError # Issue 28515
+generic_methods_generic_function_parameter_test: CompileTimeError # Issue 28515
 generic_test: StaticWarning
+generics_test: StaticWarning
+get_set_syntax_test/none: Fail # Issue 11575
 getter_declaration_negative_test: CompileTimeError
 getter_no_setter2_test/01: StaticWarning
 getter_no_setter_test/01: StaticWarning
+getter_no_setter_test/none: Fail # Issue 11579
+getter_setter_in_lib_test: Fail # Issue 23286
 implicit_this_test/02: StaticWarning
+implicit_this_test/none: Fail # Issue 11575
 implied_interface_test: StaticWarning
+import_combinators_negative_test: Fail # Issue 11594
 import_combinators_test: StaticWarning
 import_core_prefix_test: StaticWarning
 inferrer_this_access_test: StaticWarning
+initializing_formal_type_test: StaticWarning # Issue 26658 # Experimental feature: Use initializing formals in initializers and constructor body.
 inlined_throw_test: StaticWarning
+inst_field_initializer1_negative_test: CompileTimeError
+instance_call_wrong_argument_count_negative_test: Fail # Issue 11585
 instance_method2_negative_test: CompileTimeError
 instance_method_negative_test: CompileTimeError
 instanceof3_test: StaticWarning
 instantiate_type_variable_test/01: StaticWarning
-inst_field_initializer1_negative_test: CompileTimeError
 interceptor6_test: StaticWarning
 interface2_negative_test: CompileTimeError
 interface_inherit_field_test: StaticWarning
 interface_injection1_negative_test: CompileTimeError
 interface_injection2_negative_test: CompileTimeError
 interface_static_method_negative_test: CompileTimeError
+interface_static_non_final_fields_negative_test: Fail # Issue 11594
+interface_test/none: Fail # Issue 11575
 invocation_mirror_test: StaticWarning
 is_not_class1_negative_test: CompileTimeError
 is_not_class2_test: StaticWarning
 is_not_class4_negative_test: CompileTimeError
 isnot_malformed_type_test: StaticWarning
+issue11724_test: Fail # Issue 12381
+issue13474_test: StaticWarning, OK # Issue 13474
 issue1363_test: StaticWarning
 issue1578_negative_test: CompileTimeError
 label2_negative_test: CompileTimeError
@@ -217,10 +160,18 @@
 list_literal4_test: StaticWarning
 list_literal_negative_test: CompileTimeError
 list_test: StaticWarning
-malbounded_type_cast_test: StaticWarning
+local_function2_test: StaticWarning
+main_not_a_function_test/01: Fail # Issue 20030
+main_test/03: Fail # Issue 20030
+malbounded_redirecting_factory2_test/none: Fail # Issue 11578
+malbounded_redirecting_factory_test/none: Fail # Issue 11578
 malbounded_type_cast2_test: StaticWarning
+malbounded_type_cast_test: StaticWarning
 malbounded_type_literal_test: StaticWarning
 malbounded_type_test2_test: StaticWarning
+malformed_test/05: Fail # Issue 14079
+malformed_test/06: Fail # Issue 14079
+malformed_test/none: Fail # Issue 14079
 malformed_type_test: StaticWarning
 map_literal2_negative_test: CompileTimeError
 map_literal3_test: StaticWarning
@@ -231,16 +182,40 @@
 method_override4_test: StaticWarning
 method_override5_test: StaticWarning
 method_override6_test: StaticWarning
+method_override7_test/03: Fail # Issue 11497
 method_override_test: StaticWarning
 mixin_illegal_static_access_test: StaticWarning
+mixin_invalid_bound2_test/none: StaticWarning # legitimate StaticWarning, cannot be annotated
+mixin_invalid_bound_test/none: StaticWarning # legitimate StaticWarning, cannot be annotated
+mixin_super_bound_test: StaticWarning # legitimate StaticWarning, cannot be annotated
+mixin_supertype_subclass2_test/02: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass2_test/05: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass3_test/02: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass3_test/05: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass4_test/01: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass4_test/02: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass4_test/03: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass4_test/04: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass4_test/05: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass_test/02: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass_test/05: MissingStaticWarning # Issue 25614
 mixin_type_parameters_mixin_extends_test: StaticWarning
 mixin_type_parameters_mixin_test: StaticWarning
 mixin_type_parameters_super_extends_test: StaticWarning
 mixin_type_parameters_super_test: StaticWarning
 mixin_with_two_implicit_constructors_test: StaticWarning
-mixin_invalid_bound_test/none: StaticWarning # legitimate StaticWarning, cannot be annotated
-mixin_invalid_bound2_test/none: StaticWarning # legitimate StaticWarning, cannot be annotated
-mixin_super_bound_test: StaticWarning # legitimate StaticWarning, cannot be annotated
+multiline_newline_test/01: CompileTimeError # Issue 23888
+multiline_newline_test/01r: CompileTimeError # Issue 23888
+multiline_newline_test/02: CompileTimeError # Issue 23888
+multiline_newline_test/02r: CompileTimeError # Issue 23888
+multiline_newline_test/03: CompileTimeError # Issue 23888
+multiline_newline_test/03r: CompileTimeError # Issue 23888
+multiline_newline_test/04: MissingCompileTimeError # Issue 23888
+multiline_newline_test/04r: MissingCompileTimeError # Issue 23888
+multiline_newline_test/05: MissingCompileTimeError # Issue 23888
+multiline_newline_test/05r: MissingCompileTimeError # Issue 23888
+multiline_newline_test/06: MissingCompileTimeError # Issue 23888
+multiline_newline_test/06r: MissingCompileTimeError # Issue 23888
 named_constructor_test/01: StaticWarning
 named_constructor_test/03: StaticWarning
 named_parameters2_test: StaticWarning
@@ -260,12 +235,13 @@
 new_expression1_negative_test: CompileTimeError
 new_expression2_negative_test: CompileTimeError
 new_expression3_negative_test: CompileTimeError
-non_const_super_negative_test: CompileTimeError
-non_parameterized_factory2_test: StaticWarning
-non_parameterized_factory_test: StaticWarning
+no_main_test/01: Fail # Issue 20030
 no_such_constructor2_test: StaticWarning
 no_such_method2_test: StaticWarning
 no_such_method_dispatcher_test: StaticWarning
+non_const_super_negative_test: CompileTimeError
+non_parameterized_factory2_test: StaticWarning
+non_parameterized_factory_test: StaticWarning
 not_enough_positional_arguments_test/00: StaticWarning
 not_enough_positional_arguments_test/01: CompileTimeError
 not_enough_positional_arguments_test/02: StaticWarning
@@ -292,6 +268,7 @@
 override_field_method2_negative_test: CompileTimeError
 override_field_method4_negative_test: CompileTimeError
 override_field_method5_negative_test: CompileTimeError
+override_field_test/03: Fail # Issue 29703
 parameter_initializer1_negative_test: CompileTimeError
 parameter_initializer2_negative_test: CompileTimeError
 parameter_initializer3_negative_test: CompileTimeError
@@ -299,25 +276,62 @@
 parameter_initializer6_negative_test: CompileTimeError
 parser_quirks_test: StaticWarning
 part2_test: StaticWarning
+part_refers_to_core_library_test/01: MissingCompileTimeError # Issue 29709
 positional_parameters_type_test/01: StaticWarning
+prefix11_negative_test: Fail # Issue 11964
+prefix12_negative_test: Fail # Issue 11962
 prefix13_negative_test: CompileTimeError
 prefix15_negative_test: CompileTimeError
 prefix15_test: StaticWarning
 prefix16_test: StaticWarning
 prefix18_negative_test: CompileTimeError
+prefix1_negative_test: Fail # Issue 11962
 prefix22_test: StaticWarning
 prefix23_test: StaticWarning
+prefix2_negative_test: Fail # Issue 11962
+prefix3_negative_test: Fail # Issue 12191
+prefix4_negative_test: Fail # Issue 11962
+prefix5_negative_test: Fail # Issue 11962
 prefix7_negative_test: CompileTimeError
+prefix8_negative_test: Fail # Issue 11964
+private_member1_negative_test: Fail # Issue 14021
+private_member2_negative_test: Fail # Issue 14021
+private_member3_negative_test: Fail # Issue 14021
 property_field_override_test: StaticWarning
+proxy3_test/03: StaticWarning # Issue 15467
+proxy3_test/04: StaticWarning # Issue 15467
+proxy_test/05: StaticWarning # Issue 15467
+proxy_test/06: StaticWarning # Issue 15467
+redirecting_factory_default_values_test/none: StaticWarning # Issue 14471
 redirecting_factory_incompatible_signature_test: StaticWarning
+redirecting_factory_infinite_steps_test/01: Fail # Issue 13916
+redirecting_factory_long_test: StaticWarning
+regress_12561_test: StaticWarning # This test is expected to have warnings because of noSuchMethod overriding.
 regress_13494_test: StaticWarning
+regress_17382_test: Skip # don't care about the static warning.
+regress_22438_test: Fail # Issue 14079
+regress_23408_test: Skip # don't care about the static warning.
+regress_25246_test: Skip
+regress_26668_test: Fail # Issue 26678
+regress_27572_test: StaticWarning # Warning about undefined method expected.
+regress_27617_test/1: MissingCompileTimeError
+regress_29025_test: StaticWarning # Issue 29081
+regress_29349_test: CompileTimeError # Issue 29744
+regress_29405_test: StaticWarning # Issue 29421
+reify_typevar_static_test/00: MissingCompileTimeError # Issue 21565
 return_type_test: StaticWarning
 script1_negative_test: CompileTimeError
 script2_negative_test: CompileTimeError
+setter4_test: StaticWarning # Issue 14736
 setter_declaration2_negative_test: CompileTimeError
 setter_declaration_negative_test: CompileTimeError
 setter_no_getter_call_test/01: StaticWarning
 source_self_negative_test: CompileTimeError
+static_call_wrong_argument_count_negative_test: Fail # Issue 12156
+static_field_test/01: Fail # Issue 12541
+static_field_test/02: Fail # Issue 12541
+static_field_test/03: Fail # Issue 12541
+static_field_test/04: Fail # Issue 12541
 static_initializer_type_error_test: StaticWarning
 string_escape4_negative_test: CompileTimeError
 string_interpolate1_negative_test: CompileTimeError
@@ -349,90 +363,49 @@
 switch5_negative_test: CompileTimeError
 switch7_negative_test: CompileTimeError
 switch_fallthru_test: StaticWarning
+syntax_test/none: Fail # Issue 11575
 test_negative_test: CompileTimeError
+transitive_private_library_access_test: StaticWarning # This test is expected to generate a warning, since it's intentionally referring to a variable that's not in scope.
 try_catch4_test: StaticWarning # Note: test is in error but analyzer doesn't notice due to bug #24502 top_level_non_prefixed_library_test: StaticWarning
 try_catch5_test: StaticWarning # Note: test is in error but analyzer doesn't notice due to bug #24502 top_level_non_prefixed_library_test: StaticWarning
 type_argument_in_super_type_test: StaticWarning
-typed_selector2_test: StaticWarning
-type_variable_identifier_expression_test: StaticWarning
-type_variable_scope2_test: StaticWarning
+type_parameter_test/none: Fail # Issue 12160
+type_variable_bounds_test/none: Fail # Issue 11578
 type_variable_conflict2_test/02: MissingCompileTimeError
 type_variable_conflict2_test/06: MissingCompileTimeError
 type_variable_conflict2_test/08: MissingCompileTimeError
 type_variable_conflict2_test/10: MissingCompileTimeError
+type_variable_identifier_expression_test: StaticWarning
+type_variable_scope2_test: StaticWarning
+type_variable_scope_test/none: Fail # Issue 11578
+type_variable_static_context_negative_test: Fail # Issue 12161
+typed_selector2_test: StaticWarning
 unary_plus_negative_test: CompileTimeError
 unbound_getter_test: StaticWarning
 unhandled_exception_negative_test: CompileTimeError
+unresolved_in_factory_negative_test: Fail # Issue 12163
 unresolved_top_level_method_negative_test: StaticWarning
-vm/debug_break_vm_test/*: Skip
+unresolved_top_level_var_negative_test: Fail # Issue 12163
 vm/debug_break_enabled_vm_test: Skip
+vm/debug_break_vm_test/*: Skip
+vm/reflect_core_vm_test: CompileTimeError # This test uses "const Symbol('_setAt')"
 vm/type_cast_vm_test: StaticWarning
 vm/type_vm_test: StaticWarning
 void_type_test: StaticWarning
 
-issue13474_test: StaticWarning, OK # Issue 13474
-
-factory1_test/00: StaticWarning # Issue 18726 # Issues to be fixed now that type parameters have been fixed (issues 14221, 15553)
-factory1_test/01: StaticWarning # Issue 18726 # Issues to be fixed now that type parameters have been fixed (issues 14221, 15553)
-factory1_test/none: StaticWarning # Issue 18726 # Issues to be fixed now that type parameters have been fixed (issues 14221, 15553)
-generic_closure_test: StaticWarning
-local_function2_test: StaticWarning
-redirecting_factory_long_test: StaticWarning
-
-vm/reflect_core_vm_test: CompileTimeError # This test uses "const Symbol('_setAt')"
-
-regress_12561_test: StaticWarning # This test is expected to have warnings because of noSuchMethod overriding.
-
-main_not_a_function_test/01: Fail # Issue 20030
-main_test/03: Fail # Issue 20030
-no_main_test/01: Fail # Issue 20030
-
-transitive_private_library_access_test: StaticWarning # This test is expected to generate a warning, since it's intentionally referring to a variable that's not in scope.
-
-conflicting_type_variable_and_setter_test: CompileTimeError # Issue 25525
-
-mixin_supertype_subclass_test/02: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass_test/05: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass2_test/02: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass2_test/05: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass3_test/02: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass3_test/05: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass4_test/01: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass4_test/02: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass4_test/03: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass4_test/04: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass4_test/05: MissingStaticWarning # Issue 25614
-
-accessor_conflict_export2_test: StaticWarning # Issue 25624
-accessor_conflict_export_test: StaticWarning # Issue 25624
-accessor_conflict_import2_test: StaticWarning # Issue 25624
-accessor_conflict_import_prefixed2_test: StaticWarning # Issue 25624
-accessor_conflict_import_prefixed_test: StaticWarning # Issue 25624
-accessor_conflict_import_test: StaticWarning # Issue 25624
-
-for_in3_test: StaticWarning, OK # Test should have warning by design.
-for_in_side_effects_test: StaticWarning, OK # Test uses custom class that does not implement Iterable in for-in.
-
-initializing_formal_type_test: StaticWarning # Issue 26658 # Experimental feature: Use initializing formals in initializers and constructor body.
-
-regress_27572_test: StaticWarning # Warning about undefined method expected.
-
-part_refers_to_core_library_test/01: MissingCompileTimeError # Issue 29709
-
-generalized_void_syntax_test: Skip # TODO, Issue #30177.
-
-[ $compiler == dart2analyzer && $builder_tag == strong ]
+[ $builder_tag == strong && $compiler == dart2analyzer ]
 *: Skip # Issue 28649
 
-[$compiler == dart2analyzer && $runtime == none]
+[ $compiler == dart2analyzer && $runtime == none ]
 assertion_initializer_const_error2_test/cc10: CompileTimeError # Issue #31320
 assertion_initializer_const_error2_test/cc11: CompileTimeError # Issue #31320
 assertion_initializer_const_function_error_test/01: MissingCompileTimeError
 assertion_initializer_const_function_test/01: MissingStaticWarning
 assertion_initializer_test: CompileTimeError
 
-[$compiler == dart2analyzer && $runtime == none && $checked]
-assertion_initializer_const_error2_test/none: Pass
+[ $compiler == dart2analyzer && $runtime == none && $checked ]
 assertion_initializer_const_error2_test/*: MissingCompileTimeError # Issue #
 assertion_initializer_const_error2_test/cc10: Pass # Issue #31321
 assertion_initializer_const_error2_test/cc11: Pass # Issue #31321
+assertion_initializer_const_error2_test/none: Pass
+
diff --git a/tests/language/language_dart2js.status b/tests/language/language_dart2js.status
index a0b4bae..96b01ad 100644
--- a/tests/language/language_dart2js.status
+++ b/tests/language/language_dart2js.status
@@ -2,264 +2,36 @@
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
 
-# VM specific tests that should not be run by dart2js.
-[ $compiler == dart2js ]
-vm/*: Skip # Issue 12699
+[ $compiler != dart2analyzer ]
+switch_case_warn_test: Skip # Analyzer only, see language_analyzer2.status
 
+# VM specific tests that should not be run by dart2js.
 [ $compiler == dart2js ]
 assertion_initializer_test: Crash
 generalized_void_syntax_test: CompileTimeError
+vm/*: Skip # Issue 12699
 
-[ $compiler == dart2js && $arch == ia32 && $runtime == d8 ]
+[ $arch == ia32 && $compiler == dart2js && $runtime == d8 ]
 new_expression2_negative_test: Pass, Crash # Flaky, issue 31131
 
-[ $compiler == dart2js && !$dart2js_with_kernel ]
-accessor_conflict_export2_test: Crash # Issue 25626
-accessor_conflict_export_test: Crash # Issue 25626
-accessor_conflict_import2_test: RuntimeError # Issue 25626
-accessor_conflict_import_prefixed2_test: RuntimeError # Issue 25626
-accessor_conflict_import_prefixed_test: RuntimeError # Issue 25626
-accessor_conflict_import_test: RuntimeError # Issue 25626
-assertion_initializer_const_error2_test/none: Pass
-assertion_initializer_const_error2_test/*: Crash
-assertion_initializer_const_function_test/01: CompileTimeError
-assertion_initializer_const_function_error_test/01: Crash
-async_star_cancel_while_paused_test: RuntimeError # Issue 22853
-bad_constructor_test/05: CompileTimeError # Issue 13639
-bad_typedef_test/00: Crash # Issue 28214
-bit_operations_test: RuntimeError, OK # Issue 1533
-branch_canonicalization_test: RuntimeError # Issue 638.
-call_function_apply_test: RuntimeError # Issue 23873
-canonical_const2_test: RuntimeError, OK # Issue 1533
-closure_in_field_test/01: RuntimeError # Issue 30467
-closure_in_field_test/02: RuntimeError # Issue 30467
-const_dynamic_type_literal_test/02: CompileTimeError # Issue 23009
-const_dynamic_type_literal_test/03: CompileTimeError # Issue 23009
-const_switch_test/02: RuntimeError # Issue 17960
-const_switch_test/04: RuntimeError # Issue 17960
-constructor_duplicate_final_test/01: Fail # Issue 13363
-constructor_duplicate_final_test/02: Fail # Issue 13363
-constructor_named_arguments_test/01: CompileTimeError # Issue 25225
-deferred_not_loaded_check_test: Fail # Issue 27577
-double_int_to_string_test: RuntimeError # Issue 1533
-duplicate_part_test/01: MissingCompileTimeError # Issue 27517
-enum_test: Fail # Issue 28340
-expect_test: RuntimeError, OK # Issue 13080
-external_test/10: CompileTimeError # Issue 12887
-external_test/13: CompileTimeError # Issue 12887
-external_test/20: CompileTimeError # Issue 12887
-final_attempt_reinitialization_test.dart: Skip # Issue 29659
-full_stacktrace1_test: Pass, RuntimeError # Issue 12698
-full_stacktrace2_test: Pass, RuntimeError # Issue 12698
-full_stacktrace3_test: Pass, RuntimeError # Issue 12698
-generic_field_mixin4_test: Crash # Issue 18651
-generic_field_mixin5_test: Crash # Issue 18651
-generic_function_typedef2_test/00: Crash # Issue 28214
-generic_function_typedef2_test/01: Crash # Issue 28214
-generic_function_typedef2_test/02: Crash # Issue 28214
-generic_function_typedef2_test/03: Crash # Issue 28214
-generic_function_typedef2_test/05: Crash # Issue 28214
-generic_function_typedef2_test/06: Crash # Issue 28214
-getter_setter_in_lib_test: Fail # Issue 23288
-identical_closure2_test: RuntimeError # Issue 1533, Issue 12596
-if_null_assignment_behavior_test/13: Crash # Issue 23491
-if_null_assignment_behavior_test/14: Crash # Issue 23491
-infinity_test: RuntimeError # Issue 4984
-integer_division_by_zero_test: RuntimeError # Issue 8301
-invocation_mirror2_test: RuntimeError # Issue 6490 (wrong retval).
-invocation_mirror_empty_arguments_test: Fail # Issue 24331
-left_shift_test: RuntimeError # Issue 1533
-list_literal4_test: RuntimeError # Issue 12890
-malformed_test/none: Fail # Expect failure in lib/_internal/js_runtime/lib/preambles/d8.js
-method_name_test: Fail # issue 25574
-method_override5_test: RuntimeError # Issue 12809
-mint_arithmetic_test: RuntimeError # Issue 1533
-mixin_forwarding_constructor4_test/01: MissingCompileTimeError # Issue 15101
-mixin_forwarding_constructor4_test/02: MissingCompileTimeError # Issue 15101
-mixin_forwarding_constructor4_test/03: MissingCompileTimeError # Issue 15101
-mixin_mixin2_test: RuntimeError # Issue 13109.
-mixin_mixin3_test: RuntimeError # Issue 13109.
-mixin_mixin_type_arguments_test: RuntimeError # Issue 29587
-mixin_of_mixin_test: CompileTimeError # Issue 23773
-mixin_super_2_test: CompileTimeError # Issue 23773
-mixin_super_bound2_test: CompileTimeError # Issue 23773
-mixin_super_constructor_named_test/01: Fail # Issue 15101
-mixin_super_constructor_positionals_test/01: Fail # Issue 15101
-mixin_super_test: CompileTimeError # Issue 23773
-mixin_super_use_test: CompileTimeError # Issue 23773
-mixin_superclass_test: CompileTimeError # Issue 23773
-mixin_supertype_subclass2_test: CompileTimeError # Issue 23773
-mixin_supertype_subclass3_test: CompileTimeError # Issue 23773
-mixin_supertype_subclass4_test: CompileTimeError # Issue 23773
-mixin_supertype_subclass_test: CompileTimeError # Issue 23773
-modulo_test: RuntimeError # Issue 15246
-multiline_newline_test/01: CompileTimeError # Issue 23888
-multiline_newline_test/01r: CompileTimeError # Issue 23888
-multiline_newline_test/02: CompileTimeError # Issue 23888
-multiline_newline_test/02r: CompileTimeError # Issue 23888
-multiline_newline_test/03: CompileTimeError # Issue 23888
-multiline_newline_test/03r: CompileTimeError # Issue 23888
-multiline_newline_test/04: MissingCompileTimeError # Issue 23888
-multiline_newline_test/04r: MissingCompileTimeError # Issue 23888
-multiline_newline_test/05: MissingCompileTimeError # Issue 23888
-multiline_newline_test/05r: MissingCompileTimeError # Issue 23888
-multiline_newline_test/06: MissingCompileTimeError # Issue 23888
-multiline_newline_test/06r: MissingCompileTimeError # Issue 23888
-multiline_newline_test/none: RuntimeError # Issue 23888
-nan_identical_test: Fail # Issue 11551
-not_enough_positional_arguments_test/01: CompileTimeError # Issue 12838
-not_enough_positional_arguments_test/02: CompileTimeError # Issue 12838
-not_enough_positional_arguments_test/05: CompileTimeError # Issue 12838
-number_identity2_test: RuntimeError # Issue 12596
-numbers_test: RuntimeError, OK # Issue 1533
-override_inheritance_mixed_test/08: Fail # Issue 18124
-override_inheritance_mixed_test/09: Fail # Issue 18124
-ref_before_declaration_test/00: MissingCompileTimeError
-ref_before_declaration_test/01: MissingCompileTimeError
-ref_before_declaration_test/02: MissingCompileTimeError
-ref_before_declaration_test/03: MissingCompileTimeError
-ref_before_declaration_test/04: MissingCompileTimeError
-ref_before_declaration_test/05: MissingCompileTimeError
-ref_before_declaration_test/06: MissingCompileTimeError
-regress_22976_test: CompileTimeError # Issue 23132
-regress_24283_test: RuntimeError # Issue 1533
-regress_28341_test: Fail # Issue 28340
-regress_29481_test: Crash # Issue 29754
-scope_variable_test/01: MissingCompileTimeError # Issue 13016
-setter4_test: CompileTimeError # issue 13639
-stacktrace_demangle_ctors_test: Fail # dart2js stack traces are not always compliant.
-stacktrace_rethrow_error_test: Pass, RuntimeError # Issue 12698
-stacktrace_rethrow_nonerror_test: Pass, RuntimeError # Issue 12698
-stacktrace_test: Pass, RuntimeError # # Issue 12698
-symbol_literal_test/*: Fail # Issue 21825
-truncdiv_test: RuntimeError # Issue 15246
-try_catch_on_syntax_test/10: Fail # Issue 19823
-try_catch_on_syntax_test/11: Fail # Issue 19823
-type_variable_conflict_test/01: Fail # Issue 13702
-type_variable_conflict_test/02: Fail # Issue 13702
-type_variable_conflict_test/03: Fail # Issue 13702
-type_variable_conflict_test/04: Fail # Issue 13702
-type_variable_conflict_test/05: Fail # Issue 13702
-type_variable_conflict_test/06: Fail # Issue 13702
-syntax_test/none: CompileTimeError # Issue #30176.
+[ $compiler == dart2js && $runtime == chrome && $system == macos ]
+await_future_test: Pass, Timeout # Issue 26735
 
-library_env_test/has_no_html_support: RuntimeError, OK # The following tests are supposed to fail. In testing-mode, dart2js supports all dart:X libraries (because it uses '--categories=all').
-library_env_test/has_no_io_support: RuntimeError, OK # The following tests are supposed to fail. In testing-mode, dart2js supports all dart:X libraries (because it uses '--categories=all').
-library_env_test/has_no_mirror_support: RuntimeError, OK # The following tests are supposed to fail. In testing-mode, dart2js supports all dart:X libraries (because it uses '--categories=all').
+[ $compiler == dart2js && $runtime == chromeOnAndroid ]
+override_field_test/02: Pass, Slow # TODO(kasperl): Please triage.
 
+[ $compiler == dart2js && $runtime != drt ]
+issue23244_test: RuntimeError # 23244
 
-[ $compiler == dart2js && $csp && $browser && !$fast_startup ]
-conditional_import_string_test: Fail # Issue 30615
-conditional_import_test: Fail # Issue 30615
-
-[ $compiler == dart2js && $fast_startup && !$dart2js_with_kernel ]
-assertion_initializer_const_error2_test/none: Pass
-assertion_initializer_const_error2_test/*: Crash
-assertion_initializer_const_error2_test/cc10: CompileTimeError # Issue #31321
-assertion_initializer_const_error2_test/cc11: CompileTimeError # Issue #31321
-assertion_initializer_const_function_error_test/01: Crash
-assertion_initializer_const_function_test/01: CompileTimeError
-assertion_initializer_test: Crash
-const_evaluation_test/*: Fail # mirrors not supported
-deferred_constraints_constants_test/none: Fail # mirrors not supported
-deferred_constraints_constants_test/reference_after_load: Fail # mirrors not supported
-deferred_constraints_constants_test: Pass # mirrors not supported, passes for the wrong reason
-enum_mirror_test: Fail # mirrors not supported
-field_increment_bailout_test: Fail # mirrors not supported
-instance_creation_in_function_annotation_test: Fail # mirrors not supported
-invocation_mirror2_test: Fail # mirrors not supported
-invocation_mirror_invoke_on2_test: Fail # mirrors not supported
-invocation_mirror_invoke_on_test: Fail # mirrors not supported
-issue21079_test: Fail # mirrors not supported
-library_env_test/has_mirror_support: Fail # mirrors not supported
-library_env_test/has_no_mirror_support: Pass # fails for the wrong reason.
-many_overridden_no_such_method_test: Fail # mirrors not supported
-no_such_method_test: Fail # mirrors not supported
-null_test/0*: Pass # mirrors not supported, fails for the wrong reason
-null_test/none: Fail # mirrors not supported
-overridden_no_such_method_test: Fail # mirrors not supported
-redirecting_factory_reflection_test: Fail # mirrors not supported
-regress_13462_0_test: Fail # mirrors not supported
-regress_13462_1_test: Fail # mirrors not supported
-regress_18535_test: Fail # mirrors not supported
-regress_28255_test: Fail # mirrors not supported
-super_call4_test: Fail # mirrors not supported
-super_getter_setter_test: Fail # mirrors not supported
-vm/reflect_core_vm_test: Fail # mirrors not supported
+[ $compiler == dart2js && $runtime == ff ]
+round_test: Pass, Fail, OK # Fixed in ff 35. Common JavaScript engine Math.round bug.
 
 [ $compiler == dart2js && $runtime == jsshell && !$dart2js_with_kernel ]
-await_for_test: Skip # Jsshell does not provide periodic timers, Issue 7728
-async_star_test: RuntimeError # Jsshell does not provide non-zero timers, Issue 7728
-regress_23996_test: RuntimeError # Jsshell does not provide non-zero timers, Issue 7728
-async_star_no_cancel_test: RuntimeError # Need triage
 async_star_no_cancel2_test: RuntimeError # Need triage
-
-[ $compiler == dart2js && $browser && !$dart2js_with_kernel ]
-config_import_test: Fail # Test flag is not passed to the compiler.
-
-library_env_test/has_no_io_support: Pass # Issue 27398
-library_env_test/has_io_support: RuntimeError # Issue 27398
-
-
-[ $compiler == dart2js && $checked && !$dart2js_with_kernel ]
-async_return_types_test/nestedFuture: Fail # Issue 26429
-async_return_types_test/wrongTypeParameter: Fail # Issue 26429
-regress_26133_test: RuntimeError # Issue 26429
-regress_29405_test: Fail # Issue 29422
-type_variable_bounds_test/02: Fail # Issue 12702
-type_variable_bounds2_test/01: Fail # Issue 12702
-type_variable_bounds2_test/04: Fail # Issue 12702
-type_variable_bounds2_test/06: Pass # Issue 12702 (pass for the wrong reasons).
-type_variable_bounds3_test/00: Fail # Issue 12702
-closure_type_test: Fail # Issue 12745
-malbounded_redirecting_factory_test/02: Fail # Issue 12825
-malbounded_redirecting_factory_test/03: Fail # Issue 12825
-malbounded_redirecting_factory2_test/02: Fail # Issue 12825
-malbounded_redirecting_factory2_test/03: Fail # Issue 12825
-malbounded_instantiation_test/01: Fail # Issue 12702
-malbounded_type_cast_test: Fail # Issue 14121
-malbounded_type_cast2_test: Fail # Issue 14121
-malbounded_type_test_test/03: Fail # Issue 14121
-malbounded_type_test_test/04: Fail # Issue 14121
-malbounded_type_test2_test: Fail # Issue 14121
-default_factory2_test/01: Fail # Issue 14121
-
-[ $compiler == dart2js && !$checked && !$dart2js_with_kernel ]
-assertion_test: RuntimeError
-type_checks_in_factory_method_test: RuntimeError # Issue 12746
-generic_test: RuntimeError, OK
-map_literal4_test: RuntimeError, OK # Checked mode required.
-named_parameters_type_test/01: MissingRuntimeError, OK
-named_parameters_type_test/02: MissingRuntimeError, OK
-named_parameters_type_test/03: MissingRuntimeError, OK
-positional_parameters_type_test/01: MissingRuntimeError, OK
-positional_parameters_type_test/02: MissingRuntimeError, OK
-issue13474_test: RuntimeError, OK
-
-[ $compiler == dart2js && !$checked && $enable_asserts && !$dart2js_with_kernel ]
-assertion_test: RuntimeError # Issue 12748
-
-[ $compiler == dart2js && !$checked && $enable_asserts ]
-bool_check_test: RuntimeError # Issue 29647
-
-[ $compiler == dart2js && !$checked && $minified && !$dart2js_with_kernel ]
-f_bounded_quantification5_test: Fail, OK # Issue 12605
-
-[ $compiler == dart2js && $minified && !$dart2js_with_kernel ]
-cyclic_type_test/0*: Fail # Issue 12605
-cyclic_type2_test: Fail # Issue 12605
-f_bounded_quantification4_test: Fail, Pass # Issue 12605
-generic_closure_test: Fail # Issue 12605
-mixin_generic_test: Fail # Issue 12605
-mixin_mixin2_test: Fail # Issue 12605
-mixin_mixin3_test: Fail # Issue 12605
-mixin_mixin4_test: Fail # Issue 12605
-mixin_mixin5_test: Fail # Issue 12605
-mixin_mixin6_test: Fail # Issue 12605
-mixin_mixin_bound_test: RuntimeError # Issue 12605
-mixin_mixin_bound2_test: RuntimeError # Issue 12605
-symbol_conflict_test: RuntimeError # Issue 23857
-
+async_star_no_cancel_test: RuntimeError # Need triage
+async_star_test: RuntimeError # Jsshell does not provide non-zero timers, Issue 7728
+await_for_test: Skip # Jsshell does not provide periodic timers, Issue 7728
+regress_23996_test: RuntimeError # Jsshell does not provide non-zero timers, Issue 7728
 
 [ $compiler == dart2js && $runtime == none ]
 *: Fail, Pass # TODO(ahe): Triage these tests.
@@ -267,63 +39,30 @@
 [ $compiler == dart2js && $runtime == none && $dart2js_with_kernel ]
 *: Fail, Pass, Crash # TODO(sigmund): we should have no crashes when migration completes
 
-[ $compiler == dart2js && ($runtime == safari || $runtime == safarimobilesim) ]
-round_test: Fail, OK # Common JavaScript engine Math.round bug.
-
-[ $compiler == dart2js && $runtime == ff ]
-round_test: Pass, Fail, OK # Fixed in ff 35. Common JavaScript engine Math.round bug.
-
-[ $compiler == dart2js && $runtime == chrome && $system == macos ]
-await_future_test: Pass, Timeout # Issue 26735
-
-[ $compiler == dart2js && ($runtime == chrome || $runtime == ff) && $system == windows ]
-string_literals_test: RuntimeError # Issue 27533
-
 [ $compiler == dart2js && $runtime == safarimobilesim ]
 call_through_getter_test: Fail, OK # Safari codegen bug, fixed on some versions of Safari 7.1 (Version 7.1 (9537.85.10.17.1))
 
-[ $compiler == dart2js && $runtime == chromeOnAndroid ]
-override_field_test/02: Pass, Slow # TODO(kasperl): Please triage.
+[ $compiler == dart2js && $system == windows && ($runtime == chrome || $runtime == ff) ]
+string_literals_test: RuntimeError # Issue 27533
 
-[ $minified && !$dart2js_with_kernel ]
-stack_trace_test: Fail, OK # Stack trace not preserved in minified code.
-regress_21795_test: RuntimeError # Issue 12605
+[ $compiler == dart2js && $browser && $csp && !$fast_startup ]
+conditional_import_string_test: Fail # Issue 30615
+conditional_import_test: Fail # Issue 30615
 
-[ $compiler == dart2js && $runtime != drt ]
-issue23244_test: RuntimeError # 23244
+[ $compiler == dart2js && $browser && !$dart2js_with_kernel ]
+config_import_test: Fail # Test flag is not passed to the compiler.
+library_env_test/has_io_support: RuntimeError # Issue 27398
+library_env_test/has_no_io_support: Pass # Issue 27398
 
-[ $compiler == dart2js && $host_checked && !$dart2js_with_kernel ]
-assertion_initializer_const_error2_test/cc01: Crash
-assertion_initializer_const_error2_test/cc02: Crash
-assertion_initializer_const_error2_test/cc03: Crash
-assertion_initializer_const_error2_test/cc04: Crash
-assertion_initializer_const_error2_test/cc05: Crash
-assertion_initializer_const_error2_test/cc06: Crash
-assertion_initializer_const_error2_test/cc07: Crash
-assertion_initializer_const_error2_test/cc08: Crash
-assertion_initializer_const_error2_test/cc09: Crash
-assertion_initializer_const_error2_test/cc10: Crash
-assertion_initializer_const_error2_test/cc11: Crash
-assertion_initializer_const_function_error_test/01: Crash
-assertion_initializer_const_function_test/01: Crash
-assertion_initializer_test: Crash
-regress_26855_test/1: Crash # Issue 26867
-regress_26855_test/2: Crash # Issue 26867
-regress_26855_test/3: Crash # Issue 26867
-regress_26855_test/4: Crash # Issue 26867
-
-[ $compiler != dart2analyzer ]
-switch_case_warn_test: SKIP # Analyzer only, see language_analyzer2.status
-
-[ $compiler == dart2js && $dart2js_with_kernel && !$checked ]
-assertion_initializer_const_error2_test/none: Pass
-assertion_initializer_const_error2_test/*: CompileTimeError # Issue #31321
-
-[ $compiler == dart2js && $dart2js_with_kernel && $host_checked ]
+[ $compiler == dart2js && $checked && $dart2js_with_kernel ]
 arithmetic_canonicalization_test: RuntimeError
+assertion_initializer_const_function_test/01: RuntimeError
 assertion_initializer_test: CompileTimeError
-assertion_test: RuntimeError
-async_await_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/locals_handler.dart': Failed assertion: line 296 pos 12: 'local != null': is not true.
+assign_static_type_test/01: Fail
+assign_static_type_test/02: MissingCompileTimeError
+async_await_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
+async_return_types_test/nestedFuture: Fail # Issue 26429
+async_return_types_test/wrongTypeParameter: Fail # Issue 26429
 async_star_cancel_while_paused_test: RuntimeError
 bad_constructor_test/06: Crash # NoSuchMethodError: The getter 'iterator' was called on null.
 bad_override_test/03: MissingCompileTimeError
@@ -344,6 +83,752 @@
 class_cycle_test/03: MissingCompileTimeError
 closure_in_field_test/01: RuntimeError
 closure_in_field_test/02: RuntimeError
+closure_type_test/01: RuntimeError # Issue 12745
+closure_type_test/none: RuntimeError # Issue 12745
+compile_time_constant_checked2_test/01: MissingCompileTimeError
+compile_time_constant_checked2_test/02: MissingCompileTimeError
+compile_time_constant_checked2_test/03: MissingCompileTimeError
+compile_time_constant_checked2_test/04: MissingCompileTimeError
+compile_time_constant_checked2_test/05: MissingCompileTimeError
+compile_time_constant_checked2_test/06: MissingCompileTimeError
+compile_time_constant_checked3_test/01: MissingCompileTimeError
+compile_time_constant_checked3_test/02: MissingCompileTimeError
+compile_time_constant_checked3_test/03: MissingCompileTimeError
+compile_time_constant_checked3_test/04: MissingCompileTimeError
+compile_time_constant_checked3_test/05: MissingCompileTimeError
+compile_time_constant_checked3_test/06: MissingCompileTimeError
+compile_time_constant_checked4_test/01: MissingCompileTimeError
+compile_time_constant_checked4_test/02: MissingCompileTimeError
+compile_time_constant_checked4_test/03: MissingCompileTimeError
+compile_time_constant_checked5_test/03: MissingCompileTimeError
+compile_time_constant_checked5_test/04: MissingCompileTimeError
+compile_time_constant_checked5_test/08: MissingCompileTimeError
+compile_time_constant_checked5_test/09: MissingCompileTimeError
+compile_time_constant_checked5_test/13: MissingCompileTimeError
+compile_time_constant_checked5_test/14: MissingCompileTimeError
+compile_time_constant_checked5_test/18: MissingCompileTimeError
+compile_time_constant_checked5_test/19: MissingCompileTimeError
+compile_time_constant_checked_test/01: Fail
+compile_time_constant_checked_test/02: MissingCompileTimeError
+compile_time_constant_checked_test/03: Fail
+conditional_import_string_test: RuntimeError
+conditional_import_test: RuntimeError
+config_import_corelib_test: RuntimeError
+config_import_test: RuntimeError
+const_constructor2_test/13: MissingCompileTimeError
+const_constructor2_test/14: MissingCompileTimeError
+const_constructor2_test/15: MissingCompileTimeError
+const_constructor2_test/16: MissingCompileTimeError
+const_constructor2_test/17: MissingCompileTimeError
+const_constructor2_test/20: MissingCompileTimeError
+const_constructor2_test/22: MissingCompileTimeError
+const_constructor2_test/24: MissingCompileTimeError
+const_constructor3_test/02: MissingCompileTimeError
+const_constructor3_test/04: MissingCompileTimeError
+const_error_multiply_initialized_test/02: MissingCompileTimeError
+const_error_multiply_initialized_test/04: MissingCompileTimeError
+const_evaluation_test/01: RuntimeError
+const_factory_with_body_test/01: MissingCompileTimeError
+const_init2_test/02: MissingCompileTimeError
+const_instance_field_test/01: MissingCompileTimeError
+const_map2_test/00: MissingCompileTimeError
+const_map3_test/00: MissingCompileTimeError
+const_switch2_test/01: MissingCompileTimeError
+const_switch_test/02: RuntimeError
+const_switch_test/04: RuntimeError
+constants_test/05: MissingCompileTimeError
+constructor2_test: RuntimeError
+constructor3_test: RuntimeError
+constructor5_test: RuntimeError
+constructor6_test: RuntimeError
+constructor_named_arguments_test/none: RuntimeError
+constructor_redirect1_negative_test: Crash # Issue 30856
+constructor_redirect2_negative_test: Crash # Issue 30856
+constructor_redirect2_test/01: MissingCompileTimeError
+constructor_redirect_test/01: Crash # Assertion failure: Cannot find value Instance of 'ThisLocal' in (local(A.named2#x), local(A.named2#y), local(A.named2#z)) for j:constructor(A.named2).
+cyclic_constructor_test/01: Crash # Issue 30856
+deferred_closurize_load_library_test: RuntimeError
+deferred_constraints_constants_test/default_argument2: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
+deferred_constraints_constants_test/none: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
+deferred_constraints_constants_test/reference_after_load: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
+deferred_constraints_type_annotation_test/as_operation: RuntimeError
+deferred_constraints_type_annotation_test/catch_check: RuntimeError
+deferred_constraints_type_annotation_test/is_check: RuntimeError
+deferred_constraints_type_annotation_test/type_annotation1: Fail
+deferred_constraints_type_annotation_test/type_annotation_generic1: Fail
+deferred_constraints_type_annotation_test/type_annotation_generic4: Fail
+deferred_inheritance_constraints_test/extends: MissingCompileTimeError
+deferred_inheritance_constraints_test/implements: MissingCompileTimeError
+deferred_inheritance_constraints_test/mixin: MissingCompileTimeError
+deferred_load_constants_test/none: RuntimeError
+deferred_load_library_wrong_args_test/01: MissingRuntimeError
+deferred_not_loaded_check_test: RuntimeError
+deferred_redirecting_factory_test: RuntimeError
+double_int_to_string_test: RuntimeError
+duplicate_export_negative_test: Fail
+duplicate_implements_test/01: MissingCompileTimeError
+duplicate_implements_test/02: MissingCompileTimeError
+duplicate_implements_test/03: MissingCompileTimeError
+duplicate_implements_test/04: MissingCompileTimeError
+dynamic_prefix_core_test/01: RuntimeError
+dynamic_prefix_core_test/none: RuntimeError
+enum_mirror_test: RuntimeError
+example_constructor_test: RuntimeError
+expect_test: RuntimeError
+external_test/10: MissingRuntimeError
+external_test/13: MissingRuntimeError
+external_test/20: MissingRuntimeError
+factory_redirection_test/07: MissingCompileTimeError
+factory_redirection_test/08: Fail
+factory_redirection_test/09: Fail
+factory_redirection_test/10: Fail
+factory_redirection_test/12: Fail
+factory_redirection_test/13: Fail
+factory_redirection_test/14: Fail
+fauxverride_test/03: MissingCompileTimeError
+fauxverride_test/05: MissingCompileTimeError
+field_initialization_order_test: RuntimeError
+field_override3_test/00: MissingCompileTimeError
+field_override3_test/01: MissingCompileTimeError
+field_override3_test/02: MissingCompileTimeError
+field_override3_test/03: MissingCompileTimeError
+field_override4_test/02: MissingCompileTimeError
+final_attempt_reinitialization_test/01: MissingCompileTimeError
+final_attempt_reinitialization_test/02: MissingCompileTimeError
+final_field_initialization_order_test: RuntimeError
+generic_field_mixin4_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in (Instance of 'ThisLocal') for j:field(M.field).
+generic_field_mixin5_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in (Instance of 'ThisLocal') for j:field(M.field).
+generic_field_mixin_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in () for j:constructor(C3.).
+generic_local_functions_test: Crash # Unsupported operation: Unsupported type parameter type node Y.
+generic_methods_type_expression_test/01: RuntimeError
+generic_methods_type_expression_test/03: RuntimeError
+generic_methods_type_expression_test/none: RuntimeError
+getter_override2_test/02: MissingCompileTimeError
+getter_override_test/00: MissingCompileTimeError
+getter_override_test/01: MissingCompileTimeError
+getter_override_test/02: MissingCompileTimeError
+identical_closure2_test: RuntimeError
+if_null_assignment_behavior_test/14: RuntimeError
+infinite_switch_label_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
+infinity_test: RuntimeError
+instance_creation_in_function_annotation_test: RuntimeError
+integer_division_by_zero_test: RuntimeError
+internal_library_test/02: Crash # NoSuchMethodError: Class 'DillLibraryBuilder' has no instance getter 'mixinApplicationClasses'.
+invocation_mirror2_test: RuntimeError
+invocation_mirror_empty_arguments_test: RuntimeError
+invocation_mirror_test: RuntimeError
+issue21079_test: RuntimeError
+left_shift_test: RuntimeError
+library_env_test/has_mirror_support: RuntimeError
+library_env_test/has_no_html_support: RuntimeError
+library_env_test/has_no_io_support: RuntimeError
+list_literal1_test/01: MissingCompileTimeError
+list_literal4_test: RuntimeError
+main_not_a_function_test/01: CompileTimeError
+malbounded_instantiation_test/01: RuntimeError # Issue 12702
+malbounded_type_cast2_test: RuntimeError # Issue 14121
+malbounded_type_cast_test: RuntimeError # Issue 14121
+malbounded_type_test2_test: RuntimeError # Issue 14121
+malbounded_type_test_test/03: Fail # Issue 14121
+malbounded_type_test_test/04: Fail # Issue 14121
+malformed2_test/00: RuntimeError
+malformed2_test/01: MissingCompileTimeError
+map_literal1_test/01: MissingCompileTimeError
+method_name_test: CompileTimeError
+method_override5_test: RuntimeError
+method_override7_test/00: MissingCompileTimeError
+method_override7_test/01: MissingCompileTimeError
+method_override7_test/02: MissingCompileTimeError
+method_override8_test/00: MissingCompileTimeError
+method_override8_test/01: MissingCompileTimeError
+mint_arithmetic_test: RuntimeError
+mixin_black_listed_test/02: MissingCompileTimeError
+mixin_forwarding_constructor4_test/01: MissingCompileTimeError
+mixin_forwarding_constructor4_test/02: MissingCompileTimeError
+mixin_forwarding_constructor4_test/03: MissingCompileTimeError
+mixin_illegal_super_use_test/01: MissingCompileTimeError
+mixin_illegal_super_use_test/02: MissingCompileTimeError
+mixin_illegal_super_use_test/03: MissingCompileTimeError
+mixin_illegal_super_use_test/04: MissingCompileTimeError
+mixin_illegal_super_use_test/05: MissingCompileTimeError
+mixin_illegal_super_use_test/06: MissingCompileTimeError
+mixin_illegal_super_use_test/07: MissingCompileTimeError
+mixin_illegal_super_use_test/08: MissingCompileTimeError
+mixin_illegal_super_use_test/09: MissingCompileTimeError
+mixin_illegal_super_use_test/10: MissingCompileTimeError
+mixin_illegal_super_use_test/11: MissingCompileTimeError
+mixin_illegal_superclass_test/01: MissingCompileTimeError
+mixin_illegal_superclass_test/02: MissingCompileTimeError
+mixin_illegal_superclass_test/03: MissingCompileTimeError
+mixin_illegal_superclass_test/04: MissingCompileTimeError
+mixin_illegal_superclass_test/05: MissingCompileTimeError
+mixin_illegal_superclass_test/06: MissingCompileTimeError
+mixin_illegal_superclass_test/07: MissingCompileTimeError
+mixin_illegal_superclass_test/08: MissingCompileTimeError
+mixin_illegal_superclass_test/09: MissingCompileTimeError
+mixin_illegal_superclass_test/10: MissingCompileTimeError
+mixin_illegal_superclass_test/11: MissingCompileTimeError
+mixin_illegal_superclass_test/12: MissingCompileTimeError
+mixin_illegal_superclass_test/13: MissingCompileTimeError
+mixin_illegal_superclass_test/14: MissingCompileTimeError
+mixin_illegal_superclass_test/15: MissingCompileTimeError
+mixin_illegal_superclass_test/16: MissingCompileTimeError
+mixin_illegal_superclass_test/17: MissingCompileTimeError
+mixin_illegal_superclass_test/18: MissingCompileTimeError
+mixin_illegal_superclass_test/19: MissingCompileTimeError
+mixin_illegal_superclass_test/20: MissingCompileTimeError
+mixin_illegal_superclass_test/21: MissingCompileTimeError
+mixin_illegal_superclass_test/22: MissingCompileTimeError
+mixin_illegal_superclass_test/23: MissingCompileTimeError
+mixin_illegal_superclass_test/24: MissingCompileTimeError
+mixin_illegal_superclass_test/25: MissingCompileTimeError
+mixin_illegal_superclass_test/26: MissingCompileTimeError
+mixin_illegal_superclass_test/27: MissingCompileTimeError
+mixin_illegal_superclass_test/28: MissingCompileTimeError
+mixin_illegal_superclass_test/29: MissingCompileTimeError
+mixin_illegal_superclass_test/30: MissingCompileTimeError
+mixin_issue10216_2_test: RuntimeError
+mixin_mixin2_test: RuntimeError
+mixin_mixin3_test: RuntimeError
+mixin_mixin4_test: RuntimeError
+mixin_mixin5_test: RuntimeError
+mixin_mixin6_test: RuntimeError
+mixin_mixin7_test: RuntimeError
+mixin_mixin_bound2_test: RuntimeError
+mixin_mixin_bound_test: RuntimeError
+mixin_mixin_test: RuntimeError
+mixin_mixin_type_arguments_test: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
+mixin_of_mixin_test/01: CompileTimeError
+mixin_of_mixin_test/02: CompileTimeError
+mixin_of_mixin_test/03: CompileTimeError
+mixin_of_mixin_test/04: CompileTimeError
+mixin_of_mixin_test/05: CompileTimeError
+mixin_of_mixin_test/06: CompileTimeError
+mixin_of_mixin_test/07: CompileTimeError
+mixin_of_mixin_test/08: CompileTimeError
+mixin_of_mixin_test/09: CompileTimeError
+mixin_of_mixin_test/10: CompileTimeError
+mixin_of_mixin_test/11: CompileTimeError
+mixin_of_mixin_test/12: CompileTimeError
+mixin_of_mixin_test/13: CompileTimeError
+mixin_of_mixin_test/14: CompileTimeError
+mixin_of_mixin_test/15: CompileTimeError
+mixin_of_mixin_test/16: CompileTimeError
+mixin_of_mixin_test/17: CompileTimeError
+mixin_of_mixin_test/18: CompileTimeError
+mixin_of_mixin_test/19: CompileTimeError
+mixin_of_mixin_test/20: CompileTimeError
+mixin_of_mixin_test/21: CompileTimeError
+mixin_of_mixin_test/22: CompileTimeError
+mixin_of_mixin_test/none: CompileTimeError
+mixin_super_2_test: CompileTimeError
+mixin_super_bound2_test/01: CompileTimeError
+mixin_super_bound2_test/none: CompileTimeError
+mixin_super_constructor_named_test/01: MissingCompileTimeError
+mixin_super_constructor_positionals_test/01: MissingCompileTimeError
+mixin_super_test: CompileTimeError
+mixin_super_use_test: CompileTimeError
+mixin_superclass_test: CompileTimeError
+mixin_supertype_subclass2_test/01: CompileTimeError
+mixin_supertype_subclass2_test/02: CompileTimeError
+mixin_supertype_subclass2_test/03: CompileTimeError
+mixin_supertype_subclass2_test/04: CompileTimeError
+mixin_supertype_subclass2_test/05: CompileTimeError
+mixin_supertype_subclass2_test/none: CompileTimeError
+mixin_supertype_subclass3_test/01: CompileTimeError
+mixin_supertype_subclass3_test/02: CompileTimeError
+mixin_supertype_subclass3_test/03: CompileTimeError
+mixin_supertype_subclass3_test/04: CompileTimeError
+mixin_supertype_subclass3_test/05: CompileTimeError
+mixin_supertype_subclass3_test/none: CompileTimeError
+mixin_supertype_subclass4_test/01: CompileTimeError
+mixin_supertype_subclass4_test/02: CompileTimeError
+mixin_supertype_subclass4_test/03: CompileTimeError
+mixin_supertype_subclass4_test/04: CompileTimeError
+mixin_supertype_subclass4_test/05: CompileTimeError
+mixin_supertype_subclass4_test/none: CompileTimeError
+mixin_supertype_subclass_test/01: CompileTimeError
+mixin_supertype_subclass_test/02: CompileTimeError
+mixin_supertype_subclass_test/03: CompileTimeError
+mixin_supertype_subclass_test/04: CompileTimeError
+mixin_supertype_subclass_test/05: CompileTimeError
+mixin_supertype_subclass_test/none: CompileTimeError
+modulo_test: RuntimeError
+multiline_newline_test/04: MissingCompileTimeError
+multiline_newline_test/04r: MissingCompileTimeError
+multiline_newline_test/05: MissingCompileTimeError
+multiline_newline_test/05r: MissingCompileTimeError
+multiline_newline_test/06: MissingCompileTimeError
+multiline_newline_test/06r: MissingCompileTimeError
+named_constructor_test/01: MissingRuntimeError
+named_parameters_default_eq_test/02: MissingCompileTimeError
+nan_identical_test: RuntimeError
+nested_switch_label_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
+no_main_test/01: CompileTimeError
+null_test/02: MissingCompileTimeError
+null_test/03: MissingCompileTimeError
+null_test/none: RuntimeError
+number_identity2_test: RuntimeError
+numbers_test: RuntimeError
+override_field_method1_negative_test: Fail
+override_field_method2_negative_test: Fail
+override_field_method4_negative_test: Fail
+override_field_method5_negative_test: Fail
+override_field_test/01: MissingCompileTimeError
+override_inheritance_mixed_test/01: MissingCompileTimeError
+override_inheritance_mixed_test/02: MissingCompileTimeError
+override_inheritance_mixed_test/03: MissingCompileTimeError
+override_inheritance_mixed_test/04: MissingCompileTimeError
+override_method_with_field_test/01: MissingCompileTimeError
+private_super_constructor_test/01: MissingCompileTimeError
+redirecting_constructor_initializer_test: RuntimeError
+redirecting_factory_default_values_test/01: MissingCompileTimeError
+redirecting_factory_default_values_test/02: MissingCompileTimeError
+redirecting_factory_infinite_steps_test/01: Fail
+redirecting_factory_long_test: RuntimeError
+redirecting_factory_reflection_test: RuntimeError
+regress_13494_test: RuntimeError
+regress_17382_test: RuntimeError
+regress_20394_test/01: MissingCompileTimeError
+regress_22936_test/01: RuntimeError
+regress_22976_test/01: CompileTimeError
+regress_22976_test/02: CompileTimeError
+regress_22976_test/none: CompileTimeError
+regress_24283_test: RuntimeError
+regress_26133_test: RuntimeError # Issue 26429
+regress_27572_test: RuntimeError
+regress_27617_test/1: Crash # Assertion failure: Unexpected constructor j:constructor(Foo._) in ConstructorDataImpl._getConstructorConstant
+regress_28217_test/01: MissingCompileTimeError
+regress_28217_test/none: MissingCompileTimeError
+regress_28255_test: RuntimeError
+regress_29405_test: RuntimeError # Issue 29422
+setter_override_test/00: MissingCompileTimeError
+setter_override_test/03: MissingCompileTimeError
+stacktrace_demangle_ctors_test: RuntimeError
+stacktrace_test: RuntimeError
+static_getter_no_setter1_test/01: RuntimeError
+static_getter_no_setter2_test/01: RuntimeError
+static_getter_no_setter3_test/01: RuntimeError
+super_call4_test: Crash # NoSuchMethodError: The getter 'thisLocal' was called on null.
+super_test: RuntimeError
+switch_bad_case_test/01: MissingCompileTimeError
+switch_bad_case_test/02: MissingCompileTimeError
+switch_case_test/00: MissingCompileTimeError
+switch_case_test/01: MissingCompileTimeError
+switch_case_test/02: MissingCompileTimeError
+syntax_test/none: CompileTimeError
+top_level_getter_no_setter1_test/01: RuntimeError
+top_level_getter_no_setter2_test/01: RuntimeError
+truncdiv_test: RuntimeError
+try_catch_test/01: MissingCompileTimeError
+type_check_const_function_typedef2_test/00: MissingCompileTimeError
+type_parameter_test/01: Crash # Internal Error: Unexpected type variable in static context.
+type_parameter_test/02: Crash # Internal Error: Unexpected type variable in static context.
+type_parameter_test/03: Crash # Internal Error: Unexpected type variable in static context.
+type_parameter_test/04: Crash # Internal Error: Unexpected type variable in static context.
+type_parameter_test/05: Crash # Internal Error: Unexpected type variable in static context.
+type_parameter_test/06: Crash # Internal Error: Unexpected type variable in static context.
+type_parameter_test/none: Crash # Internal Error: Unexpected type variable in static context.
+type_variable_bounds2_test/01: RuntimeError # Issue 12702
+type_variable_bounds2_test/04: RuntimeError # Issue 12702
+type_variable_bounds3_test/00: Fail # Issue 12702
+type_variable_bounds_test/02: Fail # Issue 12702
+type_variable_scope_test/03: Crash # Internal Error: Unexpected type variable in static context.
+
+[ $compiler == dart2js && $checked && !$dart2js_with_kernel ]
+async_return_types_test/nestedFuture: Fail # Issue 26429
+async_return_types_test/wrongTypeParameter: Fail # Issue 26429
+closure_type_test: Fail # Issue 12745
+default_factory2_test/01: Fail # Issue 14121
+malbounded_instantiation_test/01: Fail # Issue 12702
+malbounded_redirecting_factory2_test/02: Fail # Issue 12825
+malbounded_redirecting_factory2_test/03: Fail # Issue 12825
+malbounded_redirecting_factory_test/02: Fail # Issue 12825
+malbounded_redirecting_factory_test/03: Fail # Issue 12825
+malbounded_type_cast2_test: Fail # Issue 14121
+malbounded_type_cast_test: Fail # Issue 14121
+malbounded_type_test2_test: Fail # Issue 14121
+malbounded_type_test_test/03: Fail # Issue 14121
+malbounded_type_test_test/04: Fail # Issue 14121
+regress_26133_test: RuntimeError # Issue 26429
+regress_29405_test: Fail # Issue 29422
+type_variable_bounds2_test/01: Fail # Issue 12702
+type_variable_bounds2_test/04: Fail # Issue 12702
+type_variable_bounds2_test/06: Pass # Issue 12702 (pass for the wrong reasons).
+type_variable_bounds3_test/00: Fail # Issue 12702
+type_variable_bounds_test/02: Fail # Issue 12702
+
+[ $compiler == dart2js && !$checked && $dart2js_with_kernel ]
+assertion_initializer_const_error2_test/*: CompileTimeError # Issue #31321
+assertion_initializer_const_error2_test/none: Pass
+
+[ $compiler == dart2js && !$checked && !$dart2js_with_kernel ]
+assertion_test: RuntimeError
+generic_test: RuntimeError, OK
+issue13474_test: RuntimeError, OK
+map_literal4_test: RuntimeError, OK # Checked mode required.
+named_parameters_type_test/01: MissingRuntimeError, OK
+named_parameters_type_test/02: MissingRuntimeError, OK
+named_parameters_type_test/03: MissingRuntimeError, OK
+positional_parameters_type_test/01: MissingRuntimeError, OK
+positional_parameters_type_test/02: MissingRuntimeError, OK
+type_checks_in_factory_method_test: RuntimeError # Issue 12746
+
+[ $compiler == dart2js && !$checked && !$dart2js_with_kernel && $enable_asserts ]
+assertion_test: RuntimeError # Issue 12748
+
+[ $compiler == dart2js && !$checked && !$dart2js_with_kernel && $minified ]
+f_bounded_quantification5_test: Fail, OK # Issue 12605
+
+[ $compiler == dart2js && !$checked && $enable_asserts ]
+bool_check_test: RuntimeError # Issue 29647
+
+[ $compiler == dart2js && $dart2js_with_kernel && $fast_startup ]
+arithmetic_canonicalization_test: RuntimeError
+assertion_initializer_const_error2_test/none: CompileTimeError
+assertion_initializer_test: CompileTimeError
+assertion_test: RuntimeError
+async_await_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
+async_star_cancel_while_paused_test: RuntimeError
+bad_constructor_test/06: Crash # NoSuchMethodError: The getter 'iterator' was called on null.
+bad_override_test/03: MissingCompileTimeError
+bad_override_test/04: MissingCompileTimeError
+bad_override_test/05: MissingCompileTimeError
+bit_operations_test/01: RuntimeError
+bit_operations_test/02: RuntimeError
+bit_operations_test/03: RuntimeError
+bit_operations_test/04: RuntimeError
+bit_operations_test/none: RuntimeError
+branch_canonicalization_test: RuntimeError
+call_function_apply_test: RuntimeError
+call_nonexistent_constructor_test/01: RuntimeError
+canonical_const2_test: RuntimeError
+canonical_const3_test: CompileTimeError
+check_member_static_test/02: MissingCompileTimeError
+class_cycle_test/02: MissingCompileTimeError
+class_cycle_test/03: MissingCompileTimeError
+closure_in_field_test/01: RuntimeError
+closure_in_field_test/02: RuntimeError
+conditional_import_string_test: RuntimeError
+conditional_import_test: RuntimeError
+config_import_corelib_test: RuntimeError
+config_import_test: RuntimeError
+const_error_multiply_initialized_test/02: MissingCompileTimeError
+const_error_multiply_initialized_test/04: MissingCompileTimeError
+const_evaluation_test/01: RuntimeError
+const_factory_with_body_test/01: MissingCompileTimeError
+const_instance_field_test/01: MissingCompileTimeError
+const_map2_test/00: MissingCompileTimeError
+const_map3_test/00: MissingCompileTimeError
+const_switch2_test/01: MissingCompileTimeError
+const_switch_test/02: RuntimeError
+const_switch_test/04: RuntimeError
+constants_test/05: MissingCompileTimeError
+constructor2_test: RuntimeError
+constructor3_test: RuntimeError
+constructor5_test: RuntimeError
+constructor6_test: RuntimeError
+constructor_named_arguments_test/none: RuntimeError
+constructor_redirect1_negative_test: Crash # Stack Overflow
+constructor_redirect2_negative_test: Crash # Stack Overflow
+constructor_redirect2_test/01: MissingCompileTimeError
+constructor_redirect_test/01: Crash # Assertion failure: Cannot find value Instance of 'ThisLocal' in (local(A.named2#x), local(A.named2#y), local(A.named2#z)) for j:constructor(A.named2).
+cyclic_constructor_test/01: Crash # Stack Overflow
+deferred_closurize_load_library_test: RuntimeError
+deferred_constraints_constants_test/default_argument2: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
+deferred_constraints_constants_test/none: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
+deferred_constraints_constants_test/reference_after_load: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
+deferred_constraints_type_annotation_test/as_operation: RuntimeError
+deferred_constraints_type_annotation_test/catch_check: RuntimeError
+deferred_constraints_type_annotation_test/is_check: RuntimeError
+deferred_inheritance_constraints_test/extends: MissingCompileTimeError
+deferred_inheritance_constraints_test/implements: MissingCompileTimeError
+deferred_inheritance_constraints_test/mixin: MissingCompileTimeError
+deferred_load_constants_test/none: RuntimeError
+deferred_load_library_wrong_args_test/01: MissingRuntimeError
+deferred_not_loaded_check_test: RuntimeError
+deferred_redirecting_factory_test: RuntimeError
+double_int_to_string_test: RuntimeError
+duplicate_export_negative_test: Fail
+duplicate_implements_test/01: MissingCompileTimeError
+duplicate_implements_test/02: MissingCompileTimeError
+duplicate_implements_test/03: MissingCompileTimeError
+duplicate_implements_test/04: MissingCompileTimeError
+dynamic_prefix_core_test/01: RuntimeError
+dynamic_prefix_core_test/none: RuntimeError
+enum_mirror_test: RuntimeError
+example_constructor_test: RuntimeError
+expect_test: RuntimeError
+external_test/10: MissingRuntimeError
+external_test/13: MissingRuntimeError
+external_test/20: MissingRuntimeError
+factory_redirection_test/07: MissingCompileTimeError
+fauxverride_test/03: MissingCompileTimeError
+fauxverride_test/05: MissingCompileTimeError
+field_increment_bailout_test: RuntimeError
+field_initialization_order_test: RuntimeError
+field_override3_test/00: MissingCompileTimeError
+field_override3_test/01: MissingCompileTimeError
+field_override3_test/02: MissingCompileTimeError
+field_override3_test/03: MissingCompileTimeError
+field_override4_test/02: MissingCompileTimeError
+final_attempt_reinitialization_test/01: MissingCompileTimeError
+final_attempt_reinitialization_test/02: MissingCompileTimeError
+final_field_initialization_order_test: RuntimeError
+generic_field_mixin4_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in () for j:constructor(C3.).
+generic_field_mixin5_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in () for j:constructor(C3.).
+generic_field_mixin_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in () for j:constructor(C3.).
+generic_local_functions_test: Crash # Unsupported operation: Unsupported type parameter type node Y.
+generic_methods_type_expression_test/01: RuntimeError
+generic_methods_type_expression_test/03: RuntimeError
+generic_methods_type_expression_test/none: RuntimeError
+generic_test: RuntimeError
+getter_override2_test/02: MissingCompileTimeError
+getter_override_test/00: MissingCompileTimeError
+getter_override_test/01: MissingCompileTimeError
+getter_override_test/02: MissingCompileTimeError
+identical_closure2_test: RuntimeError
+if_null_assignment_behavior_test/14: RuntimeError
+infinite_switch_label_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
+infinity_test: RuntimeError
+instance_creation_in_function_annotation_test: RuntimeError
+integer_division_by_zero_test: RuntimeError
+internal_library_test/02: Crash # NoSuchMethodError: Class 'DillLibraryBuilder' has no instance getter 'mixinApplicationClasses'.
+invocation_mirror2_test: RuntimeError
+invocation_mirror_empty_arguments_test: RuntimeError
+invocation_mirror_invoke_on2_test: RuntimeError
+invocation_mirror_invoke_on_test: RuntimeError
+invocation_mirror_test: RuntimeError
+issue13474_test: RuntimeError
+issue21079_test: RuntimeError
+left_shift_test: RuntimeError
+library_env_test/has_mirror_support: RuntimeError
+library_env_test/has_no_html_support: RuntimeError
+library_env_test/has_no_io_support: RuntimeError
+list_literal4_test: RuntimeError
+main_not_a_function_test/01: CompileTimeError
+many_overridden_no_such_method_test: RuntimeError
+map_literal4_test: RuntimeError
+method_name_test: CompileTimeError
+method_override5_test: RuntimeError
+method_override7_test/00: MissingCompileTimeError
+method_override7_test/01: MissingCompileTimeError
+method_override7_test/02: MissingCompileTimeError
+method_override8_test/00: MissingCompileTimeError
+method_override8_test/01: MissingCompileTimeError
+mint_arithmetic_test: RuntimeError
+mixin_black_listed_test/02: MissingCompileTimeError
+mixin_forwarding_constructor4_test/01: MissingCompileTimeError
+mixin_forwarding_constructor4_test/02: MissingCompileTimeError
+mixin_forwarding_constructor4_test/03: MissingCompileTimeError
+mixin_illegal_super_use_test/01: MissingCompileTimeError
+mixin_illegal_super_use_test/02: MissingCompileTimeError
+mixin_illegal_super_use_test/03: MissingCompileTimeError
+mixin_illegal_super_use_test/04: MissingCompileTimeError
+mixin_illegal_super_use_test/05: MissingCompileTimeError
+mixin_illegal_super_use_test/06: MissingCompileTimeError
+mixin_illegal_super_use_test/07: MissingCompileTimeError
+mixin_illegal_super_use_test/08: MissingCompileTimeError
+mixin_illegal_super_use_test/09: MissingCompileTimeError
+mixin_illegal_super_use_test/10: MissingCompileTimeError
+mixin_illegal_super_use_test/11: MissingCompileTimeError
+mixin_illegal_superclass_test/01: MissingCompileTimeError
+mixin_illegal_superclass_test/02: MissingCompileTimeError
+mixin_illegal_superclass_test/03: MissingCompileTimeError
+mixin_illegal_superclass_test/04: MissingCompileTimeError
+mixin_illegal_superclass_test/05: MissingCompileTimeError
+mixin_illegal_superclass_test/06: MissingCompileTimeError
+mixin_illegal_superclass_test/07: MissingCompileTimeError
+mixin_illegal_superclass_test/08: MissingCompileTimeError
+mixin_illegal_superclass_test/09: MissingCompileTimeError
+mixin_illegal_superclass_test/10: MissingCompileTimeError
+mixin_illegal_superclass_test/11: MissingCompileTimeError
+mixin_illegal_superclass_test/12: MissingCompileTimeError
+mixin_illegal_superclass_test/13: MissingCompileTimeError
+mixin_illegal_superclass_test/14: MissingCompileTimeError
+mixin_illegal_superclass_test/15: MissingCompileTimeError
+mixin_illegal_superclass_test/16: MissingCompileTimeError
+mixin_illegal_superclass_test/17: MissingCompileTimeError
+mixin_illegal_superclass_test/18: MissingCompileTimeError
+mixin_illegal_superclass_test/19: MissingCompileTimeError
+mixin_illegal_superclass_test/20: MissingCompileTimeError
+mixin_illegal_superclass_test/21: MissingCompileTimeError
+mixin_illegal_superclass_test/22: MissingCompileTimeError
+mixin_illegal_superclass_test/23: MissingCompileTimeError
+mixin_illegal_superclass_test/24: MissingCompileTimeError
+mixin_illegal_superclass_test/25: MissingCompileTimeError
+mixin_illegal_superclass_test/26: MissingCompileTimeError
+mixin_illegal_superclass_test/27: MissingCompileTimeError
+mixin_illegal_superclass_test/28: MissingCompileTimeError
+mixin_illegal_superclass_test/29: MissingCompileTimeError
+mixin_illegal_superclass_test/30: MissingCompileTimeError
+mixin_issue10216_2_test: RuntimeError
+mixin_mixin2_test: RuntimeError
+mixin_mixin3_test: RuntimeError
+mixin_mixin4_test: RuntimeError
+mixin_mixin5_test: RuntimeError
+mixin_mixin6_test: RuntimeError
+mixin_mixin7_test: RuntimeError
+mixin_mixin_bound2_test: RuntimeError
+mixin_mixin_bound_test: RuntimeError
+mixin_mixin_test: RuntimeError
+mixin_mixin_type_arguments_test: RuntimeError
+mixin_of_mixin_test/01: CompileTimeError
+mixin_of_mixin_test/02: CompileTimeError
+mixin_of_mixin_test/03: CompileTimeError
+mixin_of_mixin_test/04: CompileTimeError
+mixin_of_mixin_test/05: CompileTimeError
+mixin_of_mixin_test/06: CompileTimeError
+mixin_of_mixin_test/07: CompileTimeError
+mixin_of_mixin_test/08: CompileTimeError
+mixin_of_mixin_test/09: CompileTimeError
+mixin_of_mixin_test/10: CompileTimeError
+mixin_of_mixin_test/11: CompileTimeError
+mixin_of_mixin_test/12: CompileTimeError
+mixin_of_mixin_test/13: CompileTimeError
+mixin_of_mixin_test/14: CompileTimeError
+mixin_of_mixin_test/15: CompileTimeError
+mixin_of_mixin_test/16: CompileTimeError
+mixin_of_mixin_test/17: CompileTimeError
+mixin_of_mixin_test/18: CompileTimeError
+mixin_of_mixin_test/19: CompileTimeError
+mixin_of_mixin_test/20: CompileTimeError
+mixin_of_mixin_test/21: CompileTimeError
+mixin_of_mixin_test/22: CompileTimeError
+mixin_of_mixin_test/none: CompileTimeError
+mixin_super_2_test: CompileTimeError
+mixin_super_bound2_test/01: CompileTimeError
+mixin_super_bound2_test/none: CompileTimeError
+mixin_super_constructor_named_test/01: MissingCompileTimeError
+mixin_super_constructor_positionals_test/01: MissingCompileTimeError
+mixin_super_test: CompileTimeError
+mixin_super_use_test: CompileTimeError
+mixin_superclass_test: CompileTimeError
+mixin_supertype_subclass2_test/01: CompileTimeError
+mixin_supertype_subclass2_test/02: CompileTimeError
+mixin_supertype_subclass2_test/03: CompileTimeError
+mixin_supertype_subclass2_test/04: CompileTimeError
+mixin_supertype_subclass2_test/05: CompileTimeError
+mixin_supertype_subclass2_test/none: CompileTimeError
+mixin_supertype_subclass3_test/01: CompileTimeError
+mixin_supertype_subclass3_test/02: CompileTimeError
+mixin_supertype_subclass3_test/03: CompileTimeError
+mixin_supertype_subclass3_test/04: CompileTimeError
+mixin_supertype_subclass3_test/05: CompileTimeError
+mixin_supertype_subclass3_test/none: CompileTimeError
+mixin_supertype_subclass4_test/01: CompileTimeError
+mixin_supertype_subclass4_test/02: CompileTimeError
+mixin_supertype_subclass4_test/03: CompileTimeError
+mixin_supertype_subclass4_test/04: CompileTimeError
+mixin_supertype_subclass4_test/05: CompileTimeError
+mixin_supertype_subclass4_test/none: CompileTimeError
+mixin_supertype_subclass_test/01: CompileTimeError
+mixin_supertype_subclass_test/02: CompileTimeError
+mixin_supertype_subclass_test/03: CompileTimeError
+mixin_supertype_subclass_test/04: CompileTimeError
+mixin_supertype_subclass_test/05: CompileTimeError
+mixin_supertype_subclass_test/none: CompileTimeError
+modulo_test: RuntimeError
+multiline_newline_test/04: MissingCompileTimeError
+multiline_newline_test/04r: MissingCompileTimeError
+multiline_newline_test/05: MissingCompileTimeError
+multiline_newline_test/05r: MissingCompileTimeError
+multiline_newline_test/06: MissingCompileTimeError
+multiline_newline_test/06r: MissingCompileTimeError
+named_constructor_test/01: MissingRuntimeError
+named_parameters_default_eq_test/02: MissingCompileTimeError
+named_parameters_type_test/01: MissingRuntimeError
+named_parameters_type_test/02: MissingRuntimeError
+named_parameters_type_test/03: MissingRuntimeError
+nan_identical_test: RuntimeError
+nested_switch_label_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
+no_main_test/01: CompileTimeError
+no_such_method_test: RuntimeError
+null_test/02: MissingCompileTimeError
+null_test/03: MissingCompileTimeError
+null_test/none: RuntimeError
+number_identity2_test: RuntimeError
+numbers_test: RuntimeError
+overridden_no_such_method_test: RuntimeError
+override_field_method1_negative_test: Fail
+override_field_method2_negative_test: Fail
+override_field_method4_negative_test: Fail
+override_field_method5_negative_test: Fail
+override_field_test/01: MissingCompileTimeError
+override_inheritance_mixed_test/01: MissingCompileTimeError
+override_inheritance_mixed_test/02: MissingCompileTimeError
+override_inheritance_mixed_test/03: MissingCompileTimeError
+override_inheritance_mixed_test/04: MissingCompileTimeError
+override_method_with_field_test/01: MissingCompileTimeError
+positional_parameters_type_test/01: MissingRuntimeError
+positional_parameters_type_test/02: MissingRuntimeError
+private_super_constructor_test/01: MissingCompileTimeError
+redirecting_constructor_initializer_test: RuntimeError
+redirecting_factory_default_values_test/01: MissingCompileTimeError
+redirecting_factory_default_values_test/02: MissingCompileTimeError
+redirecting_factory_long_test: RuntimeError
+redirecting_factory_reflection_test: RuntimeError
+regress_13494_test: RuntimeError
+regress_17382_test: RuntimeError
+regress_20394_test/01: MissingCompileTimeError
+regress_22936_test/01: RuntimeError
+regress_22976_test/01: CompileTimeError
+regress_22976_test/02: CompileTimeError
+regress_22976_test/none: CompileTimeError
+regress_24283_test: RuntimeError
+regress_27572_test: RuntimeError
+regress_27617_test/1: Crash # Assertion failure: Unexpected constructor j:constructor(Foo._) in ConstructorDataImpl._getConstructorConstant
+regress_28217_test/01: MissingCompileTimeError
+regress_28217_test/none: MissingCompileTimeError
+regress_28255_test: RuntimeError
+setter_override_test/00: MissingCompileTimeError
+setter_override_test/03: MissingCompileTimeError
+stacktrace_demangle_ctors_test: RuntimeError
+stacktrace_test: RuntimeError
+static_getter_no_setter1_test/01: RuntimeError
+static_getter_no_setter2_test/01: RuntimeError
+static_getter_no_setter3_test/01: RuntimeError
+super_call4_test: Crash # NoSuchMethodError: The getter 'thisLocal' was called on null.
+super_test: RuntimeError
+switch_bad_case_test/01: MissingCompileTimeError
+switch_bad_case_test/02: MissingCompileTimeError
+switch_case_test/00: MissingCompileTimeError
+switch_case_test/01: MissingCompileTimeError
+switch_case_test/02: MissingCompileTimeError
+syntax_test/none: CompileTimeError
+top_level_getter_no_setter1_test/01: RuntimeError
+top_level_getter_no_setter2_test/01: RuntimeError
+truncdiv_test: RuntimeError
+try_catch_test/01: MissingCompileTimeError
+type_checks_in_factory_method_test: RuntimeError
+
+[ $compiler == dart2js && $dart2js_with_kernel && $host_checked ]
+arithmetic_canonicalization_test: RuntimeError
+assertion_initializer_test: CompileTimeError
+assertion_test: RuntimeError
+async_await_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/locals_handler.dart': Failed assertion: line 296 pos 12: 'local != null': is not true.
+async_star_cancel_while_paused_test: RuntimeError
+async_test/setter1: Crash # 'file:*/pkg/compiler/lib/src/kernel/element_map_impl.dart': Failed assertion: line 939 pos 18: 'asyncMarker == AsyncMarker.SYNC': is not true.
+bad_constructor_test/06: Crash # NoSuchMethodError: The getter 'iterator' was called on null.
+bad_override_test/03: MissingCompileTimeError
+bad_override_test/04: MissingCompileTimeError
+bad_override_test/05: MissingCompileTimeError
+bit_operations_test/01: RuntimeError
+bit_operations_test/02: RuntimeError
+bit_operations_test/03: RuntimeError
+bit_operations_test/04: RuntimeError
+bit_operations_test/none: RuntimeError
+branch_canonicalization_test: RuntimeError
+branches_test: Crash # 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart': Failed assertion: line 441 pos 16: 'identical(combiner.arguments.positional[0], rhs)': is not true.
+call_function_apply_test: RuntimeError
+call_nonexistent_constructor_test/01: RuntimeError
+canonical_const2_test: RuntimeError
+canonical_const3_test: CompileTimeError
+check_member_static_test/02: MissingCompileTimeError
+class_cycle_test/02: MissingCompileTimeError
+class_cycle_test/03: MissingCompileTimeError
+closure_in_field_test/01: RuntimeError
+closure_in_field_test/02: RuntimeError
 closure_self_reference_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/nodes.dart': Failed assertion: line 641 pos 12: 'isClosed()': is not true.
 conditional_import_string_test: RuntimeError
 conditional_import_test: RuntimeError
@@ -414,9 +899,10 @@
 generic_field_mixin5_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in ()in j:constructor(C3.).
 generic_field_mixin_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in ()in j:constructor(C3.).
 generic_local_functions_test: Crash # Unsupported operation: Unsupported type parameter type node Y.
-generic_methods_type_expression_test/01: RuntimeError
-generic_methods_type_expression_test/03: RuntimeError
-generic_methods_type_expression_test/none: RuntimeError
+generic_methods_generic_function_parameter_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/builder_kernel.dart': Failed assertion: line 1728 pos 16: 'type is MethodTypeVariableType': is not true.
+generic_methods_type_expression_test/01: Crash # 'file:*/pkg/compiler/lib/src/ssa/builder_kernel.dart': Failed assertion: line 1728 pos 16: 'type is MethodTypeVariableType': is not true.
+generic_methods_type_expression_test/03: Crash # 'file:*/pkg/compiler/lib/src/ssa/builder_kernel.dart': Failed assertion: line 1728 pos 16: 'type is MethodTypeVariableType': is not true.
+generic_methods_type_expression_test/none: Crash # 'file:*/pkg/compiler/lib/src/ssa/builder_kernel.dart': Failed assertion: line 1728 pos 16: 'type is MethodTypeVariableType': is not true.
 generic_test: RuntimeError
 getter_override2_test/02: MissingCompileTimeError
 getter_override_test/00: MissingCompileTimeError
@@ -435,9 +921,9 @@
 issue13474_test: RuntimeError
 issue21079_test: RuntimeError
 left_shift_test: RuntimeError
+library_env_test/has_mirror_support: RuntimeError
 library_env_test/has_no_html_support: RuntimeError
 library_env_test/has_no_io_support: RuntimeError
-library_env_test/has_no_mirror_support: RuntimeError
 list_literal4_test: RuntimeError
 main_not_a_function_test/01: CompileTimeError
 map_literal4_test: RuntimeError
@@ -580,6 +1066,7 @@
 null_test/none: RuntimeError
 number_identity2_test: RuntimeError
 numbers_test: RuntimeError
+operator_test: Crash # 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart': Failed assertion: line 441 pos 16: 'identical(combiner.arguments.positional[0], rhs)': is not true.
 override_field_method1_negative_test: Fail
 override_field_method2_negative_test: Fail
 override_field_method4_negative_test: Fail
@@ -592,6 +1079,7 @@
 override_method_with_field_test/01: MissingCompileTimeError
 positional_parameters_type_test/01: MissingRuntimeError
 positional_parameters_type_test/02: MissingRuntimeError
+prefix5_negative_test: Crash # 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart': Failed assertion: line 441 pos 16: 'identical(combiner.arguments.positional[0], rhs)': is not true.
 private_super_constructor_test/01: MissingCompileTimeError
 redirecting_constructor_initializer_test: RuntimeError
 redirecting_factory_default_values_test/01: MissingCompileTimeError
@@ -625,6 +1113,8 @@
 switch_case_test/00: MissingCompileTimeError
 switch_case_test/01: MissingCompileTimeError
 switch_case_test/02: MissingCompileTimeError
+sync_generator2_test/41: Crash # 'file:*/pkg/compiler/lib/src/kernel/element_map_impl.dart': Failed assertion: line 939 pos 18: 'asyncMarker == AsyncMarker.SYNC': is not true.
+sync_generator2_test/52: Crash # 'file:*/pkg/compiler/lib/src/kernel/element_map_impl.dart': Failed assertion: line 939 pos 18: 'asyncMarker == AsyncMarker.SYNC': is not true.
 syntax_test/none: CompileTimeError
 top_level_getter_no_setter1_test/01: RuntimeError
 top_level_getter_no_setter2_test/01: RuntimeError
@@ -769,9 +1259,9 @@
 issue13474_test: RuntimeError
 issue21079_test: RuntimeError
 left_shift_test: RuntimeError
+library_env_test/has_mirror_support: RuntimeError
 library_env_test/has_no_html_support: RuntimeError
 library_env_test/has_no_io_support: RuntimeError
-library_env_test/has_no_mirror_support: RuntimeError
 list_literal4_test: RuntimeError
 main_not_a_function_test/01: CompileTimeError
 map_literal4_test: RuntimeError
@@ -973,749 +1463,213 @@
 try_catch_test/01: MissingCompileTimeError
 type_checks_in_factory_method_test: RuntimeError
 
-[ $compiler == dart2js && $dart2js_with_kernel && $fast_startup ]
-assertion_initializer_const_error2_test/none: CompileTimeError
-assertion_initializer_test: CompileTimeError
-assertion_test: RuntimeError
-async_await_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
-async_star_cancel_while_paused_test: RuntimeError
-bad_constructor_test/06: Crash # NoSuchMethodError: The getter 'iterator' was called on null.
-bad_override_test/03: MissingCompileTimeError
-bad_override_test/04: MissingCompileTimeError
-bad_override_test/05: MissingCompileTimeError
-bit_operations_test/01: RuntimeError
-bit_operations_test/02: RuntimeError
-bit_operations_test/03: RuntimeError
-bit_operations_test/04: RuntimeError
-bit_operations_test/none: RuntimeError
-branch_canonicalization_test: RuntimeError
-call_function_apply_test: RuntimeError
-call_nonexistent_constructor_test/01: RuntimeError
-call_with_no_such_method_test: RuntimeError
-canonical_const2_test: RuntimeError
-canonical_const3_test: CompileTimeError
-cast_test/02: MissingRuntimeError
-cast_test/03: MissingRuntimeError
-check_member_static_test/02: MissingCompileTimeError
-class_cycle_test/02: MissingCompileTimeError
-class_cycle_test/03: MissingCompileTimeError
-closure_in_field_test/01: RuntimeError
-closure_in_field_test/02: RuntimeError
-conditional_import_string_test: RuntimeError
-conditional_import_test: RuntimeError
-config_import_corelib_test: RuntimeError
-config_import_test: RuntimeError
-const_error_multiply_initialized_test/02: MissingCompileTimeError
-const_error_multiply_initialized_test/04: MissingCompileTimeError
-const_evaluation_test/01: RuntimeError
-const_factory_with_body_test/01: MissingCompileTimeError
-const_instance_field_test/01: MissingCompileTimeError
-const_map2_test/00: MissingCompileTimeError
-const_map3_test/00: MissingCompileTimeError
-const_switch2_test/01: MissingCompileTimeError
-const_switch_test/02: RuntimeError
-const_switch_test/04: RuntimeError
-constants_test/05: MissingCompileTimeError
-constructor2_test: RuntimeError
-constructor3_test: RuntimeError
-constructor5_test: RuntimeError
-constructor6_test: RuntimeError
-constructor_named_arguments_test/none: RuntimeError
-constructor_redirect1_negative_test: Crash # Stack Overflow
-constructor_redirect2_negative_test: Crash # Stack Overflow
-constructor_redirect2_test/01: MissingCompileTimeError
-constructor_redirect_test/01: Crash # Assertion failure: Cannot find value Instance of 'ThisLocal' in (local(A.named2#x), local(A.named2#y), local(A.named2#z)) for j:constructor(A.named2).
-cyclic_constructor_test/01: Crash # Stack Overflow
-deferred_closurize_load_library_test: RuntimeError
-deferred_constraints_constants_test/default_argument2: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
-deferred_constraints_constants_test/none: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
-deferred_constraints_constants_test/reference_after_load: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
-deferred_constraints_type_annotation_test/as_operation: RuntimeError
-deferred_constraints_type_annotation_test/catch_check: RuntimeError
-deferred_constraints_type_annotation_test/is_check: RuntimeError
-deferred_inheritance_constraints_test/extends: MissingCompileTimeError
-deferred_inheritance_constraints_test/implements: MissingCompileTimeError
-deferred_inheritance_constraints_test/mixin: MissingCompileTimeError
-deferred_load_constants_test/none: RuntimeError
-deferred_load_library_wrong_args_test/01: MissingRuntimeError
-deferred_not_loaded_check_test: RuntimeError
-deferred_redirecting_factory_test: RuntimeError
-double_int_to_string_test: RuntimeError
-duplicate_export_negative_test: Fail
-duplicate_implements_test/01: MissingCompileTimeError
-duplicate_implements_test/02: MissingCompileTimeError
-duplicate_implements_test/03: MissingCompileTimeError
-duplicate_implements_test/04: MissingCompileTimeError
-dynamic_prefix_core_test/01: RuntimeError
-dynamic_prefix_core_test/none: RuntimeError
-enum_mirror_test: RuntimeError
-example_constructor_test: RuntimeError
-expect_test: RuntimeError
-external_test/10: MissingRuntimeError
-external_test/13: MissingRuntimeError
-external_test/20: MissingRuntimeError
-factory_redirection_test/07: MissingCompileTimeError
-fauxverride_test/03: MissingCompileTimeError
-fauxverride_test/05: MissingCompileTimeError
-field_increment_bailout_test: RuntimeError
-field_initialization_order_test: RuntimeError
-field_override3_test/00: MissingCompileTimeError
-field_override3_test/01: MissingCompileTimeError
-field_override3_test/02: MissingCompileTimeError
-field_override3_test/03: MissingCompileTimeError
-field_override4_test/02: MissingCompileTimeError
-final_attempt_reinitialization_test/01: MissingCompileTimeError
-final_attempt_reinitialization_test/02: MissingCompileTimeError
-final_field_initialization_order_test: RuntimeError
-generic_field_mixin4_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in () for j:constructor(C3.).
-generic_field_mixin5_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in () for j:constructor(C3.).
-generic_field_mixin_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in () for j:constructor(C3.).
-generic_local_functions_test: Crash # Unsupported operation: Unsupported type parameter type node Y.
-generic_methods_type_expression_test/01: RuntimeError
-generic_methods_type_expression_test/03: RuntimeError
-generic_methods_type_expression_test/none: RuntimeError
-generic_test: RuntimeError
-getter_override2_test/02: MissingCompileTimeError
-getter_override_test/00: MissingCompileTimeError
-getter_override_test/01: MissingCompileTimeError
-getter_override_test/02: MissingCompileTimeError
-identical_closure2_test: RuntimeError
-if_null_assignment_behavior_test/14: RuntimeError
-infinite_switch_label_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
-infinity_test: RuntimeError
-instance_creation_in_function_annotation_test: RuntimeError
-integer_division_by_zero_test: RuntimeError
-internal_library_test/02: Crash # NoSuchMethodError: Class 'DillLibraryBuilder' has no instance getter 'mixinApplicationClasses'.
-invocation_mirror2_test: RuntimeError
-invocation_mirror_empty_arguments_test: RuntimeError
-invocation_mirror_invoke_on2_test: RuntimeError
-invocation_mirror_invoke_on_test: RuntimeError
-invocation_mirror_test: RuntimeError
-issue13474_test: RuntimeError
-issue21079_test: RuntimeError
-left_shift_test: RuntimeError
-library_env_test/has_mirror_support: RuntimeError
-library_env_test/has_no_html_support: RuntimeError
-library_env_test/has_no_io_support: RuntimeError
-list_literal4_test: RuntimeError
-main_not_a_function_test/01: CompileTimeError
-many_overridden_no_such_method_test: RuntimeError
-map_literal4_test: RuntimeError
-method_name_test: CompileTimeError
-method_override4_test: RuntimeError
-method_override5_test: RuntimeError
-method_override7_test/00: MissingCompileTimeError
-method_override7_test/01: MissingCompileTimeError
-method_override7_test/02: MissingCompileTimeError
-method_override8_test/00: MissingCompileTimeError
-method_override8_test/01: MissingCompileTimeError
-mint_arithmetic_test: RuntimeError
-mixin_black_listed_test/02: MissingCompileTimeError
-mixin_bound_test: RuntimeError
-mixin_forwarding_constructor4_test/01: MissingCompileTimeError
-mixin_forwarding_constructor4_test/02: MissingCompileTimeError
-mixin_forwarding_constructor4_test/03: MissingCompileTimeError
-mixin_illegal_super_use_test/01: MissingCompileTimeError
-mixin_illegal_super_use_test/02: MissingCompileTimeError
-mixin_illegal_super_use_test/03: MissingCompileTimeError
-mixin_illegal_super_use_test/04: MissingCompileTimeError
-mixin_illegal_super_use_test/05: MissingCompileTimeError
-mixin_illegal_super_use_test/06: MissingCompileTimeError
-mixin_illegal_super_use_test/07: MissingCompileTimeError
-mixin_illegal_super_use_test/08: MissingCompileTimeError
-mixin_illegal_super_use_test/09: MissingCompileTimeError
-mixin_illegal_super_use_test/10: MissingCompileTimeError
-mixin_illegal_super_use_test/11: MissingCompileTimeError
-mixin_illegal_superclass_test/01: MissingCompileTimeError
-mixin_illegal_superclass_test/02: MissingCompileTimeError
-mixin_illegal_superclass_test/03: MissingCompileTimeError
-mixin_illegal_superclass_test/04: MissingCompileTimeError
-mixin_illegal_superclass_test/05: MissingCompileTimeError
-mixin_illegal_superclass_test/06: MissingCompileTimeError
-mixin_illegal_superclass_test/07: MissingCompileTimeError
-mixin_illegal_superclass_test/08: MissingCompileTimeError
-mixin_illegal_superclass_test/09: MissingCompileTimeError
-mixin_illegal_superclass_test/10: MissingCompileTimeError
-mixin_illegal_superclass_test/11: MissingCompileTimeError
-mixin_illegal_superclass_test/12: MissingCompileTimeError
-mixin_illegal_superclass_test/13: MissingCompileTimeError
-mixin_illegal_superclass_test/14: MissingCompileTimeError
-mixin_illegal_superclass_test/15: MissingCompileTimeError
-mixin_illegal_superclass_test/16: MissingCompileTimeError
-mixin_illegal_superclass_test/17: MissingCompileTimeError
-mixin_illegal_superclass_test/18: MissingCompileTimeError
-mixin_illegal_superclass_test/19: MissingCompileTimeError
-mixin_illegal_superclass_test/20: MissingCompileTimeError
-mixin_illegal_superclass_test/21: MissingCompileTimeError
-mixin_illegal_superclass_test/22: MissingCompileTimeError
-mixin_illegal_superclass_test/23: MissingCompileTimeError
-mixin_illegal_superclass_test/24: MissingCompileTimeError
-mixin_illegal_superclass_test/25: MissingCompileTimeError
-mixin_illegal_superclass_test/26: MissingCompileTimeError
-mixin_illegal_superclass_test/27: MissingCompileTimeError
-mixin_illegal_superclass_test/28: MissingCompileTimeError
-mixin_illegal_superclass_test/29: MissingCompileTimeError
-mixin_illegal_superclass_test/30: MissingCompileTimeError
-mixin_issue10216_2_test: RuntimeError
-mixin_mixin2_test: RuntimeError
-mixin_mixin3_test: RuntimeError
-mixin_mixin4_test: RuntimeError
-mixin_mixin5_test: RuntimeError
-mixin_mixin6_test: RuntimeError
-mixin_mixin7_test: RuntimeError
-mixin_mixin_bound2_test: RuntimeError
-mixin_mixin_bound_test: RuntimeError
-mixin_mixin_test: RuntimeError
-mixin_mixin_type_arguments_test: RuntimeError
-mixin_of_mixin_test/01: CompileTimeError
-mixin_of_mixin_test/02: CompileTimeError
-mixin_of_mixin_test/03: CompileTimeError
-mixin_of_mixin_test/04: CompileTimeError
-mixin_of_mixin_test/05: CompileTimeError
-mixin_of_mixin_test/06: CompileTimeError
-mixin_of_mixin_test/07: CompileTimeError
-mixin_of_mixin_test/08: CompileTimeError
-mixin_of_mixin_test/09: CompileTimeError
-mixin_of_mixin_test/10: CompileTimeError
-mixin_of_mixin_test/11: CompileTimeError
-mixin_of_mixin_test/12: CompileTimeError
-mixin_of_mixin_test/13: CompileTimeError
-mixin_of_mixin_test/14: CompileTimeError
-mixin_of_mixin_test/15: CompileTimeError
-mixin_of_mixin_test/16: CompileTimeError
-mixin_of_mixin_test/17: CompileTimeError
-mixin_of_mixin_test/18: CompileTimeError
-mixin_of_mixin_test/19: CompileTimeError
-mixin_of_mixin_test/20: CompileTimeError
-mixin_of_mixin_test/21: CompileTimeError
-mixin_of_mixin_test/22: CompileTimeError
-mixin_of_mixin_test/none: CompileTimeError
-mixin_super_2_test: CompileTimeError
-mixin_super_bound2_test/01: CompileTimeError
-mixin_super_bound2_test/none: CompileTimeError
-mixin_super_constructor2_test: RuntimeError
-mixin_super_constructor_default_test: RuntimeError
-mixin_super_constructor_named_test/01: MissingCompileTimeError
-mixin_super_constructor_named_test/none: RuntimeError
-mixin_super_constructor_positionals_test/01: MissingCompileTimeError
-mixin_super_constructor_positionals_test/none: RuntimeError
-mixin_super_constructor_test: RuntimeError
-mixin_super_test: CompileTimeError
-mixin_super_use_test: CompileTimeError
-mixin_superclass_test: CompileTimeError
-mixin_supertype_subclass2_test/01: CompileTimeError
-mixin_supertype_subclass2_test/02: CompileTimeError
-mixin_supertype_subclass2_test/03: CompileTimeError
-mixin_supertype_subclass2_test/04: CompileTimeError
-mixin_supertype_subclass2_test/05: CompileTimeError
-mixin_supertype_subclass2_test/none: CompileTimeError
-mixin_supertype_subclass3_test/01: CompileTimeError
-mixin_supertype_subclass3_test/02: CompileTimeError
-mixin_supertype_subclass3_test/03: CompileTimeError
-mixin_supertype_subclass3_test/04: CompileTimeError
-mixin_supertype_subclass3_test/05: CompileTimeError
-mixin_supertype_subclass3_test/none: CompileTimeError
-mixin_supertype_subclass4_test/01: CompileTimeError
-mixin_supertype_subclass4_test/02: CompileTimeError
-mixin_supertype_subclass4_test/03: CompileTimeError
-mixin_supertype_subclass4_test/04: CompileTimeError
-mixin_supertype_subclass4_test/05: CompileTimeError
-mixin_supertype_subclass4_test/none: CompileTimeError
-mixin_supertype_subclass_test/01: CompileTimeError
-mixin_supertype_subclass_test/02: CompileTimeError
-mixin_supertype_subclass_test/03: CompileTimeError
-mixin_supertype_subclass_test/04: CompileTimeError
-mixin_supertype_subclass_test/05: CompileTimeError
-mixin_supertype_subclass_test/none: CompileTimeError
-modulo_test: RuntimeError
-multiline_newline_test/04: MissingCompileTimeError
-multiline_newline_test/04r: MissingCompileTimeError
-multiline_newline_test/05: MissingCompileTimeError
-multiline_newline_test/05r: MissingCompileTimeError
-multiline_newline_test/06: MissingCompileTimeError
-multiline_newline_test/06r: MissingCompileTimeError
-named_constructor_test/01: MissingRuntimeError
-named_parameters_default_eq_test/02: MissingCompileTimeError
-named_parameters_type_test/01: MissingRuntimeError
-named_parameters_type_test/02: MissingRuntimeError
-named_parameters_type_test/03: MissingRuntimeError
-nan_identical_test: RuntimeError
-nested_switch_label_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
-no_main_test/01: CompileTimeError
-no_such_method_test: RuntimeError
-null_test/02: MissingCompileTimeError
-null_test/03: MissingCompileTimeError
-null_test/none: RuntimeError
-number_identity2_test: RuntimeError
-numbers_test: RuntimeError
-overridden_no_such_method_test: RuntimeError
-override_field_method1_negative_test: Fail
-override_field_method2_negative_test: Fail
-override_field_method4_negative_test: Fail
-override_field_method5_negative_test: Fail
-override_field_test/01: MissingCompileTimeError
-override_inheritance_mixed_test/01: MissingCompileTimeError
-override_inheritance_mixed_test/02: MissingCompileTimeError
-override_inheritance_mixed_test/03: MissingCompileTimeError
-override_inheritance_mixed_test/04: MissingCompileTimeError
-override_method_with_field_test/01: MissingCompileTimeError
-positional_parameters_type_test/01: MissingRuntimeError
-positional_parameters_type_test/02: MissingRuntimeError
-private_super_constructor_test/01: MissingCompileTimeError
-redirecting_constructor_initializer_test: RuntimeError
-redirecting_factory_default_values_test/01: MissingCompileTimeError
-redirecting_factory_default_values_test/02: MissingCompileTimeError
-redirecting_factory_long_test: RuntimeError
-redirecting_factory_reflection_test: RuntimeError
-regress_13494_test: RuntimeError
-regress_17382_test: RuntimeError
-regress_20394_test/01: MissingCompileTimeError
-regress_22936_test/01: RuntimeError
-regress_22976_test/01: CompileTimeError
-regress_22976_test/02: CompileTimeError
-regress_22976_test/none: CompileTimeError
-regress_24283_test: RuntimeError
-regress_27572_test: RuntimeError
-regress_27617_test/1: Crash # Assertion failure: Unexpected constructor j:constructor(Foo._) in ConstructorDataImpl._getConstructorConstant
-regress_28217_test/01: MissingCompileTimeError
-regress_28217_test/none: MissingCompileTimeError
-regress_28255_test: RuntimeError
-setter_override_test/00: MissingCompileTimeError
-setter_override_test/03: MissingCompileTimeError
-stacktrace_demangle_ctors_test: RuntimeError
-stacktrace_test: RuntimeError
-static_getter_no_setter1_test/01: RuntimeError
-static_getter_no_setter2_test/01: RuntimeError
-static_getter_no_setter3_test/01: RuntimeError
-super_call4_test: Crash # NoSuchMethodError: The getter 'thisLocal' was called on null.
-super_test: RuntimeError
-switch_bad_case_test/01: MissingCompileTimeError
-switch_bad_case_test/02: MissingCompileTimeError
-switch_case_test/00: MissingCompileTimeError
-switch_case_test/01: MissingCompileTimeError
-switch_case_test/02: MissingCompileTimeError
-syntax_test/none: CompileTimeError
-top_level_getter_no_setter1_test/01: RuntimeError
-top_level_getter_no_setter2_test/01: RuntimeError
-truncdiv_test: RuntimeError
-try_catch_test/01: MissingCompileTimeError
-type_checks_in_factory_method_test: RuntimeError
+[ $compiler == dart2js && !$dart2js_with_kernel ]
+accessor_conflict_export2_test: Crash # Issue 25626
+accessor_conflict_export_test: Crash # Issue 25626
+accessor_conflict_import2_test: RuntimeError # Issue 25626
+accessor_conflict_import_prefixed2_test: RuntimeError # Issue 25626
+accessor_conflict_import_prefixed_test: RuntimeError # Issue 25626
+accessor_conflict_import_test: RuntimeError # Issue 25626
+assertion_initializer_const_error2_test/*: Crash
+assertion_initializer_const_error2_test/none: Pass
+assertion_initializer_const_function_error_test/01: Crash
+assertion_initializer_const_function_test/01: CompileTimeError
+async_star_cancel_while_paused_test: RuntimeError # Issue 22853
+bad_constructor_test/05: CompileTimeError # Issue 13639
+bad_typedef_test/00: Crash # Issue 28214
+bit_operations_test: RuntimeError, OK # Issue 1533
+branch_canonicalization_test: RuntimeError # Issue 638.
+call_function_apply_test: RuntimeError # Issue 23873
+canonical_const2_test: RuntimeError, OK # Issue 1533
+closure_in_field_test/01: RuntimeError # Issue 30467
+closure_in_field_test/02: RuntimeError # Issue 30467
+const_dynamic_type_literal_test/02: CompileTimeError # Issue 23009
+const_dynamic_type_literal_test/03: CompileTimeError # Issue 23009
+const_switch_test/02: RuntimeError # Issue 17960
+const_switch_test/04: RuntimeError # Issue 17960
+constructor_duplicate_final_test/01: Fail # Issue 13363
+constructor_duplicate_final_test/02: Fail # Issue 13363
+constructor_named_arguments_test/01: CompileTimeError # Issue 25225
+deferred_not_loaded_check_test: Fail # Issue 27577
+double_int_to_string_test: RuntimeError # Issue 1533
+duplicate_part_test/01: MissingCompileTimeError # Issue 27517
+enum_test: Fail # Issue 28340
+expect_test: RuntimeError, OK # Issue 13080
+external_test/10: CompileTimeError # Issue 12887
+external_test/13: CompileTimeError # Issue 12887
+external_test/20: CompileTimeError # Issue 12887
+final_attempt_reinitialization_test.dart: Skip # Issue 29659
+full_stacktrace1_test: Pass, RuntimeError # Issue 12698
+full_stacktrace2_test: Pass, RuntimeError # Issue 12698
+full_stacktrace3_test: Pass, RuntimeError # Issue 12698
+generic_field_mixin4_test: Crash # Issue 18651
+generic_field_mixin5_test: Crash # Issue 18651
+generic_function_typedef2_test/00: Crash # Issue 28214
+generic_function_typedef2_test/01: Crash # Issue 28214
+generic_function_typedef2_test/02: Crash # Issue 28214
+generic_function_typedef2_test/03: Crash # Issue 28214
+generic_function_typedef2_test/05: Crash # Issue 28214
+generic_function_typedef2_test/06: Crash # Issue 28214
+getter_setter_in_lib_test: Fail # Issue 23288
+identical_closure2_test: RuntimeError # Issue 1533, Issue 12596
+if_null_assignment_behavior_test/13: Crash # Issue 23491
+if_null_assignment_behavior_test/14: Crash # Issue 23491
+infinity_test: RuntimeError # Issue 4984
+integer_division_by_zero_test: RuntimeError # Issue 8301
+invocation_mirror2_test: RuntimeError # Issue 6490 (wrong retval).
+invocation_mirror_empty_arguments_test: Fail # Issue 24331
+left_shift_test: RuntimeError # Issue 1533
+library_env_test/has_no_html_support: RuntimeError, OK # The following tests are supposed to fail. In testing-mode, dart2js supports all dart:X libraries (because it uses '--categories=all').
+library_env_test/has_no_io_support: RuntimeError, OK # The following tests are supposed to fail. In testing-mode, dart2js supports all dart:X libraries (because it uses '--categories=all').
+library_env_test/has_no_mirror_support: RuntimeError, OK # The following tests are supposed to fail. In testing-mode, dart2js supports all dart:X libraries (because it uses '--categories=all').
+list_literal4_test: RuntimeError # Issue 12890
+malformed_test/none: Fail # Expect failure in lib/_internal/js_runtime/lib/preambles/d8.js
+method_name_test: Fail # issue 25574
+method_override5_test: RuntimeError # Issue 12809
+mint_arithmetic_test: RuntimeError # Issue 1533
+mixin_forwarding_constructor4_test/01: MissingCompileTimeError # Issue 15101
+mixin_forwarding_constructor4_test/02: MissingCompileTimeError # Issue 15101
+mixin_forwarding_constructor4_test/03: MissingCompileTimeError # Issue 15101
+mixin_mixin2_test: RuntimeError # Issue 13109.
+mixin_mixin3_test: RuntimeError # Issue 13109.
+mixin_mixin_type_arguments_test: RuntimeError # Issue 29587
+mixin_of_mixin_test: CompileTimeError # Issue 23773
+mixin_super_2_test: CompileTimeError # Issue 23773
+mixin_super_bound2_test: CompileTimeError # Issue 23773
+mixin_super_constructor_named_test/01: Fail # Issue 15101
+mixin_super_constructor_positionals_test/01: Fail # Issue 15101
+mixin_super_test: CompileTimeError # Issue 23773
+mixin_super_use_test: CompileTimeError # Issue 23773
+mixin_superclass_test: CompileTimeError # Issue 23773
+mixin_supertype_subclass2_test: CompileTimeError # Issue 23773
+mixin_supertype_subclass3_test: CompileTimeError # Issue 23773
+mixin_supertype_subclass4_test: CompileTimeError # Issue 23773
+mixin_supertype_subclass_test: CompileTimeError # Issue 23773
+modulo_test: RuntimeError # Issue 15246
+multiline_newline_test/01: CompileTimeError # Issue 23888
+multiline_newline_test/01r: CompileTimeError # Issue 23888
+multiline_newline_test/02: CompileTimeError # Issue 23888
+multiline_newline_test/02r: CompileTimeError # Issue 23888
+multiline_newline_test/03: CompileTimeError # Issue 23888
+multiline_newline_test/03r: CompileTimeError # Issue 23888
+multiline_newline_test/04: MissingCompileTimeError # Issue 23888
+multiline_newline_test/04r: MissingCompileTimeError # Issue 23888
+multiline_newline_test/05: MissingCompileTimeError # Issue 23888
+multiline_newline_test/05r: MissingCompileTimeError # Issue 23888
+multiline_newline_test/06: MissingCompileTimeError # Issue 23888
+multiline_newline_test/06r: MissingCompileTimeError # Issue 23888
+multiline_newline_test/none: RuntimeError # Issue 23888
+nan_identical_test: Fail # Issue 11551
+not_enough_positional_arguments_test/01: CompileTimeError # Issue 12838
+not_enough_positional_arguments_test/02: CompileTimeError # Issue 12838
+not_enough_positional_arguments_test/05: CompileTimeError # Issue 12838
+number_identity2_test: RuntimeError # Issue 12596
+numbers_test: RuntimeError, OK # Issue 1533
+override_inheritance_mixed_test/08: Fail # Issue 18124
+override_inheritance_mixed_test/09: Fail # Issue 18124
+ref_before_declaration_test/00: MissingCompileTimeError
+ref_before_declaration_test/01: MissingCompileTimeError
+ref_before_declaration_test/02: MissingCompileTimeError
+ref_before_declaration_test/03: MissingCompileTimeError
+ref_before_declaration_test/04: MissingCompileTimeError
+ref_before_declaration_test/05: MissingCompileTimeError
+ref_before_declaration_test/06: MissingCompileTimeError
+regress_22976_test: CompileTimeError # Issue 23132
+regress_24283_test: RuntimeError # Issue 1533
+regress_28341_test: Fail # Issue 28340
+regress_29481_test: Crash # Issue 29754
+scope_variable_test/01: MissingCompileTimeError # Issue 13016
+setter4_test: CompileTimeError # issue 13639
+stacktrace_demangle_ctors_test: Fail # dart2js stack traces are not always compliant.
+stacktrace_rethrow_error_test: Pass, RuntimeError # Issue 12698
+stacktrace_rethrow_nonerror_test: Pass, RuntimeError # Issue 12698
+stacktrace_test: Pass, RuntimeError # # Issue 12698
+symbol_literal_test/*: Fail # Issue 21825
+syntax_test/none: CompileTimeError # Issue #30176.
+truncdiv_test: RuntimeError # Issue 15246
+try_catch_on_syntax_test/10: Fail # Issue 19823
+try_catch_on_syntax_test/11: Fail # Issue 19823
+type_variable_conflict_test/01: Fail # Issue 13702
+type_variable_conflict_test/02: Fail # Issue 13702
+type_variable_conflict_test/03: Fail # Issue 13702
+type_variable_conflict_test/04: Fail # Issue 13702
+type_variable_conflict_test/05: Fail # Issue 13702
+type_variable_conflict_test/06: Fail # Issue 13702
 
-[ $compiler == dart2js && $dart2js_with_kernel && $checked ]
-arithmetic_canonicalization_test: RuntimeError
-assertion_initializer_const_function_test/01: RuntimeError
-assertion_initializer_test: CompileTimeError
-assign_static_type_test/01: Fail
-assign_static_type_test/02: MissingCompileTimeError
-async_await_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
-async_return_types_test/nestedFuture: Fail
-async_return_types_test/wrongTypeParameter: Fail
-async_star_cancel_while_paused_test: RuntimeError
-bad_constructor_test/06: Crash # NoSuchMethodError: The getter 'iterator' was called on null.
-bad_override_test/03: MissingCompileTimeError
-bad_override_test/04: MissingCompileTimeError
-bad_override_test/05: MissingCompileTimeError
-bit_operations_test/01: RuntimeError
-bit_operations_test/02: RuntimeError
-bit_operations_test/03: RuntimeError
-bit_operations_test/04: RuntimeError
-bit_operations_test/none: RuntimeError
-branch_canonicalization_test: RuntimeError
-call_function_apply_test: RuntimeError
-call_nonexistent_constructor_test/01: RuntimeError
-canonical_const2_test: RuntimeError
-canonical_const3_test: CompileTimeError
-check_member_static_test/02: MissingCompileTimeError
-class_cycle_test/02: MissingCompileTimeError
-class_cycle_test/03: MissingCompileTimeError
-closure_in_field_test/01: RuntimeError
-closure_in_field_test/02: RuntimeError
-closure_type_test/01: RuntimeError
-closure_type_test/none: RuntimeError
-compile_time_constant_checked2_test/01: MissingCompileTimeError
-compile_time_constant_checked2_test/02: MissingCompileTimeError
-compile_time_constant_checked2_test/03: MissingCompileTimeError
-compile_time_constant_checked2_test/04: MissingCompileTimeError
-compile_time_constant_checked2_test/05: MissingCompileTimeError
-compile_time_constant_checked2_test/06: MissingCompileTimeError
-compile_time_constant_checked3_test/01: MissingCompileTimeError
-compile_time_constant_checked3_test/02: MissingCompileTimeError
-compile_time_constant_checked3_test/03: MissingCompileTimeError
-compile_time_constant_checked3_test/04: MissingCompileTimeError
-compile_time_constant_checked3_test/05: MissingCompileTimeError
-compile_time_constant_checked3_test/06: MissingCompileTimeError
-compile_time_constant_checked4_test/01: MissingCompileTimeError
-compile_time_constant_checked4_test/02: MissingCompileTimeError
-compile_time_constant_checked4_test/03: MissingCompileTimeError
-compile_time_constant_checked5_test/03: MissingCompileTimeError
-compile_time_constant_checked5_test/04: MissingCompileTimeError
-compile_time_constant_checked5_test/08: MissingCompileTimeError
-compile_time_constant_checked5_test/09: MissingCompileTimeError
-compile_time_constant_checked5_test/13: MissingCompileTimeError
-compile_time_constant_checked5_test/14: MissingCompileTimeError
-compile_time_constant_checked5_test/18: MissingCompileTimeError
-compile_time_constant_checked5_test/19: MissingCompileTimeError
-compile_time_constant_checked_test/01: Fail
-compile_time_constant_checked_test/02: MissingCompileTimeError
-compile_time_constant_checked_test/03: Fail
-conditional_import_string_test: RuntimeError
-conditional_import_test: RuntimeError
-config_import_corelib_test: RuntimeError
-config_import_test: RuntimeError
-const_constructor2_test/13: MissingCompileTimeError
-const_constructor2_test/14: MissingCompileTimeError
-const_constructor2_test/15: MissingCompileTimeError
-const_constructor2_test/16: MissingCompileTimeError
-const_constructor2_test/17: MissingCompileTimeError
-const_constructor2_test/20: MissingCompileTimeError
-const_constructor2_test/22: MissingCompileTimeError
-const_constructor2_test/24: MissingCompileTimeError
-const_constructor3_test/02: MissingCompileTimeError
-const_constructor3_test/04: MissingCompileTimeError
-const_error_multiply_initialized_test/02: MissingCompileTimeError
-const_error_multiply_initialized_test/04: MissingCompileTimeError
-const_evaluation_test/01: RuntimeError
-const_factory_with_body_test/01: MissingCompileTimeError
-const_init2_test/02: MissingCompileTimeError
-const_instance_field_test/01: MissingCompileTimeError
-const_map2_test/00: MissingCompileTimeError
-const_map3_test/00: MissingCompileTimeError
-const_switch2_test/01: MissingCompileTimeError
-const_switch_test/02: RuntimeError
-const_switch_test/04: RuntimeError
-constants_test/05: MissingCompileTimeError
-constructor2_test: RuntimeError
-constructor3_test: RuntimeError
-constructor5_test: RuntimeError
-constructor6_test: RuntimeError
-constructor_named_arguments_test/none: RuntimeError
-constructor_redirect1_negative_test: Crash # Issue 30856
-constructor_redirect2_negative_test: Crash # Issue 30856
-constructor_redirect2_test/01: MissingCompileTimeError
-constructor_redirect_test/01: Crash # Assertion failure: Cannot find value Instance of 'ThisLocal' in (local(A.named2#x), local(A.named2#y), local(A.named2#z)) for j:constructor(A.named2).
-cyclic_constructor_test/01: Crash # Issue 30856
-default_factory2_test/01: Fail
-deferred_closurize_load_library_test: RuntimeError
-deferred_constraints_constants_test/default_argument2: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
-deferred_constraints_constants_test/none: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
-deferred_constraints_constants_test/reference_after_load: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
-deferred_constraints_type_annotation_test/as_operation: RuntimeError
-deferred_constraints_type_annotation_test/catch_check: RuntimeError
-deferred_constraints_type_annotation_test/is_check: RuntimeError
-deferred_constraints_type_annotation_test/type_annotation1: Fail
-deferred_constraints_type_annotation_test/type_annotation_generic1: Fail
-deferred_constraints_type_annotation_test/type_annotation_generic4: Fail
-deferred_inheritance_constraints_test/extends: MissingCompileTimeError
-deferred_inheritance_constraints_test/implements: MissingCompileTimeError
-deferred_inheritance_constraints_test/mixin: MissingCompileTimeError
-deferred_load_constants_test/none: RuntimeError
-deferred_load_library_wrong_args_test/01: MissingRuntimeError
-deferred_not_loaded_check_test: RuntimeError
-deferred_redirecting_factory_test: RuntimeError
-double_int_to_string_test: RuntimeError
-duplicate_export_negative_test: Fail
-duplicate_implements_test/01: MissingCompileTimeError
-duplicate_implements_test/02: MissingCompileTimeError
-duplicate_implements_test/03: MissingCompileTimeError
-duplicate_implements_test/04: MissingCompileTimeError
-dynamic_prefix_core_test/01: RuntimeError
-dynamic_prefix_core_test/none: RuntimeError
-enum_mirror_test: RuntimeError
-example_constructor_test: RuntimeError
-expect_test: RuntimeError
-external_test/10: MissingRuntimeError
-external_test/13: MissingRuntimeError
-external_test/20: MissingRuntimeError
-f_bounded_quantification5_test: RuntimeError
-f_bounded_quantification_test/01: RuntimeError
-f_bounded_quantification_test/02: RuntimeError
-factory_redirection_test/07: MissingCompileTimeError
-factory_redirection_test/08: Fail
-factory_redirection_test/09: Fail
-factory_redirection_test/10: Fail
-factory_redirection_test/12: Fail
-factory_redirection_test/13: Fail
-factory_redirection_test/14: Fail
-fauxverride_test/03: MissingCompileTimeError
-fauxverride_test/05: MissingCompileTimeError
-field_initialization_order_test: RuntimeError
-field_override3_test/00: MissingCompileTimeError
-field_override3_test/01: MissingCompileTimeError
-field_override3_test/02: MissingCompileTimeError
-field_override3_test/03: MissingCompileTimeError
-field_override4_test/02: MissingCompileTimeError
-final_attempt_reinitialization_test/01: MissingCompileTimeError
-final_attempt_reinitialization_test/02: MissingCompileTimeError
-final_field_initialization_order_test: RuntimeError
-generic_field_mixin4_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in (Instance of 'ThisLocal') for j:field(M.field).
-generic_field_mixin5_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in (Instance of 'ThisLocal') for j:field(M.field).
-generic_field_mixin_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in () for j:constructor(C3.).
-generic_local_functions_test: Crash # Unsupported operation: Unsupported type parameter type node Y.
-generic_methods_type_expression_test/01: RuntimeError
-generic_methods_type_expression_test/03: RuntimeError
-generic_methods_type_expression_test/none: RuntimeError
-getter_override2_test/02: MissingCompileTimeError
-getter_override_test/00: MissingCompileTimeError
-getter_override_test/01: MissingCompileTimeError
-getter_override_test/02: MissingCompileTimeError
-identical_closure2_test: RuntimeError
-if_null_assignment_behavior_test/14: RuntimeError
-infinite_switch_label_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
-infinity_test: RuntimeError
-instance_creation_in_function_annotation_test: RuntimeError
-integer_division_by_zero_test: RuntimeError
-internal_library_test/02: Crash # NoSuchMethodError: Class 'DillLibraryBuilder' has no instance getter 'mixinApplicationClasses'.
-invocation_mirror2_test: RuntimeError
-invocation_mirror_empty_arguments_test: RuntimeError
-invocation_mirror_test: RuntimeError
-issue21079_test: RuntimeError
-left_shift_test: RuntimeError
-library_env_test/has_no_html_support: RuntimeError
-library_env_test/has_no_io_support: RuntimeError
-library_env_test/has_no_mirror_support: RuntimeError
-list_literal1_test/01: MissingCompileTimeError
-list_literal4_test: RuntimeError
-main_not_a_function_test/01: CompileTimeError
-malbounded_instantiation_test/02: Fail
-malbounded_instantiation_test/03: Fail
-malbounded_redirecting_factory2_test/02: Fail
-malbounded_redirecting_factory2_test/03: Fail
-malbounded_redirecting_factory2_test/04: Fail
-malbounded_redirecting_factory_test/02: Fail
-malbounded_redirecting_factory_test/03: Fail
-malbounded_redirecting_factory_test/04: Fail
-malbounded_type_cast2_test: RuntimeError
-malbounded_type_cast_test: RuntimeError
-malbounded_type_test2_test: RuntimeError
-malbounded_type_test_test/01: Fail
-malbounded_type_test_test/03: Fail
-malbounded_type_test_test/04: Fail
-malformed2_test/00: RuntimeError
-malformed2_test/01: MissingCompileTimeError
-map_literal1_test/01: MissingCompileTimeError
-method_name_test: CompileTimeError
-method_override5_test: RuntimeError
-method_override7_test/00: MissingCompileTimeError
-method_override7_test/01: MissingCompileTimeError
-method_override7_test/02: MissingCompileTimeError
-method_override8_test/00: MissingCompileTimeError
-method_override8_test/01: MissingCompileTimeError
-mint_arithmetic_test: RuntimeError
-mixin_black_listed_test/02: MissingCompileTimeError
-mixin_forwarding_constructor4_test/01: MissingCompileTimeError
-mixin_forwarding_constructor4_test/02: MissingCompileTimeError
-mixin_forwarding_constructor4_test/03: MissingCompileTimeError
-mixin_illegal_super_use_test/01: MissingCompileTimeError
-mixin_illegal_super_use_test/02: MissingCompileTimeError
-mixin_illegal_super_use_test/03: MissingCompileTimeError
-mixin_illegal_super_use_test/04: MissingCompileTimeError
-mixin_illegal_super_use_test/05: MissingCompileTimeError
-mixin_illegal_super_use_test/06: MissingCompileTimeError
-mixin_illegal_super_use_test/07: MissingCompileTimeError
-mixin_illegal_super_use_test/08: MissingCompileTimeError
-mixin_illegal_super_use_test/09: MissingCompileTimeError
-mixin_illegal_super_use_test/10: MissingCompileTimeError
-mixin_illegal_super_use_test/11: MissingCompileTimeError
-mixin_illegal_superclass_test/01: MissingCompileTimeError
-mixin_illegal_superclass_test/02: MissingCompileTimeError
-mixin_illegal_superclass_test/03: MissingCompileTimeError
-mixin_illegal_superclass_test/04: MissingCompileTimeError
-mixin_illegal_superclass_test/05: MissingCompileTimeError
-mixin_illegal_superclass_test/06: MissingCompileTimeError
-mixin_illegal_superclass_test/07: MissingCompileTimeError
-mixin_illegal_superclass_test/08: MissingCompileTimeError
-mixin_illegal_superclass_test/09: MissingCompileTimeError
-mixin_illegal_superclass_test/10: MissingCompileTimeError
-mixin_illegal_superclass_test/11: MissingCompileTimeError
-mixin_illegal_superclass_test/12: MissingCompileTimeError
-mixin_illegal_superclass_test/13: MissingCompileTimeError
-mixin_illegal_superclass_test/14: MissingCompileTimeError
-mixin_illegal_superclass_test/15: MissingCompileTimeError
-mixin_illegal_superclass_test/16: MissingCompileTimeError
-mixin_illegal_superclass_test/17: MissingCompileTimeError
-mixin_illegal_superclass_test/18: MissingCompileTimeError
-mixin_illegal_superclass_test/19: MissingCompileTimeError
-mixin_illegal_superclass_test/20: MissingCompileTimeError
-mixin_illegal_superclass_test/21: MissingCompileTimeError
-mixin_illegal_superclass_test/22: MissingCompileTimeError
-mixin_illegal_superclass_test/23: MissingCompileTimeError
-mixin_illegal_superclass_test/24: MissingCompileTimeError
-mixin_illegal_superclass_test/25: MissingCompileTimeError
-mixin_illegal_superclass_test/26: MissingCompileTimeError
-mixin_illegal_superclass_test/27: MissingCompileTimeError
-mixin_illegal_superclass_test/28: MissingCompileTimeError
-mixin_illegal_superclass_test/29: MissingCompileTimeError
-mixin_illegal_superclass_test/30: MissingCompileTimeError
-mixin_invalid_bound2_test/02: Fail
-mixin_invalid_bound2_test/03: Fail
-mixin_invalid_bound2_test/05: Fail
-mixin_invalid_bound2_test/06: Fail
-mixin_invalid_bound2_test/08: Fail
-mixin_invalid_bound2_test/09: Fail
-mixin_invalid_bound2_test/10: Fail
-mixin_invalid_bound2_test/11: Fail
-mixin_invalid_bound2_test/12: Fail
-mixin_invalid_bound2_test/13: Fail
-mixin_invalid_bound2_test/14: Fail
-mixin_invalid_bound_test/02: Fail
-mixin_invalid_bound_test/04: Fail
-mixin_invalid_bound_test/06: Fail
-mixin_invalid_bound_test/07: Fail
-mixin_invalid_bound_test/08: Fail
-mixin_invalid_bound_test/09: Fail
-mixin_invalid_bound_test/10: Fail
-mixin_issue10216_2_test: RuntimeError
-mixin_mixin2_test: RuntimeError
-mixin_mixin3_test: RuntimeError
-mixin_mixin4_test: RuntimeError
-mixin_mixin5_test: RuntimeError
-mixin_mixin6_test: RuntimeError
-mixin_mixin7_test: RuntimeError
-mixin_mixin_bound2_test: RuntimeError
-mixin_mixin_bound_test: RuntimeError
-mixin_mixin_test: RuntimeError
-mixin_mixin_type_arguments_test: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
-mixin_of_mixin_test/01: CompileTimeError
-mixin_of_mixin_test/02: CompileTimeError
-mixin_of_mixin_test/03: CompileTimeError
-mixin_of_mixin_test/04: CompileTimeError
-mixin_of_mixin_test/05: CompileTimeError
-mixin_of_mixin_test/06: CompileTimeError
-mixin_of_mixin_test/07: CompileTimeError
-mixin_of_mixin_test/08: CompileTimeError
-mixin_of_mixin_test/09: CompileTimeError
-mixin_of_mixin_test/10: CompileTimeError
-mixin_of_mixin_test/11: CompileTimeError
-mixin_of_mixin_test/12: CompileTimeError
-mixin_of_mixin_test/13: CompileTimeError
-mixin_of_mixin_test/14: CompileTimeError
-mixin_of_mixin_test/15: CompileTimeError
-mixin_of_mixin_test/16: CompileTimeError
-mixin_of_mixin_test/17: CompileTimeError
-mixin_of_mixin_test/18: CompileTimeError
-mixin_of_mixin_test/19: CompileTimeError
-mixin_of_mixin_test/20: CompileTimeError
-mixin_of_mixin_test/21: CompileTimeError
-mixin_of_mixin_test/22: CompileTimeError
-mixin_of_mixin_test/none: CompileTimeError
-mixin_super_2_test: CompileTimeError
-mixin_super_bound2_test/01: CompileTimeError
-mixin_super_bound2_test/none: CompileTimeError
-mixin_super_bound_test: RuntimeError
-mixin_super_constructor_named_test/01: MissingCompileTimeError
-mixin_super_constructor_positionals_test/01: MissingCompileTimeError
-mixin_super_test: CompileTimeError
-mixin_super_use_test: CompileTimeError
-mixin_superclass_test: CompileTimeError
-mixin_supertype_subclass2_test/01: CompileTimeError
-mixin_supertype_subclass2_test/02: CompileTimeError
-mixin_supertype_subclass2_test/03: CompileTimeError
-mixin_supertype_subclass2_test/04: CompileTimeError
-mixin_supertype_subclass2_test/05: CompileTimeError
-mixin_supertype_subclass2_test/none: CompileTimeError
-mixin_supertype_subclass3_test/01: CompileTimeError
-mixin_supertype_subclass3_test/02: CompileTimeError
-mixin_supertype_subclass3_test/03: CompileTimeError
-mixin_supertype_subclass3_test/04: CompileTimeError
-mixin_supertype_subclass3_test/05: CompileTimeError
-mixin_supertype_subclass3_test/none: CompileTimeError
-mixin_supertype_subclass4_test/01: CompileTimeError
-mixin_supertype_subclass4_test/02: CompileTimeError
-mixin_supertype_subclass4_test/03: CompileTimeError
-mixin_supertype_subclass4_test/04: CompileTimeError
-mixin_supertype_subclass4_test/05: CompileTimeError
-mixin_supertype_subclass4_test/none: CompileTimeError
-mixin_supertype_subclass_test/01: CompileTimeError
-mixin_supertype_subclass_test/02: CompileTimeError
-mixin_supertype_subclass_test/03: CompileTimeError
-mixin_supertype_subclass_test/04: CompileTimeError
-mixin_supertype_subclass_test/05: CompileTimeError
-mixin_supertype_subclass_test/none: CompileTimeError
-modulo_test: RuntimeError
-multiline_newline_test/04: MissingCompileTimeError
-multiline_newline_test/04r: MissingCompileTimeError
-multiline_newline_test/05: MissingCompileTimeError
-multiline_newline_test/05r: MissingCompileTimeError
-multiline_newline_test/06: MissingCompileTimeError
-multiline_newline_test/06r: MissingCompileTimeError
-named_constructor_test/01: MissingRuntimeError
-named_parameters_default_eq_test/02: MissingCompileTimeError
-nan_identical_test: RuntimeError
-nested_switch_label_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
-no_main_test/01: CompileTimeError
-null_test/02: MissingCompileTimeError
-null_test/03: MissingCompileTimeError
-null_test/none: RuntimeError
-number_identity2_test: RuntimeError
-numbers_test: RuntimeError
-override_field_method1_negative_test: Fail
-override_field_method2_negative_test: Fail
-override_field_method4_negative_test: Fail
-override_field_method5_negative_test: Fail
-override_field_test/01: MissingCompileTimeError
-override_inheritance_mixed_test/01: MissingCompileTimeError
-override_inheritance_mixed_test/02: MissingCompileTimeError
-override_inheritance_mixed_test/03: MissingCompileTimeError
-override_inheritance_mixed_test/04: MissingCompileTimeError
-override_method_with_field_test/01: MissingCompileTimeError
-private_super_constructor_test/01: MissingCompileTimeError
-redirecting_constructor_initializer_test: RuntimeError
-redirecting_factory_default_values_test/01: MissingCompileTimeError
-redirecting_factory_default_values_test/02: MissingCompileTimeError
-redirecting_factory_infinite_steps_test/01: Fail
-redirecting_factory_long_test: RuntimeError
-redirecting_factory_malbounded_test/01: Fail
-redirecting_factory_reflection_test: RuntimeError
-regress_13494_test: RuntimeError
-regress_17382_test: RuntimeError
-regress_20394_test/01: MissingCompileTimeError
-regress_22936_test/01: RuntimeError
-regress_22976_test/01: CompileTimeError
-regress_22976_test/02: CompileTimeError
-regress_22976_test/none: CompileTimeError
-regress_24283_test: RuntimeError
-regress_26133_test: RuntimeError # Issue 26429
-regress_27572_test: RuntimeError
-regress_27617_test/1: Crash # Assertion failure: Unexpected constructor j:constructor(Foo._) in ConstructorDataImpl._getConstructorConstant
-regress_28217_test/01: MissingCompileTimeError
-regress_28217_test/none: MissingCompileTimeError
-regress_28255_test: RuntimeError
-regress_29405_test: RuntimeError
-setter_override_test/00: MissingCompileTimeError
-setter_override_test/03: MissingCompileTimeError
-stacktrace_demangle_ctors_test: RuntimeError
-stacktrace_test: RuntimeError
-static_getter_no_setter1_test/01: RuntimeError
-static_getter_no_setter2_test/01: RuntimeError
-static_getter_no_setter3_test/01: RuntimeError
-super_call4_test: Crash # NoSuchMethodError: The getter 'thisLocal' was called on null.
-super_test: RuntimeError
-switch_bad_case_test/01: MissingCompileTimeError
-switch_bad_case_test/02: MissingCompileTimeError
-switch_case_test/00: MissingCompileTimeError
-switch_case_test/01: MissingCompileTimeError
-switch_case_test/02: MissingCompileTimeError
-syntax_test/none: CompileTimeError
-top_level_getter_no_setter1_test/01: RuntimeError
-top_level_getter_no_setter2_test/01: RuntimeError
-truncdiv_test: RuntimeError
-try_catch_test/01: MissingCompileTimeError
-type_check_const_function_typedef2_test/00: MissingCompileTimeError
-type_parameter_test/01: Crash # Internal Error: Unexpected type variable in static context.
-type_parameter_test/02: Crash # Internal Error: Unexpected type variable in static context.
-type_parameter_test/03: Crash # Internal Error: Unexpected type variable in static context.
-type_parameter_test/04: Crash # Internal Error: Unexpected type variable in static context.
-type_parameter_test/05: Crash # Internal Error: Unexpected type variable in static context.
-type_parameter_test/06: Crash # Internal Error: Unexpected type variable in static context.
-type_parameter_test/none: Crash # Internal Error: Unexpected type variable in static context.
-type_variable_bounds2_test/00: Fail
-type_variable_bounds2_test/03: Fail
-type_variable_bounds2_test/05: Fail
-type_variable_bounds3_test/00: Fail
-type_variable_bounds4_test/01: RuntimeError
-type_variable_bounds_test/01: Fail
-type_variable_bounds_test/02: Fail
-type_variable_bounds_test/04: Fail
-type_variable_bounds_test/05: Fail
-type_variable_scope_test/03: Crash # Internal Error: Unexpected type variable in static context.
+[ $compiler == dart2js && !$dart2js_with_kernel && $fast_startup ]
+assertion_initializer_const_error2_test/*: Crash
+assertion_initializer_const_error2_test/cc10: CompileTimeError # Issue #31321
+assertion_initializer_const_error2_test/cc11: CompileTimeError # Issue #31321
+assertion_initializer_const_error2_test/none: Pass
+assertion_initializer_const_function_error_test/01: Crash
+assertion_initializer_const_function_test/01: CompileTimeError
+assertion_initializer_test: Crash
+const_evaluation_test/*: Fail # mirrors not supported
+deferred_constraints_constants_test: Pass # mirrors not supported, passes for the wrong reason
+deferred_constraints_constants_test/none: Fail # mirrors not supported
+deferred_constraints_constants_test/reference_after_load: Fail # mirrors not supported
+enum_mirror_test: Fail # mirrors not supported
+field_increment_bailout_test: Fail # mirrors not supported
+instance_creation_in_function_annotation_test: Fail # mirrors not supported
+invocation_mirror2_test: Fail # mirrors not supported
+invocation_mirror_invoke_on2_test: Fail # mirrors not supported
+invocation_mirror_invoke_on_test: Fail # mirrors not supported
+issue21079_test: Fail # mirrors not supported
+library_env_test/has_mirror_support: Fail # mirrors not supported
+library_env_test/has_no_mirror_support: Pass # fails for the wrong reason.
+many_overridden_no_such_method_test: Fail # mirrors not supported
+no_such_method_test: Fail # mirrors not supported
+null_test/0*: Pass # mirrors not supported, fails for the wrong reason
+null_test/none: Fail # mirrors not supported
+overridden_no_such_method_test: Fail # mirrors not supported
+redirecting_factory_reflection_test: Fail # mirrors not supported
+regress_13462_0_test: Fail # mirrors not supported
+regress_13462_1_test: Fail # mirrors not supported
+regress_18535_test: Fail # mirrors not supported
+regress_28255_test: Fail # mirrors not supported
+super_call4_test: Fail # mirrors not supported
+super_getter_setter_test: Fail # mirrors not supported
+vm/reflect_core_vm_test: Fail # mirrors not supported
+
+[ $compiler == dart2js && !$dart2js_with_kernel && $host_checked ]
+assertion_initializer_const_error2_test/cc01: Crash
+assertion_initializer_const_error2_test/cc02: Crash
+assertion_initializer_const_error2_test/cc03: Crash
+assertion_initializer_const_error2_test/cc04: Crash
+assertion_initializer_const_error2_test/cc05: Crash
+assertion_initializer_const_error2_test/cc06: Crash
+assertion_initializer_const_error2_test/cc07: Crash
+assertion_initializer_const_error2_test/cc08: Crash
+assertion_initializer_const_error2_test/cc09: Crash
+assertion_initializer_const_error2_test/cc10: Crash
+assertion_initializer_const_error2_test/cc11: Crash
+assertion_initializer_const_function_error_test/01: Crash
+assertion_initializer_const_function_test/01: Crash
+assertion_initializer_test: Crash
+regress_26855_test/1: Crash # Issue 26867
+regress_26855_test/2: Crash # Issue 26867
+regress_26855_test/3: Crash # Issue 26867
+regress_26855_test/4: Crash # Issue 26867
+
+[ $compiler == dart2js && !$dart2js_with_kernel && $minified ]
+cyclic_type2_test: Fail # Issue 12605
+cyclic_type_test/0*: Fail # Issue 12605
+f_bounded_quantification4_test: Fail, Pass # Issue 12605
+generic_closure_test: Fail # Issue 12605
+mixin_generic_test: Fail # Issue 12605
+mixin_mixin2_test: Fail # Issue 12605
+mixin_mixin3_test: Fail # Issue 12605
+mixin_mixin4_test: Fail # Issue 12605
+mixin_mixin5_test: Fail # Issue 12605
+mixin_mixin6_test: Fail # Issue 12605
+mixin_mixin_bound2_test: RuntimeError # Issue 12605
+mixin_mixin_bound_test: RuntimeError # Issue 12605
+symbol_conflict_test: RuntimeError # Issue 23857
+
+[ $compiler == dart2js && ($runtime == safari || $runtime == safarimobilesim) ]
+round_test: Fail, OK # Common JavaScript engine Math.round bug.
+
+[ !$dart2js_with_kernel && $minified ]
+regress_21795_test: RuntimeError # Issue 12605
+stack_trace_test: Fail, OK # Stack trace not preserved in minified code.
 
diff --git a/tests/language/language_kernel.status b/tests/language/language_kernel.status
index 67df84b..b3e68f2 100644
--- a/tests/language/language_kernel.status
+++ b/tests/language/language_kernel.status
@@ -2,200 +2,6 @@
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
 
-[$compiler == dartk && $runtime == vm]
-assertion_initializer_const_function_error_test/01: MissingCompileTimeError
-disassemble_test: Pass, Slow
-
-[ $compiler == dartk || $compiler == dartkp ]
-const_error_multiply_initialized_test/02: MissingCompileTimeError # Issue 29900
-const_error_multiply_initialized_test/04: MissingCompileTimeError # Issue 29900
-
-[$compiler == dartk && $runtime == vm && $checked]
-assertion_initializer_const_function_test/01: RuntimeError
-
-[$compiler == dartkp && $runtime == dart_precompiled && !$checked]
-assertion_initializer_const_function_error_test/01: MissingCompileTimeError
-
-[$compiler == dartkp && $runtime == dart_precompiled && $checked]
-assertion_initializer_const_error2_test/none: Pass
-assertion_initializer_const_error2_test/*: Crash
-assertion_initializer_const_error_test/none: Crash
-assertion_initializer_const_function_error_test/01: Crash
-assertion_initializer_const_function_error_test/none: Crash
-assertion_initializer_const_function_test/01: Crash
-assertion_initializer_const_function_test/none: Crash
-assertion_initializer_test: CompileTimeError
-
-[ !$checked && ($compiler == dartk || $compiler == dartkp) ]
-
-deferred_constraints_type_annotation_test/type_annotation1: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/type_annotation_generic1: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/type_annotation_generic4: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-
-cha_deopt1_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-cha_deopt2_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-cha_deopt3_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-conditional_import_string_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-conditional_import_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_call_empty_before_load_test: RuntimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
-deferred_closurize_load_library_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constant_list_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_constants_test/none: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_constants_test/reference_after_load: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_constants_test/default_argument2: Pass # Passes by mistake. KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/as_operation: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/catch_check: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/is_check: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/new: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/new_before_load: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/new_generic1: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/new_generic2: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/new_generic3: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/none: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/static_method: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/type_annotation_generic2: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/type_annotation_generic3: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/type_annotation_non_deferred: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/type_annotation_null: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/type_annotation_top_level: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_function_type_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_global_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_import_core_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_inheritance_constraints_test/extends: MissingCompileTimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
-deferred_inheritance_constraints_test/implements: MissingCompileTimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
-deferred_inheritance_constraints_test/mixin: MissingCompileTimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
-deferred_inheritance_constraints_test/redirecting_constructor: RuntimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
-deferred_inlined_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_load_constants_test/none: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_load_inval_code_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_load_library_wrong_args_test/none: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_load_library_wrong_args_test/01: Pass # Passes by mistake. KernelVM bug: Deferred loading kernel issue 28335.
-deferred_mixin_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_no_such_method_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_not_loaded_check_test: RuntimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
-deferred_only_constant_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_optimized_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_redirecting_factory_test: RuntimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
-deferred_regression_22995_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_regression_28678_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_shadow_load_library_test: CompileTimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
-deferred_shared_and_unshared_classes_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_static_seperate_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_super_dependency_test/01: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_type_dependency_test/as: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_type_dependency_test/is: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_type_dependency_test/none: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_type_dependency_test/type_annotation: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-final_attempt_reinitialization_test/01: MissingCompileTimeError # Issue 29900
-final_attempt_reinitialization_test/02: MissingCompileTimeError # Issue 29900
-issue_1751477_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-regress_22443_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-regress_23408_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-regress_28278_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-vm/regress_27201_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-
-config_import_corelib_test: RuntimeError # KernelVM bug: Configurable imports.
-config_import_test: RuntimeError # KernelVM bug: Configurable imports.
-library_env_test/has_html_support: RuntimeError # KernelVM bug: Configurable imports.
-library_env_test/has_no_io_support: RuntimeError # KernelVM bug: Configurable imports.
-
-compile_time_constant_c_test/02: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-const_map2_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-const_map3_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-const_nested_test: RuntimeError # KernelVM bug: Constant evaluation.
-const_switch2_test/01: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-const_syntax_test/05: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-constant_expression_test/01: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-constant_expression_test/03: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-switch_bad_case_test/01: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-switch_bad_case_test/02: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-switch_case_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-switch_case_test/01: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-switch_case_test/02: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-
-compile_time_constant_k_test/01: RuntimeError # KernelVM bug: Constant map duplicated key.
-compile_time_constant_k_test/02: RuntimeError # KernelVM bug: Constant map duplicated key.
-compile_time_constant_k_test/03: RuntimeError # KernelVM bug: Constant map duplicated key.
-compile_time_constant_o_test/01: RuntimeError # KernelVM bug: Constant map duplicated key.
-compile_time_constant_o_test/02: RuntimeError # KernelVM bug: Constant map duplicated key.
-const_dynamic_type_literal_test/02: RuntimeError # KernelVM bug: Constant map duplicated key.
-map_literal3_test: RuntimeError # KernelVM bug: Constant map duplicated key.
-map_literal6_test: RuntimeError # KernelVM bug: Constant map duplicated key.
-
-dynamic_prefix_core_test/01: RuntimeError # KernelVM bug: Blocked on language issue 29125.
-
-external_test/10: MissingRuntimeError # KernelVM bug: Unbound external.
-external_test/13: MissingRuntimeError # KernelVM bug: Unbound external.
-external_test/20: MissingRuntimeError # KernelVM bug: Unbound external.
-
-mixin_forwarding_constructor4_test/01: MissingCompileTimeError # KernelVM bug: Issue 15101
-mixin_forwarding_constructor4_test/02: MissingCompileTimeError # KernelVM bug: Issue 15101
-mixin_forwarding_constructor4_test/03: MissingCompileTimeError # KernelVM bug: Issue 15101
-mixin_super_constructor_named_test/01: MissingCompileTimeError # KernelVM bug: Issue 15101
-mixin_super_constructor_positionals_test/01: MissingCompileTimeError # KernelVM bug: Issue 15101
-
-redirecting_constructor_initializer_test: RuntimeError # Super is evaluated last; same result as source-based pipeline.
-
-vm/debug_break_enabled_vm_test/01: CompileTimeError # KernelVM bug: Bad test using extended break syntax.
-vm/debug_break_enabled_vm_test/none: CompileTimeError # KernelVM bug: Bad test using extended break syntax.
-
-vm/closure_memory_retention_test: Skip  # KernelVM bug: Hits OOM
-
-redirecting_factory_long_test: RuntimeError # Fasta bug: Bad compilation of type arguments for redirecting factory.
-
-factory_redirection_test/07: MissingCompileTimeError # Fasta bug: Bad constructor redirection.
-regress_27617_test/1: MissingCompileTimeError # Fasta bug: Bad constructor redirection.
-regress_28217_test/01: MissingCompileTimeError # Fasta bug: Bad constructor redirection.
-regress_28217_test/none: MissingCompileTimeError # Fasta bug: Bad constructor redirection.
-
-vm/type_vm_test: RuntimeError # Fasta bug: Bad position information in stack trace.
-
-constructor_redirect2_test/01: MissingCompileTimeError # Fasta bug: Body on redirecting constructor.
-
-const_factory_with_body_test/01: MissingCompileTimeError # Fasta bug: Const factory with body.
-
-const_instance_field_test/01: MissingCompileTimeError # Fasta bug: Const instance field.
-
-cyclic_constructor_test/01: MissingCompileTimeError # Fasta bug: Cyclic constructor redirection.
-
-const_optional_args_negative_test: Fail # Fasta bug: Default parameter values must be const.
-
-named_parameters_default_eq_test/02: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
-redirecting_factory_default_values_test/01: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
-redirecting_factory_default_values_test/02: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
-
-private_super_constructor_test/01: MissingCompileTimeError # Fasta bug: Illegal access to private constructor.
-regress_20394_test/01: MissingCompileTimeError # Fasta bug: Illegal access to private constructor.
-
-constructor_redirect_test/01: MissingCompileTimeError # Fasta bug: Initializer refers to this.
-
-const_constructor_nonconst_field_test/01: MissingCompileTimeError # Fasta bug: Non-const expression in field initializer.
-
-method_name_test: CompileTimeError # Fasta bug: Parser bug.
-
-named_constructor_test/01: MissingRuntimeError # Fasta bug: Bad compilation of constructor reference.
-
-const_native_factory_test/01: MissingCompileTimeError # Fasta bug: Issue 29763
-
-syntax_test/none: CompileTimeError # Issue #30176.
-syntax_test/64: MissingCompileTimeError # Test bug: Test doesn't execute erroneous code.
-syntax_test/65: MissingCompileTimeError # Test bug: Test doesn't execute erroneous code.
-
-# dartk: JIT & AOT failures (debug)
-[ ($compiler == dartk || $compiler == dartkp) && $mode == debug ]
-const_instance_field_test/01: Crash
-cyclic_type_variable_test/01: Crash
-cyclic_type_variable_test/02: Crash
-cyclic_type_variable_test/03: Crash
-cyclic_type_variable_test/04: Crash
-cyclic_type_variable_test/none: Crash
-type_parameter_test/04: Crash
-type_parameter_test/05: Crash
-
-# Triaged checked mode failures
-[ ($compiler == dartk || $compiler == dartkp) && $checked ]
-regress_22728_test: Fail # Dartk Issue 28498
-
 # dartk: JIT failures
 [ $compiler == dartk ]
 const_locals_test: RuntimeError
@@ -208,35 +14,68 @@
 vm/lazy_deopt_vm_test: Pass, Slow, Timeout
 vm/optimized_stacktrace_test: Skip # Issue 28788
 
-# dartk: JIT failures (debug)
-[ $compiler == dartk && $mode == debug ]
-deopt_inlined_function_lazy_test: Skip
-hello_dart_test: Crash  # error: expected: cls.is_type_finalized()
-vm/lazy_deopt_vm_test: Crash
-
 # dartk: precompilation failures
 [ $compiler == dartkp ]
 const_syntax_test/08: Crash
+deferred_redirecting_factory_test: CompileTimeError # Issue 31296
+export_double_same_main_test: Crash # Issue 29895
 final_syntax_test/09: Crash
-ref_before_declaration_test/none: Pass
 final_syntax_test/09: MissingCompileTimeError
+ref_before_declaration_test/none: Pass
 ref_before_declaration_test/none: Crash
 stacktrace_demangle_ctors_test: RuntimeError
 vm/optimized_stacktrace_test: Crash
 vm/regress_27671_test: Crash
-vm/type_vm_test: Crash
-deferred_redirecting_factory_test: CompileTimeError # Issue 31296
 vm/regress_27671_test: Skip # Unsupported
+vm/type_vm_test: Crash
+
+# dartk: JIT failures (debug)
+[ $compiler == dartk && $mode == debug ]
+deopt_inlined_function_lazy_test: Skip
+hello_dart_test: Crash # error: expected: cls.is_type_finalized()
+vm/lazy_deopt_vm_test: Crash
+
+[ $compiler == dartk && $runtime == vm ]
+assertion_initializer_const_function_error_test/01: MissingCompileTimeError
+disassemble_test: Pass, Slow
+
+[ $compiler == dartk && $runtime == vm && $checked ]
+assertion_initializer_const_function_test/01: RuntimeError
 
 # dartk: precompilation failures (debug)
 [ $compiler == dartkp && $mode == debug ]
+assertion_test: Crash
 external_test/13: Crash
 final_syntax_test/09: Crash
 malbounded_type_cast_test: Crash
 regress_29025_test: Crash
 vm/async_await_catch_stacktrace_test: Crash
 
-# dartk: checked mode failures
+[ $compiler == dartkp && $runtime == dart_precompiled && $checked ]
+assertion_initializer_const_error2_test/*: Crash
+assertion_initializer_const_error2_test/none: Pass
+assertion_initializer_const_error_test/none: Crash
+assertion_initializer_const_function_error_test/01: Crash
+assertion_initializer_const_function_error_test/none: Crash
+assertion_initializer_const_function_test/01: Crash
+assertion_initializer_const_function_test/none: Crash
+assertion_initializer_test: CompileTimeError
+
+[ $compiler == dartkp && $runtime == dart_precompiled && !$checked ]
+assertion_initializer_const_function_error_test/01: MissingCompileTimeError
+
+# dartk: JIT & AOT failures (debug)
+[ $mode == debug && ($compiler == dartk || $compiler == dartkp) ]
+const_instance_field_test/01: Crash
+cyclic_type_variable_test/01: Crash
+cyclic_type_variable_test/02: Crash
+cyclic_type_variable_test/03: Crash
+cyclic_type_variable_test/04: Crash
+cyclic_type_variable_test/none: Crash
+type_parameter_test/04: Crash
+type_parameter_test/05: Crash
+
+# Triaged checked mode failures
 [ $checked && ($compiler == dartk || $compiler == dartkp) ]
 assert_initializer_test/31: MissingCompileTimeError # KernelVM bug: Constant evaluation.
 assert_initializer_test/32: MissingCompileTimeError # KernelVM bug: Constant evaluation.
@@ -271,7 +110,6 @@
 factory_redirection_test/12: Fail
 factory_redirection_test/13: Fail
 factory_redirection_test/14: Fail
-function_type2_test: RuntimeError
 function_type/function_type0_test: RuntimeError
 function_type/function_type10_test: RuntimeError
 function_type/function_type11_test: RuntimeError
@@ -372,6 +210,7 @@
 function_type/function_type98_test: RuntimeError
 function_type/function_type99_test: RuntimeError
 function_type/function_type9_test: RuntimeError
+function_type2_test: RuntimeError
 list_literal1_test/01: MissingCompileTimeError
 malbounded_redirecting_factory2_test/03: Fail
 malbounded_redirecting_factory2_test/04: Fail
@@ -393,17 +232,143 @@
 msk_bound_test: RuntimeError
 redirecting_factory_infinite_steps_test/01: Fail
 redirecting_factory_malbounded_test/01: Fail
+regress_22728_test: Fail # Dartk Issue 28498
 regress_22728_test: RuntimeError
 regress_26133_test: RuntimeError
 type_parameter_test/05: MissingCompileTimeError
 type_parameter_test/none: RuntimeError
 type_variable_bounds4_test/01: RuntimeError
 
-[ $compiler == dartkp ]
-export_double_same_main_test: Crash # Issue 29895
+[ !$checked && ($compiler == dartk || $compiler == dartkp) ]
+cha_deopt1_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+cha_deopt2_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+cha_deopt3_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+compile_time_constant_c_test/02: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+compile_time_constant_k_test/01: RuntimeError # KernelVM bug: Constant map duplicated key.
+compile_time_constant_k_test/02: RuntimeError # KernelVM bug: Constant map duplicated key.
+compile_time_constant_k_test/03: RuntimeError # KernelVM bug: Constant map duplicated key.
+compile_time_constant_o_test/01: RuntimeError # KernelVM bug: Constant map duplicated key.
+compile_time_constant_o_test/02: RuntimeError # KernelVM bug: Constant map duplicated key.
+conditional_import_string_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+conditional_import_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+config_import_corelib_test: RuntimeError # KernelVM bug: Configurable imports.
+config_import_test: RuntimeError # KernelVM bug: Configurable imports.
+const_constructor_nonconst_field_test/01: MissingCompileTimeError # Fasta bug: Non-const expression in field initializer.
+const_dynamic_type_literal_test/02: RuntimeError # KernelVM bug: Constant map duplicated key.
+const_factory_with_body_test/01: MissingCompileTimeError # Fasta bug: Const factory with body.
+const_instance_field_test/01: MissingCompileTimeError # Fasta bug: Const instance field.
+const_map2_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+const_map3_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+const_native_factory_test/01: MissingCompileTimeError # Fasta bug: Issue 29763
+const_nested_test: RuntimeError # KernelVM bug: Constant evaluation.
+const_optional_args_negative_test: Fail # Fasta bug: Default parameter values must be const.
+const_switch2_test/01: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+const_syntax_test/05: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+constant_expression_test/01: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+constant_expression_test/03: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+constructor_redirect2_test/01: MissingCompileTimeError # Fasta bug: Body on redirecting constructor.
+constructor_redirect_test/01: MissingCompileTimeError # Fasta bug: Initializer refers to this.
+cyclic_constructor_test/01: MissingCompileTimeError # Fasta bug: Cyclic constructor redirection.
+deferred_call_empty_before_load_test: RuntimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
+deferred_closurize_load_library_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constant_list_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_constants_test/default_argument2: Pass # Passes by mistake. KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_constants_test/none: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_constants_test/reference_after_load: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/as_operation: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/catch_check: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/is_check: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/new: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/new_before_load: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/new_generic1: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/new_generic2: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/new_generic3: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/none: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/static_method: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/type_annotation1: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/type_annotation_generic1: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/type_annotation_generic2: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/type_annotation_generic3: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/type_annotation_generic4: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/type_annotation_non_deferred: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/type_annotation_null: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/type_annotation_top_level: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_function_type_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_global_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_import_core_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_inheritance_constraints_test/extends: MissingCompileTimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
+deferred_inheritance_constraints_test/implements: MissingCompileTimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
+deferred_inheritance_constraints_test/mixin: MissingCompileTimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
+deferred_inheritance_constraints_test/redirecting_constructor: RuntimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
+deferred_inlined_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_load_constants_test/none: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_load_inval_code_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_load_library_wrong_args_test/01: Pass # Passes by mistake. KernelVM bug: Deferred loading kernel issue 28335.
+deferred_load_library_wrong_args_test/none: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_mixin_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_no_such_method_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_not_loaded_check_test: RuntimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
+deferred_only_constant_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_optimized_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_redirecting_factory_test: RuntimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
+deferred_regression_22995_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_regression_28678_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_shadow_load_library_test: CompileTimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
+deferred_shared_and_unshared_classes_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_static_seperate_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_super_dependency_test/01: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_type_dependency_test/as: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_type_dependency_test/is: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_type_dependency_test/none: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_type_dependency_test/type_annotation: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+dynamic_prefix_core_test/01: RuntimeError # KernelVM bug: Blocked on language issue 29125.
+external_test/10: MissingRuntimeError # KernelVM bug: Unbound external.
+external_test/13: MissingRuntimeError # KernelVM bug: Unbound external.
+external_test/20: MissingRuntimeError # KernelVM bug: Unbound external.
+factory_redirection_test/07: MissingCompileTimeError # Fasta bug: Bad constructor redirection.
+final_attempt_reinitialization_test/01: MissingCompileTimeError # Issue 29900
+final_attempt_reinitialization_test/02: MissingCompileTimeError # Issue 29900
+issue_1751477_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+library_env_test/has_html_support: RuntimeError # KernelVM bug: Configurable imports.
+library_env_test/has_no_io_support: RuntimeError # KernelVM bug: Configurable imports.
+map_literal3_test: RuntimeError # KernelVM bug: Constant map duplicated key.
+map_literal6_test: RuntimeError # KernelVM bug: Constant map duplicated key.
+method_name_test: CompileTimeError # Fasta bug: Parser bug.
+mixin_forwarding_constructor4_test/01: MissingCompileTimeError # KernelVM bug: Issue 15101
+mixin_forwarding_constructor4_test/02: MissingCompileTimeError # KernelVM bug: Issue 15101
+mixin_forwarding_constructor4_test/03: MissingCompileTimeError # KernelVM bug: Issue 15101
+mixin_super_constructor_named_test/01: MissingCompileTimeError # KernelVM bug: Issue 15101
+mixin_super_constructor_positionals_test/01: MissingCompileTimeError # KernelVM bug: Issue 15101
+named_constructor_test/01: MissingRuntimeError # Fasta bug: Bad compilation of constructor reference.
+named_parameters_default_eq_test/02: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
+private_super_constructor_test/01: MissingCompileTimeError # Fasta bug: Illegal access to private constructor.
+redirecting_constructor_initializer_test: RuntimeError # Super is evaluated last; same result as source-based pipeline.
+redirecting_factory_default_values_test/01: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
+redirecting_factory_default_values_test/02: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
+redirecting_factory_long_test: RuntimeError # Fasta bug: Bad compilation of type arguments for redirecting factory.
+regress_20394_test/01: MissingCompileTimeError # Fasta bug: Illegal access to private constructor.
+regress_22443_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+regress_23408_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+regress_27617_test/1: MissingCompileTimeError # Fasta bug: Bad constructor redirection.
+regress_28217_test/01: MissingCompileTimeError # Fasta bug: Bad constructor redirection.
+regress_28217_test/none: MissingCompileTimeError # Fasta bug: Bad constructor redirection.
+regress_28278_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+switch_bad_case_test/01: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+switch_bad_case_test/02: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+switch_case_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+switch_case_test/01: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+switch_case_test/02: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+syntax_test/64: MissingCompileTimeError # Test bug: Test doesn't execute erroneous code.
+syntax_test/65: MissingCompileTimeError # Test bug: Test doesn't execute erroneous code.
+syntax_test/none: CompileTimeError # Issue #30176.
+vm/closure_memory_retention_test: Skip # KernelVM bug: Hits OOM
+vm/debug_break_enabled_vm_test/01: CompileTimeError # KernelVM bug: Bad test using extended break syntax.
+vm/debug_break_enabled_vm_test/none: CompileTimeError # KernelVM bug: Bad test using extended break syntax.
+vm/regress_27201_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+vm/type_vm_test: RuntimeError # Fasta bug: Bad position information in stack trace.
 
 [ $compiler == dartk || $compiler == dartkp ]
 bad_constructor_test/06: DartkCrash # Issue 31299
+const_error_multiply_initialized_test/02: MissingCompileTimeError # Issue 29900
+const_error_multiply_initialized_test/04: MissingCompileTimeError # Issue 29900
 
-[ $compiler == dartkp && $mode == debug ]
-assertion_test: Crash
diff --git a/tests/language/language_spec_parser.status b/tests/language/language_spec_parser.status
index 2c5182f..f9d31ec 100644
--- a/tests/language/language_spec_parser.status
+++ b/tests/language/language_spec_parser.status
@@ -3,6 +3,13 @@
 # BSD-style license that can be found in the LICENSE file.
 
 [ $compiler == spec_parser ]
+conditional_import_string_test: Fail # Not yet supported.
+conditional_import_test: Fail # Not yet supported.
+config_import_corelib_test: Fail # Not yet supported.
+config_import_test: Fail # Not yet supported.
+const_native_factory_test/01: Fail # Uses `native`.
+deep_nesting1_negative_test: Skip # Stack overflow.
+deep_nesting2_negative_test: Skip # Stack overflow.
 factory3_negative_test: Fail # Negative, puts `default` in class header.
 field3_negative_test: Fail # Negative, uses `final var a`.
 getter_declaration_negative_test: Fail # Negative, uses getter with parameter.
@@ -11,6 +18,7 @@
 is_not_class1_negative_test: Fail # Negative, uses `a is "A"`.
 is_not_class4_negative_test: Fail # Negative, uses `a is A is A`.
 issue1578_negative_test: Fail # Negative, is line noise.
+issue_1751477_test: Skip # Times out: 9 levels, exponential blowup => 430 secs.
 label8_negative_test: Fail # Negative, uses misplaced label.
 list_literal_negative_test: Fail # Negative, uses `new List<int>[1, 2]`.
 map_literal_negative_test: Fail # Negative, uses `new Map<int>{..}`.
@@ -27,15 +35,5 @@
 test_negative_test: Fail # Negative, uses non-terminated string literal.
 unary_plus_negative_test: Fail # Negative, uses non-existing unary plus.
 unhandled_exception_negative_test: Fail # Negative, defaults required parameter.
-
 vm/debug_break_enabled_vm_test: Fail # Uses debug break.
-const_native_factory_test/01: Fail # Uses `native`.
 
-conditional_import_string_test: Fail # Not yet supported.
-conditional_import_test: Fail # Not yet supported.
-config_import_corelib_test: Fail # Not yet supported.
-config_import_test: Fail # Not yet supported.
-
-deep_nesting1_negative_test: Skip # Stack overflow.
-deep_nesting2_negative_test: Skip # Stack overflow.
-issue_1751477_test: Skip # Times out: 9 levels, exponential blowup => 430 secs.
diff --git a/tests/language_2/await_test.dart b/tests/language_2/await_test.dart
index e626409..ff1fe91 100644
--- a/tests/language_2/await_test.dart
+++ b/tests/language_2/await_test.dart
@@ -5,6 +5,7 @@
 // VMOptions=---optimization-counter-threshold=10
 
 import 'package:expect/expect.dart';
+import 'package:async_helper/async_helper.dart';
 
 import 'dart:async';
 
@@ -89,9 +90,6 @@
   Expect.equals(e, 5);
 }
 
-await() => 4;
-nonAsyncFunction() => await();
-
 others() async {
   var a = "${globalVariable} ${await dummy()} " + await "someString";
   Expect.equals(a, "1 1 someString");
@@ -103,7 +101,6 @@
   Expect.equals(b[cnt], 1);
   var e = b[0] + await dummy();
   Expect.equals(e, 2);
-  Expect.equals(nonAsyncFunction(), 4);
 }
 
 conditionals() async {
@@ -120,12 +117,124 @@
   } catch (e) {}
 }
 
-main() {
-  for (int i = 0; i < 10; i++) {
-    staticMembers();
-    topLevelMembers();
-    instanceMembers();
-    conditionals();
-    others();
+asserts() async {
+  for (final FutureOr<T> Function<T>(T) func in <Function>[id, future]) {
+    assert(await func(true));
+    assert(id(true), await func("message"));
+    assert(await func(true), await (func("message")));
+    bool success = true;
+    try {
+      assert(await func(false), await (func("message")));
+      if (assertStatementsEnabled) Expect.fail("Didn't throw");
+    } on AssertionError catch (e) {
+      Expect.equals("message", e.message);
+    }
   }
 }
+
+controlFlow() async {
+  for (final FutureOr<T> Function<T>(T) func in <Function>[id, future]) {
+    // For.
+    var c = 0;
+    for (var i = await (func(0)); await func(i < 5); await func(i++)) {
+      c++;
+    }
+    Expect.equals(5, c);
+    // While.
+    c = 0;
+    while (await func(c < 5)) c++;
+    Expect.equals(5, c);
+    // Do-while.
+    c = 0;
+    do {
+      c++;
+    } while (await func(c < 5));
+    Expect.equals(5, c);
+    // If.
+    if (await func(c == 5)) {
+      Expect.equals(5, c);
+    } else {
+      Expect.fail("unreachable");
+    }
+    // Throw.
+    try {
+      throw await func("string");
+    } on String {
+      // OK.
+    }
+
+    try {
+      await (throw "string");
+    } on String {
+      // OK.
+    }
+    // Try/catch/finally
+    try {
+      try {
+        throw "string";
+      } catch (e) {
+        Expect.equals("string", e);
+        Expect.equals(0, await func(0));
+        rethrow;
+      } finally {
+        Expect.equals(0, await func(0));
+      }
+    } catch (e) {
+      Expect.equals(0, await func(0));
+      Expect.equals("string", e);
+    } finally {
+      Expect.equals(0, await func(0));
+    }
+    // Switch
+    switch (await func(2)) {
+      case 2:
+        break;
+      default:
+        Expect.fail("unreachable");
+    }
+    // Return.
+    Expect.equals(
+        42,
+        await () async {
+          return await func(42);
+        }());
+    Expect.equals(
+        42,
+        await () async {
+          return func(42);
+        }());
+    // Yield.
+    Stream<int> testStream1() async* {
+      yield await func(42);
+    }
+
+    Expect.listEquals([42], await testStream1().toList());
+    // Yield*
+    Stream<int> testStream2() async* {
+      yield* await func(intStream());
+    }
+
+    Expect.listEquals([42], await testStream2().toList());
+  }
+}
+
+FutureOr<T> future<T>(T value) async => value;
+FutureOr<T> id<T>(T value) => value;
+
+Stream<int> intStream() async* {
+  yield 42;
+}
+
+main() {
+  asyncStart();
+  for (int i = 0; i < 11; i++) {
+    asyncTest(staticMembers);
+    asyncTest(topLevelMembers);
+    asyncTest(instanceMembers);
+    asyncTest(conditionals);
+    asyncTest(others);
+    asyncTest(asserts);
+    asyncTest(controlFlow);
+  }
+  asyncEnd();
+}
diff --git a/tests/language_2/bug31436_test.dart b/tests/language_2/bug31436_test.dart
new file mode 100644
index 0000000..30fec3e
--- /dev/null
+++ b/tests/language_2/bug31436_test.dart
@@ -0,0 +1,67 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import "package:expect/expect.dart";
+
+void block_test() {
+  List<Object> Function() g;
+  g = () {
+    return [3];
+  };
+  assert(g is List<Object> Function());
+  assert(g is! List<int> Function());
+  g().add("hello"); // No runtime error
+  List<int> l = [3];
+  g = () {
+    return l;
+  };
+  assert(g is List<Object> Function());
+  assert(g is List<int> Function());
+  Expect.throwsTypeError(() {
+    g().add("hello"); // runtime error
+  });
+  Object o = l;
+  g = () {
+    return o;
+  }; // No implicit downcast on the assignment, implicit downcast on the return
+  assert(g is List<Object> Function());
+  assert(g is! List<int> Function());
+  assert(g is! Object Function());
+  g(); // No runtime error;
+  o = 3;
+  Expect.throwsTypeError(() {
+    g(); // Failed runtime cast on the return type of f
+  });
+}
+
+void arrow_test() {
+  List<Object> Function() g;
+  g = () => [3];
+  assert(g is List<Object> Function());
+  assert(g is! List<int> Function());
+  g().add("hello"); // No runtime error
+  List<int> l = [3];
+  g = () => l;
+  assert(g is List<Object> Function());
+  assert(g is List<int> Function());
+  Expect.throwsTypeError(() {
+    g().add("hello"); // runtime error
+  });
+  Object o = l;
+  g = () =>
+      o; // No implicit downcast on the assignment, implicit downcast on the return
+  assert(g is List<Object> Function());
+  assert(g is! List<int> Function());
+  assert(g is! Object Function());
+  g(); // No runtime error;
+  o = 3;
+  Expect.throwsTypeError(() {
+    g(); // Failed runtime cast on the return type of f
+  });
+}
+
+main() {
+  block_test();
+  arrow_test();
+}
diff --git a/tests/language_2/closure_param_null_to_object_test.dart b/tests/language_2/closure_param_null_to_object_test.dart
new file mode 100644
index 0000000..5a2bbfe
--- /dev/null
+++ b/tests/language_2/closure_param_null_to_object_test.dart
@@ -0,0 +1,16 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import "package:expect/expect.dart";
+
+main() {
+  int Function(Null) f = (x) => 1; // Runtime type is int Function(Object)
+  Expect.isTrue(f is int Function(Null));
+  Expect.isTrue(f is int Function(String));
+  Expect.isTrue(f is int Function(Object));
+  int Function(String) g = (x) => 1; // Runtime type is int Function(String)
+  Expect.isTrue(g is int Function(Null));
+  Expect.isTrue(g is int Function(String));
+  Expect.isFalse(g is int Function(Object));
+}
diff --git a/tests/language_2/extract_type_arguments_test.dart b/tests/language_2/extract_type_arguments_test.dart
new file mode 100644
index 0000000..e63bbf3
--- /dev/null
+++ b/tests/language_2/extract_type_arguments_test.dart
@@ -0,0 +1,155 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// Tests the (probably temporary) API for extracting reified type arguments
+/// from an object.
+
+import "package:expect/expect.dart";
+
+// It's weird that a language test is testing code defined in a package. The
+// rationale for putting this test here is:
+//
+// * This package is special and "built-in" to Dart in that the various
+//   compilers give it the special privilege of importing "dart:_internal"
+//   without error.
+//
+// * Eventually, the API being tested here may be replaced with an actual
+//   language feature, in which case this test will become an actual language
+//   test.
+//
+// * Placing the test here ensures it is tested on all of the various platforms
+//   and configurations where we need the API to work.
+import "package:dart_internal/extract_type_arguments.dart";
+
+main() {
+  testExtractIterableTypeArgument();
+  testExtractMapTypeArguments();
+}
+
+testExtractIterableTypeArgument() {
+  Object object = <int>[];
+
+  // Invokes function with iterable's type argument.
+  var called = false;
+  extractIterableTypeArgument(object, <T>() {
+    Expect.equals(T, int);
+    called = true;
+  });
+  Expect.isTrue(called);
+
+  // Returns result of function.
+  Object result = extractIterableTypeArgument(object, <T>() => new Set<T>());
+  Expect.isTrue(result is Set<int>);
+  Expect.isFalse(result is Set<bool>);
+
+  // Accepts user-defined implementations of Iterable.
+  object = new CustomIterable();
+  result = extractIterableTypeArgument(object, <T>() => new Set<T>());
+  Expect.isTrue(result is Set<String>);
+  Expect.isFalse(result is Set<bool>);
+}
+
+testExtractMapTypeArguments() {
+  Object object = <String, int>{};
+
+  // Invokes function with map's type arguments.
+  var called = false;
+  extractMapTypeArguments(object, <K, V>() {
+    Expect.equals(K, String);
+    Expect.equals(V, int);
+    called = true;
+  });
+  Expect.isTrue(called);
+
+  // Returns result of function.
+  Object result = extractMapTypeArguments(object, <K, V>() => new Two<K, V>());
+  Expect.isTrue(result is Two<String, int>);
+  Expect.isFalse(result is Two<int, String>);
+
+  // Accepts user-defined implementations of Map.
+  object = new CustomMap();
+  result = extractMapTypeArguments(object, <K, V>() => new Two<K, V>());
+  Expect.isTrue(result is Two<int, bool>);
+  Expect.isFalse(result is Two<bool, int>);
+
+  // Uses the type parameter order of Map, not any other type in the hierarchy.
+  object = new FlippedMap<double, Null>();
+  result = extractMapTypeArguments(object, <K, V>() => new Two<K, V>());
+  // Order is reversed here:
+  Expect.isTrue(result is Two<Null, double>);
+  Expect.isFalse(result is Two<double, Null>);
+}
+
+class Two<A, B> {}
+
+// Implementing Iterable from scratch is kind of a chore, but ensures the API
+// works even if the class never bottoms out on a concrete class defining in a
+// "dart:" library.
+class CustomIterable implements Iterable<String> {
+  bool any(Function test) => throw new UnimplementedError();
+  bool contains(Object element) => throw new UnimplementedError();
+  String elementAt(int index) => throw new UnimplementedError();
+  bool every(Function test) => throw new UnimplementedError();
+  Iterable<T> expand<T>(Function f) => throw new UnimplementedError();
+  String get first => throw new UnimplementedError();
+  String firstWhere(Function test, {Function orElse}) =>
+      throw new UnimplementedError();
+  T fold<T>(T initialValue, Function combine) => throw new UnimplementedError();
+  void forEach(Function f) => throw new UnimplementedError();
+  bool get isEmpty => throw new UnimplementedError();
+  bool get isNotEmpty => throw new UnimplementedError();
+  Iterator<String> get iterator => throw new UnimplementedError();
+  String join([String separator = ""]) => throw new UnimplementedError();
+  String get last => throw new UnimplementedError();
+  String lastWhere(Function test, {Function orElse}) =>
+      throw new UnimplementedError();
+  int get length => throw new UnimplementedError();
+  Iterable<T> map<T>(Function f) => throw new UnimplementedError();
+  String reduce(Function combine) => throw new UnimplementedError();
+  String get single => throw new UnimplementedError();
+  String singleWhere(Function test) => throw new UnimplementedError();
+  Iterable<String> skip(int count) => throw new UnimplementedError();
+  Iterable<String> skipWhile(Function test) => throw new UnimplementedError();
+  Iterable<String> take(int count) => throw new UnimplementedError();
+  Iterable<String> takeWhile(Function test) => throw new UnimplementedError();
+  List<String> toList({bool growable: true}) => throw new UnimplementedError();
+  Set<String> toSet() => throw new UnimplementedError();
+  Iterable<String> where(Function test) => throw new UnimplementedError();
+}
+
+class CustomMap implements Map<int, bool> {
+  bool operator [](Object key) => throw new UnimplementedError();
+  void operator []=(int key, bool value) => throw new UnimplementedError();
+  void addAll(Map<int, bool> other) => throw new UnimplementedError();
+  void clear() => throw new UnimplementedError();
+  bool containsKey(Object key) => throw new UnimplementedError();
+  bool containsValue(Object value) => throw new UnimplementedError();
+  void forEach(Function f) => throw new UnimplementedError();
+  bool get isEmpty => throw new UnimplementedError();
+  bool get isNotEmpty => throw new UnimplementedError();
+  Iterable<int> get keys => throw new UnimplementedError();
+  int get length => throw new UnimplementedError();
+  bool putIfAbsent(int key, Function ifAbsent) =>
+      throw new UnimplementedError();
+  bool remove(Object key) => throw new UnimplementedError();
+  Iterable<bool> get values => throw new UnimplementedError();
+}
+
+// Note: Flips order of type parameters.
+class FlippedMap<V, K> implements Map<K, V> {
+  V operator [](Object key) => throw new UnimplementedError();
+  void operator []=(K key, V value) => throw new UnimplementedError();
+  void addAll(Map<K, V> other) => throw new UnimplementedError();
+  void clear() => throw new UnimplementedError();
+  bool containsKey(Object key) => throw new UnimplementedError();
+  bool containsValue(Object value) => throw new UnimplementedError();
+  void forEach(Function f) => throw new UnimplementedError();
+  bool get isEmpty => throw new UnimplementedError();
+  bool get isNotEmpty => throw new UnimplementedError();
+  Iterable<K> get keys => throw new UnimplementedError();
+  int get length => throw new UnimplementedError();
+  V putIfAbsent(K key, Function ifAbsent) => throw new UnimplementedError();
+  V remove(Object key) => throw new UnimplementedError();
+  Iterable<V> get values => throw new UnimplementedError();
+}
diff --git a/tests/language_2/forwarding_stub_tearoff_generic_test.dart b/tests/language_2/forwarding_stub_tearoff_generic_test.dart
new file mode 100644
index 0000000..1bccc6e
--- /dev/null
+++ b/tests/language_2/forwarding_stub_tearoff_generic_test.dart
@@ -0,0 +1,43 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import "package:expect/expect.dart";
+
+class A {}
+
+class B extends A {}
+
+class C {
+  void f(B x) {}
+}
+
+abstract class I<T> {
+  void f(T x);
+}
+
+// D contains a forwarding stub for f which ensures that `x` is type checked.
+class D extends C implements I<B> {}
+
+void checkStubTearoff(dynamic tearoff) {
+  // Since the stub's parameter is covariant, its type should be reified as
+  // Object.
+  Expect.isTrue(tearoff is void Function(Object));
+
+  // Verify that the appropriate runtime check occurs.
+  tearoff(new B()); // No error
+  Expect.throwsTypeError(() {
+    tearoff(new A());
+  });
+}
+
+main() {
+  // The same forwarding stub should be torn off from D regardless of what
+  // interface is used to tear it off.
+  D d = new D();
+  C c = d;
+  I i = d;
+  checkStubTearoff(d.f);
+  checkStubTearoff(c.f);
+  checkStubTearoff(i.f);
+}
diff --git a/tests/language_2/forwarding_stub_tearoff_test.dart b/tests/language_2/forwarding_stub_tearoff_test.dart
new file mode 100644
index 0000000..12aa7bf
--- /dev/null
+++ b/tests/language_2/forwarding_stub_tearoff_test.dart
@@ -0,0 +1,43 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import "package:expect/expect.dart";
+
+class A {}
+
+class B extends A {}
+
+class C {
+  void f(B x) {}
+}
+
+abstract class I {
+  void f(covariant A x);
+}
+
+// D contains a forwarding stub for f which ensures that `x` is type checked.
+class D extends C implements I {}
+
+void checkStubTearoff(dynamic tearoff) {
+  // Since the stub's parameter is covariant, its type should be reified as
+  // Object.
+  Expect.isTrue(tearoff is void Function(Object));
+
+  // Verify that the appropriate runtime check occurs.
+  tearoff(new B()); // No error
+  Expect.throwsTypeError(() {
+    tearoff(new A());
+  });
+}
+
+main() {
+  // The same forwarding stub should be torn off from D regardless of what
+  // interface is used to tear it off.
+  D d = new D();
+  C c = d;
+  I i = d;
+  checkStubTearoff(d.f);
+  checkStubTearoff(c.f);
+  checkStubTearoff(i.f);
+}
diff --git a/tests/language_2/generic_function_typedef2_test.dart b/tests/language_2/generic_function_typedef2_test.dart
index 4e9acd9..438dfaf 100644
--- a/tests/language_2/generic_function_typedef2_test.dart
+++ b/tests/language_2/generic_function_typedef2_test.dart
@@ -19,16 +19,16 @@
         ));
 typedef L = Function(
     {
-  /* //  //# 05: compile-time error
+  /* //  //# 05: syntax error
     bool
-  */ //  //# 05: compile-time error
+  */ //  //# 05: continued
         x});
 
 typedef M = Function(
     {
-  /* //  //# 06: compile-time error
+  /* //  //# 06: syntax error
     bool
-  */ //  //# 06: compile-time error
+  */ //  //# 06: continued
         int});
 
 foo({bool int}) {}
diff --git a/tests/language_2/invalid_cast_test.dart b/tests/language_2/invalid_cast_test.dart
new file mode 100644
index 0000000..72fc76a
--- /dev/null
+++ b/tests/language_2/invalid_cast_test.dart
@@ -0,0 +1,33 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+class C {
+  C();
+  factory C.fact() => null;
+  factory C.fact2() = D;
+  C.nonFact();
+  C.nonFact2() : this.nonFact();
+  static void staticFunction(int i) {}
+}
+
+class D extends C {}
+
+void topLevelFunction(int i) {}
+
+test() {
+  void localFunction(int i) {}
+  List<int> a = <Object>[]; //# 01: compile-time error
+  Map<int, String> b = <Object, String>{}; //# 02: compile-time error
+  Map<int, String> c = <int, Object>{}; //# 03: compile-time error
+  int Function(Object) d = (int i) => i; //# 04: compile-time error
+  D e = new C.fact(); //# 05: ok
+  D f = new C.fact2(); //# 06: ok
+  D g = new C.nonFact(); //# 07: compile-time error
+  D h = new C.nonFact2(); //# 08: compile-time error
+  void Function(Object) i = C.staticFunction; //# 09: compile-time error
+  void Function(Object) j = topLevelFunction; //# 10: compile-time error
+  void Function(Object) k = localFunction; //# 11: compile-time error
+}
+
+main() {}
diff --git a/tests/language_2/language_2.status b/tests/language_2/language_2.status
index eb4a0fd..00f785d 100644
--- a/tests/language_2/language_2.status
+++ b/tests/language_2/language_2.status
@@ -2,78 +2,54 @@
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
 
+[ $compiler == app_jit ]
+deferred_inheritance_constraints_test/redirecting_constructor: Crash
+
+[ $compiler != dart2analyzer ]
+switch_case_warn_test: Skip # Analyzer only, see language_analyzer2.status
+
 [ $mode == product ]
 assertion_test: SkipByDesign # Requires checked mode.
-regress_29784_test/02: SkipByDesign # Requires checked mode.
 generic_test: SkipByDesign # Requires checked mode.
+issue13474_test: SkipByDesign # Requires checked mode.
+map_literal4_test: SkipByDesign # Requires checked mode.
 named_parameters_type_test/01: SkipByDesign # Requires checked mode.
 named_parameters_type_test/02: SkipByDesign # Requires checked mode.
 named_parameters_type_test/03: SkipByDesign # Requires checked mode.
-issue13474_test: SkipByDesign # Requires checked mode.
-map_literal4_test: SkipByDesign # Requires checked mode.
 positional_parameters_type_test/01: SkipByDesign # Requires checked mode.
 positional_parameters_type_test/02: SkipByDesign # Requires checked mode.
+regress_29784_test/02: SkipByDesign # Requires checked mode.
 stacktrace_demangle_ctors_test: SkipByDesign # Names are not scrubbed.
 type_checks_in_factory_method_test: SkipByDesign # Requires checked mode.
 
+[ $compiler != dartdevc && $compiler != dartdevk && $compiler != dartk && $compiler != dartkp && $strong ]
+type_promotion_functions_test: CompileTimeError # Issue 30895: This test requires a complete rewrite for 2.0.
+
+[ $compiler != dartdevc && !$checked ]
+function_type/*: Skip # Needs checked mode.
+
+[ $compiler != dartdevk && $compiler != dartk && $compiler != dartkp && $strong ]
+compile_time_constant_static5_test/11: CompileTimeError # Issue 30546
+compile_time_constant_static5_test/16: CompileTimeError # Issue 30546
+compile_time_constant_static5_test/21: CompileTimeError # Issue 30546
+compile_time_constant_static5_test/23: CompileTimeError # Issue 30546
+issue_25671a_test/01: CompileTimeError
+issue_25671b_test/01: CompileTimeError
+type_promotion_more_specific_test/04: CompileTimeError # Issue 30906.
+
+[ $compiler != dartk && $compiler != dartkp && $mode == debug && $runtime == vm ]
+built_in_identifier_type_annotation_test/15: Crash # Not supported by legacy VM front-end.
+
 [ $compiler == none && $runtime == drt && !$checked ]
 assertion_initializer_const_error_test/01: Fail
 
-[ !$checked && $compiler != dartdevc ]
-function_type/*: Skip # Needs checked mode.
-
-[ $hot_reload || $hot_reload_rollback ]
-cha_deopt1_test: Crash # Requires deferred libraries
-cha_deopt2_test: Crash # Requires deferred libraries
-cha_deopt3_test: Crash # Requires deferred libraries
-deferred_call_empty_before_load_test: Crash # Requires deferred libraries
-deferred_closurize_load_library_test: Crash # Requires deferred libraries
-deferred_constant_list_test: Crash # Requires deferred libraries
-deferred_constraints_constants_test: Crash # Requires deferred libraries
-deferred_constraints_type_annotation_test: Crash # Requires deferred libraries
-deferred_function_type_test: Crash # Requires deferred libraries
-deferred_global_test: Crash # Requires deferred libraries
-deferred_import_core_test: Crash # Requires deferred libraries
-deferred_inlined_test: Crash # Requires deferred libraries
-deferred_inheritance_constraints_test: Crash # Requires deferred libraries
-deferred_load_constants_test: Crash # Requires deferred libraries
-deferred_load_inval_code_test: Crash # Requires deferred libraries
-deferred_load_library_wrong_args_test: Crash # Requires deferred libraries
-deferred_mixin_test: Crash # Requires deferred libraries
-deferred_no_such_method_test: Crash # Requires deferred libraries
-deferred_not_loaded_check_test: Crash # Requires deferred libraries
-deferred_only_constant_test: Crash # Requires deferred libraries
-deferred_optimized_test: Crash # Requires deferred libraries
-deferred_redirecting_factory_test: Crash # Requires deferred libraries
-deferred_regression_22995_test: Crash # Requires deferred libraries
-deferred_regression_28678_test: Crash # Requires deferred libraries
-deferred_shadow_load_library_test: Crash # Requires deferred libraries
-deferred_shared_and_unshared_classes_test: Crash # Requires deferred libraries
-deferred_static_seperate_test: Crash # Requires deferred libraries
-deferred_super_dependency_test: Pass, Crash # Requires deferred libraries
-deferred_type_dependency_test: Crash # Requires deferred libraries
-issue21159_test: Pass, Crash # Issue 29094
-issue_22780_test/01: Pass, Crash # Issue 29094
-issue_1751477_test: Crash # Requires deferred libraries
-regress_23408_test: Crash # Requires deferred libraries
-regress_22443_test: Crash # Requires deferred libraries
-regress_28278_test: Crash # Requires deferred libraries
-static_closure_identical_test: Pass, Fail # Closure identity
-vm/regress_27201_test: Pass, Crash # Requires deferred libraries
-vm/optimized_stacktrace_test: Pass, Slow
-conditional_import_test: Crash # Requires deferred libraries
-conditional_import_string_test: Crash # Requires deferred libraries
-
-[ $checked && ! $strong ]
-type_parameter_test/05: Pass
-
-[ ! $checked && ! $strong && $compiler != spec_parser ]
+[ $compiler != spec_parser && !$checked && !$strong ]
 closure_type_test: RuntimeError
 map_literal1_test/01: MissingCompileTimeError
 
-[ ! $strong && $compiler != spec_parser ]
-class_literal_static_test/none: Pass
+[ $compiler != spec_parser && !$strong ]
 class_literal_static_test: MissingCompileTimeError # Requires strong mode
+class_literal_static_test/none: Pass
 class_override_test: MissingCompileTimeError # Requires strong mode
 closure_internals_test/01: MissingCompileTimeError # Requires strong mode
 closure_internals_test/02: MissingCompileTimeError # Requires strong mode
@@ -110,8 +86,8 @@
 issue15606_test/01: MissingCompileTimeError # Requires strong mode
 issue18628_1_test/01: MissingCompileTimeError # Requires strong mode
 issue18628_2_test/01: MissingCompileTimeError # Requires strong mode
-known_identifier_prefix_error_test/none: Pass
 known_identifier_prefix_error_test/*: MissingCompileTimeError # Requires strong mode
+known_identifier_prefix_error_test/none: Pass
 map_literal3_test/01: MissingCompileTimeError
 map_literal3_test/02: MissingCompileTimeError
 map_literal3_test/03: MissingCompileTimeError
@@ -183,34 +159,59 @@
 wrong_number_type_arguments_test/*: MissingCompileTimeError # Requires strong mode
 wrong_number_type_arguments_test/none: Pass
 
-[ !$strong && $runtime != none ]
+[ $runtime != none && !$strong ]
 map_literal11_test/none: MissingRuntimeError
 map_literal7_test: RuntimeError # Requires strong mode
 
-[ $strong && $compiler != dartk && $compiler != dartkp && $compiler != dartdevk ]
-compile_time_constant_static5_test/11: CompileTimeError # Issue 30546
-compile_time_constant_static5_test/16: CompileTimeError # Issue 30546
-compile_time_constant_static5_test/21: CompileTimeError # Issue 30546
-compile_time_constant_static5_test/23: CompileTimeError # Issue 30546
-issue_25671a_test/01: CompileTimeError
-issue_25671b_test/01: CompileTimeError
-type_promotion_more_specific_test/04: CompileTimeError # Issue 30906.
+[ $checked && !$strong ]
+type_parameter_test/05: Pass
 
-[ $strong && $compiler != dartk && $compiler != dartkp && $compiler != dartdevc && $compiler != dartdevk]
-type_promotion_functions_test: CompileTimeError # Issue 30895: This test requires a complete rewrite for 2.0.
-
-[ $compiler == app_jit ]
-deferred_inheritance_constraints_test/redirecting_constructor: Crash
-
-[ $compiler == none || $compiler == app_jit ]
-library_env_test/has_no_mirror_support: RuntimeError, OK
-
-[ $mode == debug && ($compiler != dartk && $compiler != dartkp) && $runtime == vm]
-built_in_identifier_type_annotation_test/15: Crash  # Not supported by legacy VM front-end.
-
-[ $minified && !$dart2js_with_kernel ]
+[ !$dart2js_with_kernel && $minified ]
 regress_21795_test: RuntimeError # Issue 12605
 stack_trace_test: Fail, OK # Stack trace not preserved in minified code.
 
-[ $compiler != dart2analyzer]
-switch_case_warn_test: SKIP # Analyzer only, see language_analyzer2.status
+[ $compiler == app_jit || $compiler == none ]
+library_env_test/has_no_mirror_support: RuntimeError, OK
+
+[ $hot_reload || $hot_reload_rollback ]
+cha_deopt1_test: Crash # Requires deferred libraries
+cha_deopt2_test: Crash # Requires deferred libraries
+cha_deopt3_test: Crash # Requires deferred libraries
+conditional_import_string_test: Crash # Requires deferred libraries
+conditional_import_test: Crash # Requires deferred libraries
+deferred_call_empty_before_load_test: Crash # Requires deferred libraries
+deferred_closurize_load_library_test: Crash # Requires deferred libraries
+deferred_constant_list_test: Crash # Requires deferred libraries
+deferred_constraints_constants_test: Crash # Requires deferred libraries
+deferred_constraints_type_annotation_test: Crash # Requires deferred libraries
+deferred_function_type_test: Crash # Requires deferred libraries
+deferred_global_test: Crash # Requires deferred libraries
+deferred_import_core_test: Crash # Requires deferred libraries
+deferred_inheritance_constraints_test: Crash # Requires deferred libraries
+deferred_inlined_test: Crash # Requires deferred libraries
+deferred_load_constants_test: Crash # Requires deferred libraries
+deferred_load_inval_code_test: Crash # Requires deferred libraries
+deferred_load_library_wrong_args_test: Crash # Requires deferred libraries
+deferred_mixin_test: Crash # Requires deferred libraries
+deferred_no_such_method_test: Crash # Requires deferred libraries
+deferred_not_loaded_check_test: Crash # Requires deferred libraries
+deferred_only_constant_test: Crash # Requires deferred libraries
+deferred_optimized_test: Crash # Requires deferred libraries
+deferred_redirecting_factory_test: Crash # Requires deferred libraries
+deferred_regression_22995_test: Crash # Requires deferred libraries
+deferred_regression_28678_test: Crash # Requires deferred libraries
+deferred_shadow_load_library_test: Crash # Requires deferred libraries
+deferred_shared_and_unshared_classes_test: Crash # Requires deferred libraries
+deferred_static_seperate_test: Crash # Requires deferred libraries
+deferred_super_dependency_test: Pass, Crash # Requires deferred libraries
+deferred_type_dependency_test: Crash # Requires deferred libraries
+issue21159_test: Pass, Crash # Issue 29094
+issue_1751477_test: Crash # Requires deferred libraries
+issue_22780_test/01: Pass, Crash # Issue 29094
+regress_22443_test: Crash # Requires deferred libraries
+regress_23408_test: Crash # Requires deferred libraries
+regress_28278_test: Crash # Requires deferred libraries
+static_closure_identical_test: Pass, Fail # Closure identity
+vm/optimized_stacktrace_test: Pass, Slow
+vm/regress_27201_test: Pass, Crash # Requires deferred libraries
+
diff --git a/tests/language_2/language_2_analyzer.status b/tests/language_2/language_2_analyzer.status
index afb8c7e..084d0f8 100644
--- a/tests/language_2/language_2_analyzer.status
+++ b/tests/language_2/language_2_analyzer.status
@@ -1,493 +1,172 @@
 # Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
-
 # Sections in this file should contain "$compiler == dart2analyzer".
 
-# Analyzer only implements Dart 2.0 static type checking with "--strong".
-[ $compiler == dart2analyzer && ! $strong && ! $checked ]
-abstract_beats_arguments_test: MissingCompileTimeError
-abstract_exact_selector_test/01: MissingCompileTimeError
-abstract_factory_constructor_test/00: MissingCompileTimeError
-abstract_getter_test/01: MissingCompileTimeError
-abstract_syntax_test/00: MissingCompileTimeError
-assign_static_type_test/01: MissingCompileTimeError
-assign_static_type_test/02: MissingCompileTimeError
-assign_static_type_test/03: MissingCompileTimeError
-assign_static_type_test/04: MissingCompileTimeError
-assign_static_type_test/05: MissingCompileTimeError
-assign_static_type_test/06: MissingCompileTimeError
-assign_to_type_test/01: MissingCompileTimeError
-assign_to_type_test/02: MissingCompileTimeError
-assign_to_type_test/03: MissingCompileTimeError
-assign_to_type_test/04: MissingCompileTimeError
-assign_top_method_test: MissingCompileTimeError
-async_await_syntax_test/a10a: MissingCompileTimeError
-async_await_syntax_test/b10a: MissingCompileTimeError
-async_await_syntax_test/c10a: MissingCompileTimeError
-async_await_syntax_test/d08b: MissingCompileTimeError
-async_await_syntax_test/d10a: MissingCompileTimeError
-async_or_generator_return_type_stacktrace_test/01: MissingCompileTimeError
-async_or_generator_return_type_stacktrace_test/02: MissingCompileTimeError
-async_or_generator_return_type_stacktrace_test/03: MissingCompileTimeError
-async_return_types_test/nestedFuture: MissingCompileTimeError
-async_return_types_test/tooManyTypeParameters: MissingCompileTimeError
-async_return_types_test/wrongReturnType: MissingCompileTimeError
-async_return_types_test/wrongTypeParameter: MissingCompileTimeError
-bad_named_parameters2_test/01: MissingCompileTimeError
-bad_named_parameters_test/01: MissingCompileTimeError
-bad_named_parameters_test/02: MissingCompileTimeError
-bad_named_parameters_test/03: MissingCompileTimeError
-bad_named_parameters_test/04: MissingCompileTimeError
-bad_named_parameters_test/05: MissingCompileTimeError
-bad_override_test/01: MissingCompileTimeError
-bad_override_test/02: MissingCompileTimeError
-bad_override_test/06: MissingCompileTimeError
-bit_operations_test/03: StaticWarning
-bit_operations_test/04: StaticWarning
-call_constructor_on_unresolvable_class_test/01: MissingCompileTimeError
-call_constructor_on_unresolvable_class_test/02: MissingCompileTimeError
-call_constructor_on_unresolvable_class_test/03: MissingCompileTimeError
-call_non_method_field_test/01: MissingCompileTimeError
-call_non_method_field_test/02: MissingCompileTimeError
-call_nonexistent_constructor_test/01: MissingCompileTimeError
-call_nonexistent_constructor_test/02: MissingCompileTimeError
-call_nonexistent_static_test/01: MissingCompileTimeError
-call_nonexistent_static_test/02: MissingCompileTimeError
-call_nonexistent_static_test/03: MissingCompileTimeError
-call_nonexistent_static_test/04: MissingCompileTimeError
-call_nonexistent_static_test/05: MissingCompileTimeError
-call_nonexistent_static_test/06: MissingCompileTimeError
-call_nonexistent_static_test/07: MissingCompileTimeError
-call_nonexistent_static_test/08: MissingCompileTimeError
-call_nonexistent_static_test/09: MissingCompileTimeError
-call_nonexistent_static_test/10: MissingCompileTimeError
-call_through_getter_test/01: MissingCompileTimeError
-call_through_getter_test/02: MissingCompileTimeError
-call_type_literal_test/01: MissingCompileTimeError
-callable_test/00: MissingCompileTimeError
-callable_test/01: MissingCompileTimeError
-check_member_static_test/01: MissingCompileTimeError
-check_method_override_test/01: MissingCompileTimeError
-check_method_override_test/02: MissingCompileTimeError
-const_constructor2_test/13: MissingCompileTimeError
-const_constructor2_test/14: MissingCompileTimeError
-const_constructor2_test/15: MissingCompileTimeError
-const_constructor2_test/16: MissingCompileTimeError
-const_constructor2_test/17: MissingCompileTimeError
-const_constructor2_test/18: MissingCompileTimeError
-const_constructor2_test/20: MissingCompileTimeError
-const_constructor2_test/22: MissingCompileTimeError
-const_constructor2_test/24: MissingCompileTimeError
-const_constructor3_test/02: MissingCompileTimeError
-const_constructor3_test/04: MissingCompileTimeError
-const_init2_test/02: MissingCompileTimeError
-constructor_call_as_function_test/01: MissingCompileTimeError
-constructor_duplicate_final_test/01: MissingCompileTimeError
-constructor_duplicate_final_test/02: MissingCompileTimeError
-constructor_named_arguments_test/01: MissingCompileTimeError
-covariant_subtyping_with_substitution_test: StaticWarning
-cyclic_type_variable_test/01: MissingCompileTimeError
-cyclic_type_variable_test/02: MissingCompileTimeError
-cyclic_type_variable_test/03: MissingCompileTimeError
-cyclic_type_variable_test/04: MissingCompileTimeError
-cyclic_typedef_test/13: MissingCompileTimeError
-default_factory2_test/01: MissingCompileTimeError
-default_factory_test/01: MissingCompileTimeError
-deferred_constraints_type_annotation_test/as_operation: MissingCompileTimeError
-deferred_constraints_type_annotation_test/catch_check: MissingCompileTimeError
-deferred_constraints_type_annotation_test/is_check: MissingCompileTimeError
-deferred_constraints_type_annotation_test/new_before_load: MissingCompileTimeError
-deferred_constraints_type_annotation_test/new_generic2: MissingCompileTimeError
-deferred_constraints_type_annotation_test/new_generic3: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation1: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_generic1: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_generic2: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_generic3: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_generic4: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_null: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_top_level: MissingCompileTimeError
-deferred_inheritance_constraints_test/redirecting_constructor: MissingCompileTimeError
-dynamic_field_test/01: MissingCompileTimeError
-dynamic_field_test/02: MissingCompileTimeError
-dynamic_prefix_core_test/01: MissingCompileTimeError
-emit_const_fields_test: Pass
-empty_block_case_test: MissingCompileTimeError
-enum_private_test/02: MissingCompileTimeError
-field_initialization_order_test/01: MissingCompileTimeError
-field_method4_test: MissingCompileTimeError
-for_in3_test: MissingCompileTimeError
-for_in_side_effects_test/01: MissingCompileTimeError
-function_malformed_result_type_test/00: MissingCompileTimeError
-function_type_call_getter2_test/00: MissingCompileTimeError
-function_type_call_getter2_test/01: MissingCompileTimeError
-function_type_call_getter2_test/02: MissingCompileTimeError
-function_type_call_getter2_test/03: MissingCompileTimeError
-function_type_call_getter2_test/04: MissingCompileTimeError
-function_type_call_getter2_test/05: MissingCompileTimeError
-generic_methods_bounds_test/01: MissingCompileTimeError
-generic_methods_closure_test: StaticWarning
-generic_methods_dynamic_test/01: MissingCompileTimeError
-generic_methods_dynamic_test/03: MissingCompileTimeError
-generic_methods_local_variable_declaration_test: StaticWarning
-generic_methods_overriding_test/01: MissingCompileTimeError
-generic_methods_overriding_test/03: MissingCompileTimeError
-generic_methods_overriding_test/06: StaticWarning
-generic_methods_recursive_bound_test/02: MissingCompileTimeError
-generic_methods_shadowing_test: StaticWarning
-generic_methods_simple_is_expression_test: StaticWarning
-generic_no_such_method_dispatcher_test: StaticWarning
-generic_tearoff_test: CompileTimeError
-getter_no_setter2_test/00: MissingCompileTimeError
-getter_no_setter2_test/01: MissingCompileTimeError
-getter_no_setter2_test/03: MissingCompileTimeError
-getter_no_setter_test/00: MissingCompileTimeError
-getter_no_setter_test/01: MissingCompileTimeError
-getter_no_setter_test/03: MissingCompileTimeError
-getter_override_test/03: MissingCompileTimeError
-getters_setters2_test/02: MissingCompileTimeError
-identical_const_test/01: MissingCompileTimeError
-identical_const_test/02: MissingCompileTimeError
-identical_const_test/03: MissingCompileTimeError
-identical_const_test/04: MissingCompileTimeError
-if_null_assignment_behavior_test/03: MissingCompileTimeError
-if_null_assignment_behavior_test/13: MissingCompileTimeError
-if_null_assignment_behavior_test/15: MissingCompileTimeError
-if_null_assignment_static_test/02: MissingCompileTimeError
-if_null_assignment_static_test/04: MissingCompileTimeError
-if_null_assignment_static_test/06: MissingCompileTimeError
-if_null_assignment_static_test/07: MissingCompileTimeError
-if_null_assignment_static_test/09: MissingCompileTimeError
-if_null_assignment_static_test/11: MissingCompileTimeError
-if_null_assignment_static_test/13: MissingCompileTimeError
-if_null_assignment_static_test/14: MissingCompileTimeError
-if_null_assignment_static_test/16: MissingCompileTimeError
-if_null_assignment_static_test/18: MissingCompileTimeError
-if_null_assignment_static_test/20: MissingCompileTimeError
-if_null_assignment_static_test/21: MissingCompileTimeError
-if_null_assignment_static_test/23: MissingCompileTimeError
-if_null_assignment_static_test/25: MissingCompileTimeError
-if_null_assignment_static_test/27: MissingCompileTimeError
-if_null_assignment_static_test/28: MissingCompileTimeError
-if_null_assignment_static_test/30: MissingCompileTimeError
-if_null_assignment_static_test/32: MissingCompileTimeError
-if_null_assignment_static_test/34: MissingCompileTimeError
-if_null_assignment_static_test/35: MissingCompileTimeError
-if_null_assignment_static_test/37: MissingCompileTimeError
-if_null_assignment_static_test/39: MissingCompileTimeError
-if_null_assignment_static_test/41: MissingCompileTimeError
-if_null_assignment_static_test/42: MissingCompileTimeError
-if_null_precedence_test/06: MissingCompileTimeError
-if_null_precedence_test/07: MissingCompileTimeError
-is_not_class2_test/*: MissingCompileTimeError
-library_ambiguous_test/04: MissingCompileTimeError
-list_literal1_test/01: MissingCompileTimeError
-malformed2_test/00: MissingCompileTimeError
-method_override2_test/00: MissingCompileTimeError
-method_override2_test/01: MissingCompileTimeError
-method_override2_test/02: MissingCompileTimeError
-method_override2_test/03: MissingCompileTimeError
-method_override3_test/00: MissingCompileTimeError
-method_override3_test/01: MissingCompileTimeError
-method_override3_test/02: MissingCompileTimeError
-method_override4_test/01: MissingCompileTimeError
-method_override4_test/02: MissingCompileTimeError
-method_override4_test/03: MissingCompileTimeError
-method_override5_test/01: MissingCompileTimeError
-method_override5_test/02: MissingCompileTimeError
-method_override5_test/03: MissingCompileTimeError
-method_override6_test/01: MissingCompileTimeError
-method_override6_test/02: MissingCompileTimeError
-method_override6_test/03: MissingCompileTimeError
-method_override8_test/03: MissingCompileTimeError
-mixin_of_mixin_test/01: MissingCompileTimeError
-mixin_of_mixin_test/02: MissingCompileTimeError
-mixin_of_mixin_test/03: MissingCompileTimeError
-mixin_of_mixin_test/04: MissingCompileTimeError
-mixin_of_mixin_test/05: MissingCompileTimeError
-mixin_of_mixin_test/06: MissingCompileTimeError
-mixin_super_2_test/01: MissingCompileTimeError
-mixin_super_2_test/03: MissingCompileTimeError
-mixin_super_bound_test/01: MissingCompileTimeError
-mixin_super_bound_test/02: MissingCompileTimeError
-mixin_supertype_subclass_test/02: MissingCompileTimeError
-mixin_supertype_subclass_test/05: MissingCompileTimeError
-mixin_type_parameters_errors_test/01: MissingCompileTimeError
-mixin_type_parameters_errors_test/02: MissingCompileTimeError
-mixin_type_parameters_errors_test/03: MissingCompileTimeError
-mixin_type_parameters_errors_test/04: MissingCompileTimeError
-mixin_type_parameters_errors_test/05: MissingCompileTimeError
-mixin_with_two_implicit_constructors_test: MissingCompileTimeError
-multiline_newline_test/01: CompileTimeError
-multiline_newline_test/01r: CompileTimeError
-multiline_newline_test/02: CompileTimeError
-multiline_newline_test/02r: CompileTimeError
-multiline_newline_test/04: MissingCompileTimeError
-multiline_newline_test/04r: MissingCompileTimeError
-multiline_newline_test/05: MissingCompileTimeError
-multiline_newline_test/05r: MissingCompileTimeError
-named_constructor_test/01: MissingCompileTimeError
-named_constructor_test/03: MissingCompileTimeError
-named_parameters2_test: MissingCompileTimeError
-named_parameters3_test: MissingCompileTimeError
-named_parameters4_test: MissingCompileTimeError
-named_parameters_aggregated_test/05: MissingCompileTimeError
-new_expression_type_args_test/00: MissingCompileTimeError
-new_expression_type_args_test/01: MissingCompileTimeError
-new_expression_type_args_test/02: MissingCompileTimeError
-new_prefix_test/01: MissingCompileTimeError
-no_such_constructor_test/01: MissingCompileTimeError
-not_enough_positional_arguments_test/00: MissingCompileTimeError
-not_enough_positional_arguments_test/02: MissingCompileTimeError
-not_enough_positional_arguments_test/03: MissingCompileTimeError
-not_enough_positional_arguments_test/05: MissingCompileTimeError
-not_enough_positional_arguments_test/06: MissingCompileTimeError
-not_enough_positional_arguments_test/07: MissingCompileTimeError
-optional_named_parameters_test/01: MissingCompileTimeError
-optional_named_parameters_test/02: MissingCompileTimeError
-optional_named_parameters_test/03: MissingCompileTimeError
-optional_named_parameters_test/04: MissingCompileTimeError
-optional_named_parameters_test/05: MissingCompileTimeError
-optional_named_parameters_test/06: MissingCompileTimeError
-optional_named_parameters_test/07: MissingCompileTimeError
-optional_named_parameters_test/08: MissingCompileTimeError
-optional_named_parameters_test/09: MissingCompileTimeError
-override_field_test/02: MissingCompileTimeError
-override_inheritance_abstract_test/02: MissingCompileTimeError
-override_inheritance_abstract_test/03: MissingCompileTimeError
-override_inheritance_abstract_test/04: MissingCompileTimeError
-override_inheritance_abstract_test/08: MissingCompileTimeError
-override_inheritance_abstract_test/09: MissingCompileTimeError
-override_inheritance_abstract_test/10: MissingCompileTimeError
-override_inheritance_abstract_test/11: MissingCompileTimeError
-override_inheritance_abstract_test/12: MissingCompileTimeError
-override_inheritance_abstract_test/13: MissingCompileTimeError
-override_inheritance_abstract_test/14: MissingCompileTimeError
-override_inheritance_abstract_test/17: MissingCompileTimeError
-override_inheritance_abstract_test/19: MissingCompileTimeError
-override_inheritance_abstract_test/20: MissingCompileTimeError
-override_inheritance_abstract_test/21: MissingCompileTimeError
-override_inheritance_abstract_test/22: MissingCompileTimeError
-override_inheritance_abstract_test/23: MissingCompileTimeError
-override_inheritance_abstract_test/24: MissingCompileTimeError
-override_inheritance_abstract_test/25: MissingCompileTimeError
-override_inheritance_abstract_test/26: MissingCompileTimeError
-override_inheritance_abstract_test/28: MissingCompileTimeError
-override_inheritance_field_test/05: MissingCompileTimeError
-override_inheritance_field_test/07: MissingCompileTimeError
-override_inheritance_field_test/08: MissingCompileTimeError
-override_inheritance_field_test/09: MissingCompileTimeError
-override_inheritance_field_test/10: MissingCompileTimeError
-override_inheritance_field_test/11: MissingCompileTimeError
-override_inheritance_field_test/28: MissingCompileTimeError
-override_inheritance_field_test/30: MissingCompileTimeError
-override_inheritance_field_test/31: MissingCompileTimeError
-override_inheritance_field_test/32: MissingCompileTimeError
-override_inheritance_field_test/33: MissingCompileTimeError
-override_inheritance_field_test/33a: MissingCompileTimeError
-override_inheritance_field_test/34: MissingCompileTimeError
-override_inheritance_field_test/44: MissingCompileTimeError
-override_inheritance_field_test/47: MissingCompileTimeError
-override_inheritance_field_test/48: MissingCompileTimeError
-override_inheritance_field_test/53: MissingCompileTimeError
-override_inheritance_field_test/54: MissingCompileTimeError
-override_inheritance_generic_test/04: MissingCompileTimeError
-override_inheritance_generic_test/06: MissingCompileTimeError
-override_inheritance_generic_test/07: MissingCompileTimeError
-override_inheritance_generic_test/08: MissingCompileTimeError
-override_inheritance_generic_test/09: MissingCompileTimeError
-override_inheritance_generic_test/10: MissingCompileTimeError
-override_inheritance_method_test/04: MissingCompileTimeError
-override_inheritance_method_test/05: MissingCompileTimeError
-override_inheritance_method_test/06: MissingCompileTimeError
-override_inheritance_method_test/11: MissingCompileTimeError
-override_inheritance_method_test/12: MissingCompileTimeError
-override_inheritance_method_test/13: MissingCompileTimeError
-override_inheritance_method_test/14: MissingCompileTimeError
-override_inheritance_method_test/19: MissingCompileTimeError
-override_inheritance_method_test/20: MissingCompileTimeError
-override_inheritance_method_test/21: MissingCompileTimeError
-override_inheritance_method_test/27: MissingCompileTimeError
-override_inheritance_method_test/30: MissingCompileTimeError
-override_inheritance_method_test/31: MissingCompileTimeError
-override_inheritance_method_test/32: MissingCompileTimeError
-override_inheritance_method_test/33: MissingCompileTimeError
-override_inheritance_mixed_test/06: MissingCompileTimeError
-override_inheritance_mixed_test/07: MissingCompileTimeError
-override_inheritance_mixed_test/08: MissingCompileTimeError
-override_inheritance_mixed_test/09: MissingCompileTimeError
-override_inheritance_no_such_method_test/01: MissingCompileTimeError
-override_inheritance_no_such_method_test/02: MissingCompileTimeError
-override_inheritance_no_such_method_test/06: MissingCompileTimeError
-override_inheritance_no_such_method_test/07: MissingCompileTimeError
-override_inheritance_no_such_method_test/09: MissingCompileTimeError
-override_inheritance_no_such_method_test/10: MissingCompileTimeError
-override_inheritance_no_such_method_test/12: MissingCompileTimeError
-override_inheritance_no_such_method_test/13: MissingCompileTimeError
-override_method_with_field_test/02: MissingCompileTimeError
-parser_quirks_test: StaticWarning
-part2_test/01: MissingCompileTimeError
-static_field1_test/01: MissingCompileTimeError
-static_field1a_test/01: MissingCompileTimeError
-static_field3_test/01: MissingCompileTimeError
-static_field3_test/02: MissingCompileTimeError
-static_field3_test/03: MissingCompileTimeError
-static_field3_test/04: MissingCompileTimeError
-static_field_test/01: MissingCompileTimeError
-static_field_test/02: MissingCompileTimeError
-static_field_test/03: MissingCompileTimeError
-static_field_test/04: MissingCompileTimeError
-static_final_field2_test/01: MissingCompileTimeError
-static_getter_no_setter1_test/01: MissingCompileTimeError
-static_getter_no_setter2_test/01: MissingCompileTimeError
-static_getter_no_setter3_test/01: MissingCompileTimeError
-static_initializer_type_error_test: MissingCompileTimeError
-static_setter_get_test/01: MissingCompileTimeError
-string_interpolate_test: StaticWarning
-string_test/01: MissingCompileTimeError
-string_unicode1_negative_test: CompileTimeError
-string_unicode2_negative_test: CompileTimeError
-string_unicode3_negative_test: CompileTimeError
-string_unicode4_negative_test: CompileTimeError
-super_bound_closure_test/01: MissingCompileTimeError
-super_operator_index_test/01: MissingCompileTimeError
-super_operator_index_test/02: MissingCompileTimeError
-super_operator_index_test/03: MissingCompileTimeError
-super_operator_index_test/04: MissingCompileTimeError
-super_operator_index_test/05: MissingCompileTimeError
-super_operator_index_test/06: MissingCompileTimeError
-super_operator_index_test/07: MissingCompileTimeError
-switch_fallthru_test/01: MissingCompileTimeError
-switch_case_warn_test/01: MissingCompileTimeError
-switch_case_warn_test/02: MissingCompileTimeError
-switch_case_warn_test/03: MissingCompileTimeError
-switch_case_warn_test/04: MissingCompileTimeError
-switch_case_warn_test/05: MissingCompileTimeError
-switch_case_warn_test/06: MissingCompileTimeError
-switch_case_warn_test/07: MissingCompileTimeError
-switch_case_warn_test/08: MissingCompileTimeError
-switch_case_warn_test/09: MissingCompileTimeError
-switch_case_warn_test/10: MissingCompileTimeError
-switch_case_warn_test/11: MissingCompileTimeError
-switch_case_warn_test/12: MissingCompileTimeError
-switch_case_warn_test/13: MissingCompileTimeError
-switch_case_warn_test/14: MissingCompileTimeError
-switch_case_warn_test/15: MissingCompileTimeError
-switch_case_warn_test/16: MissingCompileTimeError
-switch_case_warn_test/17: MissingCompileTimeError
-type_check_const_function_typedef2_test: MissingCompileTimeError
-type_parameter_test/05: MissingCompileTimeError
-type_variable_identifier_expression_test: MissingCompileTimeError
-type_variable_static_context_test: MissingCompileTimeError
-external_test/25: MissingCompileTimeError
-f_bounded_quantification_test/01: MissingCompileTimeError
-f_bounded_quantification_test/02: MissingCompileTimeError
-factory1_test/00: MissingCompileTimeError
-factory1_test/01: MissingCompileTimeError
-factory2_test/03: MissingCompileTimeError
-factory2_test/none: MissingCompileTimeError
-factory3_test/none: MissingCompileTimeError
-factory4_test/00: MissingCompileTimeError
-factory5_test/00: MissingCompileTimeError
-factory6_test/00: MissingCompileTimeError
-factory_redirection_test/01: MissingCompileTimeError
-factory_redirection_test/02: MissingCompileTimeError
-factory_redirection_test/03: MissingCompileTimeError
-factory_redirection_test/05: MissingCompileTimeError
-factory_redirection_test/06: MissingCompileTimeError
-factory_redirection_test/08: MissingCompileTimeError
-factory_redirection_test/09: MissingCompileTimeError
-factory_redirection_test/10: MissingCompileTimeError
-factory_redirection_test/11: MissingCompileTimeError
-factory_redirection_test/12: MissingCompileTimeError
-factory_redirection_test/13: MissingCompileTimeError
-factory_redirection_test/14: MissingCompileTimeError
-factory_redirection_test/none: MissingCompileTimeError
-factory_return_type_checked_test/00: MissingCompileTimeError
-unresolved_in_factory_test: MissingCompileTimeError
-field_override2_test: MissingCompileTimeError
-field_override_test/00: MissingCompileTimeError
-field_override_test/01: MissingCompileTimeError
-field_override_test/02: MissingCompileTimeError
-field_override_test/none: MissingCompileTimeError
-field_type_check_test/01: MissingCompileTimeError
-final_attempt_reinitialization_test/01: MissingCompileTimeError
-final_attempt_reinitialization_test/02: MissingCompileTimeError
-final_syntax_test/10: MissingCompileTimeError
-final_for_in_variable_test: MissingCompileTimeError
-final_param_test: MissingCompileTimeError
-final_super_field_set_test: MissingCompileTimeError
-final_variable_assignment_test/01: MissingCompileTimeError
-final_variable_assignment_test/02: MissingCompileTimeError
-final_variable_assignment_test/03: MissingCompileTimeError
-final_variable_assignment_test/04: MissingCompileTimeError
-first_class_types_literals_test/03: MissingCompileTimeError
-first_class_types_literals_test/04: MissingCompileTimeError
-first_class_types_literals_test/05: MissingCompileTimeError
-first_class_types_literals_test/06: MissingCompileTimeError
-first_class_types_literals_test/07: MissingCompileTimeError
-first_class_types_literals_test/08: MissingCompileTimeError
-first_class_types_literals_test/09: MissingCompileTimeError
-first_class_types_literals_test/10: MissingCompileTimeError
-first_class_types_literals_test/11: MissingCompileTimeError
-first_class_types_literals_test/12: MissingCompileTimeError
-mixin_illegal_constructor_test/13: MissingCompileTimeError
-mixin_illegal_constructor_test/14: MissingCompileTimeError
-mixin_illegal_constructor_test/15: MissingCompileTimeError
-mixin_illegal_constructor_test/16: MissingCompileTimeError
-mixin_illegal_static_access_test/01: MissingCompileTimeError
-mixin_illegal_static_access_test/02: MissingCompileTimeError
-mixin_illegal_syntax_test/13: MissingCompileTimeError
-mixin_invalid_bound2_test/02: MissingCompileTimeError
-mixin_invalid_bound2_test/03: MissingCompileTimeError
-mixin_invalid_bound2_test/04: MissingCompileTimeError
-mixin_invalid_bound2_test/05: MissingCompileTimeError
-mixin_invalid_bound2_test/06: MissingCompileTimeError
-mixin_invalid_bound2_test/07: MissingCompileTimeError
-mixin_invalid_bound2_test/08: MissingCompileTimeError
-mixin_invalid_bound2_test/09: MissingCompileTimeError
-mixin_invalid_bound2_test/10: MissingCompileTimeError
-mixin_invalid_bound2_test/11: MissingCompileTimeError
-mixin_invalid_bound2_test/12: MissingCompileTimeError
-mixin_invalid_bound2_test/13: MissingCompileTimeError
-mixin_invalid_bound2_test/14: MissingCompileTimeError
-mixin_invalid_bound2_test/15: MissingCompileTimeError
-mixin_invalid_bound_test/02: MissingCompileTimeError
-mixin_invalid_bound_test/03: MissingCompileTimeError
-mixin_invalid_bound_test/04: MissingCompileTimeError
-mixin_invalid_bound_test/05: MissingCompileTimeError
-mixin_invalid_bound_test/06: MissingCompileTimeError
-mixin_invalid_bound_test/07: MissingCompileTimeError
-mixin_invalid_bound_test/08: MissingCompileTimeError
-mixin_invalid_bound_test/09: MissingCompileTimeError
-mixin_invalid_bound_test/10: MissingCompileTimeError
-
 [ $compiler == dart2analyzer ]
-generic_no_such_method_dispatcher_simple_test: Skip # This test is just for kernel.
-fuzzy_arrows_test/01: MissingCompileTimeError
+abstract_override_adds_optional_args_concrete_subclass_test: MissingCompileTimeError # Issue #30568
+abstract_override_adds_optional_args_concrete_test: MissingCompileTimeError # Issue #30568
+abstract_override_adds_optional_args_supercall_test: MissingCompileTimeError # Issue #30568
+assertion_initializer_const_function_test/01: MissingCompileTimeError
+async_return_types_test/nestedFuture: MissingCompileTimeError
+await_test: Crash # Issue 31540
+bad_initializer1_negative_test: CompileTimeError # Issue 14529
+bad_initializer2_negative_test: Fail # Issue 14880
+black_listed_test/none: Fail # Issue 14228
+built_in_identifier_prefix_test: CompileTimeError
 built_in_identifier_type_annotation_test/22: MissingCompileTimeError # Issue 28813
 built_in_identifier_type_annotation_test/85: Crash # Issue 28813
+cascade_test/none: Fail # Issue 11577
+config_import_corelib_test: StaticWarning, OK
+conflicting_type_variable_and_setter_test: CompileTimeError # Issue 25525
+const_for_in_variable_test/01: MissingCompileTimeError # Issue 25161
+constructor_call_wrong_argument_count_negative_test: Fail # Issue 11585
+deep_nesting1_negative_test: CompileTimeError # Issue 25558
+deep_nesting2_negative_test: CompileTimeError # Issue 25558
+duplicate_export_negative_test: CompileTimeError
+duplicate_interface_negative_test: CompileTimeError
+emit_const_fields_test: CompileTimeError
+enum_syntax_test/05: Fail # Issue 21649
+enum_syntax_test/06: Fail # Issue 21649
+field3_test/01: MissingCompileTimeError
+final_syntax_test/01: Fail # Issue 11124
+final_syntax_test/02: Fail # Issue 11124
+final_syntax_test/03: Fail # Issue 11124
+final_syntax_test/04: Fail # Issue 11124
+function_type_parameter2_negative_test: CompileTimeError
+function_type_parameter_negative_test: CompileTimeError
+fuzzy_arrows_test/01: MissingCompileTimeError
+generic_function_type_as_type_argument_test/01: MissingCompileTimeError # Issue 30929
+generic_function_type_as_type_argument_test/02: MissingCompileTimeError # Issue 30929
+generic_list_checked_test: StaticWarning
+generic_local_functions_test: CompileTimeError # Issue 28515
+generic_methods_generic_function_parameter_test: CompileTimeError # Issue 28515
+generic_no_such_method_dispatcher_simple_test: Skip # This test is just for kernel.
+generic_test: StaticWarning
+generics_test: StaticWarning
+getter_declaration_negative_test: CompileTimeError
+getter_setter_in_lib_test: Fail # Issue 23286
+import_core_prefix_test: StaticWarning
+initializing_formal_final_test: MissingCompileTimeError
+inst_field_initializer1_negative_test: CompileTimeError
+instance_call_wrong_argument_count_negative_test: Fail # Issue 11585
+instance_method2_negative_test: CompileTimeError
+instance_method_negative_test: CompileTimeError
+interface2_negative_test: CompileTimeError
+interface_injection1_negative_test: CompileTimeError
+interface_injection2_negative_test: CompileTimeError
+interface_static_method_negative_test: CompileTimeError
+interface_static_non_final_fields_negative_test: Fail # Issue 11594
+interface_test/00: MissingCompileTimeError
+is_not_class1_negative_test: CompileTimeError
+is_not_class4_negative_test: CompileTimeError
+issue1578_negative_test: CompileTimeError
+label2_negative_test: CompileTimeError
+label3_negative_test: CompileTimeError
+label5_negative_test: CompileTimeError
+label6_negative_test: CompileTimeError
+label8_negative_test: CompileTimeError
+library_negative_test: CompileTimeError
+list_literal2_negative_test: CompileTimeError
+list_literal_negative_test: CompileTimeError
+map_literal_negative_test: CompileTimeError
+method_override7_test/03: Fail # Issue 11497
+method_override_test: StaticWarning
+method_override_test: CompileTimeError
+mixin_supertype_subclass2_test/02: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass2_test/05: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass3_test/02: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass3_test/05: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass4_test/01: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass4_test/02: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass4_test/03: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass4_test/04: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass4_test/05: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass_test/02: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass_test/05: MissingStaticWarning # Issue 25614
+mock_writable_final_private_field_test: CompileTimeError # Issue 30848
+nested_generic_closure_test: CompileTimeError
+new_expression1_negative_test: CompileTimeError
+new_expression2_negative_test: CompileTimeError
+new_expression3_negative_test: CompileTimeError
+no_main_test/01: Fail # Issue 20030
+no_such_constructor2_test: StaticWarning
+non_const_super_negative_test: CompileTimeError
+operator1_negative_test: CompileTimeError
+operator2_negative_test: CompileTimeError
+override_field_method1_negative_test: CompileTimeError
+override_field_method2_negative_test: CompileTimeError
+override_field_method4_negative_test: CompileTimeError
+override_field_method5_negative_test: CompileTimeError
+override_field_test/03: Fail # Issue 29703
+parameter_initializer1_negative_test: CompileTimeError
+parameter_initializer2_negative_test: CompileTimeError
+parameter_initializer3_negative_test: CompileTimeError
+parameter_initializer4_negative_test: CompileTimeError
+parameter_initializer6_negative_test: CompileTimeError
+part_refers_to_core_library_test/01: MissingCompileTimeError # Issue 29709
+prefix11_negative_test: Fail # Issue 11964
+prefix12_negative_test: Fail # Issue 11962
+prefix1_negative_test: Fail # Issue 11962
+prefix2_negative_test: Fail # Issue 11962
+prefix3_negative_test: Fail # Issue 12191
+prefix4_negative_test: Fail # Issue 11962
+prefix5_negative_test: Fail # Issue 11962
+prefix7_negative_test: CompileTimeError
+prefix8_negative_test: Fail # Issue 11964
+private_member1_negative_test: Fail # Issue 14021
+private_member2_negative_test: Fail # Issue 14021
+private_member3_negative_test: Fail # Issue 14021
+regress_23408_test: Skip # don't care about the static warning.
+regress_27617_test/1: MissingCompileTimeError
+regress_29025_test: CompileTimeError # Issue 29081
+regress_29349_test: CompileTimeError # Issue 29744
+regress_29405_test: CompileTimeError # Issue 29421
+regress_29784_test/02: MissingCompileTimeError # Issue 29784
+reify_typevar_static_test/00: MissingCompileTimeError # Issue 21565
+script1_negative_test: CompileTimeError
+script2_negative_test: CompileTimeError
+setter_declaration2_negative_test: CompileTimeError
+setter_declaration_negative_test: CompileTimeError
+setter_no_getter_call_test/01: CompileTimeError
+source_self_negative_test: CompileTimeError
+static_call_wrong_argument_count_negative_test: Fail # Issue 12156
+string_escape4_negative_test: CompileTimeError
+string_interpolate1_negative_test: CompileTimeError
+string_interpolate2_negative_test: CompileTimeError
+super_setter_test: StaticWarning
+switch1_negative_test: CompileTimeError
+switch3_negative_test: CompileTimeError
+switch4_negative_test: CompileTimeError
+switch5_negative_test: CompileTimeError
+switch7_negative_test: CompileTimeError
+syntax_test/none: Fail # Issue 11575
+test_negative_test: CompileTimeError
+try_catch_on_syntax_test/10: MissingCompileTimeError
+try_catch_on_syntax_test/11: MissingCompileTimeError
+type_variable_scope_test/none: Fail # Issue 11578
+type_variable_static_context_negative_test: Fail # Issue 12161
+vm/debug_break_enabled_vm_test: Skip
+vm/debug_break_vm_test/*: Skip
+vm/lazy_deopt_with_exception_test: Pass
+vm/reflect_core_vm_test: CompileTimeError
+vm/regress_27201_test: SkipByDesign # Loads bad library, so will always crash.
 
-[ $compiler == dart2analyzer && !$strong ]
-combiner_type_lookup_indexed_test: StaticWarning # Issue #31484
-combiner_type_lookup_instance_test: StaticWarning # Issue #31484
-combiner_type_lookup_static_test: StaticWarning # Issue #31484
-combiner_type_lookup_top_level_test: StaticWarning # Issue #31484
-constructor13_test/01: MissingCompileTimeError
-constructor13_test/02: MissingCompileTimeError
-int64_literal_test/03: MissingCompileTimeError
-int64_literal_test/30: MissingCompileTimeError
-object_has_no_call_method_test/02: MissingCompileTimeError
-object_has_no_call_method_test/05: MissingCompileTimeError
-object_has_no_call_method_test/08: MissingCompileTimeError
+[ $compiler == dart2analyzer && $runtime == none ]
+assertion_initializer_const_error2_test/cc10: CompileTimeError # Issue 31320
+assertion_initializer_const_error2_test/cc11: CompileTimeError # Issue 31320
+assertion_initializer_const_function_test/01: CompileTimeError
+assertion_initializer_test: CompileTimeError
+error_stacktrace_test/00: MissingCompileTimeError
+vm/lazy_deopt_with_exception_test: CompileTimeError
 
 [ $compiler == dart2analyzer && $checked ]
-assertion_initializer_const_error2_test/none: Pass
 assertion_initializer_const_error2_test/*: MissingCompileTimeError # Issue #
 assertion_initializer_const_error2_test/cc10: Pass # Issue #31321
 assertion_initializer_const_error2_test/cc11: Pass # Issue #31321
+assertion_initializer_const_error2_test/none: Pass
 
-[ $compiler == dart2analyzer && ! $strong && $checked ]
+[ $compiler == dart2analyzer && $checked && !$strong ]
 abstract_beats_arguments_test: MissingCompileTimeError
 abstract_exact_selector_test/01: MissingCompileTimeError
 abstract_factory_constructor_test/00: MissingCompileTimeError
@@ -584,8 +263,59 @@
 emit_const_fields_test: Pass
 empty_block_case_test: MissingCompileTimeError
 enum_private_test/02: MissingCompileTimeError
+external_test/25: MissingCompileTimeError
+f_bounded_quantification_test/01: MissingCompileTimeError
+f_bounded_quantification_test/02: MissingCompileTimeError
+factory1_test/00: MissingCompileTimeError
+factory1_test/01: MissingCompileTimeError
+factory2_test/03: MissingCompileTimeError
+factory2_test/none: MissingCompileTimeError
+factory3_test/none: MissingCompileTimeError
+factory4_test/00: MissingCompileTimeError
+factory5_test/00: MissingCompileTimeError
+factory6_test/00: MissingCompileTimeError
+factory_redirection_test/01: MissingCompileTimeError
+factory_redirection_test/02: MissingCompileTimeError
+factory_redirection_test/03: MissingCompileTimeError
+factory_redirection_test/05: MissingCompileTimeError
+factory_redirection_test/06: MissingCompileTimeError
+factory_redirection_test/08: MissingCompileTimeError
+factory_redirection_test/09: MissingCompileTimeError
+factory_redirection_test/10: MissingCompileTimeError
+factory_redirection_test/11: MissingCompileTimeError
+factory_redirection_test/12: MissingCompileTimeError
+factory_redirection_test/13: MissingCompileTimeError
+factory_redirection_test/14: MissingCompileTimeError
+factory_redirection_test/none: MissingCompileTimeError
+factory_return_type_checked_test/00: MissingCompileTimeError
 field_initialization_order_test/01: MissingCompileTimeError
 field_method4_test: MissingCompileTimeError
+field_override2_test: MissingCompileTimeError
+field_override_test/00: MissingCompileTimeError
+field_override_test/01: MissingCompileTimeError
+field_override_test/02: MissingCompileTimeError
+field_override_test/none: MissingCompileTimeError
+field_type_check_test/01: MissingCompileTimeError
+final_attempt_reinitialization_test/01: MissingCompileTimeError
+final_attempt_reinitialization_test/02: MissingCompileTimeError
+final_for_in_variable_test: MissingCompileTimeError
+final_param_test: MissingCompileTimeError
+final_super_field_set_test: MissingCompileTimeError
+final_syntax_test/10: MissingCompileTimeError
+final_variable_assignment_test/01: MissingCompileTimeError
+final_variable_assignment_test/02: MissingCompileTimeError
+final_variable_assignment_test/03: MissingCompileTimeError
+final_variable_assignment_test/04: MissingCompileTimeError
+first_class_types_literals_test/03: MissingCompileTimeError
+first_class_types_literals_test/04: MissingCompileTimeError
+first_class_types_literals_test/05: MissingCompileTimeError
+first_class_types_literals_test/06: MissingCompileTimeError
+first_class_types_literals_test/07: MissingCompileTimeError
+first_class_types_literals_test/08: MissingCompileTimeError
+first_class_types_literals_test/09: MissingCompileTimeError
+first_class_types_literals_test/10: MissingCompileTimeError
+first_class_types_literals_test/11: MissingCompileTimeError
+first_class_types_literals_test/12: MissingCompileTimeError
 for_in3_test: MissingCompileTimeError
 for_in_side_effects_test/01: MissingCompileTimeError
 function_malformed_result_type_test/00: MissingCompileTimeError
@@ -619,17 +349,47 @@
 getter_no_setter_test/03: MissingCompileTimeError
 getter_override_test/03: MissingCompileTimeError
 getters_setters2_test/02: MissingCompileTimeError
-method_override2_test/none: Pass
 method_override2_test/*: MissingCompileTimeError
-method_override3_test/none: Pass
+method_override2_test/none: Pass
 method_override3_test/*: MissingCompileTimeError
-method_override4_test/none: Pass
+method_override3_test/none: Pass
 method_override4_test/*: MissingCompileTimeError
-method_override5_test/none: Pass
+method_override4_test/none: Pass
 method_override5_test/*: MissingCompileTimeError
-method_override6_test/none: Pass
+method_override5_test/none: Pass
 method_override6_test/*: MissingCompileTimeError
+method_override6_test/none: Pass
 method_override8_test/03: MissingCompileTimeError
+mixin_illegal_constructor_test/13: MissingCompileTimeError
+mixin_illegal_constructor_test/14: MissingCompileTimeError
+mixin_illegal_constructor_test/15: MissingCompileTimeError
+mixin_illegal_constructor_test/16: MissingCompileTimeError
+mixin_illegal_static_access_test/01: MissingCompileTimeError
+mixin_illegal_static_access_test/02: MissingCompileTimeError
+mixin_illegal_syntax_test/13: MissingCompileTimeError
+mixin_invalid_bound2_test/02: MissingCompileTimeError
+mixin_invalid_bound2_test/03: MissingCompileTimeError
+mixin_invalid_bound2_test/04: MissingCompileTimeError
+mixin_invalid_bound2_test/05: MissingCompileTimeError
+mixin_invalid_bound2_test/06: MissingCompileTimeError
+mixin_invalid_bound2_test/07: MissingCompileTimeError
+mixin_invalid_bound2_test/08: MissingCompileTimeError
+mixin_invalid_bound2_test/09: MissingCompileTimeError
+mixin_invalid_bound2_test/10: MissingCompileTimeError
+mixin_invalid_bound2_test/11: MissingCompileTimeError
+mixin_invalid_bound2_test/12: MissingCompileTimeError
+mixin_invalid_bound2_test/13: MissingCompileTimeError
+mixin_invalid_bound2_test/14: MissingCompileTimeError
+mixin_invalid_bound2_test/15: MissingCompileTimeError
+mixin_invalid_bound_test/02: MissingCompileTimeError
+mixin_invalid_bound_test/03: MissingCompileTimeError
+mixin_invalid_bound_test/04: MissingCompileTimeError
+mixin_invalid_bound_test/05: MissingCompileTimeError
+mixin_invalid_bound_test/06: MissingCompileTimeError
+mixin_invalid_bound_test/07: MissingCompileTimeError
+mixin_invalid_bound_test/08: MissingCompileTimeError
+mixin_invalid_bound_test/09: MissingCompileTimeError
+mixin_invalid_bound_test/10: MissingCompileTimeError
 mixin_of_mixin_test/01: MissingCompileTimeError
 mixin_of_mixin_test/02: MissingCompileTimeError
 mixin_of_mixin_test/03: MissingCompileTimeError
@@ -772,8 +532,8 @@
 static_getter_no_setter1_test/01: MissingCompileTimeError
 static_getter_no_setter2_test/01: MissingCompileTimeError
 static_getter_no_setter3_test/01: MissingCompileTimeError
-static_setter_get_test/01: MissingCompileTimeError
 static_initializer_type_error_test: MissingCompileTimeError
+static_setter_get_test/01: MissingCompileTimeError
 string_interpolate_test: StaticWarning
 string_test/01: MissingCompileTimeError
 string_unicode1_negative_test: CompileTimeError
@@ -808,6 +568,118 @@
 switch_fallthru_test/01: MissingCompileTimeError
 type_variable_identifier_expression_test: MissingCompileTimeError
 type_variable_static_context_test: MissingCompileTimeError
+unresolved_in_factory_test: MissingCompileTimeError
+
+# Analyzer only implements Dart 2.0 static type checking with "--strong".
+[ $compiler == dart2analyzer && !$checked && !$strong ]
+abstract_beats_arguments_test: MissingCompileTimeError
+abstract_exact_selector_test/01: MissingCompileTimeError
+abstract_factory_constructor_test/00: MissingCompileTimeError
+abstract_getter_test/01: MissingCompileTimeError
+abstract_syntax_test/00: MissingCompileTimeError
+assign_static_type_test/01: MissingCompileTimeError
+assign_static_type_test/02: MissingCompileTimeError
+assign_static_type_test/03: MissingCompileTimeError
+assign_static_type_test/04: MissingCompileTimeError
+assign_static_type_test/05: MissingCompileTimeError
+assign_static_type_test/06: MissingCompileTimeError
+assign_to_type_test/01: MissingCompileTimeError
+assign_to_type_test/02: MissingCompileTimeError
+assign_to_type_test/03: MissingCompileTimeError
+assign_to_type_test/04: MissingCompileTimeError
+assign_top_method_test: MissingCompileTimeError
+async_await_syntax_test/a10a: MissingCompileTimeError
+async_await_syntax_test/b10a: MissingCompileTimeError
+async_await_syntax_test/c10a: MissingCompileTimeError
+async_await_syntax_test/d08b: MissingCompileTimeError
+async_await_syntax_test/d10a: MissingCompileTimeError
+async_or_generator_return_type_stacktrace_test/01: MissingCompileTimeError
+async_or_generator_return_type_stacktrace_test/02: MissingCompileTimeError
+async_or_generator_return_type_stacktrace_test/03: MissingCompileTimeError
+async_return_types_test/nestedFuture: MissingCompileTimeError
+async_return_types_test/tooManyTypeParameters: MissingCompileTimeError
+async_return_types_test/wrongReturnType: MissingCompileTimeError
+async_return_types_test/wrongTypeParameter: MissingCompileTimeError
+bad_named_parameters2_test/01: MissingCompileTimeError
+bad_named_parameters_test/01: MissingCompileTimeError
+bad_named_parameters_test/02: MissingCompileTimeError
+bad_named_parameters_test/03: MissingCompileTimeError
+bad_named_parameters_test/04: MissingCompileTimeError
+bad_named_parameters_test/05: MissingCompileTimeError
+bad_override_test/01: MissingCompileTimeError
+bad_override_test/02: MissingCompileTimeError
+bad_override_test/06: MissingCompileTimeError
+bit_operations_test/03: StaticWarning
+bit_operations_test/04: StaticWarning
+call_constructor_on_unresolvable_class_test/01: MissingCompileTimeError
+call_constructor_on_unresolvable_class_test/02: MissingCompileTimeError
+call_constructor_on_unresolvable_class_test/03: MissingCompileTimeError
+call_non_method_field_test/01: MissingCompileTimeError
+call_non_method_field_test/02: MissingCompileTimeError
+call_nonexistent_constructor_test/01: MissingCompileTimeError
+call_nonexistent_constructor_test/02: MissingCompileTimeError
+call_nonexistent_static_test/01: MissingCompileTimeError
+call_nonexistent_static_test/02: MissingCompileTimeError
+call_nonexistent_static_test/03: MissingCompileTimeError
+call_nonexistent_static_test/04: MissingCompileTimeError
+call_nonexistent_static_test/05: MissingCompileTimeError
+call_nonexistent_static_test/06: MissingCompileTimeError
+call_nonexistent_static_test/07: MissingCompileTimeError
+call_nonexistent_static_test/08: MissingCompileTimeError
+call_nonexistent_static_test/09: MissingCompileTimeError
+call_nonexistent_static_test/10: MissingCompileTimeError
+call_through_getter_test/01: MissingCompileTimeError
+call_through_getter_test/02: MissingCompileTimeError
+call_type_literal_test/01: MissingCompileTimeError
+callable_test/00: MissingCompileTimeError
+callable_test/01: MissingCompileTimeError
+check_member_static_test/01: MissingCompileTimeError
+check_method_override_test/01: MissingCompileTimeError
+check_method_override_test/02: MissingCompileTimeError
+const_constructor2_test/13: MissingCompileTimeError
+const_constructor2_test/14: MissingCompileTimeError
+const_constructor2_test/15: MissingCompileTimeError
+const_constructor2_test/16: MissingCompileTimeError
+const_constructor2_test/17: MissingCompileTimeError
+const_constructor2_test/18: MissingCompileTimeError
+const_constructor2_test/20: MissingCompileTimeError
+const_constructor2_test/22: MissingCompileTimeError
+const_constructor2_test/24: MissingCompileTimeError
+const_constructor3_test/02: MissingCompileTimeError
+const_constructor3_test/04: MissingCompileTimeError
+const_init2_test/02: MissingCompileTimeError
+constructor_call_as_function_test/01: MissingCompileTimeError
+constructor_duplicate_final_test/01: MissingCompileTimeError
+constructor_duplicate_final_test/02: MissingCompileTimeError
+constructor_named_arguments_test/01: MissingCompileTimeError
+covariant_subtyping_with_substitution_test: StaticWarning
+cyclic_type_variable_test/01: MissingCompileTimeError
+cyclic_type_variable_test/02: MissingCompileTimeError
+cyclic_type_variable_test/03: MissingCompileTimeError
+cyclic_type_variable_test/04: MissingCompileTimeError
+cyclic_typedef_test/13: MissingCompileTimeError
+default_factory2_test/01: MissingCompileTimeError
+default_factory_test/01: MissingCompileTimeError
+deferred_constraints_type_annotation_test/as_operation: MissingCompileTimeError
+deferred_constraints_type_annotation_test/catch_check: MissingCompileTimeError
+deferred_constraints_type_annotation_test/is_check: MissingCompileTimeError
+deferred_constraints_type_annotation_test/new_before_load: MissingCompileTimeError
+deferred_constraints_type_annotation_test/new_generic2: MissingCompileTimeError
+deferred_constraints_type_annotation_test/new_generic3: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation1: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_generic1: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_generic2: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_generic3: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_generic4: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_null: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_top_level: MissingCompileTimeError
+deferred_inheritance_constraints_test/redirecting_constructor: MissingCompileTimeError
+dynamic_field_test/01: MissingCompileTimeError
+dynamic_field_test/02: MissingCompileTimeError
+dynamic_prefix_core_test/01: MissingCompileTimeError
+emit_const_fields_test: Pass
+empty_block_case_test: MissingCompileTimeError
+enum_private_test/02: MissingCompileTimeError
 external_test/25: MissingCompileTimeError
 f_bounded_quantification_test/01: MissingCompileTimeError
 f_bounded_quantification_test/02: MissingCompileTimeError
@@ -833,7 +705,8 @@
 factory_redirection_test/14: MissingCompileTimeError
 factory_redirection_test/none: MissingCompileTimeError
 factory_return_type_checked_test/00: MissingCompileTimeError
-unresolved_in_factory_test: MissingCompileTimeError
+field_initialization_order_test/01: MissingCompileTimeError
+field_method4_test: MissingCompileTimeError
 field_override2_test: MissingCompileTimeError
 field_override_test/00: MissingCompileTimeError
 field_override_test/01: MissingCompileTimeError
@@ -842,10 +715,10 @@
 field_type_check_test/01: MissingCompileTimeError
 final_attempt_reinitialization_test/01: MissingCompileTimeError
 final_attempt_reinitialization_test/02: MissingCompileTimeError
-final_syntax_test/10: MissingCompileTimeError
 final_for_in_variable_test: MissingCompileTimeError
 final_param_test: MissingCompileTimeError
 final_super_field_set_test: MissingCompileTimeError
+final_syntax_test/10: MissingCompileTimeError
 final_variable_assignment_test/01: MissingCompileTimeError
 final_variable_assignment_test/02: MissingCompileTimeError
 final_variable_assignment_test/03: MissingCompileTimeError
@@ -860,6 +733,90 @@
 first_class_types_literals_test/10: MissingCompileTimeError
 first_class_types_literals_test/11: MissingCompileTimeError
 first_class_types_literals_test/12: MissingCompileTimeError
+for_in3_test: MissingCompileTimeError
+for_in_side_effects_test/01: MissingCompileTimeError
+function_malformed_result_type_test/00: MissingCompileTimeError
+function_type_call_getter2_test/00: MissingCompileTimeError
+function_type_call_getter2_test/01: MissingCompileTimeError
+function_type_call_getter2_test/02: MissingCompileTimeError
+function_type_call_getter2_test/03: MissingCompileTimeError
+function_type_call_getter2_test/04: MissingCompileTimeError
+function_type_call_getter2_test/05: MissingCompileTimeError
+generic_methods_bounds_test/01: MissingCompileTimeError
+generic_methods_closure_test: StaticWarning
+generic_methods_dynamic_test/01: MissingCompileTimeError
+generic_methods_dynamic_test/03: MissingCompileTimeError
+generic_methods_local_variable_declaration_test: StaticWarning
+generic_methods_overriding_test/01: MissingCompileTimeError
+generic_methods_overriding_test/03: MissingCompileTimeError
+generic_methods_overriding_test/06: StaticWarning
+generic_methods_recursive_bound_test/02: MissingCompileTimeError
+generic_methods_shadowing_test: StaticWarning
+generic_methods_simple_is_expression_test: StaticWarning
+generic_no_such_method_dispatcher_test: StaticWarning
+generic_tearoff_test: CompileTimeError
+getter_no_setter2_test/00: MissingCompileTimeError
+getter_no_setter2_test/01: MissingCompileTimeError
+getter_no_setter2_test/03: MissingCompileTimeError
+getter_no_setter_test/00: MissingCompileTimeError
+getter_no_setter_test/01: MissingCompileTimeError
+getter_no_setter_test/03: MissingCompileTimeError
+getter_override_test/03: MissingCompileTimeError
+getters_setters2_test/02: MissingCompileTimeError
+identical_const_test/01: MissingCompileTimeError
+identical_const_test/02: MissingCompileTimeError
+identical_const_test/03: MissingCompileTimeError
+identical_const_test/04: MissingCompileTimeError
+if_null_assignment_behavior_test/03: MissingCompileTimeError
+if_null_assignment_behavior_test/13: MissingCompileTimeError
+if_null_assignment_behavior_test/15: MissingCompileTimeError
+if_null_assignment_static_test/02: MissingCompileTimeError
+if_null_assignment_static_test/04: MissingCompileTimeError
+if_null_assignment_static_test/06: MissingCompileTimeError
+if_null_assignment_static_test/07: MissingCompileTimeError
+if_null_assignment_static_test/09: MissingCompileTimeError
+if_null_assignment_static_test/11: MissingCompileTimeError
+if_null_assignment_static_test/13: MissingCompileTimeError
+if_null_assignment_static_test/14: MissingCompileTimeError
+if_null_assignment_static_test/16: MissingCompileTimeError
+if_null_assignment_static_test/18: MissingCompileTimeError
+if_null_assignment_static_test/20: MissingCompileTimeError
+if_null_assignment_static_test/21: MissingCompileTimeError
+if_null_assignment_static_test/23: MissingCompileTimeError
+if_null_assignment_static_test/25: MissingCompileTimeError
+if_null_assignment_static_test/27: MissingCompileTimeError
+if_null_assignment_static_test/28: MissingCompileTimeError
+if_null_assignment_static_test/30: MissingCompileTimeError
+if_null_assignment_static_test/32: MissingCompileTimeError
+if_null_assignment_static_test/34: MissingCompileTimeError
+if_null_assignment_static_test/35: MissingCompileTimeError
+if_null_assignment_static_test/37: MissingCompileTimeError
+if_null_assignment_static_test/39: MissingCompileTimeError
+if_null_assignment_static_test/41: MissingCompileTimeError
+if_null_assignment_static_test/42: MissingCompileTimeError
+if_null_precedence_test/06: MissingCompileTimeError
+if_null_precedence_test/07: MissingCompileTimeError
+is_not_class2_test/*: MissingCompileTimeError
+library_ambiguous_test/04: MissingCompileTimeError
+list_literal1_test/01: MissingCompileTimeError
+malformed2_test/00: MissingCompileTimeError
+method_override2_test/00: MissingCompileTimeError
+method_override2_test/01: MissingCompileTimeError
+method_override2_test/02: MissingCompileTimeError
+method_override2_test/03: MissingCompileTimeError
+method_override3_test/00: MissingCompileTimeError
+method_override3_test/01: MissingCompileTimeError
+method_override3_test/02: MissingCompileTimeError
+method_override4_test/01: MissingCompileTimeError
+method_override4_test/02: MissingCompileTimeError
+method_override4_test/03: MissingCompileTimeError
+method_override5_test/01: MissingCompileTimeError
+method_override5_test/02: MissingCompileTimeError
+method_override5_test/03: MissingCompileTimeError
+method_override6_test/01: MissingCompileTimeError
+method_override6_test/02: MissingCompileTimeError
+method_override6_test/03: MissingCompileTimeError
+method_override8_test/03: MissingCompileTimeError
 mixin_illegal_constructor_test/13: MissingCompileTimeError
 mixin_illegal_constructor_test/14: MissingCompileTimeError
 mixin_illegal_constructor_test/15: MissingCompileTimeError
@@ -890,147 +847,188 @@
 mixin_invalid_bound_test/08: MissingCompileTimeError
 mixin_invalid_bound_test/09: MissingCompileTimeError
 mixin_invalid_bound_test/10: MissingCompileTimeError
+mixin_of_mixin_test/01: MissingCompileTimeError
+mixin_of_mixin_test/02: MissingCompileTimeError
+mixin_of_mixin_test/03: MissingCompileTimeError
+mixin_of_mixin_test/04: MissingCompileTimeError
+mixin_of_mixin_test/05: MissingCompileTimeError
+mixin_of_mixin_test/06: MissingCompileTimeError
+mixin_super_2_test/01: MissingCompileTimeError
+mixin_super_2_test/03: MissingCompileTimeError
+mixin_super_bound_test/01: MissingCompileTimeError
+mixin_super_bound_test/02: MissingCompileTimeError
+mixin_supertype_subclass_test/02: MissingCompileTimeError
+mixin_supertype_subclass_test/05: MissingCompileTimeError
+mixin_type_parameters_errors_test/01: MissingCompileTimeError
+mixin_type_parameters_errors_test/02: MissingCompileTimeError
+mixin_type_parameters_errors_test/03: MissingCompileTimeError
+mixin_type_parameters_errors_test/04: MissingCompileTimeError
+mixin_type_parameters_errors_test/05: MissingCompileTimeError
+mixin_with_two_implicit_constructors_test: MissingCompileTimeError
+multiline_newline_test/01: CompileTimeError
+multiline_newline_test/01r: CompileTimeError
+multiline_newline_test/02: CompileTimeError
+multiline_newline_test/02r: CompileTimeError
+multiline_newline_test/04: MissingCompileTimeError
+multiline_newline_test/04r: MissingCompileTimeError
+multiline_newline_test/05: MissingCompileTimeError
+multiline_newline_test/05r: MissingCompileTimeError
+named_constructor_test/01: MissingCompileTimeError
+named_constructor_test/03: MissingCompileTimeError
+named_parameters2_test: MissingCompileTimeError
+named_parameters3_test: MissingCompileTimeError
+named_parameters4_test: MissingCompileTimeError
+named_parameters_aggregated_test/05: MissingCompileTimeError
+new_expression_type_args_test/00: MissingCompileTimeError
+new_expression_type_args_test/01: MissingCompileTimeError
+new_expression_type_args_test/02: MissingCompileTimeError
+new_prefix_test/01: MissingCompileTimeError
+no_such_constructor_test/01: MissingCompileTimeError
+not_enough_positional_arguments_test/00: MissingCompileTimeError
+not_enough_positional_arguments_test/02: MissingCompileTimeError
+not_enough_positional_arguments_test/03: MissingCompileTimeError
+not_enough_positional_arguments_test/05: MissingCompileTimeError
+not_enough_positional_arguments_test/06: MissingCompileTimeError
+not_enough_positional_arguments_test/07: MissingCompileTimeError
+optional_named_parameters_test/01: MissingCompileTimeError
+optional_named_parameters_test/02: MissingCompileTimeError
+optional_named_parameters_test/03: MissingCompileTimeError
+optional_named_parameters_test/04: MissingCompileTimeError
+optional_named_parameters_test/05: MissingCompileTimeError
+optional_named_parameters_test/06: MissingCompileTimeError
+optional_named_parameters_test/07: MissingCompileTimeError
+optional_named_parameters_test/08: MissingCompileTimeError
+optional_named_parameters_test/09: MissingCompileTimeError
+override_field_test/02: MissingCompileTimeError
+override_inheritance_abstract_test/02: MissingCompileTimeError
+override_inheritance_abstract_test/03: MissingCompileTimeError
+override_inheritance_abstract_test/04: MissingCompileTimeError
+override_inheritance_abstract_test/08: MissingCompileTimeError
+override_inheritance_abstract_test/09: MissingCompileTimeError
+override_inheritance_abstract_test/10: MissingCompileTimeError
+override_inheritance_abstract_test/11: MissingCompileTimeError
+override_inheritance_abstract_test/12: MissingCompileTimeError
+override_inheritance_abstract_test/13: MissingCompileTimeError
+override_inheritance_abstract_test/14: MissingCompileTimeError
+override_inheritance_abstract_test/17: MissingCompileTimeError
+override_inheritance_abstract_test/19: MissingCompileTimeError
+override_inheritance_abstract_test/20: MissingCompileTimeError
+override_inheritance_abstract_test/21: MissingCompileTimeError
+override_inheritance_abstract_test/22: MissingCompileTimeError
+override_inheritance_abstract_test/23: MissingCompileTimeError
+override_inheritance_abstract_test/24: MissingCompileTimeError
+override_inheritance_abstract_test/25: MissingCompileTimeError
+override_inheritance_abstract_test/26: MissingCompileTimeError
+override_inheritance_abstract_test/28: MissingCompileTimeError
+override_inheritance_field_test/05: MissingCompileTimeError
+override_inheritance_field_test/07: MissingCompileTimeError
+override_inheritance_field_test/08: MissingCompileTimeError
+override_inheritance_field_test/09: MissingCompileTimeError
+override_inheritance_field_test/10: MissingCompileTimeError
+override_inheritance_field_test/11: MissingCompileTimeError
+override_inheritance_field_test/28: MissingCompileTimeError
+override_inheritance_field_test/30: MissingCompileTimeError
+override_inheritance_field_test/31: MissingCompileTimeError
+override_inheritance_field_test/32: MissingCompileTimeError
+override_inheritance_field_test/33: MissingCompileTimeError
+override_inheritance_field_test/33a: MissingCompileTimeError
+override_inheritance_field_test/34: MissingCompileTimeError
+override_inheritance_field_test/44: MissingCompileTimeError
+override_inheritance_field_test/47: MissingCompileTimeError
+override_inheritance_field_test/48: MissingCompileTimeError
+override_inheritance_field_test/53: MissingCompileTimeError
+override_inheritance_field_test/54: MissingCompileTimeError
+override_inheritance_generic_test/04: MissingCompileTimeError
+override_inheritance_generic_test/06: MissingCompileTimeError
+override_inheritance_generic_test/07: MissingCompileTimeError
+override_inheritance_generic_test/08: MissingCompileTimeError
+override_inheritance_generic_test/09: MissingCompileTimeError
+override_inheritance_generic_test/10: MissingCompileTimeError
+override_inheritance_method_test/04: MissingCompileTimeError
+override_inheritance_method_test/05: MissingCompileTimeError
+override_inheritance_method_test/06: MissingCompileTimeError
+override_inheritance_method_test/11: MissingCompileTimeError
+override_inheritance_method_test/12: MissingCompileTimeError
+override_inheritance_method_test/13: MissingCompileTimeError
+override_inheritance_method_test/14: MissingCompileTimeError
+override_inheritance_method_test/19: MissingCompileTimeError
+override_inheritance_method_test/20: MissingCompileTimeError
+override_inheritance_method_test/21: MissingCompileTimeError
+override_inheritance_method_test/27: MissingCompileTimeError
+override_inheritance_method_test/30: MissingCompileTimeError
+override_inheritance_method_test/31: MissingCompileTimeError
+override_inheritance_method_test/32: MissingCompileTimeError
+override_inheritance_method_test/33: MissingCompileTimeError
+override_inheritance_mixed_test/06: MissingCompileTimeError
+override_inheritance_mixed_test/07: MissingCompileTimeError
+override_inheritance_mixed_test/08: MissingCompileTimeError
+override_inheritance_mixed_test/09: MissingCompileTimeError
+override_inheritance_no_such_method_test/01: MissingCompileTimeError
+override_inheritance_no_such_method_test/02: MissingCompileTimeError
+override_inheritance_no_such_method_test/06: MissingCompileTimeError
+override_inheritance_no_such_method_test/07: MissingCompileTimeError
+override_inheritance_no_such_method_test/09: MissingCompileTimeError
+override_inheritance_no_such_method_test/10: MissingCompileTimeError
+override_inheritance_no_such_method_test/12: MissingCompileTimeError
+override_inheritance_no_such_method_test/13: MissingCompileTimeError
+override_method_with_field_test/02: MissingCompileTimeError
+parser_quirks_test: StaticWarning
+part2_test/01: MissingCompileTimeError
+static_field1_test/01: MissingCompileTimeError
+static_field1a_test/01: MissingCompileTimeError
+static_field3_test/01: MissingCompileTimeError
+static_field3_test/02: MissingCompileTimeError
+static_field3_test/03: MissingCompileTimeError
+static_field3_test/04: MissingCompileTimeError
+static_field_test/01: MissingCompileTimeError
+static_field_test/02: MissingCompileTimeError
+static_field_test/03: MissingCompileTimeError
+static_field_test/04: MissingCompileTimeError
+static_final_field2_test/01: MissingCompileTimeError
+static_getter_no_setter1_test/01: MissingCompileTimeError
+static_getter_no_setter2_test/01: MissingCompileTimeError
+static_getter_no_setter3_test/01: MissingCompileTimeError
+static_initializer_type_error_test: MissingCompileTimeError
+static_setter_get_test/01: MissingCompileTimeError
+string_interpolate_test: StaticWarning
+string_test/01: MissingCompileTimeError
+string_unicode1_negative_test: CompileTimeError
+string_unicode2_negative_test: CompileTimeError
+string_unicode3_negative_test: CompileTimeError
+string_unicode4_negative_test: CompileTimeError
+super_bound_closure_test/01: MissingCompileTimeError
+super_operator_index_test/01: MissingCompileTimeError
+super_operator_index_test/02: MissingCompileTimeError
+super_operator_index_test/03: MissingCompileTimeError
+super_operator_index_test/04: MissingCompileTimeError
+super_operator_index_test/05: MissingCompileTimeError
+super_operator_index_test/06: MissingCompileTimeError
+super_operator_index_test/07: MissingCompileTimeError
+switch_case_warn_test/01: MissingCompileTimeError
+switch_case_warn_test/02: MissingCompileTimeError
+switch_case_warn_test/03: MissingCompileTimeError
+switch_case_warn_test/04: MissingCompileTimeError
+switch_case_warn_test/05: MissingCompileTimeError
+switch_case_warn_test/06: MissingCompileTimeError
+switch_case_warn_test/07: MissingCompileTimeError
+switch_case_warn_test/08: MissingCompileTimeError
+switch_case_warn_test/09: MissingCompileTimeError
+switch_case_warn_test/10: MissingCompileTimeError
+switch_case_warn_test/11: MissingCompileTimeError
+switch_case_warn_test/12: MissingCompileTimeError
+switch_case_warn_test/13: MissingCompileTimeError
+switch_case_warn_test/14: MissingCompileTimeError
+switch_case_warn_test/15: MissingCompileTimeError
+switch_case_warn_test/16: MissingCompileTimeError
+switch_case_warn_test/17: MissingCompileTimeError
+switch_fallthru_test/01: MissingCompileTimeError
+type_check_const_function_typedef2_test: MissingCompileTimeError
+type_parameter_test/05: MissingCompileTimeError
+type_variable_identifier_expression_test: MissingCompileTimeError
+type_variable_static_context_test: MissingCompileTimeError
+unresolved_in_factory_test: MissingCompileTimeError
 
-[ $compiler == dart2analyzer ]
-abstract_override_adds_optional_args_concrete_subclass_test: MissingCompileTimeError # Issue #30568
-abstract_override_adds_optional_args_concrete_test: MissingCompileTimeError # Issue #30568
-abstract_override_adds_optional_args_supercall_test: MissingCompileTimeError # Issue #30568
-assertion_initializer_const_function_test/01: MissingCompileTimeError
-async_return_types_test/nestedFuture: MissingCompileTimeError
-bad_initializer1_negative_test: CompileTimeError # Issue 14529
-bad_initializer2_negative_test: Fail # Issue 14880
-black_listed_test/none: Fail # Issue 14228
-built_in_identifier_prefix_test: CompileTimeError
-cascade_test/none: Fail # Issue 11577
-constructor_call_wrong_argument_count_negative_test: Fail # Issue 11585
-deep_nesting1_negative_test: CompileTimeError # Issue 25558
-deep_nesting2_negative_test: CompileTimeError # Issue 25558
-duplicate_export_negative_test: CompileTimeError
-duplicate_interface_negative_test: CompileTimeError
-emit_const_fields_test: CompileTimeError
-enum_syntax_test/05: Fail # Issue 21649
-enum_syntax_test/06: Fail # Issue 21649
-field3_test/01: MissingCompileTimeError
-final_syntax_test/01: Fail # Issue 11124
-final_syntax_test/02: Fail # Issue 11124
-final_syntax_test/03: Fail # Issue 11124
-final_syntax_test/04: Fail # Issue 11124
-generic_methods_generic_function_parameter_test: CompileTimeError # Issue 28515
-generic_local_functions_test: CompileTimeError # Issue 28515
-generic_list_checked_test: StaticWarning
-generic_test: StaticWarning
-generics_test: StaticWarning
-getter_declaration_negative_test: CompileTimeError
-getter_setter_in_lib_test: Fail # Issue 23286
-import_core_prefix_test: StaticWarning
-initializing_formal_final_test: MissingCompileTimeError
-inst_field_initializer1_negative_test: CompileTimeError
-instance_call_wrong_argument_count_negative_test: Fail # Issue 11585
-instance_method2_negative_test: CompileTimeError
-instance_method_negative_test: CompileTimeError
-interface2_negative_test: CompileTimeError
-interface_injection1_negative_test: CompileTimeError
-interface_injection2_negative_test: CompileTimeError
-interface_static_method_negative_test: CompileTimeError
-is_not_class1_negative_test: CompileTimeError
-is_not_class4_negative_test: CompileTimeError
-interface_static_non_final_fields_negative_test: Fail # Issue 11594
-interface_test/00: MissingCompileTimeError
-issue1578_negative_test: CompileTimeError
-label2_negative_test: CompileTimeError
-label3_negative_test: CompileTimeError
-label5_negative_test: CompileTimeError
-label6_negative_test: CompileTimeError
-label8_negative_test: CompileTimeError
-method_override_test: CompileTimeError
-mixin_supertype_subclass_test/02: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass_test/05: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass2_test/02: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass2_test/05: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass3_test/02: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass3_test/05: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass4_test/01: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass4_test/02: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass4_test/03: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass4_test/04: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass4_test/05: MissingStaticWarning # Issue 25614
-mock_writable_final_private_field_test: CompileTimeError # Issue 30848
-nested_generic_closure_test: CompileTimeError
-operator1_negative_test: CompileTimeError
-operator2_negative_test: CompileTimeError
-setter_declaration2_negative_test: CompileTimeError
-setter_declaration_negative_test: CompileTimeError
-setter_no_getter_call_test/01: CompileTimeError
-source_self_negative_test: CompileTimeError
-static_call_wrong_argument_count_negative_test: Fail # Issue 12156
-string_escape4_negative_test: CompileTimeError
-string_interpolate1_negative_test: CompileTimeError
-string_interpolate2_negative_test: CompileTimeError
-super_setter_test: StaticWarning
-switch1_negative_test: CompileTimeError
-switch3_negative_test: CompileTimeError
-switch4_negative_test: CompileTimeError
-switch5_negative_test: CompileTimeError
-switch7_negative_test: CompileTimeError
-syntax_test/none: fail # Issue 11575
-type_variable_scope_test/none: fail # Issue 11578
-type_variable_static_context_negative_test: fail # Issue 12161
-vm/debug_break_enabled_vm_test: Skip
-vm/debug_break_vm_test/*: Skip
-vm/lazy_deopt_with_exception_test: Pass
-vm/reflect_core_vm_test: CompileTimeError
-library_negative_test: CompileTimeError
-method_override7_test/03: Fail # Issue 11497
-method_override_test: StaticWarning
-override_field_test/03: Fail # Issue 29703
-override_field_method1_negative_test: CompileTimeError
-override_field_method2_negative_test: CompileTimeError
-override_field_method4_negative_test: CompileTimeError
-override_field_method5_negative_test: CompileTimeError
-list_literal2_negative_test: CompileTimeError
-list_literal_negative_test: CompileTimeError
-map_literal_negative_test: CompileTimeError
-new_expression1_negative_test: CompileTimeError
-new_expression2_negative_test: CompileTimeError
-new_expression3_negative_test: CompileTimeError
-non_const_super_negative_test: CompileTimeError
-no_such_constructor2_test: StaticWarning
-no_main_test/01: Fail # Issue 20030
-parameter_initializer1_negative_test: CompileTimeError
-parameter_initializer2_negative_test: CompileTimeError
-parameter_initializer3_negative_test: CompileTimeError
-parameter_initializer4_negative_test: CompileTimeError
-parameter_initializer6_negative_test: CompileTimeError
-part_refers_to_core_library_test/01: MissingCompileTimeError # Issue 29709
-script1_negative_test: CompileTimeError
-script2_negative_test: CompileTimeError
-prefix1_negative_test: Fail # Issue 11962
-prefix12_negative_test: Fail # Issue 11962
-prefix11_negative_test: Fail # Issue 11964
-prefix2_negative_test: Fail # Issue 11962
-prefix4_negative_test: Fail # Issue 11962
-prefix5_negative_test: Fail # Issue 11962
-prefix8_negative_test: Fail # Issue 11964
-prefix3_negative_test: Fail # Issue 12191
-private_member1_negative_test: Fail # Issue 14021
-private_member2_negative_test: Fail # Issue 14021
-private_member3_negative_test: Fail # Issue 14021
-prefix7_negative_test: CompileTimeError
-regress_27617_test/1: MissingCompileTimeError
-regress_23408_test: Skip # don't care about the static warning.
-regress_29025_test: CompileTimeError # Issue 29081
-regress_29405_test: CompileTimeError # Issue 29421
-regress_29349_test: CompileTimeError # Issue 29744
-reify_typevar_static_test/00: MissingCompileTimeError # Issue 21565
-test_negative_test: CompileTimeError
-try_catch_on_syntax_test/10: MissingCompileTimeError
-try_catch_on_syntax_test/11: MissingCompileTimeError
-const_for_in_variable_test/01: MissingCompileTimeError # Issue 25161
-conflicting_type_variable_and_setter_test: CompileTimeError # Issue 25525
-function_type_parameter2_negative_test: CompileTimeError
-function_type_parameter_negative_test: CompileTimeError
-
-[ $strong && $compiler == dart2analyzer ]
+[ $compiler == dart2analyzer && $strong ]
 accessor_conflict_export2_test: CompileTimeError # Issue 25626
 accessor_conflict_export_test: CompileTimeError # Issue 25626
 accessor_conflict_import2_test: CompileTimeError # Issue 25626
@@ -1038,7 +1036,9 @@
 accessor_conflict_import_prefixed_test: CompileTimeError # Issue 25626
 accessor_conflict_import_test: CompileTimeError # Issue 25626
 additional_interface_adds_optional_args_test: CompileTimeError # Issue #30568
+assertion_initializer_const_function_test/01: MissingStaticWarning
 async_return_types_test/nestedFuture: MissingCompileTimeError
+bug31436_test: CompileTimeError
 cascaded_forwarding_stubs_test: CompileTimeError
 combiner_type_lookup_indexed_test: CompileTimeError # Issue #31484
 combiner_type_lookup_instance_test: CompileTimeError # Issue #31484
@@ -1049,18 +1049,29 @@
 const_types_test/08: MissingCompileTimeError # Incorrectly allows using type parameter in const expression.
 const_types_test/14: MissingCompileTimeError # Incorrectly allows using type parameter in const expression.
 const_types_test/15: MissingCompileTimeError # Incorrectly allows using type parameter in const expression.
+constant_type_literal_test/01: MissingCompileTimeError # Issue 28823
 error_stacktrace_test/00: Pass
+field3a_negative_test: StaticWarning # Issue 28823
+forwarding_stub_tearoff_test: CompileTimeError
 generic_list_checked_test: CompileTimeError
+generic_methods_closure_test: CompileTimeError # Issue 29070
 generic_methods_generic_function_result_test/none: CompileTimeError # Issue #30207
+generic_methods_local_variable_declaration_test: CompileTimeError # Issue 29070
+generic_methods_overriding_test/01: MissingCompileTimeError # Issue 29070
+generic_methods_overriding_test/03: MissingCompileTimeError # Issue 29070
+generic_methods_shadowing_test: CompileTimeError # Issue 29070
+generic_methods_simple_is_expression_test: CompileTimeError # Issue 29070
+generic_methods_type_expression_test: CompileTimeError # Incorrectly disallows type parameter in "is" test.
 generic_no_such_method_dispatcher_test: CompileTimeError
 generic_tearoff_test: CompileTimeError
 generic_test: CompileTimeError
 generics_test: CompileTimeError
 implicit_downcast_during_function_literal_arrow_test: CompileTimeError # Issue #31436
 import_core_prefix_test: CompileTimeError # "dynamic" should be defined in core.
+instantiate_type_variable_test/01: CompileTimeError
+int64_literal_test/03: MissingCompileTimeError # http://dartbug.com/31479
+int64_literal_test/30: MissingCompileTimeError # http://dartbug.com/31479
 interceptor6_test: CompileTimeError
-int64_literal_test/03: MissingCompileTimeError  # http://dartbug.com/31479
-int64_literal_test/30: MissingCompileTimeError  # http://dartbug.com/31479
 malformed2_test: Pass, MissingCompileTimeError # Issue 31056.
 mixin_super_2_test/01: MissingCompileTimeError
 mixin_super_2_test/03: MissingCompileTimeError
@@ -1075,6 +1086,8 @@
 multiline_newline_test/05: MissingCompileTimeError
 multiline_newline_test/05r: MissingCompileTimeError
 multiple_interface_inheritance_test: CompileTimeError # Issue 30552
+no_main_test/01: MissingStaticWarning # Issue 28823
+no_such_method_negative_test: CompileTimeError
 object_has_no_call_method_test/02: MissingCompileTimeError
 override_inheritance_abstract_test/02: MissingCompileTimeError
 override_inheritance_abstract_test/03: MissingCompileTimeError
@@ -1113,15 +1126,19 @@
 prefix13_negative_test: CompileTimeError, OK
 prefix15_negative_test: CompileTimeError, OK
 prefix18_negative_test: CompileTimeError, OK
+prefix6_negative_test: CompileTimeError, OK
 regress_30121_test: CompileTimeError # Issue 31087
 regress_30339_test: CompileTimeError
+reify_typevar_static_test/00: MissingCompileTimeError # Issue 28823
+string_interpolate_test: CompileTimeError
+string_split_test: CompileTimeError
 string_supertype_checked_test: CompileTimeError
 string_unicode1_negative_test: CompileTimeError
 string_unicode2_negative_test: CompileTimeError
 string_unicode3_negative_test: CompileTimeError
 string_unicode4_negative_test: CompileTimeError
-string_split_test: CompileTimeError
 super_bound_closure_test/none: CompileTimeError
+super_setter_test: StaticWarning # Issue 28823
 switch_case_test/none: CompileTimeError
 type_promotion_functions_test/01: Pass
 type_promotion_functions_test/05: Pass
@@ -1129,52 +1146,50 @@
 type_promotion_functions_test/07: Pass
 type_promotion_functions_test/08: Pass
 type_promotion_functions_test/10: Pass
-
 vm/lazy_deopt_with_exception_test: CompileTimeError
-prefix6_negative_test: CompileTimeError, OK
+void_type_callbacks_test/00: MissingCompileTimeError # Issue 30177
+void_type_callbacks_test/01: MissingCompileTimeError # Issue 30177
 void_type_function_types_test/none: CompileTimeError # Issue 30177
-void_type_usage_test/param_as: CompileTimeError # Issue 30177
-void_type_usage_test/param_for: CompileTimeError # Issue 30177
-void_type_usage_test/none: CompileTimeError # Issue 30177
+void_type_override_test/none: CompileTimeError # Issue 30177
 void_type_usage_test/call_as: CompileTimeError # Issue 30177
-void_type_usage_test/call_stmt: CompileTimeError # Issue 30177
 void_type_usage_test/call_for: CompileTimeError # Issue 30177
-void_type_usage_test/local_stmt: CompileTimeError # Issue 30177
+void_type_usage_test/call_stmt: CompileTimeError # Issue 30177
+void_type_usage_test/field_assign: CompileTimeError # Issue 30177
+void_type_usage_test/field_assign2: CompileTimeError # Issue 30177
+void_type_usage_test/final_local_as: CompileTimeError # Issue 30177
+void_type_usage_test/final_local_for: CompileTimeError # Issue 30177
+void_type_usage_test/final_local_stmt: CompileTimeError # Issue 30177
+void_type_usage_test/global_as: CompileTimeError # Issue 30177
+void_type_usage_test/global_for: CompileTimeError # Issue 30177
+void_type_usage_test/global_for_in2: CompileTimeError # Issue 30177
+void_type_usage_test/global_stmt: CompileTimeError # Issue 30177
+void_type_usage_test/instance2_as: CompileTimeError # Issue 30177
+void_type_usage_test/instance2_for: CompileTimeError # Issue 30177
+void_type_usage_test/instance2_for_in3: CompileTimeError # Issue 30177
+void_type_usage_test/instance2_stmt: CompileTimeError # Issue 30177
+void_type_usage_test/instance3_as: CompileTimeError # Issue 30177
+void_type_usage_test/instance3_for: CompileTimeError # Issue 30177
+void_type_usage_test/instance3_for_in3: CompileTimeError # Issue 30177
+void_type_usage_test/instance3_stmt: CompileTimeError # Issue 30177
+void_type_usage_test/instance_as: CompileTimeError # Issue 30177
+void_type_usage_test/instance_for: CompileTimeError # Issue 30177
+void_type_usage_test/instance_stmt: CompileTimeError # Issue 30177
+void_type_usage_test/local_as: CompileTimeError # Issue 30177
 void_type_usage_test/local_assign: CompileTimeError # Issue 30177
 void_type_usage_test/local_for: CompileTimeError # Issue 30177
-void_type_usage_test/local_as: CompileTimeError # Issue 30177
-void_type_usage_test/param_stmt: CompileTimeError # Issue 30177
 void_type_usage_test/local_for_in2: CompileTimeError # Issue 30177
-void_type_usage_test/final_local_stmt: CompileTimeError # Issue 30177
-void_type_usage_test/final_local_for: CompileTimeError # Issue 30177
-void_type_usage_test/final_local_as: CompileTimeError # Issue 30177
-void_type_usage_test/global_stmt: CompileTimeError # Issue 30177
-void_type_usage_test/global_for: CompileTimeError # Issue 30177
-void_type_usage_test/global_as: CompileTimeError # Issue 30177
-void_type_usage_test/global_for_in2: CompileTimeError # Issue 30177
-void_type_usage_test/instance_stmt: CompileTimeError # Issue 30177
+void_type_usage_test/local_stmt: CompileTimeError # Issue 30177
+void_type_usage_test/none: CompileTimeError # Issue 30177
+void_type_usage_test/param_as: CompileTimeError # Issue 30177
+void_type_usage_test/param_for: CompileTimeError # Issue 30177
 void_type_usage_test/param_for_in2: CompileTimeError # Issue 30177
-void_type_usage_test/instance_for: CompileTimeError # Issue 30177
-void_type_usage_test/instance_as: CompileTimeError # Issue 30177
-void_type_usage_test/instance2_for_in3: CompileTimeError # Issue 30177
-void_type_usage_test/field_assign: CompileTimeError # Issue 30177
-void_type_usage_test/instance3_for_in3: CompileTimeError # Issue 30177
-void_type_usage_test/instance2_stmt: CompileTimeError # Issue 30177
-void_type_usage_test/instance2_for: CompileTimeError # Issue 30177
-void_type_usage_test/field_assign2: CompileTimeError # Issue 30177
-void_type_usage_test/instance2_as: CompileTimeError # Issue 30177
-void_type_usage_test/setter_assign: CompileTimeError # Issue 30177
-void_type_usage_test/instance3_stmt: CompileTimeError # Issue 30177
-void_type_usage_test/instance3_for: CompileTimeError # Issue 30177
-void_type_usage_test/instance3_as: CompileTimeError # Issue 30177
+void_type_usage_test/param_stmt: CompileTimeError # Issue 30177
 void_type_usage_test/paren_as: CompileTimeError # Issue 30177
-void_type_usage_test/paren_stmt: CompileTimeError # Issue 30177
 void_type_usage_test/paren_for: CompileTimeError # Issue 30177
-void_type_callbacks_test/01: MissingCompileTimeError # Issue 30177
-void_type_callbacks_test/00: MissingCompileTimeError # Issue 30177
-void_type_override_test/none: CompileTimeError # Issue 30177
+void_type_usage_test/paren_stmt: CompileTimeError # Issue 30177
+void_type_usage_test/setter_assign: CompileTimeError # Issue 30177
 
-[ ! $strong && $compiler == dart2analyzer ]
+[ $compiler == dart2analyzer && !$strong ]
 accessor_conflict_export2_test: StaticWarning # Issue 25626
 accessor_conflict_export_test: CompileTimeError
 accessor_conflict_export_test: StaticWarning # Issue 25626
@@ -1248,6 +1263,10 @@
 class_literal_test/24: MissingCompileTimeError
 class_literal_test/25: MissingCompileTimeError
 closure_type_test: Pass
+combiner_type_lookup_indexed_test: StaticWarning # Issue #31484
+combiner_type_lookup_instance_test: StaticWarning # Issue #31484
+combiner_type_lookup_static_test: StaticWarning # Issue #31484
+combiner_type_lookup_top_level_test: StaticWarning # Issue #31484
 compile_time_constant_o_test/01: MissingCompileTimeError
 compile_time_constant_o_test/02: MissingCompileTimeError
 conditional_method_invocation_test/05: MissingCompileTimeError
@@ -1302,15 +1321,17 @@
 const_types_test/05: MissingCompileTimeError
 const_types_test/06: MissingCompileTimeError
 const_types_test/13: MissingCompileTimeError
-const_types_test/35: MissingCompileTimeError
 const_types_test/34: MissingCompileTimeError
+const_types_test/35: MissingCompileTimeError
 const_types_test/39: MissingCompileTimeError
 const_types_test/40: MissingCompileTimeError
+constructor13_test/01: MissingCompileTimeError
+constructor13_test/02: MissingCompileTimeError
 constructor_duplicate_final_test/03: MissingCompileTimeError
 create_unresolved_type_test/01: MissingCompileTimeError
-generic_constructor_mixin_test/01: MissingCompileTimeError
 generic_constructor_mixin2_test/01: MissingCompileTimeError
 generic_constructor_mixin3_test/01: MissingCompileTimeError
+generic_constructor_mixin_test/01: MissingCompileTimeError
 generic_field_mixin6_test/01: MissingCompileTimeError
 generic_function_typedef2_test/04: MissingCompileTimeError
 generic_methods_generic_function_result_test/01: MissingCompileTimeError # Issue #30207
@@ -1348,26 +1369,29 @@
 if_null_assignment_static_test/42: MissingCompileTimeError
 if_null_precedence_test/06: MissingCompileTimeError
 if_null_precedence_test/07: MissingCompileTimeError
-import_combinators2_test/00: MissingCompileTimeError
-list_literal4_test/00: MissingCompileTimeError
-list_literal4_test/01: MissingCompileTimeError
-list_literal4_test/03: MissingCompileTimeError
-list_literal4_test/04: MissingCompileTimeError
-list_literal4_test/05: MissingCompileTimeError
-list_literal_syntax_test/01: MissingCompileTimeError
-list_literal_syntax_test/02: MissingCompileTimeError
-list_literal_syntax_test/03: MissingCompileTimeError
 implicit_this_test/01: MissingCompileTimeError
 implicit_this_test/02: MissingCompileTimeError
 implicit_this_test/04: MissingCompileTimeError
+import_combinators2_test/00: MissingCompileTimeError
 import_self_test/01: MissingCompileTimeError
 inferrer_constructor5_test/01: MissingCompileTimeError
 initializing_formal_type_test: MissingCompileTimeError
 instantiate_type_variable_test/01: StaticWarning
+int64_literal_test/03: MissingCompileTimeError
+int64_literal_test/30: MissingCompileTimeError
 interceptor6_test: StaticWarning
+invalid_cast_test/01: MissingCompileTimeError
+invalid_cast_test/02: MissingCompileTimeError
+invalid_cast_test/03: MissingCompileTimeError
+invalid_cast_test/04: MissingCompileTimeError
+invalid_cast_test/07: MissingCompileTimeError
+invalid_cast_test/08: MissingCompileTimeError
+invalid_cast_test/09: MissingCompileTimeError
+invalid_cast_test/10: MissingCompileTimeError
+invalid_cast_test/11: MissingCompileTimeError
 invocation_mirror_test: StaticWarning
-known_identifier_prefix_error_test/none: Pass
 known_identifier_prefix_error_test/*: MissingCompileTimeError # Error only in strong mode.
+known_identifier_prefix_error_test/none: Pass
 least_upper_bound_expansive_test/01: MissingCompileTimeError
 least_upper_bound_expansive_test/02: MissingCompileTimeError
 least_upper_bound_expansive_test/03: MissingCompileTimeError
@@ -1398,6 +1422,30 @@
 library_ambiguous_test/02: MissingCompileTimeError
 library_ambiguous_test/03: MissingCompileTimeError
 library_ambiguous_test/04: MissingCompileTimeError
+list_literal4_test/00: MissingCompileTimeError
+list_literal4_test/01: MissingCompileTimeError
+list_literal4_test/03: MissingCompileTimeError
+list_literal4_test/04: MissingCompileTimeError
+list_literal4_test/05: MissingCompileTimeError
+list_literal_syntax_test/01: MissingCompileTimeError
+list_literal_syntax_test/02: MissingCompileTimeError
+list_literal_syntax_test/03: MissingCompileTimeError
+local_function2_test/01: MissingCompileTimeError
+local_function2_test/02: MissingCompileTimeError
+local_function3_test/01: MissingCompileTimeError
+local_function_test/01: MissingCompileTimeError
+local_function_test/02: MissingCompileTimeError
+local_function_test/03: MissingCompileTimeError
+local_function_test/04: MissingCompileTimeError
+logical_expression3_test: MissingCompileTimeError
+malbounded_instantiation_test/01: MissingCompileTimeError
+malbounded_instantiation_test/02: MissingCompileTimeError
+malbounded_instantiation_test/03: MissingCompileTimeError
+malbounded_redirecting_factory_test/02: MissingCompileTimeError
+malbounded_redirecting_factory_test/03: MissingCompileTimeError
+malbounded_redirecting_factory_test/04: MissingCompileTimeError
+malbounded_redirecting_factory_test/05: MissingCompileTimeError
+malbounded_type_cast2_test: MissingCompileTimeError
 malbounded_type_cast_test/00: MissingCompileTimeError
 malbounded_type_cast_test/01: MissingCompileTimeError
 malbounded_type_cast_test/02: MissingCompileTimeError
@@ -1467,6 +1515,9 @@
 named_parameters_type_test/01: MissingCompileTimeError
 named_parameters_type_test/02: MissingCompileTimeError
 named_parameters_type_test/03: MissingCompileTimeError
+object_has_no_call_method_test/02: MissingCompileTimeError
+object_has_no_call_method_test/05: MissingCompileTimeError
+object_has_no_call_method_test/08: MissingCompileTimeError
 positional_parameters_type_test/01: MissingCompileTimeError
 positional_parameters_type_test/02: MissingCompileTimeError
 prefix13_negative_test: CompileTimeError, OK
@@ -1476,6 +1527,12 @@
 prefix18_negative_test: CompileTimeError, OK
 prefix22_test/00: MissingCompileTimeError
 prefix23_test/00: MissingCompileTimeError
+private_access_test/01: MissingCompileTimeError
+private_access_test/02: MissingCompileTimeError
+private_access_test/03: MissingCompileTimeError
+private_access_test/04: MissingCompileTimeError
+private_access_test/05: MissingCompileTimeError
+private_access_test/06: MissingCompileTimeError
 regress_12561_test: MissingCompileTimeError
 regress_13494_test: MissingCompileTimeError
 regress_17382_test: MissingCompileTimeError
@@ -1515,10 +1572,10 @@
 string_no_operator_test/15: MissingCompileTimeError
 string_no_operator_test/16: MissingCompileTimeError
 string_test/01: MissingCompileTimeError
-super_assign_test/01: MissingCompileTimeError
 substring_test/01: MissingCompileTimeError
-sync_generator1_test/01: MissingCompileTimeError
+super_assign_test/01: MissingCompileTimeError
 symbol_literal_test/01: MissingCompileTimeError
+sync_generator1_test/01: MissingCompileTimeError
 syntax_test/59: MissingCompileTimeError
 syntax_test/60: MissingCompileTimeError
 syntax_test/61: MissingCompileTimeError
@@ -1528,6 +1585,12 @@
 try_catch_on_syntax_test/07: MissingCompileTimeError
 try_catch_syntax_test/08: MissingCompileTimeError
 type_checks_in_factory_method_test/01: MissingCompileTimeError
+type_promotion_functions_test/01: MissingCompileTimeError
+type_promotion_functions_test/05: MissingCompileTimeError
+type_promotion_functions_test/06: MissingCompileTimeError
+type_promotion_functions_test/07: MissingCompileTimeError
+type_promotion_functions_test/08: MissingCompileTimeError
+type_promotion_functions_test/10: MissingCompileTimeError
 type_promotion_parameter_test/01: MissingCompileTimeError
 type_promotion_parameter_test/02: MissingCompileTimeError
 type_promotion_parameter_test/03: MissingCompileTimeError
@@ -1583,6 +1646,9 @@
 type_promotion_parameter_test/54: MissingCompileTimeError
 type_promotion_parameter_test/55: MissingCompileTimeError
 type_promotion_parameter_test/56: MissingCompileTimeError
+type_variable_bounds2_test: MissingCompileTimeError
+type_variable_bounds3_test/00: MissingCompileTimeError
+type_variable_bounds4_test/01: MissingCompileTimeError
 type_variable_bounds_test/00: MissingCompileTimeError
 type_variable_bounds_test/01: MissingCompileTimeError
 type_variable_bounds_test/02: MissingCompileTimeError
@@ -1595,9 +1661,6 @@
 type_variable_bounds_test/09: MissingCompileTimeError
 type_variable_bounds_test/10: MissingCompileTimeError
 type_variable_bounds_test/11: MissingCompileTimeError
-type_variable_bounds2_test: MissingCompileTimeError
-type_variable_bounds3_test/00: MissingCompileTimeError
-type_variable_bounds4_test/01: MissingCompileTimeError
 type_variable_conflict2_test/01: MissingCompileTimeError
 type_variable_conflict2_test/02: MissingCompileTimeError
 type_variable_conflict2_test/03: MissingCompileTimeError
@@ -1608,77 +1671,17 @@
 type_variable_conflict2_test/08: MissingCompileTimeError
 type_variable_conflict2_test/09: MissingCompileTimeError
 type_variable_conflict2_test/10: MissingCompileTimeError
+type_variable_scope2_test: MissingCompileTimeError
 type_variable_scope_test/00: MissingCompileTimeError
 type_variable_scope_test/01: MissingCompileTimeError
 type_variable_scope_test/02: MissingCompileTimeError
 type_variable_scope_test/03: MissingCompileTimeError
 type_variable_scope_test/04: MissingCompileTimeError
 type_variable_scope_test/05: MissingCompileTimeError
-type_variable_scope2_test: MissingCompileTimeError
 typed_selector2_test: MissingCompileTimeError
-private_access_test/01: MissingCompileTimeError
-private_access_test/02: MissingCompileTimeError
-private_access_test/03: MissingCompileTimeError
-private_access_test/04: MissingCompileTimeError
-private_access_test/05: MissingCompileTimeError
-private_access_test/06: MissingCompileTimeError
 unbound_getter_test: MissingCompileTimeError
 unresolved_default_constructor_test/01: MissingCompileTimeError
 unresolved_top_level_method_test: MissingCompileTimeError
 unresolved_top_level_var_test: MissingCompileTimeError
 vm/type_vm_test: StaticWarning
-local_function2_test/01: MissingCompileTimeError
-local_function2_test/02: MissingCompileTimeError
-local_function3_test/01: MissingCompileTimeError
-local_function_test/01: MissingCompileTimeError
-local_function_test/02: MissingCompileTimeError
-local_function_test/03: MissingCompileTimeError
-local_function_test/04: MissingCompileTimeError
-logical_expression3_test: MissingCompileTimeError
-malbounded_instantiation_test/01: MissingCompileTimeError
-malbounded_instantiation_test/02: MissingCompileTimeError
-malbounded_instantiation_test/03: MissingCompileTimeError
-malbounded_redirecting_factory_test/02: MissingCompileTimeError
-malbounded_redirecting_factory_test/03: MissingCompileTimeError
-malbounded_redirecting_factory_test/04: MissingCompileTimeError
-malbounded_redirecting_factory_test/05: MissingCompileTimeError
-malbounded_type_cast2_test: MissingCompileTimeError
-type_promotion_functions_test/01: MissingCompileTimeError
-type_promotion_functions_test/05: MissingCompileTimeError
-type_promotion_functions_test/06: MissingCompileTimeError
-type_promotion_functions_test/07: MissingCompileTimeError
-type_promotion_functions_test/08: MissingCompileTimeError
-type_promotion_functions_test/10: MissingCompileTimeError
 
-[ $compiler == dart2analyzer && $runtime == none ]
-assertion_initializer_const_error2_test/cc10: CompileTimeError # Issue 31320
-assertion_initializer_const_error2_test/cc11: CompileTimeError # Issue 31320
-assertion_initializer_const_function_test/01: CompileTimeError
-assertion_initializer_test: CompileTimeError
-error_stacktrace_test/00: MissingCompileTimeError
-vm/lazy_deopt_with_exception_test: CompileTimeError
-
-[ $compiler == dart2analyzer && $strong ]
-assertion_initializer_const_function_test/01: MissingStaticWarning
-constant_type_literal_test/01: MissingCompileTimeError # Issue 28823
-field3a_negative_test: StaticWarning # Issue 28823
-generic_methods_closure_test: CompileTimeError # Issue 29070
-generic_methods_overriding_test/01: MissingCompileTimeError # Issue 29070
-generic_methods_overriding_test/03: MissingCompileTimeError # Issue 29070
-generic_methods_shadowing_test: CompileTimeError # Issue 29070
-generic_methods_simple_is_expression_test: CompileTimeError # Issue 29070
-generic_methods_local_variable_declaration_test: CompileTimeError # Issue 29070
-generic_methods_type_expression_test: CompileTimeError # Incorrectly disallows type parameter in "is" test.
-instantiate_type_variable_test/01: CompileTimeError
-no_main_test/01: MissingStaticWarning # Issue 28823
-no_such_method_negative_test: CompileTimeError
-string_interpolate_test: CompileTimeError
-super_setter_test: StaticWarning # Issue 28823
-reify_typevar_static_test/00: MissingCompileTimeError # Issue 28823
-
-[$compiler == dart2analyzer]
-vm/regress_27201_test: SkipByDesign # Loads bad library, so will always crash.
-generic_function_type_as_type_argument_test/01: MissingCompileTimeError # Issue 30929
-generic_function_type_as_type_argument_test/02: MissingCompileTimeError # Issue 30929
-regress_29784_test/02: MissingCompileTimeError # Issue 29784
-config_import_corelib_test: StaticWarning, OK
diff --git a/tests/language_2/language_2_dart2js.status b/tests/language_2/language_2_dart2js.status
index 08cc5c2..4559a25 100644
--- a/tests/language_2/language_2_dart2js.status
+++ b/tests/language_2/language_2_dart2js.status
@@ -1,15 +1,9 @@
 # Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
-
 # Sections in this file should contain "$compiler == dart2js".
 
 [ $compiler == dart2js ]
-vm/*: SkipByDesign # Tests for the VM.
-int64_literal_test/*: Skip # This is testing Dart 2.0 int64 semantics.
-
-# dart2js does not implement the Dart 2.0 static type errors yet.
-[ $compiler == dart2js ]
 abstract_beats_arguments_test: MissingCompileTimeError
 abstract_exact_selector_test/01: MissingCompileTimeError
 abstract_factory_constructor_test/00: MissingCompileTimeError
@@ -42,15 +36,15 @@
 async_await_syntax_test/c10a: MissingCompileTimeError
 async_await_syntax_test/d08b: MissingCompileTimeError
 async_await_syntax_test/d10a: MissingCompileTimeError
-async_congruence_local_test/none: RuntimeError
 async_congruence_local_test/01: MissingCompileTimeError
 async_congruence_local_test/02: MissingCompileTimeError
-async_congruence_method_test/none: RuntimeError
+async_congruence_local_test/none: RuntimeError
 async_congruence_method_test/01: MissingCompileTimeError
+async_congruence_method_test/none: RuntimeError
 async_congruence_top_level_test: RuntimeError
-async_congruence_unnamed_test/none: RuntimeError
 async_congruence_unnamed_test/01: MissingCompileTimeError
 async_congruence_unnamed_test/02: MissingCompileTimeError
+async_congruence_unnamed_test/none: RuntimeError
 async_or_generator_return_type_stacktrace_test/01: MissingCompileTimeError
 async_or_generator_return_type_stacktrace_test/02: MissingCompileTimeError
 async_or_generator_return_type_stacktrace_test/03: MissingCompileTimeError
@@ -148,6 +142,7 @@
 example_constructor_test: RuntimeError
 external_test/21: CompileTimeError
 external_test/24: CompileTimeError
+extract_type_arguments_test: CompileTimeError # Issue 31371
 f_bounded_quantification_test/01: MissingCompileTimeError
 f_bounded_quantification_test/02: MissingCompileTimeError
 factory1_test/00: MissingCompileTimeError
@@ -248,8 +243,8 @@
 generic_methods_tearoff_specialization_test: RuntimeError
 generic_methods_type_expression_test: RuntimeError
 generic_methods_unused_parameter_test: RuntimeError
+generic_no_such_method_dispatcher_simple_test: Skip # This test is just for kernel.
 generic_no_such_method_dispatcher_test: RuntimeError
-generic_no_such_method_dispatcher_simple_test: Skip  # This test is just for kernel.
 generic_tearoff_test: RuntimeError
 getter_no_setter2_test/00: MissingCompileTimeError
 getter_no_setter2_test/01: MissingCompileTimeError
@@ -300,6 +295,7 @@
 inferrer_constructor5_test/01: MissingCompileTimeError
 initializing_formal_final_test: MissingCompileTimeError
 initializing_formal_type_test: MissingCompileTimeError
+int64_literal_test/*: Skip # This is testing Dart 2.0 int64 semantics.
 interface_test/00: MissingCompileTimeError
 least_upper_bound_expansive_test/01: MissingCompileTimeError
 least_upper_bound_expansive_test/02: MissingCompileTimeError
@@ -329,7 +325,6 @@
 library_ambiguous_test/03: MissingCompileTimeError
 library_ambiguous_test/04: MissingCompileTimeError
 library_env_test/has_no_html_support: RuntimeError, OK
-
 library_env_test/has_no_io_support: RuntimeError, OK
 library_env_test/has_no_mirror_support: RuntimeError, OK
 local_function2_test/01: MissingCompileTimeError
@@ -757,268 +752,163 @@
 unresolved_in_factory_test: MissingCompileTimeError
 unresolved_top_level_method_test: MissingCompileTimeError
 unresolved_top_level_var_test: MissingCompileTimeError
+vm/*: SkipByDesign # Tests for the VM.
 void_block_return_test/00: MissingCompileTimeError
 wrong_number_type_arguments_test/*: MissingCompileTimeError
 
 [ $compiler != dart2js ]
 minify_closure_variable_collision_test: SkipByDesign # Regression test for dart2js
 
-[ $compiler == dart2js && $runtime != none && !$dart2js_with_kernel ]
-accessor_conflict_import2_test: RuntimeError # Issue 25626
-accessor_conflict_import_prefixed2_test: RuntimeError # Issue 25626
-accessor_conflict_import_prefixed_test: RuntimeError # Issue 25626
-accessor_conflict_import_test: RuntimeError # Issue 25626
-assertion_test: RuntimeError # Issue 30326
-async_star_test/02: RuntimeError
-bit_operations_test: RuntimeError, OK # Issue 1533
-branch_canonicalization_test: RuntimeError # Issue 638.
-covariant_override/runtime_check_test: RuntimeError
-function_type_alias_test: RuntimeError
-generic_closure_test: RuntimeError
-generic_function_typedef_test/01: RuntimeError
-generic_instanceof_test: RuntimeError
-generic_typedef_test: RuntimeError
-implicit_downcast_during_assert_initializer_test: CompileTimeError
-implicit_downcast_during_for_in_iterable_test: RuntimeError
-implicit_downcast_during_function_literal_arrow_test: RuntimeError
-implicit_downcast_during_function_literal_return_test: RuntimeError
-implicit_downcast_during_list_literal_test: RuntimeError
-implicit_downcast_during_redirecting_initializer_test: RuntimeError
-implicit_downcast_during_return_async_test: RuntimeError
-implicit_downcast_during_super_initializer_test: RuntimeError
-implicit_downcast_during_yield_star_test: RuntimeError
-implicit_downcast_during_yield_test: RuntimeError
-instanceof2_test: RuntimeError
-instanceof4_test/01: RuntimeError
-instanceof4_test/none: RuntimeError
-many_generic_instanceof_test: RuntimeError
-map_literal8_test: RuntimeError
-mixin_forwarding_constructor4_test/01: MissingCompileTimeError # Issue 15101
-mixin_forwarding_constructor4_test/02: MissingCompileTimeError # Issue 15101
-mixin_forwarding_constructor4_test/03: MissingCompileTimeError # Issue 15101
-not_enough_positional_arguments_test/00: MissingCompileTimeError
-not_enough_positional_arguments_test/03: MissingCompileTimeError
-not_enough_positional_arguments_test/06: MissingCompileTimeError
-not_enough_positional_arguments_test/07: MissingCompileTimeError
-null_test/mirrors: Skip # Uses mirrors.
-ref_before_declaration_test/00: MissingCompileTimeError
-ref_before_declaration_test/01: MissingCompileTimeError
-ref_before_declaration_test/02: MissingCompileTimeError
-ref_before_declaration_test/03: MissingCompileTimeError
-ref_before_declaration_test/04: MissingCompileTimeError
-ref_before_declaration_test/05: MissingCompileTimeError
-ref_before_declaration_test/06: MissingCompileTimeError
-regress_28341_test: Fail # Issue 28340
-symbol_literal_test/none: CompileTimeError
-tearoff_dynamic_test: RuntimeError
-truncdiv_test: RuntimeError # Issue 15246
-type_literal_test: RuntimeError
-vm/*: SkipByDesign # Tests for the VM.
+[ $compiler == dart2js && $runtime == chrome ]
+field_override_optimization_test: RuntimeError
+field_type_check2_test/01: MissingRuntimeError
 
-[ $compiler == dart2js && !$dart2js_with_kernel ]
-accessor_conflict_export2_test: Crash # Issue 25626
-accessor_conflict_export_test: Crash # Issue 25626
-assertion_initializer_const_error2_test/none: Pass
-assertion_initializer_const_error2_test/*: Crash # Issue 30038
-assertion_initializer_test: Crash
-bad_constructor_test/05: CompileTimeError
-bad_typedef_test/00: Crash # Issue 28214
-built_in_identifier_type_annotation_test/13: Crash # Issue 28815
-built_in_identifier_type_annotation_test/22: MissingCompileTimeError # Error only in strong mode
-built_in_identifier_type_annotation_test/30: Crash # Issue 28815
-built_in_identifier_type_annotation_test/52: Crash # Issue 28815
-built_in_identifier_type_annotation_test/53: Crash # Issue 28815
-built_in_identifier_type_annotation_test/54: Crash # Issue 28815
-built_in_identifier_type_annotation_test/55: Crash # Issue 28815
-built_in_identifier_type_annotation_test/57: Crash # Issue 28815
-built_in_identifier_type_annotation_test/58: Crash # Issue 28815
-built_in_identifier_type_annotation_test/59: Crash # Issue 28815
-built_in_identifier_type_annotation_test/60: Crash # Issue 28815
-built_in_identifier_type_annotation_test/61: Crash # Issue 28815
-built_in_identifier_type_annotation_test/62: Crash # Issue 28815
-built_in_identifier_type_annotation_test/63: Crash # Issue 28815
-built_in_identifier_type_annotation_test/64: Crash # Issue 28815
-built_in_identifier_type_annotation_test/65: Crash # Issue 28815
-built_in_identifier_type_annotation_test/66: Crash # Issue 28815
-built_in_identifier_type_annotation_test/67: Crash # Issue 28815
-built_in_identifier_type_annotation_test/68: Crash # Issue 28815
-built_in_identifier_type_annotation_test/81: Crash # Issue 28815
-call_function_apply_test: RuntimeError # Issue 23873
-canonical_const2_test: RuntimeError, OK # Issue 1533
-compile_time_constant_o_test/01: MissingCompileTimeError
-compile_time_constant_o_test/02: MissingCompileTimeError
-conditional_method_invocation_test/05: MissingCompileTimeError
-conditional_method_invocation_test/06: MissingCompileTimeError
-conditional_method_invocation_test/07: MissingCompileTimeError
-conditional_method_invocation_test/08: MissingCompileTimeError
-conditional_method_invocation_test/12: MissingCompileTimeError
-conditional_method_invocation_test/13: MissingCompileTimeError
-conditional_method_invocation_test/18: MissingCompileTimeError
-conditional_method_invocation_test/19: MissingCompileTimeError
-conditional_property_access_test/04: MissingCompileTimeError
-conditional_property_access_test/05: MissingCompileTimeError
-conditional_property_access_test/06: MissingCompileTimeError
-conditional_property_access_test/10: MissingCompileTimeError
-conditional_property_access_test/11: MissingCompileTimeError
-conditional_property_access_test/16: MissingCompileTimeError
-conditional_property_access_test/17: MissingCompileTimeError
-conditional_property_assignment_test/04: MissingCompileTimeError
-conditional_property_assignment_test/05: MissingCompileTimeError
-conditional_property_assignment_test/06: MissingCompileTimeError
-conditional_property_assignment_test/10: MissingCompileTimeError
-conditional_property_assignment_test/11: MissingCompileTimeError
-conditional_property_assignment_test/12: MissingCompileTimeError
-conditional_property_assignment_test/13: MissingCompileTimeError
-conditional_property_assignment_test/27: MissingCompileTimeError
-conditional_property_assignment_test/28: MissingCompileTimeError
-conditional_property_assignment_test/32: MissingCompileTimeError
-conditional_property_assignment_test/33: MissingCompileTimeError
-conditional_property_assignment_test/34: MissingCompileTimeError
-conditional_property_assignment_test/35: MissingCompileTimeError
-conditional_property_increment_decrement_test/04: MissingCompileTimeError
-conditional_property_increment_decrement_test/08: MissingCompileTimeError
-conditional_property_increment_decrement_test/12: MissingCompileTimeError
-conditional_property_increment_decrement_test/16: MissingCompileTimeError
-conditional_property_increment_decrement_test/21: MissingCompileTimeError
-conditional_property_increment_decrement_test/22: MissingCompileTimeError
-conditional_property_increment_decrement_test/27: MissingCompileTimeError
-conditional_property_increment_decrement_test/28: MissingCompileTimeError
-conditional_property_increment_decrement_test/33: MissingCompileTimeError
-conditional_property_increment_decrement_test/34: MissingCompileTimeError
-conditional_property_increment_decrement_test/39: MissingCompileTimeError
-conditional_property_increment_decrement_test/40: MissingCompileTimeError
-const_constructor2_test/05: MissingCompileTimeError
-const_constructor2_test/06: MissingCompileTimeError
-const_types_test/01: MissingCompileTimeError
-const_types_test/02: MissingCompileTimeError
-const_types_test/03: MissingCompileTimeError
-const_types_test/04: MissingCompileTimeError
-const_types_test/05: MissingCompileTimeError
-const_types_test/06: MissingCompileTimeError
-const_types_test/13: MissingCompileTimeError
-const_types_test/34: MissingCompileTimeError
-const_types_test/35: MissingCompileTimeError
-const_types_test/39: MissingCompileTimeError
-const_types_test/40: MissingCompileTimeError
-const_switch_test/02: RuntimeError # Issue 17960
-const_switch_test/04: RuntimeError # Issue 17960
-deferred_constraints_type_annotation_test/as_operation: MissingCompileTimeError
-deferred_constraints_type_annotation_test/catch_check: MissingCompileTimeError
-deferred_constraints_type_annotation_test/is_check: MissingCompileTimeError
-deferred_constraints_type_annotation_test/new_before_load: MissingCompileTimeError
-deferred_constraints_type_annotation_test/new_generic2: MissingCompileTimeError
-deferred_constraints_type_annotation_test/new_generic3: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation1: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_generic1: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_generic2: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_generic3: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_generic4: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_null: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_top_level: MissingCompileTimeError
-deferred_not_loaded_check_test: Fail # Issue 27577
-double_int_to_string_test: RuntimeError # Issue 1533
-enum_test: Fail # Issue 28340
-final_attempt_reinitialization_test.dart: Skip # Issue 29659
-final_field_override_test: RuntimeError
-generalized_void_syntax_test: CompileTimeError # Issue #30176.
-generic_field_mixin4_test: Crash # Issue 18651
-generic_field_mixin5_test: Crash # Issue 18651
-generic_function_typedef2_test/00: MissingCompileTimeError # Issue 28214
-generic_function_typedef2_test/01: MissingCompileTimeError # Issue 28214
-generic_function_typedef2_test/02: MissingCompileTimeError # Issue 28214
-generic_function_typedef2_test/03: MissingCompileTimeError # Issue 28214
-generic_function_typedef2_test/05: Crash # Issue 28214
-generic_function_typedef2_test/06: Crash # Issue 28214
-generic_methods_local_variable_declaration_test: RuntimeError
-getter_setter_in_lib_test: Fail # Issue 23288
-identical_closure2_test: RuntimeError # Issue 1533, Issue 12596
-if_null_assignment_behavior_test/13: Crash # Issue 23491
-if_null_assignment_behavior_test/14: Crash # Issue 23491
-infinity_test: RuntimeError # Issue 4984
-integer_division_by_zero_test: RuntimeError # Issue 8301
-invocation_mirror2_test: RuntimeError # Issue 6490 (wrong retval).
-method_name_test: Fail # issue 25574
-method_override5_test: RuntimeError # Issue 12809
-mint_arithmetic_test: RuntimeError # Issue 1533
-mixin_of_mixin_test/none: CompileTimeError
-mixin_super_2_test/none: CompileTimeError
-mixin_super_bound2_test: CompileTimeError # Issue 23773
-mixin_mixin_type_arguments_test: RuntimeError # Issue 29587
-mixin_mixin2_test: RuntimeError # Issue 13109.
-mixin_mixin3_test: RuntimeError # Issue 13109.
-mixin_super_constructor_named_test/01: Fail # Issue 15101
-mixin_super_constructor_positionals_test/01: Fail # Issue 15101
-mixin_super_test: CompileTimeError # Issue 23773
-mixin_super_use_test: CompileTimeError # Issue 23773
-mixin_superclass_test: CompileTimeError # Issue 23773
-mixin_supertype_subclass2_test: CompileTimeError # Issue 23773
-mixin_supertype_subclass3_test: CompileTimeError # Issue 23773
-mixin_supertype_subclass4_test: CompileTimeError # Issue 23773
-mixin_type_parameters_super_test: RuntimeError
-mixin_with_two_implicit_constructors_test: MissingCompileTimeError
-mock_writable_final_private_field_test: CompileTimeError # Issue 17526
-modulo_test: RuntimeError # Issue 15246
-multiline_newline_test/01: CompileTimeError # Issue 23888
-multiline_newline_test/01r: CompileTimeError # Issue 23888
-multiline_newline_test/02: CompileTimeError # Issue 23888
-multiline_newline_test/02r: CompileTimeError # Issue 23888
-multiline_newline_test/03: RuntimeError
-multiline_newline_test/03r: RuntimeError
-multiline_newline_test/04: MissingCompileTimeError # Issue 23888
-multiline_newline_test/04r: MissingCompileTimeError # Issue 23888
-multiline_newline_test/05: MissingCompileTimeError # Issue 23888
-multiline_newline_test/05r: MissingCompileTimeError # Issue 23888
-multiline_newline_test/none: RuntimeError # Issue 23888
-number_identity2_test: RuntimeError # Issue 12596
-left_shift_test: RuntimeError # Issue 1533
-numbers_test: RuntimeError, OK # Issue 1533
-full_stacktrace1_test: Pass, RuntimeError # Issue 12698
-full_stacktrace2_test: Pass, RuntimeError # Issue 12698
-nan_identical_test: Fail # Issue 11551
-object_has_no_call_method_test/02: MissingCompileTimeError
-object_has_no_call_method_test/05: MissingCompileTimeError
-object_has_no_call_method_test/08: MissingCompileTimeError
-positional_parameters_type_test/01: MissingCompileTimeError
-positional_parameters_type_test/02: MissingCompileTimeError
-stacktrace_test: Pass, RuntimeError # # Issue 12698
-stacktrace_rethrow_nonerror_test: Pass, RuntimeError # Issue 12698
-stacktrace_rethrow_error_test: Pass, RuntimeError # Issue 12698
-type_variable_conflict_test/01: Fail # Issue 13702
-type_variable_conflict_test/02: Fail # Issue 13702
-type_variable_conflict_test/03: Fail # Issue 13702
-type_variable_conflict_test/04: Fail # Issue 13702
-type_variable_conflict_test/05: Fail # Issue 13702
-type_variable_conflict_test/06: Fail # Issue 13702
-scope_variable_test/01: MissingCompileTimeError # Issue 13016
-list_literal4_test/00: MissingCompileTimeError
-list_literal4_test/01: MissingCompileTimeError
-list_literal4_test/03: MissingCompileTimeError
-list_literal4_test/04: MissingCompileTimeError
-list_literal4_test/05: MissingCompileTimeError
-list_literal_syntax_test/01: MissingCompileTimeError
-list_literal_syntax_test/02: MissingCompileTimeError
-list_literal_syntax_test/03: MissingCompileTimeError
-try_catch_on_syntax_test/10: Fail # Issue 19823
-try_catch_on_syntax_test/11: Fail # Issue 19823
-regress_22976_test: CompileTimeError # Issue 23132
-regress_24283_test: RuntimeError # Issue 1533
-external_test/10: CompileTimeError # Issue 12887
-external_test/13: CompileTimeError # Issue 12887
-external_test/20: CompileTimeError # Issue 12887
-expect_test: RuntimeError, OK # Issue 13080
-setter4_test: CompileTimeError # issue 13639
-stacktrace_demangle_ctors_test: Fail # dart2js stack traces are not always compliant.
-truncdiv_test: RuntimeError # Issue 15246
-const_dynamic_type_literal_test/03: CompileTimeError # Issue 23009
-full_stacktrace3_test: Pass, RuntimeError # Issue 12698
+[ $compiler == dart2js && $runtime == chrome && $system == macos && !$dart2js_with_kernel ]
+await_future_test: Pass, Timeout # Issue 26735
+
+[ $compiler == dart2js && $runtime == chrome && !$dart2js_with_kernel ]
+enum_mirror_test: Pass
+
+[ $compiler == dart2js && $runtime == chromeOnAndroid && !$dart2js_with_kernel ]
+override_field_test/02: Pass, Slow # TODO(kasperl): Please triage.
+
+[ $compiler == dart2js && $runtime == d8 && $checked && !$dart2js_with_kernel ]
+factory_implementation_test/00: Fail
+regress_30339_test: RuntimeError # Issue 26429
+
+[ $compiler == dart2js && $runtime == d8 && !$checked ]
+field_override_optimization_test: RuntimeError
+field_type_check2_test/01: MissingRuntimeError
+
+[ $compiler == dart2js && $runtime == drt && $checked && !$dart2js_with_kernel ]
+regress_30339_test: RuntimeError # Issue 30393
+
+[ $compiler == dart2js && $runtime == drt && !$checked && !$dart2js_with_kernel ]
+field_override_optimization_test: RuntimeError
+field_type_check2_test/01: MissingRuntimeError
+
+[ $compiler == dart2js && $runtime != drt && !$dart2js_with_kernel ]
+issue23244_test: RuntimeError # 23244
+
+[ $compiler == dart2js && $runtime == ff && !$dart2js_with_kernel ]
+field_override_optimization_test: RuntimeError
+field_type_check2_test/01: MissingRuntimeError
+round_test: Pass, Fail, OK # Fixed in ff 35. Common JavaScript engine Math.round bug.
+
+[ $compiler == dart2js && $runtime == jsshell ]
+async_star_test/01: RuntimeError
+async_star_test/02: RuntimeError
+async_star_test/03: RuntimeError
+async_star_test/04: RuntimeError
+async_star_test/05: RuntimeError
+async_star_test/none: RuntimeError
+field_override_optimization_test: RuntimeError
+field_type_check2_test/01: MissingRuntimeError
+
+[ $compiler == dart2js && $runtime == jsshell && !$dart2js_with_kernel ]
+async_star_await_pauses_test: RuntimeError # Need triage
+async_star_no_cancel2_test: RuntimeError # Need triage
+async_star_no_cancel_test: RuntimeError # Need triage
+await_for_test: Skip # Jsshell does not provide periodic timers, Issue 7728
+regress_23996_test: RuntimeError # Jsshell does not provide non-zero timers, Issue 7728
+
+[ $compiler == dart2js && $runtime != none ]
+covariant_subtyping_with_substitution_test: RuntimeError
+covariant_tear_off_type_test: RuntimeError
+
+[ $compiler == dart2js && $runtime != none && $checked ]
+assert_with_message_test: RuntimeError
+function_subtype_bound_closure3_test: RuntimeError
+function_subtype_bound_closure4_test: RuntimeError
+function_subtype_bound_closure7_test: RuntimeError
+function_subtype_call1_test: RuntimeError
+function_subtype_call2_test: RuntimeError
+function_subtype_cast1_test: RuntimeError
+function_subtype_named1_test: RuntimeError
+function_subtype_named2_test: RuntimeError
+function_subtype_not1_test: RuntimeError
+function_subtype_optional1_test: RuntimeError
+function_subtype_optional2_test: RuntimeError
+function_subtype_typearg2_test: RuntimeError
+function_subtype_typearg3_test: RuntimeError
+function_subtype_typearg5_test: RuntimeError
+function_type/function_type0_test: RuntimeError # Issue 30476
+function_type/function_type10_test: RuntimeError # Issue 30476
+function_type/function_type12_test: RuntimeError # Issue 30476
+function_type/function_type13_test: RuntimeError # Issue 30476
+function_type/function_type14_test: RuntimeError # Issue 30476
+function_type/function_type15_test: RuntimeError # Issue 30476
+function_type/function_type16_test: RuntimeError # Issue 30476
+function_type/function_type17_test: RuntimeError # Issue 30476
+function_type/function_type18_test: RuntimeError # Issue 30476
+function_type/function_type19_test: RuntimeError # Issue 30476
+function_type/function_type1_test: RuntimeError # Issue 30476
+function_type/function_type20_test: RuntimeError # Issue 30476
+function_type/function_type21_test: RuntimeError # Issue 30476
+function_type/function_type22_test: RuntimeError # Issue 30476
+function_type/function_type24_test: RuntimeError # Issue 30476
+function_type/function_type25_test: RuntimeError # Issue 30476
+function_type/function_type26_test: RuntimeError # Issue 30476
+function_type/function_type27_test: RuntimeError # Issue 30476
+function_type/function_type28_test: RuntimeError # Issue 30476
+function_type/function_type29_test: RuntimeError # Issue 30476
+function_type/function_type2_test: RuntimeError # Issue 30476
+function_type/function_type30_test: RuntimeError # Issue 30476
+function_type/function_type31_test: RuntimeError # Issue 30476
+function_type/function_type32_test: RuntimeError # Issue 30476
+function_type/function_type33_test: RuntimeError # Issue 30476
+function_type/function_type34_test: RuntimeError # Issue 30476
+function_type/function_type36_test: RuntimeError # Issue 30476
+function_type/function_type3_test: RuntimeError # Issue 30476
+function_type/function_type44_test: RuntimeError # Issue 30476
+function_type/function_type45_test: RuntimeError # Issue 30476
+function_type/function_type46_test: RuntimeError # Issue 30476
+function_type/function_type47_test: RuntimeError # Issue 30476
+function_type/function_type48_test: RuntimeError # Issue 30476
+function_type/function_type49_test: RuntimeError # Issue 30476
+function_type/function_type4_test: RuntimeError # Issue 30476
+function_type/function_type50_test: RuntimeError # Issue 30476
+function_type/function_type51_test: RuntimeError # Issue 30476
+function_type/function_type52_test: RuntimeError # Issue 30476
+function_type/function_type53_test: RuntimeError # Issue 30476
+function_type/function_type54_test: RuntimeError # Issue 30476
+function_type/function_type56_test: RuntimeError # Issue 30476
+function_type/function_type57_test: RuntimeError # Issue 30476
+function_type/function_type58_test: RuntimeError # Issue 30476
+function_type/function_type59_test: RuntimeError # Issue 30476
+function_type/function_type5_test: RuntimeError # Issue 30476
+function_type/function_type60_test: RuntimeError # Issue 30476
+function_type/function_type61_test: RuntimeError # Issue 30476
+function_type/function_type62_test: RuntimeError # Issue 30476
+function_type/function_type63_test: RuntimeError # Issue 30476
+function_type/function_type64_test: RuntimeError # Issue 30476
+function_type/function_type65_test: RuntimeError # Issue 30476
+function_type/function_type66_test: RuntimeError # Issue 30476
+function_type/function_type6_test: RuntimeError # Issue 30476
+function_type/function_type7_test: RuntimeError # Issue 30476
+function_type/function_type80_test: RuntimeError # Issue 30476
+function_type/function_type81_test: RuntimeError # Issue 30476
+function_type/function_type82_test: RuntimeError # Issue 30476
+function_type/function_type83_test: RuntimeError # Issue 30476
+function_type/function_type84_test: RuntimeError # Issue 30476
+function_type/function_type85_test: RuntimeError # Issue 30476
+function_type/function_type86_test: RuntimeError # Issue 30476
+function_type/function_type87_test: RuntimeError # Issue 30476
+function_type/function_type88_test: RuntimeError # Issue 30476
+function_type/function_type89_test: RuntimeError # Issue 30476
+function_type/function_type8_test: RuntimeError # Issue 30476
+function_type/function_type90_test: RuntimeError # Issue 30476
+function_type/function_type96_test: RuntimeError # Issue 30476
+function_type/function_type9_test: RuntimeError # Issue 30476
+function_type_alias2_test: RuntimeError
 
 [ $compiler == dart2js && $runtime != none && !$checked && !$dart2js_with_kernel ]
 callable_test/none: RuntimeError
 cascaded_forwarding_stubs_generic_test: RuntimeError
 cascaded_forwarding_stubs_test: RuntimeError
-checked_setter_test: RuntimeError
 checked_setter2_test: RuntimeError
 checked_setter3_test: RuntimeError
+checked_setter_test: RuntimeError
 covariant_subtyping_tearoff1_test: RuntimeError
 covariant_subtyping_tearoff2_test: RuntimeError
 covariant_subtyping_tearoff3_test: RuntimeError
@@ -1095,143 +985,97 @@
 type_parameter_test/05: MissingCompileTimeError
 typevariable_substitution2_test/02: RuntimeError
 
-[ $compiler == dart2js && !$checked && !$enable_asserts && !$dart2js_with_kernel && $runtime != none ]
+[ $compiler == dart2js && $runtime != none && !$checked && !$dart2js_with_kernel && !$enable_asserts ]
 assertion_test: RuntimeError # Issue 12748
-typevariable_substitution2_test/02: RuntimeError
 runtime_type_function_test: Pass, RuntimeError # Issue 27394
+typevariable_substitution2_test/02: RuntimeError
 
-[ $compiler == dart2js && !$checked && !$dart2js_with_kernel ]
-bool_check_test: RuntimeError # Issue 29647
-bool_condition_check_test: RuntimeError
-const_constructor2_test/13: MissingCompileTimeError
-const_constructor2_test/14: MissingCompileTimeError
-const_constructor2_test/15: MissingCompileTimeError
-const_constructor2_test/16: MissingCompileTimeError
-const_constructor2_test/17: MissingCompileTimeError
-const_constructor2_test/18: MissingCompileTimeError
-const_constructor2_test/20: MissingCompileTimeError
-const_constructor2_test/22: MissingCompileTimeError
-const_constructor2_test/24: MissingCompileTimeError
-const_constructor3_test/02: MissingCompileTimeError
-const_constructor3_test/04: MissingCompileTimeError
-const_init2_test/02: MissingCompileTimeError
-function_subtype_inline2_test: RuntimeError
-generic_test: RuntimeError, OK
-list_literal1_test/01: MissingCompileTimeError
+[ $compiler == dart2js && $runtime != none && !$dart2js_with_kernel ]
+accessor_conflict_import2_test: RuntimeError # Issue 25626
+accessor_conflict_import_prefixed2_test: RuntimeError # Issue 25626
+accessor_conflict_import_prefixed_test: RuntimeError # Issue 25626
+accessor_conflict_import_test: RuntimeError # Issue 25626
+assertion_test: RuntimeError # Issue 30326
+async_star_cancel_while_paused_test: RuntimeError # Issue 22853
+async_star_test/02: RuntimeError
+bit_operations_test: RuntimeError, OK # Issue 1533
+branch_canonicalization_test: RuntimeError # Issue 638.
+covariant_override/runtime_check_test: RuntimeError
+function_type_alias_test: RuntimeError
+generic_closure_test: RuntimeError
+generic_function_typedef_test/01: RuntimeError
+generic_instanceof_test: RuntimeError
+generic_typedef_test: RuntimeError
+implicit_downcast_during_assert_initializer_test: CompileTimeError
+implicit_downcast_during_for_in_iterable_test: RuntimeError
+implicit_downcast_during_function_literal_arrow_test: RuntimeError
+implicit_downcast_during_function_literal_return_test: RuntimeError
+implicit_downcast_during_list_literal_test: RuntimeError
+implicit_downcast_during_redirecting_initializer_test: RuntimeError
+implicit_downcast_during_return_async_test: RuntimeError
+implicit_downcast_during_super_initializer_test: RuntimeError
+implicit_downcast_during_yield_star_test: RuntimeError
+implicit_downcast_during_yield_test: RuntimeError
+instanceof2_test: RuntimeError
+instanceof4_test/01: RuntimeError
+instanceof4_test/none: RuntimeError
+invalid_cast_test/01: MissingCompileTimeError
+invalid_cast_test/02: MissingCompileTimeError
+invalid_cast_test/03: MissingCompileTimeError
+invalid_cast_test/04: MissingCompileTimeError
+invalid_cast_test/07: MissingCompileTimeError
+invalid_cast_test/08: MissingCompileTimeError
+invalid_cast_test/09: MissingCompileTimeError
+invalid_cast_test/10: MissingCompileTimeError
+invalid_cast_test/11: MissingCompileTimeError
+many_generic_instanceof_test: RuntimeError
+map_literal8_test: RuntimeError
+mixin_forwarding_constructor4_test/01: MissingCompileTimeError # Issue 15101
+mixin_forwarding_constructor4_test/02: MissingCompileTimeError # Issue 15101
+mixin_forwarding_constructor4_test/03: MissingCompileTimeError # Issue 15101
+not_enough_positional_arguments_test/00: MissingCompileTimeError
+not_enough_positional_arguments_test/03: MissingCompileTimeError
+not_enough_positional_arguments_test/06: MissingCompileTimeError
+not_enough_positional_arguments_test/07: MissingCompileTimeError
+null_test/mirrors: Skip # Uses mirrors.
+ref_before_declaration_test/00: MissingCompileTimeError
+ref_before_declaration_test/01: MissingCompileTimeError
+ref_before_declaration_test/02: MissingCompileTimeError
+ref_before_declaration_test/03: MissingCompileTimeError
+ref_before_declaration_test/04: MissingCompileTimeError
+ref_before_declaration_test/05: MissingCompileTimeError
+ref_before_declaration_test/06: MissingCompileTimeError
+regress_28341_test: Fail # Issue 28340
+symbol_literal_test/none: CompileTimeError
+tearoff_dynamic_test: RuntimeError
+truncdiv_test: RuntimeError # Issue 15246
+type_literal_test: RuntimeError
+vm/*: SkipByDesign # Tests for the VM.
 
-[ $compiler == dart2js && !$checked && $minified && !$dart2js_with_kernel ]
-function_subtype_inline2_test: RuntimeError
+[ $compiler == dart2js && $runtime == safari && !$dart2js_with_kernel ]
+field_override_optimization_test: RuntimeError
+field_type_check2_test/01: MissingRuntimeError
+round_test: Fail, OK # Common JavaScript engine Math.round bug.
 
-[ $compiler == dart2js && $minified ]
-cyclic_type2_test: RuntimeError # Issue 31054
-cyclic_type_test/0*: RuntimeError # Issue 31054
-f_bounded_quantification5_test: RuntimeError # Issue 31054
-generic_closure_test: RuntimeError # Issue 31054
-mixin_mixin2_test: RuntimeError # Issue 31054
-mixin_mixin3_test: RuntimeError # Issue 31054
-mixin_mixin4_test: RuntimeError # Issue 31054
-mixin_mixin5_test: RuntimeError # Issue 31054
-mixin_mixin6_test: RuntimeError # Issue 31054
-mixin_mixin_bound2_test: RuntimeError # Issue 31054
-mixin_mixin_bound_test: RuntimeError # Issue 31054
+[ $compiler == dart2js && $runtime == safarimobilesim && !$dart2js_with_kernel ]
+call_through_getter_test: Fail, OK
 
-[ $compiler == dart2js && $runtime == d8 && $checked && !$dart2js_with_kernel ]
-factory_implementation_test/00: Fail
-regress_30339_test: RuntimeError # Issue 26429
+[ $compiler == dart2js && $system == windows && !$dart2js_with_kernel ]
+string_literals_test: Pass, RuntimeError # Failures on dart2js-win7-chrome-4-4-be and dart2js-win7-ie11ff-4-4-be
 
-[ $compiler == dart2js && $runtime == drt && $checked && !$dart2js_with_kernel ]
-regress_30339_test: RuntimeError # Issue 30393
+[ $compiler == dart2js && $browser && $csp && !$fast_startup ]
+conditional_import_string_test: Fail # Issue 30615
+conditional_import_test: Fail # Issue 30615
 
-[ $compiler == dart2js && $runtime != none && $checked ]
-assert_with_message_test: RuntimeError
-function_type/function_type0_test: RuntimeError # Issue 30476
-function_type/function_type10_test: RuntimeError # Issue 30476
-function_type/function_type12_test: RuntimeError # Issue 30476
-function_type/function_type13_test: RuntimeError # Issue 30476
-function_type/function_type14_test: RuntimeError # Issue 30476
-function_type/function_type15_test: RuntimeError # Issue 30476
-function_type/function_type16_test: RuntimeError # Issue 30476
-function_type/function_type17_test: RuntimeError # Issue 30476
-function_type/function_type18_test: RuntimeError # Issue 30476
-function_type/function_type19_test: RuntimeError # Issue 30476
-function_type/function_type1_test: RuntimeError # Issue 30476
-function_type/function_type20_test: RuntimeError # Issue 30476
-function_type/function_type21_test: RuntimeError # Issue 30476
-function_type/function_type22_test: RuntimeError # Issue 30476
-function_type/function_type24_test: RuntimeError # Issue 30476
-function_type/function_type25_test: RuntimeError # Issue 30476
-function_type/function_type26_test: RuntimeError # Issue 30476
-function_type/function_type27_test: RuntimeError # Issue 30476
-function_type/function_type28_test: RuntimeError # Issue 30476
-function_type/function_type29_test: RuntimeError # Issue 30476
-function_type/function_type2_test: RuntimeError # Issue 30476
-function_type/function_type30_test: RuntimeError # Issue 30476
-function_type/function_type31_test: RuntimeError # Issue 30476
-function_type/function_type32_test: RuntimeError # Issue 30476
-function_type/function_type33_test: RuntimeError # Issue 30476
-function_type/function_type34_test: RuntimeError # Issue 30476
-function_type/function_type36_test: RuntimeError # Issue 30476
-function_type/function_type3_test: RuntimeError # Issue 30476
-function_type/function_type44_test: RuntimeError # Issue 30476
-function_type/function_type45_test: RuntimeError # Issue 30476
-function_type/function_type46_test: RuntimeError # Issue 30476
-function_type/function_type47_test: RuntimeError # Issue 30476
-function_type/function_type48_test: RuntimeError # Issue 30476
-function_type/function_type49_test: RuntimeError # Issue 30476
-function_type/function_type4_test: RuntimeError # Issue 30476
-function_type/function_type50_test: RuntimeError # Issue 30476
-function_type/function_type51_test: RuntimeError # Issue 30476
-function_type/function_type52_test: RuntimeError # Issue 30476
-function_type/function_type53_test: RuntimeError # Issue 30476
-function_type/function_type54_test: RuntimeError # Issue 30476
-function_type/function_type56_test: RuntimeError # Issue 30476
-function_type/function_type57_test: RuntimeError # Issue 30476
-function_type/function_type58_test: RuntimeError # Issue 30476
-function_type/function_type59_test: RuntimeError # Issue 30476
-function_type/function_type5_test: RuntimeError # Issue 30476
-function_type/function_type60_test: RuntimeError # Issue 30476
-function_type/function_type61_test: RuntimeError # Issue 30476
-function_type/function_type62_test: RuntimeError # Issue 30476
-function_type/function_type63_test: RuntimeError # Issue 30476
-function_type/function_type64_test: RuntimeError # Issue 30476
-function_type/function_type65_test: RuntimeError # Issue 30476
-function_type/function_type66_test: RuntimeError # Issue 30476
-function_type/function_type6_test: RuntimeError # Issue 30476
-function_type/function_type7_test: RuntimeError # Issue 30476
-function_type/function_type80_test: RuntimeError # Issue 30476
-function_type/function_type81_test: RuntimeError # Issue 30476
-function_type/function_type82_test: RuntimeError # Issue 30476
-function_type/function_type83_test: RuntimeError # Issue 30476
-function_type/function_type84_test: RuntimeError # Issue 30476
-function_type/function_type85_test: RuntimeError # Issue 30476
-function_type/function_type86_test: RuntimeError # Issue 30476
-function_type/function_type87_test: RuntimeError # Issue 30476
-function_type/function_type88_test: RuntimeError # Issue 30476
-function_type/function_type89_test: RuntimeError # Issue 30476
-function_type/function_type8_test: RuntimeError # Issue 30476
-function_type/function_type90_test: RuntimeError # Issue 30476
-function_type/function_type96_test: RuntimeError # Issue 30476
-function_type/function_type9_test: RuntimeError # Issue 30476
-function_subtype_bound_closure3_test: RuntimeError
-function_subtype_bound_closure4_test: RuntimeError
-function_subtype_bound_closure7_test: RuntimeError
-function_subtype_call1_test: RuntimeError
-function_subtype_call2_test: RuntimeError
-function_subtype_cast1_test: RuntimeError
-function_subtype_named1_test: RuntimeError
-function_subtype_named2_test: RuntimeError
-function_subtype_not1_test: RuntimeError
-function_subtype_optional1_test: RuntimeError
-function_subtype_optional2_test: RuntimeError
-function_subtype_typearg2_test: RuntimeError
-function_subtype_typearg3_test: RuntimeError
-function_subtype_typearg5_test: RuntimeError
-function_type_alias2_test: RuntimeError
+[ $compiler == dart2js && $browser && !$dart2js_with_kernel ]
+config_import_test: Fail # Test flag is not passed to the compiler.
+library_env_test/has_io_support: RuntimeError # Issue 27398
+library_env_test/has_no_io_support: Pass # Issue 27398
 
-[ $compiler == dart2js && !$dart2js_with_kernel && !$minified ]
-vm/async_await_catch_stacktrace_test: RuntimeError
+[ $compiler == dart2js && $checked ]
+covariant_subtyping_test: CompileTimeError
 
-[ $compiler == dart2js && $dart2js_with_kernel && $host_checked ]
+[ $compiler == dart2js && $checked && $dart2js_with_kernel ]
 arithmetic_canonicalization_test: RuntimeError
 assertion_initializer_const_function_test/01: MissingCompileTimeError
 assertion_initializer_test: CompileTimeError
@@ -1241,19 +1085,18 @@
 bad_override_test/03: MissingCompileTimeError
 bad_override_test/04: MissingCompileTimeError
 bad_override_test/05: MissingCompileTimeError
-bit_operations_test: RuntimeError
-bool_check_test: RuntimeError
-bool_condition_check_test: RuntimeError
+bit_operations_test/03: RuntimeError
+bit_operations_test/04: RuntimeError
+bit_operations_test/none: RuntimeError
 branch_canonicalization_test: RuntimeError
+built_in_identifier_test: RuntimeError # Issue 28815
 call_function_apply_test: RuntimeError
-callable_test/none: RuntimeError
 canonical_const2_test: RuntimeError
 check_member_static_test/02: MissingCompileTimeError
 class_cycle_test/02: MissingCompileTimeError
 class_cycle_test/03: MissingCompileTimeError
 closure_invoked_through_interface_target_field_test: MissingCompileTimeError
 closure_invoked_through_interface_target_getter_test: MissingCompileTimeError
-closure_self_reference_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/nodes.dart': Failed assertion: line 641 pos 12: 'isClosed()': is not true.
 compile_time_constant_o_test/01: MissingCompileTimeError
 compile_time_constant_o_test/02: MissingCompileTimeError
 conditional_import_string_test: RuntimeError
@@ -1343,22 +1186,21 @@
 constructor_named_arguments_test/none: RuntimeError
 constructor_redirect1_negative_test/01: Crash # Stack Overflow
 constructor_redirect1_negative_test/none: MissingCompileTimeError
-constructor_redirect2_negative_test: Crash # Issue 30856
+constructor_redirect2_negative_test: Crash # Stack Overflow
 constructor_redirect2_test/01: MissingCompileTimeError
 constructor_redirect_test/01: Crash # Assertion failure: Cannot find value Instance of 'ThisLocal' in (local(A.named2#x), local(A.named2#y), local(A.named2#z)) for j:constructor(A.named2).
+covariance_setter_test/none: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
+covariance_type_parameter_test/01: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
+covariance_type_parameter_test/02: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
+covariance_type_parameter_test/03: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
+covariance_type_parameter_test/none: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
 covariant_override/runtime_check_test: RuntimeError
-covariant_subtyping_tearoff1_test: RuntimeError
-covariant_subtyping_tearoff2_test: RuntimeError
-covariant_subtyping_tearoff3_test: RuntimeError
-covariant_subtyping_test: CompileTimeError
-covariant_subtyping_unsafe_call1_test: RuntimeError
-covariant_subtyping_unsafe_call2_test: RuntimeError
-covariant_subtyping_unsafe_call3_test: RuntimeError
-cyclic_constructor_test/01: Crash # Issue 30856
+covariant_subtyping_test: Crash # Unsupported operation: Unsupported type parameter type node E.
+cyclic_constructor_test/01: Crash # Stack Overflow
 deferred_closurize_load_library_test: RuntimeError
-deferred_constraints_constants_test/default_argument2: Crash # Assertion failure: Missing scope info for j:method(_loadLibraryWrapper).
-deferred_constraints_constants_test/none: Crash # Assertion failure: Missing scope info for j:method(_loadLibraryWrapper).
-deferred_constraints_constants_test/reference_after_load: Crash # Assertion failure: Missing scope info for j:method(_loadLibraryWrapper).
+deferred_constraints_constants_test/default_argument2: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
+deferred_constraints_constants_test/none: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
+deferred_constraints_constants_test/reference_after_load: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
 deferred_constraints_type_annotation_test/as_operation: MissingCompileTimeError
 deferred_constraints_type_annotation_test/catch_check: MissingCompileTimeError
 deferred_constraints_type_annotation_test/is_check: MissingCompileTimeError
@@ -1379,7 +1221,6 @@
 deferred_load_library_wrong_args_test/01: MissingRuntimeError
 deferred_not_loaded_check_test: RuntimeError
 deferred_redirecting_factory_test: RuntimeError
-deferred_super_dependency_test/01: Crash # Assertion failure: Missing scope info for j:method(_loadLibraryWrapper).
 double_int_to_string_test: RuntimeError
 duplicate_export_negative_test: Fail
 duplicate_implements_test/01: MissingCompileTimeError
@@ -1402,73 +1243,41 @@
 field_override4_test/02: MissingCompileTimeError
 final_attempt_reinitialization_test/01: MissingCompileTimeError
 final_attempt_reinitialization_test/02: MissingCompileTimeError
-function_subtype_bound_closure3_test: RuntimeError
-function_subtype_bound_closure4_test: RuntimeError
-function_subtype_bound_closure7_test: RuntimeError
-function_subtype_call1_test: RuntimeError
-function_subtype_call2_test: RuntimeError
-function_subtype_cast1_test: RuntimeError
-function_subtype_checked0_test: RuntimeError
-function_subtype_closure0_test: RuntimeError
-function_subtype_closure1_test: RuntimeError
-function_subtype_factory1_test: RuntimeError
-function_subtype_inline1_test: RuntimeError
-function_subtype_inline2_test: RuntimeError
-function_subtype_named1_test: RuntimeError
-function_subtype_named2_test: RuntimeError
-function_subtype_not1_test: RuntimeError
-function_subtype_optional1_test: RuntimeError
-function_subtype_optional2_test: RuntimeError
-function_subtype_regression_ddc_588_test: RuntimeError
-function_subtype_setter0_test: RuntimeError
-function_subtype_typearg2_test: RuntimeError
-function_subtype_typearg3_test: RuntimeError
-function_subtype_typearg5_test: RuntimeError
-function_type2_test: RuntimeError
-function_type_alias2_test: RuntimeError
 function_type_alias_test: RuntimeError
-function_type_call_getter2_test/none: RuntimeError
-function_type_test: RuntimeError
 generalized_void_syntax_test: CompileTimeError
 generic_closure_test/01: RuntimeError
 generic_closure_test/none: RuntimeError
-generic_field_mixin4_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in ()in j:constructor(C3.).
-generic_field_mixin5_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in ()in j:constructor(C3.).
-generic_field_mixin6_test/none: RuntimeError
-generic_field_mixin_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in ()in j:constructor(C3.).
+generic_field_mixin4_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in () for j:constructor(C3.).
+generic_field_mixin5_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in () for j:constructor(C3.).
+generic_field_mixin_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in () for j:constructor(C3.).
 generic_function_bounds_test: Crash # Unsupported operation: Unsupported type parameter type node T.
 generic_function_dcall_test: Crash # Unsupported operation: Unsupported type parameter type node T.
 generic_function_typedef_test/01: RuntimeError
 generic_instanceof_test: RuntimeError
-generic_list_checked_test: RuntimeError
 generic_local_functions_test: Crash # Unsupported operation: Unsupported type parameter type node Y.
 generic_methods_closure_test: Crash # Unsupported operation: Unsupported type parameter type node S.
 generic_methods_shadowing_test: Crash # Unsupported operation: Unsupported type parameter type node T.
 generic_tearoff_test: Crash # Unsupported operation: Unsupported type parameter type node T.
-generic_test: RuntimeError
 generic_typedef_test: Crash # Unsupported operation: Unsupported type parameter type node S.
 getter_override2_test/02: MissingCompileTimeError
 getter_override_test/00: MissingCompileTimeError
 getter_override_test/01: MissingCompileTimeError
 getter_override_test/02: MissingCompileTimeError
-getters_setters2_test/01: RuntimeError
-getters_setters2_test/none: RuntimeError
 identical_closure2_test: RuntimeError
-if_null_precedence_test/none: RuntimeError
-inferrer_synthesized_constructor_test: RuntimeError
-infinite_switch_label_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/locals_handler.dart': Failed assertion: line 296 pos 12: 'local != null': is not true.
+implicit_downcast_during_assert_initializer_test: RuntimeError
+infinite_switch_label_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
 infinity_test: RuntimeError
 instance_creation_in_function_annotation_test: RuntimeError
 instanceof2_test: RuntimeError
 instanceof4_test/01: RuntimeError
 instanceof4_test/none: RuntimeError
 integer_division_by_zero_test: RuntimeError
-interface_test/00: Crash # 'package:front_end/src/fasta/kernel/body_builder.dart': Failed assertion: line 2218 pos 14: '!target.enclosingClass.isAbstract': is not true.
-internal_library_test/02: Crash # type 'DillLibraryBuilder' is not a subtype of type 'SourceLibraryBuilder<KernelTypeBuilder, Library>' of 'value' where
+internal_library_test/02: Crash # NoSuchMethodError: Class 'DillLibraryBuilder' has no instance getter 'mixinApplicationClasses'.
 invocation_mirror2_test: RuntimeError
 issue21079_test: RuntimeError
 issue23244_test: RuntimeError
 left_shift_test: RuntimeError
+library_env_test/has_mirror_support: RuntimeError
 list_literal1_test/01: MissingCompileTimeError
 list_literal4_test/00: MissingCompileTimeError
 list_literal4_test/01: MissingCompileTimeError
@@ -1480,6 +1289,7 @@
 list_literal_syntax_test/03: MissingCompileTimeError
 malformed2_test/00: MissingCompileTimeError
 many_generic_instanceof_test: RuntimeError
+map_literal1_test/01: MissingCompileTimeError
 map_literal8_test: RuntimeError
 method_override7_test/00: MissingCompileTimeError
 method_override7_test/01: MissingCompileTimeError
@@ -1542,7 +1352,7 @@
 mixin_mixin_bound2_test: RuntimeError
 mixin_mixin_bound_test: RuntimeError
 mixin_mixin_test: RuntimeError
-mixin_mixin_type_arguments_test: RuntimeError
+mixin_mixin_type_arguments_test: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
 mixin_of_mixin_test/none: CompileTimeError
 mixin_super_2_test/none: CompileTimeError
 mixin_super_constructor_named_test/01: MissingCompileTimeError
@@ -1579,425 +1389,8 @@
 named_parameters_default_eq_test/02: MissingCompileTimeError
 nan_identical_test: RuntimeError
 nested_generic_closure_test: Crash # Unsupported operation: Unsupported type parameter type node F.
-nested_switch_label_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/locals_handler.dart': Failed assertion: line 296 pos 12: 'local != null': is not true.
-no_main_test/01: CompileTimeError
-not_enough_positional_arguments_test/00: MissingCompileTimeError
-not_enough_positional_arguments_test/01: MissingCompileTimeError
-not_enough_positional_arguments_test/02: MissingCompileTimeError
-not_enough_positional_arguments_test/03: MissingCompileTimeError
-not_enough_positional_arguments_test/05: MissingCompileTimeError
-not_enough_positional_arguments_test/06: MissingCompileTimeError
-not_enough_positional_arguments_test/07: MissingCompileTimeError
-null_test/02: MissingCompileTimeError
-null_test/03: MissingCompileTimeError
-null_test/mirrors: RuntimeError
-null_test/none: RuntimeError
-number_identity2_test: RuntimeError
-numbers_test: RuntimeError
-override_field_method1_negative_test: Fail
-override_field_method2_negative_test: Fail
-override_field_method4_negative_test: Fail
-override_field_method5_negative_test: Fail
-override_field_test/01: MissingCompileTimeError
-override_inheritance_mixed_test/01: MissingCompileTimeError
-override_inheritance_mixed_test/02: MissingCompileTimeError
-override_inheritance_mixed_test/03: MissingCompileTimeError
-override_inheritance_mixed_test/04: MissingCompileTimeError
-override_inheritance_mixed_test/08: MissingCompileTimeError
-override_inheritance_mixed_test/09: MissingCompileTimeError
-override_method_with_field_test/01: MissingCompileTimeError
-positional_parameters_type_test/01: MissingCompileTimeError
-positional_parameters_type_test/02: MissingCompileTimeError
-private_super_constructor_test/01: MissingCompileTimeError
-redirecting_factory_default_values_test/01: MissingCompileTimeError
-redirecting_factory_default_values_test/02: MissingCompileTimeError
-redirecting_factory_long_test: RuntimeError
-redirecting_factory_reflection_test: RuntimeError
-regress_20394_test/01: MissingCompileTimeError
-regress_22976_test/01: CompileTimeError
-regress_22976_test/02: CompileTimeError
-regress_22976_test/none: CompileTimeError
-regress_23408_test: Crash # Assertion failure: Missing scope info for j:method(_loadLibraryWrapper).
-regress_24283_test: RuntimeError
-regress_27617_test/1: Crash # Assertion failure: Unexpected constructor j:constructor(Foo._) in ConstructorDataImpl._getConstructorConstant
-regress_28217_test/01: MissingCompileTimeError
-regress_28217_test/none: MissingCompileTimeError
-regress_28255_test: RuntimeError
-regress_28341_test: RuntimeError
-regress_29784_test/01: Crash # Assertion failure: Cannot find value Instance of 'ThisLocal' in () for j:constructor(A.ok).
-regress_29784_test/02: MissingCompileTimeError # Issue 29784
-regress_31057_test: Crash # Unsupported operation: Unsupported type parameter type node B.
-setter_override_test/00: MissingCompileTimeError
-setter_override_test/03: MissingCompileTimeError
-stacktrace_demangle_ctors_test: RuntimeError
-stacktrace_test: RuntimeError
-super_call4_test: Crash # Assertion failure: Missing scope info for j:method(E.boz).
-switch_bad_case_test/01: MissingCompileTimeError
-switch_bad_case_test/02: MissingCompileTimeError
-switch_case_test/00: MissingCompileTimeError
-switch_case_test/01: MissingCompileTimeError
-switch_case_test/02: MissingCompileTimeError
-symbol_literal_test/01: MissingCompileTimeError
-syntax_test/28: MissingCompileTimeError
-syntax_test/29: MissingCompileTimeError
-syntax_test/30: MissingCompileTimeError
-syntax_test/31: MissingCompileTimeError
-syntax_test/32: MissingCompileTimeError
-syntax_test/33: MissingCompileTimeError
-tearoff_dynamic_test: Crash # Unsupported operation: Unsupported type parameter type node T.
-truncdiv_test: RuntimeError
-try_catch_test/01: MissingCompileTimeError
-type_literal_test: Crash # 'file:*/pkg/compiler/lib/src/kernel/element_map_mixins.dart': Failed assertion: line 673 pos 14: 'functionType.typedef != null': is not true.
-typevariable_substitution2_test/02: RuntimeError
-
-[ $compiler == dart2js && $dart2js_with_kernel && $minified ]
-arithmetic_canonicalization_test: RuntimeError
-assertion_initializer_const_function_test/01: MissingCompileTimeError
-assertion_initializer_test: CompileTimeError
-assertion_test: RuntimeError
-async_star_cancel_while_paused_test: RuntimeError
-async_star_test/02: RuntimeError
-bad_override_test/03: MissingCompileTimeError
-bad_override_test/04: MissingCompileTimeError
-bad_override_test/05: MissingCompileTimeError
-bit_operations_test: RuntimeError
-bool_check_test: RuntimeError
-bool_condition_check_test: RuntimeError
-branch_canonicalization_test: RuntimeError
-call_function_apply_test: RuntimeError
-callable_test/none: RuntimeError
-canonical_const2_test: RuntimeError
-check_member_static_test/02: MissingCompileTimeError
-class_cycle_test/02: MissingCompileTimeError
-class_cycle_test/03: MissingCompileTimeError
-closure_invoked_through_interface_target_field_test: MissingCompileTimeError
-closure_invoked_through_interface_target_getter_test: MissingCompileTimeError
-compile_time_constant_o_test/01: MissingCompileTimeError
-compile_time_constant_o_test/02: MissingCompileTimeError
-conditional_import_string_test: RuntimeError
-conditional_import_test: RuntimeError
-conditional_method_invocation_test/05: MissingCompileTimeError
-conditional_method_invocation_test/06: MissingCompileTimeError
-conditional_method_invocation_test/07: MissingCompileTimeError
-conditional_method_invocation_test/08: MissingCompileTimeError
-conditional_method_invocation_test/12: MissingCompileTimeError
-conditional_method_invocation_test/13: MissingCompileTimeError
-conditional_method_invocation_test/18: MissingCompileTimeError
-conditional_method_invocation_test/19: MissingCompileTimeError
-conditional_property_access_test/04: MissingCompileTimeError
-conditional_property_access_test/05: MissingCompileTimeError
-conditional_property_access_test/06: MissingCompileTimeError
-conditional_property_access_test/10: MissingCompileTimeError
-conditional_property_access_test/11: MissingCompileTimeError
-conditional_property_access_test/16: MissingCompileTimeError
-conditional_property_access_test/17: MissingCompileTimeError
-conditional_property_assignment_test/04: MissingCompileTimeError
-conditional_property_assignment_test/05: MissingCompileTimeError
-conditional_property_assignment_test/06: MissingCompileTimeError
-conditional_property_assignment_test/10: MissingCompileTimeError
-conditional_property_assignment_test/11: MissingCompileTimeError
-conditional_property_assignment_test/12: MissingCompileTimeError
-conditional_property_assignment_test/13: MissingCompileTimeError
-conditional_property_assignment_test/27: MissingCompileTimeError
-conditional_property_assignment_test/28: MissingCompileTimeError
-conditional_property_assignment_test/32: MissingCompileTimeError
-conditional_property_assignment_test/33: MissingCompileTimeError
-conditional_property_assignment_test/34: MissingCompileTimeError
-conditional_property_assignment_test/35: MissingCompileTimeError
-conditional_property_increment_decrement_test/04: MissingCompileTimeError
-conditional_property_increment_decrement_test/08: MissingCompileTimeError
-conditional_property_increment_decrement_test/12: MissingCompileTimeError
-conditional_property_increment_decrement_test/16: MissingCompileTimeError
-conditional_property_increment_decrement_test/21: MissingCompileTimeError
-conditional_property_increment_decrement_test/22: MissingCompileTimeError
-conditional_property_increment_decrement_test/27: MissingCompileTimeError
-conditional_property_increment_decrement_test/28: MissingCompileTimeError
-conditional_property_increment_decrement_test/33: MissingCompileTimeError
-conditional_property_increment_decrement_test/34: MissingCompileTimeError
-conditional_property_increment_decrement_test/39: MissingCompileTimeError
-conditional_property_increment_decrement_test/40: MissingCompileTimeError
-config_import_corelib_test: RuntimeError
-config_import_test: RuntimeError
-const_constructor2_test/05: MissingCompileTimeError
-const_constructor2_test/06: MissingCompileTimeError
-const_constructor2_test/13: MissingCompileTimeError
-const_constructor2_test/14: MissingCompileTimeError
-const_constructor2_test/15: MissingCompileTimeError
-const_constructor2_test/16: MissingCompileTimeError
-const_constructor2_test/17: MissingCompileTimeError
-const_constructor2_test/18: MissingCompileTimeError
-const_constructor2_test/20: MissingCompileTimeError
-const_constructor2_test/22: MissingCompileTimeError
-const_constructor2_test/24: MissingCompileTimeError
-const_constructor3_test/02: MissingCompileTimeError
-const_constructor3_test/04: MissingCompileTimeError
-const_dynamic_type_literal_test/02: MissingCompileTimeError
-const_error_multiply_initialized_test/02: MissingCompileTimeError
-const_error_multiply_initialized_test/04: MissingCompileTimeError
-const_evaluation_test/01: RuntimeError
-const_factory_with_body_test/01: MissingCompileTimeError
-const_init2_test/02: MissingCompileTimeError
-const_instance_field_test/01: MissingCompileTimeError
-const_map2_test/00: MissingCompileTimeError
-const_map3_test/00: MissingCompileTimeError
-const_switch2_test/01: MissingCompileTimeError
-const_switch_test/02: RuntimeError
-const_switch_test/04: RuntimeError
-const_types_test/01: MissingCompileTimeError
-const_types_test/02: MissingCompileTimeError
-const_types_test/03: MissingCompileTimeError
-const_types_test/04: MissingCompileTimeError
-const_types_test/05: MissingCompileTimeError
-const_types_test/06: MissingCompileTimeError
-const_types_test/13: MissingCompileTimeError
-const_types_test/34: MissingCompileTimeError
-const_types_test/35: MissingCompileTimeError
-const_types_test/39: MissingCompileTimeError
-const_types_test/40: MissingCompileTimeError
-constants_test/05: MissingCompileTimeError
-constructor_duplicate_final_test/01: MissingCompileTimeError
-constructor_duplicate_final_test/02: MissingCompileTimeError
-constructor_named_arguments_test/01: MissingCompileTimeError
-constructor_named_arguments_test/none: RuntimeError
-constructor_redirect1_negative_test/01: Crash # Stack Overflow
-constructor_redirect1_negative_test/none: MissingCompileTimeError
-constructor_redirect2_negative_test: Crash # Issue 30856
-constructor_redirect2_test/01: MissingCompileTimeError
-constructor_redirect_test/01: Crash # Assertion failure: Cannot find value Instance of 'ThisLocal' in (local(A.named2#x), local(A.named2#y), local(A.named2#z)) for j:constructor(A.named2).
-covariant_override/runtime_check_test: RuntimeError
-covariant_subtyping_tearoff1_test: RuntimeError
-covariant_subtyping_tearoff2_test: RuntimeError
-covariant_subtyping_tearoff3_test: RuntimeError
-covariant_subtyping_test: Crash # Unsupported operation: Unsupported type parameter type node E.
-covariant_subtyping_unsafe_call1_test: RuntimeError
-covariant_subtyping_unsafe_call2_test: RuntimeError
-covariant_subtyping_unsafe_call3_test: RuntimeError
-cyclic_constructor_test/01: Crash # Issue 30856
-deferred_closurize_load_library_test: RuntimeError
-deferred_constraints_constants_test/default_argument2: Crash # NoSuchMethodError: The getter 'closureClassEntity' was called on null.
-deferred_constraints_constants_test/none: Crash # NoSuchMethodError: The getter 'closureClassEntity' was called on null.
-deferred_constraints_constants_test/reference_after_load: Crash # NoSuchMethodError: The getter 'closureClassEntity' was called on null.
-deferred_constraints_type_annotation_test/as_operation: MissingCompileTimeError
-deferred_constraints_type_annotation_test/catch_check: MissingCompileTimeError
-deferred_constraints_type_annotation_test/is_check: MissingCompileTimeError
-deferred_constraints_type_annotation_test/new_before_load: MissingCompileTimeError
-deferred_constraints_type_annotation_test/new_generic2: MissingCompileTimeError
-deferred_constraints_type_annotation_test/new_generic3: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation1: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_generic1: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_generic2: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_generic3: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_generic4: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_null: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_top_level: MissingCompileTimeError
-deferred_inheritance_constraints_test/extends: MissingCompileTimeError
-deferred_inheritance_constraints_test/implements: MissingCompileTimeError
-deferred_inheritance_constraints_test/mixin: MissingCompileTimeError
-deferred_load_constants_test/none: RuntimeError
-deferred_load_library_wrong_args_test/01: MissingRuntimeError
-deferred_not_loaded_check_test: RuntimeError
-deferred_redirecting_factory_test: RuntimeError
-deferred_super_dependency_test/01: Crash # NoSuchMethodError: The getter 'closureClassEntity' was called on null.
-double_int_to_string_test: RuntimeError
-duplicate_export_negative_test: Fail
-duplicate_implements_test/01: MissingCompileTimeError
-duplicate_implements_test/02: MissingCompileTimeError
-duplicate_implements_test/03: MissingCompileTimeError
-duplicate_implements_test/04: MissingCompileTimeError
-dynamic_prefix_core_test/none: RuntimeError
-enum_mirror_test: RuntimeError
-expect_test: RuntimeError
-external_test/10: MissingRuntimeError
-external_test/13: MissingRuntimeError
-external_test/20: MissingRuntimeError
-f_bounded_quantification4_test: RuntimeError
-factory_redirection_test/07: MissingCompileTimeError
-fauxverride_test/03: MissingCompileTimeError
-fauxverride_test/05: MissingCompileTimeError
-field_override3_test/00: MissingCompileTimeError
-field_override3_test/01: MissingCompileTimeError
-field_override3_test/02: MissingCompileTimeError
-field_override3_test/03: MissingCompileTimeError
-field_override4_test/02: MissingCompileTimeError
-final_attempt_reinitialization_test/01: MissingCompileTimeError
-final_attempt_reinitialization_test/02: MissingCompileTimeError
-full_stacktrace1_test: RuntimeError
-full_stacktrace2_test: RuntimeError
-full_stacktrace3_test: RuntimeError
-function_subtype_bound_closure3_test: RuntimeError
-function_subtype_bound_closure4_test: RuntimeError
-function_subtype_bound_closure7_test: RuntimeError
-function_subtype_call1_test: RuntimeError
-function_subtype_call2_test: RuntimeError
-function_subtype_cast1_test: RuntimeError
-function_subtype_checked0_test: RuntimeError
-function_subtype_closure0_test: RuntimeError
-function_subtype_closure1_test: RuntimeError
-function_subtype_factory1_test: RuntimeError
-function_subtype_inline1_test: RuntimeError
-function_subtype_inline2_test: RuntimeError
-function_subtype_named1_test: RuntimeError
-function_subtype_named2_test: RuntimeError
-function_subtype_not1_test: RuntimeError
-function_subtype_optional1_test: RuntimeError
-function_subtype_optional2_test: RuntimeError
-function_subtype_regression_ddc_588_test: RuntimeError
-function_subtype_setter0_test: RuntimeError
-function_subtype_typearg2_test: RuntimeError
-function_subtype_typearg3_test: RuntimeError
-function_subtype_typearg5_test: RuntimeError
-function_type2_test: RuntimeError
-function_type_alias2_test: RuntimeError
-function_type_alias_test: RuntimeError
-function_type_call_getter2_test/none: RuntimeError
-function_type_test: RuntimeError
-generalized_void_syntax_test: CompileTimeError
-generic_field_mixin4_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in ()in j:constructor(C3.).
-generic_field_mixin5_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in ()in j:constructor(C3.).
-generic_field_mixin6_test/none: RuntimeError
-generic_field_mixin_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in ()in j:constructor(C3.).
-generic_function_bounds_test: Crash # Unsupported operation: Unsupported type parameter type node T.
-generic_function_dcall_test: Crash # Unsupported operation: Unsupported type parameter type node T.
-generic_function_typedef_test/01: RuntimeError
-generic_instanceof_test: RuntimeError
-generic_list_checked_test: RuntimeError
-generic_local_functions_test: Crash # Unsupported operation: Unsupported type parameter type node Y.
-generic_methods_closure_test: Crash # Unsupported operation: Unsupported type parameter type node S.
-generic_methods_shadowing_test: Crash # Unsupported operation: Unsupported type parameter type node T.
-generic_tearoff_test: Crash # Unsupported operation: Unsupported type parameter type node T.
-generic_test: RuntimeError
-generic_typedef_test: Crash # Unsupported operation: Unsupported type parameter type node S.
-getter_override2_test/02: MissingCompileTimeError
-getter_override_test/00: MissingCompileTimeError
-getter_override_test/01: MissingCompileTimeError
-getter_override_test/02: MissingCompileTimeError
-getters_setters2_test/01: RuntimeError
-getters_setters2_test/none: RuntimeError
-identical_closure2_test: RuntimeError
-if_null_precedence_test/none: RuntimeError
-inferrer_synthesized_constructor_test: RuntimeError
-infinite_switch_label_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
-infinity_test: RuntimeError
-instance_creation_in_function_annotation_test: RuntimeError
-instanceof2_test: RuntimeError
-instanceof4_test/01: RuntimeError
-instanceof4_test/none: RuntimeError
-integer_division_by_zero_test: RuntimeError
-internal_library_test/02: Crash # NoSuchMethodError: Class 'DillLibraryBuilder' has no instance getter 'mixinApplicationClasses'.
-invocation_mirror2_test: RuntimeError
-invocation_mirror_test: RuntimeError
-issue21079_test: RuntimeError
-issue23244_test: RuntimeError
-left_shift_test: RuntimeError
-list_literal1_test/01: MissingCompileTimeError
-list_literal4_test/00: MissingCompileTimeError
-list_literal4_test/01: MissingCompileTimeError
-list_literal4_test/03: MissingCompileTimeError
-list_literal4_test/04: MissingCompileTimeError
-list_literal4_test/05: MissingCompileTimeError
-list_literal_syntax_test/01: MissingCompileTimeError
-list_literal_syntax_test/02: MissingCompileTimeError
-list_literal_syntax_test/03: MissingCompileTimeError
-malformed2_test/00: MissingCompileTimeError
-many_generic_instanceof_test: RuntimeError
-map_literal8_test: RuntimeError
-method_override7_test/00: MissingCompileTimeError
-method_override7_test/01: MissingCompileTimeError
-method_override7_test/02: MissingCompileTimeError
-method_override8_test/00: MissingCompileTimeError
-method_override8_test/01: MissingCompileTimeError
-mint_arithmetic_test: RuntimeError
-mixin_black_listed_test/02: MissingCompileTimeError
-mixin_forwarding_constructor4_test/01: MissingCompileTimeError
-mixin_forwarding_constructor4_test/02: MissingCompileTimeError
-mixin_forwarding_constructor4_test/03: MissingCompileTimeError
-mixin_generic_test: RuntimeError
-mixin_illegal_super_use_test/01: MissingCompileTimeError
-mixin_illegal_super_use_test/02: MissingCompileTimeError
-mixin_illegal_super_use_test/03: MissingCompileTimeError
-mixin_illegal_super_use_test/04: MissingCompileTimeError
-mixin_illegal_super_use_test/05: MissingCompileTimeError
-mixin_illegal_super_use_test/06: MissingCompileTimeError
-mixin_illegal_super_use_test/07: MissingCompileTimeError
-mixin_illegal_super_use_test/08: MissingCompileTimeError
-mixin_illegal_super_use_test/09: MissingCompileTimeError
-mixin_illegal_super_use_test/10: MissingCompileTimeError
-mixin_illegal_super_use_test/11: MissingCompileTimeError
-mixin_illegal_superclass_test/01: MissingCompileTimeError
-mixin_illegal_superclass_test/02: MissingCompileTimeError
-mixin_illegal_superclass_test/03: MissingCompileTimeError
-mixin_illegal_superclass_test/04: MissingCompileTimeError
-mixin_illegal_superclass_test/05: MissingCompileTimeError
-mixin_illegal_superclass_test/06: MissingCompileTimeError
-mixin_illegal_superclass_test/07: MissingCompileTimeError
-mixin_illegal_superclass_test/08: MissingCompileTimeError
-mixin_illegal_superclass_test/09: MissingCompileTimeError
-mixin_illegal_superclass_test/10: MissingCompileTimeError
-mixin_illegal_superclass_test/11: MissingCompileTimeError
-mixin_illegal_superclass_test/12: MissingCompileTimeError
-mixin_illegal_superclass_test/13: MissingCompileTimeError
-mixin_illegal_superclass_test/14: MissingCompileTimeError
-mixin_illegal_superclass_test/15: MissingCompileTimeError
-mixin_illegal_superclass_test/16: MissingCompileTimeError
-mixin_illegal_superclass_test/17: MissingCompileTimeError
-mixin_illegal_superclass_test/18: MissingCompileTimeError
-mixin_illegal_superclass_test/19: MissingCompileTimeError
-mixin_illegal_superclass_test/20: MissingCompileTimeError
-mixin_illegal_superclass_test/21: MissingCompileTimeError
-mixin_illegal_superclass_test/22: MissingCompileTimeError
-mixin_illegal_superclass_test/23: MissingCompileTimeError
-mixin_illegal_superclass_test/24: MissingCompileTimeError
-mixin_illegal_superclass_test/25: MissingCompileTimeError
-mixin_illegal_superclass_test/26: MissingCompileTimeError
-mixin_illegal_superclass_test/27: MissingCompileTimeError
-mixin_illegal_superclass_test/28: MissingCompileTimeError
-mixin_illegal_superclass_test/29: MissingCompileTimeError
-mixin_illegal_superclass_test/30: MissingCompileTimeError
-mixin_issue10216_2_test: RuntimeError
-mixin_mixin7_test: RuntimeError
-mixin_mixin_test: RuntimeError
-mixin_mixin_type_arguments_test: RuntimeError
-mixin_of_mixin_test/none: CompileTimeError
-mixin_super_2_test/none: CompileTimeError
-mixin_super_constructor_named_test/01: MissingCompileTimeError
-mixin_super_constructor_positionals_test/01: MissingCompileTimeError
-mixin_super_test: CompileTimeError
-mixin_super_use_test: CompileTimeError
-mixin_superclass_test: CompileTimeError
-mixin_supertype_subclass2_test/01: CompileTimeError
-mixin_supertype_subclass2_test/02: CompileTimeError
-mixin_supertype_subclass2_test/03: CompileTimeError
-mixin_supertype_subclass2_test/04: CompileTimeError
-mixin_supertype_subclass2_test/05: CompileTimeError
-mixin_supertype_subclass2_test/none: CompileTimeError
-mixin_supertype_subclass3_test/01: CompileTimeError
-mixin_supertype_subclass3_test/02: CompileTimeError
-mixin_supertype_subclass3_test/03: CompileTimeError
-mixin_supertype_subclass3_test/04: CompileTimeError
-mixin_supertype_subclass3_test/05: CompileTimeError
-mixin_supertype_subclass3_test/none: CompileTimeError
-mixin_supertype_subclass4_test/01: CompileTimeError
-mixin_supertype_subclass4_test/02: CompileTimeError
-mixin_supertype_subclass4_test/03: CompileTimeError
-mixin_supertype_subclass4_test/04: CompileTimeError
-mixin_supertype_subclass4_test/05: CompileTimeError
-mixin_supertype_subclass4_test/none: CompileTimeError
-mixin_type_parameters_super_test: RuntimeError
-mock_writable_final_field_test: RuntimeError # Issue 30847
-mock_writable_final_private_field_test: RuntimeError # Issue 30847
-modulo_test: RuntimeError
-multiline_newline_test/04: MissingCompileTimeError
-multiline_newline_test/04r: MissingCompileTimeError
-multiline_newline_test/05: MissingCompileTimeError
-multiline_newline_test/05r: MissingCompileTimeError
-multiline_newline_test/06: MissingCompileTimeError
-multiline_newline_test/06r: MissingCompileTimeError
-named_parameters_default_eq_test/02: MissingCompileTimeError
-nan_identical_test: RuntimeError
-nested_generic_closure_test: Crash # Unsupported operation: Unsupported type parameter type node F.
 nested_switch_label_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
 no_main_test/01: CompileTimeError
-no_such_method_native_test: RuntimeError
 not_enough_positional_arguments_test/00: MissingCompileTimeError
 not_enough_positional_arguments_test/01: MissingCompileTimeError
 not_enough_positional_arguments_test/02: MissingCompileTimeError
@@ -2031,27 +1424,23 @@
 redirecting_factory_long_test: RuntimeError
 redirecting_factory_reflection_test: RuntimeError
 regress_20394_test/01: MissingCompileTimeError
-regress_21795_test: RuntimeError
 regress_22976_test/01: CompileTimeError
 regress_22976_test/02: CompileTimeError
 regress_22976_test/none: CompileTimeError
-regress_23408_test: Crash # NoSuchMethodError: The getter 'closureClassEntity' was called on null.
-regress_24283_test: RuntimeError, OK # Requires 64 bit numbers.
+regress_24283_test: RuntimeError
 regress_27617_test/1: Crash # Assertion failure: Unexpected constructor j:constructor(Foo._) in ConstructorDataImpl._getConstructorConstant
 regress_28217_test/01: MissingCompileTimeError
 regress_28217_test/none: MissingCompileTimeError
 regress_28255_test: RuntimeError
 regress_28341_test: RuntimeError
-regress_29784_test/01: Crash # Issue 29784
+regress_29405_test: RuntimeError
+regress_29784_test/01: Crash # Assertion failure: Cannot find value Instance of 'ThisLocal' in () for j:constructor(A.ok).
 regress_29784_test/02: MissingCompileTimeError # Issue 29784
+regress_30339_test: RuntimeError # Issue 26429
 regress_31057_test: Crash # Unsupported operation: Unsupported type parameter type node B.
 setter_override_test/00: MissingCompileTimeError
 setter_override_test/03: MissingCompileTimeError
-stack_trace_test: RuntimeError
 stacktrace_demangle_ctors_test: RuntimeError
-stacktrace_rethrow_error_test/none: RuntimeError
-stacktrace_rethrow_error_test/withtraceparameter: RuntimeError
-stacktrace_rethrow_nonerror_test: RuntimeError
 stacktrace_test: RuntimeError
 super_call4_test: Crash # NoSuchMethodError: The getter 'thisLocal' was called on null.
 switch_bad_case_test/01: MissingCompileTimeError
@@ -2059,7 +1448,6 @@
 switch_case_test/00: MissingCompileTimeError
 switch_case_test/01: MissingCompileTimeError
 switch_case_test/02: MissingCompileTimeError
-symbol_conflict_test: RuntimeError
 symbol_literal_test/01: MissingCompileTimeError
 syntax_test/28: MissingCompileTimeError
 syntax_test/29: MissingCompileTimeError
@@ -2070,8 +1458,171 @@
 tearoff_dynamic_test: Crash # Unsupported operation: Unsupported type parameter type node T.
 truncdiv_test: RuntimeError
 try_catch_test/01: MissingCompileTimeError
+type_check_const_function_typedef2_test: MissingCompileTimeError
 type_literal_test: RuntimeError
-typevariable_substitution2_test/02: RuntimeError
+type_parameter_test/06: Crash # Internal Error: Unexpected type variable in static context.
+type_parameter_test/09: Crash # Internal Error: Unexpected type variable in static context.
+type_variable_scope_test/03: Crash # Internal Error: Unexpected type variable in static context.
+
+[ $compiler == dart2js && $checked && $dart2js_with_kernel && $minified ]
+inline_super_field_test: Crash
+typedef_is_test: Crash
+
+[ $compiler == dart2js && $checked && !$dart2js_with_kernel ]
+async_return_types_test/nestedFuture: Fail # Issue 26429
+async_return_types_test/wrongTypeParameter: Fail # Issue 26429
+check_member_static_test/01: MissingCompileTimeError
+check_method_override_test/01: MissingCompileTimeError
+check_method_override_test/02: MissingCompileTimeError
+covariant_subtyping_test: CompileTimeError
+default_factory2_test/01: Fail # Issue 14121
+function_malformed_result_type_test/00: MissingCompileTimeError
+function_type_alias_test: RuntimeError
+function_type_call_getter2_test/00: MissingCompileTimeError
+function_type_call_getter2_test/01: MissingCompileTimeError
+function_type_call_getter2_test/02: MissingCompileTimeError
+function_type_call_getter2_test/03: MissingCompileTimeError
+function_type_call_getter2_test/04: MissingCompileTimeError
+function_type_call_getter2_test/05: MissingCompileTimeError
+malbounded_instantiation_test/01: Fail # Issue 12702
+malbounded_redirecting_factory_test/02: Fail # Issue 12825
+malbounded_redirecting_factory_test/03: Fail # Issue 12825
+malbounded_type_cast2_test: Fail # Issue 14121
+malbounded_type_cast_test: Fail # Issue 14121
+malbounded_type_test_test/03: Fail # Issue 14121
+malbounded_type_test_test/04: Fail # Issue 14121
+regress_26133_test: RuntimeError # Issue 26429
+regress_29405_test: Fail # Issue 29422
+
+[ $compiler == dart2js && !$checked ]
+covariance_field_test/01: RuntimeError
+covariance_field_test/02: RuntimeError
+covariance_field_test/03: RuntimeError
+covariance_field_test/04: RuntimeError
+covariance_field_test/05: RuntimeError
+covariance_method_test/01: RuntimeError
+covariance_method_test/02: RuntimeError
+covariance_method_test/03: RuntimeError
+covariance_method_test/04: RuntimeError
+covariance_method_test/05: RuntimeError
+covariance_method_test/06: RuntimeError
+covariance_setter_test/01: RuntimeError
+covariance_setter_test/02: RuntimeError
+covariance_setter_test/03: RuntimeError
+covariance_setter_test/04: RuntimeError
+covariance_setter_test/05: RuntimeError
+recursive_mixin_test: RuntimeError # no check without --checked
+type_argument_in_super_type_test: RuntimeError
+type_check_const_function_typedef2_test: MissingCompileTimeError
+
+[ $compiler == dart2js && !$checked && $dart2js_with_kernel ]
+assertion_initializer_const_error2_test/*: CompileTimeError # Issue #31321
+assertion_initializer_const_error2_test/none: Pass
+cascaded_forwarding_stubs_generic_test: RuntimeError
+cascaded_forwarding_stubs_test: RuntimeError
+checked_setter3_test: RuntimeError # Issue 31128
+forwarding_stub_tearoff_generic_test: RuntimeError
+forwarding_stub_tearoff_test: RuntimeError
+implicit_downcast_during_assignment_test: RuntimeError
+implicit_downcast_during_combiner_test: RuntimeError
+implicit_downcast_during_compound_assignment_test: RuntimeError
+implicit_downcast_during_conditional_expression_test: RuntimeError
+implicit_downcast_during_constructor_initializer_test: RuntimeError
+implicit_downcast_during_do_test: RuntimeError
+implicit_downcast_during_factory_constructor_invocation_test: RuntimeError
+implicit_downcast_during_field_declaration_test: RuntimeError
+implicit_downcast_during_for_condition_test: RuntimeError
+implicit_downcast_during_for_initializer_expression_test: RuntimeError
+implicit_downcast_during_for_initializer_var_test: RuntimeError
+implicit_downcast_during_if_null_assignment_test: RuntimeError
+implicit_downcast_during_if_statement_test: RuntimeError
+implicit_downcast_during_indexed_assignment_test: RuntimeError
+implicit_downcast_during_indexed_compound_assignment_test: RuntimeError
+implicit_downcast_during_indexed_get_test: RuntimeError
+implicit_downcast_during_indexed_if_null_assignment_test: RuntimeError
+implicit_downcast_during_logical_expression_test: RuntimeError
+implicit_downcast_during_map_literal_test: RuntimeError
+implicit_downcast_during_method_invocation_test: RuntimeError
+implicit_downcast_during_not_test: RuntimeError
+implicit_downcast_during_null_aware_method_invocation_test: RuntimeError
+implicit_downcast_during_return_test: RuntimeError
+implicit_downcast_during_static_method_invocation_test: RuntimeError
+implicit_downcast_during_super_method_invocation_test: RuntimeError
+implicit_downcast_during_variable_declaration_test: RuntimeError
+implicit_downcast_during_while_statement_test: RuntimeError
+
+[ $compiler == dart2js && !$checked && !$dart2js_with_kernel ]
+bool_check_test: RuntimeError # Issue 29647
+bool_condition_check_test: RuntimeError
+const_constructor2_test/13: MissingCompileTimeError
+const_constructor2_test/14: MissingCompileTimeError
+const_constructor2_test/15: MissingCompileTimeError
+const_constructor2_test/16: MissingCompileTimeError
+const_constructor2_test/17: MissingCompileTimeError
+const_constructor2_test/18: MissingCompileTimeError
+const_constructor2_test/20: MissingCompileTimeError
+const_constructor2_test/22: MissingCompileTimeError
+const_constructor2_test/24: MissingCompileTimeError
+const_constructor3_test/02: MissingCompileTimeError
+const_constructor3_test/04: MissingCompileTimeError
+const_init2_test/02: MissingCompileTimeError
+forwarding_stub_tearoff_generic_test: RuntimeError
+forwarding_stub_tearoff_test: RuntimeError
+function_subtype_inline2_test: RuntimeError
+generic_test: RuntimeError, OK
+list_literal1_test/01: MissingCompileTimeError
+
+[ $compiler == dart2js && !$checked && !$dart2js_with_kernel && $minified ]
+function_subtype_inline2_test: RuntimeError
+
+[ $compiler == dart2js && $dart2js_with_kernel ]
+bug31436_test: RuntimeError
+built_in_identifier_type_annotation_test/22: Crash # Issue 28815
+built_in_identifier_type_annotation_test/52: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/53: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/54: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/55: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/57: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/58: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/59: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/60: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/61: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/62: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/63: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/64: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/65: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/66: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/67: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/68: MissingCompileTimeError # Issue 28815
+checked_setter2_test: RuntimeError # Issue 31128
+checked_setter_test: RuntimeError # Issue 31128
+closure_param_null_to_object_test: RuntimeError
+extract_type_arguments_test: Crash # Issue 31371
+implicit_downcast_during_constructor_invocation_test: RuntimeError
+implicit_downcast_during_for_in_element_test: RuntimeError
+implicit_downcast_during_for_in_iterable_test: RuntimeError
+implicit_downcast_during_function_literal_arrow_test: RuntimeError
+implicit_downcast_during_function_literal_return_test: RuntimeError
+implicit_downcast_during_invocation_test: RuntimeError
+implicit_downcast_during_list_literal_test: RuntimeError
+implicit_downcast_during_redirecting_initializer_test: RuntimeError
+implicit_downcast_during_return_async_test: RuntimeError
+implicit_downcast_during_super_initializer_test: RuntimeError
+implicit_downcast_during_yield_star_test: RuntimeError
+implicit_downcast_during_yield_test: RuntimeError
+invalid_cast_test/01: MissingCompileTimeError
+invalid_cast_test/02: MissingCompileTimeError
+invalid_cast_test/03: MissingCompileTimeError
+invalid_cast_test/04: MissingCompileTimeError
+invalid_cast_test/07: MissingCompileTimeError
+invalid_cast_test/08: MissingCompileTimeError
+invalid_cast_test/09: MissingCompileTimeError
+invalid_cast_test/10: MissingCompileTimeError
+invalid_cast_test/11: MissingCompileTimeError
+library_env_test/has_no_mirror_support: Pass
+object_has_no_call_method_test/02: MissingCompileTimeError
+object_has_no_call_method_test/05: MissingCompileTimeError
+object_has_no_call_method_test/08: MissingCompileTimeError
 
 [ $compiler == dart2js && $dart2js_with_kernel && $fast_startup ]
 arithmetic_canonicalization_test: RuntimeError
@@ -2192,7 +1743,7 @@
 covariant_subtyping_tearoff1_test: RuntimeError
 covariant_subtyping_tearoff2_test: RuntimeError
 covariant_subtyping_tearoff3_test: RuntimeError
-covariant_subtyping_test: CompileTimeError
+covariant_subtyping_test: Crash # Unsupported operation: Unsupported type parameter type node E.
 covariant_subtyping_unsafe_call1_test: RuntimeError
 covariant_subtyping_unsafe_call2_test: RuntimeError
 covariant_subtyping_unsafe_call3_test: RuntimeError
@@ -2496,7 +2047,7 @@
 type_literal_test: RuntimeError
 typevariable_substitution2_test/02: RuntimeError
 
-[ $compiler == dart2js && $dart2js_with_kernel && $checked ]
+[ $compiler == dart2js && $dart2js_with_kernel && $host_checked ]
 arithmetic_canonicalization_test: RuntimeError
 assertion_initializer_const_function_test/01: MissingCompileTimeError
 assertion_initializer_test: CompileTimeError
@@ -2506,11 +2057,442 @@
 bad_override_test/03: MissingCompileTimeError
 bad_override_test/04: MissingCompileTimeError
 bad_override_test/05: MissingCompileTimeError
-bit_operations_test/03: RuntimeError
-bit_operations_test/04: RuntimeError
-bit_operations_test/none: RuntimeError
+bit_operations_test: RuntimeError
+bool_check_test: RuntimeError
+bool_condition_check_test: RuntimeError
+branch_canonicalization_test: RuntimeError
+branches_test: Crash # 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart': Failed assertion: line 441 pos 16: 'identical(combiner.arguments.positional[0], rhs)': is not true.
+call_function_apply_test: RuntimeError
+callable_test/none: RuntimeError
+canonical_const2_test: RuntimeError
+check_member_static_test/02: MissingCompileTimeError
+class_cycle_test/02: MissingCompileTimeError
+class_cycle_test/03: MissingCompileTimeError
+closure_invoked_through_interface_target_field_test: MissingCompileTimeError
+closure_invoked_through_interface_target_getter_test: MissingCompileTimeError
+closure_self_reference_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/nodes.dart': Failed assertion: line 641 pos 12: 'isClosed()': is not true.
+compile_time_constant_o_test/01: MissingCompileTimeError
+compile_time_constant_o_test/02: MissingCompileTimeError
+conditional_import_string_test: RuntimeError
+conditional_import_test: RuntimeError
+conditional_method_invocation_test/05: MissingCompileTimeError
+conditional_method_invocation_test/06: MissingCompileTimeError
+conditional_method_invocation_test/07: MissingCompileTimeError
+conditional_method_invocation_test/08: MissingCompileTimeError
+conditional_method_invocation_test/12: MissingCompileTimeError
+conditional_method_invocation_test/13: MissingCompileTimeError
+conditional_method_invocation_test/18: MissingCompileTimeError
+conditional_method_invocation_test/19: MissingCompileTimeError
+conditional_property_access_test/04: MissingCompileTimeError
+conditional_property_access_test/05: MissingCompileTimeError
+conditional_property_access_test/06: MissingCompileTimeError
+conditional_property_access_test/10: MissingCompileTimeError
+conditional_property_access_test/11: MissingCompileTimeError
+conditional_property_access_test/16: MissingCompileTimeError
+conditional_property_access_test/17: MissingCompileTimeError
+conditional_property_assignment_test/04: MissingCompileTimeError
+conditional_property_assignment_test/05: MissingCompileTimeError
+conditional_property_assignment_test/06: MissingCompileTimeError
+conditional_property_assignment_test/10: MissingCompileTimeError
+conditional_property_assignment_test/11: MissingCompileTimeError
+conditional_property_assignment_test/12: MissingCompileTimeError
+conditional_property_assignment_test/13: MissingCompileTimeError
+conditional_property_assignment_test/27: MissingCompileTimeError
+conditional_property_assignment_test/28: MissingCompileTimeError
+conditional_property_assignment_test/32: MissingCompileTimeError
+conditional_property_assignment_test/33: MissingCompileTimeError
+conditional_property_assignment_test/34: MissingCompileTimeError
+conditional_property_assignment_test/35: MissingCompileTimeError
+conditional_property_increment_decrement_test/04: MissingCompileTimeError
+conditional_property_increment_decrement_test/08: MissingCompileTimeError
+conditional_property_increment_decrement_test/12: MissingCompileTimeError
+conditional_property_increment_decrement_test/16: MissingCompileTimeError
+conditional_property_increment_decrement_test/21: MissingCompileTimeError
+conditional_property_increment_decrement_test/22: MissingCompileTimeError
+conditional_property_increment_decrement_test/27: MissingCompileTimeError
+conditional_property_increment_decrement_test/28: MissingCompileTimeError
+conditional_property_increment_decrement_test/33: MissingCompileTimeError
+conditional_property_increment_decrement_test/34: MissingCompileTimeError
+conditional_property_increment_decrement_test/39: MissingCompileTimeError
+conditional_property_increment_decrement_test/40: MissingCompileTimeError
+config_import_corelib_test: RuntimeError
+config_import_test: RuntimeError
+const_constructor2_test/05: MissingCompileTimeError
+const_constructor2_test/06: MissingCompileTimeError
+const_constructor2_test/13: MissingCompileTimeError
+const_constructor2_test/14: MissingCompileTimeError
+const_constructor2_test/15: MissingCompileTimeError
+const_constructor2_test/16: MissingCompileTimeError
+const_constructor2_test/17: MissingCompileTimeError
+const_constructor2_test/18: MissingCompileTimeError
+const_constructor2_test/20: MissingCompileTimeError
+const_constructor2_test/22: MissingCompileTimeError
+const_constructor2_test/24: MissingCompileTimeError
+const_constructor3_test/02: MissingCompileTimeError
+const_constructor3_test/04: MissingCompileTimeError
+const_dynamic_type_literal_test/02: MissingCompileTimeError
+const_error_multiply_initialized_test/02: MissingCompileTimeError
+const_error_multiply_initialized_test/04: MissingCompileTimeError
+const_evaluation_test/01: RuntimeError
+const_factory_with_body_test/01: MissingCompileTimeError
+const_init2_test/02: MissingCompileTimeError
+const_instance_field_test/01: MissingCompileTimeError
+const_map2_test/00: MissingCompileTimeError
+const_map3_test/00: MissingCompileTimeError
+const_switch2_test/01: MissingCompileTimeError
+const_switch_test/02: RuntimeError
+const_switch_test/04: RuntimeError
+const_types_test/01: MissingCompileTimeError
+const_types_test/02: MissingCompileTimeError
+const_types_test/03: MissingCompileTimeError
+const_types_test/04: MissingCompileTimeError
+const_types_test/05: MissingCompileTimeError
+const_types_test/06: MissingCompileTimeError
+const_types_test/13: MissingCompileTimeError
+const_types_test/34: MissingCompileTimeError
+const_types_test/35: MissingCompileTimeError
+const_types_test/39: MissingCompileTimeError
+const_types_test/40: MissingCompileTimeError
+constants_test/05: MissingCompileTimeError
+constructor_duplicate_final_test/01: MissingCompileTimeError
+constructor_duplicate_final_test/02: MissingCompileTimeError
+constructor_named_arguments_test/01: MissingCompileTimeError
+constructor_named_arguments_test/none: RuntimeError
+constructor_redirect1_negative_test/01: Crash # Stack Overflow
+constructor_redirect1_negative_test/none: MissingCompileTimeError
+constructor_redirect2_negative_test: Crash # Issue 30856
+constructor_redirect2_test/01: MissingCompileTimeError
+constructor_redirect_test/01: Crash # Assertion failure: Cannot find value Instance of 'ThisLocal' in (local(A.named2#x), local(A.named2#y), local(A.named2#z)) for j:constructor(A.named2).
+covariant_override/runtime_check_test: RuntimeError
+covariant_subtyping_tearoff1_test: RuntimeError
+covariant_subtyping_tearoff2_test: RuntimeError
+covariant_subtyping_tearoff3_test: RuntimeError
+covariant_subtyping_test: Crash # Unsupported operation: Unsupported type parameter type node E.
+covariant_subtyping_unsafe_call1_test: RuntimeError
+covariant_subtyping_unsafe_call2_test: RuntimeError
+covariant_subtyping_unsafe_call3_test: RuntimeError
+cyclic_constructor_test/01: Crash # Issue 30856
+deferred_closurize_load_library_test: RuntimeError
+deferred_constraints_constants_test/default_argument2: Crash # Assertion failure: Missing scope info for j:method(_loadLibraryWrapper).
+deferred_constraints_constants_test/none: Crash # Assertion failure: Missing scope info for j:method(_loadLibraryWrapper).
+deferred_constraints_constants_test/reference_after_load: Crash # Assertion failure: Missing scope info for j:method(_loadLibraryWrapper).
+deferred_constraints_type_annotation_test/as_operation: MissingCompileTimeError
+deferred_constraints_type_annotation_test/catch_check: MissingCompileTimeError
+deferred_constraints_type_annotation_test/is_check: MissingCompileTimeError
+deferred_constraints_type_annotation_test/new_before_load: MissingCompileTimeError
+deferred_constraints_type_annotation_test/new_generic2: MissingCompileTimeError
+deferred_constraints_type_annotation_test/new_generic3: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation1: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_generic1: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_generic2: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_generic3: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_generic4: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_null: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_top_level: MissingCompileTimeError
+deferred_inheritance_constraints_test/extends: MissingCompileTimeError
+deferred_inheritance_constraints_test/implements: MissingCompileTimeError
+deferred_inheritance_constraints_test/mixin: MissingCompileTimeError
+deferred_load_constants_test/none: RuntimeError
+deferred_load_library_wrong_args_test/01: MissingRuntimeError
+deferred_not_loaded_check_test: RuntimeError
+deferred_redirecting_factory_test: RuntimeError
+deferred_super_dependency_test/01: Crash # Assertion failure: Missing scope info for j:method(_loadLibraryWrapper).
+double_int_to_string_test: RuntimeError
+duplicate_export_negative_test: Fail
+duplicate_implements_test/01: MissingCompileTimeError
+duplicate_implements_test/02: MissingCompileTimeError
+duplicate_implements_test/03: MissingCompileTimeError
+duplicate_implements_test/04: MissingCompileTimeError
+dynamic_prefix_core_test/none: RuntimeError
+enum_mirror_test: RuntimeError
+enum_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/builder_kernel.dart': Failed assertion: line 1728 pos 16: 'type is MethodTypeVariableType': is not true.
+expect_test: RuntimeError
+external_test/10: MissingRuntimeError
+external_test/13: MissingRuntimeError
+external_test/20: MissingRuntimeError
+factory_redirection_test/07: MissingCompileTimeError
+fauxverride_test/03: MissingCompileTimeError
+fauxverride_test/05: MissingCompileTimeError
+field_override3_test/00: MissingCompileTimeError
+field_override3_test/01: MissingCompileTimeError
+field_override3_test/02: MissingCompileTimeError
+field_override3_test/03: MissingCompileTimeError
+field_override4_test/02: MissingCompileTimeError
+final_attempt_reinitialization_test/01: MissingCompileTimeError
+final_attempt_reinitialization_test/02: MissingCompileTimeError
+function_subtype_bound_closure3_test: RuntimeError
+function_subtype_bound_closure4_test: RuntimeError
+function_subtype_bound_closure7_test: RuntimeError
+function_subtype_call1_test: RuntimeError
+function_subtype_call2_test: RuntimeError
+function_subtype_cast1_test: RuntimeError
+function_subtype_checked0_test: RuntimeError
+function_subtype_closure0_test: RuntimeError
+function_subtype_closure1_test: RuntimeError
+function_subtype_factory1_test: RuntimeError
+function_subtype_inline1_test: RuntimeError
+function_subtype_inline2_test: RuntimeError
+function_subtype_named1_test: RuntimeError
+function_subtype_named2_test: RuntimeError
+function_subtype_not1_test: RuntimeError
+function_subtype_optional1_test: RuntimeError
+function_subtype_optional2_test: RuntimeError
+function_subtype_regression_ddc_588_test: RuntimeError
+function_subtype_setter0_test: RuntimeError
+function_subtype_typearg2_test: RuntimeError
+function_subtype_typearg3_test: RuntimeError
+function_subtype_typearg5_test: RuntimeError
+function_type2_test: RuntimeError
+function_type_alias2_test: RuntimeError
+function_type_alias_test: RuntimeError
+function_type_call_getter2_test/none: RuntimeError
+function_type_test: RuntimeError
+generalized_void_syntax_test: CompileTimeError
+generic_closure_test/01: RuntimeError
+generic_closure_test/none: RuntimeError
+generic_field_mixin4_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in ()in j:constructor(C3.).
+generic_field_mixin5_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in ()in j:constructor(C3.).
+generic_field_mixin6_test/none: RuntimeError
+generic_field_mixin_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in ()in j:constructor(C3.).
+generic_function_bounds_test: Crash # Unsupported operation: Unsupported type parameter type node T.
+generic_function_dcall_test: Crash # Unsupported operation: Unsupported type parameter type node T.
+generic_function_typedef_test/01: RuntimeError
+generic_instanceof_test: RuntimeError
+generic_list_checked_test: RuntimeError
+generic_local_functions_test: Crash # Unsupported operation: Unsupported type parameter type node Y.
+generic_methods_closure_test: Crash # Unsupported operation: Unsupported type parameter type node S.
+generic_methods_generic_function_parameter_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/builder_kernel.dart': Failed assertion: line 1728 pos 16: 'type is MethodTypeVariableType': is not true.
+generic_methods_shadowing_test: Crash # Unsupported operation: Unsupported type parameter type node T.
+generic_methods_simple_as_expression_test/01: Crash # 'file:*/pkg/compiler/lib/src/ssa/builder_kernel.dart': Failed assertion: line 1728 pos 16: 'type is MethodTypeVariableType': is not true.
+generic_methods_simple_as_expression_test/02: Crash # 'file:*/pkg/compiler/lib/src/ssa/builder_kernel.dart': Failed assertion: line 1728 pos 16: 'type is MethodTypeVariableType': is not true.
+generic_methods_type_expression_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/builder_kernel.dart': Failed assertion: line 1728 pos 16: 'type is MethodTypeVariableType': is not true.
+generic_tearoff_test: Crash # Unsupported operation: Unsupported type parameter type node T.
+generic_test: RuntimeError
+generic_typedef_test: Crash # Unsupported operation: Unsupported type parameter type node S.
+getter_override2_test/02: MissingCompileTimeError
+getter_override_test/00: MissingCompileTimeError
+getter_override_test/01: MissingCompileTimeError
+getter_override_test/02: MissingCompileTimeError
+getters_setters2_test/01: RuntimeError
+getters_setters2_test/none: RuntimeError
+identical_closure2_test: RuntimeError
+if_null_precedence_test/none: RuntimeError
+inferrer_synthesized_constructor_test: RuntimeError
+infinite_switch_label_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/locals_handler.dart': Failed assertion: line 296 pos 12: 'local != null': is not true.
+infinity_test: RuntimeError
+instance_creation_in_function_annotation_test: RuntimeError
+instanceof2_test: RuntimeError
+instanceof4_test/01: RuntimeError
+instanceof4_test/none: RuntimeError
+integer_division_by_zero_test: RuntimeError
+interface_test/00: Crash # 'package:front_end/src/fasta/kernel/body_builder.dart': Failed assertion: line 2218 pos 14: '!target.enclosingClass.isAbstract': is not true.
+internal_library_test/02: Crash # type 'DillLibraryBuilder' is not a subtype of type 'SourceLibraryBuilder<KernelTypeBuilder, Library>' of 'value' where
+invocation_mirror2_test: RuntimeError
+issue21079_test: RuntimeError
+issue23244_test: RuntimeError
+left_shift_test: RuntimeError
+library_env_test/has_mirror_support: RuntimeError
+list_literal1_test/01: MissingCompileTimeError
+list_literal4_test/00: MissingCompileTimeError
+list_literal4_test/01: MissingCompileTimeError
+list_literal4_test/03: MissingCompileTimeError
+list_literal4_test/04: MissingCompileTimeError
+list_literal4_test/05: MissingCompileTimeError
+list_literal_syntax_test/01: MissingCompileTimeError
+list_literal_syntax_test/02: MissingCompileTimeError
+list_literal_syntax_test/03: MissingCompileTimeError
+malformed2_test/00: MissingCompileTimeError
+many_generic_instanceof_test: RuntimeError
+map_literal8_test: RuntimeError
+method_override7_test/00: MissingCompileTimeError
+method_override7_test/01: MissingCompileTimeError
+method_override7_test/02: MissingCompileTimeError
+method_override8_test/00: MissingCompileTimeError
+method_override8_test/01: MissingCompileTimeError
+mint_arithmetic_test: RuntimeError
+mixin_black_listed_test/02: MissingCompileTimeError
+mixin_forwarding_constructor4_test/01: MissingCompileTimeError
+mixin_forwarding_constructor4_test/02: MissingCompileTimeError
+mixin_forwarding_constructor4_test/03: MissingCompileTimeError
+mixin_illegal_super_use_test/01: MissingCompileTimeError
+mixin_illegal_super_use_test/02: MissingCompileTimeError
+mixin_illegal_super_use_test/03: MissingCompileTimeError
+mixin_illegal_super_use_test/04: MissingCompileTimeError
+mixin_illegal_super_use_test/05: MissingCompileTimeError
+mixin_illegal_super_use_test/06: MissingCompileTimeError
+mixin_illegal_super_use_test/07: MissingCompileTimeError
+mixin_illegal_super_use_test/08: MissingCompileTimeError
+mixin_illegal_super_use_test/09: MissingCompileTimeError
+mixin_illegal_super_use_test/10: MissingCompileTimeError
+mixin_illegal_super_use_test/11: MissingCompileTimeError
+mixin_illegal_superclass_test/01: MissingCompileTimeError
+mixin_illegal_superclass_test/02: MissingCompileTimeError
+mixin_illegal_superclass_test/03: MissingCompileTimeError
+mixin_illegal_superclass_test/04: MissingCompileTimeError
+mixin_illegal_superclass_test/05: MissingCompileTimeError
+mixin_illegal_superclass_test/06: MissingCompileTimeError
+mixin_illegal_superclass_test/07: MissingCompileTimeError
+mixin_illegal_superclass_test/08: MissingCompileTimeError
+mixin_illegal_superclass_test/09: MissingCompileTimeError
+mixin_illegal_superclass_test/10: MissingCompileTimeError
+mixin_illegal_superclass_test/11: MissingCompileTimeError
+mixin_illegal_superclass_test/12: MissingCompileTimeError
+mixin_illegal_superclass_test/13: MissingCompileTimeError
+mixin_illegal_superclass_test/14: MissingCompileTimeError
+mixin_illegal_superclass_test/15: MissingCompileTimeError
+mixin_illegal_superclass_test/16: MissingCompileTimeError
+mixin_illegal_superclass_test/17: MissingCompileTimeError
+mixin_illegal_superclass_test/18: MissingCompileTimeError
+mixin_illegal_superclass_test/19: MissingCompileTimeError
+mixin_illegal_superclass_test/20: MissingCompileTimeError
+mixin_illegal_superclass_test/21: MissingCompileTimeError
+mixin_illegal_superclass_test/22: MissingCompileTimeError
+mixin_illegal_superclass_test/23: MissingCompileTimeError
+mixin_illegal_superclass_test/24: MissingCompileTimeError
+mixin_illegal_superclass_test/25: MissingCompileTimeError
+mixin_illegal_superclass_test/26: MissingCompileTimeError
+mixin_illegal_superclass_test/27: MissingCompileTimeError
+mixin_illegal_superclass_test/28: MissingCompileTimeError
+mixin_illegal_superclass_test/29: MissingCompileTimeError
+mixin_illegal_superclass_test/30: MissingCompileTimeError
+mixin_issue10216_2_test: RuntimeError
+mixin_mixin2_test: RuntimeError
+mixin_mixin3_test: RuntimeError
+mixin_mixin4_test: RuntimeError
+mixin_mixin5_test: RuntimeError
+mixin_mixin6_test: RuntimeError
+mixin_mixin7_test: RuntimeError
+mixin_mixin_bound2_test: RuntimeError
+mixin_mixin_bound_test: RuntimeError
+mixin_mixin_test: RuntimeError
+mixin_mixin_type_arguments_test: RuntimeError
+mixin_of_mixin_test/none: CompileTimeError
+mixin_super_2_test/none: CompileTimeError
+mixin_super_constructor_named_test/01: MissingCompileTimeError
+mixin_super_constructor_positionals_test/01: MissingCompileTimeError
+mixin_super_test: CompileTimeError
+mixin_super_use_test: CompileTimeError
+mixin_superclass_test: CompileTimeError
+mixin_supertype_subclass2_test/01: CompileTimeError
+mixin_supertype_subclass2_test/02: CompileTimeError
+mixin_supertype_subclass2_test/03: CompileTimeError
+mixin_supertype_subclass2_test/04: CompileTimeError
+mixin_supertype_subclass2_test/05: CompileTimeError
+mixin_supertype_subclass2_test/none: CompileTimeError
+mixin_supertype_subclass3_test/01: CompileTimeError
+mixin_supertype_subclass3_test/02: CompileTimeError
+mixin_supertype_subclass3_test/03: CompileTimeError
+mixin_supertype_subclass3_test/04: CompileTimeError
+mixin_supertype_subclass3_test/05: CompileTimeError
+mixin_supertype_subclass3_test/none: CompileTimeError
+mixin_supertype_subclass4_test/01: CompileTimeError
+mixin_supertype_subclass4_test/02: CompileTimeError
+mixin_supertype_subclass4_test/03: CompileTimeError
+mixin_supertype_subclass4_test/04: CompileTimeError
+mixin_supertype_subclass4_test/05: CompileTimeError
+mixin_supertype_subclass4_test/none: CompileTimeError
+mixin_type_parameters_super_test: RuntimeError
+modulo_test: RuntimeError
+multiline_newline_test/04: MissingCompileTimeError
+multiline_newline_test/04r: MissingCompileTimeError
+multiline_newline_test/05: MissingCompileTimeError
+multiline_newline_test/05r: MissingCompileTimeError
+multiline_newline_test/06: MissingCompileTimeError
+multiline_newline_test/06r: MissingCompileTimeError
+named_parameters_default_eq_test/02: MissingCompileTimeError
+nan_identical_test: RuntimeError
+nested_generic_closure_test: Crash # Unsupported operation: Unsupported type parameter type node F.
+nested_switch_label_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/locals_handler.dart': Failed assertion: line 296 pos 12: 'local != null': is not true.
+no_main_test/01: CompileTimeError
+not_enough_positional_arguments_test/00: MissingCompileTimeError
+not_enough_positional_arguments_test/01: MissingCompileTimeError
+not_enough_positional_arguments_test/02: MissingCompileTimeError
+not_enough_positional_arguments_test/03: MissingCompileTimeError
+not_enough_positional_arguments_test/05: MissingCompileTimeError
+not_enough_positional_arguments_test/06: MissingCompileTimeError
+not_enough_positional_arguments_test/07: MissingCompileTimeError
+null_test/02: MissingCompileTimeError
+null_test/03: MissingCompileTimeError
+null_test/mirrors: RuntimeError
+null_test/none: RuntimeError
+number_identity2_test: RuntimeError
+numbers_test: RuntimeError
+operator_test: Crash # 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart': Failed assertion: line 441 pos 16: 'identical(combiner.arguments.positional[0], rhs)': is not true.
+override_field_method1_negative_test: Fail
+override_field_method2_negative_test: Fail
+override_field_method4_negative_test: Fail
+override_field_method5_negative_test: Fail
+override_field_test/01: MissingCompileTimeError
+override_inheritance_mixed_test/01: MissingCompileTimeError
+override_inheritance_mixed_test/02: MissingCompileTimeError
+override_inheritance_mixed_test/03: MissingCompileTimeError
+override_inheritance_mixed_test/04: MissingCompileTimeError
+override_inheritance_mixed_test/08: MissingCompileTimeError
+override_inheritance_mixed_test/09: MissingCompileTimeError
+override_method_with_field_test/01: MissingCompileTimeError
+positional_parameters_type_test/01: MissingCompileTimeError
+positional_parameters_type_test/02: MissingCompileTimeError
+prefix5_negative_test: Crash # 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart': Failed assertion: line 441 pos 16: 'identical(combiner.arguments.positional[0], rhs)': is not true.
+private_super_constructor_test/01: MissingCompileTimeError
+redirecting_factory_default_values_test/01: MissingCompileTimeError
+redirecting_factory_default_values_test/02: MissingCompileTimeError
+redirecting_factory_long_test: RuntimeError
+redirecting_factory_reflection_test: RuntimeError
+regress_20394_test/01: MissingCompileTimeError
+regress_22976_test/01: CompileTimeError
+regress_22976_test/02: CompileTimeError
+regress_22976_test/none: CompileTimeError
+regress_23408_test: Crash # Assertion failure: Missing scope info for j:method(_loadLibraryWrapper).
+regress_24283_test: RuntimeError
+regress_27617_test/1: Crash # Assertion failure: Unexpected constructor j:constructor(Foo._) in ConstructorDataImpl._getConstructorConstant
+regress_28217_test/01: MissingCompileTimeError
+regress_28217_test/none: MissingCompileTimeError
+regress_28255_test: RuntimeError
+regress_28341_test: RuntimeError
+regress_29784_test/01: Crash # Assertion failure: Cannot find value Instance of 'ThisLocal' in () for j:constructor(A.ok).
+regress_29784_test/02: MissingCompileTimeError # Issue 29784
+regress_31057_test: Crash # Unsupported operation: Unsupported type parameter type node B.
+setter_override_test/00: MissingCompileTimeError
+setter_override_test/03: MissingCompileTimeError
+stacktrace_demangle_ctors_test: RuntimeError
+stacktrace_test: RuntimeError
+super_call4_test: Crash # Assertion failure: Missing scope info for j:method(E.boz).
+switch_bad_case_test/01: MissingCompileTimeError
+switch_bad_case_test/02: MissingCompileTimeError
+switch_case_test/00: MissingCompileTimeError
+switch_case_test/01: MissingCompileTimeError
+switch_case_test/02: MissingCompileTimeError
+symbol_literal_test/01: MissingCompileTimeError
+sync_generator2_test/41: Crash # 'file:*/pkg/compiler/lib/src/kernel/element_map_impl.dart': Failed assertion: line 939 pos 18: 'asyncMarker == AsyncMarker.SYNC': is not true.
+sync_generator2_test/52: Crash # 'file:*/pkg/compiler/lib/src/kernel/element_map_impl.dart': Failed assertion: line 939 pos 18: 'asyncMarker == AsyncMarker.SYNC': is not true.
+syntax_test/28: MissingCompileTimeError
+syntax_test/29: MissingCompileTimeError
+syntax_test/30: MissingCompileTimeError
+syntax_test/31: MissingCompileTimeError
+syntax_test/32: MissingCompileTimeError
+syntax_test/33: MissingCompileTimeError
+tearoff_dynamic_test: Crash # Unsupported operation: Unsupported type parameter type node T.
+truncdiv_test: RuntimeError
+try_catch_test/01: MissingCompileTimeError
+type_literal_test: RuntimeError
+typevariable_substitution2_test/02: RuntimeError
+
+[ $compiler == dart2js && $dart2js_with_kernel && $minified ]
+arithmetic_canonicalization_test: RuntimeError
+assertion_initializer_const_function_test/01: MissingCompileTimeError
+assertion_initializer_test: CompileTimeError
+assertion_test: RuntimeError
+async_star_cancel_while_paused_test: RuntimeError
+async_star_test/02: RuntimeError
+bad_override_test/03: MissingCompileTimeError
+bad_override_test/04: MissingCompileTimeError
+bad_override_test/05: MissingCompileTimeError
+bit_operations_test: RuntimeError
+bool_check_test: RuntimeError
+bool_condition_check_test: RuntimeError
 branch_canonicalization_test: RuntimeError
 call_function_apply_test: RuntimeError
+callable_test/none: RuntimeError
 canonical_const2_test: RuntimeError
 check_member_static_test/02: MissingCompileTimeError
 class_cycle_test/02: MissingCompileTimeError
@@ -2606,21 +2588,22 @@
 constructor_named_arguments_test/none: RuntimeError
 constructor_redirect1_negative_test/01: Crash # Stack Overflow
 constructor_redirect1_negative_test/none: MissingCompileTimeError
-constructor_redirect2_negative_test: Crash # Stack Overflow
+constructor_redirect2_negative_test: Crash # Issue 30856
 constructor_redirect2_test/01: MissingCompileTimeError
 constructor_redirect_test/01: Crash # Assertion failure: Cannot find value Instance of 'ThisLocal' in (local(A.named2#x), local(A.named2#y), local(A.named2#z)) for j:constructor(A.named2).
-covariance_setter_test/none: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
-covariance_type_parameter_test/01: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
-covariance_type_parameter_test/02: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
-covariance_type_parameter_test/03: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
-covariance_type_parameter_test/none: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
 covariant_override/runtime_check_test: RuntimeError
+covariant_subtyping_tearoff1_test: RuntimeError
+covariant_subtyping_tearoff2_test: RuntimeError
+covariant_subtyping_tearoff3_test: RuntimeError
 covariant_subtyping_test: Crash # Unsupported operation: Unsupported type parameter type node E.
-cyclic_constructor_test/01: Crash # Stack Overflow
+covariant_subtyping_unsafe_call1_test: RuntimeError
+covariant_subtyping_unsafe_call2_test: RuntimeError
+covariant_subtyping_unsafe_call3_test: RuntimeError
+cyclic_constructor_test/01: Crash # Issue 30856
 deferred_closurize_load_library_test: RuntimeError
-deferred_constraints_constants_test/default_argument2: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
-deferred_constraints_constants_test/none: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
-deferred_constraints_constants_test/reference_after_load: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
+deferred_constraints_constants_test/default_argument2: Crash # NoSuchMethodError: The getter 'closureClassEntity' was called on null.
+deferred_constraints_constants_test/none: Crash # NoSuchMethodError: The getter 'closureClassEntity' was called on null.
+deferred_constraints_constants_test/reference_after_load: Crash # NoSuchMethodError: The getter 'closureClassEntity' was called on null.
 deferred_constraints_type_annotation_test/as_operation: MissingCompileTimeError
 deferred_constraints_type_annotation_test/catch_check: MissingCompileTimeError
 deferred_constraints_type_annotation_test/is_check: MissingCompileTimeError
@@ -2641,6 +2624,7 @@
 deferred_load_library_wrong_args_test/01: MissingRuntimeError
 deferred_not_loaded_check_test: RuntimeError
 deferred_redirecting_factory_test: RuntimeError
+deferred_super_dependency_test/01: Crash # NoSuchMethodError: The getter 'closureClassEntity' was called on null.
 double_int_to_string_test: RuntimeError
 duplicate_export_negative_test: Fail
 duplicate_implements_test/01: MissingCompileTimeError
@@ -2653,6 +2637,7 @@
 external_test/10: MissingRuntimeError
 external_test/13: MissingRuntimeError
 external_test/20: MissingRuntimeError
+f_bounded_quantification4_test: RuntimeError
 factory_redirection_test/07: MissingCompileTimeError
 fauxverride_test/03: MissingCompileTimeError
 fauxverride_test/05: MissingCompileTimeError
@@ -2663,28 +2648,61 @@
 field_override4_test/02: MissingCompileTimeError
 final_attempt_reinitialization_test/01: MissingCompileTimeError
 final_attempt_reinitialization_test/02: MissingCompileTimeError
+full_stacktrace1_test: RuntimeError
+full_stacktrace2_test: RuntimeError
+full_stacktrace3_test: RuntimeError
+function_subtype_bound_closure3_test: RuntimeError
+function_subtype_bound_closure4_test: RuntimeError
+function_subtype_bound_closure7_test: RuntimeError
+function_subtype_call1_test: RuntimeError
+function_subtype_call2_test: RuntimeError
+function_subtype_cast1_test: RuntimeError
+function_subtype_checked0_test: RuntimeError
+function_subtype_closure0_test: RuntimeError
+function_subtype_closure1_test: RuntimeError
+function_subtype_factory1_test: RuntimeError
+function_subtype_inline1_test: RuntimeError
+function_subtype_inline2_test: RuntimeError
+function_subtype_named1_test: RuntimeError
+function_subtype_named2_test: RuntimeError
+function_subtype_not1_test: RuntimeError
+function_subtype_optional1_test: RuntimeError
+function_subtype_optional2_test: RuntimeError
+function_subtype_regression_ddc_588_test: RuntimeError
+function_subtype_setter0_test: RuntimeError
+function_subtype_typearg2_test: RuntimeError
+function_subtype_typearg3_test: RuntimeError
+function_subtype_typearg5_test: RuntimeError
+function_type2_test: RuntimeError
+function_type_alias2_test: RuntimeError
 function_type_alias_test: RuntimeError
+function_type_call_getter2_test/none: RuntimeError
+function_type_test: RuntimeError
 generalized_void_syntax_test: CompileTimeError
-generic_closure_test/01: RuntimeError
-generic_closure_test/none: RuntimeError
-generic_field_mixin4_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in () for j:constructor(C3.).
-generic_field_mixin5_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in () for j:constructor(C3.).
-generic_field_mixin_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in () for j:constructor(C3.).
+generic_field_mixin4_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in ()in j:constructor(C3.).
+generic_field_mixin5_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in ()in j:constructor(C3.).
+generic_field_mixin6_test/none: RuntimeError
+generic_field_mixin_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in ()in j:constructor(C3.).
 generic_function_bounds_test: Crash # Unsupported operation: Unsupported type parameter type node T.
 generic_function_dcall_test: Crash # Unsupported operation: Unsupported type parameter type node T.
 generic_function_typedef_test/01: RuntimeError
 generic_instanceof_test: RuntimeError
+generic_list_checked_test: RuntimeError
 generic_local_functions_test: Crash # Unsupported operation: Unsupported type parameter type node Y.
 generic_methods_closure_test: Crash # Unsupported operation: Unsupported type parameter type node S.
 generic_methods_shadowing_test: Crash # Unsupported operation: Unsupported type parameter type node T.
 generic_tearoff_test: Crash # Unsupported operation: Unsupported type parameter type node T.
+generic_test: RuntimeError
 generic_typedef_test: Crash # Unsupported operation: Unsupported type parameter type node S.
 getter_override2_test/02: MissingCompileTimeError
 getter_override_test/00: MissingCompileTimeError
 getter_override_test/01: MissingCompileTimeError
 getter_override_test/02: MissingCompileTimeError
+getters_setters2_test/01: RuntimeError
+getters_setters2_test/none: RuntimeError
 identical_closure2_test: RuntimeError
-implicit_downcast_during_assert_initializer_test: RuntimeError
+if_null_precedence_test/none: RuntimeError
+inferrer_synthesized_constructor_test: RuntimeError
 infinite_switch_label_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
 infinity_test: RuntimeError
 instance_creation_in_function_annotation_test: RuntimeError
@@ -2694,9 +2712,11 @@
 integer_division_by_zero_test: RuntimeError
 internal_library_test/02: Crash # NoSuchMethodError: Class 'DillLibraryBuilder' has no instance getter 'mixinApplicationClasses'.
 invocation_mirror2_test: RuntimeError
+invocation_mirror_test: RuntimeError
 issue21079_test: RuntimeError
 issue23244_test: RuntimeError
 left_shift_test: RuntimeError
+library_env_test/has_mirror_support: RuntimeError
 list_literal1_test/01: MissingCompileTimeError
 list_literal4_test/00: MissingCompileTimeError
 list_literal4_test/01: MissingCompileTimeError
@@ -2708,7 +2728,6 @@
 list_literal_syntax_test/03: MissingCompileTimeError
 malformed2_test/00: MissingCompileTimeError
 many_generic_instanceof_test: RuntimeError
-map_literal1_test/01: MissingCompileTimeError
 map_literal8_test: RuntimeError
 method_override7_test/00: MissingCompileTimeError
 method_override7_test/01: MissingCompileTimeError
@@ -2720,6 +2739,7 @@
 mixin_forwarding_constructor4_test/01: MissingCompileTimeError
 mixin_forwarding_constructor4_test/02: MissingCompileTimeError
 mixin_forwarding_constructor4_test/03: MissingCompileTimeError
+mixin_generic_test: RuntimeError
 mixin_illegal_super_use_test/01: MissingCompileTimeError
 mixin_illegal_super_use_test/02: MissingCompileTimeError
 mixin_illegal_super_use_test/03: MissingCompileTimeError
@@ -2762,16 +2782,9 @@
 mixin_illegal_superclass_test/29: MissingCompileTimeError
 mixin_illegal_superclass_test/30: MissingCompileTimeError
 mixin_issue10216_2_test: RuntimeError
-mixin_mixin2_test: RuntimeError
-mixin_mixin3_test: RuntimeError
-mixin_mixin4_test: RuntimeError
-mixin_mixin5_test: RuntimeError
-mixin_mixin6_test: RuntimeError
 mixin_mixin7_test: RuntimeError
-mixin_mixin_bound2_test: RuntimeError
-mixin_mixin_bound_test: RuntimeError
 mixin_mixin_test: RuntimeError
-mixin_mixin_type_arguments_test: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
+mixin_mixin_type_arguments_test: RuntimeError
 mixin_of_mixin_test/none: CompileTimeError
 mixin_super_2_test/none: CompileTimeError
 mixin_super_constructor_named_test/01: MissingCompileTimeError
@@ -2798,6 +2811,8 @@
 mixin_supertype_subclass4_test/05: CompileTimeError
 mixin_supertype_subclass4_test/none: CompileTimeError
 mixin_type_parameters_super_test: RuntimeError
+mock_writable_final_field_test: RuntimeError # Issue 30847
+mock_writable_final_private_field_test: RuntimeError # Issue 30847
 modulo_test: RuntimeError
 multiline_newline_test/04: MissingCompileTimeError
 multiline_newline_test/04r: MissingCompileTimeError
@@ -2810,6 +2825,7 @@
 nested_generic_closure_test: Crash # Unsupported operation: Unsupported type parameter type node F.
 nested_switch_label_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
 no_main_test/01: CompileTimeError
+no_such_method_native_test: RuntimeError
 not_enough_positional_arguments_test/00: MissingCompileTimeError
 not_enough_positional_arguments_test/01: MissingCompileTimeError
 not_enough_positional_arguments_test/02: MissingCompileTimeError
@@ -2843,23 +2859,27 @@
 redirecting_factory_long_test: RuntimeError
 redirecting_factory_reflection_test: RuntimeError
 regress_20394_test/01: MissingCompileTimeError
+regress_21795_test: RuntimeError
 regress_22976_test/01: CompileTimeError
 regress_22976_test/02: CompileTimeError
 regress_22976_test/none: CompileTimeError
-regress_24283_test: RuntimeError
+regress_23408_test: Crash # NoSuchMethodError: The getter 'closureClassEntity' was called on null.
+regress_24283_test: RuntimeError, OK # Requires 64 bit numbers.
 regress_27617_test/1: Crash # Assertion failure: Unexpected constructor j:constructor(Foo._) in ConstructorDataImpl._getConstructorConstant
 regress_28217_test/01: MissingCompileTimeError
 regress_28217_test/none: MissingCompileTimeError
 regress_28255_test: RuntimeError
 regress_28341_test: RuntimeError
-regress_29405_test: RuntimeError
-regress_29784_test/01: Crash # Assertion failure: Cannot find value Instance of 'ThisLocal' in () for j:constructor(A.ok).
+regress_29784_test/01: Crash # Issue 29784
 regress_29784_test/02: MissingCompileTimeError # Issue 29784
-regress_30339_test: RuntimeError # Issue 26429
 regress_31057_test: Crash # Unsupported operation: Unsupported type parameter type node B.
 setter_override_test/00: MissingCompileTimeError
 setter_override_test/03: MissingCompileTimeError
+stack_trace_test: RuntimeError
 stacktrace_demangle_ctors_test: RuntimeError
+stacktrace_rethrow_error_test/none: RuntimeError
+stacktrace_rethrow_error_test/withtraceparameter: RuntimeError
+stacktrace_rethrow_nonerror_test: RuntimeError
 stacktrace_test: RuntimeError
 super_call4_test: Crash # NoSuchMethodError: The getter 'thisLocal' was called on null.
 switch_bad_case_test/01: MissingCompileTimeError
@@ -2867,6 +2887,7 @@
 switch_case_test/00: MissingCompileTimeError
 switch_case_test/01: MissingCompileTimeError
 switch_case_test/02: MissingCompileTimeError
+symbol_conflict_test: RuntimeError
 symbol_literal_test/01: MissingCompileTimeError
 syntax_test/28: MissingCompileTimeError
 syntax_test/29: MissingCompileTimeError
@@ -2877,250 +2898,237 @@
 tearoff_dynamic_test: Crash # Unsupported operation: Unsupported type parameter type node T.
 truncdiv_test: RuntimeError
 try_catch_test/01: MissingCompileTimeError
-type_check_const_function_typedef2_test: MissingCompileTimeError
 type_literal_test: RuntimeError
-type_parameter_test/06: Crash # Internal Error: Unexpected type variable in static context.
-type_parameter_test/09: Crash # Internal Error: Unexpected type variable in static context.
-type_variable_scope_test/03: Crash # Internal Error: Unexpected type variable in static context.
+typevariable_substitution2_test/02: RuntimeError
 
-[ $compiler == dart2js && $dart2js_with_kernel ]
-checked_setter_test: RuntimeError # Issue 31128
-checked_setter2_test: RuntimeError # Issue 31128
-built_in_identifier_type_annotation_test/22: Crash # Issue 28815
-built_in_identifier_type_annotation_test/52: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/53: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/54: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/55: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/57: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/58: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/59: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/60: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/61: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/62: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/63: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/64: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/65: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/66: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/67: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/68: MissingCompileTimeError # Issue 28815
-implicit_downcast_during_constructor_invocation_test: RuntimeError
-implicit_downcast_during_for_in_element_test: RuntimeError
-implicit_downcast_during_for_in_iterable_test: RuntimeError
-implicit_downcast_during_function_literal_arrow_test: RuntimeError
-implicit_downcast_during_function_literal_return_test: RuntimeError
-implicit_downcast_during_invocation_test: RuntimeError
-implicit_downcast_during_list_literal_test: RuntimeError
-implicit_downcast_during_redirecting_initializer_test: RuntimeError
-implicit_downcast_during_return_async_test: RuntimeError
-implicit_downcast_during_super_initializer_test: RuntimeError
-implicit_downcast_during_yield_star_test: RuntimeError
-implicit_downcast_during_yield_test: RuntimeError
+[ $compiler == dart2js && !$dart2js_with_kernel ]
+accessor_conflict_export2_test: Crash # Issue 25626
+accessor_conflict_export_test: Crash # Issue 25626
+assertion_initializer_const_error2_test/*: Crash # Issue 30038
+assertion_initializer_const_error2_test/none: Pass
+assertion_initializer_test: Crash
+bad_constructor_test/05: CompileTimeError
+bad_typedef_test/00: Crash # Issue 28214
+bug31436_test: RuntimeError
+built_in_identifier_type_annotation_test/13: Crash # Issue 28815
+built_in_identifier_type_annotation_test/22: MissingCompileTimeError # Error only in strong mode
+built_in_identifier_type_annotation_test/30: Crash # Issue 28815
+built_in_identifier_type_annotation_test/52: Crash # Issue 28815
+built_in_identifier_type_annotation_test/53: Crash # Issue 28815
+built_in_identifier_type_annotation_test/54: Crash # Issue 28815
+built_in_identifier_type_annotation_test/55: Crash # Issue 28815
+built_in_identifier_type_annotation_test/57: Crash # Issue 28815
+built_in_identifier_type_annotation_test/58: Crash # Issue 28815
+built_in_identifier_type_annotation_test/59: Crash # Issue 28815
+built_in_identifier_type_annotation_test/60: Crash # Issue 28815
+built_in_identifier_type_annotation_test/61: Crash # Issue 28815
+built_in_identifier_type_annotation_test/62: Crash # Issue 28815
+built_in_identifier_type_annotation_test/63: Crash # Issue 28815
+built_in_identifier_type_annotation_test/64: Crash # Issue 28815
+built_in_identifier_type_annotation_test/65: Crash # Issue 28815
+built_in_identifier_type_annotation_test/66: Crash # Issue 28815
+built_in_identifier_type_annotation_test/67: Crash # Issue 28815
+built_in_identifier_type_annotation_test/68: Crash # Issue 28815
+built_in_identifier_type_annotation_test/81: Crash # Issue 28815
+call_function_apply_test: RuntimeError # Issue 23873
+canonical_const2_test: RuntimeError, OK # Issue 1533
+closure_param_null_to_object_test: RuntimeError
+compile_time_constant_o_test/01: MissingCompileTimeError
+compile_time_constant_o_test/02: MissingCompileTimeError
+conditional_method_invocation_test/05: MissingCompileTimeError
+conditional_method_invocation_test/06: MissingCompileTimeError
+conditional_method_invocation_test/07: MissingCompileTimeError
+conditional_method_invocation_test/08: MissingCompileTimeError
+conditional_method_invocation_test/12: MissingCompileTimeError
+conditional_method_invocation_test/13: MissingCompileTimeError
+conditional_method_invocation_test/18: MissingCompileTimeError
+conditional_method_invocation_test/19: MissingCompileTimeError
+conditional_property_access_test/04: MissingCompileTimeError
+conditional_property_access_test/05: MissingCompileTimeError
+conditional_property_access_test/06: MissingCompileTimeError
+conditional_property_access_test/10: MissingCompileTimeError
+conditional_property_access_test/11: MissingCompileTimeError
+conditional_property_access_test/16: MissingCompileTimeError
+conditional_property_access_test/17: MissingCompileTimeError
+conditional_property_assignment_test/04: MissingCompileTimeError
+conditional_property_assignment_test/05: MissingCompileTimeError
+conditional_property_assignment_test/06: MissingCompileTimeError
+conditional_property_assignment_test/10: MissingCompileTimeError
+conditional_property_assignment_test/11: MissingCompileTimeError
+conditional_property_assignment_test/12: MissingCompileTimeError
+conditional_property_assignment_test/13: MissingCompileTimeError
+conditional_property_assignment_test/27: MissingCompileTimeError
+conditional_property_assignment_test/28: MissingCompileTimeError
+conditional_property_assignment_test/32: MissingCompileTimeError
+conditional_property_assignment_test/33: MissingCompileTimeError
+conditional_property_assignment_test/34: MissingCompileTimeError
+conditional_property_assignment_test/35: MissingCompileTimeError
+conditional_property_increment_decrement_test/04: MissingCompileTimeError
+conditional_property_increment_decrement_test/08: MissingCompileTimeError
+conditional_property_increment_decrement_test/12: MissingCompileTimeError
+conditional_property_increment_decrement_test/16: MissingCompileTimeError
+conditional_property_increment_decrement_test/21: MissingCompileTimeError
+conditional_property_increment_decrement_test/22: MissingCompileTimeError
+conditional_property_increment_decrement_test/27: MissingCompileTimeError
+conditional_property_increment_decrement_test/28: MissingCompileTimeError
+conditional_property_increment_decrement_test/33: MissingCompileTimeError
+conditional_property_increment_decrement_test/34: MissingCompileTimeError
+conditional_property_increment_decrement_test/39: MissingCompileTimeError
+conditional_property_increment_decrement_test/40: MissingCompileTimeError
+const_constructor2_test/05: MissingCompileTimeError
+const_constructor2_test/06: MissingCompileTimeError
+const_dynamic_type_literal_test/03: CompileTimeError # Issue 23009
+const_switch_test/02: RuntimeError # Issue 17960
+const_switch_test/04: RuntimeError # Issue 17960
+const_types_test/01: MissingCompileTimeError
+const_types_test/02: MissingCompileTimeError
+const_types_test/03: MissingCompileTimeError
+const_types_test/04: MissingCompileTimeError
+const_types_test/05: MissingCompileTimeError
+const_types_test/06: MissingCompileTimeError
+const_types_test/13: MissingCompileTimeError
+const_types_test/34: MissingCompileTimeError
+const_types_test/35: MissingCompileTimeError
+const_types_test/39: MissingCompileTimeError
+const_types_test/40: MissingCompileTimeError
+deferred_constraints_type_annotation_test/as_operation: MissingCompileTimeError
+deferred_constraints_type_annotation_test/catch_check: MissingCompileTimeError
+deferred_constraints_type_annotation_test/is_check: MissingCompileTimeError
+deferred_constraints_type_annotation_test/new_before_load: MissingCompileTimeError
+deferred_constraints_type_annotation_test/new_generic2: MissingCompileTimeError
+deferred_constraints_type_annotation_test/new_generic3: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation1: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_generic1: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_generic2: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_generic3: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_generic4: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_null: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_top_level: MissingCompileTimeError
+deferred_not_loaded_check_test: Fail # Issue 27577
+double_int_to_string_test: RuntimeError # Issue 1533
+enum_test: Fail # Issue 28340
+expect_test: RuntimeError, OK # Issue 13080
+external_test/10: CompileTimeError # Issue 12887
+external_test/13: CompileTimeError # Issue 12887
+external_test/20: CompileTimeError # Issue 12887
+final_attempt_reinitialization_test.dart: Skip # Issue 29659
+final_field_override_test: RuntimeError
+full_stacktrace1_test: Pass, RuntimeError # Issue 12698
+full_stacktrace2_test: Pass, RuntimeError # Issue 12698
+full_stacktrace3_test: Pass, RuntimeError # Issue 12698
+generalized_void_syntax_test: CompileTimeError # Issue #30176.
+generic_field_mixin4_test: Crash # Issue 18651
+generic_field_mixin5_test: Crash # Issue 18651
+generic_function_typedef2_test/00: MissingCompileTimeError # Issue 28214
+generic_function_typedef2_test/01: MissingCompileTimeError # Issue 28214
+generic_function_typedef2_test/02: MissingCompileTimeError # Issue 28214
+generic_function_typedef2_test/03: MissingCompileTimeError # Issue 28214
+generic_function_typedef2_test/05: Crash # Issue 28214
+generic_function_typedef2_test/06: Crash # Issue 28214
+generic_methods_local_variable_declaration_test: RuntimeError
+getter_setter_in_lib_test: Fail # Issue 23288
+identical_closure2_test: RuntimeError # Issue 1533, Issue 12596
+if_null_assignment_behavior_test/13: Crash # Issue 23491
+if_null_assignment_behavior_test/14: Crash # Issue 23491
+infinity_test: RuntimeError # Issue 4984
+integer_division_by_zero_test: RuntimeError # Issue 8301
+invocation_mirror2_test: RuntimeError # Issue 6490 (wrong retval).
+left_shift_test: RuntimeError # Issue 1533
+list_literal4_test/00: MissingCompileTimeError
+list_literal4_test/01: MissingCompileTimeError
+list_literal4_test/03: MissingCompileTimeError
+list_literal4_test/04: MissingCompileTimeError
+list_literal4_test/05: MissingCompileTimeError
+list_literal_syntax_test/01: MissingCompileTimeError
+list_literal_syntax_test/02: MissingCompileTimeError
+list_literal_syntax_test/03: MissingCompileTimeError
+method_name_test: Fail # issue 25574
+method_override5_test: RuntimeError # Issue 12809
+mint_arithmetic_test: RuntimeError # Issue 1533
+mixin_mixin2_test: RuntimeError # Issue 13109.
+mixin_mixin3_test: RuntimeError # Issue 13109.
+mixin_mixin_type_arguments_test: RuntimeError # Issue 29587
+mixin_of_mixin_test/none: CompileTimeError
+mixin_super_2_test/none: CompileTimeError
+mixin_super_bound2_test: CompileTimeError # Issue 23773
+mixin_super_constructor_named_test/01: Fail # Issue 15101
+mixin_super_constructor_positionals_test/01: Fail # Issue 15101
+mixin_super_test: CompileTimeError # Issue 23773
+mixin_super_use_test: CompileTimeError # Issue 23773
+mixin_superclass_test: CompileTimeError # Issue 23773
+mixin_supertype_subclass2_test: CompileTimeError # Issue 23773
+mixin_supertype_subclass3_test: CompileTimeError # Issue 23773
+mixin_supertype_subclass4_test: CompileTimeError # Issue 23773
+mixin_type_parameters_super_test: RuntimeError
+mixin_with_two_implicit_constructors_test: MissingCompileTimeError
+mock_writable_final_private_field_test: CompileTimeError # Issue 17526
+modulo_test: RuntimeError # Issue 15246
+multiline_newline_test/01: CompileTimeError # Issue 23888
+multiline_newline_test/01r: CompileTimeError # Issue 23888
+multiline_newline_test/02: CompileTimeError # Issue 23888
+multiline_newline_test/02r: CompileTimeError # Issue 23888
+multiline_newline_test/03: RuntimeError
+multiline_newline_test/03r: RuntimeError
+multiline_newline_test/04: MissingCompileTimeError # Issue 23888
+multiline_newline_test/04r: MissingCompileTimeError # Issue 23888
+multiline_newline_test/05: MissingCompileTimeError # Issue 23888
+multiline_newline_test/05r: MissingCompileTimeError # Issue 23888
+multiline_newline_test/none: RuntimeError # Issue 23888
+nan_identical_test: Fail # Issue 11551
+number_identity2_test: RuntimeError # Issue 12596
+numbers_test: RuntimeError, OK # Issue 1533
 object_has_no_call_method_test/02: MissingCompileTimeError
 object_has_no_call_method_test/05: MissingCompileTimeError
 object_has_no_call_method_test/08: MissingCompileTimeError
+positional_parameters_type_test/01: MissingCompileTimeError
+positional_parameters_type_test/02: MissingCompileTimeError
+regress_22976_test: CompileTimeError # Issue 23132
+regress_24283_test: RuntimeError # Issue 1533
+scope_variable_test/01: MissingCompileTimeError # Issue 13016
+setter4_test: CompileTimeError # issue 13639
+stacktrace_demangle_ctors_test: Fail # dart2js stack traces are not always compliant.
+stacktrace_rethrow_error_test: Pass, RuntimeError # Issue 12698
+stacktrace_rethrow_nonerror_test: Pass, RuntimeError # Issue 12698
+stacktrace_test: Pass, RuntimeError # # Issue 12698
+truncdiv_test: RuntimeError # Issue 15246
+try_catch_on_syntax_test/10: Fail # Issue 19823
+try_catch_on_syntax_test/11: Fail # Issue 19823
+type_variable_conflict_test/01: Fail # Issue 13702
+type_variable_conflict_test/02: Fail # Issue 13702
+type_variable_conflict_test/03: Fail # Issue 13702
+type_variable_conflict_test/04: Fail # Issue 13702
+type_variable_conflict_test/05: Fail # Issue 13702
+type_variable_conflict_test/06: Fail # Issue 13702
 
-[ $compiler == dart2js && $dart2js_with_kernel && !$checked ]
-assertion_initializer_const_error2_test/none: Pass
-assertion_initializer_const_error2_test/*: CompileTimeError # Issue #31321
-cascaded_forwarding_stubs_generic_test: RuntimeError
-cascaded_forwarding_stubs_test: RuntimeError
-checked_setter3_test: RuntimeError # Issue 31128
-implicit_downcast_during_assignment_test: RuntimeError
-implicit_downcast_during_combiner_test: RuntimeError
-implicit_downcast_during_compound_assignment_test: RuntimeError
-implicit_downcast_during_conditional_expression_test: RuntimeError
-implicit_downcast_during_constructor_initializer_test: RuntimeError
-implicit_downcast_during_do_test: RuntimeError
-implicit_downcast_during_factory_constructor_invocation_test: RuntimeError
-implicit_downcast_during_field_declaration_test: RuntimeError
-implicit_downcast_during_for_condition_test: RuntimeError
-implicit_downcast_during_for_initializer_expression_test: RuntimeError
-implicit_downcast_during_for_initializer_var_test: RuntimeError
-implicit_downcast_during_if_null_assignment_test: RuntimeError
-implicit_downcast_during_if_statement_test: RuntimeError
-implicit_downcast_during_indexed_assignment_test: RuntimeError
-implicit_downcast_during_indexed_compound_assignment_test: RuntimeError
-implicit_downcast_during_indexed_get_test: RuntimeError
-implicit_downcast_during_indexed_if_null_assignment_test: RuntimeError
-implicit_downcast_during_logical_expression_test: RuntimeError
-implicit_downcast_during_map_literal_test: RuntimeError
-implicit_downcast_during_method_invocation_test: RuntimeError
-implicit_downcast_during_not_test: RuntimeError
-implicit_downcast_during_null_aware_method_invocation_test: RuntimeError
-implicit_downcast_during_return_test: RuntimeError
-implicit_downcast_during_static_method_invocation_test: RuntimeError
-implicit_downcast_during_super_method_invocation_test: RuntimeError
-implicit_downcast_during_variable_declaration_test: RuntimeError
-implicit_downcast_during_while_statement_test: RuntimeError
-
-[ $compiler == dart2js && $dart2js_with_kernel && $checked ]
-known_identifier_usage_error_test/none: RuntimeError # Issue 28815
-built_in_identifier_test: RuntimeError # Issue 28815
-built_in_identifier_type_annotation_test/none: RuntimeError # Issue 28815
-built_in_identifier_type_annotation_test/05: RuntimeError # Issue 28815
-built_in_identifier_type_annotation_test/39: RuntimeError # Issue 28815
-built_in_identifier_type_annotation_test/56: RuntimeError # Issue 28815
-built_in_identifier_type_annotation_test/73: RuntimeError # Issue 28815
-
-[ $compiler == dart2js && $dart2js_with_kernel && $minified && $checked ]
-inline_super_field_test: Crash
-typedef_is_test: Crash
-
-[ $compiler == dart2js && !$dart2js_with_kernel && $runtime != none ]
-async_star_cancel_while_paused_test: RuntimeError # Issue 22853
-
-[ $compiler == dart2js && $runtime == jsshell && !$dart2js_with_kernel ]
-async_star_await_pauses_test: RuntimeError # Need triage
-async_star_no_cancel2_test: RuntimeError # Need triage
-async_star_no_cancel_test: RuntimeError # Need triage
-await_for_test: Skip # Jsshell does not provide periodic timers, Issue 7728
-regress_23996_test: RuntimeError # Jsshell does not provide non-zero timers, Issue 7728
-
-[ $compiler == dart2js && $runtime != none ]
-covariant_subtyping_with_substitution_test: RuntimeError
-covariant_tear_off_type_test: RuntimeError
-
-[ $compiler == dart2js && $runtime == jsshell ]
-async_star_test/01: RuntimeError
-async_star_test/02: RuntimeError
-async_star_test/03: RuntimeError
-async_star_test/04: RuntimeError
-async_star_test/05: RuntimeError
-async_star_test/none: RuntimeError
-field_override_optimization_test: RuntimeError
-field_type_check2_test/01: MissingRuntimeError
-
-[ $compiler == dart2js && $runtime == chrome ]
-field_override_optimization_test: RuntimeError
-field_type_check2_test/01: MissingRuntimeError
-
-[ $compiler == dart2js && $runtime == d8 && !$checked ]
-field_override_optimization_test: RuntimeError
-field_type_check2_test/01: MissingRuntimeError
-
-[ $compiler == dart2js && $checked && !$dart2js_with_kernel ]
-async_return_types_test/nestedFuture: Fail # Issue 26429
-async_return_types_test/wrongTypeParameter: Fail # Issue 26429
-check_member_static_test/01: MissingCompileTimeError
-check_method_override_test/01: MissingCompileTimeError
-check_method_override_test/02: MissingCompileTimeError
-covariant_subtyping_test: CompileTimeError
-default_factory2_test/01: Fail # Issue 14121
-function_malformed_result_type_test/00: MissingCompileTimeError
-function_type_alias_test: RuntimeError
-function_type_call_getter2_test/00: MissingCompileTimeError
-function_type_call_getter2_test/01: MissingCompileTimeError
-function_type_call_getter2_test/02: MissingCompileTimeError
-function_type_call_getter2_test/03: MissingCompileTimeError
-function_type_call_getter2_test/04: MissingCompileTimeError
-malbounded_instantiation_test/01: Fail # Issue 12702
-malbounded_redirecting_factory_test/02: Fail # Issue 12825
-malbounded_redirecting_factory_test/03: Fail # Issue 12825
-malbounded_type_cast2_test: Fail # Issue 14121
-malbounded_type_cast_test: Fail # Issue 14121
-malbounded_type_test_test/03: Fail # Issue 14121
-malbounded_type_test_test/04: Fail # Issue 14121
-regress_26133_test: RuntimeError # Issue 26429
-regress_29405_test: Fail # Issue 29422
-function_type_call_getter2_test/05: MissingCompileTimeError
-
-[ $compiler == dart2js && !$checked ]
-covariance_field_test/01: RuntimeError
-covariance_field_test/02: RuntimeError
-covariance_field_test/03: RuntimeError
-covariance_field_test/04: RuntimeError
-covariance_field_test/05: RuntimeError
-covariance_method_test/01: RuntimeError
-covariance_method_test/02: RuntimeError
-covariance_method_test/03: RuntimeError
-covariance_method_test/04: RuntimeError
-covariance_method_test/05: RuntimeError
-covariance_method_test/06: RuntimeError
-covariance_setter_test/01: RuntimeError
-covariance_setter_test/02: RuntimeError
-covariance_setter_test/03: RuntimeError
-covariance_setter_test/04: RuntimeError
-covariance_setter_test/05: RuntimeError
-type_argument_in_super_type_test: RuntimeError
-type_check_const_function_typedef2_test: MissingCompileTimeError
-recursive_mixin_test: RuntimeError # no check without --checked
-
-[ $compiler == dart2js && $checked ]
-covariant_subtyping_test: CompileTimeError
-
-[ $compiler == dart2js && $runtime == safarimobilesim && !$dart2js_with_kernel ]
-call_through_getter_test: Fail, OK
-
-[ $compiler == dart2js && $fast_startup && !$dart2js_with_kernel ]
+[ $compiler == dart2js && !$dart2js_with_kernel && $fast_startup ]
 const_evaluation_test/*: Fail # mirrors not supported
+deferred_constraints_constants_test: Pass # mirrors not supported, passes for the wrong reason
 deferred_constraints_constants_test/none: Fail # mirrors not supported
 deferred_constraints_constants_test/reference_after_load: Fail # mirrors not supported
-deferred_constraints_constants_test: Pass # mirrors not supported, passes for the wrong reason
 enum_mirror_test: Fail # mirrors not supported
 field_increment_bailout_test: Fail # mirrors not supported
 instance_creation_in_function_annotation_test: Fail # mirrors not supported
 invocation_mirror2_test: Fail # mirrors not supported
 invocation_mirror_invoke_on2_test: Fail # mirrors not supported
 invocation_mirror_invoke_on_test: Fail # mirrors not supported
+issue21079_test: Fail # mirrors not supported
 library_env_test/has_mirror_support: Fail # mirrors not supported
 library_env_test/has_no_mirror_support: Pass # fails for the wrong reason.
-issue21079_test: Fail # mirrors not supported
 many_overridden_no_such_method_test: Fail # mirrors not supported
 no_such_method_test: Fail # mirrors not supported
 null_test/0*: Pass # mirrors not supported, fails for the wrong reason
 null_test/none: Fail # mirrors not supported
 overridden_no_such_method_test: Fail # mirrors not supported
-regress_28255_test: Fail # mirrors not supported
-super_call4_test: Fail # mirrors not supported
-super_getter_setter_test: CompileTimeError
-vm/reflect_core_vm_test: Fail # mirrors not supported
 redirecting_factory_reflection_test: Fail # mirrors not supported
 regress_13462_0_test: Fail # mirrors not supported
 regress_13462_1_test: Fail # mirrors not supported
 regress_18535_test: Fail # mirrors not supported
+regress_28255_test: Fail # mirrors not supported
+super_call4_test: Fail # mirrors not supported
+super_getter_setter_test: CompileTimeError
+vm/reflect_core_vm_test: Fail # mirrors not supported
 
-[ $compiler == dart2js && $runtime == chrome && $system == macos && !$dart2js_with_kernel ]
-await_future_test: Pass, Timeout # Issue 26735
-
-[ $compiler == dart2js && $system == windows && !$dart2js_with_kernel ]
-string_literals_test: Pass, RuntimeError # Failures on dart2js-win7-chrome-4-4-be and dart2js-win7-ie11ff-4-4-be
-
-[ $compiler == dart2js && $runtime != drt && !$dart2js_with_kernel ]
-issue23244_test: RuntimeError # 23244
-
-[ $compiler == dart2js && $runtime == chrome && !$dart2js_with_kernel ]
-enum_mirror_test: pass
-
-[ $compiler == dart2js && $runtime == chromeOnAndroid && !$dart2js_with_kernel ]
-override_field_test/02: Pass, Slow # TODO(kasperl): Please triage.
-
-[ $compiler == dart2js && $browser && !$dart2js_with_kernel ]
-library_env_test/has_no_io_support: Pass # Issue 27398
-library_env_test/has_io_support: RuntimeError # Issue 27398
-config_import_test: Fail # Test flag is not passed to the compiler.
-
-[ $compiler == dart2js && $runtime == safari && !$dart2js_with_kernel ]
-round_test: Fail, OK # Common JavaScript engine Math.round bug.
-
-[ $compiler == dart2js && $runtime == ff && !$dart2js_with_kernel ]
-field_override_optimization_test: RuntimeError
-field_type_check2_test/01: MissingRuntimeError
-round_test: Pass, Fail, OK # Fixed in ff 35. Common JavaScript engine Math.round bug.
-
-[ $compiler == dart2js && $runtime == drt && !$checked && !$dart2js_with_kernel ]
-field_type_check2_test/01: MissingRuntimeError
-field_override_optimization_test: RuntimeError
-
-[ $compiler == dart2js && $runtime == safari && !$dart2js_with_kernel ]
-field_override_optimization_test: RuntimeError
-field_type_check2_test/01: MissingRuntimeError
-
-[ $compiler == dart2js && $minified && !$dart2js_with_kernel ]
-f_bounded_quantification4_test: Fail, Pass # Issue 12605
-symbol_conflict_test: RuntimeError # Issue 23857
-mixin_generic_test: Fail # Issue 12605
-
-[ $compiler == dart2js && $host_checked && !$dart2js_with_kernel ]
+[ $compiler == dart2js && !$dart2js_with_kernel && $host_checked ]
 implicit_downcast_during_for_in_element_test: Crash
 implicit_downcast_during_for_in_iterable_test: Crash
 regress_26855_test/1: Crash # Issue 26867
@@ -3128,6 +3136,24 @@
 regress_26855_test/3: Crash # Issue 26867
 regress_26855_test/4: Crash # Issue 26867
 
-[ $compiler == dart2js && $csp && $browser && !$fast_startup ]
-conditional_import_string_test: Fail # Issue 30615
-conditional_import_test: Fail # Issue 30615
+[ $compiler == dart2js && !$dart2js_with_kernel && $minified ]
+f_bounded_quantification4_test: Fail, Pass # Issue 12605
+mixin_generic_test: Fail # Issue 12605
+symbol_conflict_test: RuntimeError # Issue 23857
+
+[ $compiler == dart2js && !$dart2js_with_kernel && !$minified ]
+vm/async_await_catch_stacktrace_test: RuntimeError
+
+[ $compiler == dart2js && $minified ]
+cyclic_type2_test: RuntimeError # Issue 31054
+cyclic_type_test/0*: RuntimeError # Issue 31054
+f_bounded_quantification5_test: RuntimeError # Issue 31054
+generic_closure_test: RuntimeError # Issue 31054
+mixin_mixin2_test: RuntimeError # Issue 31054
+mixin_mixin3_test: RuntimeError # Issue 31054
+mixin_mixin4_test: RuntimeError # Issue 31054
+mixin_mixin5_test: RuntimeError # Issue 31054
+mixin_mixin6_test: RuntimeError # Issue 31054
+mixin_mixin_bound2_test: RuntimeError # Issue 31054
+mixin_mixin_bound_test: RuntimeError # Issue 31054
+
diff --git a/tests/language_2/language_2_dartdevc.status b/tests/language_2/language_2_dartdevc.status
index 5830537..f996cb1 100644
--- a/tests/language_2/language_2_dartdevc.status
+++ b/tests/language_2/language_2_dartdevc.status
@@ -1,112 +1,8 @@
 # Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
-
 # Sections in this file should contain "$compiler == dartdevc" or dartdevk.
 
-# Compiler tests for dartdevc and dartdevk.  These contain common expectations
-# for all runtimes including $runtime == none.  They are organized by: shared
-# expectations for dartdevc and dartdevk, then expectations for dartdevc, and
-# then expectations for dartdevk.
-[ ($compiler == dartdevc || $compiler == dartdevk) && $runtime == none ]
-unhandled_exception_negative_test: Fail
-closure_call_wrong_argument_count_negative_test: Fail
-
-# Skip Kernel tests on Windows until bot has been fixed (Issue 31539)
-[ $compiler == dartdevk && $system == windows ]
-*: Skip
-
-[ ($compiler == dartdevc && $runtime == none) || $compiler == dartdevk ]
-instantiate_type_variable_test/01: CompileTimeError
-setter_no_getter_call_test/01: CompileTimeError
-
-[ $compiler == dartdevc || $compiler == dartdevk ]
-vm/*: SkipByDesign # VM only tests.; VM only tests.
-abstract_override_adds_optional_args_concrete_subclass_test: MissingCompileTimeError # Issue #30568
-abstract_override_adds_optional_args_concrete_test: MissingCompileTimeError # Issue #30568
-abstract_override_adds_optional_args_supercall_test: MissingCompileTimeError # Issue #30568
-async_return_types_test/nestedFuture: MissingCompileTimeError
-bit_operations_test/01: MissingCompileTimeError
-bit_operations_test/02: MissingCompileTimeError
-built_in_identifier_prefix_test: CompileTimeError
-config_import_corelib_test: CompileTimeError
-field3_test/01: MissingCompileTimeError
-generic_function_type_as_type_argument_test/01: MissingCompileTimeError # Issue 29920
-generic_function_type_as_type_argument_test/02: MissingCompileTimeError # Issue 29920
-generic_list_checked_test: CompileTimeError
-generic_methods_overriding_test/01: MissingCompileTimeError # Issue 29920
-generic_methods_overriding_test/03: MissingCompileTimeError # Issue 29920
-generic_tearoff_test: CompileTimeError
-internal_library_test/02: Crash
-int64_literal_test/*: Skip # This is testing Dart 2.0 int64 semantics.
-method_override7_test/03: MissingCompileTimeError # Issue 30514
-multiline_newline_test/04: MissingCompileTimeError
-multiline_newline_test/04r: MissingCompileTimeError
-multiline_newline_test/05: MissingCompileTimeError
-multiline_newline_test/05r: MissingCompileTimeError
-override_field_test/03: MissingCompileTimeError
-override_inheritance_abstract_test/02: MissingCompileTimeError
-override_inheritance_abstract_test/03: MissingCompileTimeError
-override_inheritance_abstract_test/04: MissingCompileTimeError
-override_inheritance_abstract_test/08: MissingCompileTimeError
-override_inheritance_abstract_test/09: MissingCompileTimeError
-override_inheritance_abstract_test/10: MissingCompileTimeError
-override_inheritance_abstract_test/11: MissingCompileTimeError
-override_inheritance_abstract_test/12: MissingCompileTimeError
-override_inheritance_abstract_test/13: MissingCompileTimeError
-override_inheritance_abstract_test/14: MissingCompileTimeError
-override_inheritance_abstract_test/17: MissingCompileTimeError
-override_inheritance_abstract_test/19: MissingCompileTimeError
-override_inheritance_abstract_test/20: MissingCompileTimeError
-override_inheritance_abstract_test/21: MissingCompileTimeError
-override_inheritance_abstract_test/22: MissingCompileTimeError
-override_inheritance_abstract_test/23: MissingCompileTimeError
-override_inheritance_abstract_test/24: MissingCompileTimeError
-override_inheritance_abstract_test/25: MissingCompileTimeError
-override_inheritance_abstract_test/26: MissingCompileTimeError
-override_inheritance_no_such_method_test/13: MissingCompileTimeError
-parser_quirks_test: CompileTimeError
-regress_27617_test/1: MissingCompileTimeError
-void_type_function_types_test/none: CompileTimeError # Issue 30514
-void_type_override_test/none: CompileTimeError # Issue 30514
-void_type_usage_test/call_as: CompileTimeError # Issue 30514
-void_type_usage_test/call_for: CompileTimeError # Issue 30514
-void_type_usage_test/call_stmt: CompileTimeError # Issue 30514
-void_type_usage_test/field_assign2: CompileTimeError # Issue 30514
-void_type_usage_test/field_assign: CompileTimeError # Issue 30514
-void_type_usage_test/final_local_as: CompileTimeError # Issue 30514
-void_type_usage_test/final_local_for: CompileTimeError # Issue 30514
-void_type_usage_test/final_local_stmt: CompileTimeError # Issue 30514
-void_type_usage_test/global_as: CompileTimeError # Issue 30514
-void_type_usage_test/global_for: CompileTimeError # Issue 30514
-void_type_usage_test/global_for_in2: CompileTimeError # Issue 30514
-void_type_usage_test/global_stmt: CompileTimeError # Issue 30514
-void_type_usage_test/instance2_as: CompileTimeError # Issue 30514
-void_type_usage_test/instance2_for: CompileTimeError # Issue 30514
-void_type_usage_test/instance2_for_in3: CompileTimeError # Issue 30514
-void_type_usage_test/instance2_stmt: CompileTimeError # Issue 30514
-void_type_usage_test/instance3_as: CompileTimeError # Issue 30514
-void_type_usage_test/instance3_for: CompileTimeError # Issue 30514
-void_type_usage_test/instance3_for_in3: CompileTimeError # Issue 30514
-void_type_usage_test/instance3_stmt: CompileTimeError # Issue 30514
-void_type_usage_test/instance_as: CompileTimeError # Issue 30514
-void_type_usage_test/instance_for: CompileTimeError # Issue 30514
-void_type_usage_test/instance_stmt: CompileTimeError # Issue 30514
-void_type_usage_test/local_as: CompileTimeError # Issue 30514
-void_type_usage_test/local_assign: CompileTimeError # Issue 30514
-void_type_usage_test/local_for: CompileTimeError # Issue 30514
-void_type_usage_test/local_for_in2: CompileTimeError # Issue 30514
-void_type_usage_test/local_stmt: CompileTimeError # Issue 30514
-void_type_usage_test/none: CompileTimeError # Issue 30514
-void_type_usage_test/param_as: CompileTimeError # Issue 30514
-void_type_usage_test/param_for: CompileTimeError # Issue 30514
-void_type_usage_test/param_for_in2: CompileTimeError # Issue 30514
-void_type_usage_test/param_stmt: CompileTimeError # Issue 30514
-void_type_usage_test/paren_as: CompileTimeError # Issue 30514
-void_type_usage_test/paren_for: CompileTimeError # Issue 30514
-void_type_usage_test/paren_stmt: CompileTimeError # Issue 30514
-void_type_usage_test/setter_assign: CompileTimeError # Issue 30514
-
 [ $compiler == dartdevc ]
 accessor_conflict_export2_test: CompileTimeError # Issue 25626
 accessor_conflict_export_test: CompileTimeError # Issue 25626
@@ -121,11 +17,14 @@
 assertion_initializer_const_error2_test/none: Pass
 assertion_initializer_const_function_test/01: Crash
 assertion_initializer_test: CompileTimeError
-black_listed_test/none: fail # Issue 14228
+await_test: Crash # Issue 31540
+black_listed_test/none: Fail # Issue 14228
+bug31436_test: CompileTimeError
 built_in_identifier_prefix_test: CompileTimeError
 built_in_identifier_type_annotation_test/22: MissingCompileTimeError # Issue 28816
 cascaded_forwarding_stubs_generic_test: RuntimeError
 cascaded_forwarding_stubs_test: CompileTimeError
+closure_param_null_to_object_test: RuntimeError
 combiner_type_lookup_indexed_test: CompileTimeError # Issue #31484
 combiner_type_lookup_instance_test: CompileTimeError # Issue #31484
 combiner_type_lookup_static_test: CompileTimeError # Issue #31484
@@ -146,6 +45,7 @@
 final_syntax_test/02: MissingCompileTimeError
 final_syntax_test/03: MissingCompileTimeError
 final_syntax_test/04: MissingCompileTimeError
+forwarding_stub_tearoff_test: CompileTimeError
 fuzzy_arrows_test/01: MissingCompileTimeError
 generic_local_functions_test: CompileTimeError
 generic_methods_closure_test: CompileTimeError # Issue 29920
@@ -224,10 +124,6 @@
 void_type_callbacks_test/00: MissingCompileTimeError # Issue 30514
 void_type_callbacks_test/01: MissingCompileTimeError # Issue 30514
 
-[ $compiler == dartdevk && $runtime == none ]
-no_such_method_negative_test: Fail
-prefix6_negative_test: Fail
-
 [ $compiler == dartdevk ]
 abstract_factory_constructor_test/00: MissingCompileTimeError
 abstract_getter_test/01: MissingCompileTimeError
@@ -256,6 +152,7 @@
 async_or_generator_return_type_stacktrace_test/03: MissingCompileTimeError
 async_return_types_test/tooManyTypeParameters: MissingCompileTimeError
 async_return_types_test/wrongReturnType: Crash # Maltyped input from Fasta, issue 31414
+await_test: CompileTimeError # Issue 31541
 bad_named_parameters2_test/01: MissingCompileTimeError
 bad_named_parameters_test/01: MissingCompileTimeError
 bad_named_parameters_test/02: MissingCompileTimeError
@@ -267,6 +164,7 @@
 bad_override_test/03: MissingCompileTimeError
 bad_override_test/04: MissingCompileTimeError
 bad_override_test/05: MissingCompileTimeError
+bug31436_test: RuntimeError
 built_in_identifier_type_annotation_test/22: Crash # Crashes in Fasta, issue 31416
 built_in_identifier_type_annotation_test/52: MissingCompileTimeError
 built_in_identifier_type_annotation_test/53: MissingCompileTimeError
@@ -284,9 +182,9 @@
 built_in_identifier_type_annotation_test/66: MissingCompileTimeError
 built_in_identifier_type_annotation_test/67: MissingCompileTimeError
 built_in_identifier_type_annotation_test/68: MissingCompileTimeError
+call_function2_test: CompileTimeError # Issue 31402; Error: A value of type '#lib1::Bar' can't be assigned to a variable of type '(dart.core::Object) → dart.core::Object'.
 call_function_apply_test: CompileTimeError # Issue 31402 Error: A value of type '#lib1::A' can't be assigned to a variable of type 'dart.core::Function'.
 call_function_test: CompileTimeError
-call_function2_test: CompileTimeError # Issue 31402; Error: A value of type '#lib1::Bar' can't be assigned to a variable of type '(dart.core::Object) → dart.core::Object'.
 call_non_method_field_test/01: MissingCompileTimeError
 call_non_method_field_test/02: MissingCompileTimeError
 call_with_no_such_method_test: CompileTimeError # Issue 31402 Error: A value of type '#lib1::F' can't be assigned to a variable of type 'dart.core::Function'.
@@ -308,9 +206,10 @@
 compile_time_constant_static3_test/04: MissingCompileTimeError
 compile_time_constant_static4_test/02: MissingCompileTimeError
 compile_time_constant_static4_test/03: MissingCompileTimeError
-compile_time_constant_static5_test/03: MissingCompileTimeError
-compile_time_constant_static5_test/13: MissingCompileTimeError
-compile_time_constant_static5_test/18: MissingCompileTimeError
+compile_time_constant_static5_test/11: CompileTimeError # Issue 31537
+compile_time_constant_static5_test/16: CompileTimeError # Issue 31537
+compile_time_constant_static5_test/21: CompileTimeError # Issue 31537
+compile_time_constant_static5_test/23: CompileTimeError # Issue 31537
 config_import_test: CompileTimeError
 const_constructor2_test/20: MissingCompileTimeError
 const_constructor2_test/22: MissingCompileTimeError
@@ -387,6 +286,7 @@
 export_ambiguous_main_test: MissingCompileTimeError
 external_test/21: CompileTimeError
 external_test/24: CompileTimeError
+extract_type_arguments_test: CompileTimeError # Issue 31371
 f_bounded_quantification_test/01: MissingCompileTimeError
 f_bounded_quantification_test/02: MissingCompileTimeError
 factory2_test/03: MissingCompileTimeError
@@ -403,80 +303,79 @@
 field_override4_test/02: MissingCompileTimeError
 field_override_test/00: MissingCompileTimeError
 field_override_test/01: MissingCompileTimeError
-field_override_test/none: MissingCompileTimeError
 final_attempt_reinitialization_test/01: Crash
 final_attempt_reinitialization_test/02: Crash
 final_syntax_test/09: Crash
 function_propagation_test: CompileTimeError
 function_subtype_bound_closure7_test: CompileTimeError
+function_type/function_type10_test: CompileTimeError
+function_type/function_type11_test: CompileTimeError
+function_type/function_type14_test: CompileTimeError
+function_type/function_type15_test: CompileTimeError
+function_type/function_type18_test: CompileTimeError
+function_type/function_type19_test: CompileTimeError
+function_type/function_type20_test: CompileTimeError
+function_type/function_type21_test: CompileTimeError
+function_type/function_type22_test: CompileTimeError
+function_type/function_type23_test: CompileTimeError
+function_type/function_type24_test: CompileTimeError
+function_type/function_type25_test: CompileTimeError
+function_type/function_type26_test: CompileTimeError
+function_type/function_type27_test: CompileTimeError
+function_type/function_type28_test: CompileTimeError
+function_type/function_type29_test: CompileTimeError
+function_type/function_type2_test: CompileTimeError
+function_type/function_type30_test: CompileTimeError
+function_type/function_type31_test: CompileTimeError
+function_type/function_type32_test: CompileTimeError
+function_type/function_type33_test: CompileTimeError
+function_type/function_type34_test: CompileTimeError
+function_type/function_type35_test: CompileTimeError
+function_type/function_type36_test: CompileTimeError
+function_type/function_type37_test: CompileTimeError
+function_type/function_type38_test: CompileTimeError
+function_type/function_type39_test: CompileTimeError
+function_type/function_type3_test: CompileTimeError
+function_type/function_type40_test: CompileTimeError
+function_type/function_type41_test: CompileTimeError
+function_type/function_type42_test: CompileTimeError
+function_type/function_type43_test: CompileTimeError
+function_type/function_type44_test: CompileTimeError
+function_type/function_type45_test: CompileTimeError
+function_type/function_type46_test: CompileTimeError
+function_type/function_type47_test: CompileTimeError
+function_type/function_type48_test: CompileTimeError
+function_type/function_type49_test: CompileTimeError
+function_type/function_type50_test: CompileTimeError
+function_type/function_type51_test: CompileTimeError
+function_type/function_type54_test: CompileTimeError
+function_type/function_type55_test: CompileTimeError
+function_type/function_type58_test: CompileTimeError
+function_type/function_type59_test: CompileTimeError
+function_type/function_type62_test: CompileTimeError
+function_type/function_type63_test: CompileTimeError
+function_type/function_type66_test: CompileTimeError
+function_type/function_type67_test: CompileTimeError
+function_type/function_type6_test: CompileTimeError
+function_type/function_type70_test: CompileTimeError
+function_type/function_type71_test: CompileTimeError
+function_type/function_type74_test: CompileTimeError
+function_type/function_type75_test: CompileTimeError
+function_type/function_type78_test: CompileTimeError
+function_type/function_type79_test: CompileTimeError
+function_type/function_type7_test: CompileTimeError
+function_type/function_type82_test: CompileTimeError
+function_type/function_type83_test: CompileTimeError
+function_type/function_type86_test: CompileTimeError
+function_type/function_type87_test: CompileTimeError
+function_type/function_type90_test: CompileTimeError
+function_type/function_type91_test: CompileTimeError
+function_type/function_type94_test: CompileTimeError
+function_type/function_type95_test: CompileTimeError
+function_type/function_type98_test: CompileTimeError
+function_type/function_type99_test: CompileTimeError
 function_type_parameter2_negative_test: Fail
 function_type_parameter_negative_test: Fail
-function_type/function_type79_test: CompileTimeError
-function_type/function_type20_test: CompileTimeError
-function_type/function_type71_test: CompileTimeError
-function_type/function_type55_test: CompileTimeError
-function_type/function_type82_test: CompileTimeError
-function_type/function_type25_test: CompileTimeError
-function_type/function_type35_test: CompileTimeError
-function_type/function_type7_test: CompileTimeError
-function_type/function_type54_test: CompileTimeError
-function_type/function_type70_test: CompileTimeError
-function_type/function_type30_test: CompileTimeError
-function_type/function_type58_test: CompileTimeError
-function_type/function_type42_test: CompileTimeError
-function_type/function_type2_test: CompileTimeError
-function_type/function_type11_test: CompileTimeError
-function_type/function_type63_test: CompileTimeError
-function_type/function_type47_test: CompileTimeError
-function_type/function_type83_test: CompileTimeError
-function_type/function_type59_test: CompileTimeError
-function_type/function_type36_test: CompileTimeError
-function_type/function_type10_test: CompileTimeError
-function_type/function_type24_test: CompileTimeError
-function_type/function_type40_test: CompileTimeError
-function_type/function_type75_test: CompileTimeError
-function_type/function_type33_test: CompileTimeError
-function_type/function_type95_test: CompileTimeError
-function_type/function_type34_test: CompileTimeError
-function_type/function_type51_test: CompileTimeError
-function_type/function_type43_test: CompileTimeError
-function_type/function_type41_test: CompileTimeError
-function_type/function_type49_test: CompileTimeError
-function_type/function_type38_test: CompileTimeError
-function_type/function_type67_test: CompileTimeError
-function_type/function_type27_test: CompileTimeError
-function_type/function_type19_test: CompileTimeError
-function_type/function_type46_test: CompileTimeError
-function_type/function_type28_test: CompileTimeError
-function_type/function_type99_test: CompileTimeError
-function_type/function_type44_test: CompileTimeError
-function_type/function_type50_test: CompileTimeError
-function_type/function_type18_test: CompileTimeError
-function_type/function_type29_test: CompileTimeError
-function_type/function_type32_test: CompileTimeError
-function_type/function_type31_test: CompileTimeError
-function_type/function_type14_test: CompileTimeError
-function_type/function_type66_test: CompileTimeError
-function_type/function_type39_test: CompileTimeError
-function_type/function_type48_test: CompileTimeError
-function_type/function_type87_test: CompileTimeError
-function_type/function_type37_test: CompileTimeError
-function_type/function_type21_test: CompileTimeError
-function_type/function_type86_test: CompileTimeError
-function_type/function_type98_test: CompileTimeError
-function_type/function_type91_test: CompileTimeError
-function_type/function_type26_test: CompileTimeError
-function_type/function_type6_test: CompileTimeError
-function_type/function_type74_test: CompileTimeError
-function_type/function_type90_test: CompileTimeError
-function_type/function_type23_test: CompileTimeError
-function_type/function_type45_test: CompileTimeError
-function_type/function_type22_test: CompileTimeError
-function_type/function_type62_test: CompileTimeError
-function_type/function_type15_test: CompileTimeError
-function_type/function_type78_test: CompileTimeError
-function_type/function_type94_test: CompileTimeError
-function_type/function_type3_test: CompileTimeError
 generalized_void_syntax_test: CompileTimeError
 generic_function_bounds_test: CompileTimeError
 generic_function_dcall_test: CompileTimeError
@@ -502,6 +401,7 @@
 initializing_formal_type_annotation_test/02: MissingCompileTimeError
 instance_call_wrong_argument_count_negative_test: Fail
 invocation_mirror_test: CompileTimeError # Issue 31402 Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::Invocation'.
+issue13179_test: CompileTimeError # Issue 31537
 issue18628_2_test/01: MissingCompileTimeError
 issue_25671a_test/01: CompileTimeError # Warning: The method 'A::noSuchMethod' has fewer positional arguments than those of overridden method 'Object::noSuchMethod'.
 issue_25671b_test/01: CompileTimeError # Warning: The method 'A::noSuchMethod' has fewer positional arguments than those of overridden method 'Object::noSuchMethod'.
@@ -653,7 +553,6 @@
 named_parameters_test/06: MissingCompileTimeError
 named_parameters_test/08: MissingCompileTimeError
 named_parameters_test/10: MissingCompileTimeError
-named_parameters_type_test/01: MissingCompileTimeError
 null_no_such_method_test: CompileTimeError # Issue 31533
 null_test/02: MissingCompileTimeError
 null_test/03: MissingCompileTimeError
@@ -714,8 +613,6 @@
 override_inheritance_no_such_method_test/10: MissingCompileTimeError
 override_inheritance_no_such_method_test/12: MissingCompileTimeError
 override_method_with_field_test/01: MissingCompileTimeError
-positional_parameters_type_test/01: MissingCompileTimeError
-positional_parameters_type_test/02: MissingCompileTimeError
 redirecting_factory_default_values_test/01: MissingCompileTimeError
 redirecting_factory_default_values_test/02: MissingCompileTimeError
 redirecting_factory_default_values_test/03: MissingCompileTimeError
@@ -766,6 +663,15 @@
 syntax_test/32: MissingCompileTimeError
 syntax_test/33: MissingCompileTimeError
 try_catch_test/01: MissingCompileTimeError
+type_promotion_functions_test/02: CompileTimeError # Issue 31537
+type_promotion_functions_test/03: CompileTimeError # Issue 31537
+type_promotion_functions_test/04: CompileTimeError # Issue 31537
+type_promotion_functions_test/09: CompileTimeError # Issue 31537
+type_promotion_functions_test/11: CompileTimeError # Issue 31537
+type_promotion_functions_test/12: CompileTimeError # Issue 31537
+type_promotion_functions_test/13: CompileTimeError # Issue 31537
+type_promotion_functions_test/14: CompileTimeError # Issue 31537
+type_promotion_functions_test/none: CompileTimeError # Issue 31537
 type_promotion_logical_and_test/01: MissingCompileTimeError
 type_promotion_more_specific_test/04: CompileTimeError # Issue 31533
 type_variable_bounds2_test: MissingCompileTimeError
@@ -783,12 +689,156 @@
 void_type_callbacks_test/none: CompileTimeError
 wrong_number_type_arguments_test/01: MissingCompileTimeError
 
+[ $compiler == dartdevc && $runtime != none ]
+async_star_test/01: RuntimeError
+async_star_test/03: RuntimeError
+async_star_test/04: RuntimeError
+async_star_test/05: RuntimeError
+async_star_test/none: RuntimeError
+await_future_test: Pass, Timeout # Issue 29920
+bit_operations_test: RuntimeError # No bigints on web.
+const_evaluation_test/01: RuntimeError # Issue 29920
+covariance_field_test/03: RuntimeError
+covariant_override/tear_off_type_test: RuntimeError # Issue 28395
+deferred_load_library_wrong_args_test/01: MissingRuntimeError, RuntimeError # Issue 29920
+execute_finally6_test: RuntimeError # Issue 29920
+expect_test: RuntimeError # Issue 29920
+f_bounded_quantification3_test: RuntimeError # Issue 29920
+final_field_initialization_order_test: RuntimeError # Issue 31058
+first_class_types_test: RuntimeError, OK # Strong mode reifies inferred type argument.
+forwarding_stub_tearoff_generic_test: RuntimeError
+fuzzy_arrows_test/03: RuntimeError # Issue 29630
+generic_method_types_test/02: RuntimeError
+getter_closure_execution_order_test: RuntimeError # Issue 29920
+implicit_downcast_during_compound_assignment_test: RuntimeError
+implicit_downcast_during_indexed_compound_assignment_test: RuntimeError
+implicit_downcast_during_indexed_if_null_assignment_test: RuntimeError
+label_test: RuntimeError
+lazy_static3_test: RuntimeError # Issue 30852
+lazy_static8_test: RuntimeError # Issue 30852
+left_shift_test: RuntimeError # Ints and doubles are unified.
+library_env_test/has_io_support: RuntimeError, OK
+library_env_test/has_mirror_support: RuntimeError, OK
+library_env_test/has_no_html_support: RuntimeError, OK
+list_is_test: RuntimeError # Issue 29920
+mixin_super_test: RuntimeError
+mixin_super_use_test: RuntimeError
+multiline_newline_test/03: RuntimeError
+multiline_newline_test/03r: RuntimeError
+multiline_newline_test/none: RuntimeError
+regress_24283_test: RuntimeError, OK # Requires 64 bit numbers.
+regress_29784_test/02: Crash # assert initializers not implemented
+stacktrace_test: RuntimeError # Issue 29920
+super_call4_test: RuntimeError
+super_no_such_method1_test: RuntimeError
+super_no_such_method2_test: RuntimeError
+super_no_such_method3_test: RuntimeError
+super_no_such_method4_test: RuntimeError
+super_operator_index5_test: RuntimeError
+super_operator_index7_test: RuntimeError
+super_operator_index8_test: RuntimeError
+truncdiv_test: RuntimeError # Issue 29920
+yieldstar_pause_test: Skip # Times out
+
+[ $compiler == dartdevk && $runtime == none ]
+no_such_method_negative_test: Fail
+prefix6_negative_test: Fail
+
+[ $compiler == dartdevk && $runtime != none ]
+callable_test/none: RuntimeError # Expect.throws(TypeError) fails: Did not throw
+conditional_import_string_test: RuntimeError # Unsupported operation: String.fromEnvironment can only be used as a const constructor
+conditional_import_test: RuntimeError # Unsupported operation: bool.fromEnvironment can only be used as a const constructor
+constant_string_interpolation2_test: RuntimeError # TypeError: Cannot read property 'Symbol(dartx.toString)' of null
+cyclic_type_test/00: RuntimeError # Expect.equals(expected: <Derived>, actual: <dynamic>) fails.
+cyclic_type_test/01: RuntimeError # Expect.equals(at index 0: Expected <Derived<Derived<int>>...>, Found: <dynamic>) fails.
+deferred_closurize_load_library_test: RuntimeError # NoSuchMethodError: method not found: 'then'
+enum_duplicate_test/01: RuntimeError # NoSuchMethodError: method not found: '<Unexpected Null Value>'
+enum_duplicate_test/02: RuntimeError # NoSuchMethodError: method not found: '<Unexpected Null Value>'
+enum_duplicate_test/none: RuntimeError # NoSuchMethodError: method not found: '<Unexpected Null Value>'
+enum_mirror_test: RuntimeError # Expect.equals(expected: <Foo.BAR>, actual: <null>) fails.
+enum_private_test/01: RuntimeError # NoSuchMethodError: method not found: '<Unexpected Null Value>'
+enum_private_test/none: RuntimeError # NoSuchMethodError: method not found: '<Unexpected Null Value>'
+enum_test: RuntimeError # NoSuchMethodError: method not found: '<Unexpected Null Value>'
+f_bounded_equality_test: RuntimeError # Expect.equals(expected: <dynamic>, actual: <Real>) fails.
+field_override_optimization_test: RuntimeError # Expect.fail('This should also be unreachable')
+first_class_types_test: RuntimeError # Expect.equals(expected: <List>, actual: <List<int>>) fails.
+forwarding_stub_tearoff_test: RuntimeError
+function_subtype_bound_closure1_test: RuntimeError # Expect.isTrue(false, 'foo is Foo') fails.
+function_subtype_bound_closure2_test: RuntimeError # ReferenceError: TAndStringToint is not defined
+function_subtype_bound_closure5_test: RuntimeError # ReferenceError: TAndStringToint is not defined
+function_subtype_bound_closure5a_test: RuntimeError # ReferenceError: TAndStringToint is not defined
+function_subtype_bound_closure6_test: RuntimeError # ReferenceError: TAndStringToint is not defined
+function_subtype_bound_closure7_test: RuntimeError # ReferenceError: TTodynamic is not defined
+function_subtype_cast0_test: RuntimeError # CastError: Casting value of type '(int) => void' to type '(dynamic) => void' which is incompatible
+function_subtype_cast2_test: RuntimeError # ReferenceError: TTovoid is not defined
+function_subtype_cast3_test: RuntimeError # ReferenceError: TTovoid is not defined
+function_subtype_checked0_test: RuntimeError # Expect.throws(TypeError) fails: Did not throw
+function_subtype_closure0_test: RuntimeError # Expect.throws(TypeError) fails: Did not throw
+function_subtype_local1_test: RuntimeError # Expect.isTrue(false, 'foo is Foo') fails.
+function_subtype_local2_test: RuntimeError # ReferenceError: TAndStringToint is not defined
+function_subtype_local5_test: RuntimeError # ReferenceError: TAndStringToint is not defined
+function_subtype_not0_test: RuntimeError # Expect.isFalse(true) fails.
+function_subtype_not2_test: RuntimeError # ReferenceError: TTovoid is not defined
+function_subtype_not3_test: RuntimeError # ReferenceError: TTovoid is not defined
+function_subtype_simple1_test: RuntimeError # Expect.isTrue(false) fails.
+function_subtype_top_level1_test: RuntimeError # ReferenceError: TAndStringToint is not defined
+function_subtype_typearg5_test: RuntimeError # ReferenceError: JSArrayOfXAndXToX is not defined
+function_type_alias2_test: RuntimeError # Expect.isTrue(false) fails.
+function_type_alias3_test: RuntimeError # TypeError: library11.Library111$ is not a function
+function_type_alias4_test: RuntimeError # Expect.isTrue(false) fails.
+function_type_alias_test: RuntimeError # Expect.isTrue(false) fails.
+generic_closure_test/01: RuntimeError # ReferenceError: TToT is not defined
+generic_closure_test/none: RuntimeError # ReferenceError: TToT is not defined
+generic_list_checked_test: RuntimeError # Expect.throws fails: Did not throw
+generic_method_types_test/02: RuntimeError
+generic_methods_type_expression_test: RuntimeError # Expect.isTrue(false) fails.
+generic_methods_unused_parameter_test: RuntimeError # Expect.isTrue(false) fails.
+generic_test: RuntimeError # ReferenceError: BOfT is not defined
+library_env_test/has_io_support: RuntimeError # Unsupported operation: bool.fromEnvironment can only be used as a const constructor
+library_env_test/has_mirror_support: RuntimeError # Unsupported operation: bool.fromEnvironment can only be used as a const constructor
+library_env_test/has_no_html_support: RuntimeError # Unsupported operation: bool.fromEnvironment can only be used as a const constructor
+method_override_test: RuntimeError # Expect.isTrue(false) fails.
+mixin_bound_test: RuntimeError
+mixin_extends_field_test: RuntimeError # Expect.equals(expected: <M1-bar>, actual: <null>) fails.
+mixin_field_test: RuntimeError # NoSuchMethodError: method not found: 'bar'
+mixin_forwarding_constructor1_test: RuntimeError # Expect.equals(expected: <2>, actual: <null>) fails.
+mixin_forwarding_constructor2_test: RuntimeError # Expect.equals(expected: <2>, actual: <null>) fails.
+mixin_forwarding_constructor3_test: RuntimeError # Expect.equals(expected: <2>, actual: <null>) fails.
+mixin_illegal_super_use_test/none: RuntimeError # TypeError: e.bar is not a function
+mixin_is_test: RuntimeError # Expect.isTrue(false) fails.
+mixin_method_test: RuntimeError # Expect.equals(expected: <M2-bar>, actual: <M1-bar>) fails.
+mixin_mixin_type_arguments_test: RuntimeError
+mixin_naming_test: RuntimeError # Expect.isTrue(false) fails.
+mixin_regress_13688_test: RuntimeError
+mixin_type_parameter5_test: RuntimeError
+mock_writable_final_field_test: RuntimeError # Expect.listEquals(list length, expected: <1>, actual: <0>) fails: Next element <123>
+mock_writable_final_private_field_test: RuntimeError
+nested_generic_closure_test: RuntimeError # Expect.equals(at index 3: Expected <...(<F>(F) => F) => void>, Found: <...(<F extends Object>(F) => F) => void...>) fails.
+recursive_generic_test: RuntimeError # Unsupported operation: bool.fromEnvironment can only be used as a const constructor
+recursive_inheritance_test: RuntimeError # Expect.isTrue(false) fails.
+redirecting_factory_long_test: RuntimeError # Expect.isTrue(false) fails.
+redirecting_factory_reflection_test: RuntimeError # UnimplementedError: node <InvalidExpression> `invalid-expression`
+regress_24283_test: RuntimeError # Expect.equals(expected: <-1>, actual: <4294967295>) fails.
+regress_30339_test: RuntimeError # Uncaught Expect.isTrue(false) fails.
+runtime_type_function_test: RuntimeError # Expect.fail('Type print string does not match expectation
+syncstar_yield_test/copyParameters: RuntimeError # Expect.equals(expected: <2>, actual: <3>) fails.
+type_literal_test: RuntimeError # Expect.equals(expected: <Func>, actual: <(bool) => int>) fails.
+yieldstar_pause_test: Timeout
+
+# Compiler tests for dartdevc and dartdevk.  These contain common expectations
+# for all runtimes including $runtime == none.  They are organized by: shared
+# expectations for dartdevc and dartdevk, then expectations for dartdevc, and
+# then expectations for dartdevk.
+[ $runtime == none && ($compiler == dartdevc || $compiler == dartdevk) ]
+closure_call_wrong_argument_count_negative_test: Fail
+unhandled_exception_negative_test: Fail
+
 # Runtime tests for dartdevc and dartdevk.  These contain expectations for tests
 # that fail at run time, so they should not include $runtime == none which
 # cannot fail at run time.  They are organized by: shared expectations for
 # dartdevc and dartdevk, then expectations for dartdevc, and then expectations
 # for dartdevk.
-[ ($compiler == dartdevc || $compiler == dartdevk) && $runtime != none ]
+[ $runtime != none && ($compiler == dartdevc || $compiler == dartdevk) ]
 assertion_test: RuntimeError # Issue 30326; Expect.equals(expected: <1>, actual: <0>) fails.
 async_star_cancel_while_paused_test: RuntimeError # Issue 29920; Uncaught Expect.listEquals(list length, expected: <4>, actual: <3>) fails: Next element <*3>
 async_star_pause_test: RuntimeError # Uncaught Expect.listEquals(at index 2, expected: <0+>, actual: <0!>) fails
@@ -889,144 +939,94 @@
 switch_try_catch_test: RuntimeError # Issue 29920; Expect.throws: Unexpected 'UnimplementedError: node <ShadowContinueSwitchStatement> see https://github.com/dart-lang/sdk/issues/29352 `continue #L1;
 truncdiv_test: RuntimeError # Issue 29920; Expect.throws fails: Did not throw
 
-[ $compiler == dartdevc && $runtime != none ]
-async_star_test/01: RuntimeError
-async_star_test/03: RuntimeError
-async_star_test/04: RuntimeError
-async_star_test/05: RuntimeError
-async_star_test/none: RuntimeError
-await_future_test: Pass, Timeout # Issue 29920
-bit_operations_test: RuntimeError # No bigints on web.
-const_evaluation_test/01: RuntimeError # Issue 29920
-covariance_field_test/03: RuntimeError
-covariant_override/tear_off_type_test: RuntimeError # Issue 28395
-deferred_load_library_wrong_args_test/01: MissingRuntimeError, RuntimeError # Issue 29920
-execute_finally6_test: RuntimeError # Issue 29920
-expect_test: RuntimeError # Issue 29920
-f_bounded_quantification3_test: RuntimeError # Issue 29920
-final_field_initialization_order_test: RuntimeError # Issue 31058
-first_class_types_test: RuntimeError, OK # Strong mode reifies inferred type argument.
-fuzzy_arrows_test/03: RuntimeError # Issue 29630
-generic_method_types_test/02: RuntimeError
-getter_closure_execution_order_test: RuntimeError # Issue 29920
-implicit_downcast_during_compound_assignment_test: RuntimeError
-implicit_downcast_during_indexed_compound_assignment_test: RuntimeError
-implicit_downcast_during_indexed_if_null_assignment_test: RuntimeError
-label_test: RuntimeError
-lazy_static3_test: RuntimeError # Issue 30852
-lazy_static8_test: RuntimeError # Issue 30852
-left_shift_test: RuntimeError # Ints and doubles are unified.
-library_env_test/has_io_support: RuntimeError, OK
-library_env_test/has_mirror_support: RuntimeError, OK
-library_env_test/has_no_html_support: RuntimeError, OK
-list_is_test: RuntimeError # Issue 29920
-mixin_super_test: RuntimeError
-mixin_super_use_test: RuntimeError
-multiline_newline_test/03: RuntimeError
-multiline_newline_test/03r: RuntimeError
-multiline_newline_test/none: RuntimeError
-regress_24283_test: RuntimeError, OK # Requires 64 bit numbers.
-regress_29784_test/02: Crash # assert initializers not implemented
-stacktrace_test: RuntimeError # Issue 29920
-super_call4_test: RuntimeError
-super_no_such_method1_test: RuntimeError
-super_no_such_method2_test: RuntimeError
-super_no_such_method3_test: RuntimeError
-super_no_such_method4_test: RuntimeError
-super_operator_index5_test: RuntimeError
-super_operator_index7_test: RuntimeError
-super_operator_index8_test: RuntimeError
-truncdiv_test: RuntimeError # Issue 29920
-yieldstar_pause_test: Skip # Times out
+[ $compiler == dartdevc || $compiler == dartdevk ]
+abstract_override_adds_optional_args_concrete_subclass_test: MissingCompileTimeError # Issue #30568
+abstract_override_adds_optional_args_concrete_test: MissingCompileTimeError # Issue #30568
+abstract_override_adds_optional_args_supercall_test: MissingCompileTimeError # Issue #30568
+async_return_types_test/nestedFuture: MissingCompileTimeError
+bit_operations_test/01: MissingCompileTimeError
+bit_operations_test/02: MissingCompileTimeError
+built_in_identifier_prefix_test: CompileTimeError
+config_import_corelib_test: CompileTimeError
+field3_test/01: MissingCompileTimeError
+generic_function_type_as_type_argument_test/01: MissingCompileTimeError # Issue 29920
+generic_function_type_as_type_argument_test/02: MissingCompileTimeError # Issue 29920
+generic_list_checked_test: CompileTimeError
+generic_methods_overriding_test/01: MissingCompileTimeError # Issue 29920
+generic_methods_overriding_test/03: MissingCompileTimeError # Issue 29920
+generic_tearoff_test: CompileTimeError
+int64_literal_test/*: Skip # This is testing Dart 2.0 int64 semantics.
+internal_library_test/02: Crash
+method_override7_test/03: MissingCompileTimeError # Issue 30514
+multiline_newline_test/04: MissingCompileTimeError
+multiline_newline_test/04r: MissingCompileTimeError
+multiline_newline_test/05: MissingCompileTimeError
+multiline_newline_test/05r: MissingCompileTimeError
+override_field_test/03: MissingCompileTimeError
+override_inheritance_abstract_test/02: MissingCompileTimeError
+override_inheritance_abstract_test/03: MissingCompileTimeError
+override_inheritance_abstract_test/04: MissingCompileTimeError
+override_inheritance_abstract_test/08: MissingCompileTimeError
+override_inheritance_abstract_test/09: MissingCompileTimeError
+override_inheritance_abstract_test/10: MissingCompileTimeError
+override_inheritance_abstract_test/11: MissingCompileTimeError
+override_inheritance_abstract_test/12: MissingCompileTimeError
+override_inheritance_abstract_test/13: MissingCompileTimeError
+override_inheritance_abstract_test/14: MissingCompileTimeError
+override_inheritance_abstract_test/17: MissingCompileTimeError
+override_inheritance_abstract_test/19: MissingCompileTimeError
+override_inheritance_abstract_test/20: MissingCompileTimeError
+override_inheritance_abstract_test/21: MissingCompileTimeError
+override_inheritance_abstract_test/22: MissingCompileTimeError
+override_inheritance_abstract_test/23: MissingCompileTimeError
+override_inheritance_abstract_test/24: MissingCompileTimeError
+override_inheritance_abstract_test/25: MissingCompileTimeError
+override_inheritance_abstract_test/26: MissingCompileTimeError
+override_inheritance_no_such_method_test/13: MissingCompileTimeError
+parser_quirks_test: CompileTimeError
+regress_27617_test/1: MissingCompileTimeError
+vm/*: SkipByDesign # VM only tests.; VM only tests.
+void_type_function_types_test/none: CompileTimeError # Issue 30514
+void_type_override_test/none: CompileTimeError # Issue 30514
+void_type_usage_test/call_as: CompileTimeError # Issue 30514
+void_type_usage_test/call_for: CompileTimeError # Issue 30514
+void_type_usage_test/call_stmt: CompileTimeError # Issue 30514
+void_type_usage_test/field_assign: CompileTimeError # Issue 30514
+void_type_usage_test/field_assign2: CompileTimeError # Issue 30514
+void_type_usage_test/final_local_as: CompileTimeError # Issue 30514
+void_type_usage_test/final_local_for: CompileTimeError # Issue 30514
+void_type_usage_test/final_local_stmt: CompileTimeError # Issue 30514
+void_type_usage_test/global_as: CompileTimeError # Issue 30514
+void_type_usage_test/global_for: CompileTimeError # Issue 30514
+void_type_usage_test/global_for_in2: CompileTimeError # Issue 30514
+void_type_usage_test/global_stmt: CompileTimeError # Issue 30514
+void_type_usage_test/instance2_as: CompileTimeError # Issue 30514
+void_type_usage_test/instance2_for: CompileTimeError # Issue 30514
+void_type_usage_test/instance2_for_in3: CompileTimeError # Issue 30514
+void_type_usage_test/instance2_stmt: CompileTimeError # Issue 30514
+void_type_usage_test/instance3_as: CompileTimeError # Issue 30514
+void_type_usage_test/instance3_for: CompileTimeError # Issue 30514
+void_type_usage_test/instance3_for_in3: CompileTimeError # Issue 30514
+void_type_usage_test/instance3_stmt: CompileTimeError # Issue 30514
+void_type_usage_test/instance_as: CompileTimeError # Issue 30514
+void_type_usage_test/instance_for: CompileTimeError # Issue 30514
+void_type_usage_test/instance_stmt: CompileTimeError # Issue 30514
+void_type_usage_test/local_as: CompileTimeError # Issue 30514
+void_type_usage_test/local_assign: CompileTimeError # Issue 30514
+void_type_usage_test/local_for: CompileTimeError # Issue 30514
+void_type_usage_test/local_for_in2: CompileTimeError # Issue 30514
+void_type_usage_test/local_stmt: CompileTimeError # Issue 30514
+void_type_usage_test/none: CompileTimeError # Issue 30514
+void_type_usage_test/param_as: CompileTimeError # Issue 30514
+void_type_usage_test/param_for: CompileTimeError # Issue 30514
+void_type_usage_test/param_for_in2: CompileTimeError # Issue 30514
+void_type_usage_test/param_stmt: CompileTimeError # Issue 30514
+void_type_usage_test/paren_as: CompileTimeError # Issue 30514
+void_type_usage_test/paren_for: CompileTimeError # Issue 30514
+void_type_usage_test/paren_stmt: CompileTimeError # Issue 30514
+void_type_usage_test/setter_assign: CompileTimeError # Issue 30514
 
-[ $compiler == dartdevk && $runtime != none ]
-callable_test/none: RuntimeError # Expect.throws(TypeError) fails: Did not throw
-compile_time_constant_static5_test/23: RuntimeError # Type 'A' is not a subtype of type 'B', issue 30546
-conditional_import_string_test: RuntimeError # Unsupported operation: String.fromEnvironment can only be used as a const constructor
-conditional_import_test: RuntimeError # Unsupported operation: bool.fromEnvironment can only be used as a const constructor
-constant_string_interpolation2_test: RuntimeError # TypeError: Cannot read property 'Symbol(dartx.toString)' of null
-cyclic_type_test/00: RuntimeError # Expect.equals(expected: <Derived>, actual: <dynamic>) fails.
-cyclic_type_test/01: RuntimeError # Expect.equals(at index 0: Expected <Derived<Derived<int>>...>, Found: <dynamic>) fails.
-deferred_closurize_load_library_test: RuntimeError # NoSuchMethodError: method not found: 'then'
-enum_duplicate_test/01: RuntimeError # NoSuchMethodError: method not found: '<Unexpected Null Value>'
-enum_duplicate_test/02: RuntimeError # NoSuchMethodError: method not found: '<Unexpected Null Value>'
-enum_duplicate_test/none: RuntimeError # NoSuchMethodError: method not found: '<Unexpected Null Value>'
-enum_mirror_test: RuntimeError # Expect.equals(expected: <Foo.BAR>, actual: <null>) fails.
-enum_private_test/01: RuntimeError # NoSuchMethodError: method not found: '<Unexpected Null Value>'
-enum_private_test/none: RuntimeError # NoSuchMethodError: method not found: '<Unexpected Null Value>'
-enum_test: RuntimeError # NoSuchMethodError: method not found: '<Unexpected Null Value>'
-f_bounded_equality_test: RuntimeError # Expect.equals(expected: <dynamic>, actual: <Real>) fails.
-field_override_optimization_test: RuntimeError # Expect.fail('This should also be unreachable')
-first_class_types_test: RuntimeError # Expect.equals(expected: <List>, actual: <List<int>>) fails.
-function_subtype_bound_closure1_test: RuntimeError # Expect.isTrue(false, 'foo is Foo') fails.
-function_subtype_bound_closure2_test: RuntimeError # ReferenceError: TAndStringToint is not defined
-function_subtype_bound_closure5_test: RuntimeError # ReferenceError: TAndStringToint is not defined
-function_subtype_bound_closure5a_test: RuntimeError # ReferenceError: TAndStringToint is not defined
-function_subtype_bound_closure6_test: RuntimeError # ReferenceError: TAndStringToint is not defined
-function_subtype_bound_closure7_test: RuntimeError # ReferenceError: TTodynamic is not defined
-function_subtype_cast0_test: RuntimeError # CastError: Casting value of type '(int) => void' to type '(dynamic) => void' which is incompatible
-function_subtype_cast2_test: RuntimeError # ReferenceError: TTovoid is not defined
-function_subtype_cast3_test: RuntimeError # ReferenceError: TTovoid is not defined
-function_subtype_checked0_test: RuntimeError # Expect.throws(TypeError) fails: Did not throw
-function_subtype_closure0_test: RuntimeError # Expect.throws(TypeError) fails: Did not throw
-function_subtype_local1_test: RuntimeError # Expect.isTrue(false, 'foo is Foo') fails.
-function_subtype_local2_test: RuntimeError # ReferenceError: TAndStringToint is not defined
-function_subtype_local5_test: RuntimeError # ReferenceError: TAndStringToint is not defined
-function_subtype_not0_test: RuntimeError # Expect.isFalse(true) fails.
-function_subtype_not2_test: RuntimeError # ReferenceError: TTovoid is not defined
-function_subtype_not3_test: RuntimeError # ReferenceError: TTovoid is not defined
-function_subtype_simple1_test: RuntimeError # Expect.isTrue(false) fails.
-function_subtype_top_level1_test: RuntimeError # ReferenceError: TAndStringToint is not defined
-function_subtype_typearg5_test: RuntimeError # ReferenceError: JSArrayOfXAndXToX is not defined
-function_type_alias2_test: RuntimeError # Expect.isTrue(false) fails.
-function_type_alias3_test: RuntimeError # TypeError: library11.Library111$ is not a function
-function_type_alias4_test: RuntimeError # Expect.isTrue(false) fails.
-function_type_alias_test: RuntimeError # Expect.isTrue(false) fails.
-generic_closure_test/01: RuntimeError # ReferenceError: TToT is not defined
-generic_closure_test/none: RuntimeError # ReferenceError: TToT is not defined
-generic_list_checked_test: RuntimeError # Expect.throws fails: Did not throw
-generic_method_types_test/02: RuntimeError
-generic_methods_type_expression_test: RuntimeError # Expect.isTrue(false) fails.
-generic_methods_unused_parameter_test: RuntimeError # Expect.isTrue(false) fails.
-generic_test: RuntimeError # ReferenceError: BOfT is not defined
-implicit_downcast_during_function_literal_arrow_test: RuntimeError
-issue13179_test: RuntimeError
-library_env_test/has_io_support: RuntimeError # Unsupported operation: bool.fromEnvironment can only be used as a const constructor
-library_env_test/has_mirror_support: RuntimeError # Unsupported operation: bool.fromEnvironment can only be used as a const constructor
-library_env_test/has_no_html_support: RuntimeError # Unsupported operation: bool.fromEnvironment can only be used as a const constructor
-method_override_test: RuntimeError # Expect.isTrue(false) fails.
-mixin_bound_test: RuntimeError
-mixin_extends_field_test: RuntimeError # Expect.equals(expected: <M1-bar>, actual: <null>) fails.
-mixin_field_test: RuntimeError # NoSuchMethodError: method not found: 'bar'
-mixin_forwarding_constructor1_test: RuntimeError # Expect.equals(expected: <2>, actual: <null>) fails.
-mixin_forwarding_constructor2_test: RuntimeError # Expect.equals(expected: <2>, actual: <null>) fails.
-mixin_forwarding_constructor3_test: RuntimeError # Expect.equals(expected: <2>, actual: <null>) fails.
-mixin_illegal_super_use_test/none: RuntimeError # TypeError: e.bar is not a function
-mixin_is_test: RuntimeError # Expect.isTrue(false) fails.
-mixin_method_test: RuntimeError # Expect.equals(expected: <M2-bar>, actual: <M1-bar>) fails.
-mixin_mixin_type_arguments_test: RuntimeError
-mixin_naming_test: RuntimeError # Expect.isTrue(false) fails.
-mixin_regress_13688_test: RuntimeError
-mixin_type_parameter5_test: RuntimeError
-mock_writable_final_field_test: RuntimeError # Expect.listEquals(list length, expected: <1>, actual: <0>) fails: Next element <123>
-mock_writable_final_private_field_test: RuntimeError
-nested_generic_closure_test: RuntimeError # Expect.equals(at index 3: Expected <...(<F>(F) => F) => void>, Found: <...(<F extends Object>(F) => F) => void...>) fails.
-recursive_generic_test: RuntimeError # Unsupported operation: bool.fromEnvironment can only be used as a const constructor
-recursive_inheritance_test: RuntimeError # Expect.isTrue(false) fails.
-redirecting_factory_long_test: RuntimeError # Expect.isTrue(false) fails.
-redirecting_factory_reflection_test: RuntimeError # UnimplementedError: node <InvalidExpression> `invalid-expression`
-regress_24283_test: RuntimeError # Expect.equals(expected: <-1>, actual: <4294967295>) fails.
-regress_30339_test: RuntimeError # Uncaught Expect.isTrue(false) fails.
-runtime_type_function_test: RuntimeError # Expect.fail('Type print string does not match expectation
-syncstar_yield_test/copyParameters: RuntimeError # Expect.equals(expected: <2>, actual: <3>) fails.
-type_literal_test: RuntimeError # Expect.equals(expected: <Func>, actual: <(bool) => int>) fails.
-type_promotion_functions_test/02: RuntimeError
-type_promotion_functions_test/03: RuntimeError
-type_promotion_functions_test/04: RuntimeError
-type_promotion_functions_test/09: RuntimeError
-type_promotion_functions_test/11: RuntimeError
-type_promotion_functions_test/12: RuntimeError
-type_promotion_functions_test/13: RuntimeError
-type_promotion_functions_test/14: RuntimeError
-type_promotion_functions_test/none: RuntimeError
-yieldstar_pause_test: Timeout
+[ $compiler == dartdevk || $compiler == dartdevc && $runtime == none ]
+instantiate_type_variable_test/01: CompileTimeError
+setter_no_getter_call_test/01: CompileTimeError
+
diff --git a/tests/language_2/language_2_flutter.status b/tests/language_2/language_2_flutter.status
index 051ef48..70037b4 100644
--- a/tests/language_2/language_2_flutter.status
+++ b/tests/language_2/language_2_flutter.status
@@ -1,12 +1,9 @@
 # Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
-
 # Sections in this file should contain "$runtime == flutter".
-
 # What tests does this comment apply to?  Please add it to each test's line
 # or file an issue an put it there, and add the issue to the relevant tests:
-
 # flutter uses --error_on_bad_type, --error_on_bad_override
 # and --await_is_keyword so the following tests fail with a Compilation Error
 
@@ -15,6 +12,7 @@
 async_await_syntax_test/a05e: CompileTimeError
 async_await_syntax_test/d08c: CompileTimeError
 async_await_test: CompileTimeError
+asyncstar_yield_test: Skip # Flutter Issue 9110
 await_backwards_compatibility_test/none: CompileTimeError
 await_for_cancel_test: Skip # Flutter Issue 9110
 await_for_test: Skip # Flutter Issue 9110
@@ -24,6 +22,8 @@
 call_constructor_on_unresolvable_class_test/02: CompileTimeError
 call_constructor_on_unresolvable_class_test/03: CompileTimeError
 call_constructor_on_unresolvable_class_test/07: CompileTimeError
+check_method_override_test/01: CompileTimeError
+check_method_override_test/02: CompileTimeError
 class_keyword_test/02: CompileTimeError, MissingCompileTimeError # Issue 13627
 class_override_test/00: CompileTimeError
 conditional_import_string_test: CompileTimeError
@@ -83,13 +83,14 @@
 factory6_test/00: CompileTimeError
 field_increment_bailout_test: CompileTimeError
 field_override_test/01: CompileTimeError
+function_malformed_result_type_test: CompileTimeError
 generalized_void_syntax_test: CompileTimeError # Issue #30176
 generic_function_typedef2_test/04: CompileTimeError
 instance_creation_in_function_annotation_test: CompileTimeError
 internal_library_test/01: CompileTimeError
 internal_library_test/01: MissingCompileTimeError
-internal_library_test/02: CompileTimeError
 internal_library_test/02: MissingCompileTimeError
+internal_library_test/02: CompileTimeError
 invocation_mirror2_test: CompileTimeError
 invocation_mirror_invoke_on2_test: CompileTimeError
 invocation_mirror_invoke_on_test: CompileTimeError
@@ -102,7 +103,7 @@
 is_not_class2_test: RuntimeError
 issue21079_test: CompileTimeError
 issue_25671b_test/01: CompileTimeError
-library_env_test/has_mirror_support: RuntimeError, Ok
+library_env_test/has_mirror_support: RuntimeError, OK
 library_env_test/has_no_mirror_support: Pass
 list_literal_syntax_test/01: CompileTimeError
 list_literal_syntax_test/02: CompileTimeError
@@ -227,13 +228,10 @@
 wrong_number_type_arguments_test/00: CompileTimeError
 wrong_number_type_arguments_test/01: CompileTimeError
 wrong_number_type_arguments_test/02: CompileTimeError
-check_method_override_test/01: CompileTimeError
-check_method_override_test/02: CompileTimeError
-function_malformed_result_type_test: CompileTimeError
-asyncstar_yield_test: Skip # Flutter Issue 9110
 
-[ $runtime == flutter && $compiler == none && $checked ]
+[ $arch == arm64 && $runtime == flutter ]
+large_class_declaration_test: SkipSlow # Uses too much memory.
+
+[ $compiler == none && $runtime == flutter && $checked ]
 assert_initializer_test/4*: MissingCompileTimeError # Issue 392. The VM doesn't enforce that potentially const expressions are actually const expressions when the constructor is called with `const`.
 
-[ $runtime == flutter && $arch == arm64 ]
-large_class_declaration_test: SkipSlow # Uses too much memory.
diff --git a/tests/language_2/language_2_kernel.status b/tests/language_2/language_2_kernel.status
index dd9fc36..b8486e7 100644
--- a/tests/language_2/language_2_kernel.status
+++ b/tests/language_2/language_2_kernel.status
@@ -1,7 +1,6 @@
 # Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
-
 # Sections in this file should contain "$compiler == dartk" or
 # "$compiler == dartkp".
 #
@@ -10,14 +9,147 @@
 # in the existing sections, if possible keep the alphabetic ordering. If we are
 # missing a section you need, please reach out to sigmund@ to see the best way
 # to add them.
-
 # ===== Skip dartk and darkp in !$strong mode ====
 
-[ $compiler == dartk && !$strong]
-*: SkipByDesign # language_2 is only supported in strong mode.
+[ $compiler == dartkp ]
+bit_operations_test: CompileTimeError # Issue 31339
+generic_no_such_method_dispatcher_test: RuntimeError # Issue 31424
+identical_closure2_test: CompileTimeError # Issue 31339
+mint_arithmetic_test: CompileTimeError # Issue 31339
+mock_writable_final_field_test: RuntimeError # Issue 31424
+no_such_method_subtype_test: RuntimeError # Issue 31424
+vm/unaligned_integer_access_literal_index_test: CompileTimeError # Issue 31339
+vm/unaligned_integer_access_register_index_test: CompileTimeError # Issue 31339
 
-[ $compiler == dartkp && !$strong]
-*: SkipByDesign # language_2 is only supported in strong mode.
+[ $compiler == dartk && $mode == debug && $runtime == vm && $strong ]
+const_instance_field_test/01: Crash
+cyclic_type_variable_test/01: Crash
+cyclic_type_variable_test/02: Crash
+cyclic_type_variable_test/03: Crash
+cyclic_type_variable_test/04: Crash
+cyclic_type_variable_test/none: Crash
+deopt_inlined_function_lazy_test: Skip
+flatten_test/04: Crash # Issue #31381
+tearoff_dynamic_test: Crash
+
+[ $compiler == dartk && $mode == product && $runtime == vm ]
+deferred_load_constants_test/02: Fail
+deferred_load_constants_test/03: Fail
+deferred_load_constants_test/05: Fail
+deferred_not_loaded_check_test: RuntimeError
+vm/causal_async_exception_stack2_test: SkipByDesign
+vm/causal_async_exception_stack_test: SkipByDesign
+vm/regress_27201_test: Fail
+vm/type_vm_test/28: MissingRuntimeError
+vm/type_vm_test/29: MissingRuntimeError
+vm/type_vm_test/30: MissingRuntimeError
+vm/type_vm_test/31: MissingRuntimeError
+vm/type_vm_test/32: MissingRuntimeError
+vm/type_vm_test/33: MissingRuntimeError
+vm/type_vm_test/34: MissingRuntimeError
+vm/type_vm_test/35: MissingRuntimeError
+vm/type_vm_test/36: MissingRuntimeError
+
+[ $compiler == dartk && $runtime == vm && $checked && $strong ]
+assert_initializer_test/31: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/32: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/33: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/34: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/35: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/36: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/37: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/38: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/41: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/42: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/43: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/44: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/45: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/46: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/47: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/48: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/none: RuntimeError # KernelVM bug: Constant evaluation.
+assertion_initializer_const_function_test/01: RuntimeError
+assign_static_type_test/02: MissingCompileTimeError
+async_await_test/02: RuntimeError
+async_await_test/03: RuntimeError
+async_await_test/none: RuntimeError
+async_return_types_test/nestedFuture: Fail
+async_return_types_test/wrongTypeParameter: Fail
+async_star_regression_2238_test: RuntimeError
+async_star_test/01: RuntimeError
+async_star_test/03: RuntimeError
+async_star_test/04: RuntimeError
+async_star_test/05: RuntimeError
+async_star_test/none: RuntimeError
+compile_time_constant_checked_test/02: MissingCompileTimeError
+const_constructor2_test/20: MissingCompileTimeError
+const_constructor2_test/22: MissingCompileTimeError
+const_constructor2_test/24: MissingCompileTimeError
+const_init2_test/02: MissingCompileTimeError
+default_factory2_test/01: Fail
+factory_redirection_test/08: Fail
+factory_redirection_test/09: Fail
+factory_redirection_test/10: Fail
+factory_redirection_test/12: Fail
+factory_redirection_test/13: Fail
+factory_redirection_test/14: Fail
+if_null_precedence_test/none: Pass
+known_identifier_usage_error_test/none: RuntimeError # Issue 28814
+list_literal1_test/01: MissingCompileTimeError
+malbounded_redirecting_factory_test/03: Fail
+malbounded_redirecting_factory_test/04: Fail
+malbounded_type_cast_test: RuntimeError
+malbounded_type_test_test/03: Fail
+malbounded_type_test_test/04: Fail
+malformed2_test/00: RuntimeError
+malformed2_test/01: MissingCompileTimeError
+map_literal1_test/01: MissingCompileTimeError
+mixin_invalid_bound2_test/08: Fail
+mixin_invalid_bound2_test/09: Fail
+mixin_invalid_bound2_test/10: Fail
+mixin_invalid_bound_test/06: Fail
+mixin_invalid_bound_test/07: Fail
+recursive_mixin_test: Crash
+redirecting_factory_infinite_steps_test/01: Fail
+redirecting_factory_malbounded_test/01: Fail
+regress_22728_test: Fail # Dartk Issue 28498
+regress_22728_test: RuntimeError
+regress_26133_test: RuntimeError
+regress_30339_test: RuntimeError
+setter_override_test/01: MissingCompileTimeError
+setter_override_test/02: MissingCompileTimeError
+type_parameter_test/05: MissingCompileTimeError
+type_parameter_test/none: RuntimeError
+type_variable_bounds4_test/01: RuntimeError
+
+[ $compiler == dartk && $runtime == vm && !$checked && $strong ]
+bool_check_test: RuntimeError
+bool_condition_check_test: RuntimeError
+callable_test/none: RuntimeError
+checked_setter2_test: RuntimeError
+checked_setter_test: RuntimeError
+covariance_field_test/01: RuntimeError
+covariance_field_test/02: RuntimeError
+covariance_field_test/03: RuntimeError
+covariance_field_test/04: RuntimeError
+covariance_field_test/05: RuntimeError
+deferred_constraints_type_annotation_test/type_annotation1: Crash # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/type_annotation_generic1: Crash # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/type_annotation_generic4: Crash # KernelVM bug: Deferred loading kernel issue 28335.
+field_override_optimization_test: RuntimeError
+field_type_check2_test/01: MissingRuntimeError
+function_subtype_checked0_test: RuntimeError
+function_subtype_inline2_test: RuntimeError
+function_subtype_setter0_test: RuntimeError
+generic_list_checked_test: RuntimeError
+mixin_forwarding_constructor4_test/01: MissingCompileTimeError # KernelVM bug: Issue 15101
+mixin_forwarding_constructor4_test/02: MissingCompileTimeError # KernelVM bug: Issue 15101
+mixin_forwarding_constructor4_test/03: MissingCompileTimeError # KernelVM bug: Issue 15101
+private_super_constructor_test/01: MissingCompileTimeError # Fasta bug: Illegal access to private constructor.
+redirecting_factory_default_values_test/01: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
+redirecting_factory_default_values_test/02: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
+redirecting_factory_long_test: RuntimeError # Fasta bug: Bad compilation of type arguments for redirecting factory.
+regress_20394_test/01: MissingCompileTimeError # Fasta bug: Illegal access to private constructor.
 
 # ===== dartk + vm status lines =====
 [ $compiler == dartk && $runtime == vm && $strong ]
@@ -66,6 +198,7 @@
 async_star_test/04: CompileTimeError # Issue 31402 (Invocation arguments)
 async_star_test/05: CompileTimeError # Issue 31402 (Invocation arguments)
 async_star_test/none: CompileTimeError # Issue 31402 (Invocation arguments)
+await_test: CompileTimeError # Issue 31541
 bad_named_parameters2_test/01: MissingCompileTimeError
 bad_named_parameters_test/01: MissingCompileTimeError
 bad_named_parameters_test/02: MissingCompileTimeError
@@ -158,6 +291,9 @@
 compile_time_constant_o_test/02: RuntimeError # KernelVM bug: Constant map duplicated key.
 compile_time_constant_static2_test/04: MissingCompileTimeError
 compile_time_constant_static3_test/04: MissingCompileTimeError
+compile_time_constant_static5_test/11: CompileTimeError # Issue 31537
+compile_time_constant_static5_test/16: CompileTimeError # Issue 31537
+compile_time_constant_static5_test/21: CompileTimeError # Issue 31537
 compile_time_constant_static5_test/23: CompileTimeError # Issue 31402 (Field declaration)
 conditional_import_string_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
 conditional_import_string_test: DartkCompileTimeError
@@ -187,8 +323,8 @@
 const_map2_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation.
 const_map3_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation.
 const_map4_test: RuntimeError
-const_native_factory_test/01: MissingCompileTimeError # Fasta bug: Issue 29763
 const_native_factory_test: MissingCompileTimeError
+const_native_factory_test/01: MissingCompileTimeError # Fasta bug: Issue 29763
 const_nested_test: RuntimeError # KernelVM bug: Constant evaluation.
 const_optional_args_test/01: MissingCompileTimeError # Fasta bug: Default parameter values must be const.
 const_redirecting_factory_test: CompileTimeError # Issue 31402 (Field declaration)
@@ -213,9 +349,9 @@
 constructor_duplicate_final_test/01: MissingCompileTimeError
 constructor_duplicate_final_test/02: MissingCompileTimeError
 constructor_named_arguments_test/01: MissingCompileTimeError
+constructor_redirect1_negative_test: MissingCompileTimeError
 constructor_redirect1_negative_test/01: MissingCompileTimeError
 constructor_redirect1_negative_test/none: MissingCompileTimeError
-constructor_redirect1_negative_test: MissingCompileTimeError
 constructor_redirect2_negative_test: MissingCompileTimeError
 constructor_redirect2_test/01: MissingCompileTimeError # Fasta bug: Body on redirecting constructor.
 constructor_redirect_test/01: MissingCompileTimeError # Fasta bug: Initializer refers to this.
@@ -337,6 +473,7 @@
 external_test/10: MissingRuntimeError # KernelVM bug: Unbound external.
 external_test/13: MissingRuntimeError # KernelVM bug: Unbound external.
 external_test/20: MissingRuntimeError # KernelVM bug: Unbound external.
+extract_type_arguments_test: CompileTimeError # Issue 31371
 f_bounded_quantification_test/01: MissingCompileTimeError
 f_bounded_quantification_test/02: MissingCompileTimeError
 factory2_test/03: MissingCompileTimeError
@@ -351,7 +488,6 @@
 field_override2_test: MissingCompileTimeError
 field_override_test/00: MissingCompileTimeError
 field_override_test/01: MissingCompileTimeError
-field_override_test/none: MissingCompileTimeError
 final_attempt_reinitialization_test/01: MissingCompileTimeError # Issue 29900
 final_attempt_reinitialization_test/02: MissingCompileTimeError # Issue 29900
 final_for_in_variable_test: MissingCompileTimeError
@@ -544,8 +680,6 @@
 if_null_assignment_behavior_test/15: MissingCompileTimeError
 if_null_evaluation_order_test: Pass
 if_null_precedence_test/none: RuntimeError
-implicit_downcast_during_function_literal_arrow_test: RuntimeError # Issue #31436
-implicit_downcast_during_return_async_test: RuntimeError
 implicit_this_test/01: MissingCompileTimeError
 implicit_this_test/02: MissingCompileTimeError
 implicit_this_test/04: MissingCompileTimeError
@@ -555,8 +689,8 @@
 initializing_formal_type_annotation_test/01: MissingCompileTimeError
 initializing_formal_type_annotation_test/02: MissingCompileTimeError
 instanceof2_test: RuntimeError
-int64_literal_test/03: MissingCompileTimeError  # http://dartbug.com/31479
-int64_literal_test/30: MissingCompileTimeError  # http://dartbug.com/31479
+int64_literal_test/03: MissingCompileTimeError # http://dartbug.com/31479
+int64_literal_test/30: MissingCompileTimeError # http://dartbug.com/31479
 interface_test/00: MissingCompileTimeError
 invocation_mirror_test: CompileTimeError # Issue 31402 (Invocation arguments)
 is_malformed_type_test/95: MissingCompileTimeError
@@ -763,7 +897,6 @@
 named_parameters_test/08: MissingCompileTimeError
 named_parameters_test/09: MissingCompileTimeError
 named_parameters_test/10: MissingCompileTimeError
-named_parameters_type_test/01: MissingCompileTimeError
 nested_generic_closure_test: RuntimeError
 new_expression_type_args_test/00: MissingCompileTimeError
 new_expression_type_args_test/01: MissingCompileTimeError
@@ -864,8 +997,6 @@
 override_inheritance_no_such_method_test/13: MissingCompileTimeError
 parser_quirks_test: CompileTimeError # Issue 31533
 part2_test/01: MissingCompileTimeError
-positional_parameters_type_test/01: MissingCompileTimeError
-positional_parameters_type_test/02: MissingCompileTimeError
 prefix16_test/00: MissingCompileTimeError
 prefix16_test/01: MissingCompileTimeError
 prefix22_test/00: MissingCompileTimeError
@@ -970,15 +1101,15 @@
 type_parameter_test/07: MissingCompileTimeError
 type_parameter_test/08: MissingCompileTimeError
 type_parameter_test/09: MissingCompileTimeError
-type_promotion_functions_test/02: RuntimeError # Issue 31402 (Variable declaration)
-type_promotion_functions_test/03: RuntimeError # Issue 31402 (Variable declaration)
-type_promotion_functions_test/04: RuntimeError # Issue 31402 (Variable declaration)
-type_promotion_functions_test/09: RuntimeError # Issue 31402 (Variable declaration)
-type_promotion_functions_test/11: RuntimeError # Issue 31402 (Variable declaration)
-type_promotion_functions_test/12: RuntimeError # Issue 31402 (Variable declaration)
-type_promotion_functions_test/13: RuntimeError # Issue 31402 (Variable declaration)
-type_promotion_functions_test/14: RuntimeError # Issue 31402 (Variable declaration)
-type_promotion_functions_test/none: RuntimeError # Issue 31402 (Variable declaration)
+type_promotion_functions_test/02: CompileTimeError # Issue 31537
+type_promotion_functions_test/03: CompileTimeError # Issue 31537
+type_promotion_functions_test/04: CompileTimeError # Issue 31537
+type_promotion_functions_test/09: CompileTimeError # Issue 31537
+type_promotion_functions_test/11: CompileTimeError # Issue 31537
+type_promotion_functions_test/12: CompileTimeError # Issue 31537
+type_promotion_functions_test/13: CompileTimeError # Issue 31537
+type_promotion_functions_test/14: CompileTimeError # Issue 31537
+type_promotion_functions_test/none: CompileTimeError # Issue 31537
 type_promotion_logical_and_test/01: MissingCompileTimeError
 type_promotion_more_specific_test/04: CompileTimeError # Issue 31533
 type_variable_bounds2_test: MissingCompileTimeError
@@ -1011,14 +1142,13 @@
 vm/canonicalization_preserves_deopt_test: CompileTimeError # Issue 31402 (Assert statement)
 vm/causal_async_exception_stack2_test: CompileTimeError # Issue 31402 (Invocation arguments)
 vm/causal_async_exception_stack_test: CompileTimeError # Issue 31402 (Invocation arguments)
-vm/closure_memory_retention_test: Skip  # KernelVM bug: Hits OOM
+vm/closure_memory_retention_test: Skip # KernelVM bug: Hits OOM
 vm/debug_break_enabled_vm_test/01: CompileTimeError # KernelVM bug: Bad test using extended break syntax.
 vm/debug_break_enabled_vm_test/none: CompileTimeError # KernelVM bug: Bad test using extended break syntax.
 vm/optimized_guarded_field_isolates_test: RuntimeError # Issue 31402 (Variable declaration)
 vm/regress_27201_test: CompileTimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
 vm/regress_29145_test: Skip # Issue 29145
 vm/type_cast_vm_test: RuntimeError
-vm/type_vm_test/27: MissingCompileTimeError
 vm/type_vm_test/none: RuntimeError
 void_block_return_test/00: MissingCompileTimeError
 void_type_callbacks_test/none: CompileTimeError
@@ -1027,8 +1157,8 @@
 void_type_usage_test/call_as: CompileTimeError
 void_type_usage_test/call_for: CompileTimeError
 void_type_usage_test/call_stmt: CompileTimeError
-void_type_usage_test/field_assign2: CompileTimeError
 void_type_usage_test/field_assign: CompileTimeError
+void_type_usage_test/field_assign2: CompileTimeError
 void_type_usage_test/final_local_as: CompileTimeError
 void_type_usage_test/final_local_for: CompileTimeError
 void_type_usage_test/final_local_stmt: CompileTimeError
@@ -1064,25 +1194,34 @@
 wrong_number_type_arguments_test/*: MissingCompileTimeError
 wrong_number_type_arguments_test/none: Pass
 
-[ $compiler == dartk && $runtime == vm && $strong && $mode == debug ]
+[ $compiler == dartk && !$strong ]
+*: SkipByDesign # language_2 is only supported in strong mode.
+
+[ $compiler == dartkp && $mode == debug && $runtime == dart_precompiled && $strong ]
+bad_named_parameters_test/01: Crash
+bad_named_parameters_test/02: Crash
+bad_named_parameters_test/05: Crash
 const_instance_field_test/01: Crash
 cyclic_type_variable_test/01: Crash
 cyclic_type_variable_test/02: Crash
 cyclic_type_variable_test/03: Crash
 cyclic_type_variable_test/04: Crash
 cyclic_type_variable_test/none: Crash
-deopt_inlined_function_lazy_test: Skip
-flatten_test/04: Crash # Issue #31381
+external_test/13: Crash
+final_syntax_test/09: Crash
+flatten_test/04: Crash
+optional_named_parameters_test/06: Crash
+optional_named_parameters_test/08: Crash
+regress_29025_test: Crash
 tearoff_dynamic_test: Crash
+type_promotion_functions_test/05: Pass
+type_promotion_functions_test/06: Pass
+type_promotion_functions_test/07: Pass
+type_promotion_functions_test/08: Pass
+type_promotion_functions_test/10: Pass
+vm/async_await_catch_stacktrace_test: Crash
 
-[ $compiler == dartk && $runtime == vm && $mode == product ]
-deferred_load_constants_test/02: Fail
-deferred_load_constants_test/03: Fail
-deferred_load_constants_test/05: Fail
-deferred_not_loaded_check_test: RuntimeError
-vm/causal_async_exception_stack2_test: SkipByDesign
-vm/causal_async_exception_stack_test: SkipByDesign
-vm/regress_27201_test: Fail
+[ $compiler == dartkp && $mode == product && $runtime == dart_precompiled && $strong ]
 vm/type_vm_test/28: MissingRuntimeError
 vm/type_vm_test/29: MissingRuntimeError
 vm/type_vm_test/30: MissingRuntimeError
@@ -1093,36 +1232,7 @@
 vm/type_vm_test/35: MissingRuntimeError
 vm/type_vm_test/36: MissingRuntimeError
 
-[ $compiler == dartk && $runtime == vm && $strong && !$checked ]
-bool_check_test: RuntimeError
-bool_condition_check_test: RuntimeError
-callable_test/none: RuntimeError
-checked_setter2_test: RuntimeError
-checked_setter_test: RuntimeError
-covariance_field_test/01: RuntimeError
-covariance_field_test/02: RuntimeError
-covariance_field_test/03: RuntimeError
-covariance_field_test/04: RuntimeError
-covariance_field_test/05: RuntimeError
-deferred_constraints_type_annotation_test/type_annotation1: Crash # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/type_annotation_generic1: Crash # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/type_annotation_generic4: Crash # KernelVM bug: Deferred loading kernel issue 28335.
-field_override_optimization_test: RuntimeError
-field_type_check2_test/01: MissingRuntimeError
-function_subtype_checked0_test: RuntimeError
-function_subtype_inline2_test: RuntimeError
-function_subtype_setter0_test: RuntimeError
-generic_list_checked_test: RuntimeError
-mixin_forwarding_constructor4_test/01: MissingCompileTimeError # KernelVM bug: Issue 15101
-mixin_forwarding_constructor4_test/02: MissingCompileTimeError # KernelVM bug: Issue 15101
-mixin_forwarding_constructor4_test/03: MissingCompileTimeError # KernelVM bug: Issue 15101
-private_super_constructor_test/01: MissingCompileTimeError # Fasta bug: Illegal access to private constructor.
-redirecting_factory_default_values_test/01: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
-redirecting_factory_default_values_test/02: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
-redirecting_factory_long_test: RuntimeError # Fasta bug: Bad compilation of type arguments for redirecting factory.
-regress_20394_test/01: MissingCompileTimeError # Fasta bug: Illegal access to private constructor.
-
-[ $compiler == dartk && $runtime == vm && $strong && $checked ]
+[ $compiler == dartkp && $runtime == dart_precompiled && $checked && $strong ]
 assert_initializer_test/31: MissingCompileTimeError # KernelVM bug: Constant evaluation.
 assert_initializer_test/32: MissingCompileTimeError # KernelVM bug: Constant evaluation.
 assert_initializer_test/33: MissingCompileTimeError # KernelVM bug: Constant evaluation.
@@ -1140,17 +1250,12 @@
 assert_initializer_test/47: MissingCompileTimeError # KernelVM bug: Constant evaluation.
 assert_initializer_test/48: MissingCompileTimeError # KernelVM bug: Constant evaluation.
 assert_initializer_test/none: RuntimeError # KernelVM bug: Constant evaluation.
-assertion_initializer_const_function_test/01: RuntimeError
+assertion_initializer_const_error2_test/cc02: Crash
+assertion_initializer_const_error_test/none: Crash
+assertion_initializer_const_function_test/01: Crash
+assertion_initializer_const_function_test/none: Crash
 assign_static_type_test/02: MissingCompileTimeError
-async_await_test/none: RuntimeError
-async_await_test/02: RuntimeError
-async_await_test/03: RuntimeError
-async_star_regression_2238_test: RuntimeError
-async_star_test/01: RuntimeError
-async_star_test/03: RuntimeError
-async_star_test/04: RuntimeError
-async_star_test/05: RuntimeError
-async_star_test/none: RuntimeError
+async_await_test: RuntimeError
 async_return_types_test/nestedFuture: Fail
 async_return_types_test/wrongTypeParameter: Fail
 compile_time_constant_checked_test/02: MissingCompileTimeError
@@ -1165,8 +1270,20 @@
 factory_redirection_test/12: Fail
 factory_redirection_test/13: Fail
 factory_redirection_test/14: Fail
-if_null_precedence_test/none: Pass
-known_identifier_usage_error_test/none: RuntimeError # Issue 28814
+function_subtype_checked0_test: Pass
+function_subtype_closure0_test: Pass
+function_subtype_closure1_test: Pass
+function_subtype_factory1_test: Pass
+function_subtype_inline1_test: Pass
+function_subtype_inline2_test: Pass
+function_subtype_setter0_test: Pass
+function_type2_test: RuntimeError
+generic_functions_test: Pass # Issue 25869
+generic_local_functions_test: Pass # Issue 25869
+generic_methods_function_type_test: Pass # Issue 25869
+generic_methods_generic_function_parameter_test: Pass # Issue 25869
+generic_methods_new_test: Pass # Issue 25869
+generic_methods_test: Pass # Issue 25869
 list_literal1_test/01: MissingCompileTimeError
 malbounded_redirecting_factory_test/03: Fail
 malbounded_redirecting_factory_test/04: Fail
@@ -1181,19 +1298,63 @@
 mixin_invalid_bound2_test/10: Fail
 mixin_invalid_bound_test/06: Fail
 mixin_invalid_bound_test/07: Fail
-recursive_mixin_test: Crash
 redirecting_factory_infinite_steps_test/01: Fail
 redirecting_factory_malbounded_test/01: Fail
 regress_22728_test: Fail # Dartk Issue 28498
 regress_22728_test: RuntimeError
 regress_26133_test: RuntimeError
-regress_30339_test: RuntimeError
+regress_30339_test: Crash
 setter_override_test/01: MissingCompileTimeError
 setter_override_test/02: MissingCompileTimeError
 type_parameter_test/05: MissingCompileTimeError
 type_parameter_test/none: RuntimeError
 type_variable_bounds4_test/01: RuntimeError
 
+[ $compiler == dartkp && $runtime == dart_precompiled && !$checked && $strong ]
+assertion_initializer_const_error_test/01: MissingCompileTimeError
+assertion_initializer_const_function_error_test/01: MissingCompileTimeError
+callable_test/none: RuntimeError
+checked_setter2_test: RuntimeError
+checked_setter_test: RuntimeError
+covariance_field_test/01: RuntimeError
+covariance_field_test/02: RuntimeError
+covariance_field_test/03: RuntimeError
+covariance_field_test/04: RuntimeError
+covariance_field_test/05: RuntimeError
+deferred_constraints_type_annotation_test/type_annotation1: Crash # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/type_annotation_generic1: Crash # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/type_annotation_generic4: Crash # KernelVM bug: Deferred loading kernel issue 28335.
+implicit_downcast_during_assignment_test: RuntimeError
+implicit_downcast_during_combiner_test: RuntimeError
+implicit_downcast_during_compound_assignment_test: RuntimeError
+implicit_downcast_during_conditional_expression_test: RuntimeError
+implicit_downcast_during_do_test: RuntimeError
+implicit_downcast_during_for_condition_test: RuntimeError
+implicit_downcast_during_for_initializer_expression_test: RuntimeError
+implicit_downcast_during_for_initializer_var_test: RuntimeError
+implicit_downcast_during_if_null_assignment_test: RuntimeError
+implicit_downcast_during_if_statement_test: RuntimeError
+implicit_downcast_during_list_literal_test: RuntimeError
+implicit_downcast_during_logical_expression_test: RuntimeError
+implicit_downcast_during_map_literal_test: RuntimeError
+implicit_downcast_during_not_test: RuntimeError
+implicit_downcast_during_return_async_test: RuntimeError
+implicit_downcast_during_return_test: RuntimeError
+implicit_downcast_during_variable_declaration_test: RuntimeError
+implicit_downcast_during_while_statement_test: RuntimeError
+implicit_downcast_during_yield_star_test: RuntimeError
+implicit_downcast_during_yield_test: RuntimeError
+mixin_forwarding_constructor4_test/01: MissingCompileTimeError # KernelVM bug: Issue 15101
+mixin_forwarding_constructor4_test/02: MissingCompileTimeError # KernelVM bug: Issue 15101
+mixin_forwarding_constructor4_test/03: MissingCompileTimeError # KernelVM bug: Issue 15101
+private_super_constructor_test/01: MissingCompileTimeError
+redirecting_factory_default_values_test/01: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
+redirecting_factory_default_values_test/02: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
+redirecting_factory_long_test: RuntimeError # Fasta bug: Bad compilation of type arguments for redirecting factory.
+regress_20394_test/01: MissingCompileTimeError # Fasta bug: Illegal access to private constructor.
+regress_30339_test: RuntimeError
+vm/causal_async_exception_stack_test: RuntimeError
+
 # ==== dartkp + dart_precompiled status lines ====
 [ $compiler == dartkp && $runtime == dart_precompiled && $strong ]
 abstract_beats_arguments_test: MissingCompileTimeError
@@ -1207,9 +1368,6 @@
 additional_interface_adds_optional_args_concrete_subclass_test: MissingCompileTimeError
 additional_interface_adds_optional_args_concrete_test: MissingCompileTimeError
 additional_interface_adds_optional_args_supercall_test: MissingCompileTimeError
-argument_assignability_function_typed_test/03: RuntimeError # Issue 31402 (Invocation arguments)
-argument_assignability_function_typed_test/04: RuntimeError # Issue 31402 (Invocation arguments)
-argument_assignability_function_typed_test/05: RuntimeError # Issue 31402 (Invocation arguments)
 assert_message_test: CompileTimeError # Issue 31402 (Assert statement)
 assert_with_type_test_or_cast_test: Pass, Crash
 assertion_initializer_const_error_test/01: Pass
@@ -1227,10 +1385,6 @@
 async_await_test/02: CompileTimeError # Issue 31402 (Invocation arguments)
 async_await_test/03: CompileTimeError # Issue 31402 (Invocation arguments)
 async_await_test/none: CompileTimeError # Issue 31402 (Invocation arguments)
-async_congruence_local_test/none: RuntimeError
-async_congruence_method_test/none: RuntimeError
-async_congruence_top_level_test: RuntimeError
-async_congruence_unnamed_test/none: RuntimeError
 async_or_generator_return_type_stacktrace_test/01: MissingCompileTimeError
 async_or_generator_return_type_stacktrace_test/02: MissingCompileTimeError
 async_or_generator_return_type_stacktrace_test/03: MissingCompileTimeError
@@ -1239,15 +1393,19 @@
 async_return_types_test/wrongReturnType: MissingCompileTimeError
 async_star_cancel_while_paused_test: RuntimeError
 async_star_pause_test: Fail, OK
+async_star_regression_2238_test: RuntimeError
+async_star_regression_23116_test: RuntimeError
+async_star_regression_fisk_test: RuntimeError
 async_star_test/01: CompileTimeError # Issue 2238.
 async_star_test/01: Crash
 async_star_test/01: Pass
-async_star_test/02: CompileTimeError # Issue 31402 (Invocation arguments)
 async_star_test/02: RuntimeError
+async_star_test/02: CompileTimeError # Issue 31402 (Invocation arguments)
 async_star_test/03: CompileTimeError # Issue 31402 (Invocation arguments)
 async_star_test/04: CompileTimeError # Issue 31402 (Invocation arguments)
 async_star_test/05: CompileTimeError # Issue 31402 (Invocation arguments)
 async_star_test/none: CompileTimeError # Issue 31402 (Invocation arguments)
+await_test: CompileTimeError # Issue 31541
 bad_named_parameters2_test/01: MissingCompileTimeError
 bad_named_parameters_test/01: MissingCompileTimeError
 bad_named_parameters_test/02: MissingCompileTimeError
@@ -1313,8 +1471,8 @@
 checked_setter3_test/03: MissingCompileTimeError
 class_cycle_test/02: MissingCompileTimeError
 class_cycle_test/03: MissingCompileTimeError
-class_keyword_test/02: MissingCompileTimeError # Issue 13627
 class_keyword_test/02: Pass
+class_keyword_test/02: MissingCompileTimeError # Issue 13627
 class_literal_static_test/12: MissingCompileTimeError
 class_literal_static_test/13: MissingCompileTimeError
 class_literal_static_test/17: MissingCompileTimeError
@@ -1348,6 +1506,9 @@
 compile_time_constant_o_test/02: RuntimeError # KernelVM bug: Constant map duplicated key.
 compile_time_constant_static2_test/04: MissingCompileTimeError
 compile_time_constant_static3_test/04: MissingCompileTimeError
+compile_time_constant_static5_test/11: CompileTimeError # Issue 31537
+compile_time_constant_static5_test/16: CompileTimeError # Issue 31537
+compile_time_constant_static5_test/21: CompileTimeError # Issue 31537
 compile_time_constant_static5_test/23: CompileTimeError # Issue 31402 (Field declaration)
 conditional_import_string_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
 conditional_import_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
@@ -1375,8 +1536,8 @@
 const_map2_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation.
 const_map3_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation.
 const_map4_test: RuntimeError
-const_native_factory_test/01: MissingCompileTimeError # Fasta bug: Issue 29763
 const_native_factory_test: MissingCompileTimeError
+const_native_factory_test/01: MissingCompileTimeError # Fasta bug: Issue 29763
 const_nested_test: RuntimeError # KernelVM bug: Constant evaluation.
 const_optional_args_test/01: MissingCompileTimeError # Fasta bug: Default parameter values must be const.
 const_redirecting_factory_test: CompileTimeError # Issue 31402 (Field declaration)
@@ -1394,6 +1555,7 @@
 const_types_test/35: MissingCompileTimeError
 const_types_test/39: MissingCompileTimeError
 const_types_test/40: MissingCompileTimeError
+constructor12_test: RuntimeError
 constructor13_test/01: MissingCompileTimeError
 constructor13_test/02: MissingCompileTimeError
 constructor3_test: Fail, OK, Pass
@@ -1407,7 +1569,6 @@
 constructor_redirect_test/01: MissingCompileTimeError # Fasta bug: Initializer refers to this.
 covariant_subtyping_test: CompileTimeError
 covariant_subtyping_test: Crash
-covariant_subtyping_with_substitution_test: RuntimeError
 create_unresolved_type_test/01: MissingCompileTimeError
 ct_const2_test: Skip # Incompatible flag: --compile_all
 ct_const_test: RuntimeError
@@ -1420,17 +1581,17 @@
 cyclic_type_variable_test/03: MissingCompileTimeError
 cyclic_type_variable_test/04: MissingCompileTimeError
 cyclic_typedef_test/13: MissingCompileTimeError
-deep_nesting1_negative_test: Skip  # Issue 31158
-deep_nesting2_negative_test: Skip  # Issue 31158
+deep_nesting1_negative_test: Skip # Issue 31158
+deep_nesting2_negative_test: Skip # Issue 31158
 default_factory2_test/01: MissingCompileTimeError
 default_factory_test/01: MissingCompileTimeError
 deferred_call_empty_before_load_test: RuntimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
 deferred_closurize_load_library_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
 deferred_constant_list_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_constants_test: SkipByDesign
 deferred_constraints_constants_test/default_argument2: Pass # Passes by mistake. KernelVM bug: Deferred loading kernel issue 28335.
 deferred_constraints_constants_test/none: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
 deferred_constraints_constants_test/reference_after_load: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_constants_test: SkipByDesign
 deferred_constraints_type_annotation_test/as_operation: MissingCompileTimeError
 deferred_constraints_type_annotation_test/as_operation: Pass
 deferred_constraints_type_annotation_test/catch_check: MissingCompileTimeError
@@ -1438,8 +1599,8 @@
 deferred_constraints_type_annotation_test/is_check: MissingCompileTimeError
 deferred_constraints_type_annotation_test/is_check: Pass
 deferred_constraints_type_annotation_test/new: CompileTimeError
-deferred_constraints_type_annotation_test/new_before_load: MissingCompileTimeError
 deferred_constraints_type_annotation_test/new_before_load: Pass
+deferred_constraints_type_annotation_test/new_before_load: MissingCompileTimeError
 deferred_constraints_type_annotation_test/new_generic1: CompileTimeError
 deferred_constraints_type_annotation_test/new_generic2: MissingCompileTimeError
 deferred_constraints_type_annotation_test/new_generic2: Pass
@@ -1454,8 +1615,8 @@
 deferred_constraints_type_annotation_test/type_annotation_generic1: Pass
 deferred_constraints_type_annotation_test/type_annotation_generic2: MissingCompileTimeError
 deferred_constraints_type_annotation_test/type_annotation_generic2: Pass
-deferred_constraints_type_annotation_test/type_annotation_generic3: MissingCompileTimeError
 deferred_constraints_type_annotation_test/type_annotation_generic3: Pass
+deferred_constraints_type_annotation_test/type_annotation_generic3: MissingCompileTimeError
 deferred_constraints_type_annotation_test/type_annotation_generic4: MissingCompileTimeError
 deferred_constraints_type_annotation_test/type_annotation_generic4: Pass
 deferred_constraints_type_annotation_test/type_annotation_non_deferred: CompileTimeError
@@ -1496,7 +1657,6 @@
 deferred_type_dependency_test/none: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
 deferred_type_dependency_test/type_annotation: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
 deopt_inlined_function_lazy_test: Skip # Incompatible flag: --deoptimize-alot
-disassemble_test: Crash
 duplicate_export_negative_test: Fail # Issue 6134
 duplicate_implements_test/01: MissingCompileTimeError
 duplicate_implements_test/02: MissingCompileTimeError
@@ -1511,22 +1671,23 @@
 enum_mirror_test: SkipByDesign
 enum_private_test/02: MissingCompileTimeError
 example_constructor_test: Fail, OK
-export_ambiguous_main_negative_test: Fail # Issue 14763
 export_ambiguous_main_negative_test: Skip # Issue 29895
-export_double_same_main_test: Crash # Issue 29895
+export_ambiguous_main_negative_test: Fail # Issue 14763
 export_double_same_main_test: Skip # Issue 29895
+export_double_same_main_test: Crash # Issue 29895
 external_test/10: MissingRuntimeError # KernelVM bug: Unbound external.
 external_test/13: MissingRuntimeError # KernelVM bug: Unbound external.
 external_test/20: MissingRuntimeError # KernelVM bug: Unbound external.
 external_test/21: CompileTimeError
 external_test/24: CompileTimeError
+extract_type_arguments_test: CompileTimeError # Issue 31371
 f_bounded_quantification_test/01: MissingCompileTimeError
 f_bounded_quantification_test/02: MissingCompileTimeError
 factory2_test/03: MissingCompileTimeError
 factory2_test/none: MissingCompileTimeError
+factory3_test: Crash
 factory3_test/01: Pass
 factory3_test/none: MissingCompileTimeError
-factory3_test: Crash
 factory4_test/00: MissingCompileTimeError
 factory5_test/00: MissingCompileTimeError
 factory6_test/00: MissingCompileTimeError
@@ -1539,7 +1700,6 @@
 field_override_optimization_test: RuntimeError
 field_override_test/00: MissingCompileTimeError
 field_override_test/01: MissingCompileTimeError
-field_override_test/none: MissingCompileTimeError
 field_type_check2_test/01: MissingRuntimeError
 final_attempt_reinitialization_test/01: MissingCompileTimeError # Issue 29900
 final_attempt_reinitialization_test/02: MissingCompileTimeError # Issue 29900
@@ -1563,22 +1723,33 @@
 for_in_side_effects_test/01: MissingCompileTimeError
 function_malformed_result_type_test/00: MissingCompileTimeError
 function_propagation_test: CompileTimeError # Issue 31402 (Variable declaration)
-function_subtype_bound_closure7_test: CompileTimeError # Issue 31402 (Variable declaration)
+function_subtype3_test: RuntimeError
+function_subtype_bound_closure1_test: RuntimeError
+function_subtype_bound_closure2_test: RuntimeError
+function_subtype_bound_closure5_test: RuntimeError
+function_subtype_bound_closure5a_test: RuntimeError
+function_subtype_bound_closure6_test: RuntimeError
 function_subtype_bound_closure7_test: RuntimeError
+function_subtype_bound_closure7_test: CompileTimeError # Issue 31402 (Variable declaration)
 function_subtype_call1_test: RuntimeError
 function_subtype_call2_test: RuntimeError
+function_subtype_cast2_test: RuntimeError
+function_subtype_cast3_test: RuntimeError
+function_subtype_checked0_test: RuntimeError
+function_subtype_inline2_test: RuntimeError
+function_subtype_local1_test: RuntimeError
+function_subtype_local2_test: RuntimeError
+function_subtype_local5_test: RuntimeError
 function_subtype_named1_test: Pass
 function_subtype_named1_test: RuntimeError
-function_subtype_named2_test: RuntimeError
 function_subtype_not0_test: RuntimeError
 function_subtype_not2_test: RuntimeError
+function_subtype_not3_test: RuntimeError
 function_subtype_optional1_test: Pass
 function_subtype_optional1_test: RuntimeError
-function_subtype_optional2_test: RuntimeError
 function_subtype_setter0_test: RuntimeError
 function_subtype_simple1_test: RuntimeError
-function_subtype_typearg2_test: RuntimeError
-function_subtype_typearg3_test: RuntimeError
+function_subtype_top_level1_test: RuntimeError
 function_subtype_typearg5_test: RuntimeError
 function_type/function_type0_test: RuntimeError
 function_type/function_type10_test: RuntimeError
@@ -1682,12 +1853,15 @@
 function_type/function_type9_test: RuntimeError
 function_type2_test: RuntimeError
 function_type_alias2_test: RuntimeError
+function_type_alias3_test: RuntimeError
 function_type_alias4_test: RuntimeError
+function_type_alias6_test/none: RuntimeError
 function_type_alias_test: RuntimeError
 generalized_void_syntax_test: CompileTimeError # Issue #30176
+generic_async_star_test: RuntimeError
 generic_closure_test: RuntimeError
-generic_function_bounds_test: CompileTimeError
 generic_function_bounds_test: RuntimeError
+generic_function_bounds_test: CompileTimeError
 generic_function_dcall_test: CompileTimeError
 generic_function_dcall_test: RuntimeError
 generic_function_type_as_type_argument_test/02: MissingCompileTimeError, OK # No type inference
@@ -1695,13 +1869,14 @@
 generic_function_typedef2_test/04: MissingCompileTimeError
 generic_function_typedef_test/01: Pass
 generic_function_typedef_test/01: RuntimeError
+generic_instanceof2_test: RuntimeError
 generic_instanceof_test: RuntimeError
-generic_list_checked_test: CompileTimeError # Issue 31402 (Variable declaration)
+generic_is_check_test: RuntimeError
 generic_list_checked_test: RuntimeError
+generic_list_checked_test: CompileTimeError # Issue 31402 (Variable declaration)
 generic_method_types_test/02: RuntimeError
 generic_methods_bounds_test/01: Crash
 generic_methods_bounds_test/01: MissingCompileTimeError
-generic_methods_generic_class_tearoff_test: RuntimeError
 generic_methods_generic_function_result_test/01: MissingCompileTimeError
 generic_methods_optional_parameters_test: Pass
 generic_methods_optional_parameters_test: RuntimeError
@@ -1709,12 +1884,12 @@
 generic_methods_overriding_test/03: MissingCompileTimeError
 generic_methods_recursive_bound_test/02: Crash
 generic_methods_recursive_bound_test/02: MissingCompileTimeError
-generic_methods_recursive_bound_test/03: Crash, Pass
-generic_methods_recursive_bound_test/03: MissingRuntimeError
 generic_methods_recursive_bound_test/03: Pass
+generic_methods_recursive_bound_test/03: MissingRuntimeError
+generic_methods_recursive_bound_test/03: Crash, Pass
 generic_methods_reuse_type_variables_test: Pass
-generic_methods_tearoff_specialization_test: CompileTimeError # Issue 31402 (Variable declaration)
 generic_methods_tearoff_specialization_test: RuntimeError
+generic_methods_tearoff_specialization_test: CompileTimeError # Issue 31402 (Variable declaration)
 generic_methods_type_expression_test: Crash
 generic_methods_type_expression_test: RuntimeError # Issue 25869 / 27460
 generic_methods_unused_parameter_test: CompileTimeError # Issue 31402 (Variable declaration)
@@ -1723,6 +1898,7 @@
 generic_no_such_method_dispatcher_test: CompileTimeError # Issue 31533
 generic_tearoff_test: CompileTimeError
 generic_tearoff_test: RuntimeError
+generic_test: RuntimeError
 getter_no_setter2_test/01: MissingCompileTimeError
 getter_no_setter2_test/03: MissingCompileTimeError
 getter_no_setter_test/01: MissingCompileTimeError
@@ -1749,7 +1925,6 @@
 implicit_downcast_during_for_condition_test: Pass # Correctly passes.
 implicit_downcast_during_for_initializer_expression_test: Pass # Correctly passes.
 implicit_downcast_during_for_initializer_var_test: Pass # Correctly passes.
-implicit_downcast_during_function_literal_arrow_test: RuntimeError # Issue #31436
 implicit_downcast_during_if_null_assignment_test: Pass # Correctly passes.
 implicit_downcast_during_if_statement_test: Pass # Correctly passes.
 implicit_downcast_during_list_literal_test: Pass # Correctly passes.
@@ -1776,8 +1951,8 @@
 instanceof4_test/01: RuntimeError
 instanceof4_test/none: Pass
 instanceof4_test/none: RuntimeError
-int64_literal_test/03: MissingCompileTimeError  # http://dartbug.com/31479
-int64_literal_test/30: MissingCompileTimeError  # http://dartbug.com/31479
+int64_literal_test/03: MissingCompileTimeError # http://dartbug.com/31479
+int64_literal_test/30: MissingCompileTimeError # http://dartbug.com/31479
 interface_test/00: MissingCompileTimeError
 invocation_mirror2_test: SkipByDesign
 invocation_mirror_invoke_on2_test: SkipByDesign
@@ -1824,6 +1999,7 @@
 library_env_test/has_mirror_support: RuntimeError, OK
 library_env_test/has_no_io_support: RuntimeError # KernelVM bug: Configurable imports.
 library_env_test/has_no_io_support: RuntimeError, OK
+list_is_test: RuntimeError
 list_literal_syntax_test/01: MissingCompileTimeError
 list_literal_syntax_test/02: MissingCompileTimeError
 list_literal_syntax_test/03: MissingCompileTimeError
@@ -1845,13 +2021,11 @@
 malbounded_type_cast_test/00: MissingCompileTimeError
 malbounded_type_cast_test/01: MissingCompileTimeError
 malbounded_type_cast_test/02: MissingCompileTimeError
-malbounded_type_cast_test/none: RuntimeError
 malbounded_type_literal_test/00: MissingCompileTimeError
 malbounded_type_test2_test/00: MissingCompileTimeError
 malbounded_type_test_test/00: MissingCompileTimeError
 malbounded_type_test_test/01: MissingCompileTimeError
 malbounded_type_test_test/02: MissingCompileTimeError
-malbounded_type_test_test/none: RuntimeError
 malformed2_test/01: MissingCompileTimeError
 malformed2_test/02: MissingCompileTimeError
 malformed2_test/03: MissingCompileTimeError
@@ -1984,22 +2158,19 @@
 mixin_type_parameters_errors_test/03: MissingCompileTimeError
 mixin_type_parameters_errors_test/04: MissingCompileTimeError
 mixin_type_parameters_errors_test/05: MissingCompileTimeError
-mixin_type_parameters_mixin_extends_test: RuntimeError
-mixin_type_parameters_mixin_test: RuntimeError
-mixin_type_parameters_super_extends_test: RuntimeError
-mixin_type_parameters_super_test: RuntimeError
 mixin_with_two_implicit_constructors_test: MissingCompileTimeError
 mock_writable_final_private_field_test: RuntimeError # Issue 30849
-multiline_strings_test: Fail # Issue 23020
 multiline_strings_test: Pass
-named_constructor_test/01: MissingCompileTimeError
+multiline_strings_test: Fail # Issue 23020
 named_constructor_test/01: MissingRuntimeError # Fasta bug: Bad compilation of constructor reference.
+named_constructor_test/01: MissingCompileTimeError
 named_constructor_test/03: MissingCompileTimeError
 named_parameters2_test: MissingCompileTimeError
 named_parameters3_test: MissingCompileTimeError
 named_parameters4_test: MissingCompileTimeError
 named_parameters_aggregated_test/05: MissingCompileTimeError
 named_parameters_default_eq_test/02: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
+named_parameters_default_eq_test/none: RuntimeError
 named_parameters_test/01: MissingCompileTimeError
 named_parameters_test/02: MissingCompileTimeError
 named_parameters_test/03: MissingCompileTimeError
@@ -2010,8 +2181,6 @@
 named_parameters_test/08: MissingCompileTimeError
 named_parameters_test/09: MissingCompileTimeError
 named_parameters_test/10: MissingCompileTimeError
-named_parameters_type_test/01: Crash
-named_parameters_type_test/01: MissingCompileTimeError
 nested_generic_closure_test: Crash
 nested_generic_closure_test: RuntimeError
 new_expression_type_args_test/00: MissingCompileTimeError
@@ -2020,8 +2189,8 @@
 new_prefix_test/01: MissingCompileTimeError
 no_main_test/01: Skip
 no_such_constructor_test/01: MissingCompileTimeError
-no_such_method_mock_test: Pass
 no_such_method_mock_test: RuntimeError
+no_such_method_mock_test: Pass
 no_such_method_test: SkipByDesign
 not_enough_positional_arguments_test/00: MissingCompileTimeError
 not_enough_positional_arguments_test/01: MissingCompileTimeError
@@ -2124,10 +2293,6 @@
 override_inheritance_no_such_method_test/13: MissingCompileTimeError
 parser_quirks_test: CompileTimeError # Issue 31533
 part2_test/01: MissingCompileTimeError
-positional_parameters_type_test/01: Crash
-positional_parameters_type_test/01: MissingCompileTimeError
-positional_parameters_type_test/02: Crash
-positional_parameters_type_test/02: MissingCompileTimeError
 positional_parameters_type_test/none: Crash
 positional_parameters_type_test/none: Pass
 prefix16_test/00: MissingCompileTimeError
@@ -2168,8 +2333,8 @@
 regress_28217_test/none: MissingCompileTimeError # Fasta bug: Bad constructor redirection.
 regress_28255_test: SkipByDesign
 regress_28278_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-regress_28341_test: Pass
 regress_28341_test: RuntimeError
+regress_28341_test: Pass
 regress_29025_test: CompileTimeError # Issue 31402 (Variable declaration)
 regress_29405_test: CompileTimeError # Issue 31402 (Invocation arguments)
 regress_29784_test/01: MissingCompileTimeError
@@ -2231,17 +2396,15 @@
 type_parameter_test/07: MissingCompileTimeError
 type_parameter_test/08: MissingCompileTimeError
 type_parameter_test/09: MissingCompileTimeError
-type_promotion_functions_test/01: MissingCompileTimeError
-type_promotion_functions_test/01: Pass
-type_promotion_functions_test/02: Pass
-type_promotion_functions_test/03: Pass
-type_promotion_functions_test/04: Pass
-type_promotion_functions_test/09: Pass
-type_promotion_functions_test/11: Pass
-type_promotion_functions_test/12: Pass
-type_promotion_functions_test/13: Pass
-type_promotion_functions_test/14: Pass
-type_promotion_functions_test/none: Pass
+type_promotion_functions_test/02: CompileTimeError # Issue 31537
+type_promotion_functions_test/03: CompileTimeError # Issue 31537
+type_promotion_functions_test/04: CompileTimeError # Issue 31537
+type_promotion_functions_test/09: CompileTimeError # Issue 31537
+type_promotion_functions_test/11: CompileTimeError # Issue 31537
+type_promotion_functions_test/12: CompileTimeError # Issue 31537
+type_promotion_functions_test/13: CompileTimeError # Issue 31537
+type_promotion_functions_test/14: CompileTimeError # Issue 31537
+type_promotion_functions_test/none: CompileTimeError # Issue 31537
 type_promotion_logical_and_test/01: MissingCompileTimeError
 type_promotion_more_specific_test/04: CompileTimeError # Issue 31533
 type_variable_bounds2_test: MissingCompileTimeError
@@ -2261,9 +2424,6 @@
 type_variable_bounds_test/11: MissingCompileTimeError
 type_variable_conflict2_test/03: MissingCompileTimeError
 type_variable_conflict2_test/04: MissingCompileTimeError
-type_variable_nested_test/01: RuntimeError
-type_variable_promotion_test: Pass
-type_variable_promotion_test: RuntimeError
 type_variable_scope2_test: MissingCompileTimeError
 type_variable_scope_test/00: MissingCompileTimeError
 type_variable_scope_test/01: MissingCompileTimeError
@@ -2272,8 +2432,6 @@
 type_variable_scope_test/04: MissingCompileTimeError
 type_variable_scope_test/05: MissingCompileTimeError
 type_variable_static_context_test: MissingCompileTimeError
-unicode_bom_test: Fail # Issue 16067
-unicode_bom_test: Pass
 unresolved_default_constructor_test/01: MissingCompileTimeError
 unresolved_in_factory_test: MissingCompileTimeError
 unresolved_top_level_method_test: MissingCompileTimeError
@@ -2281,19 +2439,22 @@
 vm/canonicalization_preserves_deopt_test: CompileTimeError # Issue 31402 (Assert statement)
 vm/causal_async_exception_stack2_test: SkipByDesign
 vm/causal_async_exception_stack_test: SkipByDesign
-vm/closure_memory_retention_test: Skip  # KernelVM bug: Hits OOM
+vm/closure_memory_retention_test: Skip # KernelVM bug: Hits OOM
 vm/debug_break_enabled_vm_test/01: CompileTimeError # KernelVM bug: Bad test using extended break syntax.
 vm/debug_break_enabled_vm_test/01: Crash, OK # Expected to hit breakpoint.
 vm/debug_break_enabled_vm_test/none: CompileTimeError # KernelVM bug: Bad test using extended break syntax.
+vm/optimized_guarded_field_isolates_test: RuntimeError
 vm/optimized_stacktrace_test: Crash
 vm/optimized_stacktrace_test: Skip # Issue 30198
 vm/reflect_core_vm_test: SkipByDesign
 vm/regress_27201_test: CompileTimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
 vm/regress_27201_test: Fail
-vm/regress_27671_test: Crash
 vm/regress_27671_test: Skip # Unsupported
+vm/regress_27671_test: Crash
 vm/regress_29145_test: Skip # Issue 29145
 vm/type_cast_vm_test: RuntimeError # Expects line and column numbers
+vm/type_vm_test: RuntimeError, Pass # Expects line and column numbers
+vm/type_vm_test: RuntimeError # Expects line and column numbers
 vm/type_vm_test/01: MissingCompileTimeError
 vm/type_vm_test/02: MissingCompileTimeError
 vm/type_vm_test/03: MissingCompileTimeError
@@ -2317,8 +2478,6 @@
 vm/type_vm_test/30: MissingRuntimeError
 vm/type_vm_test/31: MissingRuntimeError
 vm/type_vm_test/32: MissingRuntimeError
-vm/type_vm_test: RuntimeError # Expects line and column numbers
-vm/type_vm_test: RuntimeError, Pass # Expects line and column numbers
 void_block_return_test/00: MissingCompileTimeError
 void_type_callbacks_test/none: CompileTimeError
 void_type_function_types_test/none: CompileTimeError
@@ -2326,8 +2485,8 @@
 void_type_usage_test/call_as: CompileTimeError
 void_type_usage_test/call_for: CompileTimeError
 void_type_usage_test/call_stmt: CompileTimeError
-void_type_usage_test/field_assign2: CompileTimeError
 void_type_usage_test/field_assign: CompileTimeError
+void_type_usage_test/field_assign2: CompileTimeError
 void_type_usage_test/final_local_as: CompileTimeError
 void_type_usage_test/final_local_for: CompileTimeError
 void_type_usage_test/final_local_stmt: CompileTimeError
@@ -2363,172 +2522,6 @@
 wrong_number_type_arguments_test/*: MissingCompileTimeError
 wrong_number_type_arguments_test/none: Pass
 
-[ $compiler == dartkp && $runtime == dart_precompiled && $strong && $mode == debug ]
-bad_named_parameters_test/01: Crash
-bad_named_parameters_test/02: Crash
-bad_named_parameters_test/05: Crash
-const_instance_field_test/01: Crash
-cyclic_type_variable_test/01: Crash
-cyclic_type_variable_test/02: Crash
-cyclic_type_variable_test/03: Crash
-cyclic_type_variable_test/04: Crash
-cyclic_type_variable_test/none: Crash
-external_test/13: Crash
-final_syntax_test/09: Crash
-flatten_test/04: Crash
-malbounded_type_cast_test: Crash
-optional_named_parameters_test/06: Crash
-optional_named_parameters_test/08: Crash
-regress_29025_test: Crash
-tearoff_dynamic_test: Crash
-type_promotion_functions_test/05: Pass
-type_promotion_functions_test/06: Pass
-type_promotion_functions_test/07: Pass
-type_promotion_functions_test/08: Pass
-type_promotion_functions_test/10: Pass
-vm/async_await_catch_stacktrace_test: Crash
+[ $compiler == dartkp && !$strong ]
+*: SkipByDesign # language_2 is only supported in strong mode.
 
-[ $compiler == dartkp && $runtime == dart_precompiled && $strong && $mode == product ]
-vm/type_vm_test/28: MissingRuntimeError
-vm/type_vm_test/29: MissingRuntimeError
-vm/type_vm_test/30: MissingRuntimeError
-vm/type_vm_test/31: MissingRuntimeError
-vm/type_vm_test/32: MissingRuntimeError
-vm/type_vm_test/33: MissingRuntimeError
-vm/type_vm_test/34: MissingRuntimeError
-vm/type_vm_test/35: MissingRuntimeError
-vm/type_vm_test/36: MissingRuntimeError
-
-[ $compiler == dartkp && $runtime == dart_precompiled && $strong && $checked ]
-assert_initializer_test/31: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/32: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/33: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/34: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/35: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/36: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/37: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/38: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/41: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/42: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/43: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/44: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/45: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/46: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/47: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/48: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/none: RuntimeError # KernelVM bug: Constant evaluation.
-assertion_initializer_const_error2_test/cc02: Crash
-assertion_initializer_const_error_test/none: Crash
-assertion_initializer_const_function_test/01: Crash
-assertion_initializer_const_function_test/none: Crash
-assign_static_type_test/02: MissingCompileTimeError
-async_await_test: RuntimeError
-async_return_types_test/nestedFuture: Fail
-async_return_types_test/wrongTypeParameter: Fail
-compile_time_constant_checked_test/02: MissingCompileTimeError
-const_constructor2_test/20: MissingCompileTimeError
-const_constructor2_test/22: MissingCompileTimeError
-const_constructor2_test/24: MissingCompileTimeError
-const_init2_test/02: MissingCompileTimeError
-default_factory2_test/01: Fail
-factory_redirection_test/08: Fail
-factory_redirection_test/09: Fail
-factory_redirection_test/10: Fail
-factory_redirection_test/12: Fail
-factory_redirection_test/13: Fail
-factory_redirection_test/14: Fail
-function_subtype_checked0_test: Pass
-function_subtype_closure0_test: Pass
-function_subtype_closure1_test: Pass
-function_subtype_factory1_test: Pass
-function_subtype_inline1_test: Pass
-function_subtype_inline2_test: Pass
-function_subtype_setter0_test: Pass
-function_type2_test: RuntimeError
-generic_functions_test: Pass # Issue 25869
-generic_local_functions_test: Pass # Issue 25869
-generic_methods_function_type_test: Pass # Issue 25869
-generic_methods_generic_function_parameter_test: Pass # Issue 25869
-generic_methods_new_test: Pass # Issue 25869
-generic_methods_test: Pass # Issue 25869
-list_literal1_test/01: MissingCompileTimeError
-malbounded_redirecting_factory_test/03: Fail
-malbounded_redirecting_factory_test/04: Fail
-malbounded_type_cast_test: RuntimeError
-malbounded_type_test_test/03: Fail
-malbounded_type_test_test/04: Fail
-malformed2_test/00: RuntimeError
-malformed2_test/01: MissingCompileTimeError
-map_literal1_test/01: MissingCompileTimeError
-mixin_invalid_bound2_test/08: Fail
-mixin_invalid_bound2_test/09: Fail
-mixin_invalid_bound2_test/10: Fail
-mixin_invalid_bound_test/06: Fail
-mixin_invalid_bound_test/07: Fail
-redirecting_factory_infinite_steps_test/01: Fail
-redirecting_factory_malbounded_test/01: Fail
-regress_22728_test: Fail # Dartk Issue 28498
-regress_22728_test: RuntimeError
-regress_26133_test: RuntimeError
-regress_30339_test: Crash
-setter_override_test/01: MissingCompileTimeError
-setter_override_test/02: MissingCompileTimeError
-type_parameter_test/05: MissingCompileTimeError
-type_parameter_test/none: RuntimeError
-type_variable_bounds4_test/01: RuntimeError
-
-[ $compiler == dartkp && $runtime == dart_precompiled && $strong && !$checked ]
-assertion_initializer_const_error_test/01: MissingCompileTimeError
-assertion_initializer_const_function_error_test/01: MissingCompileTimeError
-callable_test/none: RuntimeError
-checked_setter2_test: RuntimeError
-checked_setter_test: RuntimeError
-covariance_field_test/01: RuntimeError
-covariance_field_test/02: RuntimeError
-covariance_field_test/03: RuntimeError
-covariance_field_test/04: RuntimeError
-covariance_field_test/05: RuntimeError
-covariant_override/runtime_check_test: RuntimeError
-deferred_constraints_type_annotation_test/type_annotation1: Crash # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/type_annotation_generic1: Crash # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/type_annotation_generic4: Crash # KernelVM bug: Deferred loading kernel issue 28335.
-implicit_downcast_during_assignment_test: RuntimeError
-implicit_downcast_during_combiner_test: RuntimeError
-implicit_downcast_during_compound_assignment_test: RuntimeError
-implicit_downcast_during_conditional_expression_test: RuntimeError
-implicit_downcast_during_do_test: RuntimeError
-implicit_downcast_during_for_condition_test: RuntimeError
-implicit_downcast_during_for_initializer_expression_test: RuntimeError
-implicit_downcast_during_for_initializer_var_test: RuntimeError
-implicit_downcast_during_if_null_assignment_test: RuntimeError
-implicit_downcast_during_if_statement_test: RuntimeError
-implicit_downcast_during_list_literal_test: RuntimeError
-implicit_downcast_during_logical_expression_test: RuntimeError
-implicit_downcast_during_map_literal_test: RuntimeError
-implicit_downcast_during_not_test: RuntimeError
-implicit_downcast_during_return_async_test: RuntimeError
-implicit_downcast_during_return_test: RuntimeError
-implicit_downcast_during_variable_declaration_test: RuntimeError
-implicit_downcast_during_while_statement_test: RuntimeError
-implicit_downcast_during_yield_star_test: RuntimeError
-implicit_downcast_during_yield_test: RuntimeError
-mixin_forwarding_constructor4_test/01: MissingCompileTimeError # KernelVM bug: Issue 15101
-mixin_forwarding_constructor4_test/02: MissingCompileTimeError # KernelVM bug: Issue 15101
-mixin_forwarding_constructor4_test/03: MissingCompileTimeError # KernelVM bug: Issue 15101
-private_super_constructor_test/01: MissingCompileTimeError
-redirecting_factory_default_values_test/01: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
-redirecting_factory_default_values_test/02: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
-redirecting_factory_long_test: RuntimeError # Fasta bug: Bad compilation of type arguments for redirecting factory.
-regress_20394_test/01: MissingCompileTimeError # Fasta bug: Illegal access to private constructor.
-regress_30339_test: RuntimeError
-vm/causal_async_exception_stack_test: RuntimeError
-
-[ $compiler == dartkp ]
-bit_operations_test: CompileTimeError                             # Issue 31339
-vm/unaligned_integer_access_register_index_test: CompileTimeError # Issue 31339
-vm/unaligned_integer_access_literal_index_test: CompileTimeError  # Issue 31339
-mint_arithmetic_test: CompileTimeError                            # Issue 31339
-identical_closure2_test: CompileTimeError                         # Issue 31339
-mock_writable_final_field_test: RuntimeError                      # Issue 31424
-no_such_method_subtype_test: RuntimeError                         # Issue 31424
-generic_no_such_method_dispatcher_test: RuntimeError              # Issue 31424
diff --git a/tests/language_2/language_2_precompiled.status b/tests/language_2/language_2_precompiled.status
index db7e865..ec2cac1 100644
--- a/tests/language_2/language_2_precompiled.status
+++ b/tests/language_2/language_2_precompiled.status
@@ -1,12 +1,25 @@
 # Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
-
 # Sections in this file should start with "$runtime == dart_precompiled".
 
+[ $arch != arm && $arch != simarm64 && $arch != x64 && $compiler == precompiler && $runtime == dart_precompiled ]
+built_in_identifier_type_annotation_test/15: Crash
+
+[ $arch == arm64 && $runtime == dart_precompiled ]
+large_class_declaration_test: SkipSlow # Uses too much memory.
+setter4_test: MissingCompileTimeError
+
+[ $arch == ia32 && $runtime == dart_precompiled ]
+vm/regress_24517_test: Pass, Fail # Issue 24517.
+
+[ $arch == x64 && $compiler == precompiler && $mode == debug && $runtime == dart_precompiled ]
+built_in_identifier_type_annotation_test/15: Crash
+
+[ $compiler == precompiler && $mode == debug && $runtime == dart_precompiled ]
+regress_29025_test: Crash # Issue dartbug.com/29331
+
 [ $compiler == precompiler && $runtime == dart_precompiled ]
-constructor13_test/01: MissingCompileTimeError
-constructor13_test/02: MissingCompileTimeError
 abstract_beats_arguments_test: MissingCompileTimeError
 abstract_exact_selector_test/01: MissingCompileTimeError
 abstract_factory_constructor_test/00: MissingCompileTimeError
@@ -41,15 +54,15 @@
 async_await_syntax_test/c10a: MissingCompileTimeError
 async_await_syntax_test/d08b: MissingCompileTimeError
 async_await_syntax_test/d10a: MissingCompileTimeError
-async_congruence_local_test/none: RuntimeError
 async_congruence_local_test/01: MissingCompileTimeError
 async_congruence_local_test/02: MissingCompileTimeError
-async_congruence_method_test/none: RuntimeError
+async_congruence_local_test/none: RuntimeError
 async_congruence_method_test/01: MissingCompileTimeError
+async_congruence_method_test/none: RuntimeError
 async_congruence_top_level_test: RuntimeError
-async_congruence_unnamed_test/none: RuntimeError
 async_congruence_unnamed_test/01: MissingCompileTimeError
 async_congruence_unnamed_test/02: MissingCompileTimeError
+async_congruence_unnamed_test/none: RuntimeError
 async_or_generator_return_type_stacktrace_test/01: MissingCompileTimeError
 async_or_generator_return_type_stacktrace_test/02: MissingCompileTimeError
 async_or_generator_return_type_stacktrace_test/03: MissingCompileTimeError
@@ -73,6 +86,7 @@
 bad_override_test/06: MissingCompileTimeError
 bool_check_test: RuntimeError
 bool_condition_check_test: RuntimeError
+bug31436_test: RuntimeError
 built_in_identifier_prefix_test: CompileTimeError
 call_constructor_on_unresolvable_class_test/01: MissingCompileTimeError
 call_constructor_on_unresolvable_class_test/02: MissingCompileTimeError
@@ -133,6 +147,7 @@
 class_literal_test/25: MissingCompileTimeError
 closure_invoked_through_interface_target_field_test: MissingCompileTimeError
 closure_invoked_through_interface_target_getter_test: MissingCompileTimeError
+closure_param_null_to_object_test: RuntimeError
 compile_time_constant_o_test/01: MissingCompileTimeError
 compile_time_constant_o_test/02: MissingCompileTimeError
 conditional_method_invocation_test/05: MissingCompileTimeError
@@ -202,6 +217,9 @@
 const_types_test/35: MissingCompileTimeError
 const_types_test/39: MissingCompileTimeError
 const_types_test/40: MissingCompileTimeError
+constructor13_test/01: MissingCompileTimeError
+constructor13_test/02: MissingCompileTimeError
+constructor3_test: Fail, OK, Pass
 constructor_call_as_function_test/01: MissingCompileTimeError
 covariant_override/runtime_check_test: RuntimeError
 covariant_subtyping_tearoff1_test: RuntimeError
@@ -215,13 +233,16 @@
 covariant_tear_off_type_test: RuntimeError
 create_unresolved_type_test/01: MissingCompileTimeError
 ct_const2_test: Skip # Incompatible flag: --compile_all
+cyclic_type2_test: Fail, OK # Non-contractive types are not supported in the vm.
+cyclic_type_test/02: Fail, OK # Non-contractive types are not supported in the vm.
+cyclic_type_test/04: Fail, OK # Non-contractive types are not supported in the vm.
 cyclic_type_variable_test/01: MissingCompileTimeError
 cyclic_type_variable_test/02: MissingCompileTimeError
 cyclic_type_variable_test/03: MissingCompileTimeError
 cyclic_type_variable_test/04: MissingCompileTimeError
 cyclic_typedef_test/13: MissingCompileTimeError
-deep_nesting1_negative_test: Skip  # Issue 31158
-deep_nesting2_negative_test: Skip  # Issue 31158
+deep_nesting1_negative_test: Skip # Issue 31158
+deep_nesting2_negative_test: Skip # Issue 31158
 default_factory2_test/01: MissingCompileTimeError
 default_factory_test/01: MissingCompileTimeError
 deferred_constraints_constants_test: SkipByDesign
@@ -240,9 +261,13 @@
 deferred_constraints_type_annotation_test/type_annotation_top_level: MissingCompileTimeError
 deferred_global_test: Fail
 deferred_inheritance_constraints_test/redirecting_constructor: MissingCompileTimeError
+deferred_load_constants_test/02: Fail
+deferred_load_constants_test/03: Fail
+deferred_load_constants_test/05: Fail
 deferred_not_loaded_check_test: RuntimeError
 deferred_redirecting_factory_test: Fail, Crash # Issue 23408
 deopt_inlined_function_lazy_test: Skip # Incompatible flag: --deoptimize-alot
+duplicate_export_negative_test: Fail # Issue 6134
 dynamic_field_test/01: MissingCompileTimeError
 dynamic_field_test/02: MissingCompileTimeError
 dynamic_prefix_core_test/01: MissingCompileTimeError
@@ -252,10 +277,12 @@
 enum_mirror_test: SkipByDesign
 enum_private_test/02: MissingCompileTimeError
 error_stacktrace_test/00: MissingCompileTimeError
+example_constructor_test: Fail, OK
 export_ambiguous_main_negative_test: Fail # Issue 14763
 export_ambiguous_main_negative_test: Skip # Issue 29895
 export_ambiguous_main_test: Crash
 export_double_same_main_test: Skip # Issue 29895
+extract_type_arguments_test: CompileTimeError # Issue 31371
 f_bounded_quantification_test/01: MissingCompileTimeError
 f_bounded_quantification_test/02: MissingCompileTimeError
 factory1_test/00: MissingCompileTimeError
@@ -282,13 +309,16 @@
 factory_return_type_checked_test/00: MissingCompileTimeError
 field3_test/01: MissingCompileTimeError
 field_increment_bailout_test: SkipByDesign
+field_initialization_order_test: Fail, OK
 field_method4_test: MissingCompileTimeError
 field_override2_test: MissingCompileTimeError
 field_override_optimization_test: RuntimeError
 field_override_test/00: MissingCompileTimeError
 field_override_test/01: MissingCompileTimeError
+field_override_test/02: MissingCompileTimeError
 field_override_test/none: MissingCompileTimeError
 field_type_check2_test/01: MissingRuntimeError
+field_type_check_test/01: MissingCompileTimeError
 final_for_in_variable_test: MissingCompileTimeError
 final_param_test: MissingCompileTimeError
 final_super_field_set_test: MissingCompileTimeError
@@ -346,6 +376,7 @@
 function_type_call_getter2_test/04: MissingCompileTimeError
 function_type_call_getter2_test/05: MissingCompileTimeError
 fuzzy_arrows_test/01: MissingCompileTimeError
+fuzzy_arrows_test/03: RuntimeError
 generalized_void_syntax_test: CompileTimeError # Issue #30176
 generic_closure_test: RuntimeError
 generic_constructor_mixin2_test/01: MissingCompileTimeError
@@ -398,25 +429,36 @@
 if_null_assignment_static_test/02: MissingCompileTimeError
 if_null_assignment_static_test/04: MissingCompileTimeError
 if_null_assignment_static_test/06: MissingCompileTimeError
+if_null_assignment_static_test/07: MissingCompileTimeError
 if_null_assignment_static_test/09: MissingCompileTimeError
 if_null_assignment_static_test/11: MissingCompileTimeError
 if_null_assignment_static_test/13: MissingCompileTimeError
+if_null_assignment_static_test/14: MissingCompileTimeError
 if_null_assignment_static_test/16: MissingCompileTimeError
 if_null_assignment_static_test/18: MissingCompileTimeError
 if_null_assignment_static_test/20: MissingCompileTimeError
+if_null_assignment_static_test/21: MissingCompileTimeError
 if_null_assignment_static_test/23: MissingCompileTimeError
 if_null_assignment_static_test/25: MissingCompileTimeError
 if_null_assignment_static_test/27: MissingCompileTimeError
+if_null_assignment_static_test/28: MissingCompileTimeError
 if_null_assignment_static_test/30: MissingCompileTimeError
 if_null_assignment_static_test/32: MissingCompileTimeError
 if_null_assignment_static_test/34: MissingCompileTimeError
+if_null_assignment_static_test/35: MissingCompileTimeError
 if_null_assignment_static_test/37: MissingCompileTimeError
 if_null_assignment_static_test/39: MissingCompileTimeError
 if_null_assignment_static_test/41: MissingCompileTimeError
+if_null_assignment_static_test/42: MissingCompileTimeError
 if_null_precedence_test/06: MissingCompileTimeError
 if_null_precedence_test/07: MissingCompileTimeError
 if_null_precedence_test/none: RuntimeError
 implicit_closure_test: Skip # Incompatible flag: --use_slow_path
+implicit_downcast_during_for_in_iterable_test: RuntimeError
+implicit_downcast_during_function_literal_arrow_test: RuntimeError
+implicit_downcast_during_function_literal_return_test: RuntimeError
+implicit_downcast_during_yield_star_test: RuntimeError
+implicit_downcast_during_yield_test: RuntimeError
 implicit_this_test/01: MissingCompileTimeError
 implicit_this_test/02: MissingCompileTimeError
 implicit_this_test/04: MissingCompileTimeError
@@ -431,10 +473,20 @@
 instanceof4_test/01: RuntimeError
 instanceof4_test/none: RuntimeError
 interface_test/00: MissingCompileTimeError
+invalid_cast_test/01: MissingCompileTimeError
+invalid_cast_test/02: MissingCompileTimeError
+invalid_cast_test/03: MissingCompileTimeError
+invalid_cast_test/04: MissingCompileTimeError
+invalid_cast_test/07: MissingCompileTimeError
+invalid_cast_test/08: MissingCompileTimeError
+invalid_cast_test/09: MissingCompileTimeError
+invalid_cast_test/10: MissingCompileTimeError
+invalid_cast_test/11: MissingCompileTimeError
 invocation_mirror2_test: SkipByDesign
 invocation_mirror_invoke_on2_test: SkipByDesign
 invocation_mirror_invoke_on_test: SkipByDesign
 issue21079_test: SkipByDesign
+language_2/least_upper_bound_expansive_test/none: CompileTimeError
 least_upper_bound_expansive_test/none: CompileTimeError
 least_upper_bound_test/03: MissingCompileTimeError
 least_upper_bound_test/04: MissingCompileTimeError
@@ -457,6 +509,7 @@
 list_literal1_test/01: MissingCompileTimeError
 list_literal4_test/00: MissingCompileTimeError
 list_literal4_test/01: MissingCompileTimeError
+list_literal4_test/03: MissingCompileTimeError
 list_literal4_test/04: MissingCompileTimeError
 list_literal4_test/05: MissingCompileTimeError
 list_literal_syntax_test/01: MissingCompileTimeError
@@ -470,8 +523,10 @@
 local_function_test/01: MissingCompileTimeError
 local_function_test/02: MissingCompileTimeError
 local_function_test/03: MissingCompileTimeError
+local_function_test/04: MissingCompileTimeError
 local_function_test/none: RuntimeError
 logical_expression3_test: MissingCompileTimeError
+main_not_a_function_test: Skip
 main_test/03: RuntimeError
 malbounded_instantiation_test/01: MissingCompileTimeError
 malbounded_instantiation_test/02: MissingCompileTimeError
@@ -557,6 +612,8 @@
 mixin_illegal_constructor_test/16: MissingCompileTimeError
 mixin_illegal_static_access_test/01: MissingCompileTimeError
 mixin_illegal_static_access_test/02: MissingCompileTimeError
+mixin_illegal_super_use_test: Skip # Issues 24478 and 23773
+mixin_illegal_superclass_test: Skip # Issues 24478 and 23773
 mixin_illegal_syntax_test/13: MissingCompileTimeError
 mixin_invalid_bound2_test/02: MissingCompileTimeError
 mixin_invalid_bound2_test/03: MissingCompileTimeError
@@ -628,6 +685,7 @@
 new_expression_type_args_test/01: MissingCompileTimeError
 new_expression_type_args_test/02: MissingCompileTimeError
 new_prefix_test/01: MissingCompileTimeError
+no_main_test/01: Skip
 no_such_constructor_test/01: MissingCompileTimeError
 no_such_method_mock_test: RuntimeError
 no_such_method_test: SkipByDesign
@@ -747,7 +805,10 @@
 regress_17382_test: MissingCompileTimeError
 regress_18535_test: SkipByDesign
 regress_19413_test: MissingCompileTimeError
+regress_19728_test: MissingCompileTimeError
 regress_21793_test/01: MissingCompileTimeError
+regress_21912_test/01: MissingCompileTimeError
+regress_21912_test/02: MissingCompileTimeError
 regress_22438_test: MissingCompileTimeError
 regress_22936_test: MissingCompileTimeError
 regress_23089_test: MissingCompileTimeError
@@ -808,6 +869,7 @@
 super_operator_index_test/05: MissingCompileTimeError
 super_operator_index_test/06: MissingCompileTimeError
 super_operator_index_test/07: MissingCompileTimeError
+super_test: Fail, OK
 switch_fallthru_test/01: MissingCompileTimeError
 symbol_literal_test/01: MissingCompileTimeError
 sync_generator1_test/01: MissingCompileTimeError
@@ -821,6 +883,11 @@
 type_checks_in_factory_method_test/01: MissingCompileTimeError
 type_parameter_test/05: MissingCompileTimeError
 type_promotion_functions_test/01: MissingCompileTimeError
+type_promotion_functions_test/05: MissingCompileTimeError
+type_promotion_functions_test/06: MissingCompileTimeError
+type_promotion_functions_test/07: MissingCompileTimeError
+type_promotion_functions_test/08: MissingCompileTimeError
+type_promotion_functions_test/10: MissingCompileTimeError
 type_promotion_parameter_test/01: MissingCompileTimeError
 type_promotion_parameter_test/02: MissingCompileTimeError
 type_promotion_parameter_test/03: MissingCompileTimeError
@@ -923,54 +990,12 @@
 vm/reflect_core_vm_test: SkipByDesign
 vm/regress_27201_test: Fail
 vm/regress_27671_test: Skip # Unsupported
+vm/regress_29145_test: Skip # Issue 29145
 vm/type_cast_vm_test: RuntimeError # Expects line and column numbers
-vm/type_vm_test: RuntimeError # Expects line and column numbers
 vm/type_vm_test: RuntimeError, Pass # Expects line and column numbers
+vm/type_vm_test: RuntimeError # Expects line and column numbers
 void_block_return_test/00: MissingCompileTimeError
 wrong_number_type_arguments_test/*: MissingCompileTimeError
-cyclic_type_test/02: Fail, OK # Non-contractive types are not supported in the vm.
-cyclic_type_test/04: Fail, OK # Non-contractive types are not supported in the vm.
-cyclic_type2_test: Fail, OK # Non-contractive types are not supported in the vm.
-language_2/least_upper_bound_expansive_test/none: CompileTimeError
-duplicate_export_negative_test: Fail # Issue 6134
-example_constructor_test: Fail, OK
-field_initialization_order_test: Fail, OK
-no_main_test/01: Skip
-constructor3_test: Fail, OK, Pass
-main_not_a_function_test: Skip
-mixin_illegal_super_use_test: Skip # Issues 24478 and 23773
-mixin_illegal_superclass_test: Skip # Issues 24478 and 23773
-super_test: Fail, OK
-vm/regress_29145_test: Skip # Issue 29145
-
-[ $compiler == precompiler && $runtime == dart_precompiled ]
-deferred_load_constants_test/02: Fail
-deferred_load_constants_test/03: Fail
-deferred_load_constants_test/05: Fail
-field_override_test/02: MissingCompileTimeError
-field_type_check_test/01: MissingCompileTimeError
-fuzzy_arrows_test/03: RuntimeError
-if_null_assignment_static_test/07: MissingCompileTimeError
-if_null_assignment_static_test/14: MissingCompileTimeError
-if_null_assignment_static_test/21: MissingCompileTimeError
-if_null_assignment_static_test/28: MissingCompileTimeError
-if_null_assignment_static_test/35: MissingCompileTimeError
-if_null_assignment_static_test/42: MissingCompileTimeError
-implicit_downcast_during_for_in_iterable_test: RuntimeError
-implicit_downcast_during_function_literal_arrow_test: RuntimeError
-implicit_downcast_during_function_literal_return_test: RuntimeError
-implicit_downcast_during_yield_star_test: RuntimeError
-implicit_downcast_during_yield_test: RuntimeError
-list_literal4_test/03: MissingCompileTimeError
-local_function_test/04: MissingCompileTimeError
-regress_19728_test: MissingCompileTimeError
-regress_21912_test/01: MissingCompileTimeError
-regress_21912_test/02: MissingCompileTimeError
-type_promotion_functions_test/05: MissingCompileTimeError
-type_promotion_functions_test/06: MissingCompileTimeError
-type_promotion_functions_test/07: MissingCompileTimeError
-type_promotion_functions_test/08: MissingCompileTimeError
-type_promotion_functions_test/10: MissingCompileTimeError
 
 [ $compiler == precompiler && $runtime == dart_precompiled && $checked ]
 covariance_type_parameter_test/01: RuntimeError
@@ -986,11 +1011,11 @@
 function_subtype_regression_ddc_588_test: Pass
 function_subtype_setter0_test: Pass
 generic_functions_test: Pass # Issue 25869
+generic_local_functions_test: Pass # Issue 25869
 generic_methods_function_type_test: Pass # Issue 25869
 generic_methods_generic_function_parameter_test: Pass # Issue 25869
-generic_methods_test: Pass # Issue 25869
 generic_methods_new_test: Pass # Issue 25869
-generic_local_functions_test: Pass # Issue 25869
+generic_methods_test: Pass # Issue 25869
 
 [ $compiler == precompiler && $runtime == dart_precompiled && !$checked ]
 assertion_initializer_const_error_test/01: MissingCompileTimeError
@@ -1020,6 +1045,8 @@
 covariance_type_parameter_test/01: RuntimeError
 covariance_type_parameter_test/02: RuntimeError
 covariance_type_parameter_test/03: RuntimeError
+forwarding_stub_tearoff_generic_test: RuntimeError
+forwarding_stub_tearoff_test: RuntimeError
 function_type_call_getter2_test/none: RuntimeError
 function_type_test: RuntimeError
 generic_field_mixin6_test/none: RuntimeError
@@ -1061,28 +1088,16 @@
 type_argument_in_super_type_test: RuntimeError
 type_check_const_function_typedef2_test: MissingCompileTimeError
 
-[ $compiler == precompiler && $runtime == dart_precompiled && $arch != arm && $arch != simarm64 && $arch != x64 ]
-built_in_identifier_type_annotation_test/15: Crash
-
-[ $compiler == precompiler && $runtime == dart_precompiled && $arch == x64 && $mode == debug ]
-built_in_identifier_type_annotation_test/15: Crash
-
-[ $runtime == dart_precompiled && $arch == arm64 ]
-large_class_declaration_test: SkipSlow # Uses too much memory.
-setter4_test: MissingCompileTimeError
-
-[ $runtime == dart_precompiled && $arch == ia32 ]
-vm/regress_24517_test: Pass, Fail # Issue 24517.
-
 [ $runtime == dart_precompiled && $minified ]
 cyclic_type_test/*: Skip
-enum_duplicate_test/*: Skip  # Uses Enum.toString()
-enum_private_test/*: Skip  # Uses Enum.toString()
-enum_test: Skip  # Uses Enum.toString()
+enum_duplicate_test/*: Skip # Uses Enum.toString()
+enum_private_test/*: Skip # Uses Enum.toString()
+enum_test: Skip # Uses Enum.toString()
 f_bounded_quantification4_test: Skip
 f_bounded_quantification5_test: Skip
 full_stacktrace1_test: Skip
 full_stacktrace2_test: Skip
+full_stacktrace3_test: Skip
 mixin_generic_test: Skip
 mixin_mixin2_test: Skip
 mixin_mixin3_test: Skip
@@ -1091,14 +1106,11 @@
 mixin_mixin_bound2_test: Skip
 mixin_mixin_type_arguments_test: Skip
 mixin_super_2_test: Skip
-no_such_method_dispatcher_test: Skip  # Uses new Symbol()
+no_such_method_dispatcher_test: Skip # Uses new Symbol()
 stacktrace_rethrow_error_test: Skip
 stacktrace_rethrow_nonerror_test: Skip
 vm/no_such_args_error_message_vm_test: Skip
 vm/no_such_method_error_message_callable_vm_test: Skip
 vm/no_such_method_error_message_vm_test: Skip
-vm/regress_28325_test:Skip
-full_stacktrace3_test: Skip
+vm/regress_28325_test: Skip
 
-[ $compiler == precompiler && $runtime == dart_precompiled && $mode == debug ]
-regress_29025_test: Crash  # Issue dartbug.com/29331
diff --git a/tests/language_2/language_2_spec_parser.status b/tests/language_2/language_2_spec_parser.status
index d53f7c4..55eb1d2 100644
--- a/tests/language_2/language_2_spec_parser.status
+++ b/tests/language_2/language_2_spec_parser.status
@@ -3,53 +3,55 @@
 # BSD-style license that can be found in the LICENSE file.
 
 [ $compiler == spec_parser ]
-
-getter_declaration_negative_test: Fail # Negative, uses getter with parameter.
-interface_injection1_negative_test: Fail # Negative, uses interface injection.
-interface_injection2_negative_test: Fail # Negative, uses interface injection.
-issue1578_negative_test: Fail # Negative, is line noise.
-is_not_class1_negative_test: Fail # Negative, uses `a is "A"`.
-is_not_class4_negative_test: Fail # Negative, uses `a is A is A`.
-label8_negative_test: Fail # Negative, uses misplaced label.
-list_literal_negative_test: Fail # Negative, uses `new List<int>[1, 2]`.
-map_literal_negative_test: Fail # Negative, uses `new Map<int>{..}`.
-new_expression1_negative_test: Fail # Negative, uses `new id`.
-new_expression2_negative_test: Fail # Negative, uses `new id(`.
-new_expression3_negative_test: Fail # Negative, uses `new id(...`.
-operator1_negative_test: Fail # Negative, declares static operator.
-operator2_negative_test: Fail # Negative, declares `operator ===`.
-prefix18_negative_test: Fail # Negative, uses `lib1.invalid` as library prefix.
-string_escape4_negative_test: Fail # Negative, uses newline in string literal.
-string_interpolate1_negative_test: Fail # Negative, misplaced '$'.
-string_interpolate2_negative_test: Fail # Negative, misplaced '$'.
-switch1_negative_test: Fail # Negative, `default` clause not last.
-test_negative_test: Fail # Negative, uses non-terminated string literal.
-unary_plus_negative_test: Fail # Negative, uses non-existing unary plus.
-unhandled_exception_negative_test: Fail # Negative, defaults required parameter.
-
+built_in_identifier_prefix_test: Skip # A built-in identifier can _not_ be a prefix.
+closure_type_test: Pass # Marked as RuntimeError for all in language_2.status.
+conditional_import_string_test: Fail # Uses conditional import.
+conditional_import_test: Fail # Uses conditional import.
+config_import_corelib_test: Fail # Uses conditional import.
+config_import_test: Fail # Uses conditional import.
+const_native_factory_test: Skip # Uses `native`.
 constructor_call_wrong_argument_count_negative_test: Skip # Negative, not syntax.
 constructor_redirect1_negative_test/01: Skip # Negative, not syntax.
 constructor_redirect1_negative_test/none: Skip # Negative, not syntax.
 constructor_redirect2_negative_test: Skip # Negative, not syntax.
 constructor_setter_negative_test: Skip # Negative, not syntax.
+deep_nesting1_negative_test: Skip # Stack overflow.
+deep_nesting2_negative_test: Skip # Stack overflow.
+double_invalid_test: Skip # Contains illegaly formatted double.
 duplicate_export_negative_test: Skip # Negative, not syntax.
 duplicate_interface_negative_test: Skip # Negative, not syntax.
+external_test/21: Fail # Test expects `runtime error`, it is a syntax error.
+getter_declaration_negative_test: Fail # Negative, uses getter with parameter.
 inst_field_initializer1_negative_test: Skip # Negative, not syntax.
 instance_call_wrong_argument_count_negative_test: Skip # Negative, not syntax.
 instance_method2_negative_test: Skip # Negative, not syntax.
 instance_method_negative_test: Skip # Negative, not syntax.
 interface2_negative_test: Skip # Negative, not syntax.
+interface_injection1_negative_test: Fail # Negative, uses interface injection.
+interface_injection2_negative_test: Fail # Negative, uses interface injection.
 interface_static_method_negative_test: Skip # Negative, not syntax.
 interface_static_non_final_fields_negative_test: Skip # Negative, not syntax.
+is_not_class1_negative_test: Fail # Negative, uses `a is "A"`.
+is_not_class4_negative_test: Fail # Negative, uses `a is A is A`.
+issue1578_negative_test: Fail # Negative, is line noise.
+issue_1751477_test: Skip # Times out: 9 levels, exponential blowup => 430 secs.
 label2_negative_test: Skip # Negative, not syntax.
 label3_negative_test: Skip # Negative, not syntax.
 label5_negative_test: Skip # Negative, not syntax.
 label6_negative_test: Skip # Negative, not syntax.
+label8_negative_test: Fail # Negative, uses misplaced label.
 library_negative_test: Skip # Negative, not syntax.
 list_literal2_negative_test: Skip # Negative, not syntax.
+list_literal_negative_test: Fail # Negative, uses `new List<int>[1, 2]`.
 map_literal2_negative_test: Skip # Negative, not syntax.
+map_literal_negative_test: Fail # Negative, uses `new Map<int>{..}`.
+new_expression1_negative_test: Fail # Negative, uses `new id`.
+new_expression2_negative_test: Fail # Negative, uses `new id(`.
+new_expression3_negative_test: Fail # Negative, uses `new id(...`.
 no_such_method_negative_test: Skip # Negative, not syntax.
 non_const_super_negative_test: Skip # Negative, not syntax.
+operator1_negative_test: Fail # Negative, declares static operator.
+operator2_negative_test: Fail # Negative, declares `operator ===`.
 override_field_method1_negative_test: Skip # Negative, not syntax.
 override_field_method2_negative_test: Skip # Negative, not syntax.
 override_field_method4_negative_test: Skip # Negative, not syntax.
@@ -64,6 +66,7 @@
 prefix12_negative_test: Skip # Negative, not syntax.
 prefix13_negative_test: Skip # Negative, not syntax.
 prefix15_negative_test: Skip # Negative, not syntax.
+prefix18_negative_test: Fail # Negative, uses `lib1.invalid` as library prefix.
 prefix1_negative_test: Skip # Negative, not syntax.
 prefix2_negative_test: Skip # Negative, not syntax.
 prefix3_negative_test: Skip # Negative, not syntax.
@@ -77,31 +80,19 @@
 private_member3_negative_test: Skip # Negative, not syntax.
 script1_negative_test: Skip # Negative, not syntax.
 script2_negative_test: Skip # Negative, not syntax.
+string_escape4_negative_test: Fail # Negative, uses newline in string literal.
+string_interpolate1_negative_test: Fail # Negative, misplaced '$'.
+string_interpolate2_negative_test: Fail # Negative, misplaced '$'.
 string_unicode1_negative_test: Skip # Negative, not syntax.
 string_unicode2_negative_test: Skip # Negative, not syntax.
 string_unicode3_negative_test: Skip # Negative, not syntax.
 string_unicode4_negative_test: Skip # Negative, not syntax.
+switch1_negative_test: Fail # Negative, `default` clause not last.
+test_negative_test: Fail # Negative, uses non-terminated string literal.
+unary_plus_negative_test: Fail # Negative, uses non-existing unary plus.
+unhandled_exception_negative_test: Fail # Negative, defaults required parameter.
 unhandled_exception_negative_test: Skip # Negative, not syntax.
-
-double_invalid_test: Skip # Contains illegaly formatted double.
-
-const_native_factory_test: Skip # Uses `native`.
-
-built_in_identifier_prefix_test: Skip # A built-in identifier can _not_ be a prefix.
-
-external_test/21: Fail # Test expects `runtime error`, it is a syntax error.
-
-conditional_import_string_test: Fail # Uses conditional import.
-conditional_import_test: Fail # Uses conditional import.
-config_import_corelib_test: Fail # Uses conditional import.
-config_import_test: Fail # Uses conditional import.
 vm/debug_break_enabled_vm_test/01: Fail # Uses debug break.
 vm/debug_break_enabled_vm_test/none: Fail # Uses debug break.
-
 void_type_function_types_test: Skip # Not yet supported.
 
-deep_nesting1_negative_test: Skip # Stack overflow.
-deep_nesting2_negative_test: Skip # Stack overflow.
-issue_1751477_test: Skip # Times out: 9 levels, exponential blowup => 430 secs.
-
-closure_type_test: Pass # Marked as RuntimeError for all in language_2.status.
diff --git a/tests/language_2/language_2_vm.status b/tests/language_2/language_2_vm.status
index e7acdb5..2af057b 100644
--- a/tests/language_2/language_2_vm.status
+++ b/tests/language_2/language_2_vm.status
@@ -1,11 +1,106 @@
 # Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
-
 # Sections in this file should contain "$runtime == vm".
 
+[ $arch == arm64 && $runtime == vm ]
+closure_cycles_test: Pass, Slow
+large_class_declaration_test: SkipSlow # Uses too much memory.
+
+[ $arch == ia32 && $compiler == app_jit && $runtime == vm ]
+vm/regress_24517_test: Pass, Fail # Issue 24517.
+
+[ $arch == ia32 && $compiler == none && $runtime == vm ]
+vm/regress_24517_test: Pass, Fail # Issue 24517.
+
+[ $arch == ia32 && $compiler == none && $runtime == vm && $system == windows ]
+vm/optimized_stacktrace_test: Pass, Crash # Issue 28276
+
+[ $arch == ia32 && $mode == release && $runtime == vm ]
+deep_nesting1_negative_test: Crash, Pass # Issue 31496
+
+[ $compiler == app_jit && $mode != product && $runtime == vm ]
+vm/type_vm_test/none: RuntimeError
+
+[ $compiler == app_jit && $runtime == vm ]
+async_star_cancel_while_paused_test: RuntimeError
+async_star_pause_test: Fail, OK
+async_star_regression_2238_test: CompileTimeError, RuntimeError
+class_keyword_test/02: MissingCompileTimeError # Issue 13627
+constructor3_test: Fail, OK, Pass
+ct_const2_test: Skip # Incompatible flag: --compile_all
+cyclic_type2_test: Fail, OK
+cyclic_type_test/02: Fail, OK
+cyclic_type_test/04: Fail, OK
+deferred_load_constants_test/02: Fail
+deferred_load_constants_test/03: Fail
+deferred_load_constants_test/05: Fail
+deferred_not_loaded_check_test: RuntimeError
+deferred_redirecting_factory_test: Fail, Crash # Issue 23408
+duplicate_export_negative_test: Fail # Issue 6134
+dynamic_prefix_core_test/01: RuntimeError # Issue 12478
+example_constructor_test: Fail, OK
+export_ambiguous_main_negative_test: Fail # Issue 14763
+field_initialization_order_test: Fail, OK
+generalized_void_syntax_test: CompileTimeError # Issue #30176
+generic_methods_type_expression_test: RuntimeError # Issue 25869 / 27460
+hello_dart_test: Skip # Incompatible flag: --compile_all
+language_2/least_upper_bound_expansive_test/none: CompileTimeError
+library_env_test/has_html_support: RuntimeError, OK
+library_env_test/has_no_io_support: RuntimeError, OK
+main_not_a_function_test: Skip
+mixin_illegal_super_use_test: Skip # Issues 24478 and 23773
+mixin_illegal_superclass_test: Skip # Issues 24478 and 23773
+multiline_strings_test: Fail # Issue 23020
+no_main_test/01: Skip
+regress_21793_test/01: MissingCompileTimeError
+regress_23408_test: Crash
+super_test: Fail, OK
+type_parameter_test/05: MissingCompileTimeError
+type_variable_scope_test/03: MissingCompileTimeError
+unicode_bom_test: Fail # Issue 16067
+vm/debug_break_enabled_vm_test/01: Crash, OK # Expected to hit breakpoint.
+vm/regress_27201_test: Fail
+vm/regress_29145_test: Skip # Issue 29145
+vm/type_cast_vm_test: RuntimeError # Expects line and column numbers
+
+[ $compiler == app_jit && $runtime == vm && $checked ]
+generic_functions_test: Pass # Issue 25869
+generic_local_functions_test: Pass # Issue 25869
+generic_methods_function_type_test: Pass # Issue 25869
+generic_methods_generic_function_parameter_test: Pass # Issue 25869
+generic_methods_new_test: Pass # Issue 25869
+generic_methods_test: Pass # Issue 25869
+
+[ $compiler == app_jit && $runtime == vm && !$checked ]
+assertion_initializer_const_error_test/01: MissingCompileTimeError
+generic_methods_bounds_test/02: MissingRuntimeError
+generic_methods_dynamic_test/02: MissingRuntimeError
+generic_methods_dynamic_test/04: MissingRuntimeError
+
+[ $compiler != dartk && $mode == debug && $runtime == vm && $checked ]
+tearoff_dynamic_test: Crash
+
+[ $compiler != dartk && $mode == product && $runtime == vm ]
+deferred_load_constants_test/02: Fail
+deferred_load_constants_test/03: Fail
+deferred_load_constants_test/05: Fail
+deferred_not_loaded_check_test: RuntimeError
+vm/causal_async_exception_stack2_test: SkipByDesign
+vm/causal_async_exception_stack_test: SkipByDesign
+vm/regress_27201_test: Fail
+vm/type_vm_test/28: MissingRuntimeError
+vm/type_vm_test/29: MissingRuntimeError
+vm/type_vm_test/30: MissingRuntimeError
+vm/type_vm_test/31: MissingRuntimeError
+vm/type_vm_test/32: MissingRuntimeError
+vm/type_vm_test/33: MissingRuntimeError
+vm/type_vm_test/34: MissingRuntimeError
+vm/type_vm_test/35: MissingRuntimeError
+vm/type_vm_test/36: MissingRuntimeError
+
 # The VM does not implement the Dart 2.0 static type errors yet.
-[ $runtime == vm && $compiler != dartk ]
+[ $compiler != dartk && $runtime == vm ]
 abstract_beats_arguments_test: MissingCompileTimeError
 abstract_exact_selector_test/01: MissingCompileTimeError
 abstract_factory_constructor_test/00: MissingCompileTimeError
@@ -42,9 +137,13 @@
 async_await_syntax_test/d10a: MissingCompileTimeError
 async_congruence_local_test/01: MissingCompileTimeError
 async_congruence_local_test/02: MissingCompileTimeError
+async_congruence_local_test/none: RuntimeError
 async_congruence_method_test/01: MissingCompileTimeError
+async_congruence_method_test/none: RuntimeError
+async_congruence_top_level_test: RuntimeError
 async_congruence_unnamed_test/01: MissingCompileTimeError
 async_congruence_unnamed_test/02: MissingCompileTimeError
+async_congruence_unnamed_test/none: RuntimeError
 async_or_generator_return_type_stacktrace_test/01: MissingCompileTimeError
 async_or_generator_return_type_stacktrace_test/02: MissingCompileTimeError
 async_or_generator_return_type_stacktrace_test/03: MissingCompileTimeError
@@ -63,6 +162,7 @@
 bad_override_test/01: MissingCompileTimeError
 bad_override_test/02: MissingCompileTimeError
 bad_override_test/06: MissingCompileTimeError
+bug31436_test: RuntimeError
 built_in_identifier_prefix_test: CompileTimeError
 call_constructor_on_unresolvable_class_test/01: MissingCompileTimeError
 call_constructor_on_unresolvable_class_test/02: MissingCompileTimeError
@@ -119,6 +219,7 @@
 class_literal_test/25: MissingCompileTimeError
 closure_invoked_through_interface_target_field_test: MissingCompileTimeError
 closure_invoked_through_interface_target_getter_test: MissingCompileTimeError
+closure_param_null_to_object_test: RuntimeError
 compile_time_constant_o_test/01: MissingCompileTimeError
 compile_time_constant_o_test/02: MissingCompileTimeError
 conditional_method_invocation_test/05: MissingCompileTimeError
@@ -178,6 +279,7 @@
 constructor13_test/01: MissingCompileTimeError
 constructor13_test/02: MissingCompileTimeError
 constructor_call_as_function_test/01: MissingCompileTimeError
+covariant_override/runtime_check_test: RuntimeError
 covariant_tear_off_type_test: RuntimeError
 create_unresolved_type_test/01: MissingCompileTimeError
 cyclic_type_variable_test/01: MissingCompileTimeError
@@ -209,6 +311,7 @@
 enum_private_test/02: MissingCompileTimeError
 error_stacktrace_test/00: MissingCompileTimeError
 export_ambiguous_main_test: MissingCompileTimeError
+extract_type_arguments_test: CompileTimeError # Issue 31371
 f_bounded_quantification_test/01: MissingCompileTimeError
 f_bounded_quantification_test/02: MissingCompileTimeError
 factory1_test/00: MissingCompileTimeError
@@ -238,7 +341,9 @@
 field_override2_test: MissingCompileTimeError
 field_override_test/00: MissingCompileTimeError
 field_override_test/01: MissingCompileTimeError
+field_override_test/02: MissingCompileTimeError
 field_override_test/none: MissingCompileTimeError
+field_type_check_test/01: MissingCompileTimeError
 final_for_in_variable_test: MissingCompileTimeError
 final_param_test: MissingCompileTimeError
 final_super_field_set_test: MissingCompileTimeError
@@ -279,6 +384,8 @@
 function_type_call_getter2_test/03: MissingCompileTimeError
 function_type_call_getter2_test/04: MissingCompileTimeError
 function_type_call_getter2_test/05: MissingCompileTimeError
+fuzzy_arrows_test/01: MissingCompileTimeError
+fuzzy_arrows_test/03: RuntimeError
 generic_closure_test: RuntimeError
 generic_constructor_mixin2_test/01: MissingCompileTimeError
 generic_constructor_mixin3_test/01: MissingCompileTimeError
@@ -298,6 +405,7 @@
 generic_methods_recursive_bound_test/02: MissingCompileTimeError
 generic_methods_tearoff_specialization_test: RuntimeError
 generic_methods_unused_parameter_test: RuntimeError
+generic_no_such_method_dispatcher_simple_test: Skip # This test is only for kernel.
 generic_tearoff_test: RuntimeError
 getter_no_setter2_test/00: MissingCompileTimeError
 getter_no_setter2_test/01: MissingCompileTimeError
@@ -317,21 +425,27 @@
 if_null_assignment_static_test/02: MissingCompileTimeError
 if_null_assignment_static_test/04: MissingCompileTimeError
 if_null_assignment_static_test/06: MissingCompileTimeError
+if_null_assignment_static_test/07: MissingCompileTimeError
 if_null_assignment_static_test/09: MissingCompileTimeError
 if_null_assignment_static_test/11: MissingCompileTimeError
 if_null_assignment_static_test/13: MissingCompileTimeError
+if_null_assignment_static_test/14: MissingCompileTimeError
 if_null_assignment_static_test/16: MissingCompileTimeError
 if_null_assignment_static_test/18: MissingCompileTimeError
 if_null_assignment_static_test/20: MissingCompileTimeError
+if_null_assignment_static_test/21: MissingCompileTimeError
 if_null_assignment_static_test/23: MissingCompileTimeError
 if_null_assignment_static_test/25: MissingCompileTimeError
 if_null_assignment_static_test/27: MissingCompileTimeError
+if_null_assignment_static_test/28: MissingCompileTimeError
 if_null_assignment_static_test/30: MissingCompileTimeError
 if_null_assignment_static_test/32: MissingCompileTimeError
 if_null_assignment_static_test/34: MissingCompileTimeError
+if_null_assignment_static_test/35: MissingCompileTimeError
 if_null_assignment_static_test/37: MissingCompileTimeError
 if_null_assignment_static_test/39: MissingCompileTimeError
 if_null_assignment_static_test/41: MissingCompileTimeError
+if_null_assignment_static_test/42: MissingCompileTimeError
 if_null_precedence_test/06: MissingCompileTimeError
 if_null_precedence_test/07: MissingCompileTimeError
 implicit_downcast_during_for_in_iterable_test: RuntimeError
@@ -349,6 +463,15 @@
 initializing_formal_type_test: MissingCompileTimeError
 instanceof2_test: RuntimeError
 interface_test/00: MissingCompileTimeError
+invalid_cast_test/01: MissingCompileTimeError
+invalid_cast_test/02: MissingCompileTimeError
+invalid_cast_test/03: MissingCompileTimeError
+invalid_cast_test/04: MissingCompileTimeError
+invalid_cast_test/07: MissingCompileTimeError
+invalid_cast_test/08: MissingCompileTimeError
+invalid_cast_test/09: MissingCompileTimeError
+invalid_cast_test/10: MissingCompileTimeError
+invalid_cast_test/11: MissingCompileTimeError
 least_upper_bound_expansive_test/none: CompileTimeError
 least_upper_bound_test/03: MissingCompileTimeError
 least_upper_bound_test/04: MissingCompileTimeError
@@ -367,6 +490,7 @@
 library_ambiguous_test/04: MissingCompileTimeError
 list_literal4_test/00: MissingCompileTimeError
 list_literal4_test/01: MissingCompileTimeError
+list_literal4_test/03: MissingCompileTimeError
 list_literal4_test/04: MissingCompileTimeError
 list_literal4_test/05: MissingCompileTimeError
 list_literal_syntax_test/01: MissingCompileTimeError
@@ -380,6 +504,7 @@
 local_function_test/01: MissingCompileTimeError
 local_function_test/02: MissingCompileTimeError
 local_function_test/03: MissingCompileTimeError
+local_function_test/04: MissingCompileTimeError
 local_function_test/none: RuntimeError
 logical_expression3_test: MissingCompileTimeError
 main_test/03: RuntimeError
@@ -643,6 +768,9 @@
 regress_13494_test: MissingCompileTimeError
 regress_17382_test: MissingCompileTimeError
 regress_19413_test: MissingCompileTimeError
+regress_19728_test: MissingCompileTimeError
+regress_21912_test/01: MissingCompileTimeError
+regress_21912_test/02: MissingCompileTimeError
 regress_22438_test: MissingCompileTimeError
 regress_22936_test: MissingCompileTimeError
 regress_23089_test: MissingCompileTimeError
@@ -709,6 +837,12 @@
 try_catch_on_syntax_test/11: MissingCompileTimeError
 try_catch_syntax_test/08: MissingCompileTimeError
 type_checks_in_factory_method_test/01: MissingCompileTimeError
+type_promotion_functions_test/01: MissingCompileTimeError
+type_promotion_functions_test/05: MissingCompileTimeError
+type_promotion_functions_test/06: MissingCompileTimeError
+type_promotion_functions_test/07: MissingCompileTimeError
+type_promotion_functions_test/08: MissingCompileTimeError
+type_promotion_functions_test/10: MissingCompileTimeError
 type_promotion_parameter_test/01: MissingCompileTimeError
 type_promotion_parameter_test/02: MissingCompileTimeError
 type_promotion_parameter_test/03: MissingCompileTimeError
@@ -800,57 +934,7 @@
 unresolved_top_level_method_test: MissingCompileTimeError
 unresolved_top_level_var_test: MissingCompileTimeError
 
-[ ($runtime == vm && $compiler != dartk) || ($runtime == dart_precompiled && $compiler != dartkp) ]
-built_in_identifier_type_annotation_test/22: MissingCompileTimeError # Error only in strong mode
-int64_literal_test/*: Skip # This is testing Dart 2.0 int64 semantics.
-
-[ $runtime == vm && $compiler != dartk ]
-async_congruence_top_level_test: RuntimeError
-async_congruence_unnamed_test/none: RuntimeError
-async_congruence_local_test/none: RuntimeError
-async_congruence_method_test/none: RuntimeError
-covariant_override/runtime_check_test: RuntimeError
-field_override_test/02: MissingCompileTimeError
-field_type_check_test/01: MissingCompileTimeError
-if_null_assignment_static_test/07: MissingCompileTimeError
-if_null_assignment_static_test/14: MissingCompileTimeError
-if_null_assignment_static_test/21: MissingCompileTimeError
-if_null_assignment_static_test/28: MissingCompileTimeError
-if_null_assignment_static_test/35: MissingCompileTimeError
-if_null_assignment_static_test/42: MissingCompileTimeError
-list_literal4_test/03: MissingCompileTimeError
-local_function_test/04: MissingCompileTimeError
-regress_19728_test: MissingCompileTimeError
-regress_21912_test/01: MissingCompileTimeError
-regress_21912_test/02: MissingCompileTimeError
-
-[ $runtime == vm && $compiler != dartk && ! $strong ]
-covariant_subtyping_with_substitution_test: RuntimeError
-function_subtype_named1_test: RuntimeError
-function_subtype_named2_test: RuntimeError
-function_subtype_optional1_test: RuntimeError
-function_subtype_optional2_test: RuntimeError
-function_subtype_typearg2_test: RuntimeError
-function_subtype_typearg3_test: RuntimeError
-generic_function_typedef_test/01: RuntimeError
-generic_methods_named_parameters_test: RuntimeError
-generic_methods_optional_parameters_test: RuntimeError
-instanceof4_test/01: RuntimeError
-instanceof4_test/none: RuntimeError
-malbounded_type_cast_test/none: RuntimeError
-malbounded_type_test_test/none: RuntimeError
-map_literal8_test: RuntimeError
-mixin_type_parameters_mixin_extends_test: RuntimeError
-mixin_type_parameters_mixin_test: RuntimeError
-mixin_type_parameters_super_extends_test: RuntimeError
-mixin_type_parameters_super_test: RuntimeError
-no_such_method_mock_test: RuntimeError
-override_inheritance_mixed_test/08: MissingCompileTimeError
-regress_28341_test: Fail # Issue 28340
-type_variable_nested_test/01: RuntimeError
-type_variable_promotion_test: RuntimeError
-
-[ $runtime == vm && $compiler != dartk && $checked ]
+[ $compiler != dartk && $runtime == vm && $checked ]
 constructor_call_as_function_test/01: MissingCompileTimeError
 covariance_type_parameter_test/01: RuntimeError
 covariance_type_parameter_test/02: RuntimeError
@@ -931,7 +1015,7 @@
 
 # The VM and does not implement the Dart 2.0 runtime checks yet unless
 # --checked is explicitly passed).
-[ $runtime == vm && $compiler != dartk && !$checked && !$strong]
+[ $compiler != dartk && $runtime == vm && !$checked && !$strong ]
 bool_check_test: RuntimeError
 bool_condition_check_test: RuntimeError
 callable_test/none: RuntimeError
@@ -980,6 +1064,8 @@
 covariant_subtyping_unsafe_call3_test: RuntimeError
 field_override_optimization_test: RuntimeError
 field_type_check2_test/01: MissingRuntimeError
+forwarding_stub_tearoff_generic_test: RuntimeError
+forwarding_stub_tearoff_test: RuntimeError
 function_subtype_checked0_test: RuntimeError
 function_subtype_closure0_test: RuntimeError
 function_subtype_closure1_test: RuntimeError
@@ -994,23 +1080,43 @@
 function_type_test: RuntimeError
 generic_field_mixin6_test/none: RuntimeError
 generic_list_checked_test: RuntimeError
+getters_setters2_test/01: RuntimeError
+getters_setters2_test/none: RuntimeError
 if_null_precedence_test/none: RuntimeError
+implicit_downcast_during_assignment_test: RuntimeError
+implicit_downcast_during_combiner_test: RuntimeError
+implicit_downcast_during_compound_assignment_test: RuntimeError
+implicit_downcast_during_conditional_expression_test: RuntimeError
 implicit_downcast_during_constructor_initializer_test: RuntimeError
 implicit_downcast_during_constructor_invocation_test: RuntimeError
+implicit_downcast_during_do_test: RuntimeError
 implicit_downcast_during_factory_constructor_invocation_test: RuntimeError
 implicit_downcast_during_field_declaration_test: RuntimeError
+implicit_downcast_during_for_condition_test: RuntimeError
 implicit_downcast_during_for_in_element_test: RuntimeError
+implicit_downcast_during_for_initializer_expression_test: RuntimeError
+implicit_downcast_during_for_initializer_var_test: RuntimeError
+implicit_downcast_during_if_null_assignment_test: RuntimeError
+implicit_downcast_during_if_statement_test: RuntimeError
 implicit_downcast_during_indexed_assignment_test: RuntimeError
 implicit_downcast_during_indexed_compound_assignment_test: RuntimeError
 implicit_downcast_during_indexed_get_test: RuntimeError
 implicit_downcast_during_indexed_if_null_assignment_test: RuntimeError
 implicit_downcast_during_invocation_test: RuntimeError
+implicit_downcast_during_list_literal_test: RuntimeError
+implicit_downcast_during_logical_expression_test: RuntimeError
+implicit_downcast_during_map_literal_test: RuntimeError
 implicit_downcast_during_method_invocation_test: RuntimeError
+implicit_downcast_during_not_test: RuntimeError
 implicit_downcast_during_null_aware_method_invocation_test: RuntimeError
 implicit_downcast_during_redirecting_initializer_test: RuntimeError
+implicit_downcast_during_return_async_test: RuntimeError
+implicit_downcast_during_return_test: RuntimeError
 implicit_downcast_during_static_method_invocation_test: RuntimeError
 implicit_downcast_during_super_initializer_test: RuntimeError
 implicit_downcast_during_super_method_invocation_test: RuntimeError
+implicit_downcast_during_variable_declaration_test: RuntimeError
+implicit_downcast_during_while_statement_test: RuntimeError
 inferrer_synthesized_constructor_test: RuntimeError
 list_literal1_test/01: MissingCompileTimeError
 malformed2_test/00: MissingCompileTimeError
@@ -1019,42 +1125,57 @@
 type_check_const_function_typedef2_test: MissingCompileTimeError
 typevariable_substitution2_test/02: RuntimeError
 
-[ $runtime == vm && $compiler != dartk && !$checked && !$strong]
-getters_setters2_test/01: RuntimeError
-getters_setters2_test/none: RuntimeError
-implicit_downcast_during_assignment_test: RuntimeError
-implicit_downcast_during_combiner_test: RuntimeError
-implicit_downcast_during_compound_assignment_test: RuntimeError
-implicit_downcast_during_conditional_expression_test: RuntimeError
-implicit_downcast_during_do_test: RuntimeError
-implicit_downcast_during_for_condition_test: RuntimeError
-implicit_downcast_during_for_initializer_expression_test: RuntimeError
-implicit_downcast_during_for_initializer_var_test: RuntimeError
-implicit_downcast_during_if_null_assignment_test: RuntimeError
-implicit_downcast_during_if_statement_test: RuntimeError
-implicit_downcast_during_list_literal_test: RuntimeError
-implicit_downcast_during_logical_expression_test: RuntimeError
-implicit_downcast_during_map_literal_test: RuntimeError
-implicit_downcast_during_not_test: RuntimeError
-implicit_downcast_during_return_async_test: RuntimeError
-implicit_downcast_during_return_test: RuntimeError
-implicit_downcast_during_variable_declaration_test: RuntimeError
-implicit_downcast_during_while_statement_test: RuntimeError
+[ $compiler != dartk && $runtime == vm && !$strong ]
+covariant_subtyping_with_substitution_test: RuntimeError
+function_subtype_named1_test: RuntimeError
+function_subtype_named2_test: RuntimeError
+function_subtype_optional1_test: RuntimeError
+function_subtype_optional2_test: RuntimeError
+function_subtype_typearg2_test: RuntimeError
+function_subtype_typearg3_test: RuntimeError
+generic_function_typedef_test/01: RuntimeError
+generic_methods_named_parameters_test: RuntimeError
+generic_methods_optional_parameters_test: RuntimeError
+instanceof4_test/01: RuntimeError
+instanceof4_test/none: RuntimeError
+malbounded_type_cast_test/none: RuntimeError
+malbounded_type_test_test/none: RuntimeError
+map_literal8_test: RuntimeError
+mixin_type_parameters_mixin_extends_test: RuntimeError
+mixin_type_parameters_mixin_test: RuntimeError
+mixin_type_parameters_super_extends_test: RuntimeError
+mixin_type_parameters_super_test: RuntimeError
+no_such_method_mock_test: RuntimeError
+override_inheritance_mixed_test/08: MissingCompileTimeError
+regress_28341_test: Fail # Issue 28340
+type_variable_nested_test/01: RuntimeError
+type_variable_promotion_test: RuntimeError
 
-[ $runtime == vm && $checked && $mode == debug && $compiler != dartk ]
-tearoff_dynamic_test: Crash
+[ $compiler != dartkp && $mode == product && $runtime == dart_precompiled ]
+vm/type_vm_test/28: MissingRuntimeError
+vm/type_vm_test/29: MissingRuntimeError
+vm/type_vm_test/30: MissingRuntimeError
+vm/type_vm_test/31: MissingRuntimeError
+vm/type_vm_test/32: MissingRuntimeError
+vm/type_vm_test/33: MissingRuntimeError
+vm/type_vm_test/34: MissingRuntimeError
+vm/type_vm_test/35: MissingRuntimeError
+vm/type_vm_test/36: MissingRuntimeError
 
-[ $runtime == vm && $compiler == none ]
+[ $compiler == none && $mode != product && $runtime == vm ]
+vm/type_vm_test/none: RuntimeError
+
+[ $compiler == none && $runtime == vm ]
 async_star_cancel_while_paused_test: RuntimeError
 async_star_pause_test: Fail, OK
 async_star_regression_2238_test: CompileTimeError, RuntimeError
 class_keyword_test/02: MissingCompileTimeError # Issue 13627
 constructor3_test: Fail, OK, Pass
+cyclic_type2_test: Fail, OK
 cyclic_type_test/02: Fail, OK # Non-contractive types are not supported in the vm.
 cyclic_type_test/04: Fail, OK
-cyclic_type2_test: Fail, OK
-duplicate_export_negative_test: Fail # Issue 6134
 deferred_redirecting_factory_test: Fail, Crash # Issue 23408
+duplicate_export_negative_test: Fail # Issue 6134
 dynamic_prefix_core_test/01: RuntimeError # Issue 12478
 example_constructor_test: Fail, OK
 export_ambiguous_main_negative_test: Fail # Issue 14763
@@ -1077,7 +1198,15 @@
 vm/debug_break_enabled_vm_test/01: Crash, OK # Expected to hit breakpoint.
 vm/regress_29145_test: Skip # Issue 29145
 
-[ $runtime == vm && $compiler == none && $checked ]
+[ $compiler == none && $runtime == vm && $system == fuchsia ]
+async_await_test: RuntimeError
+async_star_test: RuntimeError
+closure_cycles_test: Pass, Crash
+vm/causal_async_exception_stack2_test: RuntimeError
+vm/causal_async_exception_stack_test: RuntimeError
+vm/math_vm_test: Crash
+
+[ $compiler == none && $runtime == vm && $checked ]
 assert_initializer_test/4*: MissingCompileTimeError # Issue 392. The VM doesn't enforce that potentially const expressions are actually const expressions when the constructor is called with `const`.
 generic_functions_test: Pass # Issue 25869
 generic_local_functions_test: Pass # Issue 25869
@@ -1086,137 +1215,14 @@
 generic_methods_new_test: Pass # Issue 25869
 generic_methods_test: Pass # Issue 25869
 
-[ $runtime == vm && $compiler == none && !$checked ]
+[ $compiler == none && $runtime == vm && !$checked ]
 assertion_initializer_const_error_test/01: MissingCompileTimeError
 assertion_initializer_const_function_error_test/01: MissingCompileTimeError
 generic_methods_dynamic_test/02: MissingRuntimeError
 generic_methods_dynamic_test/04: MissingRuntimeError
 type_parameter_test/05: MissingCompileTimeError
 
-[ $runtime == vm && $compiler == none && $system == windows && $arch == ia32 ]
-vm/optimized_stacktrace_test: Pass, Crash # Issue 28276
+[ $compiler != dartk && $runtime == vm || $compiler != dartkp && $runtime == dart_precompiled ]
+built_in_identifier_type_annotation_test/22: MissingCompileTimeError # Error only in strong mode
+int64_literal_test/*: Skip # This is testing Dart 2.0 int64 semantics.
 
-[ $runtime == vm && $compiler == none && $arch == ia32 ]
-vm/regress_24517_test: Pass, Fail # Issue 24517.
-
-[ $runtime == vm && $compiler == none && $mode != product ]
-vm/type_vm_test/none: RuntimeError
-
-[ $runtime == vm && $compiler == none && $system == fuchsia ]
-async_await_test: RuntimeError
-async_star_test: RuntimeError
-closure_cycles_test: Pass, Crash
-vm/causal_async_exception_stack_test: RuntimeError
-vm/causal_async_exception_stack2_test: RuntimeError
-vm/math_vm_test: Crash
-
-[ $runtime == vm && $compiler == app_jit ]
-async_star_cancel_while_paused_test: RuntimeError
-async_star_pause_test: Fail, OK
-async_star_regression_2238_test: CompileTimeError, RuntimeError
-class_keyword_test/02: MissingCompileTimeError # Issue 13627
-constructor3_test: Fail, OK, Pass
-ct_const2_test: Skip # Incompatible flag: --compile_all
-cyclic_type2_test: Fail, OK
-cyclic_type_test/02: Fail, OK
-cyclic_type_test/04: Fail, OK
-deferred_load_constants_test/02: Fail
-deferred_load_constants_test/03: Fail
-deferred_load_constants_test/05: Fail
-deferred_not_loaded_check_test: RuntimeError
-deferred_redirecting_factory_test: Fail, Crash # Issue 23408
-duplicate_export_negative_test: Fail # Issue 6134
-dynamic_prefix_core_test/01: RuntimeError # Issue 12478
-example_constructor_test: Fail, OK
-export_ambiguous_main_negative_test: Fail # Issue 14763
-field_initialization_order_test: Fail, OK
-generalized_void_syntax_test: CompileTimeError # Issue #30176
-generic_methods_type_expression_test: RuntimeError # Issue 25869 / 27460
-hello_dart_test: Skip # Incompatible flag: --compile_all
-language_2/least_upper_bound_expansive_test/none: CompileTimeError
-library_env_test/has_html_support: RuntimeError, OK
-library_env_test/has_no_io_support: RuntimeError, OK
-main_not_a_function_test: Skip
-mixin_illegal_super_use_test: Skip # Issues 24478 and 23773
-mixin_illegal_superclass_test: Skip # Issues 24478 and 23773
-multiline_strings_test: Fail # Issue 23020
-no_main_test/01: Skip
-regress_21793_test/01: MissingCompileTimeError
-regress_23408_test: Crash
-super_test: Fail, OK
-type_parameter_test/05: MissingCompileTimeError
-type_variable_scope_test/03: MissingCompileTimeError
-unicode_bom_test: Fail # Issue 16067
-vm/debug_break_enabled_vm_test/01: Crash, OK # Expected to hit breakpoint.
-vm/regress_27201_test: Fail
-vm/regress_29145_test: Skip # Issue 29145
-vm/type_cast_vm_test: RuntimeError # Expects line and column numbers
-
-[ $runtime == vm && $compiler == app_jit && $checked ]
-generic_functions_test: Pass # Issue 25869
-generic_methods_function_type_test: Pass # Issue 25869
-generic_methods_test: Pass # Issue 25869
-generic_methods_new_test: Pass # Issue 25869
-generic_local_functions_test: Pass # Issue 25869
-generic_methods_generic_function_parameter_test: Pass # Issue 25869
-
-[ $runtime == vm && $compiler == app_jit && !$checked ]
-assertion_initializer_const_error_test/01: MissingCompileTimeError
-generic_methods_bounds_test/02: MissingRuntimeError
-generic_methods_dynamic_test/02: MissingRuntimeError
-generic_methods_dynamic_test/04: MissingRuntimeError
-
-[ $runtime == vm && $compiler == app_jit && $arch == ia32 ]
-vm/regress_24517_test: Pass, Fail # Issue 24517.
-
-[ $runtime == vm && $compiler == app_jit && $mode != product ]
-vm/type_vm_test/none: RuntimeError
-
-[ $runtime == vm && $arch == arm64 ]
-closure_cycles_test: Pass, Slow
-large_class_declaration_test: SkipSlow # Uses too much memory.
-
-[ $runtime == vm && $compiler != dartk && $mode == product ]
-vm/causal_async_exception_stack_test: SkipByDesign
-vm/causal_async_exception_stack2_test: SkipByDesign
-vm/regress_27201_test: Fail
-vm/type_vm_test/28: MissingRuntimeError
-vm/type_vm_test/29: MissingRuntimeError
-vm/type_vm_test/30: MissingRuntimeError
-vm/type_vm_test/31: MissingRuntimeError
-vm/type_vm_test/32: MissingRuntimeError
-vm/type_vm_test/33: MissingRuntimeError
-vm/type_vm_test/34: MissingRuntimeError
-vm/type_vm_test/35: MissingRuntimeError
-vm/type_vm_test/36: MissingRuntimeError
-deferred_load_constants_test/02: Fail
-deferred_load_constants_test/03: Fail
-deferred_load_constants_test/05: Fail
-deferred_not_loaded_check_test: RuntimeError
-
-[ $compiler != dartkp && $runtime == dart_precompiled && $mode == product ]
-vm/type_vm_test/28: MissingRuntimeError
-vm/type_vm_test/29: MissingRuntimeError
-vm/type_vm_test/30: MissingRuntimeError
-vm/type_vm_test/31: MissingRuntimeError
-vm/type_vm_test/32: MissingRuntimeError
-vm/type_vm_test/33: MissingRuntimeError
-vm/type_vm_test/34: MissingRuntimeError
-vm/type_vm_test/35: MissingRuntimeError
-vm/type_vm_test/36: MissingRuntimeError
-
-[ $runtime == vm && $compiler != dartk ]
-generic_no_such_method_dispatcher_simple_test: Skip # This test is only for kernel.
-type_promotion_functions_test/01: MissingCompileTimeError
-
-[ $runtime == vm && $compiler != dartk ]
-fuzzy_arrows_test/01: MissingCompileTimeError
-fuzzy_arrows_test/03: RuntimeError
-type_promotion_functions_test/05: MissingCompileTimeError
-type_promotion_functions_test/06: MissingCompileTimeError
-type_promotion_functions_test/07: MissingCompileTimeError
-type_promotion_functions_test/08: MissingCompileTimeError
-type_promotion_functions_test/10: MissingCompileTimeError
-
-[ $runtime == vm && $mode == release && $arch == ia32 ]
-deep_nesting1_negative_test: Crash, Pass # Issue 31496
diff --git a/tests/lib/analyzer/analyze_library.status b/tests/lib/analyzer/analyze_library.status
index c36c18a8..55060cf 100644
--- a/tests/lib/analyzer/analyze_library.status
+++ b/tests/lib/analyzer/analyze_library.status
@@ -2,16 +2,6 @@
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
 
-[ $compiler == dart2analyzer && $use_sdk ]
-lib/*: Skip # Issue 28620
-lib/analyzer: Skip # Issue 28620
-lib/analysis_server: Skip # Issue 28620
-lib/dev_compiler: Skip # Issue 28620
-lib/front_end: Skip # Issue 28620
-
-[ $compiler == dart2analyzer && $builder_tag == strong ]
-*: Skip # Issue 28649
-
 [ $compiler == dart2analyzer ]
 lib/_blink/dartium/_blink_dartium: Skip # TODO: Remove Dartium
 lib/_chrome/dart2js/chrome_dart2js: CompileTimeError # Issue 16522
@@ -22,6 +12,8 @@
 lib/indexed_db/dart2js/indexed_db_dart2js: CompileTimeError # Issue 16522
 lib/indexed_db/dartium/indexed_db_dartium: Skip # TODO: Remove Dartium
 lib/js/dart2js/js_dart2js: CompileTimeError # Issue 16522
+lib/js/dartium/js_dartium: Skip # TODO: Remove Dartium
+lib/js_util/dartium/js_util_dartium: Skip # TODO: Remove Dartium
 lib/svg/dart2js/svg_dart2js: CompileTimeError # Issue 16522
 lib/svg/dartium/svg_dartium: Skip # TODO: Remove Dartium
 lib/typed_data/dart2js/native_typed_data_dart2js: CompileTimeError # Issue 16522
@@ -32,5 +24,14 @@
 lib/web_gl/dartium/web_gl_dartium: Skip # TODO: Remove Dartium
 lib/web_sql/dart2js/web_sql_dart2js: CompileTimeError # Issue 16522
 lib/web_sql/dartium/web_sql_dartium: Skip # TODO: Remove Dartium
-lib/js/dartium/js_dartium:  Skip # TODO: Remove Dartium
-lib/js_util/dartium/js_util_dartium: Skip # TODO: Remove Dartium
+
+[ $builder_tag == strong && $compiler == dart2analyzer ]
+*: Skip # Issue 28649
+
+[ $compiler == dart2analyzer && $use_sdk ]
+lib/*: Skip # Issue 28620
+lib/analysis_server: Skip # Issue 28620
+lib/analyzer: Skip # Issue 28620
+lib/dev_compiler: Skip # Issue 28620
+lib/front_end: Skip # Issue 28620
+
diff --git a/tests/lib/lib.status b/tests/lib/lib.status
index 23b23a2..b7a1b22 100644
--- a/tests/lib/lib.status
+++ b/tests/lib/lib.status
@@ -2,20 +2,36 @@
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
 
-[ $strong ]
-*: SkipByDesign # tests/lib_strong has the strong mode versions of these tests.
+[ $arch == simarm64 ]
+convert/utf85_test: Skip # Pass, Slow Issue 20111.
 
-[ ! $checked ]
-mirrors/redirecting_factory_different_type_test: SkipByDesign # Tests type checks.
+[ $arch == simarmv5te ]
+mirrors/mirrors_reader_test: Pass, Slow
+
+[ $compiler == app_jit ]
+mirrors/*: Skip # Issue 27929: Triage
+
+[ $compiler == dart2analyzer ]
+mirrors/generic_f_bounded_mixin_application_test: StaticWarning # Test Issue
+mirrors/immutable_collections_test: StaticWarning, OK # Expect failure for any type of Iterable.
+mirrors/inference_and_no_such_method_test: StaticWarning, OK # Expect to trigger noSuchMethod.
+mirrors/mirrors_nsm_mismatch_test: StaticWarning, OK # Expect to trigger noSuchMethod.
+mirrors/mirrors_nsm_test: StaticWarning, OK # Expect to trigger noSuchMethod.
+mirrors/redirecting_factory_test/01: StaticWarning # test issue X, The return type 'Class<T2, T1>' of the redirected constructor is not assignable to 'Class<T1, T2>'
+mirrors/redirecting_factory_test/none: StaticWarning # test issue X, The return type 'Class<T2, T1>' of the redirected constructor is not assignable to 'Class<T1, T2>
+mirrors/removed_api_test: StaticWarning, OK # Deliberately refers to undeclared members.
+mirrors/repeated_private_anon_mixin_app_test: StaticWarning, OK # Intentional library name conflict.
+profiler/metrics_num_test: Fail # Issue 20309
+profiler/metrics_test: Fail # Issue 20309
 
 [ $compiler == dart2js ]
 async/schedule_microtask6_test: RuntimeError # global error handling is not supported. Issue 5958
-
-
+convert/base64_test/01: Fail, OK # Uses bit-wise operations to detect invalid values. Some large invalid values accepted by dart2js.
+convert/chunked_conversion_utf88_test: Slow, Pass
+convert/utf85_test: Slow, Pass
+developer/timeline_test: Skip # Not supported
 math/double_pow_test: RuntimeError
 math/low_test: RuntimeError
-
-mirrors/invocation_fuzz_test: RuntimeError # Issue 29086
 mirrors/class_declarations_test/none: RuntimeError # Issue 13440
 mirrors/class_mirror_location_test: RuntimeError # Issue 6490
 mirrors/closurization_equivalence_test: RuntimeError # Issue 6490
@@ -25,6 +41,8 @@
 mirrors/generic_function_typedef_test: RuntimeError # Issue 12333
 mirrors/generic_interface_test: RuntimeError # Issue 12087
 mirrors/get_field_static_test/00: RuntimeError # Issue 21323
+mirrors/globalized_closures2_test/00: RuntimeError # Issue 17118. Please remove the multi-test comments when this test starts succeeding.
+mirrors/globalized_closures_test/00: RuntimeError # Issue 17118. Please remove the multi-test comments when this test starts succeeding.
 mirrors/hierarchy_invariants_test: RuntimeError # Issue 15262
 mirrors/hot_get_field_test: CompileTimeError # Issue 12164
 mirrors/hot_set_field_test: CompileTimeError # Issue 12164
@@ -33,77 +51,195 @@
 mirrors/initializing_formals_test/03: CompileTimeError # Issue 12164
 mirrors/instance_members_test: RuntimeError # Issue 14633
 mirrors/instantiate_abstract_class_test: RuntimeError # Issue 6490
+mirrors/invocation_fuzz_test: RuntimeError # Issue 29086
 mirrors/invoke_call_on_closure_test: RuntimeError # 6490
-mirrors/invoke_call_through_getter_test/named: RuntimeError # Issue 12863. When updating the status, remove the "///" in the test.
 mirrors/invoke_call_through_getter_previously_accessed_test/named: RuntimeError # Issue 12863. When updating the status, remove the "///" in the test.
+mirrors/invoke_call_through_getter_test/named: RuntimeError # Issue 12863. When updating the status, remove the "///" in the test.
 mirrors/invoke_call_through_implicit_getter_previously_accessed_test/named: RuntimeError # Issue 12863. When updating the status, remove the "///" in the test.
 mirrors/invoke_call_through_implicit_getter_test: RuntimeError # Issue 17638
 mirrors/invoke_named_test/none: RuntimeError # Issue 12863
 mirrors/invoke_private_test: CompileTimeError # Issue 12164
 mirrors/invoke_private_wrong_library_test: CompileTimeError # Issue 12164
 mirrors/library_declarations_test/none: RuntimeError # Issue 13439, Issue 13733
-mirrors/library_exports_shown_test: RuntimeError # Issue 6490
 mirrors/library_exports_hidden_test: RuntimeError # Issue 6490
+mirrors/library_exports_shown_test: RuntimeError # Issue 6490
 mirrors/library_import_deferred_loading_test: RuntimeError # Issue 6490
-mirrors/library_imports_deferred_test: RuntimeError # Issue 6490
-mirrors/library_imports_metadata_test: RuntimeError # Issue 6490
 mirrors/library_imports_bad_metadata_test/none: RuntimeError # Issue 6490
-mirrors/library_imports_shown_test: RuntimeError # Issue 6490
+mirrors/library_imports_deferred_test: RuntimeError # Issue 6490
 mirrors/library_imports_hidden_test: RuntimeError # Issue 6490
-mirrors/library_imports_prefixed_test: RuntimeError # Issue 6490
+mirrors/library_imports_metadata_test: RuntimeError # Issue 6490
 mirrors/library_imports_prefixed_show_hide_test: RuntimeError # Issue 6490
+mirrors/library_imports_prefixed_test: RuntimeError # Issue 6490
+mirrors/library_imports_shown_test: RuntimeError # Issue 6490
 mirrors/library_uri_io_test: SkipByDesign # Uses dart:io.
 mirrors/load_library_test: RuntimeError # Issue 6335
 mirrors/local_function_is_static_test: RuntimeError # Issue 6335
 mirrors/lru_test: Skip # dart2js_native/lru_test is used instead
 mirrors/metadata_scope_test/none: RuntimeError # Issue 10905
+mirrors/method_mirror_location_test: RuntimeError # Issue 6490
 mirrors/method_mirror_name_test: RuntimeError # Issue 6335
 mirrors/method_mirror_properties_test: RuntimeError # Issue 11861
-mirrors/method_mirror_source_test : RuntimeError # Issue 6490
-mirrors/method_mirror_source_line_ending_test : RuntimeError # Issue 6490
-mirrors/method_mirror_location_test: RuntimeError # Issue 6490
-mirrors/mirrors_test: RuntimeError # TODO(ahe): I'm working on fixing this. When removing this line please change the "endsWith" to "/mirrors_test.dart".
-mirrors/mirrors_nsm_test/dart2js: RuntimeError # Issue 19353
+mirrors/method_mirror_source_line_ending_test: RuntimeError # Issue 6490
+mirrors/method_mirror_source_test: RuntimeError # Issue 6490
 mirrors/mirrors_nsm_mismatch_test: RuntimeError # Issue 19353
-mirrors/mixin_test: RuntimeError # Issue 12464
+mirrors/mirrors_nsm_test/dart2js: RuntimeError # Issue 19353
+mirrors/mirrors_reader_test: Slow, RuntimeError # Issue 16589
+mirrors/mirrors_test: RuntimeError # TODO(ahe): I'm working on fixing this. When removing this line please change the "endsWith" to "/mirrors_test.dart".
 mirrors/mixin_application_test: RuntimeError # Issue 12464
+mirrors/mixin_test: RuntimeError # Issue 12464
 mirrors/other_declarations_location_test: RuntimeError # Issue 10905
-mirrors/parameter_test/none: RuntimeError # Issue 6490
 mirrors/parameter_of_mixin_app_constructor_test: RuntimeError # Issue 6490
+mirrors/parameter_test/none: RuntimeError # Issue 6490
 mirrors/private_class_field_test: CompileTimeError
 mirrors/private_symbol_test: CompileTimeError # Issue 13597
 mirrors/private_types_test: RuntimeError # Issue 6490
-mirrors/redirecting_factory_test/none: RuntimeError # Issue 6490
-mirrors/redirecting_factory_test/02: RuntimeError # Issue 6490
-mirrors/reflected_type_function_type_test: RuntimeError # Issue 12607
-mirrors/reflected_type_special_types_test: RuntimeError # Issue 12607
-mirrors/reflected_type_typedefs_test: RuntimeError # Issue 12607
-mirrors/reflected_type_typevars_test: RuntimeError # Issue 12607
-mirrors/relation_assignable_test: RuntimeError # Issue 6490
-mirrors/relation_assignable2_test: RuntimeError # Issue 6490
-mirrors/relation_subtype_test: RuntimeError # Issue 6490
-mirrors/repeated_private_anon_mixin_app_test: RuntimeError # Issue 14670
-mirrors/symbol_validation_test/01: RuntimeError # Issue 13597
-mirrors/static_members_test: RuntimeError # Issue 14633, Issue 12164
-mirrors/typedef_test: RuntimeError # Issue 6490
-mirrors/typedef_metadata_test: RuntimeError # Issue 12785
-mirrors/typedef_reflected_type_test/01: RuntimeError # Issue 12607
-mirrors/typevariable_mirror_metadata_test: RuntimeError # Issue 10905
-mirrors/type_variable_is_static_test: RuntimeError # Issue 6335
-mirrors/type_variable_owner_test/01: RuntimeError # Issue 12785
-mirrors/variable_is_const_test/none: RuntimeError # Issue 14671
 mirrors/raw_type_test/01: RuntimeError # Issue 6490
-mirrors/mirrors_reader_test: Slow, RuntimeError # Issue 16589
-mirrors/regress_26187_test: RuntimeError # Issue 6490
+mirrors/redirecting_factory_test/02: RuntimeError # Issue 6490
+mirrors/redirecting_factory_test/none: RuntimeError # Issue 6490
+mirrors/reflected_type_function_type_test: RuntimeError # Issue 12607
 mirrors/reflected_type_generics_test/01: Fail # Issues in reflecting generic typedefs.
 mirrors/reflected_type_generics_test/02: Fail # Issues in reflecting bounded type variables.
 mirrors/reflected_type_generics_test/03: Fail # Issues in reflecting generic typedefs. The following tests fail because we have disabled a test in `reflectClassByName`. `MirrorsUsed` leads to classes not having the information necessary to correctly handle these checks.
 mirrors/reflected_type_generics_test/04: Fail # Issues in reflecting bounded type variables. The following tests fail because we have disabled a test in `reflectClassByName`. `MirrorsUsed` leads to classes not having the information necessary to correctly handle these checks.
 mirrors/reflected_type_generics_test/05: Fail # Issues in reflecting generic typedefs. The following tests fail because we have disabled a test in `reflectClassByName`. `MirrorsUsed` leads to classes not having the information necessary to correctly handle these checks.
 mirrors/reflected_type_generics_test/06: Fail # Issues in reflecting bounded type variables. The following tests fail because we have disabled a test in `reflectClassByName`. `MirrorsUsed` leads to classes not having the information necessary to correctly handle these checks.
+mirrors/reflected_type_special_types_test: RuntimeError # Issue 12607
+mirrors/reflected_type_typedefs_test: RuntimeError # Issue 12607
+mirrors/reflected_type_typevars_test: RuntimeError # Issue 12607
+mirrors/regress_26187_test: RuntimeError # Issue 6490
+mirrors/relation_assignable2_test: RuntimeError # Issue 6490
+mirrors/relation_assignable_test: RuntimeError # Issue 6490
+mirrors/relation_subtype_test: RuntimeError # Issue 6490
+mirrors/repeated_private_anon_mixin_app_test: RuntimeError # Issue 14670
+mirrors/static_members_test: RuntimeError # Issue 14633, Issue 12164
+mirrors/symbol_validation_test/01: RuntimeError # Issue 13597
+mirrors/type_variable_is_static_test: RuntimeError # Issue 6335
+mirrors/type_variable_owner_test/01: RuntimeError # Issue 12785
+mirrors/typedef_metadata_test: RuntimeError # Issue 12785
+mirrors/typedef_reflected_type_test/01: RuntimeError # Issue 12607
+mirrors/typedef_test: RuntimeError # Issue 6490
+mirrors/typevariable_mirror_metadata_test: RuntimeError # Issue 10905
+mirrors/variable_is_const_test/none: RuntimeError # Issue 14671
+profiler/metrics_num_test: Skip # Because of a int / double type test.
+typed_data/int32x4_bigint_test: RuntimeError # Issue 1533
+typed_data/int64_list_load_store_test: RuntimeError # Issue 10275
+typed_data/typed_data_hierarchy_int64_test: RuntimeError # Issue 10275
 
-[ $compiler == none && ! $checked ]
-mirrors/reflected_type_generics_test/02: Fail, Ok # Type check for a bounded type argument.
+[ $compiler == dartkp ]
+mirrors/*: Skip # mirrors are not supported by under precompilation
+
+[ $compiler == precompiler ]
+convert/chunked_conversion_utf88_test: Pass, Timeout
+convert/utf85_test: Pass, Timeout
+mirrors/*: SkipByDesign
+
+[ $mode == product ]
+developer/timeline_test: Skip # Not supported
+
+[ $runtime == ff ]
+convert/streamed_conversion_utf8_decode_test: Pass, Slow # Issue 12029, FF setTimeout can fire early: https://bugzilla.mozilla.org/show_bug.cgi?id=291386
+mirrors/mirrors_reader_test: Timeout, Slow, RuntimeError # Issue 16589, FF setTimeout can fire early: https://bugzilla.mozilla.org/show_bug.cgi?id=291386
+
+[ $runtime == flutter ]
+async/catch_errors11_test: Skip # Flutter Issue 9113
+async/intercept_schedule_microtask2_test: Skip # Flutter Issue 9113
+async/intercept_schedule_microtask5_test: Skip # Flutter Issue 9113
+async/intercept_schedule_microtask6_test: Skip # Flutter Issue 9113
+async/stream_empty_test: Skip # Flutter Issue 9113
+async/stream_event_transformed_test: Skip # Flutter Issue 9113
+mirrors/*: Skip # Flutter does not support mirrors.
+
+[ $runtime == vm ]
+convert/streamed_conversion_json_utf8_decode_test: Pass, Slow # Infrequent timeouts.
+
+[ !$checked ]
+mirrors/redirecting_factory_different_type_test: SkipByDesign # Tests type checks.
+
+[ $hot_reload ]
+async/timer_regress22626_test: Pass, RuntimeError # Timing dependent.
+mirrors/generic_bounded_by_type_parameter_test/02: Fail # Type equality - Issue 26869
+mirrors/generic_bounded_test/02: Fail # Type equality - Issue 26869
+
+[ $strong ]
+*: SkipByDesign # tests/lib_strong has the strong mode versions of these tests.
+
+[ $arch == ia32 && $mode == debug && $system == windows ]
+convert/streamed_conversion_json_utf8_decode_test: Skip # Verification OOM.
+
+[ $arch != ia32 && $arch != simarm && $arch != simarmv5te && $arch != simarmv6 && $arch != x64 && $mode == debug ]
+convert/streamed_conversion_json_utf8_decode_test: Skip # Verification not yet implemented.
+
+[ $arch == x64 && $compiler == dartk && $mode == debug && $runtime == vm ]
+mirrors/invocation_fuzz_test: Skip # Because it times out, issue 29439.
+mirrors/variable_is_const_test/01: Crash
+
+[ $arch == x64 && $mode == debug && $system == windows && ($runtime == dart_precompiled || $runtime == vm) ]
+convert/streamed_conversion_json_utf8_decode_test: Pass, Slow
+
+[ $builder_tag == asan && $mode == debug && ($runtime == dart_precompiled || $runtime == vm) ]
+convert/streamed_conversion_json_utf8_decode_test: Skip # Timeout.
+mirrors/immutable_collections_test: SkipSlow # Timeout.
+
+[ $builder_tag == strong && $compiler == dart2analyzer ]
+*: Skip # Issue 28649
+
+[ $compiler == dart2analyzer && $checked ]
+mirrors/regress_16321_test/01: MissingCompileTimeError # Issue 16391
+
+[ $compiler == dart2js && $mode == debug ]
+mirrors/native_class_test: Pass, Slow
+
+[ $compiler == dart2js && $runtime == chromeOnAndroid ]
+typed_data/setRange_2_test: RuntimeError # TODO(dart2js-team): Please triage this failure.
+typed_data/setRange_3_test: RuntimeError # TODO(dart2js-team): Please triage this failure.
+
+[ $compiler == dart2js && $runtime == d8 && $system == windows ]
+async/*deferred*: Pass, RuntimeError # Issue 17458
+mirrors/*deferred*: Pass, RuntimeError # Issue 17458
+
+[ $compiler == dart2js && $runtime == jsshell ]
+async/catch_errors12_test: Fail # Timer interface not supported: Issue 7728.
+async/catch_errors13_test: Fail # Timer interface not supported: Issue 7728.
+async/catch_errors14_test: Fail # Timer interface not supported: Issue 7728.
+async/catch_errors15_test: Fail # Timer interface not supported: Issue 7728.
+async/catch_errors22_test: RuntimeError # Timer interface not supported: Issue 7728.
+async/catch_errors8_test: Fail # Timer interface not supported: Issue 7728.
+async/future_test: RuntimeError # Timer interface not supported; Issue 7728.
+async/stream_asyncexpand_test: RuntimeError # Timer interface not supported: Issue 7728.
+async/stream_asyncmap_test: RuntimeError # Timer interface not supported: Issue 7728.
+async/stream_controller_async_test: RuntimeError # Timer interface not supported; Issue 7728.
+async/stream_controller_test: Fail # Timer interface not supported: Issue 7728.
+async/stream_from_iterable_test: RuntimeError # Timer interface not supported; Issue 7728.
+async/stream_periodic2_test: RuntimeError # Timer interface not supported; Issue 7728.
+async/stream_periodic3_test: RuntimeError # Timer interface not supported; Issue 7728.
+async/stream_periodic4_test: RuntimeError # Timer interface not supported; Issue 7728.
+async/stream_periodic5_test: RuntimeError # Timer interface not supported; Issue 7728.
+async/stream_periodic6_test: RuntimeError # Timer interface not supported; Issue 7728.
+async/stream_periodic_test: RuntimeError # Timer interface not supported; Issue 7728.
+async/stream_state_nonzero_timer_test: RuntimeError # Timer interface not supported; Issue 7728.
+async/stream_subscription_cancel_test: Fail # Timer interface not supported: Issue 7728.
+async/stream_take_test: Fail # Timer interface not supported: Issue 7728.
+async/stream_timeout_test: Fail # Timer interface not supported: Issue 7728.
+async/stream_transformation_broadcast_test: RuntimeError # Timer interface not supported: Issue 7728.
+async/timer_cancel1_test: RuntimeError, OK # Needs Timer to run.
+async/timer_cancel2_test: RuntimeError, OK # Needs Timer to run.
+async/timer_cancel_test: RuntimeError, OK # Needs Timer to run.
+async/timer_isActive_test: RuntimeError # Timer interface not supported: Issue 7728.
+async/timer_regress22626_test: RuntimeError # Non-zero timers not supported; Issue 7728.
+async/timer_repeat_test: RuntimeError, OK # Needs Timer to run.
+async/timer_test: RuntimeError, OK # Needs Timer to run.
+async/zone_bind_test: Fail # Timer interface not supported: Issue 7728.
+async/zone_create_periodic_timer_test: RuntimeError # Timer interface not supported: Issue 7728.
+async/zone_create_timer2_test: RuntimeError # Timer interface not supported: Issue 7728.
+async/zone_empty_description2_test: RuntimeError # Timer interface not supported: Issue 7728.
+mirrors/mirrors_reader_test: Skip # Running in v8 suffices. Issue 16589 - RuntimeError.  Issue 22130 - Crash (out of memory).
+
+[ $compiler == dart2js && $runtime == safarimobilesim ]
+mirrors/mirrors_reader_test: SkipSlow # Times out. Issue 20806.
+mirrors/null_test: Fail # Issue 16831
+
+[ $compiler == dart2js && $checked ]
+convert/utf85_test: Pass, Slow # Issue 12029.
 
 [ $compiler == dart2js && $fast_startup ]
 mirrors/*: Fail # mirrors not supported
@@ -117,145 +253,53 @@
 mirrors/metadata_nested_constructor_call_test/0*: Pass # expects failure, but it fails for the wrong reason
 mirrors/metadata_scope_test/01: Pass # expects failure, but it fails for the wrong reason
 mirrors/mirror_in_static_init_test/01: Pass # expects failure, but it fails for the wrong reason
+mirrors/model_test: Pass # this is ok
 mirrors/parameter_is_const_test/01: Pass # expects failure, but it fails for the wrong reason
+mirrors/regress_16321_test/01: Pass # expects failure, but if fails for the wrong reason
 mirrors/syntax_error_test/01: Pass # expects failure, but it fails for the wrong reason
 mirrors/variable_is_const_test/01: Pass # expects failure, but it fails for the wrong reason
-mirrors/model_test: Pass # this is ok
 
-[ $compiler == dart2js && $fast_startup ]
-mirrors/regress_16321_test/01: Pass # expects failure, but if fails for the wrong reason
-
-[ $runtime == safari || $runtime == safarimobilesim ]
-typed_data/int32x4_test: Fail, Pass # Safari has an optimization bug (nightlies are already fine).
-typed_data/float32x4_test: Fail, Pass # Safari has an optimization bug (nightlies are already fine).
-convert/json_test: Fail # https://bugs.webkit.org/show_bug.cgi?id=134920
-
-[ ($runtime == safari && $builder_tag == mac10_7)|| $runtime == safarimobilesim ]
-typed_data/setRange_2_test: Fail # Safari doesn't fully implement spec for TypedArray.set
-typed_data/setRange_3_test: Fail # Safari doesn't fully implement spec for TypedArray.set
-typed_data/setRange_4_test: Fail # Safari doesn't fully implement spec for TypedArray.set
-
-[ $compiler == dart2js && $runtime == chromeOnAndroid ]
-typed_data/setRange_2_test: RuntimeError # TODO(dart2js-team): Please triage this failure.
-typed_data/setRange_3_test: RuntimeError # TODO(dart2js-team): Please triage this failure.
-
-[ $compiler == dart2js && ($runtime == drt || $runtime == ie11) ]
-math/math_test: RuntimeError
-math/math2_test: RuntimeError
-
-[ $compiler == dart2js && $runtime == jsshell ]
-async/timer_regress22626_test: RuntimeError # Non-zero timers not supported; Issue 7728.
-async/future_test: RuntimeError # Timer interface not supported; Issue 7728.
-async/stream_from_iterable_test: RuntimeError # Timer interface not supported; Issue 7728.
-async/stream_state_nonzero_timer_test: RuntimeError # Timer interface not supported; Issue 7728.
-async/timer_cancel_test: RuntimeError,OK # Needs Timer to run.
-async/timer_cancel1_test: RuntimeError,OK # Needs Timer to run.
-async/timer_cancel2_test: RuntimeError,OK # Needs Timer to run.
-async/timer_repeat_test: RuntimeError,OK # Needs Timer to run.
-async/timer_test: RuntimeError,OK # Needs Timer to run.
-async/stream_controller_async_test: RuntimeError # Timer interface not supported; Issue 7728.
-async/stream_periodic_test: RuntimeError # Timer interface not supported; Issue 7728.
-async/stream_periodic2_test: RuntimeError # Timer interface not supported; Issue 7728.
-async/stream_periodic3_test: RuntimeError # Timer interface not supported; Issue 7728.
-async/stream_periodic4_test: RuntimeError # Timer interface not supported; Issue 7728.
-async/stream_periodic5_test: RuntimeError # Timer interface not supported; Issue 7728.
-async/stream_periodic6_test: RuntimeError # Timer interface not supported; Issue 7728.
-async/catch_errors22_test: RuntimeError # Timer interface not supported: Issue 7728.
-async/timer_isActive_test: RuntimeError # Timer interface not supported: Issue 7728.
-async/zone_empty_description2_test: RuntimeError # Timer interface not supported: Issue 7728.
-async/zone_create_timer2_test: RuntimeError # Timer interface not supported: Issue 7728.
-async/zone_create_periodic_timer_test: RuntimeError # Timer interface not supported: Issue 7728.
-async/catch_errors12_test: Fail # Timer interface not supported: Issue 7728.
-async/catch_errors13_test: Fail # Timer interface not supported: Issue 7728.
-async/catch_errors14_test: Fail # Timer interface not supported: Issue 7728.
-async/catch_errors15_test: Fail # Timer interface not supported: Issue 7728.
-async/catch_errors8_test: Fail # Timer interface not supported: Issue 7728.
-async/zone_bind_test: Fail # Timer interface not supported: Issue 7728.
-async/stream_timeout_test: Fail # Timer interface not supported: Issue 7728.
-async/stream_asyncexpand_test: RuntimeError # Timer interface not supported: Issue 7728.
-async/stream_asyncmap_test: RuntimeError # Timer interface not supported: Issue 7728.
-async/stream_transformation_broadcast_test: RuntimeError # Timer interface not supported: Issue 7728.
-async/stream_controller_test: Fail # Timer interface not supported: Issue 7728.
-async/stream_subscription_cancel_test: Fail # Timer interface not supported: Issue 7728.
-async/stream_take_test: Fail # Timer interface not supported: Issue 7728.
-mirrors/mirrors_reader_test: Skip # Running in v8 suffices. Issue 16589 - RuntimeError.  Issue 22130 - Crash (out of memory).
-
-[ $compiler == dart2js && $checked ]
-convert/utf85_test: Pass, Slow # Issue 12029.
-
-[ $compiler == dart2js ]
-convert/chunked_conversion_utf88_test: Slow, Pass
-convert/utf85_test: Slow, Pass
-convert/base64_test/01: Fail, OK # Uses bit-wise operations to detect invalid values. Some large invalid values accepted by dart2js.
-mirrors/globalized_closures_test/00: RuntimeError # Issue 17118. Please remove the multi-test comments when this test starts succeeding.
-mirrors/globalized_closures2_test/00: RuntimeError # Issue 17118. Please remove the multi-test comments when this test starts succeeding.
-
-
-[ $compiler == dart2js && ( $browser || $runtime == d8 ) ]
-async/timer_not_available_test: Fail, OK # only meant to test when there is no way to implement timer (currently only in jsshell)
-
-# 'js' tests import the dart:js library, so they only make sense in
-# a browser environment.
-[ $runtime == vm || $runtime == dart_precompiled || $runtime == flutter ]
-js/*: Skip
-
-[ $compiler == app_jit ]
-mirrors/*: Skip # Issue 27929: Triage
-
-[ $runtime == flutter ]
-mirrors/*: Skip # Flutter does not support mirrors.
-async/catch_errors11_test: Skip # Flutter Issue 9113
-async/intercept_schedule_microtask2_test: Skip # Flutter Issue 9113
-async/intercept_schedule_microtask6_test: Skip # Flutter Issue 9113
-async/stream_empty_test: Skip # Flutter Issue 9113
-async/intercept_schedule_microtask5_test: Skip # Flutter Issue 9113
-async/stream_event_transformed_test: Skip # Flutter Issue 9113
+[ $compiler == dart2js && $host_checked ]
+mirrors/metadata_allowed_values_test/28: Crash # Issue 25911
+mirrors/metadata_allowed_values_test/29: Crash # Issue 25911
+mirrors/metadata_allowed_values_test/30: Crash # Issue 25911
+mirrors/metadata_allowed_values_test/31: Crash # Issue 25911
 
 [ $compiler == dart2js && $minified ]
-mirrors/mirrors_used_get_name_test: RuntimeError
 mirrors/mirrors_used_get_name2_test: RuntimeError
+mirrors/mirrors_used_get_name_test: RuntimeError
 
-[ $runtime == ff ]
-convert/streamed_conversion_utf8_decode_test: Pass, Slow  # Issue 12029, FF setTimeout can fire early: https://bugzilla.mozilla.org/show_bug.cgi?id=291386
-mirrors/mirrors_reader_test: Timeout, Slow, RuntimeError # Issue 16589, FF setTimeout can fire early: https://bugzilla.mozilla.org/show_bug.cgi?id=291386
+[ $compiler == dart2js && ($runtime == d8 || $browser) ]
+async/timer_not_available_test: Fail, OK # only meant to test when there is no way to implement timer (currently only in jsshell)
 
-[ $runtime == chrome && $system == macos ]
-async/timer_isActive_test: Fail, Pass, Timeout # Issue 22696
-async/catch_errors11_test: Pass, Timeout # Issue 22696
+[ $compiler == dart2js && ($runtime == drt || $runtime == ie11) ]
+math/math2_test: RuntimeError
+math/math_test: RuntimeError
+
+[ $compiler != dartk && $compiler != dartkp && ($runtime == dart_precompiled || $runtime == flutter || $runtime == vm) ]
+mirrors/initializing_formals_test/01: Fail # initializing formals are implicitly final as of Dart 1.21
+
+[ $compiler == dartkp && $mode == debug ]
+mirrors/variable_is_const_test/01: Crash
+vm/async_await_catch_stacktrace_test/01: Crash
+
+[ $compiler == none && $mode == product ]
+mirrors/library_enumeration_deferred_loading_test: RuntimeError, OK # Deferred loaded eagerly
+mirrors/library_import_deferred_loading_test: RuntimeError, OK # Deferred loaded eagerly
+mirrors/load_library_test: RuntimeError, OK # Deferred loaded eagerly
+
+[ $compiler == none && !$checked ]
+mirrors/reflected_type_generics_test/02: Fail, OK # Type check for a bounded type argument.
+
+[ $mode == debug && ($compiler == dartk || $compiler == dartkp) ]
+mirrors/other_declarations_location_test: Crash # assertion error, TypeParameter not having position.
 
 [ $runtime == chrome && $system == linux ]
 mirrors/native_class_test: Pass, Slow
 
-[ $runtime == chrome || $runtime == ff ]
-convert/streamed_conversion_utf8_encode_test: SkipSlow # Times out. Issue 22050
-convert/streamed_conversion_utf8_decode_test: SkipSlow # Times out. Issue 22050
-convert/streamed_conversion_json_utf8_encode_test: SkipSlow # Times out. Issue 22050
-convert/streamed_conversion_json_utf8_decode_test: SkipSlow # Times out. Issue 22050
-async/stream_timeout_test: SkipSlow # Times out. Issue 22050
-
-[ $compiler == dart2js ]
-typed_data/typed_data_hierarchy_int64_test: RuntimeError # Issue 10275
-typed_data/int32x4_bigint_test: RuntimeError # Issue 1533
-typed_data/int64_list_load_store_test: RuntimeError # Issue 10275
-
-[ $runtime == vm ]
-convert/streamed_conversion_json_utf8_decode_test: Pass, Slow # Infrequent timeouts.
-
-[ $runtime == vm || $runtime == dart_precompiled || $runtime == flutter ]
-async/timer_not_available_test: Fail, OK
-mirrors/native_class_test: Fail, OK # This test is meant to run in a browser.
-mirrors/deferred_type_test: CompileTimeError, OK # Don't have a multitest marker for dynamic compile time errors.
-
-[ ($runtime == vm || $runtime == dart_precompiled || $runtime == flutter) && $compiler != dartk && $compiler != dartkp ]
-mirrors/initializing_formals_test/01: Fail # initializing formals are implicitly final as of Dart 1.21
-
-[ $compiler == none || $compiler == precompiler || $compiler == app_jit ]
-async/timer_not_available_test: SkipByDesign # only meant to test when there is no way to implement timer (currently only in d8)
-
-mirrors/symbol_validation_test: RuntimeError # Issue 13596
-
-mirrors/mirrors_used*: SkipByDesign # Invalid tests. MirrorsUsed does not have a specification, and dart:mirrors is not required to hide declarations that are not covered by any MirrorsUsed annotation.
-
+[ $runtime == chrome && $system == macos ]
+async/catch_errors11_test: Pass, Timeout # Issue 22696
+async/timer_isActive_test: Fail, Pass, Timeout # Issue 22696
 
 [ $runtime == vm && $system == fuchsia ]
 async/first_regression_test: RuntimeError # These use package:unittest
@@ -289,116 +333,26 @@
 async/timer_repeat_test: RuntimeError # These use package:unittest
 async/timer_test: RuntimeError # These use package:unittest
 convert/json_lib_test: RuntimeError # These use package:unittest
+mirrors/invocation_fuzz_test: Crash # fstat bug, ZX-479.
 mirrors/library_uri_io_test: RuntimeError # These use package:unittest
 mirrors/library_uri_package_test: RuntimeError # These use package:unittest
-mirrors/invocation_fuzz_test: Crash # fstat bug, ZX-479.
 
-[ $compiler == dart2js && $runtime == safarimobilesim ]
-mirrors/mirrors_reader_test: SkipSlow # Times out. Issue 20806.
-mirrors/null_test: Fail # Issue 16831
+# dartk: checked mode failures
+[ $checked && ($compiler == dartk || $compiler == dartkp) ]
+mirrors/invocation_fuzz_test/smi: Crash
+mirrors/redirecting_factory_different_type_test/01: Crash # Issue 28424
+mirrors/redirecting_factory_different_type_test/none: Crash # Issue 28424
+mirrors/reflected_type_generics_test/02: Pass
 
-[ $compiler == dart2js && $runtime == jsshell ]
+[ $arch == simarm || $arch == simarmv5te || $arch == simarmv6 ]
+convert/chunked_conversion_utf88_test: Skip # Pass, Slow Issue 12644.
+convert/utf85_test: Skip # Pass, Slow Issue 12644.
 
-[ $compiler == dart2analyzer ]
-mirrors/generic_f_bounded_mixin_application_test: StaticWarning # Test Issue
-
-mirrors/redirecting_factory_test/01: StaticWarning # test issue X, The return type 'Class<T2, T1>' of the redirected constructor is not assignable to 'Class<T1, T2>'
-mirrors/redirecting_factory_test/none: StaticWarning # test issue X, The return type 'Class<T2, T1>' of the redirected constructor is not assignable to 'Class<T1, T2>
-
-mirrors/immutable_collections_test: StaticWarning, OK # Expect failure for any type of Iterable.
-mirrors/inference_and_no_such_method_test: StaticWarning, OK # Expect to trigger noSuchMethod.
-mirrors/mirrors_nsm_test: StaticWarning, OK # Expect to trigger noSuchMethod.
-mirrors/mirrors_nsm_mismatch_test: StaticWarning, OK # Expect to trigger noSuchMethod.
-
-mirrors/repeated_private_anon_mixin_app_test: StaticWarning, OK # Intentional library name conflict.
-mirrors/removed_api_test: StaticWarning, OK # Deliberately refers to undeclared members.
-
-profiler/metrics_test: Fail # Issue 20309
-profiler/metrics_num_test: Fail # Issue 20309
-
-[ $compiler == dart2analyzer && $checked ]
-mirrors/regress_16321_test/01: MissingCompileTimeError # Issue 16391
-
-[ $compiler == dart2analyzer && $builder_tag == strong ]
-*: Skip # Issue 28649
-
-[ $compiler == dart2js && $runtime == d8 && $system == windows ]
-async/*deferred*: Pass,RuntimeError # Issue 17458
-mirrors/*deferred*: Pass,RuntimeError # Issue 17458
-
-[ $compiler == dart2js && $mode == debug ]
-mirrors/native_class_test: Pass, Slow
-
-[ ($compiler == none || $compiler == precompiler || $compiler == app_jit) ]
+[ $compiler == app_jit || $compiler == none || $compiler == precompiler ]
+async/timer_not_available_test: SkipByDesign # only meant to test when there is no way to implement timer (currently only in d8)
 async/timer_regress22626_test: Pass, RuntimeError # Issue 28254
-
-[ $arch == simarm || $arch == simarmv6 || $arch == simarmv5te ]
-convert/chunked_conversion_utf88_test: Skip  # Pass, Slow Issue 12644.
-convert/utf85_test: Skip  # Pass, Slow Issue 12644.
-
-[ $arch == simarmv5te ]
-mirrors/mirrors_reader_test: Pass, Slow
-
-[ $compiler == dart2js ]
-developer/timeline_test: Skip # Not supported
-profiler/metrics_num_test: Skip # Because of a int / double type test.
-
-[ $mode == product ]
-developer/timeline_test: Skip # Not supported
-
-[ $arch == simarm64 ]
-convert/utf85_test: Skip # Pass, Slow Issue 20111.
-
-[ $mode == debug && $arch == ia32 && $system == windows ]
-convert/streamed_conversion_json_utf8_decode_test: Skip  # Verification OOM.
-
-[ ($runtime == vm || $runtime == dart_precompiled) && $mode == debug && $arch == x64 && $system == windows ]
-convert/streamed_conversion_json_utf8_decode_test: Pass, Slow
-
-[ $mode == debug && $arch != ia32 && $arch != x64 && $arch != simarm && $arch != simarmv6 && $arch != simarmv5te ]
-convert/streamed_conversion_json_utf8_decode_test: Skip  # Verification not yet implemented.
-
-[ ($runtime == vm || $runtime == dart_precompiled) && $mode == debug && $builder_tag == asan ]
-mirrors/immutable_collections_test: SkipSlow  # Timeout.
-convert/streamed_conversion_json_utf8_decode_test: Skip  # Timeout.
-
-[ $compiler == dart2js && $host_checked ]
-mirrors/metadata_allowed_values_test/28: Crash # Issue 25911
-mirrors/metadata_allowed_values_test/29: Crash # Issue 25911
-mirrors/metadata_allowed_values_test/30: Crash # Issue 25911
-mirrors/metadata_allowed_values_test/31: Crash # Issue 25911
-
-[ $compiler != dart2js ]
-
-[ $compiler == precompiler ]
-mirrors/*: SkipByDesign
-
-[ $compiler == none && $mode == product ]
-mirrors/load_library_test: RuntimeError,OK # Deferred loaded eagerly
-mirrors/library_import_deferred_loading_test: RuntimeError,OK # Deferred loaded eagerly
-mirrors/library_enumeration_deferred_loading_test: RuntimeError,OK # Deferred loaded eagerly
-
-[ $compiler == precompiler ]
-convert/chunked_conversion_utf88_test: Pass, Timeout
-convert/utf85_test: Pass, Timeout
-
-[ $hot_reload || $hot_reload_rollback ]
-async/stream_transformer_test: Pass, Fail # Closure identity
-mirrors/fake_function_with_call_test: SkipByDesign # Method equality
-
-mirrors/library_enumeration_deferred_loading_test: Crash # Deferred loading
-mirrors/library_imports_deferred_test: Crash # Deferred loading
-mirrors/library_import_deferred_loading_test: Crash # Deferred loading
-mirrors/typedef_deferred_library_test: Crash # Deferred loading
-mirrors/load_library_test: Crash # Deferred loading
-
-[ $hot_reload ]
-mirrors/generic_bounded_test/02: Fail # Type equality - Issue 26869
-mirrors/generic_bounded_by_type_parameter_test/02: Fail # Type equality - Issue 26869
-async/timer_regress22626_test: Pass, RuntimeError # Timing dependent.
-
-[ ($compiler == dartk || $compiler == dartkp) && $mode == debug ]
-mirrors/other_declarations_location_test: Crash # assertion error, TypeParameter not having position.
+mirrors/mirrors_used*: SkipByDesign # Invalid tests. MirrorsUsed does not have a specification, and dart:mirrors is not required to hide declarations that are not covered by any MirrorsUsed annotation.
+mirrors/symbol_validation_test: RuntimeError # Issue 13596
 
 [ $compiler == dartk || $compiler == dartkp ]
 mirrors/class_declarations_test/01: RuntimeError
@@ -423,8 +377,10 @@
 mirrors/invoke_private_wrong_library_test: RuntimeError
 mirrors/invoke_throws_test: Crash
 mirrors/library_declarations_test/none: RuntimeError
+mirrors/library_enumeration_deferred_loading_test: CompileTimeError # Deferred loading kernel issue 28335.
 mirrors/library_exports_hidden_test: RuntimeError
 mirrors/library_exports_shown_test: RuntimeError
+mirrors/library_import_deferred_loading_test: CompileTimeError # Deferred loading kernel issue 28335.
 mirrors/library_imports_deferred_test: RuntimeError
 mirrors/library_imports_hidden_test: RuntimeError
 mirrors/library_imports_metadata_test: RuntimeError
@@ -481,6 +437,7 @@
 mirrors/symbol_validation_test/none: RuntimeError
 mirrors/type_variable_is_static_test: RuntimeError
 mirrors/type_variable_owner_test/01: RuntimeError
+mirrors/typedef_deferred_library_test: CompileTimeError # Deferred loading kernel issue 28335.
 mirrors/typedef_in_signature_test: RuntimeError
 mirrors/typedef_library_test: RuntimeError
 mirrors/typedef_metadata_test: RuntimeError
@@ -490,30 +447,35 @@
 mirrors/typevariable_mirror_metadata_test: RuntimeError
 mirrors/variable_is_const_test/01: MissingCompileTimeError
 
-[ $compiler == dartkp ]
-mirrors/*: Skip # mirrors are not supported by under precompilation
+[ $runtime == chrome || $runtime == ff ]
+async/stream_timeout_test: SkipSlow # Times out. Issue 22050
+convert/streamed_conversion_json_utf8_decode_test: SkipSlow # Times out. Issue 22050
+convert/streamed_conversion_json_utf8_encode_test: SkipSlow # Times out. Issue 22050
+convert/streamed_conversion_utf8_decode_test: SkipSlow # Times out. Issue 22050
+convert/streamed_conversion_utf8_encode_test: SkipSlow # Times out. Issue 22050
 
-[ $compiler == dartk && $runtime == vm && $mode == debug && $arch == x64 ]
-mirrors/variable_is_const_test/01: Crash
+[ $runtime == dart_precompiled || $runtime == flutter || $runtime == vm ]
+async/timer_not_available_test: Fail, OK
+js/*: Skip
+mirrors/deferred_type_test: CompileTimeError, OK # Don't have a multitest marker for dynamic compile time errors.
+mirrors/native_class_test: Fail, OK # This test is meant to run in a browser.
 
-[ $compiler == dartkp && $mode == debug ]
-vm/async_await_catch_stacktrace_test/01: Crash
+[ $runtime == safari || $runtime == safarimobilesim ]
+convert/json_test: Fail # https://bugs.webkit.org/show_bug.cgi?id=134920
+typed_data/float32x4_test: Fail, Pass # Safari has an optimization bug (nightlies are already fine).
+typed_data/int32x4_test: Fail, Pass # Safari has an optimization bug (nightlies are already fine).
 
-# dartk: checked mode failures
-[ $checked && ($compiler == dartk || $compiler == dartkp) ]
-mirrors/invocation_fuzz_test/smi: Crash
-mirrors/redirecting_factory_different_type_test/01: Crash # Issue 28424
-mirrors/redirecting_factory_different_type_test/none: Crash # Issue 28424
-mirrors/reflected_type_generics_test/02: Pass
+[ $runtime == safarimobilesim || $builder_tag == mac10_7 && $runtime == safari ]
+typed_data/setRange_2_test: Fail # Safari doesn't fully implement spec for TypedArray.set
+typed_data/setRange_3_test: Fail # Safari doesn't fully implement spec for TypedArray.set
+typed_data/setRange_4_test: Fail # Safari doesn't fully implement spec for TypedArray.set
 
-# Deferred loading kernel issue 28335.
-[ $compiler == dartk || $compiler == dartkp ]
-mirrors/library_enumeration_deferred_loading_test: CompileTimeError # Deferred loading kernel issue 28335.
-mirrors/library_import_deferred_loading_test: CompileTimeError # Deferred loading kernel issue 28335.
-mirrors/typedef_deferred_library_test: CompileTimeError # Deferred loading kernel issue 28335.
+[ $hot_reload || $hot_reload_rollback ]
+async/stream_transformer_test: Pass, Fail # Closure identity
+mirrors/fake_function_with_call_test: SkipByDesign # Method equality
+mirrors/library_enumeration_deferred_loading_test: Crash # Deferred loading
+mirrors/library_import_deferred_loading_test: Crash # Deferred loading
+mirrors/library_imports_deferred_test: Crash # Deferred loading
+mirrors/load_library_test: Crash # Deferred loading
+mirrors/typedef_deferred_library_test: Crash # Deferred loading
 
-[ $compiler == dartk && $runtime == vm && $mode == debug && $arch == x64 ]
-mirrors/invocation_fuzz_test: Skip # Because it times out, issue 29439.
-
-[ $compiler == dartkp && $mode == debug ]
-mirrors/variable_is_const_test/01: Crash
diff --git a/tests/lib_2/html/custom/attribute_changed_callback_test.dart b/tests/lib_2/html/custom/attribute_changed_callback_test.dart
index 2bca701..5d685c5 100644
--- a/tests/lib_2/html/custom/attribute_changed_callback_test.dart
+++ b/tests/lib_2/html/custom/attribute_changed_callback_test.dart
@@ -10,7 +10,7 @@
 
 import 'package:unittest/unittest.dart';
 
-import '../utils.dart';
+import 'utils.dart';
 
 class A extends HtmlElement {
   static final tag = 'x-a';
diff --git a/tests/lib_2/html/custom/constructor_calls_created_synchronously_test.dart b/tests/lib_2/html/custom/constructor_calls_created_synchronously_test.dart
index bfa9a38..eb0f55b 100644
--- a/tests/lib_2/html/custom/constructor_calls_created_synchronously_test.dart
+++ b/tests/lib_2/html/custom/constructor_calls_created_synchronously_test.dart
@@ -9,7 +9,7 @@
 
 import 'package:unittest/unittest.dart';
 
-import '../utils.dart';
+import 'utils.dart';
 
 class A extends HtmlElement {
   static final tag = 'x-a';
diff --git a/tests/lib_2/html/custom/document_register_template_test.dart b/tests/lib_2/html/custom/document_register_template_test.dart
index 6a8b5ce..f7819fa 100644
--- a/tests/lib_2/html/custom/document_register_template_test.dart
+++ b/tests/lib_2/html/custom/document_register_template_test.dart
@@ -2,7 +2,7 @@
 
 import 'package:unittest/unittest.dart';
 
-import '../utils.dart';
+import 'utils.dart';
 
 main() {
   setUp(() => customElementsReady);
diff --git a/tests/lib_2/html/custom/document_register_type_extensions_test.dart b/tests/lib_2/html/custom/document_register_type_extensions_test.dart
index 38831da..e9143ea 100644
--- a/tests/lib_2/html/custom/document_register_type_extensions_test.dart
+++ b/tests/lib_2/html/custom/document_register_type_extensions_test.dart
@@ -7,7 +7,7 @@
 import 'package:unittest/html_individual_config.dart';
 import 'package:unittest/unittest.dart';
 
-import '../utils.dart';
+import 'utils.dart';
 
 class Foo extends HtmlElement {
   static const tag = 'x-foo';
diff --git a/tests/lib_2/html/custom/element_upgrade_failure_test.dart b/tests/lib_2/html/custom/element_upgrade_failure_test.dart
index d4d1927..16bb949 100644
--- a/tests/lib_2/html/custom/element_upgrade_failure_test.dart
+++ b/tests/lib_2/html/custom/element_upgrade_failure_test.dart
@@ -9,7 +9,7 @@
 import 'package:unittest/html_individual_config.dart';
 import 'package:unittest/unittest.dart';
 
-import '../utils.dart';
+import 'utils.dart';
 
 class FooElement extends HtmlElement {
   static final tag = 'x-foo';
diff --git a/tests/lib_2/html/custom/element_upgrade_test.dart b/tests/lib_2/html/custom/element_upgrade_test.dart
index 69a50dc..c025552 100644
--- a/tests/lib_2/html/custom/element_upgrade_test.dart
+++ b/tests/lib_2/html/custom/element_upgrade_test.dart
@@ -9,7 +9,7 @@
 import 'package:unittest/html_individual_config.dart';
 import 'package:unittest/unittest.dart';
 
-import '../utils.dart';
+import 'utils.dart';
 
 class FooElement extends HtmlElement {
   static final tag = 'x-foo';
diff --git a/tests/lib_2/html/custom/entered_left_view_test.dart b/tests/lib_2/html/custom/entered_left_view_test.dart
index 61de1b9..20d5dc1 100644
--- a/tests/lib_2/html/custom/entered_left_view_test.dart
+++ b/tests/lib_2/html/custom/entered_left_view_test.dart
@@ -7,9 +7,11 @@
 import 'dart:async';
 import 'dart:html';
 import 'dart:js' as js;
+
 import 'package:unittest/html_individual_config.dart';
 import 'package:unittest/unittest.dart';
-import '../utils.dart';
+
+import 'utils.dart';
 
 var invocations = [];
 
diff --git a/tests/lib_2/html/custom/js_custom_test.dart b/tests/lib_2/html/custom/js_custom_test.dart
index 25ff35f..9044134 100644
--- a/tests/lib_2/html/custom/js_custom_test.dart
+++ b/tests/lib_2/html/custom/js_custom_test.dart
@@ -2,13 +2,13 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library js_custom_test;
+import 'dart:html';
+import 'dart:mirrors';
 
 import 'package:unittest/html_individual_config.dart';
 import 'package:unittest/unittest.dart';
-import 'dart:html';
-import '../utils.dart';
-import 'dart:mirrors';
+
+import 'utils.dart';
 
 class A extends HtmlElement {
   static final tag = 'x-a';
diff --git a/tests/lib_2/html/custom/mirrors_2_test.dart b/tests/lib_2/html/custom/mirrors_2_test.dart
index 128323d..a489ede 100644
--- a/tests/lib_2/html/custom/mirrors_2_test.dart
+++ b/tests/lib_2/html/custom/mirrors_2_test.dart
@@ -2,16 +2,14 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library tests.html.mirrors_2_test;
-
+import 'dart:html';
 @MirrorsUsed(targets: "tests.html.mirrors_2_test")
 import 'dart:mirrors';
-import 'dart:html';
 
 import 'package:expect/expect.dart' show NoInline;
 import 'package:unittest/unittest.dart';
 
-import '../utils.dart';
+import 'utils.dart';
 
 /// Regression test for http://dartbug/28196
 ///
diff --git a/tests/lib_2/html/custom/mirrors_test.dart b/tests/lib_2/html/custom/mirrors_test.dart
index f334fc4..e5225af 100644
--- a/tests/lib_2/html/custom/mirrors_test.dart
+++ b/tests/lib_2/html/custom/mirrors_test.dart
@@ -2,14 +2,14 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library tests.html.mirrors_test;
-
+import 'dart:html';
 @MirrorsUsed(targets: const [A, B])
 import 'dart:mirrors';
-import 'dart:html';
+
 import 'package:unittest/html_individual_config.dart';
 import 'package:unittest/unittest.dart';
-import '../utils.dart';
+
+import 'utils.dart';
 
 /// Regression test for a tricky mirrors+custom_elements issue:
 /// dart2js mirrors cache dispatch information on the Object's constructor.
diff --git a/tests/lib_2/html/custom/regress_194523002_test.dart b/tests/lib_2/html/custom/regress_194523002_test.dart
index feda47e..7cb1394 100644
--- a/tests/lib_2/html/custom/regress_194523002_test.dart
+++ b/tests/lib_2/html/custom/regress_194523002_test.dart
@@ -3,13 +3,12 @@
 // BSD-style license that can be found in the LICENSE file.
 
 // Regression test for CL 194523002.
-
-library js_custom_test;
+import 'dart:html';
 
 import 'package:unittest/html_individual_config.dart';
 import 'package:unittest/unittest.dart';
-import 'dart:html';
-import '../utils.dart';
+
+import 'utils.dart';
 
 class A extends HtmlElement {
   static final tag = 'x-a';
diff --git a/tests/lib_2/html/custom/util.dart b/tests/lib_2/html/custom/util.dart
deleted file mode 100644
index 7a1d019..0000000
--- a/tests/lib_2/html/custom/util.dart
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library test.html.util;
-
-import 'dart:html';
-
-import 'package:unittest/unittest.dart';
-
-void expectUnsupported(f) => expect(f, throwsUnsupportedError);
-
-void expectEmptyRect(ClientRect rect) {
-  expect(rect.bottom, isZero);
-  expect(rect.top, isZero);
-  expect(rect.left, isZero);
-  expect(rect.right, isZero);
-  expect(rect.height, isZero);
-  expect(rect.width, isZero);
-}
diff --git a/tests/lib_2/html/custom/utils.dart b/tests/lib_2/html/custom/utils.dart
index ec30902..dc114d7a 100644
--- a/tests/lib_2/html/custom/utils.dart
+++ b/tests/lib_2/html/custom/utils.dart
@@ -3,7 +3,7 @@
 import 'dart:js' as js;
 import 'dart:typed_data';
 
-import 'package:unittest/unittest.dart';
+import 'package:expect/minitest.dart';
 
 /**
  * Verifies that [actual] has the same graph structure as [expected].
@@ -88,7 +88,8 @@
     }
 
     if (expected is List) {
-      expect(actual, isList, reason: message(path, '$actual is List'));
+      expect(actual, predicate((v) => v is List),
+          reason: message(path, '$actual is List'));
       expect(actual.length, expected.length,
           reason: message(path, 'different list lengths'));
       for (var i = 0; i < expected.length; i++) {
@@ -98,7 +99,8 @@
     }
 
     if (expected is Map) {
-      expect(actual, isMap, reason: message(path, '$actual is Map'));
+      expect(actual, predicate((v) => v is Map),
+          reason: message(path, '$actual is Map'));
       for (var key in expected.keys) {
         if (!actual.containsKey(key)) {
           expect(false, isTrue, reason: message(path, 'missing key "$key"'));
diff --git a/tests/lib_2/html/util.dart b/tests/lib_2/html/util.dart
deleted file mode 100644
index 0cf55fb..0000000
--- a/tests/lib_2/html/util.dart
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library test.html.util;
-
-import 'dart:html';
-import 'package:expect/minitest.dart';
-
-void expectEmptyRect(Rectangle rect) {
-  expect(rect.bottom, 0);
-  expect(rect.top, 0);
-  expect(rect.left, 0);
-  expect(rect.right, 0);
-  expect(rect.height, 0);
-  expect(rect.width, 0);
-}
diff --git a/tests/lib_2/html/utils.dart b/tests/lib_2/html/utils.dart
index 8628734..876bc27 100644
--- a/tests/lib_2/html/utils.dart
+++ b/tests/lib_2/html/utils.dart
@@ -1,221 +1,14 @@
-library TestUtils;
-
-import 'dart:async';
-import 'dart:html';
-import 'dart:js' as js;
-import 'dart:typed_data';
-import 'package:expect/minitest.dart';
-
-/**
- * Verifies that [actual] has the same graph structure as [expected].
- * Detects cycles and DAG structure in Maps and Lists.
- */
-verifyGraph(expected, actual) {
-  var eItems = [];
-  var aItems = [];
-
-  message(path, reason) => path == ''
-      ? reason
-      : reason == null ? "path: $path" : "path: $path, $reason";
-
-  walk(path, expected, actual) {
-    if (expected is String || expected is num || expected == null) {
-      expect(actual, equals(expected), reason: message(path, 'not equal'));
-      return;
-    }
-
-    // Cycle or DAG?
-    for (int i = 0; i < eItems.length; i++) {
-      if (identical(expected, eItems[i])) {
-        expect(actual, same(aItems[i]),
-            reason: message(path, 'missing back or side edge'));
-        return;
-      }
-    }
-    for (int i = 0; i < aItems.length; i++) {
-      if (identical(actual, aItems[i])) {
-        expect(expected, same(eItems[i]),
-            reason: message(path, 'extra back or side edge'));
-        return;
-      }
-    }
-    eItems.add(expected);
-    aItems.add(actual);
-
-    if (expected is Blob) {
-      expect(actual is Blob, isTrue, reason: '$actual is Blob');
-      expect(expected.type, equals(actual.type),
-          reason: message(path, '.type'));
-      expect(expected.size, equals(actual.size),
-          reason: message(path, '.size'));
-      return;
-    }
-
-    if (expected is ByteBuffer) {
-      expect(actual is ByteBuffer, isTrue, reason: '$actual is ByteBuffer');
-      expect(expected.lengthInBytes, equals(actual.lengthInBytes),
-          reason: message(path, '.lengthInBytes'));
-      // TODO(antonm): one can create a view on top of those
-      // and check if contents identical.  Let's do it later.
-      return;
-    }
-
-    if (expected is DateTime) {
-      expect(actual is DateTime, isTrue, reason: '$actual is DateTime');
-      expect(expected.millisecondsSinceEpoch,
-          equals(actual.millisecondsSinceEpoch),
-          reason: message(path, '.millisecondsSinceEpoch'));
-      return;
-    }
-
-    if (expected is ImageData) {
-      expect(actual is ImageData, isTrue, reason: '$actual is ImageData');
-      expect(expected.width, equals(actual.width),
-          reason: message(path, '.width'));
-      expect(expected.height, equals(actual.height),
-          reason: message(path, '.height'));
-      walk('$path.data', expected.data, actual.data);
-      return;
-    }
-
-    if (expected is TypedData) {
-      expect(actual is TypedData, isTrue, reason: '$actual is TypedData');
-      walk('$path/.buffer', expected.buffer, actual.buffer);
-      expect(expected.offsetInBytes, equals(actual.offsetInBytes),
-          reason: message(path, '.offsetInBytes'));
-      expect(expected.lengthInBytes, equals(actual.lengthInBytes),
-          reason: message(path, '.lengthInBytes'));
-      // And also fallback to elements check below.
-    }
-
-    if (expected is List) {
-      expect(actual, predicate((v) => v is List),
-          reason: message(path, '$actual is List'));
-      expect(actual.length, expected.length,
-          reason: message(path, 'different list lengths'));
-      for (var i = 0; i < expected.length; i++) {
-        walk('$path[$i]', expected[i], actual[i]);
-      }
-      return;
-    }
-
-    if (expected is Map) {
-      expect(actual, predicate((v) => v is Map),
-          reason: message(path, '$actual is Map'));
-      for (var key in expected.keys) {
-        if (!actual.containsKey(key)) {
-          expect(false, isTrue, reason: message(path, 'missing key "$key"'));
-        }
-        walk('$path["$key"]', expected[key], actual[key]);
-      }
-      for (var key in actual.keys) {
-        if (!expected.containsKey(key)) {
-          expect(false, isTrue, reason: message(path, 'extra key "$key"'));
-        }
-      }
-      return;
-    }
-
-    expect(false, isTrue, reason: 'Unhandled type: $expected');
-  }
-
-  walk('', expected, actual);
-}
-
-/**
- * Sanitizer which does nothing.
- */
-class NullTreeSanitizer implements NodeTreeSanitizer {
-  void sanitizeTree(Node node) {}
-}
-
-/**
- * Validate that two DOM trees are equivalent.
- */
-void validateNodeTree(Node a, Node b, [String path = '']) {
-  path = '${path}${a.runtimeType}';
-  expect(a.nodeType, b.nodeType, reason: '$path nodeTypes differ');
-  expect(a.nodeValue, b.nodeValue, reason: '$path nodeValues differ');
-  expect(a.text, b.text, reason: '$path texts differ');
-  expect(a.nodes.length, b.nodes.length, reason: '$path nodes.lengths differ');
-
-  if (a is Element) {
-    Element bE = b;
-    Element aE = a;
-
-    expect(aE.tagName, bE.tagName, reason: '$path tagNames differ');
-    expect(aE.attributes.length, bE.attributes.length,
-        reason: '$path attributes.lengths differ');
-    for (var key in aE.attributes.keys) {
-      expect(aE.attributes[key], bE.attributes[key],
-          reason: '$path attribute [$key] values differ');
-    }
-  }
-  for (var i = 0; i < a.nodes.length; ++i) {
-    validateNodeTree(a.nodes[i], b.nodes[i], '$path[$i].');
-  }
-}
-
-/**
- * Upgrade all custom elements in the subtree which have not been upgraded.
- *
- * This is needed to cover timing scenarios which the custom element polyfill
- * does not cover.
- */
-void upgradeCustomElements(Node node) {
-  if (js.context.hasProperty('CustomElements') &&
-      js.context['CustomElements'].hasProperty('upgradeAll')) {
-    js.context['CustomElements'].callMethod('upgradeAll', [node]);
-  }
-}
-
-/**
- * A future that completes once all custom elements in the initial HTML page
- * have been upgraded.
- *
- * This is needed because the native implementation can update the elements
- * while parsing the HTML document, but the custom element polyfill cannot,
- * so it completes this future once all elements are upgraded.
- */
-// TODO(jmesserly): rename to webComponentsReady to match the event?
-Future customElementsReady = () {
-  if (_isReady) return new Future.value();
-
-  // Not upgraded. Wait for the polyfill to fire the WebComponentsReady event.
-  // Note: we listen on document (not on document.body) to allow this polyfill
-  // to be loaded in the HEAD element.
-  return document.on['WebComponentsReady'].first;
-}();
-
-// Return true if we are using the polyfill and upgrade is complete, or if we
-// have native document.register and therefore the browser took care of it.
-// Otherwise return false, including the case where we can't find the polyfill.
-bool get _isReady {
-  // If we don't have dart:js, assume things are ready
-  if (js.context == null) return true;
-
-  var customElements = js.context['CustomElements'];
-  if (customElements == null) {
-    // Return true if native document.register, otherwise false.
-    // (Maybe the polyfill isn't loaded yet. Wait for it.)
-    return document.supportsRegisterElement;
-  }
-
-  return customElements['ready'] == true;
-}
-
-/**
- * *Note* this API is primarily intended for tests. In other code it is better
- * to write it in a style that works with or without the polyfill, rather than
- * using this method.
- *
- * Synchronously trigger evaluation of pending lifecycle events, which otherwise
- * need to wait for a [MutationObserver] to signal the changes in the polyfill.
- * This method can be used to resolve differences in timing between native and
- * polyfilled custom elements.
- */
-void customElementsTakeRecords([Node node]) {
-  var customElements = js.context['CustomElements'];
-  if (customElements == null) return;
-  customElements.callMethod('takeRecords', [node]);
-}
+/// The test runner for DDC does not handle tests that import files using
+/// relative imports that reach outside of the directory containing the test
+/// (i.e. "../" imports). Since tests both in this directory and in "custom/"
+/// use utils.dart, it needs to be accessible from both places.
+///
+/// We could have every test outside of "custom/" import "custom/utils.dart",
+/// but that feels weird since "utils.dart" doesn't have anything to do with
+/// custom elements.
+///
+/// Instead, it lives there, but is exported from here for the tests in this
+/// directory to import.
+// TODO(rnystrom): If the DDC test runner is fixed to use a different module
+// root that handles "../" imports, move "custom/utils.dart" to here.
+export 'custom/utils.dart';
diff --git a/tests/lib_2/lib_2.status b/tests/lib_2/lib_2.status
index afda8a1..6bcb0a9 100644
--- a/tests/lib_2/lib_2.status
+++ b/tests/lib_2/lib_2.status
@@ -2,6 +2,115 @@
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
 
+[ $arch == simarm64 ]
+convert/utf85_test: Skip # Pass, Slow Issue 20111.
+
+[ $arch == simarmv5te ]
+mirrors/mirrors_reader_test: Pass, Slow
+
+[ $mode == product ]
+developer/timeline_test: Skip # Not supported
+isolate/issue_24243_parent_isolate_test: Skip # Requires checked mode
+
+[ $runtime == chrome ]
+html/element_animate_test/timing_dict: RuntimeError # Issue 26730
+html/touchevent_test: Fail # Touch events are only supported on touch devices
+
+[ $runtime == drt ]
+html/webgl_extensions_test: Skip # webgl does not work properly on DRT, which is 'headless'.
+
+[ $runtime == ff ]
+convert/streamed_conversion_utf8_decode_test: Pass, Slow # Issue 12029
+mirrors/mirrors_reader_test: Timeout, Slow, RuntimeError # Issue 16589
+
+[ $runtime == ie11 ]
+html/audiobuffersourcenode_test/supported: Fail
+html/audiocontext_test/supported: Fail
+html/canvasrenderingcontext2d_test/arc: Pass, Fail # Pixel unexpected value. Please triage this failure.
+html/canvasrenderingcontext2d_test/drawImage_video_element: Fail # IE does not support drawImage w/ video element
+html/canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Fail # IE does not support drawImage w/ video element
+html/crypto_test/supported: Fail
+html/css_test/supportsPointConversions: Fail
+html/custom/document_register_type_extensions_test/single-parameter: Fail # Issue 13193.
+html/deferred_multi_app_htmltest: Skip # Times out on IE.  Issue 21537
+html/element_animate_test: Fail # Element.animate not supported on these browsers.
+html/element_test/click: Fail # IE does not support firing this event.
+html/event_test: RuntimeError # Issue 23437. Only three failures, but hard to break them out.
+html/fileapi_supported_test: Fail
+html/gamepad_test: Fail # IE does not support Navigator.getGamepads()
+html/history_hash_change_test: Fail
+html/indexeddb_5_test: Fail # Issue 12893
+html/input_element_date_test: Fail
+html/input_element_datetime_test: Fail
+html/input_element_month_test: Fail
+html/input_element_time_test: Fail
+html/input_element_week_test: Fail
+html/js_transferrables_test: RuntimeError # Issue 14246
+html/js_util_test/callConstructor: RuntimeError # Issue 26978
+html/localstorage_test: Pass, RuntimeError # Issue 22166
+html/media_stream_test: Pass, Fail
+html/mediasource_test: Pass, Fail # Windows 8: Supported: yes, functional: no
+html/no_linked_scripts_htmltest: Skip # Times out on IE.  Issue 21537
+html/notification_test: Fail # Notification not supported on IE
+html/postmessage_structured_test: Fail # Does not support the MessageEvent constructor.
+html/request_animation_frame_test: Skip # Times out. Issue 22167
+html/rtc_test: Fail
+html/scripts_htmltest: Skip # Times out on IE.  Issue 21537
+html/serialized_script_value_test: Fail
+html/shadow_dom_test: Fail
+html/speechrecognition_test: Fail
+html/storage_test: Pass, RuntimeError # Issue 22166
+html/svgelement_test: Fail
+html/text_event_test: RuntimeError # Issue 23437
+html/touchevent_test: Fail # IE does not support TouchEvents
+html/transferables_test: Pass, Fail # Issues 20659.
+html/transition_event_test: Skip # Times out. Issue 22167
+html/two_scripts_htmltest: Skip # Times out on IE.  Issue 21537
+html/webgl_1_test: Fail
+html/websocket_test: Fail # Issue 7875. Closed with "working as intended".
+html/websql_test: Fail
+html/wheelevent_test: RuntimeError # Issue 23437
+html/worker_test/functional: Pass, Fail # Issues 20659.
+html/xhr_test/json: Fail # IE10 returns string, not JSON object
+
+[ $runtime == safari ]
+html/audiobuffersourcenode_test/functional: RuntimeError
+html/indexeddb_1_test/functional: Skip # Times out. Issue 21433
+html/indexeddb_2_test: RuntimeError # Issue 21433
+html/indexeddb_3_test: Skip # Times out 1 out of 10.
+html/indexeddb_4_test: RuntimeError # Issue 21433
+html/indexeddb_5_test: RuntimeError # Issue 21433
+html/input_element_date_test: Fail
+html/input_element_datetime_test: Fail
+html/input_element_month_test: RuntimeError
+html/input_element_time_test: RuntimeError
+html/input_element_week_test: RuntimeError
+html/notification_test: Fail # Safari doesn't let us access the fields of the Notification to verify them.
+html/touchevent_test: Fail # Safari does not support TouchEvents
+
+[ $runtime == safarimobilesim ]
+html/element_offset_test/offset: RuntimeError # Issue 18573
+html/event_test: RuntimeError # Safarimobilesim does not support WheelEvent
+html/indexeddb_1_test/supported: Fail
+html/notification_test: RuntimeError # Issue 22869
+html/performance_api_test/supported: Fail
+html/wheelevent_test: RuntimeError # Safarimobilesim does not support WheelEvent
+html/xhr_test/json: Fail # Safari doesn't support JSON response type
+
+[ $csp ]
+isolate/browser/package_resolve_browser_hook_test: SkipByDesign # Test written in a way that violates CSP.
+isolate/deferred_in_isolate2_test: Skip # Issue 16898. Deferred loading does not work from an isolate in CSP-mode
+
+[ $hot_reload ]
+async/stream_periodic4_test: Pass, RuntimeError # Issue 30904
+async/timer_regress22626_test: Pass, RuntimeError # Timing dependent.
+
+[ $jscl ]
+isolate/spawn_uri_multi_test/none: RuntimeError # Issue 13544
+
+[ $strong ]
+mirrors/redirecting_factory_test: CompileTimeError # Issue 30855
+
 [ !$strong ]
 isolate/isolate_import_test/01: MissingCompileTimeError
 mirrors/top_level_accessors_test/01: MissingCompileTimeError
@@ -9,15 +118,22 @@
 typed_data/int32x4_static_test/01: MissingCompileTimeError
 typed_data/int32x4_static_test/02: MissingCompileTimeError
 
-[ !$strong && $compiler != dartdevc && $checked ]
+[ $compiler != dart2analyzer && $runtime != none && $checked && !$strong ]
+mirrors/redirecting_factory_different_type_test/02: RuntimeError
+
+[ $compiler != dartdevc && $checked && !$strong ]
 async/future_or_only_in_async_test/00: MissingCompileTimeError
 
-[ !$strong && !$checked]
-async/future_or_only_in_async_test/00: MissingCompileTimeError
-async/multiple_timer_test: Pass, Fail # Timing related
+[ $compiler == none && $mode == product ]
+mirrors/library_enumeration_deferred_loading_test: RuntimeError, OK # Deferred loaded eagerly
+mirrors/library_import_deferred_loading_test: RuntimeError, OK # Deferred loaded eagerly
+mirrors/load_library_test: RuntimeError, OK # Deferred loaded eagerly
 
-[ $strong ]
-mirrors/redirecting_factory_test: CompileTimeError # Issue 30855
+[ $compiler == none && !$checked ]
+mirrors/reflected_type_generics_test/02: Fail, OK # Type check for a bounded type argument.
+
+[ $runtime == chrome && $system == linux ]
+mirrors/native_class_test: Pass, Slow
 
 [ $runtime == chrome && $system == macos ]
 async/catch_errors11_test: Pass, Timeout # Issue 22696
@@ -32,70 +148,33 @@
 html/request_animation_frame_test: Skip # Times out. Issue 22167
 html/transition_event_test: Skip # Times out. Issue 22167
 
+[ !$checked && !$strong ]
+async/future_or_only_in_async_test/00: MissingCompileTimeError
+async/multiple_timer_test: Pass, Fail # Timing related
+
+[ ($compiler != precompiler || $runtime != dart_precompiled) && ($runtime != vm || $compiler != dartk && $compiler != none) ]
+isolate/vm_rehash_test: SkipByDesign
+
+[ $arch == simarm || $arch == simarmv5te || $arch == simarmv6 ]
+convert/utf85_test: Skip # Pass, Slow Issue 12644.
+
+[ $compiler == app_jit || $mode == product || $runtime != vm ]
+isolate/checked_test: Skip # Unsupported.
+
+[ $compiler != none || $runtime != vm ]
+isolate/package_config_test: SkipByDesign # Uses Isolate.packageConfig
+isolate/package_resolve_test: SkipByDesign # Uses Isolate.resolvePackageUri
+isolate/package_root_test: SkipByDesign # Uses Isolate.packageRoot
+isolate/scenarios/*: SkipByDesign # Use automatic package resolution, spawnFunction and .dart URIs.
+isolate/spawn_uri_fail_test: SkipByDesign # Uses dart:io.
+
+[ $runtime == chrome || $runtime == chromeOnAndroid || $runtime == drt ]
+html/webgl_1_test: Pass, Fail # Issue 8219
+
 [ $runtime == chrome || $runtime == ff ]
 async/slow_consumer2_test: SkipSlow # Times out. Issue 22050
 async/stream_timeout_test: SkipSlow # Times out. Issue 22050
 
-[ $hot_reload || $hot_reload_rollback ]
-async/stream_transformer_test: Pass, Fail # Closure identity
-isolate/function_send_test: Pass, Fail # Closure identity
-isolate/issue_21398_parent_isolate2_test: Crash # Requires deferred libraries
-isolate/message3_test/fun: Pass, Fail # Closure identity
-isolate/spawn_uri_nested_vm_test: Pass, Crash # Issue 28192
-mirrors/closurization_equivalence_test: SkipByDesign # Method equality
-mirrors/deferred_mirrors_metadata_test: Crash # Deferred loading
-mirrors/deferred_mirrors_metatarget_test: Crash # Deferred loading
-mirrors/deferred_mirrors_update_test: Crash # Deferred loading
-mirrors/library_enumeration_deferred_loading_test: Crash # Deferred loading
-mirrors/library_import_deferred_loading_test: Crash # Deferred loading
-mirrors/library_imports_deferred_test: Crash # Deferred loading
-mirrors/load_library_test: Crash # Deferred loading
-mirrors/typedef_deferred_library_test: Crash # Deferred loading
-isolate/deferred_in_isolate_test: Crash # Requires deferred libraries
-isolate/deferred_in_isolate2_test: Crash # Requires deferred libraries
-
-[ $runtime == ff ]
-convert/streamed_conversion_utf8_decode_test: Pass, Slow  # Issue 12029
-
-[ $runtime == safari || $runtime == safarimobilesim ]
-convert/json_test: Fail # https://bugs.webkit.org/show_bug.cgi?id=134920
-typed_data/float32x4_test: Fail, Pass # Safari has an optimization bug (nightlies are already fine).
-typed_data/int32x4_test: Fail, Pass # Safari has an optimization bug (nightlies are already fine).
-html/element_animate_test: Fail # Element.animate not supported on these browsers.
-html/canvasrenderingcontext2d_test/drawImage_video_element: Fail # Safari does not support drawImage w/ video element
-html/canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Fail # Safari does not support drawImage w/ video element
-html/element_test: Pass, Fail # Issue 21434
-html/fileapi_supported_test: Fail
-html/gamepad_test: Fail # Safari does not support Navigator.getGamepads()
-html/mediasource_test: Pass, Fail # MediaSource only available on Safari 8 desktop, we can't express that.
-html/media_stream_test: Pass, Fail
-html/rtc_test: Fail
-html/shadow_dom_test: Fail
-html/speechrecognition_test: Fail
-html/webgl_1_test: Pass, Fail # Issue 8219
-html/worker_api_test: Skip # Issue 13221
-
-[ ($runtime == safari && $builder_tag == mac10_7)|| $runtime == safarimobilesim ]
-typed_data/setRange_2_test: Fail # Safari doesn't fully implement spec for TypedArray.set
-typed_data/setRange_3_test: Fail # Safari doesn't fully implement spec for TypedArray.set
-typed_data/setRange_4_test: Fail # Safari doesn't fully implement spec for TypedArray.set
-
-[ $runtime == ff ]
-mirrors/mirrors_reader_test: Timeout, Slow, RuntimeError # Issue 16589
-
-[ $arch == simarmv5te ]
-mirrors/mirrors_reader_test: Pass, Slow
-
-[ $compiler == none && $mode == product ]
-mirrors/load_library_test: RuntimeError,OK # Deferred loaded eagerly
-mirrors/library_import_deferred_loading_test: RuntimeError,OK # Deferred loaded eagerly
-mirrors/library_enumeration_deferred_loading_test: RuntimeError,OK # Deferred loaded eagerly
-
-[ $runtime == vm || $runtime == flutter || $runtime == dart_precompiled ]
-isolate/browser/*: SkipByDesign  # Browser specific tests
-isolate/isolate_stress_test: Skip # Issue 12588: Uses dart:html. This should be able to pass when we have wrapper-less tests.
-isolate/stacktrace_message_test: RuntimeError # Fails to send stacktrace object.
-
 [ $runtime == dart_precompiled || $runtime == flutter ]
 isolate/count_test: Skip # Isolate.spawnUri
 isolate/cross_isolate_message_test: Skip # Isolate.spawnUri
@@ -131,132 +210,52 @@
 isolate/static_function_test: Skip # Isolate.spawnUri
 isolate/unresolved_ports_test: Skip # Isolate.spawnUri
 
-[ $runtime == chrome && $system == linux ]
-mirrors/native_class_test: Pass, Slow
+[ $runtime == dart_precompiled || $runtime == flutter || $runtime == vm ]
+isolate/browser/*: SkipByDesign # Browser specific tests
+isolate/isolate_stress_test: Skip # Issue 12588: Uses dart:html. This should be able to pass when we have wrapper-less tests.
+isolate/stacktrace_message_test: RuntimeError # Fails to send stacktrace object.
 
-[ $runtime == ie11 ]
+[ $runtime == safari || $runtime == safarimobilesim ]
+convert/json_test: Fail # https://bugs.webkit.org/show_bug.cgi?id=134920
+html/canvasrenderingcontext2d_test/drawImage_video_element: Fail # Safari does not support drawImage w/ video element
+html/canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Fail # Safari does not support drawImage w/ video element
 html/element_animate_test: Fail # Element.animate not supported on these browsers.
-html/canvasrenderingcontext2d_test/arc: Pass, Fail # Pixel unexpected value. Please triage this failure.
-html/canvasrenderingcontext2d_test/drawImage_video_element: Fail # IE does not support drawImage w/ video element
-html/canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Fail # IE does not support drawImage w/ video element
-html/crypto_test/supported: Fail
-html/css_test/supportsPointConversions: Fail
-html/custom/document_register_type_extensions_test/single-parameter: Fail # Issue 13193.
-html/deferred_multi_app_htmltest: Skip # Times out on IE.  Issue 21537
-html/event_test: RuntimeError # Issue 23437. Only three failures, but hard to break them out.
-html/element_test/click: Fail # IE does not support firing this event.
+html/element_test: Pass, Fail # Issue 21434
 html/fileapi_supported_test: Fail
-html/gamepad_test: Fail # IE does not support Navigator.getGamepads()
-html/history_hash_change_test: Fail
-html/indexeddb_5_test: Fail # Issue 12893
-html/input_element_date_test: Fail
-html/input_element_datetime_test: Fail
-html/input_element_month_test: Fail
-html/input_element_time_test: Fail
-html/input_element_week_test: Fail
-html/js_transferrables_test: RuntimeError # Issue 14246
-html/js_util_test/callConstructor: RuntimeError # Issue 26978
-html/localstorage_test: Pass, RuntimeError # Issue 22166
+html/gamepad_test: Fail # Safari does not support Navigator.getGamepads()
 html/media_stream_test: Pass, Fail
-html/mediasource_test: Pass, Fail # Windows 8: Supported: yes, functional: no
-html/no_linked_scripts_htmltest: Skip # Times out on IE.  Issue 21537
-html/notification_test: Fail # Notification not supported on IE
-html/postmessage_structured_test: Fail # Does not support the MessageEvent constructor.
-html/request_animation_frame_test: Skip # Times out. Issue 22167
+html/mediasource_test: Pass, Fail # MediaSource only available on Safari 8 desktop, we can't express that.
 html/rtc_test: Fail
-html/scripts_htmltest: Skip # Times out on IE.  Issue 21537
-html/serialized_script_value_test: Fail
 html/shadow_dom_test: Fail
 html/speechrecognition_test: Fail
-html/storage_test: Pass, RuntimeError # Issue 22166
-html/svgelement_test: Fail
-html/text_event_test: RuntimeError # Issue 23437
-html/transferables_test: Pass, Fail # Issues 20659.
-html/transition_event_test: Skip # Times out. Issue 22167
-html/touchevent_test: Fail # IE does not support TouchEvents
-html/two_scripts_htmltest: Skip # Times out on IE.  Issue 21537
-html/webgl_1_test: Fail
-html/websocket_test: Fail # Issue 7875. Closed with "working as intended".
-html/websql_test: Fail
-html/wheelevent_test: RuntimeError # Issue 23437
-html/audiobuffersourcenode_test/supported: Fail
-html/audiocontext_test/supported: Fail
-html/worker_test/functional: Pass, Fail # Issues 20659.
-html/xhr_test/json: Fail # IE10 returns string, not JSON object
-
-[ $hot_reload ]
-async/timer_regress22626_test: Pass, RuntimeError # Timing dependent.
-async/stream_periodic4_test: Pass, RuntimeError # Issue 30904
-
-[ $compiler == none && ! $checked ]
-mirrors/reflected_type_generics_test/02: Fail, Ok # Type check for a bounded type argument.
-
-[ $compiler != dart2analyzer && $runtime != none && !$strong && $checked ]
-mirrors/redirecting_factory_different_type_test/02: RuntimeError
-
-[ $runtime == safarimobilesim ]
-html/element_offset_test/offset: RuntimeError # Issue 18573
-html/event_test: RuntimeError # Safarimobilesim does not support WheelEvent
-html/indexeddb_1_test/supported: Fail
-html/performance_api_test/supported: Fail
-html/notification_test: RuntimeError # Issue 22869
-html/wheelevent_test: RuntimeError # Safarimobilesim does not support WheelEvent
-html/xhr_test/json: Fail # Safari doesn't support JSON response type
-
-[ $runtime == safari ]
-html/indexeddb_1_test/functional: Skip # Times out. Issue 21433
-html/indexeddb_2_test: RuntimeError # Issue 21433
-html/indexeddb_3_test: Skip # Times out 1 out of 10.
-html/indexeddb_4_test: RuntimeError # Issue 21433
-html/indexeddb_5_test: RuntimeError # Issue 21433
-html/input_element_month_test: RuntimeError
-html/input_element_time_test: RuntimeError
-html/input_element_week_test: RuntimeError
-html/input_element_date_test: Fail
-html/input_element_datetime_test: Fail
-html/notification_test: Fail # Safari doesn't let us access the fields of the Notification to verify them.
-html/touchevent_test: Fail # Safari does not support TouchEvents
-html/audiobuffersourcenode_test/functional: RuntimeError
-
-[ $runtime == chrome ]
-html/element_animate_test/timing_dict: RuntimeError # Issue 26730
-html/touchevent_test: Fail # Touch events are only supported on touch devices
-
-[$runtime == drt || $runtime == chrome || $runtime == chromeOnAndroid ]
 html/webgl_1_test: Pass, Fail # Issue 8219
+html/worker_api_test: Skip # Issue 13221
+typed_data/float32x4_test: Fail, Pass # Safari has an optimization bug (nightlies are already fine).
+typed_data/int32x4_test: Fail, Pass # Safari has an optimization bug (nightlies are already fine).
 
-[ $runtime == drt ]
-html/webgl_extensions_test: Skip # webgl does not work properly on DRT, which is 'headless'.
+[ $runtime == safarimobilesim || $builder_tag == mac10_7 && $runtime == safari ]
+typed_data/setRange_2_test: Fail # Safari doesn't fully implement spec for TypedArray.set
+typed_data/setRange_3_test: Fail # Safari doesn't fully implement spec for TypedArray.set
+typed_data/setRange_4_test: Fail # Safari doesn't fully implement spec for TypedArray.set
 
-[ $runtime != vm || $mode == product || $compiler == app_jit ]
-isolate/checked_test: Skip # Unsupported.
-
-[ $csp ]
-isolate/browser/package_resolve_browser_hook_test: SkipByDesign # Test written in a way that violates CSP.
-isolate/deferred_in_isolate2_test: Skip # Issue 16898. Deferred loading does not work from an isolate in CSP-mode
-
-[ $mode == product ]
-isolate/issue_24243_parent_isolate_test: Skip # Requires checked mode
-developer/timeline_test: Skip # Not supported
-
-[ $compiler != none || $runtime != vm ]
-isolate/package_root_test: SkipByDesign  # Uses Isolate.packageRoot
-isolate/package_config_test: SkipByDesign  # Uses Isolate.packageConfig
-isolate/package_resolve_test: SkipByDesign  # Uses Isolate.resolvePackageUri
-isolate/scenarios/*: SkipByDesign  # Use automatic package resolution, spawnFunction and .dart URIs.
-isolate/spawn_uri_fail_test: SkipByDesign  # Uses dart:io.
-
-[ (($compiler != none && $compiler != dartk || $runtime != vm) && ($compiler != precompiler || $runtime != dart_precompiled)) ]
-isolate/vm_rehash_test: SkipByDesign
-
-[ $jscl ]
-isolate/spawn_uri_multi_test/none: RuntimeError # Issue 13544
-
-[ $arch == simarm || $arch == simarmv6 || $arch == simarmv5te ]
-convert/utf85_test: Skip  # Pass, Slow Issue 12644.
-
-[ $arch == simarm64 ]
-convert/utf85_test: Skip # Pass, Slow Issue 20111.
-
-[ ($runtime == drt && $system == macos) || $system == windows ]
+[ $system == windows || $runtime == drt && $system == macos ]
 html/xhr_test/xhr: Skip # Times out.  Issue 21527
+
+[ $hot_reload || $hot_reload_rollback ]
+async/stream_transformer_test: Pass, Fail # Closure identity
+isolate/deferred_in_isolate2_test: Crash # Requires deferred libraries
+isolate/deferred_in_isolate_test: Crash # Requires deferred libraries
+isolate/function_send_test: Pass, Fail # Closure identity
+isolate/issue_21398_parent_isolate2_test: Crash # Requires deferred libraries
+isolate/message3_test/fun: Pass, Fail # Closure identity
+isolate/spawn_uri_nested_vm_test: Pass, Crash # Issue 28192
+mirrors/closurization_equivalence_test: SkipByDesign # Method equality
+mirrors/deferred_mirrors_metadata_test: Crash # Deferred loading
+mirrors/deferred_mirrors_metatarget_test: Crash # Deferred loading
+mirrors/deferred_mirrors_update_test: Crash # Deferred loading
+mirrors/library_enumeration_deferred_loading_test: Crash # Deferred loading
+mirrors/library_import_deferred_loading_test: Crash # Deferred loading
+mirrors/library_imports_deferred_test: Crash # Deferred loading
+mirrors/load_library_test: Crash # Deferred loading
+mirrors/typedef_deferred_library_test: Crash # Deferred loading
+
diff --git a/tests/lib_2/lib_2_analyzer.status b/tests/lib_2/lib_2_analyzer.status
index bb71b64..761ea22 100644
--- a/tests/lib_2/lib_2_analyzer.status
+++ b/tests/lib_2/lib_2_analyzer.status
@@ -4,34 +4,34 @@
 
 [ $compiler == dart2analyzer ]
 html/debugger_test: CompileTimeError # Issue 28969
+html/js_function_getter_trust_types_test: Skip # dart2js specific flags.
 html/js_typed_interop_default_arg_test/default_value: MissingCompileTimeError # Issue #25759
-mirrors/deferred_type_test: StaticWarning, OK # Deliberately refers to a deferred type in a declaration.
 mirrors/deferred_mirrors_metadata_test: Fail # Issue 17522
+mirrors/deferred_type_test: StaticWarning, OK # Deliberately refers to a deferred type in a declaration.
 mirrors/generic_f_bounded_mixin_application_test: StaticWarning # Test Issue
 mirrors/mirrors_nsm_mismatch_test: StaticWarning, OK
-mirrors/mirrors_nsm_test/dart2js: StaticWarning, OK
 mirrors/mirrors_nsm_test: StaticWarning, OK
-mirrors/repeated_private_anon_mixin_app_test: StaticWarning, OK # Intentional library name conflict.
+mirrors/mirrors_nsm_test/dart2js: StaticWarning, OK
 mirrors/redirecting_factory_test/01: StaticWarning # test issue X, The return type 'Class<T2, T1>' of the redirected constructor is not assignable to 'Class<T1, T2>'
 mirrors/redirecting_factory_test/none: StaticWarning # test issue X, The return type 'Class<T2, T1>' of the redirected constructor is not assignable to 'Class<T1, T2>
-html/js_function_getter_trust_types_test: skip # dart2js specific flags.
+mirrors/repeated_private_anon_mixin_app_test: StaticWarning, OK # Intentional library name conflict.
 
 [ $compiler == dart2analyzer && $strong ]
 html/transferables_test: CompileTimeError # Issue 30975
-mirrors/deferred_type_test: CompileTimeError, OK # Deliberately refers to a deferred type in a declaration.
 mirrors/deferred_mirrors_metadata_test: StaticWarning # Issue 28969
+mirrors/deferred_type_test: CompileTimeError, OK # Deliberately refers to a deferred type in a declaration.
 mirrors/generic_f_bounded_mixin_application_test: CompileTimeError
 mirrors/mirrors_nsm_mismatch_test: CompileTimeError, OK
-mirrors/mirrors_nsm_test/dart2js: CompileTimeError, OK
 mirrors/mirrors_nsm_test: CompileTimeError, OK
+mirrors/mirrors_nsm_test/dart2js: CompileTimeError, OK
 mirrors/relation_subclass_test: CompileTimeError, OK
 mirrors/repeated_private_anon_mixin_app_test: CompileTimeError, OK # Intentional library name conflict.
 
 [ $compiler == dart2analyzer && !$strong ]
 html/custom/element_upgrade_failure_test: MissingCompileTimeError
+mirrors/generic_bounded_by_type_parameter_test/02: MissingCompileTimeError
 mirrors/generic_bounded_test/01: MissingCompileTimeError
 mirrors/generic_bounded_test/02: MissingCompileTimeError
-mirrors/generic_bounded_by_type_parameter_test/02: MissingCompileTimeError
 mirrors/generic_interface_test/01: MissingCompileTimeError
 mirrors/redirecting_factory_different_type_test/01: MissingCompileTimeError
 mirrors/reflect_class_test/01: MissingCompileTimeError
@@ -43,3 +43,4 @@
 mirrors/reflected_type_test/02: MissingCompileTimeError
 mirrors/reflected_type_test/03: MissingCompileTimeError
 mirrors/regress_16321_test/01: MissingCompileTimeError
+
diff --git a/tests/lib_2/lib_2_dart2js.status b/tests/lib_2/lib_2_dart2js.status
index 0d8a1a0..4c03b62 100644
--- a/tests/lib_2/lib_2_dart2js.status
+++ b/tests/lib_2/lib_2_dart2js.status
@@ -2,6 +2,212 @@
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
 
+[ $compiler == dart2js ]
+async/future_or_bad_type_test: MissingCompileTimeError
+async/future_or_strong_test: RuntimeError
+convert/base64_test/01: Fail, OK # Uses bit-wise operations to detect invalid values. Some large invalid values accepted by dart2js.
+convert/chunked_conversion_utf88_test: Slow, Pass
+convert/utf85_test: Slow, Pass
+developer/timeline_test: Skip # Not supported
+html/custom/document_register_type_extensions_test/construction: Pass, Timeout # Roll 50 failure
+html/custom/document_register_type_extensions_test/registration: Pass, Timeout # Roll 50 failure
+html/custom/element_upgrade_failure_test: MissingCompileTimeError
+html/custom/entered_left_view_test/shadow_dom: Pass, Timeout # Roll 50 failure
+html/custom_elements_test: Pass, Timeout # Issue 26789
+html/debugger_test: CompileTimeError # Issue 30900
+html/fileapi_directory_reader_test: Pass, Timeout # Roll 50 failure
+html/fileapi_directory_test: Pass, Timeout # Roll 50 failure
+html/fileapi_entry_test: Pass, Timeout # Roll 50 failure
+html/fileapi_file_entry_test: Pass, Timeout # Roll 50 failure
+html/fileapi_file_test: Pass, Timeout # Roll 50 failure
+html/indexeddb_1_test/functional: Pass, Timeout # Roll 50 failure
+html/indexeddb_2_test: Pass, Timeout # Roll 50 failure
+html/indexeddb_3_test: Pass, Timeout # Roll 50 failure
+html/indexeddb_4_test: Pass, Timeout # Roll 50 failure
+html/indexeddb_5_test: Pass, Timeout # Roll 50 failure
+html/js_typed_interop_default_arg_test/default_value: MissingCompileTimeError # Issue #25759
+html/js_typed_interop_side_cast_exp_test: Pass, RuntimeError # Roll 50 failure
+html/mirrors_js_typed_interop_test: Pass, Slow
+html/svgelement_test/PathElement: Pass, RuntimeError # Roll 50 failure
+html/websql_test: Pass, Timeout # Roll 50 failure
+html/wrapping_collections_test: SkipByDesign # Testing an issue that is only relevant to Dartium
+html/xhr_test/xhr: Pass, RuntimeError # Roll 50 failure
+isolate/browser/issue_12474_test: CompileTimeError # Issue 22529
+isolate/enum_const_test/02: RuntimeError # Issue 21817
+isolate/error_at_spawnuri_test: SkipByDesign # Test uses a ".dart" URI.
+isolate/error_exit_at_spawnuri_test: SkipByDesign # Test uses a ".dart" URI.
+isolate/exit_at_spawnuri_test: SkipByDesign # Test uses a ".dart" URI.
+isolate/function_send1_test: SkipByDesign # Test uses a ".dart" URI.
+isolate/issue_21398_parent_isolate1_test: SkipByDesign # Test uses a ".dart" URI.
+isolate/issue_21398_parent_isolate2_test: SkipByDesign # Test uses a ".dart" URI.
+isolate/issue_21398_parent_isolate_test: SkipByDesign # Test uses a ".dart" URI.
+isolate/issue_24243_parent_isolate_test: SkipByDesign # Test uses a ".dart" URI.
+isolate/kill_self_synchronously_test: SkipByDesign #  Unsupported operation: Platform._resolvedExecutable
+isolate/message3_test/constInstance: RuntimeError # Issue 21817
+isolate/message3_test/constList: RuntimeError # Issue 21817
+isolate/message3_test/constList_identical: RuntimeError # Issue 21817
+isolate/message3_test/constMap: RuntimeError # Issue 21817
+isolate/non_fatal_exception_in_timer_callback_test: Skip # Issue 23876
+isolate/spawn_uri_exported_main_test: SkipByDesign # Test uses a ".dart" URI.
+isolate/spawn_uri_nested_vm_test: SkipByDesign # Test uses a ".dart" URI.
+isolate/spawn_uri_vm_test: SkipByDesign # Test uses a ".dart" URI.
+isolate/stacktrace_message_test: RuntimeError # Fails to send stacktrace object.
+math/double_pow_test: RuntimeError
+math/low_test: RuntimeError
+math/random_big_test: RuntimeError # Using bigint seeds for random.
+mirrors/*: SkipByDesign # Mirrors not supported on web in Dart 2.0.
+mirrors/private_types_test: RuntimeError # Issue 6490
+mirrors/raw_type_test/01: RuntimeError # Issue 6490
+mirrors/redirecting_factory_test/02: RuntimeError # Issue 6490
+mirrors/redirecting_factory_test/none: RuntimeError # Issue 6490
+mirrors/reflected_type_function_type_test: RuntimeError # Issue 12607
+mirrors/reflected_type_generics_test/01: Fail # Issues in reflecting generic typedefs.
+mirrors/reflected_type_generics_test/02: Fail # Issues in reflecting bounded type variables.
+mirrors/reflected_type_generics_test/03: Fail # Issues in reflecting generic typedefs.
+mirrors/reflected_type_generics_test/04: Fail # Issues in reflecting bounded type variables.
+mirrors/reflected_type_generics_test/05: Fail # Issues in reflecting generic typedefs.
+mirrors/reflected_type_generics_test/06: Fail # Issues in reflecting bounded type variables.
+mirrors/reflected_type_special_types_test: RuntimeError # Issue 12607
+mirrors/reflected_type_typedefs_test: RuntimeError # Issue 12607
+mirrors/reflected_type_typevars_test: RuntimeError # Issue 12607
+profiler/metrics_num_test: Skip # Because of an int / double type test.
+typed_data/int32x4_arithmetic_test/int64: RuntimeError # Issue 1533
+typed_data/int64_list_load_store_test: RuntimeError # Issue 10275
+typed_data/typed_data_hierarchy_int64_test: RuntimeError # Issue 10275
+
+[ $compiler != dart2js ]
+async/dart2js_uncaught_error_test: Skip # JS-integration only test
+
+[ $compiler == dart2js && $runtime == chrome ]
+async/slow_consumer2_test: SkipSlow # Times out. Issue 22050
+convert/streamed_conversion_json_utf8_decode_test: SkipSlow # Times out. Issue 22050
+convert/streamed_conversion_json_utf8_encode_test: SkipSlow # Times out. Issue 22050
+convert/streamed_conversion_utf8_decode_test: SkipSlow # Times out. Issue 22050
+html/element_classes_test: RuntimeError # Issue 30291
+html/element_types_keygen_test: RuntimeError # Issue 29055
+html/fileapi_directory_test: Fail # TODO(dart2js-team): Please triage this failure.
+html/fileapi_entry_test: Pass, Fail # TODO(dart2js-team): Please triage this failure.
+html/fileapi_file_test: Fail # TODO(dart2js-team): Please triage this failure.
+html/media_stream_test: RuntimeError # Please triage.
+html/messageevent_test: RuntimeError # Please triage this error. New in Chrome 62.
+html/serialized_script_value_test: RuntimeError # Please triage this error. New in Chrome 62.
+html/speechrecognition_test: RuntimeError # Please triage.
+isolate/function_send_test: Skip # Crashes Chrome 62: https://bugs.chromium.org/p/chromium/issues/detail?id=775506
+isolate/kill_self_synchronously_test: RuntimeError
+
+[ $compiler == dart2js && $runtime == chromeOnAndroid ]
+html/audiobuffersourcenode_test/supported: Fail # TODO(dart2js-team): Please triage this failure.
+html/audiocontext_test/supported: RuntimeError # TODO(dart2js-team): Please triage this failure.
+html/canvasrenderingcontext2d_test/drawImage_video_element: Fail # TODO(dart2js-team): Please triage this failure.
+html/canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Fail # TODO(dart2js-team): Please triage this failure.
+html/canvasrenderingcontext2d_test/fillText: Fail # TODO(dart2js-team): Please triage this failure.
+html/crypto_test/functional: Pass, Slow # TODO(dart2js-team): Please triage this failure.
+html/element_types_datalist_test: Fail # TODO(dart2js-team): Please triage this failure.
+html/input_element_datetime_test: Pass, Slow # TODO(dart2js-team): Please triage this failure.
+html/input_element_week_test: Fail # TODO(dart2js-team): Please triage this failure.
+html/media_stream_test: Fail # TODO(dart2js-team): Please triage this failure.
+html/rtc_test: Fail # TODO(dart2js-team): Please triage this failure.
+html/speechrecognition_test: Fail # TODO(dart2js-team): Please triage this failure.
+html/xhr_test/json: Fail # TODO(dart2js-team): Please triage this failure.
+isolate/mandel_isolate_test: Pass, Timeout # TODO(kasperl): Please triage.
+isolate/unresolved_ports_test: Pass, Timeout # Issue 15610
+typed_data/setRange_2_test: RuntimeError # TODO(dart2js-team): Please triage this failure.
+typed_data/setRange_3_test: RuntimeError # TODO(dart2js-team): Please triage this failure.
+
+[ $compiler == dart2js && $runtime != d8 ]
+isolate/error_at_spawn_test: Skip # Issue 23876
+isolate/error_exit_at_spawn_test: Skip # Issue 23876
+isolate/exit_at_spawn_test: Skip # Issue 23876
+isolate/message4_test: Skip # Issue 30247
+
+[ $compiler == dart2js && $runtime != d8 && $runtime != jsshell ]
+html/fontface_loaded_test: RuntimeError
+html/html_mock_test: RuntimeError # Issue 31038
+html/input_element_attributes_test: RuntimeError
+html/interactive_media_test: RuntimeError
+html/js_extend_class_test: RuntimeError
+html/js_interop_constructor_name_error1_test: Fail # Issue 26838
+html/js_interop_constructor_name_error2_test: Fail # Issue 26838
+
+[ $compiler == dart2js && $runtime == drt ]
+html/request_animation_frame_test: Skip # Async test hangs.
+html/speechrecognition_test: RuntimeError # Please triage.
+html/svg_test: RuntimeError # Please triage.
+math/math2_test: RuntimeError
+math/math_test: RuntimeError
+
+[ $compiler == dart2js && $runtime == drt && !$checked ]
+html/audiocontext_test/functional: Pass, Fail
+
+[ $compiler == dart2js && $runtime == drt && $csp ]
+html/canvas_pixel_array_type_alias_test: RuntimeError
+html/js_browser_test: RuntimeError
+html/js_caching_test: RuntimeError
+html/js_context_test: RuntimeError
+html/js_dart_functions_test: RuntimeError
+html/js_dart_js_test: RuntimeError
+html/js_identity_test: RuntimeError
+html/js_jsarray_test: RuntimeError
+html/js_jsfunc_callmethod_test: RuntimeError
+html/js_jsify_test: RuntimeError
+html/js_jsobject_test: RuntimeError
+html/js_methods_test: RuntimeError
+html/js_transferrables_test: RuntimeError
+html/js_typed_interop_lazy_test/none: RuntimeError
+html/js_typed_interop_rename_static_test: RuntimeError
+
+[ $compiler == dart2js && $runtime == ff ]
+async/slow_consumer2_test: SkipSlow # Times out. Issue 22050
+convert/streamed_conversion_json_utf8_decode_test: SkipSlow # Times out. Issue 22050
+convert/streamed_conversion_json_utf8_encode_test: SkipSlow # Times out. Issue 22050
+convert/streamed_conversion_utf8_decode_test: SkipSlow # Times out. Issue 22050
+html/custom/attribute_changed_callback_test: Skip # Times out
+html/custom/constructor_calls_created_synchronously_test: Pass, Timeout
+html/custom/created_callback_test: Skip # Times out
+html/custom/document_register_basic_test: Skip # Times out, or unittest times out
+html/dart_object_local_storage_test: Skip # sessionStorage NS_ERROR_DOM_NOT_SUPPORTED_ERR
+html/element_animate_test/timing_dict: RuntimeError # Issue 26730
+html/element_classes_test: RuntimeError # Issue 27535
+html/element_types_content_test: Pass, RuntimeError # Issue 28983
+html/element_types_content_test: RuntimeError # Issue 29922
+html/element_types_keygen_test: RuntimeError # Issue 29922
+html/element_types_keygen_test: Fail
+html/element_types_shadow_test: RuntimeError # Issue 29922
+html/element_types_shadow_test: Pass, RuntimeError # Issue 28983
+html/fileapi_supported_throws_test: Fail
+html/history_test/history: Skip # Issue 22050
+html/input_element_datetime_test: Fail
+html/input_element_month_test: Fail
+html/input_element_week_test: Fail
+html/media_stream_test: Fail
+html/messageevent_test: Pass, RuntimeError # Issue 28983
+html/request_animation_frame_test: Skip # Async test hangs.
+html/serialized_script_value_test: Pass, RuntimeError # Issue 28983
+html/shadow_dom_test: Fail
+html/speechrecognition_test: RuntimeError # Please triage.
+html/text_event_test: Fail # Issue 17893
+html/touchevent_test: Fail
+html/webgl_1_test: Pass, Fail # Issue 8219
+html/websql_test: Fail
+html/xhr_test/xhr: Pass, Fail # Issue 11602
+isolate/kill_self_synchronously_test: RuntimeError
+
+[ $compiler == dart2js && $runtime == ie11 ]
+html/element_types_content_test: RuntimeError # Issue 29922
+html/element_types_datalist_test: RuntimeError # Issue 29922
+html/element_types_details_test: RuntimeError # Issue 29922
+html/element_types_embed_test: RuntimeError # Issue 29922
+html/element_types_keygen_test: RuntimeError # Issue 29922
+html/element_types_meter_test: RuntimeError # Issue 29922
+html/element_types_object_test: RuntimeError # Issue 29922
+html/element_types_output_test: RuntimeError # Issue 29922
+html/element_types_progress_test: RuntimeError # Issue 29922
+html/element_types_shadow_test: RuntimeError # Issue 29922
+html/element_types_template_test: RuntimeError # Issue 29922
+html/element_types_track_test: RuntimeError # Issue 29922
+math/math2_test: RuntimeError
+math/math_test: RuntimeError
+
 [ $compiler == dart2js && $runtime == jsshell ]
 async/catch_errors12_test: Fail # Timer interface not supported: Issue 7728.
 async/catch_errors13_test: Fail # Timer interface not supported: Issue 7728.
@@ -15,11 +221,11 @@
 async/catch_errors8_test: Fail # Timer interface not supported: Issue 7728.
 async/future_constructor2_test: Fail # Timer interface not supported: Issue 7728.
 async/future_test: RuntimeError # Timer interface not supported; Issue 7728.
-async/multiple_timer_test: RuntimeError,OK # Needs Timer to run.
+async/multiple_timer_test: RuntimeError, OK # Needs Timer to run.
 async/run_zoned7_test: RuntimeError # Timer interface not supported: Issue 7728.
 async/run_zoned8_test: Fail # Timer interface not supported: Issue 7728.
 async/schedule_microtask3_test: RuntimeError
-async/schedule_microtask_test: Fail  # Preamble file does not correctly implement scheduleImmediate.
+async/schedule_microtask_test: Fail # Preamble file does not correctly implement scheduleImmediate.
 async/slow_consumer2_test: RuntimeError # Timer interface not supported; Issue 7728.
 async/slow_consumer3_test: RuntimeError # Timer interface not supported; Issue 7728.
 async/slow_consumer_test: RuntimeError # Timer interface not supported; Issue 7728.
@@ -48,174 +254,12 @@
 async/zone_create_periodic_timer_test: RuntimeError # Timer interface not supported: Issue 7728.
 async/zone_create_timer2_test: RuntimeError # Timer interface not supported: Issue 7728.
 async/zone_empty_description2_test: RuntimeError # Timer interface not supported: Issue 7728.
-isolate/pause_test: Fail, OK  # non-zero timer not supported.
+isolate/pause_test: Fail, OK # non-zero timer not supported.
 isolate/timer_isolate_test: Fail, OK # Needs Timer to run.
 
-[ $compiler == dart2js ]
-async/future_or_bad_type_test: MissingCompileTimeError
-async/future_or_strong_test: RuntimeError
-convert/base64_test/01: Fail, OK # Uses bit-wise operations to detect invalid values. Some large invalid values accepted by dart2js.
-convert/chunked_conversion_utf88_test: Slow, Pass
-convert/utf85_test: Slow, Pass
-developer/timeline_test: Skip # Not supported
-html/custom/document_register_type_extensions_test/construction: Pass, Timeout # Roll 50 failure
-html/custom/document_register_type_extensions_test/registration: Pass, Timeout # Roll 50 failure
-html/custom/element_upgrade_failure_test: MissingCompileTimeError
-html/custom/entered_left_view_test/shadow_dom: Pass, Timeout # Roll 50 failure
-html/custom_elements_test: Pass, Timeout # Issue 26789
-html/debugger_test: CompileTimeError # Issue 30900
-html/fileapi_directory_reader_test: Pass, Timeout # Roll 50 failure
-html/fileapi_entry_test: Pass, Timeout # Roll 50 failure
-html/fileapi_file_entry_test: Pass, Timeout # Roll 50 failure
-html/fileapi_directory_test: Pass, Timeout # Roll 50 failure
-html/fileapi_file_test: Pass, Timeout # Roll 50 failure
-html/indexeddb_1_test/functional: Pass, Timeout # Roll 50 failure
-html/indexeddb_2_test: Pass, Timeout # Roll 50 failure
-html/indexeddb_3_test: Pass, Timeout # Roll 50 failure
-html/indexeddb_4_test: Pass, Timeout # Roll 50 failure
-html/indexeddb_5_test: Pass, Timeout # Roll 50 failure
-html/js_typed_interop_default_arg_test/default_value: MissingCompileTimeError # Issue #25759
-html/js_typed_interop_side_cast_exp_test: Pass, RuntimeError # Roll 50 failure
-html/mirrors_js_typed_interop_test: Pass, Slow
-html/svgelement_test/PathElement: Pass, RuntimeError # Roll 50 failure
-html/wrapping_collections_test: SkipByDesign # Testing an issue that is only relevant to Dartium
-html/websql_test: Pass, Timeout # Roll 50 failure
-html/xhr_test/xhr: Pass, RuntimeError # Roll 50 failure
-isolate/browser/issue_12474_test: CompileTimeError # Issue 22529
-isolate/enum_const_test/02: RuntimeError # Issue 21817
-isolate/error_at_spawnuri_test: SkipByDesign  # Test uses a ".dart" URI.
-isolate/error_exit_at_spawnuri_test: SkipByDesign  # Test uses a ".dart" URI.
-isolate/exit_at_spawnuri_test: SkipByDesign  # Test uses a ".dart" URI.
-isolate/function_send1_test: SkipByDesign   # Test uses a ".dart" URI.
-isolate/issue_21398_parent_isolate1_test: SkipByDesign # Test uses a ".dart" URI.
-isolate/issue_21398_parent_isolate2_test: SkipByDesign # Test uses a ".dart" URI.
-isolate/issue_21398_parent_isolate_test: SkipByDesign # Test uses a ".dart" URI.
-isolate/issue_24243_parent_isolate_test: SkipByDesign # Test uses a ".dart" URI.
-isolate/kill_self_synchronously_test: SkipByDesign #  Unsupported operation: Platform._resolvedExecutable
-isolate/message3_test/constInstance: RuntimeError # Issue 21817
-isolate/message3_test/constList: RuntimeError # Issue 21817
-isolate/message3_test/constList_identical: RuntimeError # Issue 21817
-isolate/message3_test/constMap: RuntimeError  # Issue 21817
-isolate/non_fatal_exception_in_timer_callback_test: Skip # Issue 23876
-isolate/spawn_uri_exported_main_test: SkipByDesign # Test uses a ".dart" URI.
-isolate/spawn_uri_nested_vm_test: SkipByDesign # Test uses a ".dart" URI.
-isolate/spawn_uri_vm_test: SkipByDesign # Test uses a ".dart" URI.
-math/double_pow_test: RuntimeError
-math/low_test: RuntimeError
-math/random_big_test: RuntimeError  # Using bigint seeds for random.
-mirrors/*: SkipByDesign # Mirrors not supported on web in Dart 2.0.
-mirrors/private_types_test: RuntimeError # Issue 6490
-mirrors/raw_type_test/01: RuntimeError # Issue 6490
-mirrors/redirecting_factory_test/02: RuntimeError # Issue 6490
-mirrors/redirecting_factory_test/none: RuntimeError # Issue 6490
-mirrors/reflected_type_function_type_test: RuntimeError # Issue 12607
-mirrors/reflected_type_generics_test/01: Fail # Issues in reflecting generic typedefs.
-mirrors/reflected_type_generics_test/02: Fail # Issues in reflecting bounded type variables.
-mirrors/reflected_type_generics_test/03: Fail # Issues in reflecting generic typedefs.
-mirrors/reflected_type_generics_test/04: Fail # Issues in reflecting bounded type variables.
-mirrors/reflected_type_generics_test/05: Fail # Issues in reflecting generic typedefs.
-mirrors/reflected_type_generics_test/06: Fail # Issues in reflecting bounded type variables.
-mirrors/reflected_type_special_types_test: RuntimeError # Issue 12607
-mirrors/reflected_type_typedefs_test: RuntimeError # Issue 12607
-mirrors/reflected_type_typevars_test: RuntimeError # Issue 12607
-profiler/metrics_num_test: Skip # Because of an int / double type test.
-typed_data/int32x4_arithmetic_test/int64: RuntimeError # Issue 1533
-typed_data/int64_list_load_store_test: RuntimeError # Issue 10275
-typed_data/typed_data_hierarchy_int64_test: RuntimeError # Issue 10275
-
-[ $compiler == dart2js ]
-isolate/stacktrace_message_test: RuntimeError # Fails to send stacktrace object.
-
-[ $compiler != dart2js ]
-async/dart2js_uncaught_error_test: Skip  # JS-integration only test
-
-[ $compiler == dart2js && $checked ]
-convert/utf85_test: Pass, Slow # Issue 12029.
-html/js_function_getter_trust_types_test: Skip # --trust-type-annotations incompatible with --checked
-
-[ $compiler == dart2js && $runtime == chromeOnAndroid ]
-html/audiocontext_test/supported: RuntimeError # TODO(dart2js-team): Please triage this failure.
-html/audiobuffersourcenode_test/supported: Fail # TODO(dart2js-team): Please triage this failure.
-html/canvasrenderingcontext2d_test/drawImage_video_element: Fail # TODO(dart2js-team): Please triage this failure.
-html/canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Fail # TODO(dart2js-team): Please triage this failure.
-html/canvasrenderingcontext2d_test/fillText: Fail # TODO(dart2js-team): Please triage this failure.
-html/crypto_test/functional: Pass, Slow # TODO(dart2js-team): Please triage this failure.
-html/element_types_datalist_test: Fail # TODO(dart2js-team): Please triage this failure.
-html/input_element_datetime_test: Pass, Slow # TODO(dart2js-team): Please triage this failure.
-html/input_element_week_test: Fail # TODO(dart2js-team): Please triage this failure.
-html/media_stream_test: Fail # TODO(dart2js-team): Please triage this failure.
-html/rtc_test: Fail # TODO(dart2js-team): Please triage this failure.
-html/speechrecognition_test: Fail # TODO(dart2js-team): Please triage this failure.
-html/xhr_test/json: Fail # TODO(dart2js-team): Please triage this failure.
-isolate/mandel_isolate_test: Pass, Timeout # TODO(kasperl): Please triage.
-isolate/unresolved_ports_test: Pass, Timeout # Issue 15610
-typed_data/setRange_2_test: RuntimeError # TODO(dart2js-team): Please triage this failure.
-typed_data/setRange_3_test: RuntimeError # TODO(dart2js-team): Please triage this failure.
-
-[ $compiler == dart2js && ( $runtime == chrome || $runtime == ff ) ]
-async/slow_consumer2_test: SkipSlow # Times out. Issue 22050
-convert/streamed_conversion_utf8_decode_test: SkipSlow # Times out. Issue 22050
-convert/streamed_conversion_json_utf8_encode_test: SkipSlow # Times out. Issue 22050
-convert/streamed_conversion_json_utf8_decode_test: SkipSlow # Times out. Issue 22050
-isolate/kill_self_synchronously_test: RuntimeError
-
-[ $compiler == dart2js && ( $runtime == d8 || $runtime == jsshell ) ]
-html/fileapi_entry_test: Fail, Pass # TODO(dart2js-team): Please triage this failure.
-html/fileapi_file_entry_test: Fail, Pass # TODO(dart2js-team): Please triage this failure.
-html/fileapi_directory_test: Fail, Pass # TODO(dart2js-team): Please triage this failure.
-html/fileapi_file_test: Fail, Pass # TODO(dart2js-team): Please triage this failure.
-isolate/browser/issue_12474_test: RuntimeError # packageRoot not implemented.
-
-[ $compiler == dart2js && $runtime != d8 ]
-isolate/error_exit_at_spawn_test: Skip # Issue 23876
-isolate/error_at_spawn_test: Skip # Issue 23876
-isolate/exit_at_spawn_test: Skip # Issue 23876
-isolate/message4_test: Skip # Issue 30247
-
-[ $compiler == dart2js && ($runtime != d8 && $runtime != jsshell) ]
-html/fontface_loaded_test: RuntimeError
-html/html_mock_test: RuntimeError # Issue 31038
-html/input_element_attributes_test: RuntimeError
-html/interactive_media_test: RuntimeError
-html/js_extend_class_test: RuntimeError
-html/js_interop_constructor_name_error1_test: Fail # Issue 26838
-html/js_interop_constructor_name_error2_test: Fail # Issue 26838
-
-[ $compiler == dart2js && ($runtime != jsshell) ]
+[ $compiler == dart2js && $runtime != jsshell ]
 async/timer_not_available_test: RuntimeError
 
-[ $compiler == dart2js && $fast_startup ]
-html/custom/constructor_calls_created_synchronously_test: Fail # mirrors not supported
-html/custom/document_register_basic_test: Pass, Slow, RuntimeError # Slow and sometimes times out
-html/custom/js_custom_test: Fail # mirrors not supported
-html/custom/mirrors_2_test: Fail # mirrors not supported
-html/custom/mirrors_test: Fail # mirrors not supported
-isolate/browser/compute_this_script_browser_test: Fail # mirrors not supported
-isolate/browser/typed_data_message_test: Fail # mirrors not supported
-isolate/count_test: Fail # mirrors not supported
-isolate/cross_isolate_message_test: Fail # mirrors not supported
-isolate/illegal_msg_mirror_test: Fail # mirrors not supported
-mirrors/regress_16321_test/01: Pass # expects failure, but if fails for the wrong reason
-
-[ $compiler == dart2js && $fast_startup && ! $browser ]
-isolate/isolate_current_test: Fail  # please triage
-
-[ $compiler == dart2js && $runtime == ie11 ]
-html/element_types_content_test: RuntimeError # Issue 29922
-html/element_types_datalist_test: RuntimeError # Issue 29922
-html/element_types_details_test: RuntimeError # Issue 29922
-html/element_types_embed_test: RuntimeError # Issue 29922
-html/element_types_keygen_test: RuntimeError # Issue 29922
-html/element_types_meter_test: RuntimeError # Issue 29922
-html/element_types_object_test: RuntimeError # Issue 29922
-html/element_types_output_test: RuntimeError # Issue 29922
-html/element_types_progress_test: RuntimeError # Issue 29922
-html/element_types_shadow_test: RuntimeError # Issue 29922
-html/element_types_template_test: RuntimeError # Issue 29922
-html/element_types_track_test: RuntimeError # Issue 29922
-math/math_test: RuntimeError
-math/math2_test: RuntimeError
-
 [ $compiler == dart2js && $runtime == safari ]
 html/audiobuffersourcenode_test: RuntimeError
 html/custom/attribute_changed_callback_test: Pass, Timeout
@@ -225,41 +269,41 @@
 html/element_types_content_test: RuntimeError # Issue 29922
 html/element_types_datalist_test: RuntimeError # Issue 29922
 html/element_types_shadow_test: RuntimeError # Issue 29922
+isolate/cross_isolate_message_test: Skip # Issue 12627
 isolate/message_test: Skip # Issue 12627
 
+[ $compiler == dart2js && $runtime == safarimobilesim ]
+isolate/compile_time_error_test/none: Pass, Slow
+
+[ $compiler == dart2js && $system == linux ]
+html/interactive_geolocation_test: Skip # Requires allowing geo location.
+
 [ $compiler == dart2js && $browser ]
 html/custom/created_callback_test: RuntimeError
+html/fontface_loaded_test: Fail # Support for promises.
 html/js_typed_interop_lazy_test/01: RuntimeError
 html/private_extension_member_test: RuntimeError
 isolate/isolate_stress_test: Pass, Slow # Issue 10697
 js/null_test: RuntimeError # Issue 30652
-html/fontface_loaded_test: Fail # Support for promises.
 
-[ $compiler == dart2js && $csp && $browser ]
+[ $compiler == dart2js && $browser && $csp ]
 html/custom/element_upgrade_test: Fail # Issue 17298
 html/custom/js_custom_test: Fail # Issue 14643
 
-[ $compiler == dart2js && ($runtime == safari || $runtime == safarimobilesim || $runtime == ff  || $ie) ]
-html/custom/entered_left_view_test/viewless_document: Fail # Polyfill does not handle this
-html/fontface_test: Fail # Fontface not supported on these.
+[ $compiler == dart2js && !$browser && $fast_startup ]
+isolate/isolate_current_test: Fail # please triage
 
-[ $compiler == dart2js && $fast_startup ]
-html/mirrors_js_typed_interop_test: Fail # mirrors not supported
+[ $compiler == dart2js && $checked ]
+convert/utf85_test: Pass, Slow # Issue 12029.
+html/js_function_getter_trust_types_test: Skip # --trust-type-annotations incompatible with --checked
 
-[ $compiler == dart2js && $runtime == ff ]
-html/custom/attribute_changed_callback_test: Skip # Times out
-html/custom/constructor_calls_created_synchronously_test: Pass, Timeout
-html/custom/created_callback_test: Skip # Times out
-html/element_animate_test/timing_dict: RuntimeError # Issue 26730
-html/element_types_content_test: RuntimeError # Issue 29922
-html/element_types_keygen_test: RuntimeError # Issue 29922
-html/element_types_shadow_test: RuntimeError # Issue 29922
-html/input_element_datetime_test: Fail
-html/input_element_month_test: Fail
-html/input_element_week_test: Fail
-
-[ $compiler == dart2js && $csp && ($runtime == drt || $runtime == safari || $runtime == ff || $runtime == chrome || $runtime == chromeOnAndroid) ]
+[ $compiler == dart2js && $csp && ($runtime == chrome || $runtime == chromeOnAndroid || $runtime == drt || $runtime == ff || $runtime == safari) ]
 html/event_customevent_test: SkipByDesign
+html/js_array_test: SkipByDesign
+html/js_dart_to_string_test: SkipByDesign
+html/js_function_getter_test: SkipByDesign
+html/js_function_getter_trust_types_test: SkipByDesign
+html/js_interop_1_test: SkipByDesign
 html/js_typed_interop_bind_this_test: SkipByDesign
 html/js_typed_interop_callable_object_test: SkipByDesign
 html/js_typed_interop_default_arg_test: SkipByDesign
@@ -271,11 +315,9 @@
 html/js_util_test: SkipByDesign
 html/mirrors_js_typed_interop_test: SkipByDesign
 html/postmessage_structured_test: SkipByDesign
-html/js_array_test: SkipByDesign
-html/js_function_getter_test: SkipByDesign
-html/js_dart_to_string_test: SkipByDesign
-html/js_interop_1_test: SkipByDesign
-html/js_function_getter_trust_types_test: SkipByDesign
+
+[ $compiler == dart2js && $dart2js_with_kernel ]
+async/zone_run_unary_test: Crash
 
 [ $compiler == dart2js && $dart2js_with_kernel && $host_checked ]
 html/async_spawnuri_test: Crash # 'file:*/pkg/compiler/lib/src/common_elements.dart': Failed assertion: line 405 pos 12: 'element.name == '=='': is not true.
@@ -357,15 +399,15 @@
 html/js_dart_to_string_test: Crash # 'file:*/pkg/compiler/lib/src/common_elements.dart': Failed assertion: line 405 pos 12: 'element.name == '=='': is not true.
 html/js_dispatch_property_test: CompileTimeError
 html/js_dispatch_property_test: Crash # FileSystemException(uri=file:///usr/local/google/home/efortuna/dart2/sdk/sdk/lib/_internal/dart2js_platform.dill; message=Error reading 'sdk/lib/_internal/dart2js_platform.dill'  (No such file or directory))
-html/js_function_getter_test/call getter as function: Crash # FileSystemException(uri=file:///usr/local/google/home/efortuna/dart2/sdk/sdk/lib/_internal/dart2js_platform.dill; message=Error reading 'sdk/lib/_internal/dart2js_platform.dill'  (No such file or directory))
 html/js_function_getter_test: CompileTimeError
+html/js_function_getter_test/call getter as function: Crash # FileSystemException(uri=file:///usr/local/google/home/efortuna/dart2/sdk/sdk/lib/_internal/dart2js_platform.dill; message=Error reading 'sdk/lib/_internal/dart2js_platform.dill'  (No such file or directory))
 html/js_function_getter_trust_types_test: Crash # FileSystemException(uri=file:///usr/local/google/home/efortuna/dart2/sdk/sdk/lib/_internal/dart2js_platform.dill; message=Error reading 'sdk/lib/_internal/dart2js_platform.dill'  (No such file or directory))
 html/js_function_getter_trust_types_test: CompileTimeError
 html/js_interop_1_test: Crash # 'file:*/pkg/compiler/lib/src/common_elements.dart': Failed assertion: line 405 pos 12: 'element.name == '=='': is not true.
-html/js_interop_constructor_name_method_test: Crash # FileSystemException(uri=file:///usr/local/google/home/efortuna/dart2/sdk/sdk/lib/_internal/dart2js_platform.dill; message=Error reading 'sdk/lib/_internal/dart2js_platform.dill'  (No such file or directory))
+html/js_interop_constructor_name_div_test: Crash # FileSystemException(uri=file:///usr/local/google/home/efortuna/dart2/sdk/sdk/lib/_internal/dart2js_platform.dill; message=Error reading 'sdk/lib/_internal/dart2js_platform.dill'  (No such file or directory))
 html/js_interop_constructor_name_error1_test: Crash # FileSystemException(uri=file:///usr/local/google/home/efortuna/dart2/sdk/sdk/lib/_internal/dart2js_platform.dill; message=Error reading 'sdk/lib/_internal/dart2js_platform.dill'  (No such file or directory))
 html/js_interop_constructor_name_error2_test: Crash # FileSystemException(uri=file:///usr/local/google/home/efortuna/dart2/sdk/sdk/lib/_internal/dart2js_platform.dill; message=Error reading 'sdk/lib/_internal/dart2js_platform.dill'  (No such file or directory))
-html/js_interop_constructor_name_div_test: Crash # FileSystemException(uri=file:///usr/local/google/home/efortuna/dart2/sdk/sdk/lib/_internal/dart2js_platform.dill; message=Error reading 'sdk/lib/_internal/dart2js_platform.dill'  (No such file or directory))
+html/js_interop_constructor_name_method_test: Crash # FileSystemException(uri=file:///usr/local/google/home/efortuna/dart2/sdk/sdk/lib/_internal/dart2js_platform.dill; message=Error reading 'sdk/lib/_internal/dart2js_platform.dill'  (No such file or directory))
 html/js_typed_interop_anonymous2_exp_test: Crash # 'file:*/pkg/compiler/lib/src/common_elements.dart': Failed assertion: line 405 pos 12: 'element.name == '=='': is not true.
 html/js_typed_interop_anonymous2_test: Crash # 'file:*/pkg/compiler/lib/src/common_elements.dart': Failed assertion: line 405 pos 12: 'element.name == '=='': is not true.
 html/js_typed_interop_anonymous_exp_test: Crash # 'file:*/pkg/compiler/lib/src/common_elements.dart': Failed assertion: line 405 pos 12: 'element.name == '=='': is not true.
@@ -457,23 +499,23 @@
 [ $compiler == dart2js && $dart2js_with_kernel && $minified ]
 html/async_spawnuri_test: RuntimeError
 html/async_test: RuntimeError
+html/audiobuffersourcenode_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
 html/audiobuffersourcenode_test/functional: RuntimeError
 html/audiobuffersourcenode_test/supported: RuntimeError
-html/audiobuffersourcenode_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
-html/audiocontext_test/supported: RuntimeError
 html/audiocontext_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
+html/audiocontext_test/supported: RuntimeError
 html/audioelement_test: RuntimeError
 html/b_element_test: RuntimeError
 html/blob_constructor_test: RuntimeError
+html/cache_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
 html/cache_test/ApplicationCache: RuntimeError
 html/cache_test/supported: RuntimeError
-html/cache_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
 html/callbacks_test: RuntimeError
+html/canvas_pixel_array_type_alias_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
 html/canvas_pixel_array_type_alias_test/basic: RuntimeError
 html/canvas_pixel_array_type_alias_test/typed_data: RuntimeError
 html/canvas_pixel_array_type_alias_test/types1: RuntimeError
 html/canvas_pixel_array_type_alias_test/types2: RuntimeError
-html/canvas_pixel_array_type_alias_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
 html/custom/mirrors_2_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
 html/custom/mirrors_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
 html/custom/regress_194523002_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
@@ -494,8 +536,9 @@
 html/element_classes_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
 html/element_constructor_1_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
 html/element_dimensions_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
-html/element_offset_test/offset: RuntimeError
 html/element_offset_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
+html/element_offset_test/offset: RuntimeError
+html/element_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
 html/element_test/ElementList: RuntimeError
 html/element_test/_ElementList: RuntimeError
 html/element_test/attributes: RuntimeError
@@ -508,19 +551,18 @@
 html/element_test/matches: RuntimeError
 html/element_test/position: RuntimeError
 html/element_test/queryAll: RuntimeError
-html/element_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
 html/element_types_constructors1_test: RuntimeError
-html/element_types_constructors2_test/constructors: RuntimeError
 html/element_types_constructors2_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
-html/element_types_constructors3_test/constructors: RuntimeError
+html/element_types_constructors2_test/constructors: RuntimeError
 html/element_types_constructors3_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
-html/element_types_constructors4_test/constructors: RuntimeError
+html/element_types_constructors3_test/constructors: RuntimeError
 html/element_types_constructors4_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
-html/element_types_constructors5_test/constructors: RuntimeError
+html/element_types_constructors4_test/constructors: RuntimeError
 html/element_types_constructors5_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
+html/element_types_constructors5_test/constructors: RuntimeError
+html/element_types_constructors6_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
 html/element_types_constructors6_test/constructors: RuntimeError
 html/element_types_constructors6_test/ul: RuntimeError
-html/element_types_constructors6_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
 html/element_types_content_test: RuntimeError # Issue 29922
 html/element_types_datalist_test: RuntimeError # Issue 29922
 html/element_types_details_test: RuntimeError # Issue 29922
@@ -537,35 +579,35 @@
 html/event_test: RuntimeError
 html/exceptions_test: RuntimeError
 html/fileapi_directory_reader_test: RuntimeError
+html/fileapi_directory_test: RuntimeError
 html/fileapi_entry_test: RuntimeError
 html/fileapi_file_entry_test: RuntimeError
-html/fileapi_directory_test: RuntimeError
 html/fileapi_file_test: RuntimeError
 html/fileapi_supported_test: RuntimeError
 html/filereader_test: RuntimeError
 html/filteredelementlist_test: RuntimeError
 html/fontface_loaded_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
 html/fontface_test: RuntimeError
+html/form_data_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
 html/form_data_test/functional: RuntimeError
 html/form_data_test/supported: RuntimeError
-html/form_data_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
 html/form_element_test: RuntimeError
 html/gamepad_test: RuntimeError
 html/geolocation_test: RuntimeError
 html/hidden_dom_1_test: RuntimeError
 html/hidden_dom_2_test: RuntimeError
+html/history_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
 html/history_test/history: RuntimeError
 html/history_test/supported_HashChangeEvent: RuntimeError
 html/history_test/supported_state: RuntimeError
-html/history_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
 html/htmlcollection_test: RuntimeError
 html/htmlelement_test: RuntimeError
 html/htmloptionscollection_test: RuntimeError
+html/indexeddb_1_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
 html/indexeddb_1_test/dynamic: RuntimeError
 html/indexeddb_1_test/functional: RuntimeError
 html/indexeddb_1_test/supported: RuntimeError
 html/indexeddb_1_test/typed: RuntimeError
-html/indexeddb_1_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
 html/indexeddb_2_test: RuntimeError
 html/indexeddb_3_test: RuntimeError
 html/indexeddb_4_test: RuntimeError
@@ -585,26 +627,26 @@
 html/instance_of_test: RuntimeError
 html/isolates_test: RuntimeError
 html/js_array_test: RuntimeError
+html/js_browser_test: RuntimeError
+html/js_caching_test: RuntimeError
+html/js_context_test: RuntimeError
+html/js_dart_functions_tests: RuntimeError
+html/js_dart_js_test: RuntimeError
 html/js_dart_to_string_test: RuntimeError
 html/js_dispatch_property_test: RuntimeError
-html/js_function_getter_test/call getter as function: RuntimeError
 html/js_function_getter_test: CompileTimeError
+html/js_function_getter_test/call getter as function: RuntimeError
 html/js_function_getter_trust_types_test: Crash # NoSuchMethodError: Class 'InterfaceType' has no instance getter 'isObject'.
 html/js_function_getter_trust_types_test: CompileTimeError
+html/js_identity_test: RuntimeError
 html/js_interop_1_test: RuntimeError
-html/js_interop_constructor_name_method_test: RuntimeError
 html/js_interop_constructor_name_div_test: RuntimeError
-html/js_dart_js_test: RuntimeError
-html/js_dart_functions_tests: RuntimeError
-html/js_caching_test: RuntimeError
+html/js_interop_constructor_name_method_test: RuntimeError
 html/js_javascript_function_test: RuntimeError
 html/js_jsarray_test: RuntimeError
 html/js_jsfunc_callmethod_test: RuntimeError
-html/js_browser_test: RuntimeError
 html/js_jsify_test: RuntimeError
 html/js_jsobject_test: RuntimeError
-html/js_context_test: RuntimeError
-html/js_identity_test: RuntimeError
 html/js_transferrables_test: RuntimeError
 html/js_typed_interop_anonymous2_exp_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
 html/js_typed_interop_anonymous2_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
@@ -666,12 +708,12 @@
 html/track_element_constructor_test: RuntimeError
 html/transferables_test: RuntimeError
 html/transition_event_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
+html/trusted_html_tree_sanitizer_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
 html/trusted_html_tree_sanitizer_test/not_create_document_fragment: RuntimeError
 html/trusted_html_tree_sanitizer_test/untrusted: RuntimeError
-html/trusted_html_tree_sanitizer_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
+html/typed_arrays_1_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
 html/typed_arrays_1_test/arrays: RuntimeError
 html/typed_arrays_1_test/supported: RuntimeError
-html/typed_arrays_1_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
 html/typed_arrays_2_test: RuntimeError
 html/typed_arrays_3_test: RuntimeError
 html/typed_arrays_4_test: RuntimeError
@@ -693,79 +735,18 @@
 html/window_mangling_test: RuntimeError
 html/window_nosuchmethod_test: RuntimeError
 
-[ $compiler == dart2js && $runtime == drt && $csp ]
-html/canvas_pixel_array_type_alias_test: RuntimeError
-html/js_browser_test: RuntimeError
-html/js_caching_test: RuntimeError
-html/js_context_test: RuntimeError
-html/js_dart_functions_test: RuntimeError
-html/js_dart_js_test: RuntimeError
-html/js_jsarray_test: RuntimeError
-html/js_jsfunc_callmethod_test: RuntimeError
-html/js_jsify_test: RuntimeError
-html/js_identity_test: RuntimeError
-html/js_methods_test: RuntimeError
-html/js_jsobject_test: RuntimeError
-html/js_transferrables_test: RuntimeError
-html/js_typed_interop_rename_static_test: RuntimeError
-html/js_typed_interop_lazy_test/none: RuntimeError
-
-[ $compiler == dart2js && $runtime == chrome ]
-async/slow_consumer2_test: SkipSlow # Times out. Issue 22050
-convert/streamed_conversion_json_utf8_decode_test: SkipSlow # Times out. Issue 22050
-convert/streamed_conversion_json_utf8_encode_test: SkipSlow # Times out. Issue 22050
-convert/streamed_conversion_utf8_decode_test: SkipSlow # Times out. Issue 22050
-html/element_classes_test: RuntimeError # Issue 30291
-html/element_types_keygen_test: RuntimeError # Issue 29055
-html/media_stream_test: RuntimeError # Please triage.
-html/speechrecognition_test: RuntimeError # Please triage.
-isolate/kill_self_synchronously_test: RuntimeError
-html/fileapi_entry_test: Pass, Fail # TODO(dart2js-team): Please triage this failure.
-html/fileapi_directory_test: Fail # TODO(dart2js-team): Please triage this failure.
-html/fileapi_file_test: Fail # TODO(dart2js-team): Please triage this failure.
-html/messageevent_test: RuntimeError # Please triage this error. New in Chrome 62.
-html/serialized_script_value_test: RuntimeError # Please triage this error. New in Chrome 62.
-isolate/function_send_test: Skip # Crashes Chrome 62: https://bugs.chromium.org/p/chromium/issues/detail?id=775506
-
-[ $compiler == dart2js && $runtime == ff ]
-async/slow_consumer2_test: SkipSlow # Times out. Issue 22050
-convert/streamed_conversion_json_utf8_decode_test: SkipSlow # Times out. Issue 22050
-convert/streamed_conversion_json_utf8_encode_test: SkipSlow # Times out. Issue 22050
-convert/streamed_conversion_utf8_decode_test: SkipSlow # Times out. Issue 22050
-html/custom/document_register_basic_test: Skip # Times out, or unittest times out
-html/element_classes_test: RuntimeError # Issue 27535
-html/messageevent_test: Pass, RuntimeError # Issue 28983
-html/media_stream_test: Fail
-html/request_animation_frame_test: Skip # Async test hangs.
-html/dart_object_local_storage_test: Skip  # sessionStorage NS_ERROR_DOM_NOT_SUPPORTED_ERR
-html/serialized_script_value_test: Pass, RuntimeError # Issue 28983
-html/shadow_dom_test: Fail
-html/speechrecognition_test: RuntimeError # Please triage.
-html/text_event_test: Fail # Issue 17893
-html/touchevent_test: Fail
-isolate/kill_self_synchronously_test: RuntimeError
-
-[ $compiler == dart2js && $runtime == drt ]
-html/request_animation_frame_test: Skip # Async test hangs.
-html/speechrecognition_test: RuntimeError # Please triage.
-html/svg_test: RuntimeError # Please triage.
-math/math2_test: RuntimeError
-math/math_test: RuntimeError
-
-[ $compiler == dart2js && $runtime == ff ]
-html/element_types_content_test:  Pass, RuntimeError # Issue 28983
-html/element_types_keygen_test: Fail
-html/element_types_shadow_test:  Pass, RuntimeError # Issue 28983
-html/webgl_1_test: Pass, Fail   # Issue 8219
-html/websql_test: Fail
-
-[ $compiler == dart2js && $runtime == safarimobilesim ]
-isolate/compile_time_error_test/none: Pass, Slow
-
-[ $compiler == dart2js && $runtime == safari ]
-isolate/cross_isolate_message_test: Skip # Issue 12627
-
-[ ($compiler == dart2js && $fast_startup) ]
+[ $compiler == dart2js && $fast_startup ]
+html/custom/constructor_calls_created_synchronously_test: Fail # mirrors not supported
+html/custom/document_register_basic_test: Pass, Slow, RuntimeError # Slow and sometimes times out
+html/custom/js_custom_test: Fail # mirrors not supported
+html/custom/mirrors_2_test: Fail # mirrors not supported
+html/custom/mirrors_test: Fail # mirrors not supported
+html/mirrors_js_typed_interop_test: Fail # mirrors not supported
+isolate/browser/compute_this_script_browser_test: Fail # mirrors not supported
+isolate/browser/typed_data_message_test: Fail # mirrors not supported
+isolate/count_test: Fail # mirrors not supported
+isolate/cross_isolate_message_test: Fail # mirrors not supported
+isolate/illegal_msg_mirror_test: Fail # mirrors not supported
 isolate/mandel_isolate_test: Fail # mirrors not supported
 isolate/message2_test: Fail # mirrors not supported
 isolate/message_test: Fail # mirrors not supported
@@ -777,30 +758,33 @@
 isolate/request_reply_test: Fail # mirrors not supported
 isolate/spawn_function_custom_class_test: Fail # mirrors not supported
 isolate/spawn_function_test: Fail # mirrors not supported
-
-[ $compiler == dart2js && ($runtime == safari || $runtime == safarimobilesim || $runtime == ff  || $ie) ]
-html/custom/attribute_changed_callback_test/unsupported_on_polyfill: Fail # Polyfill does not support
+isolate/stacktrace_message_test: Fail # mirrors not supported
+isolate/static_function_test: Fail # mirrors not supported
+isolate/unresolved_ports_test: Fail # mirrors not supported
+mirrors/regress_16321_test/01: Pass # expects failure, but if fails for the wrong reason
 
 [ $compiler == dart2js && $jscl ]
 isolate/spawn_uri_test: SkipByDesign # Loading another file is not supported in JS shell
 
-[ ($compiler == dart2js && $fast_startup) ]
-isolate/stacktrace_message_test: Fail # mirrors not supported
-isolate/static_function_test: Fail # mirrors not supported
-isolate/unresolved_ports_test: Fail # mirrors not supported
-
-[ $compiler == dart2js && $system == linux ]
-html/interactive_geolocation_test: Skip # Requires allowing geo location.
-
-[  $compiler == dart2js && $runtime == ff ]
-html/fileapi_supported_throws_test: Fail
-html/history_test/history: Skip # Issue 22050
-
 [ $compiler == dart2js && $minified ]
 html/canvas_pixel_array_type_alias_test/types2_runtimeTypeName: Fail, OK # Issue 12605
 
-[ $compiler == dart2js && $runtime == drt && ! $checked ]
-html/audiocontext_test/functional: Pass, Fail
+[ $compiler == dart2js && ($runtime == chrome || $runtime == ff) ]
+async/slow_consumer2_test: SkipSlow # Times out. Issue 22050
+convert/streamed_conversion_json_utf8_decode_test: SkipSlow # Times out. Issue 22050
+convert/streamed_conversion_json_utf8_encode_test: SkipSlow # Times out. Issue 22050
+convert/streamed_conversion_utf8_decode_test: SkipSlow # Times out. Issue 22050
+isolate/kill_self_synchronously_test: RuntimeError
 
-[  $compiler == dart2js && $runtime == ff ]
-html/xhr_test/xhr: Pass, Fail # Issue 11602
+[ $compiler == dart2js && ($runtime == d8 || $runtime == jsshell) ]
+html/fileapi_directory_test: Fail, Pass # TODO(dart2js-team): Please triage this failure.
+html/fileapi_entry_test: Fail, Pass # TODO(dart2js-team): Please triage this failure.
+html/fileapi_file_entry_test: Fail, Pass # TODO(dart2js-team): Please triage this failure.
+html/fileapi_file_test: Fail, Pass # TODO(dart2js-team): Please triage this failure.
+isolate/browser/issue_12474_test: RuntimeError # packageRoot not implemented.
+
+[ $compiler == dart2js && ($runtime == ff || $runtime == safari || $runtime == safarimobilesim || $ie) ]
+html/custom/attribute_changed_callback_test/unsupported_on_polyfill: Fail # Polyfill does not support
+html/custom/entered_left_view_test/viewless_document: Fail # Polyfill does not handle this
+html/fontface_test: Fail # Fontface not supported on these.
+
diff --git a/tests/lib_2/lib_2_dartdevc.status b/tests/lib_2/lib_2_dartdevc.status
index 7e378f2..6d2a597 100644
--- a/tests/lib_2/lib_2_dartdevc.status
+++ b/tests/lib_2/lib_2_dartdevc.status
@@ -3,20 +3,22 @@
 # BSD-style license that can be found in the LICENSE file.
 
 [ $compiler == dartdevc ]
-html/custom/attribute_changed_callback_test: Crash # Issue 29922
-html/custom/constructor_calls_created_synchronously_test: Crash # Issue 29922
+html/custom/attribute_changed_callback_test: RuntimeError # Issue 31577
+html/custom/constructor_calls_created_synchronously_test: RuntimeError # Issue 31577
 html/custom/document_register_basic_test: RuntimeError # Issue 29922
-html/custom/document_register_type_extensions_test/construction: Crash # dartdevc compiler crash Issue 30885
-html/custom/document_register_type_extensions_test/constructors: Crash # dartdevc compiler crash Issue 30885
-html/custom/document_register_type_extensions_test/createElement with type extension: Crash # dartdevc compiler crash Issue 30885
-html/custom/document_register_type_extensions_test/functional: Crash # dartdevc compiler crash Issue 30885
-html/custom/document_register_type_extensions_test/namespaces: Crash # dartdevc compiler crash Issue 30885
-html/custom/document_register_type_extensions_test/parsing: Crash # dartdevc compiler crash Issue 30885
-html/custom/document_register_type_extensions_test/registration: Crash # dartdevc compiler crash Issue 30885
-html/custom/document_register_type_extensions_test/single-parameter createElement: Crash # dartdevc compiler crash Issue 30885
-html/custom/element_upgrade_test: Crash # Crashes compiler Issue ?????
-html/custom/entered_left_view_test: Crash # Issue 29922
+html/custom/document_register_template_test: Skip # Issue 31577
+html/custom/document_register_type_extensions_test/construction: Skip # Issue 31577
+html/custom/document_register_type_extensions_test/constructors: Skip # Issue 31577
+html/custom/document_register_type_extensions_test/createElement with type extension: Skip # Issue 31577
+html/custom/document_register_type_extensions_test/functional: Skip # Issue 31577
+html/custom/document_register_type_extensions_test/namespaces: Skip # Issue 31577
+html/custom/document_register_type_extensions_test/parsing: Skip # Issue 31577
+html/custom/document_register_type_extensions_test/registration: Skip # Issue 31577
+html/custom/document_register_type_extensions_test/single-parameter createElement: Skip # Issue 31577
+html/custom/element_upgrade_test: Skip # Issue 31577
+html/custom/entered_left_view_test: Skip # Issue 31577
 html/custom/js_custom_test: Crash # Issue 29922
+html/custom/mirrors_2_test: Skip # Issue 31577
 html/custom/mirrors_test: Crash # Issue 29922
 html/custom/regress_194523002_test: Crash # Issue 29922
 html/deferred_multi_app_htmltest: Skip # Issue 29919
@@ -29,7 +31,7 @@
 html/transferables_test: CompileTimeError # Issue 30975
 html/two_scripts_htmltest: Skip # Issue 29919
 html/websql_test: Pass, RuntimeError # Issue 31036
-isolate/*: SkipByDesign  # No support for dart:isolate in dart4web (http://dartbug.com/30538)
+isolate/*: SkipByDesign # No support for dart:isolate in dart4web (http://dartbug.com/30538)
 js/null_test: RuntimeError # Issue 30652
 math/double_pow_test: RuntimeError # Issue 29922
 math/low_test: RuntimeError # Issue 29922
@@ -37,9 +39,19 @@
 mirrors/*: SkipByDesign # Mirrors not supported on web in Dart 2.0.
 profiler/metrics_num_test: Skip # Because of an int / double type test.
 
-[ $compiler == dartdevc && $system == linux ]
-html/interactive_media_test: RuntimeError
-html/interactive_geolocation_test: Skip # Requires allowing geo location.
+[ $compiler == dartdevk ]
+async/zone_run_unary_test: CompileTimeError # Issue 31537
+
+[ $compiler == dartdevc && $runtime == chrome ]
+html/element_animate_test/timing_dict: RuntimeError # Issue 29922
+html/element_types_keygen_test: RuntimeError # Issue 29055
+html/js_dispatch_property_test: Skip # Timeout Issue 31030
+html/touchevent_test: RuntimeError # Issue 29922
+
+[ $compiler == dartdevc && $runtime == drt ]
+html/svg_test: RuntimeError # Issue 29922
+math/math2_test: RuntimeError # Issue 29922
+math/math_test: RuntimeError # Issue 29922
 
 [ $compiler == dartdevc && $runtime != none ]
 async/async_await_sync_completer_test: RuntimeError # Issue 29922
@@ -63,6 +75,7 @@
 convert/utf85_test: Slow, Pass
 html/async_spawnuri_test: RuntimeError # Issue 29922
 html/async_test: RuntimeError # Issue 29922
+html/client_rect_test: RuntimeError # Issue 29922, seems to be a reified type problem with DOMClientRect
 html/custom/created_callback_test: RuntimeError
 html/custom_element_method_clash_test: Skip # Issue 29922
 html/custom_element_name_clash_test: Skip # Issue 29922
@@ -100,27 +113,13 @@
 typed_data/int64_list_load_store_test: RuntimeError # Issue 29922
 typed_data/typed_data_hierarchy_int64_test: RuntimeError # Issue 29922
 
-[ $strong && $compiler == dartdevc ]
-html/custom/document_register_template_test: Crash # Compiler crash issue ????
-html/custom/mirrors_2_test: Crash # Compiler crash issue ????
-
-[ $compiler == dartdevc && $runtime == drt ]
-html/svg_test: RuntimeError # Issue 29922
-math/math_test: RuntimeError # Issue 29922
-math/math2_test: RuntimeError # Issue 29922
-
-[ $compiler == dartdevc && $runtime == chrome ]
-html/element_animate_test/timing_dict: RuntimeError # Issue 29922
-html/element_types_keygen_test: RuntimeError # Issue 29055
-html/js_dispatch_property_test: Skip # Timeout Issue 31030
-html/touchevent_test: RuntimeError # Issue 29922
-
-[ $compiler == dartdevc && $runtime != none ]
-html/client_rect_test: RuntimeError # Issue 29922, seems to be a reified type problem with DOMClientRect
-
 [ $compiler == dartdevc && $runtime != none && $system == macos ]
 html/client_rect_test: Pass, RuntimeError # Issue 31019
 html/css_test: Pass, RuntimeError # Issue 31019
 
+[ $compiler == dartdevc && $system == linux ]
+html/interactive_geolocation_test: Skip # Requires allowing geo location.
+html/interactive_media_test: RuntimeError
+
 [ $compiler == dartdevc && $system == windows ]
 html/xhr_test/xhr: Skip # Times out. Issue 21527
diff --git a/tests/lib_2/lib_2_kernel.status b/tests/lib_2/lib_2_kernel.status
index 0c63350..f9de2f7 100644
--- a/tests/lib_2/lib_2_kernel.status
+++ b/tests/lib_2/lib_2_kernel.status
@@ -1,7 +1,6 @@
 # Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
-
 # Sections in this file should contain "$compiler == dartk" or
 # "$compiler == dartkp".
 #
@@ -11,15 +10,27 @@
 # missing a section you need, please reach out to sigmund@ to see the best way
 # to add them.
 
-# ===== Skip dartk and darkp in !$strong mode ====
-[ $compiler == dartk && !$strong ]
-*: SkipByDesign
+[ $compiler == dartkp ]
+typed_data/int32x4_arithmetic_test/int64: CompileTimeError # Issue 31339
 
-[ $compiler == dartkp && !$strong ]
-*: SkipByDesign
+[ $arch == x64 && $compiler == dartk && $mode == debug && $runtime == vm && $strong ]
+mirrors/invocation_fuzz_test: Skip # Because it times out, issue 29439.
+mirrors/variable_is_const_test/01: Crash
+
+[ $compiler == dartk && $mode == debug && $runtime == vm && $strong ]
+isolate/isolate_complex_messages_test: Crash
+isolate/static_function_test: Skip # Flaky (https://github.com/dart-lang/sdk/issues/30063).
+mirrors/other_declarations_location_test: Crash # assertion error, TypeParameter not having position.
+
+[ $compiler == dartk && $runtime == vm && $checked && $strong ]
+mirrors/invocation_fuzz_test/smi: Crash
+mirrors/redirecting_factory_different_type_test/01: Crash # Issue 28424
+mirrors/redirecting_factory_different_type_test/none: Crash # Issue 28424
+mirrors/reflected_type_generics_test/02: Pass
 
 # ===== dartk + vm status lines =====
 [ $compiler == dartk && $runtime == vm && $strong ]
+async/async_await_sync_completer_test: RuntimeError
 async/future_or_only_in_async_test/00: MissingCompileTimeError
 async/future_or_strong_test: RuntimeError
 async/slow_consumer2_test: CompileTimeError # Issue 31402 (Invocation arguments)
@@ -53,7 +64,7 @@
 async/timer_not_available_test: RuntimeError
 async/timer_repeat_test: CompileTimeError # Issue 31402 (Invocation arguments)
 async/timer_test: CompileTimeError # Issue 31402 (Invocation arguments)
-async/zone_run_unary_test: RuntimeError # Issue 31402 (Variable declaration)
+async/zone_run_unary_test: CompileTimeError # Issue 31537
 convert/streamed_conversion_json_utf8_decode_test: DartkCompileTimeError
 convert/streamed_conversion_json_utf8_decode_test: Pass, Slow # Infrequent timeouts.
 html/*: DartkCompileTimeError
@@ -118,7 +129,7 @@
 mirrors/constructor_optional_args_test: Crash # Issue 29201
 mirrors/constructor_private_name_test: RuntimeError
 mirrors/constructors_test: CompileTimeError # Issue 31402 (Invocation arguments)
-mirrors/dart2js_mirrors_test: Crash
+mirrors/dart2js_mirrors_test: CompileTimeError # Issue 31537
 mirrors/deferred_mirrors_metadata_test: CompileTimeError # Deferred loading kernel issue 28335.
 mirrors/deferred_mirrors_metadata_test: RuntimeError
 mirrors/deferred_mirrors_metatarget_test: CompileTimeError # Deferred loading kernel issue 28335.
@@ -204,7 +215,7 @@
 mirrors/mirrors_nsm_test/dart2js: CompileTimeError # Issue 31533
 mirrors/mirrors_nsm_test/none: CompileTimeError # Issue 31533
 mirrors/mirrors_reader_test: Crash
-mirrors/mirrors_test: Crash
+mirrors/mirrors_test: CompileTimeError # Issue 31537
 mirrors/mirrors_used*: SkipByDesign # Invalid tests. MirrorsUsed does not have a specification, and dart:mirrors is not required to hide declarations that are not covered by any MirrorsUsed annotation.
 mirrors/mirrors_used_inheritance_test: RuntimeError
 mirrors/mirrors_used_typedef_declaration_test/01: RuntimeError
@@ -252,8 +263,8 @@
 mirrors/static_members_easier_test: CompileTimeError # Issue 31402 (Invocation arguments)
 mirrors/static_members_test: CompileTimeError # Issue 31402 (Invocation arguments)
 mirrors/static_test: CompileTimeError # Issue 31402 (Invocation arguments)
-mirrors/symbol_validation_test/01: RuntimeError
-mirrors/symbol_validation_test/none: RuntimeError
+mirrors/symbol_validation_test/01: CompileTimeError # Issue 31537
+mirrors/symbol_validation_test/none: CompileTimeError # Issue 31537
 mirrors/synthetic_accessor_properties_test: CompileTimeError # Issue 31402 (Invocation arguments)
 mirrors/type_variable_is_static_test: RuntimeError
 mirrors/type_variable_owner_test/01: RuntimeError
@@ -401,29 +412,26 @@
 typed_data/int32x4_static_test/01: MissingCompileTimeError
 typed_data/int32x4_static_test/02: MissingCompileTimeError
 
-[ $compiler == dartk && $runtime == vm && $strong && $mode == debug]
-isolate/static_function_test: Skip # Flaky (https://github.com/dart-lang/sdk/issues/30063).
-mirrors/other_declarations_location_test: Crash # assertion error, TypeParameter not having position.
+# ===== Skip dartk and darkp in !$strong mode ====
+[ $compiler == dartk && !$strong ]
+*: SkipByDesign
+
+[ $compiler == dartkp && $mode == debug && $runtime == dart_precompiled && $strong ]
 isolate/isolate_complex_messages_test: Crash
-
-[ $compiler == dartk && $runtime == vm && $strong && $mode == debug && $arch == x64 ]
-mirrors/invocation_fuzz_test: Skip # Because it times out, issue 29439.
-mirrors/variable_is_const_test/01: Crash
-
-[ $compiler == dartk && $runtime == vm && $strong && $checked ]
-mirrors/invocation_fuzz_test/smi: Crash
-mirrors/redirecting_factory_different_type_test/01: Crash # Issue 28424
-mirrors/redirecting_factory_different_type_test/none: Crash # Issue 28424
-mirrors/reflected_type_generics_test/02: Pass
+isolate/static_function_test: Skip # Flaky (https://github.com/dart-lang/sdk/issues/30063).
 
 # ===== dartkp + dart_precompiled status lines =====
 [ $compiler == dartkp && $runtime == dart_precompiled && $strong ]
+async/async_await_sync_completer_test: RuntimeError
 async/future_or_only_in_async_test/00: MissingCompileTimeError
 async/future_or_strong_test: RuntimeError
+async/future_test/01: RuntimeError
+async/future_test/none: RuntimeError
 async/slow_consumer2_test: CompileTimeError # Issue 31402 (Invocation arguments)
 async/slow_consumer3_test: CompileTimeError # Issue 31402 (Invocation arguments)
 async/slow_consumer_test: CompileTimeError # Issue 31402 (Invocation arguments)
 async/stream_controller_async_test: CompileTimeError # Issue 31402 (Invocation arguments)
+async/stream_distinct_test: RuntimeError
 async/stream_first_where_test: CompileTimeError # Issue 31402 (Invocation arguments)
 async/stream_from_iterable_test: CompileTimeError # Issue 31402 (Invocation arguments)
 async/stream_iterator_test: CompileTimeError # Issue 31402 (Invocation arguments)
@@ -451,7 +459,14 @@
 async/timer_not_available_test: RuntimeError
 async/timer_repeat_test: CompileTimeError # Issue 31402 (Invocation arguments)
 async/timer_test: CompileTimeError # Issue 31402 (Invocation arguments)
+async/zone_run_unary_test: CompileTimeError # Issue 31537
+convert/chunked_conversion_json_decode1_test: RuntimeError
+convert/json_chunk_test: RuntimeError
+convert/json_test: RuntimeError
 convert/json_toEncodable_reviver_test: CompileTimeError
+convert/json_utf8_chunk_test: RuntimeError
+convert/streamed_conversion_json_encode1_test: RuntimeError
+convert/streamed_conversion_json_utf8_encode_test: RuntimeError
 html/*: SkipByDesign # dart:html not supported on VM.
 isolate/compile_time_error_test/01: Crash
 isolate/compile_time_error_test/01: MissingCompileTimeError
@@ -463,6 +478,7 @@
 isolate/isolate_import_test/01: MissingCompileTimeError
 isolate/issue_21398_parent_isolate2_test/01: Skip # Times out. Deferred loading kernel issue 28335.
 isolate/issue_22778_test: Crash
+isolate/kill_self_synchronously_test: RuntimeError
 isolate/kill_test: CompileTimeError # Issue 31402 (Invocation arguments)
 isolate/message3_test/byteBuffer: CompileTimeError # Issue 31402 (Invocation arguments)
 isolate/message3_test/constInstance: CompileTimeError # Issue 31402 (Invocation arguments)
@@ -483,9 +499,6 @@
 js/prototype_access_test: CompileTimeError
 mirrors/*: SkipByDesign # Mirrors are not supported in AOT mode.
 
-[ $compiler == dartkp && $runtime == dart_precompiled && $strong && $mode == debug]
-isolate/isolate_complex_messages_test: Crash
-isolate/static_function_test: Skip # Flaky (https://github.com/dart-lang/sdk/issues/30063).
+[ $compiler == dartkp && !$strong ]
+*: SkipByDesign
 
-[ $compiler == dartkp ]
-typed_data/int32x4_arithmetic_test/int64: CompileTimeError # Issue 31339
diff --git a/tests/lib_2/lib_2_precompiled.status b/tests/lib_2/lib_2_precompiled.status
index 2f8ee97..7c47354 100644
--- a/tests/lib_2/lib_2_precompiled.status
+++ b/tests/lib_2/lib_2_precompiled.status
@@ -2,21 +2,22 @@
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
 
-[ $compiler == none || $compiler == precompiler || $compiler == app_jit ]
-async/future_or_strong_test: RuntimeError
-isolate/compile_time_error_test/01: Skip # Issue 12587
-isolate/message3_test/int32x4: Fail, Crash, Timeout # Issue 21818
-isolate/ping_pause_test: Skip     # Resolve test issues
-isolate/ping_test: Skip           # Resolve test issues
-mirrors/symbol_validation_test: RuntimeError # Issue 13596
-async/timer_not_available_test: SkipByDesign # only meant to test when there is no way to implement timer (currently only in d8)
-
 [ $compiler == precompiler ]
 convert/chunked_conversion_utf88_test: Pass, Timeout
 convert/utf85_test: Pass, Timeout
 html/*: SkipByDesign # dart:html not supported on AOT.
 mirrors/*: SkipByDesign # Mirrors not supported on AOT.
 
+[ $compiler == app_jit || $compiler == none || $compiler == precompiler ]
+async/future_or_strong_test: RuntimeError
+async/timer_not_available_test: SkipByDesign # only meant to test when there is no way to implement timer (currently only in d8)
+async/timer_regress22626_test: Pass, RuntimeError # Issue 28254
+isolate/compile_time_error_test/01: Skip # Issue 12587
+isolate/message3_test/int32x4: Fail, Crash, Timeout # Issue 21818
+isolate/ping_pause_test: Skip # Resolve test issues
+isolate/ping_test: Skip # Resolve test issues
+mirrors/symbol_validation_test: RuntimeError # Issue 13596
+
 [ $compiler == precompiler || $runtime == flutter ]
 isolate/count_test: SkipByDesign
 isolate/cross_isolate_message_test: SkipByDesign
@@ -40,5 +41,3 @@
 js/null_test: CompileTimeError
 js/prototype_access_test: CompileTimeError
 
-[ ($compiler == none || $compiler == precompiler || $compiler == app_jit) ]
-async/timer_regress22626_test: Pass, RuntimeError # Issue 28254
diff --git a/tests/lib_2/lib_2_vm.status b/tests/lib_2/lib_2_vm.status
index 819bd58..d387ae5 100644
--- a/tests/lib_2/lib_2_vm.status
+++ b/tests/lib_2/lib_2_vm.status
@@ -2,6 +2,47 @@
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
 
+[ $arch == ia32 && $mode == debug && $runtime == vm && $system == windows ]
+convert/streamed_conversion_json_utf8_decode_test: Skip # Verification OOM.
+
+[ $arch != ia32 && $arch != simarm && $arch != simarmv5te && $arch != simarmv6 && $arch != x64 && $mode == debug && $runtime == vm ]
+convert/streamed_conversion_json_utf8_decode_test: Skip # Verification not yet implemented.
+
+[ $arch == simarm64 && $runtime == vm ]
+convert/utf85_test: Skip # Pass, Slow Issue 20111.
+
+[ $compiler != dartk && $runtime == vm ]
+convert/streamed_conversion_json_utf8_decode_test: Pass, Slow # Infrequent timeouts.
+html/*: SkipByDesign # dart:html not supported on VM.
+js/datetime_roundtrip_test: CompileTimeError
+js/null_test: CompileTimeError
+js/prototype_access_test: CompileTimeError
+mirrors/deferred_type_test: CompileTimeError
+mirrors/generic_bounded_by_type_parameter_test/02: MissingCompileTimeError
+mirrors/generic_bounded_test/01: MissingCompileTimeError
+mirrors/generic_bounded_test/02: MissingCompileTimeError
+mirrors/generic_interface_test/01: MissingCompileTimeError
+mirrors/initializing_formals_test/01: Fail # initializing formals are implicitly final as of Dart 1.21
+mirrors/mirrors_used*: SkipByDesign # Invalid tests. MirrorsUsed does not have a specification, and dart:mirrors is not required to hide declarations that are not covered by any MirrorsUsed annotation.
+mirrors/native_class_test: SkipByDesign # Imports dart:html
+mirrors/redirecting_factory_different_type_test/01: MissingCompileTimeError
+
+[ $compiler != dartk && $runtime == vm && !$checked ]
+mirrors/inference_and_no_such_method_test: RuntimeError
+
+[ $compiler != dartk && $runtime == vm && $strong ]
+async/future_or_only_in_async_test/00: MissingCompileTimeError
+
+[ $compiler != dartk && $runtime == vm && !$strong ]
+mirrors/reflect_class_test/01: MissingCompileTimeError
+mirrors/reflect_class_test/02: MissingCompileTimeError
+mirrors/reflected_type_classes_test/01: MissingCompileTimeError
+mirrors/reflected_type_classes_test/02: MissingCompileTimeError
+mirrors/reflected_type_classes_test/03: MissingCompileTimeError
+mirrors/reflected_type_test/01: MissingCompileTimeError
+mirrors/reflected_type_test/02: MissingCompileTimeError
+mirrors/reflected_type_test/03: MissingCompileTimeError
+
 [ $runtime == vm && $system == fuchsia ]
 async/first_regression_test: RuntimeError
 async/future_timeout_test: RuntimeError
@@ -20,20 +61,20 @@
 async/stream_periodic5_test: RuntimeError
 async/stream_periodic6_test: RuntimeError
 async/stream_periodic_test: RuntimeError
-async/stream_transform_test: RuntimeError
-async/stream_transformation_broadcast_test: RuntimeError
-async/stream_state_test: RuntimeError
-async/stream_state_nonzero_timer_test: RuntimeError
 async/stream_single_test: RuntimeError
 async/stream_single_to_multi_subscriber_test: RuntimeError
+async/stream_state_nonzero_timer_test: RuntimeError
+async/stream_state_test: RuntimeError
 async/stream_subscription_as_future_test: RuntimeError
 async/stream_subscription_cancel_test: RuntimeError
-async/timer_test: RuntimeError
+async/stream_transform_test: RuntimeError
+async/stream_transformation_broadcast_test: RuntimeError
 async/timer_cancel1_test: RuntimeError
 async/timer_cancel2_test: RuntimeError
 async/timer_cancel_test: RuntimeError
 async/timer_isActive_test: RuntimeError
 async/timer_repeat_test: RuntimeError
+async/timer_test: RuntimeError
 convert/json_lib_test: RuntimeError
 math/point_test: RuntimeError
 math/rectangle_test: RuntimeError
@@ -41,54 +82,12 @@
 mirrors/library_uri_io_test: RuntimeError
 mirrors/library_uri_package_test: RuntimeError
 
-[ $strong && $runtime == vm && $compiler != dartk ]
-async/future_or_only_in_async_test/00: MissingCompileTimeError
-
-[ $runtime == vm && $compiler != dartk ]
-convert/streamed_conversion_json_utf8_decode_test: Pass, Slow # Infrequent timeouts.
-html/*: SkipByDesign # dart:html not supported on VM.
-js/datetime_roundtrip_test: CompileTimeError
-js/null_test: CompileTimeError
-js/prototype_access_test: CompileTimeError
-mirrors/deferred_type_test: CompileTimeError
-mirrors/generic_bounded_by_type_parameter_test/02: MissingCompileTimeError
-mirrors/generic_bounded_test/01: MissingCompileTimeError
-mirrors/generic_bounded_test/02: MissingCompileTimeError
-mirrors/generic_interface_test/01: MissingCompileTimeError
-mirrors/mirrors_used*: SkipByDesign # Invalid tests. MirrorsUsed does not have a specification, and dart:mirrors is not required to hide declarations that are not covered by any MirrorsUsed annotation.
-mirrors/native_class_test: SkipByDesign # Imports dart:html
-mirrors/redirecting_factory_different_type_test/01: MissingCompileTimeError
-
-[ $runtime == vm && $compiler != dartk && !$checked ]
-mirrors/inference_and_no_such_method_test: RuntimeError
-
-[ $runtime == vm && $compiler != dartk && !$strong ]
-mirrors/reflect_class_test/01: MissingCompileTimeError
-mirrors/reflect_class_test/02: MissingCompileTimeError
-mirrors/reflected_type_classes_test/01: MissingCompileTimeError
-mirrors/reflected_type_classes_test/02: MissingCompileTimeError
-mirrors/reflected_type_classes_test/03: MissingCompileTimeError
-mirrors/reflected_type_test/01: MissingCompileTimeError
-mirrors/reflected_type_test/02: MissingCompileTimeError
-mirrors/reflected_type_test/03: MissingCompileTimeError
-
-[ $runtime == vm && !$strong && !$checked ]
+[ $runtime == vm && !$checked && !$strong ]
 mirrors/regress_16321_test/01: MissingCompileTimeError
 
-[ $runtime == vm && $mode == debug && $arch == ia32 && $system == windows ]
-convert/streamed_conversion_json_utf8_decode_test: Skip  # Verification OOM.
+[ $runtime == vm && ($arch == simarm || $arch == simarmv5te || $arch == simarmv6) ]
+convert/utf85_test: Skip # Pass, Slow Issue 12644.
 
-[ $runtime == vm && $mode == debug && $arch != ia32 && $arch != x64 && $arch != simarm && $arch != simarmv6 && $arch != simarmv5te ]
-convert/streamed_conversion_json_utf8_decode_test: Skip  # Verification not yet implemented.
+[ $arch == simarmv5te || $arch == simarmv6 || $arch == simarm && $runtime == vm ]
+convert/chunked_conversion_utf88_test: Skip # Pass, Slow Issue 12644.
 
-[ $runtime == vm && $arch == simarm || $arch == simarmv6 || $arch == simarmv5te ]
-convert/chunked_conversion_utf88_test: Skip  # Pass, Slow Issue 12644.
-
-[ $runtime == vm && ( $arch == simarm || $arch == simarmv6 || $arch == simarmv5te ) ]
-convert/utf85_test: Skip  # Pass, Slow Issue 12644.
-
-[ $runtime == vm && $arch == simarm64 ]
-convert/utf85_test: Skip # Pass, Slow Issue 20111.
-
-[ $runtime == vm && $compiler != dartk ]
-mirrors/initializing_formals_test/01: Fail # initializing formals are implicitly final as of Dart 1.21
diff --git a/tests/lib_strong/lib_strong.status b/tests/lib_strong/lib_strong.status
index c795e23..7877ef7 100644
--- a/tests/lib_strong/lib_strong.status
+++ b/tests/lib_strong/lib_strong.status
@@ -2,13 +2,32 @@
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
 
-# Skip entire suite if not running in strong mode.
-[ ! $strong ]
-*: SkipByDesign
+# TODO(29919): HTML tests are not supported on dartdevc in test.dart yet.
+[ $compiler == dartdevc ]
+html/custom/attribute_changed_callback_test: Crash # Issue 29922
+html/custom/constructor_calls_created_synchronously_test: Crash # Issue 29922
+html/custom/created_callback_test: CompileTimeError # Issue 29922
+html/custom/document_register_basic_test: CompileTimeError # Issue 29922
+html/custom/document_register_type_extensions_test/construction: CompileTimeError # Issue 29922
+html/custom/document_register_type_extensions_test/constructors: CompileTimeError # Issue 29922
+html/custom/document_register_type_extensions_test/createElement with type extension: CompileTimeError # Issue 29922
+html/custom/document_register_type_extensions_test/functional: CompileTimeError # Issue 29922
+html/custom/document_register_type_extensions_test/namespaces: CompileTimeError # Issue 29922
+html/custom/document_register_type_extensions_test/parsing: CompileTimeError # Issue 29922
+html/custom/document_register_type_extensions_test/registration: CompileTimeError # Issue 29922
+html/custom/document_register_type_extensions_test/single-parameter createElement: CompileTimeError # Issue 29922
+html/custom/element_upgrade_test: CompileTimeError # Issue 29922
+html/custom/entered_left_view_test: Crash # Issue 29922
+html/custom/js_custom_test: Crash # Issue 29922
+html/custom/mirrors_test: Crash # Issue 29922
+html/custom/regress_194523002_test: Crash # Issue 29922
+html/deferred_multi_app_htmltest: Skip # Issue 29919
+html/no_linked_scripts_htmltest: Skip # Issue 29919
+html/scripts_htmltest: Skip # Issue 29919
+html/two_scripts_htmltest: Skip # Issue 29919
 
 # Skip tests that are not yet strong-mode clean.
 [ $strong ]
-
 async/print_test/01: Skip # Temporalily disable the following tests until we figure out why they started failing.
 async/print_test/none: Skip # Temporalily disable the following tests until we figure out why they started failing.
 html/cross_frame_test: Skip # Temporalily disable the following tests until we figure out why they started failing.
@@ -67,29 +86,13 @@
 mirrors/regress_16321_test: Skip
 mirrors/regress_19731_test: Skip
 
-# TODO(29919): HTML tests are not supported on dartdevc in test.dart yet.
-[ $compiler == dartdevc ]
-html/custom/attribute_changed_callback_test: Crash # Issue 29922
-html/custom/constructor_calls_created_synchronously_test: Crash # Issue 29922
-html/custom/created_callback_test: CompileTimeError # Issue 29922
-html/custom/document_register_basic_test: CompileTimeError # Issue 29922
-html/custom/document_register_type_extensions_test/construction: CompileTimeError # Issue 29922
-html/custom/document_register_type_extensions_test/constructors: CompileTimeError # Issue 29922
-html/custom/document_register_type_extensions_test/createElement with type extension: CompileTimeError # Issue 29922
-html/custom/document_register_type_extensions_test/functional: CompileTimeError # Issue 29922
-html/custom/document_register_type_extensions_test/namespaces: CompileTimeError # Issue 29922
-html/custom/document_register_type_extensions_test/parsing: CompileTimeError # Issue 29922
-html/custom/document_register_type_extensions_test/registration: CompileTimeError # Issue 29922
-html/custom/document_register_type_extensions_test/single-parameter createElement: CompileTimeError # Issue 29922
-html/custom/element_upgrade_test: CompileTimeError # Issue 29922
-html/custom/entered_left_view_test: Crash # Issue 29922
-html/custom/js_custom_test: Crash # Issue 29922
-html/custom/mirrors_test: Crash # Issue 29922
-html/custom/regress_194523002_test: Crash # Issue 29922
-html/deferred_multi_app_htmltest: Skip # Issue 29919
-html/no_linked_scripts_htmltest: Skip # Issue 29919
-html/scripts_htmltest: Skip # Issue 29919
-html/two_scripts_htmltest: Skip # Issue 29919
+# Skip entire suite if not running in strong mode.
+[ !$strong ]
+*: SkipByDesign
+
+[ $compiler == dartdevc && $runtime == chrome ]
+html/element_animate_test/timing_dict: RuntimeError # Issue 29922
+html/element_types_keygen_test: RuntimeError # Issue 29922
 
 [ $compiler == dartdevc && $runtime != none ]
 async/future_or_non_strong_test: RuntimeError # Issue 29922
@@ -140,10 +143,3 @@
 mirrors/local_function_is_static_test: RuntimeError # Issue 29922
 mirrors/metadata_test: RuntimeError # Issue 29922
 
-[ $compiler == dartdevc && $runtime == chrome ]
-html/element_animate_test/timing_dict: RuntimeError # Issue 29922
-html/element_types_keygen_test: RuntimeError # Issue 29922
-
-[ $compiler == dartdevc && $runtime == drt ]
-
-[ $compiler == dartdevc && $system == windows ]
diff --git a/tests/standalone/standalone.status b/tests/standalone/standalone.status
index b5758d6..b863bd1 100644
--- a/tests/standalone/standalone.status
+++ b/tests/standalone/standalone.status
@@ -1,92 +1,93 @@
 # Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
-
 # WARNING:
 # Tests using the multitest feature where failure is expected should *also* be
 # listed in tests/lib/analyzer/analyze_tests.status without the "standalone"
 # prefix.
 
-[ $compiler == dart2js || $compiler == dartdevc ]
-*: SkipByDesign
-
-[ $compiler == dart2analyzer && ($builder_tag == strong || $strong) ]
-*: Skip # Issue 28649
-
-[$runtime == vm && $compiler == none && $system == fuchsia]
-*: Skip  # Not yet triaged.
-
-[ ($runtime != vm && $runtime != dart_precompiled) && ($compiler != none) ]
-no_assert_test: Fail, OK # This is testing a vm flag.
-
-[ $runtime != vm || $compiler != none ]
-script_snapshot_not_executed_test: SkipByDesign # Only makes sense running from source.
-script_snapshot_depfile_test: SkipByDesign # Only makes sense running from source.
-
-[ $hot_reload || $hot_reload_rollback ]
-script_snapshot_not_executed_test: RuntimeError, OK # Child VM doesn't execute Dart.
-script_snapshot_depfile_test: RuntimeError, OK # Child VM doesn't execute Dart.
-
-[ $system == macos && $builder_tag == swarming ]
-io/*: Skip # Issue 30618
-
-[ ($runtime == vm || $runtime == flutter || $runtime == dart_precompiled) && $checked ]
-io/process_invalid_arguments_test: Fail, OK # These tests have type errors on purpose.
-io/directory_invalid_arguments_test: Fail, OK # These tests have type errors on purpose.
-io/file_invalid_arguments_test: Fail, OK # These tests have type errors on purpose.
-io/internet_address_invalid_arguments_test: Fail, OK # These tests have type errors on purpose.
-io/socket_invalid_arguments_test: Fail, OK # These tests have type errors on purpose.
-io/stdout_bad_argument_test: Fail, OK # These tests have type errors on purpose.
-
-io/file_fuzz_test: Skip # These test have type errors on purpose and take very long to run in checked mode with no benefit. Skip.
-io/directory_fuzz_test: Skip # These test have type errors on purpose and take very long to run in checked mode with no benefit. Skip.
-
-[ ($runtime == vm || $runtime == dart_precompiled) && $system == macos ]
-io/raw_secure_server_socket_test: Pass, Crash # Issue 29524
-
-[ $compiler == dart2analyzer ]
-io/file_constructor_test: fail # Issue 11518
-io/raw_secure_server_socket_argument_test: StaticWarning
-io/stdout_bad_argument_test: StaticWarning
-io/process_invalid_arguments_test: StaticWarning
-io/directory_invalid_arguments_test: StaticWarning
-
-[ $system == windows ]
-verbose_gc_to_bmu_test: Skip
-io/sleep_test: Pass, Fail # Issue 25757
-
-[ $runtime == vm || $runtime == dart_precompiled || $runtime == flutter ]
-io/secure_socket_bad_data_test: RuntimeError  # An error in a secure connection just puts a READ_CLOSED on the stream, rather than signaling an error on the stream.
-
-[ $compiler == precompiler || $compiler == app_jit ]
-io/compile_all_test: Skip # Incompatible flag --compile_all
-
-[ $runtime == dart_precompiled && $system == android ]
-io/https_bad_certificate_test: RuntimeError # Issue 31310
-io/raw_secure_server_socket_test: RuntimeError # Issue 31310
-io/raw_datagram_socket_test: RuntimeError # Issue 31310
-
-[ $runtime == dart_precompiled ]
-verbose_gc_to_bmu_test: Skip # These tests attempt to spawn another script using the precompiled runtime.
-
-[ $runtime == dart_precompiled || $mode == product ]
-no_assert_test: SkipByDesign # Requires checked mode.
-
-# Overriding these flags are not supported in product mode.
-[ $mode == product ]
-verbose_gc_to_bmu_test: SkipByDesign  # No verbose_gc in product mode
-
-[ $runtime == dart_precompiled && $mode == product ]
-dwarf_stack_trace_test: Pass, RuntimeError # Results will flake due to identical code folding
-
 [ $builder_tag == no_ipv6 ]
 io/raw_datagram_socket_test: SkipByDesign
 
-[ $compiler == dartk || $compiler == dartkp ]
-io/raw_datagram_socket_test: Skip # Flaky.
+[ $compiler == dart2analyzer ]
+io/directory_invalid_arguments_test: StaticWarning
+io/file_constructor_test: Fail # Issue 11518
+io/process_invalid_arguments_test: StaticWarning
+io/raw_secure_server_socket_argument_test: StaticWarning
+io/stdout_bad_argument_test: StaticWarning
 
 [ $compiler == dartkp ]
 dwarf_stack_trace_test: RuntimeError
 io/https_bad_certificate_test: Skip # Flaky.
 io/raw_datagram_socket_test: Skip # Flaky.
 
+# Overriding these flags are not supported in product mode.
+[ $mode == product ]
+verbose_gc_to_bmu_test: SkipByDesign # No verbose_gc in product mode
+
+[ $runtime == dart_precompiled ]
+verbose_gc_to_bmu_test: Skip # These tests attempt to spawn another script using the precompiled runtime.
+
+[ $system == windows ]
+io/sleep_test: Pass, Fail # Issue 25757
+verbose_gc_to_bmu_test: Skip
+
+[ $builder_tag == swarming && $system == macos ]
+io/*: Skip # Issue 30618
+
+[ $compiler == dart2analyzer && ($builder_tag == strong || $strong) ]
+*: Skip # Issue 28649
+
+[ $compiler == dartk && $strong ]
+*: SkipByDesign
+
+[ $compiler == none && $runtime == vm && $system == fuchsia ]
+*: Skip # Not yet triaged.
+
+[ $compiler != none && $runtime != dart_precompiled && $runtime != vm ]
+no_assert_test: Fail, OK # This is testing a vm flag.
+
+[ $mode == product && $runtime == dart_precompiled ]
+dwarf_stack_trace_test: Pass, RuntimeError # Results will flake due to identical code folding
+
+[ $runtime == dart_precompiled && $system == android ]
+io/https_bad_certificate_test: RuntimeError # Issue 31310
+io/raw_datagram_socket_test: RuntimeError # Issue 31310
+io/raw_secure_server_socket_test: RuntimeError # Issue 31310
+
+[ $system == macos && ($runtime == dart_precompiled || $runtime == vm) ]
+io/raw_secure_server_socket_test: Pass, Crash # Issue 29524
+
+[ $checked && ($runtime == dart_precompiled || $runtime == flutter || $runtime == vm) ]
+io/directory_fuzz_test: Skip # These test have type errors on purpose and take very long to run in checked mode with no benefit. Skip.
+io/directory_invalid_arguments_test: Fail, OK # These tests have type errors on purpose.
+io/file_fuzz_test: Skip # These test have type errors on purpose and take very long to run in checked mode with no benefit. Skip.
+io/file_invalid_arguments_test: Fail, OK # These tests have type errors on purpose.
+io/internet_address_invalid_arguments_test: Fail, OK # These tests have type errors on purpose.
+io/process_invalid_arguments_test: Fail, OK # These tests have type errors on purpose.
+io/socket_invalid_arguments_test: Fail, OK # These tests have type errors on purpose.
+io/stdout_bad_argument_test: Fail, OK # These tests have type errors on purpose.
+
+[ $compiler == app_jit || $compiler == precompiler ]
+io/compile_all_test: Skip # Incompatible flag --compile_all
+
+[ $compiler == dart2js || $compiler == dartdevc ]
+*: SkipByDesign
+
+[ $compiler == dartk || $compiler == dartkp ]
+io/raw_datagram_socket_test: Skip # Flaky.
+
+[ $compiler != none || $runtime != vm ]
+script_snapshot_depfile_test: SkipByDesign # Only makes sense running from source.
+script_snapshot_not_executed_test: SkipByDesign # Only makes sense running from source.
+
+[ $mode == product || $runtime == dart_precompiled ]
+no_assert_test: SkipByDesign # Requires checked mode.
+
+[ $runtime == dart_precompiled || $runtime == flutter || $runtime == vm ]
+io/secure_socket_bad_data_test: RuntimeError # An error in a secure connection just puts a READ_CLOSED on the stream, rather than signaling an error on the stream.
+
+[ $hot_reload || $hot_reload_rollback ]
+script_snapshot_depfile_test: RuntimeError, OK # Child VM doesn't execute Dart.
+script_snapshot_not_executed_test: RuntimeError, OK # Child VM doesn't execute Dart.
+
diff --git a/tests/standalone_2/standalone_2.status b/tests/standalone_2/standalone_2.status
index 747c50a..8055590 100644
--- a/tests/standalone_2/standalone_2.status
+++ b/tests/standalone_2/standalone_2.status
@@ -1,83 +1,47 @@
 # Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
-
 # WARNING:
 # Tests using the multitest feature where failure is expected should *also* be
 # listed in tests/lib/analyzer/analyze_tests.status without the "standalone"
 # prefix.
-
-io/raw_socket_test: Pass, RuntimeError # Issue 28288
 io/http_close_test: Pass, RuntimeError # Issue 28380
-packages_file_test: Skip # Issue 26715
-packages_file_test/none: Skip   # contains no tests.
-
+io/raw_socket_test: Pass, RuntimeError # Issue 28288
+issue14236_test: Pass # Do not remove this line. It serves as a marker for Issue 14516 comment #4.
 package/invalid_uri_test: Fail, OK # CompileTimeErrors intentionally
-package/scenarios/packages_file_strange_formatting/empty_package_dir_test: Fail, OK # CompileTimeErrors intentionally
 package/scenarios/empty_packages_file/empty_packages_file_discovery_test: Fail, OK # CompileTimeErrors intentionally
 package/scenarios/empty_packages_file/empty_packages_file_option_test: Fail, OK # CompileTimeErrors intentionally
 package/scenarios/invalid/invalid_package_name_test: RuntimeError, CompileTimeError # Errors intentionally
 package/scenarios/invalid/same_package_twice_test.dart: RuntimeError, CompileTimeError # Errors intentionally
+package/scenarios/packages_file_strange_formatting/empty_package_dir_test: Fail, OK # CompileTimeErrors intentionally
+packages_file_test: Skip # Issue 26715
+packages_file_test/none: Skip # contains no tests.
 
-issue14236_test: Pass # Do not remove this line. It serves as a marker for Issue 14516 comment #4.
+[ $builder_tag == asan ]
+io/named_pipe_script_test: RuntimeError
+io/process_detached_test: Pass, Slow
 
-[$runtime == vm && $compiler == none && $system == fuchsia]
-*: Skip  # Not yet triaged.
+[ $builder_tag == no_ipv6 ]
+io/http_ipv6_test: SkipByDesign
+io/http_loopback_test: SkipByDesign
+io/http_proxy_advanced_test: SkipByDesign
+io/socket_bind_test: SkipByDesign
+io/socket_info_ipv6_test: SkipByDesign
+io/socket_ipv6_test: SkipByDesign
+io/socket_source_address_test: SkipByDesign
 
-[ ($runtime != vm && $runtime != dart_precompiled && $compiler != none) ]
-no_assert_test: Fail, OK # This is testing a vm flag.
-env_test: Skip # This is testing a vm command line parsing scenario.
-
-[ $runtime == vm || $runtime == dart_precompiled || $runtime == flutter ]
-package/package_isolate_test: Fail # Issue 12474
-package/scenarios/invalid/same_package_twice_test: Pass # Issue 24119
-io/non_utf8_output_test: NonUtf8Output, OK # This test checks that the test runner correctly detects and reports non-utf8 output from a test.
-io/https_client_certificate_test: RuntimeError # Issue 24070 Failures in secure networking while NSS is replaced with BoringSSL
-io/secure_socket_renegotiate_test: RuntimeError
-io/secure_socket_bad_data_test: RuntimeError  # An error in a secure connection just puts a READ_CLOSED on the stream, rather than signaling an error on the stream.
-
-
-# All static_tests have expected compile-time errors.
-[ $strong && $compiler != dart2analyzer && $compiler != dartdevc && $compiler != dartk && $compiler != dartkp ]
-float_array_static_test: MissingCompileTimeError
-
-[ !$strong ]
-float_array_static_test: MissingCompileTimeError
-
-[ ($runtime == vm || $runtime == dart_precompiled) && $system == macos ]
-io/socket_many_connections_test: Skip # This test fails with "Too many open files" on the Mac OS buildbot. This is expected as MacOS by default runs with a very low number of allowed open files ('ulimit -n' says something like 256).
-io/secure_server_client_certificate_test: Skip # Re-enable once the bots have been updated. Issue #26057
-io/socket_test: Pass, Timeout # Issue 27453
-
-io/raw_server_socket_cancel_test: Skip # Issue 28182 # This test sometimes hangs on Mac.
-io/raw_secure_server_socket_test: Pass, Crash # Issue 29524
-
-[ ((($runtime == vm) || ($runtime == flutter)) && ($system == linux)) ]
-io/http_launch_test: Pass, Slow, Timeout # Issue 28046
-io/http_proxy_test: Skip # These tests have started timing out and issue 25649 has been filed to investigate, skipping these tests temporarily to get the bots to be green again.
-io/secure_builtin_roots_test: Skip # These tests have started timing out and issue 25649 has been filed to investigate, skipping these tests temporarily to get the bots to be green again.
-
-io/http_basic_test: Pass, Slow, Timeout  # Issue 28046, These tests might be slow on an opt counter threshold bot. They also time out on the bot occasionally => flaky test issue 28046
-io/http_launch_test: Pass, Slow, Timeout  # Issue 28046, These tests might be slow on an opt counter threshold bot. They also time out on the bot occasionally => flaky test issue 28046
-
-[ (((($runtime != vm) || ($arch == arm)) || ($arch == arm64)) || (($system == windows) && ($mode == debug))) ]
-fragmentation_test: Skip
-
-[ ($compiler == dart2analyzer) ]
-deferred_transitive_import_error_test: Skip
-
-[ ($runtime == dart_precompiled) ]
-http_launch_test: Skip
-io/addlatexhash_test: Skip
-
-[ ($compiler == app_jit) ]
+[ $compiler == app_jit ]
 assert_test: RuntimeError
 
-[ (($runtime == dart_precompiled) || ($mode == product)) ]
-assert_test: SkipByDesign
-no_assert_test: SkipByDesign
+[ $compiler == dart2analyzer ]
+deferred_transitive_import_error_test: Skip
 
-[ ($mode == product) ]
+[ $compiler == dartkp ]
+causal_async_stack_test: Skip # Flaky.
+
+[ $mode == product ]
+dart_developer_env_test: SkipByDesign
+io/stdio_implicit_close_test: Skip # SkipByDesign
 no_profiler_test: SkipByDesign
 no_support_coverage_test: SkipByDesign
 no_support_debugger_test: SkipByDesign
@@ -85,46 +49,56 @@
 no_support_il_printer_test: SkipByDesign
 no_support_service_test: SkipByDesign
 no_support_timeline_test: SkipByDesign
-io/stdio_implicit_close_test: Skip # SkipByDesign
-dart_developer_env_test: SkipByDesign
-verbose_gc_to_bmu_test: SkipByDesign  # No verbose_gc in product mode
+verbose_gc_to_bmu_test: SkipByDesign # No verbose_gc in product mode
 
-[ (($runtime == dart_precompiled) && ($mode == product)) ]
-dwarf_stack_trace_test: Pass, RuntimeError
+[ $runtime == dart_precompiled ]
+http_launch_test: Skip
+io/addlatexhash_test: Skip
 
-[ ((($runtime == vm) || ($runtime == dart_precompiled)) || ($runtime == flutter)) ]
-deferred_transitive_import_error_test: Skip
+[ !$strong ]
+float_array_static_test: MissingCompileTimeError
 
-[ (($hot_reload) || ($hot_reload_rollback)) ]
-deferred_transitive_import_error_test: Crash
-package/*: SkipByDesign # Launches VMs in interesting ways.
-io/raw_datagram_read_all_test: Pass, Fail # Timing dependent.
-io/test_runner_test: Pass, Slow # Slow.
-io/skipping_dart2js_compilations_test: Pass, Slow # Slow.
-io/addlatexhash_test: Pass, Crash # Issue 31252
-fragmentation_test: Pass, Crash # Issue 31421
-
-[ $builder_tag == no_ipv6 ]
-io/socket_source_address_test: SkipByDesign
-io/socket_bind_test: SkipByDesign
-io/http_loopback_test: SkipByDesign
-io/http_proxy_advanced_test: SkipByDesign
-io/http_ipv6_test: SkipByDesign
-io/socket_ipv6_test: SkipByDesign
-io/socket_info_ipv6_test: SkipByDesign
-
-[ $runtime == vm && $system == macos && $mode == release ]
-io/named_pipe_script_test: Pass, RuntimeError # Issue 28737
-
-[ $system == macos && $builder_tag == swarming ]
+[ $builder_tag == swarming && $system == macos ]
 io/*: Skip # Issue 30618
 
-[ $builder_tag == asan ]
-io/process_detached_test: Pass, Slow
-io/named_pipe_script_test: RuntimeError
+# All static_tests have expected compile-time errors.
+[ $compiler != dart2analyzer && $compiler != dartdevc && $compiler != dartk && $compiler != dartkp && $strong ]
+float_array_static_test: MissingCompileTimeError
 
-[ (($compiler == dartk) || ($compiler == dartkp))  && !$strong]
+[ $compiler == none && $runtime == vm && $system == fuchsia ]
+*: Skip # Not yet triaged.
+
+[ $compiler != none && $runtime != dart_precompiled && $runtime != vm ]
+env_test: Skip # This is testing a vm command line parsing scenario.
+no_assert_test: Fail, OK # This is testing a vm flag.
+
+[ $mode == product && $runtime == dart_precompiled ]
+dwarf_stack_trace_test: Pass, RuntimeError
+
+[ $mode == release && $runtime == vm && $system == macos ]
+io/named_pipe_script_test: Pass, RuntimeError # Issue 28737
+
+[ $system == linux && ($runtime == flutter || $runtime == vm) ]
+io/http_basic_test: Pass, Slow, Timeout # Issue 28046, These tests might be slow on an opt counter threshold bot. They also time out on the bot occasionally => flaky test issue 28046
+io/http_launch_test: Pass, Slow, Timeout # Issue 28046, These tests might be slow on an opt counter threshold bot. They also time out on the bot occasionally => flaky test issue 28046
+io/http_proxy_test: Skip # These tests have started timing out and issue 25649 has been filed to investigate, skipping these tests temporarily to get the bots to be green again.
+io/secure_builtin_roots_test: Skip # These tests have started timing out and issue 25649 has been filed to investigate, skipping these tests temporarily to get the bots to be green again.
+
+[ $system == macos && ($runtime == dart_precompiled || $runtime == vm) ]
+io/raw_secure_server_socket_test: Pass, Crash # Issue 29524
+io/raw_server_socket_cancel_test: Skip # Issue 28182 # This test sometimes hangs on Mac.
+io/secure_server_client_certificate_test: Skip # Re-enable once the bots have been updated. Issue #26057
+io/socket_many_connections_test: Skip # This test fails with "Too many open files" on the Mac OS buildbot. This is expected as MacOS by default runs with a very low number of allowed open files ('ulimit -n' says something like 256).
+io/socket_test: Pass, Timeout # Issue 27453
+
+[ $strong && ($compiler == dartk || $compiler == dartkp) ]
 assert_test: RuntimeError
+http_launch_test: RuntimeError
+io/*: Skip # Too many errors to triage, io not strong mode clean.
+
+[ !$strong && ($compiler == dartk || $compiler == dartkp) ]
+assert_test: RuntimeError
+io/compile_all_test: Skip # Crashes
 io/http_client_connect_test: Skip # Flaky.
 io/http_content_length_test: Skip # Flaky.
 io/http_proxy_test: Skip # Flaky.
@@ -139,24 +113,40 @@
 io/web_socket_error_test: Skip # Flaky
 io/web_socket_ping_test: Skip # Flaky.
 io/web_socket_test: Skip # Flaky.
-no_support_debugger_test: Skip # kernel-service snapshot not compatible with flag disabled
-regress_29350_test: MissingCompileTimeError
-io/compile_all_test: Skip # Crashes
 map_insert_remove_oom_test: Skip # Crashes
+no_support_debugger_test: Skip # kernel-service snapshot not compatible with flag disabled
 package/package1_test: CompileTimeError
 package/package_test: CompileTimeError
 package/scenarios/invalid/invalid_utf8_test: CompileTimeError
 package/scenarios/invalid/non_existent_packages_file_test: CompileTimeError
 package/scenarios/invalid/same_package_twice_test: CompileTimeError
+regress_29350_test: MissingCompileTimeError
 
-[ (($compiler == dartk) || ($compiler == dartkp)) && $strong]
-assert_test: RuntimeError
-http_launch_test: RuntimeError
-io/*: Skip # Too many errors to triage, io not strong mode clean.
-
-[ ($compiler == dartkp) ]
-causal_async_stack_test: Skip # Flaky.
+[ $arch == arm || $arch == arm64 || $runtime != vm || $mode == debug && $system == windows ]
+fragmentation_test: Skip
 
 [ $compiler == dart2js || $compiler == dartdevc ]
 *: SkipByDesign
 
+[ $mode == product || $runtime == dart_precompiled ]
+assert_test: SkipByDesign
+no_assert_test: SkipByDesign
+
+[ $runtime == dart_precompiled || $runtime == flutter || $runtime == vm ]
+deferred_transitive_import_error_test: Skip
+io/https_client_certificate_test: RuntimeError # Issue 24070 Failures in secure networking while NSS is replaced with BoringSSL
+io/non_utf8_output_test: NonUtf8Output, OK # This test checks that the test runner correctly detects and reports non-utf8 output from a test.
+io/secure_socket_bad_data_test: RuntimeError # An error in a secure connection just puts a READ_CLOSED on the stream, rather than signaling an error on the stream.
+io/secure_socket_renegotiate_test: RuntimeError
+package/package_isolate_test: Fail # Issue 12474
+package/scenarios/invalid/same_package_twice_test: Pass # Issue 24119
+
+[ $hot_reload || $hot_reload_rollback ]
+deferred_transitive_import_error_test: Crash
+fragmentation_test: Pass, Crash # Issue 31421
+io/addlatexhash_test: Pass, Crash # Issue 31252
+io/raw_datagram_read_all_test: Pass, Fail # Timing dependent.
+io/skipping_dart2js_compilations_test: Pass, Slow # Slow.
+io/test_runner_test: Pass, Slow # Slow.
+package/*: SkipByDesign # Launches VMs in interesting ways.
+
diff --git a/tests/standalone_2/standalone_2_analyzer.status b/tests/standalone_2/standalone_2_analyzer.status
index aa0ce39..b0f4d07 100644
--- a/tests/standalone_2/standalone_2_analyzer.status
+++ b/tests/standalone_2/standalone_2_analyzer.status
@@ -3,31 +3,31 @@
 # BSD-style license that can be found in the LICENSE file.
 
 [ $compiler == dart2analyzer ]
-io/process_exit_negative_test: Skip
-io/http_parser_test: Pass, StaticWarning, CompileTimeError # Issue 28843
-io/http_headers_test: Pass, StaticWarning, CompileTimeError # Issue 28843
+deferred_transitive_import_error_test: Skip # Contains intentional errors.
 io/http_cookie_date_test: Pass, StaticWarning, CompileTimeError # Issue 28843
+io/http_headers_test: Pass, StaticWarning, CompileTimeError # Issue 28843
+io/http_parser_test: Pass, StaticWarning, CompileTimeError # Issue 28843
+io/process_exit_negative_test: Skip
 io/web_socket_protocol_processor_test: Pass, StaticWarning, CompileTimeError # Issue 28843
 package/package1_test: StaticWarning
-package/package_test: StaticWarning
-package/scenarios/packages_dir_only/packages_dir_only_test: StaticWarning
-package/scenarios/packages_file_only/packages_file_only_test: StaticWarning
-package/scenarios/both_dir_and_file/prefers_packages_file_test: StaticWarning
-package/scenarios/packages_file_in_parent/sub/packages_file_in_parent_test: StaticWarning
-deferred_transitive_import_error_test: Skip # Contains intentional errors.
 package/package1_test: CompileTimeError
-package/package_test: CompileTimeError
 package/package_isolate_test: CompileTimeError
-package/scenarios/packages_dir_only/packages_dir_only_test: CompileTimeError
-package/scenarios/packages_file_only/packages_file_only_test: CompileTimeError
+package/package_test: StaticWarning
+package/package_test: CompileTimeError
+package/scenarios/both_dir_and_file/prefers_packages_file_test: StaticWarning
 package/scenarios/both_dir_and_file/prefers_packages_file_test: CompileTimeError
-package/scenarios/packages_file_in_parent/sub/packages_file_in_parent_test: CompileTimeError
-package/scenarios/invalid/non_existent_packages_file_test: Crash, OK # Analyzer exits on invalid package config
-package/scenarios/invalid/invalid_utf8_test: Crash, OK # Analyzer exits on invalid package config
 package/scenarios/invalid/invalid_package_name_test: Crash, OK # Analyzer exits on invalid package config
+package/scenarios/invalid/invalid_utf8_test: Crash, OK # Analyzer exits on invalid package config
+package/scenarios/invalid/non_existent_packages_file_test: Crash, OK # Analyzer exits on invalid package config
 package/scenarios/invalid/same_package_twice_test: Crash, OK # Analyzer exits on invalid package config
+package/scenarios/packages_dir_only/packages_dir_only_test: StaticWarning
+package/scenarios/packages_dir_only/packages_dir_only_test: CompileTimeError
+package/scenarios/packages_file_in_parent/sub/packages_file_in_parent_test: StaticWarning
+package/scenarios/packages_file_in_parent/sub/packages_file_in_parent_test: CompileTimeError
+package/scenarios/packages_file_only/packages_file_only_test: StaticWarning
+package/scenarios/packages_file_only/packages_file_only_test: CompileTimeError
 
-[ $system == windows && $compiler == dart2analyzer ]
+[ $compiler == dart2analyzer && $system == windows ]
 package/package_isolate_test: Crash # Issue 28645
 package/scenarios/empty_packages_file/empty_packages_file_noimports_test: Crash # Issue 28645
 package/scenarios/empty_packages_file/empty_packages_file_option_test: Crash, Pass # Issue 28645
@@ -37,16 +37,17 @@
 package/scenarios/packages_option_only/packages_option_only_noimports_test: Crash # Issue 28645
 package/scenarios/packages_option_only/packages_option_only_test: Crash, CompileTimeError # Issue 28645
 
-[ $compiler == dart2analyzer && !$strong ]
-io/directory_invalid_arguments_test: StaticWarning
-io/secure_socket_argument_test: StaticWarning
-io/stdout_bad_argument_test: StaticWarning
-io/process_invalid_arguments_test: StaticWarning
-io/raw_secure_server_socket_argument_test: StaticWarning
-
 [ $compiler == dart2analyzer && $strong ]
 io/directory_invalid_arguments_test: CompileTimeError
-io/secure_socket_argument_test: CompileTimeError
-io/stdout_bad_argument_test: CompileTimeError
 io/process_invalid_arguments_test: CompileTimeError
 io/raw_secure_server_socket_argument_test: CompileTimeError
+io/secure_socket_argument_test: CompileTimeError
+io/stdout_bad_argument_test: CompileTimeError
+
+[ $compiler == dart2analyzer && !$strong ]
+io/directory_invalid_arguments_test: StaticWarning
+io/process_invalid_arguments_test: StaticWarning
+io/raw_secure_server_socket_argument_test: StaticWarning
+io/secure_socket_argument_test: StaticWarning
+io/stdout_bad_argument_test: StaticWarning
+
diff --git a/tests/standalone_2/standalone_2_flutter.status b/tests/standalone_2/standalone_2_flutter.status
index 20cb321..2851328 100644
--- a/tests/standalone_2/standalone_2_flutter.status
+++ b/tests/standalone_2/standalone_2_flutter.status
@@ -3,85 +3,86 @@
 # BSD-style license that can be found in the LICENSE file.
 
 [ $runtime == flutter ]
-io/raw_datagram_socket_test: Crash # Flutter Issue 9115
-io/process_check_arguments_test: RuntimeError # Flutter Issue 9115
-io/process_working_directory_test: RuntimeError # Flutter Issue 9115
-io/process_run_output_test: RuntimeError # Flutter Issue 9115
-io/process_run_test: RuntimeError # Flutter Issue 9115
-io/process_sync_test: RuntimeError # Flutter Issue 9115
-io/test_extension_test: RuntimeError # Flutter Issue 9115
-io/test_extension_fail_test: RuntimeError # Flutter Issue 9115
-oom_error_stacktrace_test: RuntimeError # Flutter Issue 9115
-io/raw_socket_cross_process_test: RuntimeError # Flutter Issue 9115
-io/process_exit_test: RuntimeError # Flutter Issue 9115
-io/uri_platform_test: RuntimeError # Flutter Issue 9115
-io/dart_std_io_pipe_test: RuntimeError # Flutter Issue 9115
-io/platform_test: RuntimeError # Flutter Issue 9115
-io/process_stderr_test: RuntimeError # Flutter Issue 9115
-io/process_segfault_test: RuntimeError # Flutter Issue 9115
+dart_developer_disabled_env_test: RuntimeError # Flutter Issue 9115
+http_launch_test: Skip # Timeout Flutter Issue 9115
 io/addlatexhash_test: RuntimeError # Flutter Issue 9115
-io/http_server_response_test: Skip # Flaky  # Flutter Issue 9115
-io/process_stdout_test: RuntimeError # Flutter Issue 9115
-io/http_cross_process_test: RuntimeError # Flutter Issue 9115
-io/process_set_exit_code_test: RuntimeError # Flutter Issue 9115
-io/stdin_sync_test: RuntimeError # Flutter Issue 9115
-io/raw_server_socket_cancel_test: RuntimeError # Flutter Issue 9115
-io/socket_cross_process_test: RuntimeError # Flutter Issue 9115
 io/arguments_test: RuntimeError # Flutter Issue 9115
 io/code_collection_test: RuntimeError # Flutter Issue 9115
-io/http_client_stays_alive_test: RuntimeError # Flutter Issue 9115
-io/locale_name_test: RuntimeError # Flutter Issue 9115
-out_of_memory_test: RuntimeError # Flutter Issue 9115
-io/process_pid_test: Skip # Timeout Flutter Issue 9115
-io/socket_info_ipv4_test: Skip # Timeout Flutter Issue 9115
-io/file_test: Skip # Timeout Flutter Issue 9115
-io/named_pipe_script_test: Skip # Timeout Flutter Issue 9115
-io/print_sync_test: Skip # Timeout Flutter Issue 9115
-io/file_uri_test: Skip # Timeout Flutter Issue 9115
-io/file_lock_test: Skip # Timeout Flutter Issue 9115
-io/socket_info_ipv6_test: Skip # Timeout Flutter Issue 9115
-io/stdio_implicit_close_test: Skip # Timeout Flutter Issue 9115
-io/process_environment_test: Skip # Timeout Flutter Issue 9115
-io/secure_socket_renegotiate_test: Skip # Timeout Flutter Issue 9115
-io/process_kill_test: Skip # Timeout Flutter Issue 9115
+io/dart_std_io_pipe_test: RuntimeError # Flutter Issue 9115
+io/dependency_graph_test: CompileTimeError # Imports dart:mirrors
 io/directory_uri_test: Skip # Timeout Flutter Issue 9115
-io/raw_socket_test: Skip # Timeout Flutter Issue 9115
-io/http_connection_close_test: Skip # Timeout Flutter Issue 9115
-io/https_unauthorized_test: Skip # Timeout Flutter Issue 9115
-io/file_system_watcher_test: Skip # Timeout Flutter Issue 9115
-io/secure_unauthorized_test: Skip # Timeout Flutter Issue 9115
-io/secure_socket_bad_data_test: Skip # Timeout Flutter Issue 9115
-io/link_uri_test: Skip # Timeout Flutter Issue 9115
-io/file_stream_test: Skip # Timeout Flutter Issue 9115
-io/regress_7191_test: Skip # Timeout Flutter Issue 9115
-io/http_server_close_response_after_error_test: Skip #  Flutter Issue 9115Timeout
-io/signals_test: Skip # Timeout Flutter Issue 9115
-io/process_non_ascii_test: Skip # Timeout Flutter Issue 9115
-io/https_client_certificate_test: Skip # Timeout Flutter Issue 9115
-io/socket_finalizer_test: Skip # Timeout Flutter Issue 9115
-io/process_shell_test: Skip # Timeout Flutter Issue 9115
 io/file_blocking_lock_test: Skip # Timeout Flutter Issue 9115
-io/socket_invalid_arguments_test: Skip # Timeout Flutter Issue 9115
-io/process_detached_test: Skip # Timeout Flutter Issue 9115
+io/file_lock_test: Skip # Timeout Flutter Issue 9115
+io/file_stream_test: Skip # Timeout Flutter Issue 9115
+io/file_system_watcher_test: Skip # Timeout Flutter Issue 9115
+io/file_test: Skip # Timeout Flutter Issue 9115
+io/file_uri_test: Skip # Timeout Flutter Issue 9115
+io/http_client_stays_alive_test: RuntimeError # Flutter Issue 9115
+io/http_connection_close_test: Skip # Timeout Flutter Issue 9115
+io/http_cross_process_test: RuntimeError # Flutter Issue 9115
+io/http_server_close_response_after_error_test: Skip #  Flutter Issue 9115Timeout
+io/http_server_response_test: Skip # Flaky  # Flutter Issue 9115
+io/https_client_certificate_test: Skip # Timeout Flutter Issue 9115
+io/https_unauthorized_test: Skip # Timeout Flutter Issue 9115
+io/link_uri_test: Skip # Timeout Flutter Issue 9115
+io/locale_name_test: RuntimeError # Flutter Issue 9115
+io/named_pipe_script_test: Skip # Timeout Flutter Issue 9115
 io/platform_resolved_executable_test/00: Skip # Timeout Flutter Issue 9115
 io/platform_resolved_executable_test/01: Skip # Timeout Flutter Issue 9115
 io/platform_resolved_executable_test/02: Skip # Timeout Flutter Issue 9115
 io/platform_resolved_executable_test/03: Skip # Timeout Flutter Issue 9115
 io/platform_resolved_executable_test/04: Skip # Timeout Flutter Issue 9115
 io/platform_resolved_executable_test/05: Skip # Timeout Flutter Issue 9115
-http_launch_test: Skip # Timeout Flutter Issue 9115
-dart_developer_disabled_env_test: RuntimeError # Flutter Issue 9115
-package/scenarios/packages_file_in_parent/sub/packages_file_in_parent_test: Fail # Unable to parse package files Flutter Issue 9115
-package/package1_test: Fail # Unable to parse package files Flutter Issue 9115
-package/scenarios/packages_option_only/packages_option_only_test: Fail # Unable to parse package files Flutter Issue 9115
-package/scenarios/invalid/invalid_package_name_test: Fail # Unable to parse package files Flutter Issue 9115
-package/scenarios/invalid/same_package_twice_test: Fail # Unable to parse package files Flutter Issue 9115
-package/scenarios/packages_file_only/packages_file_only_test: Fail # Unable to parse package files Flutter Issue 9115
-package/scenarios/packages_dir_only/packages_dir_only_test: Fail # Unable to parse package files Flutter Issue 9115
-package/scenarios/both_dir_and_file/prefers_packages_file_test: Fail # Unable to parse package files Flutter Issue 9115
-package/package_test: Fail # Unable to parse package files Flutter Issue 9115
+io/platform_test: RuntimeError # Flutter Issue 9115
+io/print_sync_test: Skip # Timeout Flutter Issue 9115
+io/process_check_arguments_test: RuntimeError # Flutter Issue 9115
+io/process_detached_test: Skip # Timeout Flutter Issue 9115
+io/process_environment_test: Skip # Timeout Flutter Issue 9115
+io/process_exit_test: RuntimeError # Flutter Issue 9115
+io/process_kill_test: Skip # Timeout Flutter Issue 9115
+io/process_non_ascii_test: Skip # Timeout Flutter Issue 9115
+io/process_pid_test: Skip # Timeout Flutter Issue 9115
 io/process_run_output_test: Fail # Unable to parse package files Flutter Issue 9115
-io/dependency_graph_test: CompileTimeError # Imports dart:mirrors
+io/process_run_output_test: RuntimeError # Flutter Issue 9115
+io/process_run_test: RuntimeError # Flutter Issue 9115
+io/process_segfault_test: RuntimeError # Flutter Issue 9115
+io/process_set_exit_code_test: RuntimeError # Flutter Issue 9115
+io/process_shell_test: Skip # Timeout Flutter Issue 9115
+io/process_stderr_test: RuntimeError # Flutter Issue 9115
+io/process_stdout_test: RuntimeError # Flutter Issue 9115
+io/process_sync_test: RuntimeError # Flutter Issue 9115
+io/process_working_directory_test: RuntimeError # Flutter Issue 9115
+io/raw_datagram_socket_test: Crash # Flutter Issue 9115
+io/raw_server_socket_cancel_test: RuntimeError # Flutter Issue 9115
+io/raw_socket_cross_process_test: RuntimeError # Flutter Issue 9115
+io/raw_socket_test: Skip # Timeout Flutter Issue 9115
+io/regress_7191_test: Skip # Timeout Flutter Issue 9115
+io/secure_socket_bad_data_test: Skip # Timeout Flutter Issue 9115
+io/secure_socket_renegotiate_test: Skip # Timeout Flutter Issue 9115
+io/secure_unauthorized_test: Skip # Timeout Flutter Issue 9115
+io/signals_test: Skip # Timeout Flutter Issue 9115
 io/skipping_dart2js_compilations_test: CompileTimeError # Uses mirrors
+io/socket_cross_process_test: RuntimeError # Flutter Issue 9115
+io/socket_finalizer_test: Skip # Timeout Flutter Issue 9115
+io/socket_info_ipv4_test: Skip # Timeout Flutter Issue 9115
+io/socket_info_ipv6_test: Skip # Timeout Flutter Issue 9115
+io/socket_invalid_arguments_test: Skip # Timeout Flutter Issue 9115
+io/stdin_sync_test: RuntimeError # Flutter Issue 9115
+io/stdio_implicit_close_test: Skip # Timeout Flutter Issue 9115
+io/test_extension_fail_test: RuntimeError # Flutter Issue 9115
+io/test_extension_test: RuntimeError # Flutter Issue 9115
 io/test_harness_analyzer_test: CompileTimeError # Uses mirrors
 io/test_runner_test: CompileTimeError # Uses mirrors
+io/uri_platform_test: RuntimeError # Flutter Issue 9115
+oom_error_stacktrace_test: RuntimeError # Flutter Issue 9115
+out_of_memory_test: RuntimeError # Flutter Issue 9115
+package/package1_test: Fail # Unable to parse package files Flutter Issue 9115
+package/package_test: Fail # Unable to parse package files Flutter Issue 9115
+package/scenarios/both_dir_and_file/prefers_packages_file_test: Fail # Unable to parse package files Flutter Issue 9115
+package/scenarios/invalid/invalid_package_name_test: Fail # Unable to parse package files Flutter Issue 9115
+package/scenarios/invalid/same_package_twice_test: Fail # Unable to parse package files Flutter Issue 9115
+package/scenarios/packages_dir_only/packages_dir_only_test: Fail # Unable to parse package files Flutter Issue 9115
+package/scenarios/packages_file_in_parent/sub/packages_file_in_parent_test: Fail # Unable to parse package files Flutter Issue 9115
+package/scenarios/packages_file_only/packages_file_only_test: Fail # Unable to parse package files Flutter Issue 9115
+package/scenarios/packages_option_only/packages_option_only_test: Fail # Unable to parse package files Flutter Issue 9115
+
diff --git a/tests/standalone_2/standalone_2_kernel.status b/tests/standalone_2/standalone_2_kernel.status
index 6b16d28..c65cb4b 100644
--- a/tests/standalone_2/standalone_2_kernel.status
+++ b/tests/standalone_2/standalone_2_kernel.status
@@ -1,7 +1,6 @@
 # Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
-
 # Sections in this file should contain "$compiler == dartk" or
 # "$compiler == dartkp".
 #
@@ -11,12 +10,19 @@
 # missing a section you need, please reach out to sigmund@ to see the best way
 # to add them.
 
-# ===== Skip dartk and darkp in !$strong mode ====
-[ $compiler == dartk && !$strong ]
-*: SkipByDesign
+[ $compiler == dartkp ]
+bytedata_test: CompileTimeError # Issue 31339
+typed_array_int64_uint64_test: CompileTimeError, Crash # Issue 31339
+typed_data_view_test: CompileTimeError # Issue 31339
 
-[ $compiler == dartkp && !$strong ]
-*: SkipByDesign
+[ $compiler == dartk && $mode == debug && $runtime == vm && $strong ]
+io/file_lock_test: Slow, Pass
+io/raw_socket_test: Crash
+io/socket_exception_test: Pass, Crash
+io/socket_finalizer_test: Pass, Crash
+io/socket_info_ipv4_test: Pass, Crash
+io/socket_info_ipv6_test: Pass, Crash
+io/socket_port_test: Pass, Crash
 
 # ===== dartk + vm status lines =====
 [ $compiler == dartk && $runtime == vm && $strong ]
@@ -57,10 +63,15 @@
 package/scenarios/invalid/non_existent_packages_file_test: CompileTimeError
 package/scenarios/invalid/same_package_twice_test: CompileTimeError
 regress_29350_test: MissingCompileTimeError
+regress_29350_test/none: Pass # Issue 31537
 
-[ $compiler == dartk && $runtime == vm && $strong && $mode == debug ]
-io/file_lock_test: Slow, Pass
+# ===== Skip dartk and darkp in !$strong mode ====
+[ $compiler == dartk && !$strong ]
+*: SkipByDesign
+
+[ $compiler == dartkp && $mode == debug && $runtime == dart_precompiled && $strong ]
 io/raw_socket_test: Crash
+io/skipping_dart2js_compilations_test: Crash
 io/socket_exception_test: Pass, Crash
 io/socket_finalizer_test: Pass, Crash
 io/socket_info_ipv4_test: Pass, Crash
@@ -106,17 +117,8 @@
 package/scenarios/invalid/non_existent_packages_file_test: CompileTimeError
 package/scenarios/invalid/same_package_twice_test: CompileTimeError
 regress_29350_test: MissingCompileTimeError
+regress_29350_test/none: Pass # Issue 31537
 
-[ $compiler == dartkp && $runtime == dart_precompiled && $strong && $mode == debug ]
-io/raw_socket_test: Crash
-io/skipping_dart2js_compilations_test: Crash
-io/socket_exception_test: Pass, Crash
-io/socket_finalizer_test: Pass, Crash
-io/socket_info_ipv4_test: Pass, Crash
-io/socket_info_ipv6_test: Pass, Crash
-io/socket_port_test: Pass, Crash
+[ $compiler == dartkp && !$strong ]
+*: SkipByDesign
 
-[ $compiler == dartkp ]
-typed_array_int64_uint64_test: CompileTimeError, Crash # Issue 31339
-bytedata_test: CompileTimeError                        # Issue 31339
-typed_data_view_test: CompileTimeError                 # Issue 31339
diff --git a/tests/standalone_2/standalone_2_precompiled.status b/tests/standalone_2/standalone_2_precompiled.status
index 60734ab..6d4e52c 100644
--- a/tests/standalone_2/standalone_2_precompiled.status
+++ b/tests/standalone_2/standalone_2_precompiled.status
@@ -3,16 +3,14 @@
 # BSD-style license that can be found in the LICENSE file.
 
 [ $compiler == precompiler ]
-map_insert_remove_oom_test: Skip # Heap limit too low. Increasing iteration count to make a higher limit a meaningful test makes it too slow for simarm[64] bots.
 io/web_socket_test: Pass, RuntimeError # Issue 24674
-
-[ $compiler == precompiler || $compiler == app_jit ]
-io/compile_all_test: Skip # Incompatible flag --compile_all
+map_insert_remove_oom_test: Skip # Heap limit too low. Increasing iteration count to make a higher limit a meaningful test makes it too slow for simarm[64] bots.
 
 [ $runtime == dart_precompiled ]
 http_launch_test: Skip
 io/addlatexhash_test: Skip
 io/dart_std_io_pipe_test: Skip
+io/directory_list_sync_test: Timeout, Skip # Expects to find the test directory relative to the script.
 io/file_blocking_lock_test: Skip
 io/file_lock_test: Skip
 io/file_read_special_device_test: Skip
@@ -22,6 +20,7 @@
 io/https_unauthorized_test: Skip
 io/named_pipe_script_test: Skip
 io/platform_resolved_executable_test: Skip
+io/platform_test: RuntimeError # Expects to be running from 'dart' instead of 'dart_precompiled_runtime'
 io/print_sync_test: Skip
 io/process_check_arguments_test: Skip
 io/process_detached_test: Skip
@@ -39,39 +38,41 @@
 io/regress_7679_test: Skip
 io/secure_unauthorized_test: Skip
 io/signals_test: Skip
+io/skipping_dart2js_compilations_test: RuntimeError # Issue 30008
 io/stdin_sync_test: Skip
 io/stdio_implicit_close_test: Skip
 io/stdio_nonblocking_test: Skip
 io/test_extension_fail_test: Skip
 io/test_extension_test: Skip
 io/windows_environment_test: Skip
-io/platform_test: RuntimeError # Expects to be running from 'dart' instead of 'dart_precompiled_runtime'
-io/directory_list_sync_test: Timeout, Skip # Expects to find the test directory relative to the script.
-io/skipping_dart2js_compilations_test: RuntimeError # Issue 30008
 
-[ $runtime == dart_precompiled && !$checked ]
-io/file_constructor_test: RuntimeError
+[ $arch == arm && $mode == release && $runtime == dart_precompiled && $system == android ]
+io/stdout_stderr_non_blocking_test: Pass, Timeout # Issue 28426
+
+[ $mode == product && $runtime == dart_precompiled ]
+dwarf_stack_trace_test: Pass, RuntimeError # Results will flake due to identical code folding
 
 [ $runtime == dart_precompiled && $checked ]
 io/namespace_test: RuntimeError
 io/test_runner_test: RuntimeError
 
-[ $runtime == dart_precompiled || $mode == product ]
-no_assert_test: SkipByDesign # Requires checked mode.
-io/code_collection_test: Skip # Incompatible flags
+[ $runtime == dart_precompiled && !$checked ]
+io/file_constructor_test: RuntimeError
 
-[ $runtime == dart_precompiled || $compiler == app_jit ]
-package/scenarios/packages_file_strange_formatting/mixed_line_ends_test: Skip
-package/scenarios/packages_file_strange_formatting/empty_lines_test: Skip
-package/scenarios/invalid/invalid_utf8_test: Skip
-package/scenarios/invalid/same_package_twice_test: Skip
-package/scenarios/invalid/non_existent_packages_file_test: Skip
+[ $compiler == app_jit || $compiler == precompiler ]
+io/compile_all_test: Skip # Incompatible flag --compile_all
+
+[ $compiler == app_jit || $runtime == dart_precompiled ]
 package/scenarios/empty_packages_file/empty_packages_file_noimports_test: Skip
+package/scenarios/invalid/invalid_utf8_test: Skip
+package/scenarios/invalid/non_existent_packages_file_test: Skip
+package/scenarios/invalid/same_package_twice_test: Skip
+package/scenarios/packages_file_strange_formatting/empty_lines_test: Skip
+package/scenarios/packages_file_strange_formatting/mixed_line_ends_test: Skip
 package/scenarios/packages_option_only/packages_option_only_noimports_test: Skip
 package/scenarios/packages_option_only/packages_option_only_test: Skip
 
-[ $runtime == dart_precompiled && $mode == product ]
-dwarf_stack_trace_test: Pass, RuntimeError # Results will flake due to identical code folding
+[ $mode == product || $runtime == dart_precompiled ]
+io/code_collection_test: Skip # Incompatible flags
+no_assert_test: SkipByDesign # Requires checked mode.
 
-[ $system == android && $runtime == dart_precompiled && $mode == release && $arch == arm]
-io/stdout_stderr_non_blocking_test: Pass, Timeout # Issue 28426
diff --git a/tests/standalone_2/standalone_2_vm.status b/tests/standalone_2/standalone_2_vm.status
index fd09ed8..c68c181 100644
--- a/tests/standalone_2/standalone_2_vm.status
+++ b/tests/standalone_2/standalone_2_vm.status
@@ -2,87 +2,86 @@
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
 
-[ $runtime == vm && !$checked ]
-io/file_constructor_test: RuntimeError
-
-[ $runtime == vm && ($arch == arm || $arch == arm64) ]
-io/file_stream_test: Skip # Issue 26109
-io/file_typed_data_test: Skip # Issue 26109
-io/file_input_stream_test: Skip # Issue 26109
-
-[ $runtime == vm && $system == windows && $mode == release ]
-io/http_server_close_response_after_error_test: Pass, Timeout # Issue 28370: timeout.
-io/regress_7191_test: Pass, Timeout # Issue 28374: timeout.
-
-[ $runtime == vm && $system == macos && $mode == release ]
-io/named_pipe_script_test: Pass, RuntimeError # Issue 28737
-
-[ $runtime == vm && $system == linux && $mode == release && $arch == ia32 && $builder_tag == asan ]
-io/socket_close_test: Pass, Timeout # Issue 28502: timeout.
-
 [ $arch == ia32 ]
-no_allow_absolute_addresses_test: SkipByDesign # Not supported.
 link_natives_lazily_test: SkipByDesign # Not supported.
+no_allow_absolute_addresses_test: SkipByDesign # Not supported.
 
-[ $arch == simdbc || $arch == simdbc64 ]
-full_coverage_test: Skip # TODO(vegorov) SIMDBC interpreter doesn't support coverage yet.
+[ $compiler == app_jit ]
+full_coverage_test: Skip # Platform.executable
+io/code_collection_test: Skip # Platform.executable
+io/platform_test: Skip # Platform.executable
+io/test_extension_fail_test: Skip # Platform.executable
+io/test_extension_test: Skip # Platform.executable
+regress_26031_test: Skip # Platform.resolvedExecutable
 
-link_natives_lazily_test: SkipByDesign # SIMDBC interpreter doesn't support lazy linking of natives.
+[ $system == android ]
+io/file_stat_test: Skip # Issue 26376
+io/file_system_watcher_test: Skip # Issue 26376
+io/file_test: Skip # Issue 26376
+io/http_proxy_advanced_test: Skip # Issue 27638
+io/http_proxy_test: Skip # Issue 27638
+io/https_bad_certificate_test: Skip # Issue 27638
+io/https_server_test: Skip # Issue 27638
+io/non_utf8_output_test: Skip # The Android command runner doesn't correctly handle non-UTF8 formatted output. https://github.com/dart-lang/sdk/issues/28872
+io/process_exit_test: Skip # Issue 29578
+io/process_path_environment_test: Skip # Issue 26376
+io/process_path_test: Skip # Issue 26376
+io/process_segfault_test: Skip # Issue 26376
+io/raw_datagram_socket_test: Skip # Issue 27638
+io/raw_secure_server_closing_test: Skip # Issue 27638
+io/raw_secure_server_socket_test: Skip # Issue 27638
+io/raw_secure_socket_pause_test: Skip # Issue 27638
+io/raw_secure_socket_test: Skip # Issue 27638
+io/regress_21160_test: Skip # Issue 27638
+io/resolve_symbolic_links_test: Skip # Issue 26376
+io/secure_bad_certificate_test: Skip # Issue 27638
+io/secure_client_raw_server_test: Skip # Issue 27638
+io/secure_client_server_test: Skip # Issue 27638
+io/secure_multiple_client_server_test: Skip # Issue 27638
+io/secure_server_client_certificate_test: Skip # Issue 27638
+io/secure_server_closing_test: Skip # Issue 27638
+io/secure_server_socket_test: Skip # Issue 27638
+io/secure_session_resume_test: Skip # Issue 27638
+io/secure_socket_alpn_test: Skip # Issue 27638
+io/secure_socket_test: Skip # Issue 27638
+io/socket_upgrade_to_secure_test: Skip # Issue 27638
 
-no_lazy_dispatchers_test: SkipByDesign # SIMDBC interpreter doesn't support --no_lazy_dispatchers
+[ $system == windows ]
+io/process_sync_test: Pass, Timeout # Issue 24596
+io/skipping_dart2js_compilations_test: Skip # Issue 19551.
+io/sleep_test: Pass, Fail # Issue 25757
+io/socket_info_ipv6_test: Skip
+verbose_gc_to_bmu_test: Skip
+
+[ $arch == arm && $mode == release && $runtime == dart_precompiled && $system == android ]
+io/stdout_stderr_non_blocking_test: Pass, Timeout # Issue 28426
+
+[ $arch == ia32 && $builder_tag == asan && $mode == release && $runtime == vm && $system == linux ]
+io/socket_close_test: Pass, Timeout # Issue 28502: timeout.
 
 [ $arch == simdbc64 && $mode == debug && $checked ]
 io/web_socket_test: Pass, RuntimeError # Issue 26814.
 
-[ $system == windows ]
-io/skipping_dart2js_compilations_test: Skip # Issue 19551.
-verbose_gc_to_bmu_test: Skip
-io/process_sync_test: Pass, Timeout # Issue 24596
-io/sleep_test: Pass, Fail # Issue 25757
-io/socket_info_ipv6_test : Skip
+[ $compiler != dart2analyzer && $system == windows ]
+io/platform_resolved_executable_test/06: RuntimeError # Issue 23641
 
-[ $system == windows && $compiler != dart2analyzer ]
-io/platform_resolved_executable_test/06: RuntimeError  # Issue 23641
+[ $mode == release && $runtime == vm && $system == macos ]
+io/named_pipe_script_test: Pass, RuntimeError # Issue 28737
 
-[ $compiler == app_jit ]
-io/test_extension_test: Skip # Platform.executable
-io/test_extension_fail_test: Skip # Platform.executable
-io/platform_test: Skip # Platform.executable
-io/code_collection_test: Skip # Platform.executable
-full_coverage_test: Skip # Platform.executable
-regress_26031_test: Skip # Platform.resolvedExecutable
+[ $mode == release && $runtime == vm && $system == windows ]
+io/http_server_close_response_after_error_test: Pass, Timeout # Issue 28370: timeout.
+io/regress_7191_test: Pass, Timeout # Issue 28374: timeout.
 
-[ $system == android ]
-io/process_exit_test: Skip # Issue 29578
-io/process_path_test: Skip # Issue 26376
-io/process_segfault_test: Skip # Issue 26376
-io/file_test: Skip # Issue 26376
-io/process_path_environment_test: Skip # Issue 26376
-io/file_system_watcher_test: Skip # Issue 26376
-io/resolve_symbolic_links_test: Skip # Issue 26376
-io/file_stat_test: Skip # Issue 26376
-io/raw_datagram_socket_test: Skip # Issue 27638
-io/http_proxy_advanced_test: Skip # Issue 27638
-io/regress_21160_test: Skip # Issue 27638
-io/secure_multiple_client_server_test: Skip # Issue 27638
-io/http_proxy_test: Skip # Issue 27638
-io/secure_session_resume_test: Skip # Issue 27638
-io/raw_secure_server_socket_test: Skip # Issue 27638
-io/raw_secure_server_closing_test: Skip # Issue 27638
-io/raw_secure_socket_pause_test: Skip # Issue 27638
-io/https_server_test: Skip # Issue 27638
-io/secure_server_client_certificate_test: Skip # Issue 27638
-io/secure_socket_alpn_test: Skip # Issue 27638
-io/secure_bad_certificate_test: Skip # Issue 27638
-io/secure_server_socket_test: Skip # Issue 27638
-io/secure_client_server_test: Skip # Issue 27638
-io/socket_upgrade_to_secure_test: Skip # Issue 27638
-io/secure_client_raw_server_test: Skip # Issue 27638
-io/secure_socket_test: Skip # Issue 27638
-io/raw_secure_socket_test: Skip # Issue 27638
-io/https_bad_certificate_test: Skip # Issue 27638
-io/secure_server_closing_test: Skip # Issue 27638
-io/non_utf8_output_test: Skip # The Android command runner doesn't correctly handle non-UTF8 formatted output. https://github.com/dart-lang/sdk/issues/28872
+[ $runtime == vm && !$checked ]
+io/file_constructor_test: RuntimeError
 
-[ $system == android && $runtime == dart_precompiled && $mode == release && $arch == arm]
-io/stdout_stderr_non_blocking_test: Pass, Timeout # Issue 28426
+[ $runtime == vm && ($arch == arm || $arch == arm64) ]
+io/file_input_stream_test: Skip # Issue 26109
+io/file_stream_test: Skip # Issue 26109
+io/file_typed_data_test: Skip # Issue 26109
+
+[ $arch == simdbc || $arch == simdbc64 ]
+full_coverage_test: Skip # TODO(vegorov) SIMDBC interpreter doesn't support coverage yet.
+link_natives_lazily_test: SkipByDesign # SIMDBC interpreter doesn't support lazy linking of natives.
+no_lazy_dispatchers_test: SkipByDesign # SIMDBC interpreter doesn't support --no_lazy_dispatchers
+
diff --git a/tools/VERSION b/tools/VERSION
index 6644c98..17092b6 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 0
 PATCH 0
-PRERELEASE 11
+PRERELEASE 12
 PRERELEASE_PATCH 0
diff --git a/tools/bots/dart_tests.isolate b/tools/bots/dart_tests.isolate
index b7c925f..bd529b6 100644
--- a/tools/bots/dart_tests.isolate
+++ b/tools/bots/dart_tests.isolate
@@ -20,6 +20,7 @@
               'pkg/meta/',
               'pkg/pkg.status',
               'pkg/status_file/',
+              'pkg/vm/',
               'runtime/tests/',
               '.packages']
   }
diff --git a/tools/bots/test_matrix.json b/tools/bots/test_matrix.json
index 0f5186a..c8b4c40 100644
--- a/tools/bots/test_matrix.json
+++ b/tools/bots/test_matrix.json
@@ -20,6 +20,7 @@
       "pkg/meta/",
       "pkg/pkg.status",
       "pkg/status_file/",
+      "pkg/vm/",
       "runtime/",
       "sdk/",
       ".packages"
@@ -310,7 +311,6 @@
     {
       "builders": [
         "ddc-linux-release",
-        "ddc-mac-release",
         "ddc-win-release"
       ],
       "meta": {
@@ -346,6 +346,102 @@
             "--use-sdk",
             "language_2"
           ]
+        },
+        {
+          "name": "ddc sourcemap tests",
+          "script": "out/ReleaseX64/dart",
+          "arguments": [
+            "pkg/dev_compiler/test/sourcemap/sourcemaps_ddc_suite.dart"
+          ]
+        },
+        {
+          "name": "ddk sourcemap tests",
+          "script": "out/ReleaseX64/dart",
+          "arguments": [
+            "pkg/dev_compiler/test/sourcemap/sourcemaps_ddk_suite.dart"
+          ]
+        },
+        {
+          "name": "ddc sourcemap stacktrace tests",
+          "script": "out/ReleaseX64/dart",
+          "arguments": [
+            "pkg/dev_compiler/test/sourcemap/stacktrace_ddc_suite.dart"
+          ]
+        },
+        {
+          "name": "ddk sourcemap stacktrace tests",
+          "script": "out/ReleaseX64/dart",
+          "arguments": [
+            "pkg/dev_compiler/test/sourcemap/stacktrace_ddk_suite.dart"
+          ]
+        }
+      ]
+    },
+    {
+      "builders": [
+        "ddc-mac-release"
+      ],
+      "meta": {
+        "description": "This configuration is used by the ddc builder group."
+      },
+      "steps": [
+        {
+          "name": "build dart",
+          "script": "tools/build.py",
+          "arguments": ["dart2js_bot", "dartdevc_test"]
+        },
+        {
+          "name": "ddc tests",
+          "arguments": [
+            "-cdartdevc",
+            "-rchrome",
+            "--checked",
+            "--strong",
+            "--use-sdk",
+            "language_2",
+            "corelib_2",
+            "lib_2",
+            "lib_strong"
+          ]
+        },
+        {
+          "name": "ddc kernel tests",
+          "arguments": [
+            "-cdartdevk",
+            "-rchrome",
+            "--checked",
+            "--strong",
+            "--use-sdk",
+            "language_2"
+          ]
+        },
+        {
+          "name": "ddc sourcemap tests",
+          "script": "out/xcodebuild/dart",
+          "arguments": [
+            "pkg/dev_compiler/test/sourcemap/sourcemaps_ddc_suite.dart"
+          ]
+        },
+        {
+          "name": "ddk sourcemap tests",
+          "script": "out/xcodebuild/dart",
+          "arguments": [
+            "pkg/dev_compiler/test/sourcemap/sourcemaps_ddk_suite.dart"
+          ]
+        },
+        {
+          "name": "ddc sourcemap stacktrace tests",
+          "script": "out/xcodebuild/dart",
+          "arguments": [
+            "pkg/dev_compiler/test/sourcemap/stacktrace_ddc_suite.dart"
+          ]
+        },
+        {
+          "name": "ddk sourcemap stacktrace tests",
+          "script": "out/xcodebuild/dart",
+          "arguments": [
+            "pkg/dev_compiler/test/sourcemap/stacktrace_ddk_suite.dart"
+          ]
         }
       ]
     },
diff --git a/tools/dom/src/EventStreamProvider.dart b/tools/dom/src/EventStreamProvider.dart
index bb24647..bc21bfd 100644
--- a/tools/dom/src/EventStreamProvider.dart
+++ b/tools/dom/src/EventStreamProvider.dart
@@ -75,7 +75,8 @@
    *
    * [addEventListener](http://docs.webplatform.org/wiki/dom/methods/addEventListener)
    */
-  ElementStream<T> _forElementList(ElementList e, {bool useCapture: false}) {
+  ElementStream<T> _forElementList(ElementList<Element> e,
+      {bool useCapture: false}) {
     return new _ElementListEventStreamImpl<T>(e, _eventType, useCapture);
   }
 
@@ -433,7 +434,8 @@
     return new _ElementEventStreamImpl<T>(e, _eventTypeGetter(e), useCapture);
   }
 
-  ElementStream<T> _forElementList(ElementList e, {bool useCapture: false}) {
+  ElementStream<T> _forElementList(ElementList<Element> e,
+      {bool useCapture: false}) {
     return new _ElementListEventStreamImpl<T>(
         e, _eventTypeGetter(e), useCapture);
   }
diff --git a/tools/dom/src/NodeValidatorBuilder.dart b/tools/dom/src/NodeValidatorBuilder.dart
index dd1cf56..92cfb3a 100644
--- a/tools/dom/src/NodeValidatorBuilder.dart
+++ b/tools/dom/src/NodeValidatorBuilder.dart
@@ -154,9 +154,9 @@
       Iterable<String> uriAttributes}) {
     var tagNameUpper = tagName.toUpperCase();
     var attrs = attributes
-        ?.map/*<String>*/((name) => '$tagNameUpper::${name.toLowerCase()}');
+        ?.map<String>((name) => '$tagNameUpper::${name.toLowerCase()}');
     var uriAttrs = uriAttributes
-        ?.map/*<String>*/((name) => '$tagNameUpper::${name.toLowerCase()}');
+        ?.map<String>((name) => '$tagNameUpper::${name.toLowerCase()}');
     if (uriPolicy == null) {
       uriPolicy = new UriPolicy();
     }
@@ -180,9 +180,9 @@
     var baseNameUpper = baseName.toUpperCase();
     var tagNameUpper = tagName.toUpperCase();
     var attrs = attributes
-        ?.map/*<String>*/((name) => '$baseNameUpper::${name.toLowerCase()}');
+        ?.map<String>((name) => '$baseNameUpper::${name.toLowerCase()}');
     var uriAttrs = uriAttributes
-        ?.map/*<String>*/((name) => '$baseNameUpper::${name.toLowerCase()}');
+        ?.map<String>((name) => '$baseNameUpper::${name.toLowerCase()}');
     if (uriPolicy == null) {
       uriPolicy = new UriPolicy();
     }
diff --git a/tools/dom/templates/html/dart2js/impl_MouseEvent.darttemplate b/tools/dom/templates/html/dart2js/impl_MouseEvent.darttemplate
index 41a6c49..2b582c6 100644
--- a/tools/dom/templates/html/dart2js/impl_MouseEvent.darttemplate
+++ b/tools/dom/templates/html/dart2js/impl_MouseEvent.darttemplate
@@ -22,16 +22,15 @@
   }
 $!MEMBERS
 
-  @DomName('MouseEvent.clientX')
-  @DomName('MouseEvent.clientY')
-  Point get client => new Point/*<num>*/(_clientX, _clientY);
+  @DomName('MouseEvent.clientX') @DomName('MouseEvent.clientY')
+  Point get client => new Point(_clientX, _clientY);
 
   @DomName('MouseEvent.movementX')
   @DomName('MouseEvent.movementY')
   @SupportedBrowser(SupportedBrowser.CHROME)
   @SupportedBrowser(SupportedBrowser.FIREFOX)
   @Experimental()
-  Point get movement => new Point/*<num>*/(_movementX, _movementY);
+  Point get movement => new Point(_movementX, _movementY);
 
   /**
    * The coordinates of the mouse pointer in target node coordinates.
@@ -44,7 +43,7 @@
     if (JS('bool', '!!#.offsetX', this)) {
       var x = JS('int', '#.offsetX', this);
       var y = JS('int', '#.offsetY', this);
-      return new Point/*<num>*/(x, y);
+      return new Point(x, y);
     } else {
       // Firefox does not support offsetX.
       if (!(this.target is Element)) {
@@ -53,21 +52,21 @@
       }
       Element target = this.target;
       var point = (this.client - target.getBoundingClientRect().topLeft);
-      return new Point/*<num>*/(point.x.toInt(), point.y.toInt());
+      return new Point(point.x.toInt(), point.y.toInt());
     }
   }
 
   @DomName('MouseEvent.screenX')
   @DomName('MouseEvent.screenY')
-  Point get screen => new Point/*<num>*/(_screenX, _screenY);
+  Point get screen => new Point(_screenX, _screenY);
 
   @DomName('MouseEvent.layerX')
   @DomName('MouseEvent.layerY')
-  Point get layer => new Point/*<num>*/(_layerX, _layerY);
+  Point get layer => new Point(_layerX, _layerY);
 
   @DomName('MouseEvent.pageX')
   @DomName('MouseEvent.pageY')
-  Point get page => new Point/*<num>*/(_pageX, _pageY);
+  Point get page => new Point(_pageX, _pageY);
 
   @DomName('MouseEvent.dataTransfer')
   DataTransfer get dataTransfer => JS('DataTransfer', "#['dataTransfer']", this);
diff --git a/tools/dom/templates/html/impl/impl_ClientRect.darttemplate b/tools/dom/templates/html/impl/impl_ClientRect.darttemplate
index f52240a..22f115e 100644
--- a/tools/dom/templates/html/impl/impl_ClientRect.darttemplate
+++ b/tools/dom/templates/html/impl/impl_ClientRect.darttemplate
@@ -89,11 +89,11 @@
            another.y <= top + height;
   }
 
-  Point get topLeft => new Point/*<num>*/(this.left, this.top);
-  Point get topRight => new Point/*<num>*/(this.left + this.width, this.top);
-  Point get bottomRight => new Point/*<num>*/(this.left + this.width,
+  Point get topLeft => new Point(this.left, this.top);
+  Point get topRight => new Point(this.left + this.width, this.top);
+  Point get bottomRight => new Point(this.left + this.width,
       this.top + this.height);
-  Point get bottomLeft => new Point/*<num>*/(this.left,
+  Point get bottomLeft => new Point(this.left,
       this.top + this.height);
 
   $!MEMBERS}
diff --git a/tools/dom/templates/html/impl/impl_DOMRectReadOnly.darttemplate b/tools/dom/templates/html/impl/impl_DOMRectReadOnly.darttemplate
index e9bf8a6..b17b5bc 100644
--- a/tools/dom/templates/html/impl/impl_DOMRectReadOnly.darttemplate
+++ b/tools/dom/templates/html/impl/impl_DOMRectReadOnly.darttemplate
@@ -89,11 +89,11 @@
            another.y <= top + height;
   }
 
-  Point get topLeft => new Point/*<num>*/(this.left, this.top);
-  Point get topRight => new Point/*<num>*/(this.left + this.width, this.top);
-  Point get bottomRight => new Point/*<num>*/(this.left + this.width,
+  Point get topLeft => new Point(this.left, this.top);
+  Point get topRight => new Point(this.left + this.width, this.top);
+  Point get bottomRight => new Point(this.left + this.width,
       this.top + this.height);
-  Point get bottomLeft => new Point/*<num>*/(this.left,
+  Point get bottomLeft => new Point(this.left,
       this.top + this.height);
 
   $!MEMBERS}
diff --git a/tools/dom/templates/html/impl/impl_Document.darttemplate b/tools/dom/templates/html/impl/impl_Document.darttemplate
index de981bc..a745435 100644
--- a/tools/dom/templates/html/impl/impl_Document.darttemplate
+++ b/tools/dom/templates/html/impl/impl_Document.darttemplate
@@ -25,8 +25,8 @@
    * For details about CSS selector syntax, see the
    * [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
    */
-  ElementList<Element /*=T*/> querySelectorAll/*<T extends Element>*/(String selectors) =>
-    new _FrozenElementList/*<T>*/._wrap(_querySelectorAll(selectors));
+  ElementList<T> querySelectorAll<T extends Element>(String selectors) =>
+    new _FrozenElementList<T>._wrap(_querySelectorAll(selectors));
 
   /**
    * Alias for [querySelector]. Note this function is deprecated because its
@@ -44,7 +44,7 @@
   @deprecated
   @Experimental()
   @DomName('Document.querySelectorAll')
-  ElementList<Element /*=T*/> queryAll/*<T extends Element>*/(String relativeSelectors) =>
+  ElementList<T> queryAll<T extends Element>(String relativeSelectors) =>
       querySelectorAll(relativeSelectors);
 
   /// Checks if [registerElement] is supported on the current platform.
diff --git a/tools/dom/templates/html/impl/impl_DocumentFragment.darttemplate b/tools/dom/templates/html/impl/impl_DocumentFragment.darttemplate
index ea1830d..7b38a34 100644
--- a/tools/dom/templates/html/impl/impl_DocumentFragment.darttemplate
+++ b/tools/dom/templates/html/impl/impl_DocumentFragment.darttemplate
@@ -55,8 +55,8 @@
    * For details about CSS selector syntax, see the
    * [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
    */
-  ElementList<Element /*=T*/> querySelectorAll/*<T extends Element>*/(String selectors) =>
-    new _FrozenElementList/*<T>*/._wrap(_querySelectorAll(selectors));
+  ElementList<T> querySelectorAll<T extends Element>(String selectors) =>
+    new _FrozenElementList<T>._wrap(_querySelectorAll(selectors));
 
 
   String get innerHtml {
@@ -114,7 +114,7 @@
   @deprecated
   @Experimental()
   @DomName('DocumentFragment.querySelectorAll')
-  ElementList<Element /*=T*/> queryAll/*<T extends Element>*/(String relativeSelectors) =>
+  ElementList<T> queryAll<T extends Element>(String relativeSelectors) =>
     querySelectorAll(relativeSelectors);
 $!MEMBERS
 }
diff --git a/tools/dom/templates/html/impl/impl_Element.darttemplate b/tools/dom/templates/html/impl/impl_Element.darttemplate
index aa72eef..4ec5836 100644
--- a/tools/dom/templates/html/impl/impl_Element.darttemplate
+++ b/tools/dom/templates/html/impl/impl_Element.darttemplate
@@ -599,8 +599,8 @@
    * [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
    */
   @DomName('Element.querySelectorAll')
-  ElementList<Element /*=T*/> querySelectorAll/*<T extends Element>*/(String selectors) =>
-    new _FrozenElementList/*<T>*/._wrap(_querySelectorAll(selectors));
+  ElementList<T> querySelectorAll<T extends Element>(String selectors) =>
+    new _FrozenElementList<T>._wrap(_querySelectorAll(selectors));
 
   /**
    * Alias for [querySelector]. Note this function is deprecated because its
@@ -618,7 +618,7 @@
   @deprecated
   @DomName('Element.querySelectorAll')
   @Experimental()
-  ElementList<Element /*=T*/> queryAll/*<T extends Element>*/(String relativeSelectors) =>
+  ElementList<T> queryAll<T extends Element>(String relativeSelectors) =>
       querySelectorAll(relativeSelectors);
 
   /**
@@ -1230,13 +1230,13 @@
     bool sameAsParent = identical(current, parent);
     bool foundAsParent = sameAsParent || parent.tagName == 'HTML';
     if (current == null || sameAsParent) {
-      if (foundAsParent) return new Point/*<num>*/(0, 0);
+      if (foundAsParent) return new Point(0, 0);
       throw new ArgumentError("Specified element is not a transitive offset "
           "parent of this element.");
     }
     Element parentOffset = current.offsetParent;
     Point p = Element._offsetToHelper(parentOffset, parent);
-    return new Point/*<num>*/(p.x + current.offsetLeft, p.y + current.offsetTop);
+    return new Point(p.x + current.offsetLeft, p.y + current.offsetTop);
   }
 
   static HtmlDocument _parseDocument;
diff --git a/tools/dom/templates/html/impl/impl_IDBFactory.darttemplate b/tools/dom/templates/html/impl/impl_IDBFactory.darttemplate
index 99358a4..eaed1fe 100644
--- a/tools/dom/templates/html/impl/impl_IDBFactory.darttemplate
+++ b/tools/dom/templates/html/impl/impl_IDBFactory.darttemplate
@@ -92,12 +92,12 @@
  * Ties a request to a completer, so the completer is completed when it succeeds
  * and errors out when the request errors.
  */
-Future/*<T>*/ _completeRequest/*<T>*/(Request request) {
-  var completer = new Completer/*<T>*/.sync();
+Future<T> _completeRequest<T>(Request request) {
+  var completer = new Completer<T>.sync();
   // TODO: make sure that completer.complete is synchronous as transactions
   // may be committed if the result is not processed immediately.
   request.onSuccess.listen((e) {
-    dynamic/*=T*/ result = request.result;
+    T result = request.result;
     completer.complete(result);
   });
   request.onError.listen(completer.completeError);
diff --git a/tools/dom/templates/html/impl/impl_Touch.darttemplate b/tools/dom/templates/html/impl/impl_Touch.darttemplate
index 091d282..7f599fa 100644
--- a/tools/dom/templates/html/impl/impl_Touch.darttemplate
+++ b/tools/dom/templates/html/impl/impl_Touch.darttemplate
@@ -21,15 +21,15 @@
 
   @DomName('Touch.clientX')
   @DomName('Touch.clientY')
-  Point get client => new Point/*<num>*/(__clientX, __clientY);
+  Point get client => new Point(__clientX, __clientY);
 
   @DomName('Touch.pageX')
   @DomName('Touch.pageY')
-  Point get page => new Point/*<num>*/(__pageX, __pageY);
+  Point get page => new Point(__pageX, __pageY);
 
   @DomName('Touch.screenX')
   @DomName('Touch.screenY')
-  Point get screen => new Point/*<num>*/(__screenX, __screenY);
+  Point get screen => new Point(__screenX, __screenY);
 
   @DomName('Touch.radiusX')
   @DocsEditable()
diff --git a/tools/dom/templates/html/impl/impl_Window.darttemplate b/tools/dom/templates/html/impl/impl_Window.darttemplate
index 672988b..d01250e 100644
--- a/tools/dom/templates/html/impl/impl_Window.darttemplate
+++ b/tools/dom/templates/html/impl/impl_Window.darttemplate
@@ -313,7 +313,7 @@
     return new _ElementEventStreamImpl<BeforeUnloadEvent>(e, _eventType, useCapture);
   }
 
-  ElementStream<BeforeUnloadEvent> _forElementList(ElementList e,
+  ElementStream<BeforeUnloadEvent> _forElementList(ElementList<Element> e,
       {bool useCapture: false}) {
     // Specify the generic type for _ElementEventStreamImpl only in dart2js.
     return new _ElementListEventStreamImpl<BeforeUnloadEvent>(e, _eventType, useCapture);
diff --git a/tools/gardening/README.md b/tools/gardening/README.md
index a4dbf00..c9854d5 100644
--- a/tools/gardening/README.md
+++ b/tools/gardening/README.md
@@ -8,6 +8,7 @@
 The current (working) tools are:
 
 - [results](#results)
+- [status_overlapping](#status_overlapping)
 - [compare_failures](#compare_failures)
 - [status_summary](#status_summary)
 - [current_summary](#current_summary)
@@ -140,6 +141,52 @@
 
 To change the output directory, use the `--output-directory` option.
 
+## status_overlapping ##
+
+If a test appears in multiple sections whose conditions are simultaneously true,
+the test's expectations is the union of the applicable entries. It's often
+unintended and undesirable to have overlapping sections for this reason. To find
+overlapping sections, run:
+
+```console
+dart tools/gardening/bin/status_overlapping.dart <suite>
+```
+
+or
+
+```console
+dart tools/gardening/bin/status_overlapping.dart <suite> <test>
+```
+
+Example output can be:
+```console
+...
+~/dart-sdk/sdk/tests/lib_2/lib_2_analyzer.status
+	5: [ $compiler == dart2analyzer ]
+		9: mirrors/deferred_mirrors_metadata_test: [Fail]
+		10: mirrors/deferred_type_test: [StaticWarning, OK]
+		11: mirrors/generic_f_bounded_mixin_application_test: [StaticWarning]
+		12: mirrors/mirrors_nsm_mismatch_test: [StaticWarning, OK]
+		13: mirrors/mirrors_nsm_test: [StaticWarning, OK]
+		14: mirrors/mirrors_nsm_test/dart2js: [StaticWarning, OK]
+		17: mirrors/repeated_private_anon_mixin_app_test: [StaticWarning, OK]
+
+	19: [ $compiler == dart2analyzer && $strong ]
+		21: mirrors/deferred_mirrors_metadata_test: [StaticWarning]
+		22: mirrors/deferred_type_test: [CompileTimeError, OK]
+		23: mirrors/generic_f_bounded_mixin_application_test: [CompileTimeError]
+		24: mirrors/mirrors_nsm_mismatch_test: [CompileTimeError, OK]
+		25: mirrors/mirrors_nsm_test: [CompileTimeError, OK]
+		26: mirrors/mirrors_nsm_test/dart2js: [CompileTimeError, OK]
+		28: mirrors/repeated_private_anon_mixin_app_test: [CompileTimeError, OK]
+...
+```
+
+Notice that the sections overlap, but there may not be any relationship between
+entries in a section or file, ex. line 9 and 21. This is easier to see if
+overlapping entries are grouped by tests. To divide overlapping sections and
+entries into tests, use --print-test.
+
 ## compare_failures ##
 This tool compares a test log of a build step with previous builds. This is
 particularly useful to detect changes over time, such as flakiness of failures,
diff --git a/tools/gardening/bin/results_get.dart b/tools/gardening/bin/results_get.dart
index 7ac6c98..73b8bb9 100644
--- a/tools/gardening/bin/results_get.dart
+++ b/tools/gardening/bin/results_get.dart
@@ -2,18 +2,15 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 import 'dart:async';
-import 'dart:io';
 import 'package:args/command_runner.dart';
 import 'package:args/args.dart';
-import 'package:gardening/src/luci.dart';
-import 'package:gardening/src/luci_api.dart';
 import 'package:gardening/src/results/status_expectations.dart';
 import 'package:gardening/src/results/status_files.dart';
+import 'package:gardening/src/results/test_result_helper.dart';
 import 'package:gardening/src/results/test_result_service.dart';
 import 'package:gardening/src/util.dart';
 import 'package:gardening/src/console_table.dart';
-import 'package:gardening/src/results/result_models.dart' as models;
-import 'package:gardening/src/results/util.dart';
+import 'package:gardening/src/results/result_json_models.dart' as models;
 import 'package:gardening/src/buildbucket.dart';
 import 'package:gardening/src/extended_printer.dart';
 
@@ -34,17 +31,6 @@
   return new ConsoleTable(template: rows);
 }
 
-/// Determine if arguments is a CQ url or commit-number + patchset.
-bool isCqInput(ArgResults argResults) {
-  if (argResults.rest.length == 1) {
-    return isSwarmingTaskUrl(argResults.rest.first);
-  }
-  if (argResults.rest.length == 2) {
-    return areNumbers(argResults.rest);
-  }
-  return false;
-}
-
 String howToUse(String command) {
   return "Use by calling one of the following:\n\n"
       "\tget $command <file>                     : for a local result.log file.\n"
@@ -56,93 +42,6 @@
       "\tget $command <builder_group>            : for a builder group.\n";
 }
 
-/// Utility method to get a single test-result no matter what has been passed in
-/// as arguments. The test-result can either be from a builder-group, a single
-/// build on a builder or from a log.
-Future<models.TestResult> getTestResult(ArgResults argResults) async {
-  if (argResults.rest.length == 0) {
-    print("No result.log file given as argument.");
-    print(howToUse(argResults.name));
-    return null;
-  }
-
-  var logger = createLogger();
-  var cache = createCacheFunction(logger);
-  var testResultService = new TestResultService(logger, cache);
-
-  String firstArgument = argResults.rest.first;
-
-  var luciApi = new LuciApi();
-  bool isBuilderGroup = (await getBuilderGroups(luciApi, DART_CLIENT, cache()))
-      .any((builder) => builder == firstArgument);
-  bool isBuilder = (await getAllBuilders(luciApi, DART_CLIENT, cache()))
-      .any((builder) => builder == firstArgument);
-
-  if (argResults.rest.length == 1) {
-    if (argResults.rest.first.startsWith("http")) {
-      return testResultService.fromLogdog(firstArgument);
-    } else if (isBuilderGroup) {
-      return testResultService.forBuilderGroup(firstArgument);
-    } else if (isBuilder) {
-      return testResultService.latestForBuilder(BUILDER_PROJECT, firstArgument);
-    }
-  }
-
-  var file = new File(argResults.rest.first);
-  if (await file.exists()) {
-    return testResultService.getFromFile(file);
-  }
-
-  if (argResults.rest.length == 2 &&
-      isBuilder &&
-      isNumber(argResults.rest[1])) {
-    var buildNumber = int.parse(argResults.rest[1]);
-    return testResultService.forBuild(
-        BUILDER_PROJECT, argResults.rest[0], buildNumber);
-  }
-
-  print("Too many arguments passed to command or arguments were incorrect.");
-  print(howToUse(argResults.name));
-  return null;
-}
-
-/// Utility method to get test results from the CQ.
-Future<Iterable<BuildBucketTestResult>> getTestResultsFromCq(
-    ArgResults argResults) async {
-  if (argResults.rest.length == 0) {
-    print("No result.log file given as argument.");
-    print(howToUse(argResults.name));
-    return null;
-  }
-
-  var logger = createLogger();
-  var createCache = createCacheFunction(logger);
-  var testResultService = new TestResultService(logger, createCache);
-
-  String firstArgument = argResults.rest.first;
-
-  if (argResults.rest.length == 1) {
-    if (!isSwarmingTaskUrl(firstArgument)) {
-      print("URI does not match "
-          "`https://ci.chromium.org/swarming/task/<taskid>?server...`.");
-      print(howToUse(argResults.name));
-      return null;
-    }
-    String swarmingTaskId = getSwarmingTaskId(firstArgument);
-    return await testResultService.getFromSwarmingTaskId(swarmingTaskId);
-  }
-
-  if (argResults.rest.length == 2 && areNumbers(argResults.rest)) {
-    int changeNumber = int.parse(firstArgument);
-    int patchset = int.parse(argResults.rest.last);
-    return await testResultService.fromGerrit(changeNumber, patchset);
-  }
-
-  print("Too many arguments passed to command or arguments were incorrect.");
-  print(howToUse(argResults.name));
-  return null;
-}
-
 /// [GetCommand] handles when given command 'get' and expect a sub-command.
 class GetCommand extends Command {
   @override
@@ -162,7 +61,8 @@
 /// returns a list of tests with their respective results.
 class GetTestsWithResultCommand extends Command {
   @override
-  String get description => "Get results for tests.";
+  String get description => "Get a list of tests with their respective "
+      "results from result.logs found from input.";
 
   @override
   String get name => "tests";
@@ -172,8 +72,10 @@
   }
 
   Future run() async {
-    models.TestResult testResults = await getTestResult(argResults);
+    models.TestResult testResults =
+        await getTestResultFromBuilder(argResults.rest);
     if (testResults == null) {
+      print(howToUse("tests"));
       return;
     }
     var outputTable = getOutputTable(argResults)
@@ -191,10 +93,11 @@
 /// 'result' and returns a list of tests with their result and expectations.
 class GetTestsWithResultAndExpectationCommand extends Command {
   @override
-  String get description => "Get results and expectations for tests.";
+  String get description => "Get a list of tests with their respective "
+      "results and expectations from result.logs found from input.";
 
   @override
-  String get name => "results";
+  String get name => "tests-with-expectations";
 
   GetTestsWithResultAndExpectationCommand() {
     buildArgs(argParser);
@@ -203,22 +106,27 @@
   Future run() async {
     models.TestResult testResult = null;
 
-    if (isCqInput(argResults)) {
+    if (isCqInput(argResults.rest)) {
       Iterable<BuildBucketTestResult> buildBucketTestResults =
-          await getTestResultsFromCq(argResults);
-      Iterable<models.TestResult> testResults =
-          buildBucketTestResults.map((build) => build.testResult);
-      testResult = new models.TestResult()..combineWith(testResults);
+          await getTestResultsFromCq(argResults.rest);
+      if (buildBucketTestResults != null) {
+        testResult = buildBucketTestResults.fold<models.TestResult>(
+            new models.TestResult(),
+            (combined, buildResult) => combined..combineWith([buildResult]));
+      }
     } else {
-      testResult = await getTestResult(argResults);
+      testResult = await getTestResultFromBuilder(argResults.rest);
     }
 
     if (testResult == null) {
+      print(howToUse("results"));
       return;
     }
 
+    var statusExpectations = new StatusExpectations(testResult);
+    await statusExpectations.loadStatusFiles();
     List<TestExpectationResult> withExpectations =
-        await getTestResultsWithExpectation(testResult);
+        statusExpectations.getTestResultsWithExpectation();
 
     var outputTable = getOutputTable(argResults)
       ..addHeader(new Column("Test", width: 38), (TestExpectationResult item) {
@@ -241,7 +149,8 @@
 /// returns only the failing tests.
 class GetTestFailuresCommand extends Command {
   @override
-  String get description => "Get failures of tests.";
+  String get description => "Get a list of tests with their respective "
+      "results and expectations from result.logs found from input.";
 
   @override
   String get name => "failures";
@@ -250,52 +159,40 @@
     buildArgs(argParser);
   }
 
-  Future run() {
-    if (isCqInput(argResults)) {
-      return handleCqInput(argResults);
+  Future run() async {
+    List<models.TestResult> testResults = [];
+    if (isCqInput(argResults.rest)) {
+      var buildBucketResults = await getTestResultsFromCq(argResults.rest);
+      if (buildBucketResults == null) {
+        print(howToUse("failures"));
+        return;
+      }
+      testResults.addAll(buildBucketResults);
     } else {
-      return handleBuildbotInput(argResults);
-    }
-  }
-
-  Future handleCqInput(ArgResults argResults) async {
-    Iterable<BuildBucketTestResult> buildBucketTestResults =
-        await getTestResultsFromCq(argResults);
-
-    if (buildBucketTestResults == null) {
-      return;
+      var testResult = await getTestResultFromBuilder(argResults.rest);
+      if (testResult == null) {
+        print(howToUse("failures"));
+        return;
+      }
+      testResults.add(testResult);
     }
 
     print("All result logs fetched.");
     print("Calling test.py to find statuses for each test.");
     print("");
 
-    for (var buildResult in buildBucketTestResults) {
-      printBuild(buildResult.build);
+    for (var testResult in testResults) {
+      if (testResult is BuildBucketTestResult) {
+        printBuild(testResult.build);
+      }
+      var statusExpectations = new StatusExpectations(testResult);
+      await statusExpectations.loadStatusFiles();
       List<TestExpectationResult> results =
-          await getTestResultsWithExpectation(buildResult.testResult);
+          statusExpectations.getTestResultsWithExpectation();
       printFailingTestExpectationResults(results);
       print("");
     }
   }
-
-  Future handleBuildbotInput(ArgResults argResults) async {
-    models.TestResult testResult = await getTestResult(argResults);
-
-    if (testResult == null) {
-      return;
-    }
-
-    print("All result logs fetched.");
-    var estimatedTime =
-        new Duration(milliseconds: testResult.results.length * 100 ~/ 1000);
-    print("Calling test.py to find status files for the configuration and "
-        "the expectation for ${testResult.results.length} tests. ");
-    List<TestExpectationResult> withExpectations =
-        await getTestResultsWithExpectation(testResult);
-    printFailingTestExpectationResults(withExpectations);
-    print("");
-  }
 }
 
 /// Prints a test result.
diff --git a/tools/gardening/bin/results_list.dart b/tools/gardening/bin/results_list.dart
index b05f0de..bf17290 100644
--- a/tools/gardening/bin/results_list.dart
+++ b/tools/gardening/bin/results_list.dart
@@ -6,7 +6,7 @@
 import 'package:args/args.dart';
 import 'package:args/command_runner.dart';
 import 'package:gardening/src/results/configurations.dart';
-import 'package:gardening/src/results/result_models.dart' as models;
+import 'package:gardening/src/results/result_json_models.dart' as models;
 import 'package:gardening/src/results/testpy_wrapper.dart';
 
 /// Helper function to add all standard arguments to the [argParser].
diff --git a/tools/gardening/bin/results_status.dart b/tools/gardening/bin/results_status.dart
index acfd07e..1193c41 100644
--- a/tools/gardening/bin/results_status.dart
+++ b/tools/gardening/bin/results_status.dart
@@ -3,214 +3,20 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'dart:async';
-import 'dart:io';
 
 import 'package:args/command_runner.dart';
-import 'package:gardening/src/cache_new.dart';
-import 'package:gardening/src/extended_printer.dart';
-import 'package:gardening/src/logger.dart';
-import 'package:gardening/src/luci.dart';
-import 'package:gardening/src/luci_api.dart';
-import 'package:gardening/src/results/configuration_environment.dart';
-import 'package:gardening/src/results/result_models.dart' as models;
-import 'package:gardening/src/results/status_files.dart';
-import 'package:gardening/src/results/test_result_service.dart';
-import 'package:gardening/src/results/testpy_wrapper.dart';
-import 'package:gardening/src/results/util.dart';
-import 'package:gardening/src/util.dart';
-import 'package:gardening/src/workflow/workflow.dart';
+import 'package:gardening/src/results_workflow/ask_for_logs.dart';
+import 'package:gardening/src/workflow.dart';
 
-import 'results_status_workflow.dart';
-
-/// Class [StatusCommand] handles the 'status' subcommand and provides
-/// sub-commands for interacting with status files.
+/// Class [StatusCommand] handles the 'status' sub-command to edit status files
+/// for result logs.
 class StatusCommand extends Command {
   @override
-  String get description => "Tools for checking and updating status files.";
-
-  @override
-  String get name => "status";
-
-  StatusCommand() {
-    addSubcommand(new CheckStatusCommand());
-    addSubcommand(new UpdateStatusCommand());
-  }
-}
-
-/// Class [CheckStatusCommand] checks a suite of status files for overlapping
-/// sections.
-class CheckStatusCommand extends Command {
-  String usage = "Usage: check <suite> or check <suite> <test>";
-
-  @override
-  String get description => "Checks a suite of status files for duplicate "
-      "entries. $usage";
-
-  @override
-  String get name => "check";
-
-  CheckStatusCommand() {
-    argParser.addFlag("print-test",
-        negatable: false, help: "Print entries in status files for each test");
-  }
-
-  Future run() async {
-    if (argResults.rest.length == 0 || argResults.rest.length > 2) {
-      print("Incorrect number of arguments.\n$usage");
-      return;
-    }
-
-    var suite = argResults.rest.first;
-    bool specificTest = argResults.rest.length == 2;
-
-    String testArg = specificTest ? "$suite/${argResults.rest.last}" : suite;
-
-    Map<String, Iterable<String>> statusFilesMap =
-        await statusFileListerMapFromArgs([testArg]);
-
-    var statusFilePaths = statusFilesMap[suite].map((file) {
-      return "${PathHelper.sdkRepositoryRoot()}/$file";
-    }).where((sf) {
-      return new File(sf).existsSync();
-    }).toList();
-
-    print("We need to download all latest configurations. "
-        "This may take some time...");
-
-    Logger logger = createLogger();
-    CreateCacheFunction createCache = createCacheFunction(logger);
-    WithCacheFunction dayCache = createCache(duration: new Duration(days: 1));
-
-    var luciApi = new LuciApi();
-    var primaryBuilders =
-        await getPrimaryBuilders(luciApi, DART_CLIENT, dayCache);
-    var testResultService = new TestResultService(logger, createCache);
-
-    StatusFiles statusFilesWrapper = StatusFiles.read(statusFilePaths);
-
-    List<models.TestResult> testResults =
-        await waitWithThrottle(primaryBuilders, 20, (builder) {
-      return testResultService.latestForBuilder(BUILDER_PROJECT, builder);
-    });
-
-    var allResults = testResults.fold<models.TestResult>(
-        new models.TestResult(),
-        (sum, testResult) => sum..combineWith([testResult]));
-
-    var activeConfigurations = await futureWhere(
-        allResults.configurations.values, (configuration) async {
-      // Check that this configuration is using the suite from arguments.
-      var confStatusFiles = await statusFileListerMap(configuration);
-      return statusFilesMap.keys
-          .any((testSuite) => confStatusFiles.containsKey(testSuite));
-    });
-
-    if (!specificTest) {
-      // Get all tests from test.py and check every one.
-      var suiteTests = await testsForSuite(suite);
-      _checkTests(
-          activeConfigurations,
-          suiteTests.map((test) => getQualifiedNameForTest(test)),
-          statusFilesWrapper);
-    } else {
-      _checkTests(
-          activeConfigurations, [argResults.rest.last], statusFilesWrapper);
-    }
-  }
-
-  void _checkTests(Iterable<models.Configuration> configurations,
-      Iterable<String> tests, StatusFiles statusFiles) {
-    int configurationLength = configurations.length;
-    int configurationCounter = 1;
-    var printer = new ExtendedPrinter();
-    for (var configuration in configurations) {
-      printer.preceding = "";
-      var conf = configuration
-          .toArgs(includeSelectors: false)
-          .map((arg) => arg.replaceAll("--", ""));
-      printer.println("");
-      printer.printLinePattern("=");
-      printer.println("Configuration $configurationCounter of "
-          "$configurationLength: ${conf.join(', ')}");
-      printer.printLinePattern("=");
-      printer.println("");
-      ConfigurationEnvironment environment =
-          new ConfigurationEnvironment(configuration);
-      Map<String, Iterable<StatusSectionEntry>> results = {};
-      for (var test in tests) {
-        Iterable<StatusSectionEntry> result =
-            statusFiles.sectionsWithTestForConfiguration(environment, test);
-        if (result.length > 1) {
-          results.putIfAbsent(test, () => result);
-        }
-      }
-      if (results.length > 0) {
-        if (argResults["print-test"]) {
-          printOverlappingSectionsForTest(printer, results);
-        } else {
-          printOverlappingSectionsForTestsGrouped(printer, results);
-        }
-      } else {
-        printer.println("No overlapping status sections.");
-      }
-      configurationCounter++;
-    }
-  }
-
-  void printOverlappingSectionsForTest(ExtendedPrinter printer,
-      Map<String, Iterable<StatusSectionEntry>> testSectionEntries) {
-    for (var test in testSectionEntries.keys) {
-      printer.println(test);
-      printer.printLinePattern("*");
-      printer.printIterable(testSectionEntries[test],
-          (StatusSectionEntry entry) {
-        return "${entry.section.lineNumber}: [ ${entry.section.condition} ] \n"
-            "\t${entry.entry.lineNumber}: ${entry.entry.path}: ${entry.entry.expectations}";
-      }, header: (StatusSectionEntry entry) {
-        return entry.statusFile.path;
-      }, itemPreceding: "\t");
-    }
-  }
-
-  void printOverlappingSectionsForTestsGrouped(ExtendedPrinter printer,
-      Map<String, Iterable<StatusSectionEntry>> testSectionEntries) {
-    Iterable<StatusSectionEntry> expandedResult =
-        testSectionEntries.values.expand((id) => id);
-    var allFiles = expandedResult.map((result) => result.statusFile).toSet();
-    for (var file in allFiles) {
-      printer.preceding = "";
-      printer.println(file.path);
-      var all = expandedResult.where((x) => x.statusFile == file).toList();
-      all.sort((a, b) => a.entry.lineNumber.compareTo(b.entry.lineNumber));
-      var sections = all.map((entry) => entry.section).toSet();
-      for (var section in sections) {
-        printer.preceding = "\t";
-        printer.println("${section.lineNumber}: [ ${section.condition} ]");
-        var entries = all
-            .where((entry) => entry.section == section)
-            .map((entry) => entry.entry)
-            .toSet();
-        printer.preceding = "\t\t";
-        for (var entry in entries) {
-          printer.println("${entry.lineNumber}: "
-              "${entry.path}: "
-              "${entry.expectations}");
-        }
-        printer.println("");
-      }
-    }
-  }
-}
-
-/// Class [UpdateStatusCommand] handles the 'status update' subcommand and
-/// updates status files.
-class UpdateStatusCommand extends Command {
-  @override
   String get description => "Update status files, from failure data and "
       "existing status entries.";
 
   @override
-  String get name => "update";
+  String get name => "status";
 
   Future run() async {
     var workflow = new Workflow();
diff --git a/tools/gardening/bin/results_status_workflow.dart b/tools/gardening/bin/results_status_workflow.dart
deleted file mode 100644
index fcc9fe9..0000000
--- a/tools/gardening/bin/results_status_workflow.dart
+++ /dev/null
@@ -1,106 +0,0 @@
-// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'dart:async';
-import 'package:gardening/src/results/result_models.dart' as models;
-import 'package:gardening/src/workflow/workflow.dart';
-
-Future<models.TestResult> getTestResults(String input) {
-  return new Future.value(new models.TestResult());
-}
-
-class AskForLogs extends WorkflowStep {
-  List<Future<models.TestResult>> futureTestResults = new List<Future>();
-
-  @override
-  Future<WorkflowAction> input(String input) {
-    // No input entered.
-    if (input == null || input.isEmpty && futureTestResults.length == 0) {
-      print("ERROR: Needs to add at least one result log.");
-      return new Future.value(new WaitForInputWorkflowAction());
-    }
-    // Navigate to next step.
-    if (input == null || input.isEmpty) {
-      return new Future.value(new NavigateStepWorkflowAction(
-          new ComputeStep(),
-          new ComputeStepPayload(Future.wait(futureTestResults),
-              "The tool is fetching result logs...", new PresentFailures())));
-    }
-
-    // Otherwise, add fetch results via future and return input to the user.
-    var newFutureTestResult = getTestResults(input);
-    if (newFutureTestResult == null) {
-      print("ERROR: The input '$input' is invalid.");
-    } else {
-      print("The tool is acquiring the logs from the input. Add another log or "
-          "<Enter> to continue.");
-      futureTestResults.add(newFutureTestResult);
-    }
-    return new Future.value(new WaitForInputWorkflowAction());
-  }
-
-  @override
-  Future<bool> onLeave() {
-    return new Future.value(false);
-  }
-
-  @override
-  Future<WorkflowAction> onShow(payload) async {
-    // This is the first step, so payload is disregarded.
-    if (futureTestResults.length == 0) {
-      askForInputFirstTime();
-      // prefetch builders
-    } else {
-      askForInputOtherTimes();
-    }
-    return new WaitForInputWorkflowAction();
-  }
-
-  void askForInputFirstTime() {
-    print("The tool needs to lookup tests and their expectations to make "
-        "suggestions. The more data-points the tool can find, the better it "
-        "can report on potential changes to status files.");
-    print("You can add test results by the following commands:");
-    print("\t<uri>                   : Either a relative file path, url to a "
-        "try builder or url to result log.");
-    print("\t<builder-group>         : The builder-group name.");
-    print("\t<builder-name>          : Name of the builder.");
-    print("\t<builder-name> <number> : Name and build number for a builder.");
-    print("\tall <commit>            : All bots for a commit (slow)");
-    print("\t<number> <patchset>     : The commit number and patchset "
-        "for a CL.");
-    print("");
-    print("Input one of the above commands to add a log:");
-  }
-
-  void askForInputOtherTimes() {
-    print("Add additional logs or write <Enter> to continue.");
-  }
-}
-
-class PresentFailures extends WorkflowStep<List<models.TestResult>> {
-  @override
-  Future<WorkflowAction> input(String input) {
-    if (input == "back") {
-      return new Future.value(new BackWorkflowAction());
-    }
-    return new Future.value(null);
-  }
-
-  @override
-  Future<bool> onLeave() {
-    return new Future.value(false);
-  }
-
-  @override
-  Future<WorkflowAction> onShow(List<models.TestResult> payload) {
-    print("The tool has observed that the following tests have failed. The "
-        "tests are grouped by their resulting expectation and all failing "
-        "configurations are shown below.");
-    print("If you would like to go back and add more result logs, type the "
-        "'back' command.");
-    print(payload.length);
-    return new Future.value(new WaitForInputWorkflowAction());
-  }
-}
diff --git a/tools/gardening/bin/status_overlapping.dart b/tools/gardening/bin/status_overlapping.dart
new file mode 100644
index 0000000..36b6cd9
--- /dev/null
+++ b/tools/gardening/bin/status_overlapping.dart
@@ -0,0 +1,223 @@
+// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:async';
+import 'dart:io';
+
+import 'package:args/args.dart';
+import 'package:status_file/src/expression.dart';
+import 'package:status_file/src/disjunctive.dart';
+
+import 'package:gardening/src/extended_printer.dart';
+import 'package:gardening/src/results/status_files.dart';
+import 'package:gardening/src/results/testpy_wrapper.dart';
+import 'package:gardening/src/util.dart';
+
+ArgParser buildParser() {
+  var argParser = new ArgParser();
+  argParser.addFlag("print-test",
+      negatable: false, help: "Print entries in status files for each test");
+  argParser.addFlag("help",
+      negatable: false, help: "Show information about the use of the tool.");
+  return argParser;
+}
+
+void printHelp(ArgParser argParser) {
+  print("Checks a suite of status files for duplicate "
+      "entries. Usage: status.dart <suite> or status.dart <suite> <test>");
+  print(argParser.usage);
+}
+
+Future main(List<String> args) async {
+  var argParser = buildParser();
+  var argResults = argParser.parse(args);
+  if (argResults['help']) {
+    printHelp(argParser);
+    return;
+  }
+  if (argResults.rest.length == 0 || argResults.rest.length > 2) {
+    print("Incorrect number of arguments.\n");
+    printHelp(argParser);
+    return;
+  }
+  var suite = argResults.rest.first;
+  bool hasSpecificTest = argResults.rest.length == 2;
+  String testArg = hasSpecificTest ? "$suite/${argResults.rest.last}" : suite;
+
+  Map<String, Iterable<String>> statusFilesMap =
+      await statusFileListerMapFromArgs([testArg]);
+  var statusFilePaths = statusFilesMap[suite].map((file) {
+    return "${PathHelper.sdkRepositoryRoot()}/$file";
+  }).where((sf) {
+    return new File(sf).existsSync();
+  }).toList();
+
+  StatusFiles statusFilesWrapper = StatusFiles.read(statusFilePaths);
+
+  Map<String, List<StatusSectionEntry>> testsWithOverlappingSections = {};
+  if (!hasSpecificTest) {
+    // Get all tests from test.py and check every one.
+    var suiteTests = await testsForSuite(suite);
+    testsWithOverlappingSections = getTestsThatOverlap(
+        suiteTests.map((test) => getQualifiedNameForTest(test)).toList(),
+        statusFilesWrapper);
+  } else {
+    testsWithOverlappingSections =
+        getTestsThatOverlap([argResults.rest.last], statusFilesWrapper);
+  }
+
+  if (testsWithOverlappingSections.isNotEmpty) {
+    ExtendedPrinter printer = new ExtendedPrinter();
+    if (argResults["print-test"]) {
+      printOverlappingSectionsForTest(printer, testsWithOverlappingSections);
+    } else {
+      printOverlappingSectionsForTestsGrouped(
+          printer, testsWithOverlappingSections);
+    }
+  } else {
+    print("No overlapping sections.");
+    print("");
+  }
+}
+
+/// Checks if [source] is a subset of [target], which is the same as checking
+/// [target] implies [source]. An expression can be either [VariableExpression],
+/// [ComparisonExpression], [NegationExpression] or [LogicExpression].
+///
+/// The only non-unary is [LogicExpression].
+///
+/// We assume [source] and [target] are on disjunctive normal form.
+///
+/// If source is null or have no operands, it is trivially a subset since
+/// everything implies [source].
+/// If target is null (and source is not null) then [source] can never be a
+/// subset.
+///
+/// In all other cases, we check if source or target is LogicExpression and is
+/// joined by or and split these up into smaller tests.
+bool isSubset(Expression source, Expression target) {
+  if (source == null || target == null) {
+    // This happens for the default region, which is always true.
+    return true;
+  }
+  if (source is LogicExpression && source.operands.isEmpty) {
+    return true;
+  }
+  if (target is LogicExpression && target.operands.isEmpty) {
+    return false;
+  }
+  if (source is LogicExpression && source.isOr) {
+    return source.operands.any((exp) => isSubset(exp, target));
+  }
+  if (target is LogicExpression && target.isOr) {
+    return target.operands.any((exp) => isSubsetNoDisjuncts(source, exp));
+  }
+  return isSubsetNoDisjuncts(source, target);
+}
+
+/// Should only be called if [source] and [target] is on disjunctive normal
+/// form and if the [LogicExpression] is not joined by or's.
+///
+/// It is easy to check if subset, by just casing.
+bool isSubsetNoDisjuncts(Expression source, Expression target) {
+  if (source is! LogicExpression && target is! LogicExpression) {
+    return source.compareTo(target) == 0;
+  }
+  if (source is! LogicExpression) {
+    return (target as LogicExpression)
+        .operands
+        .any((exp) => source.compareTo(exp) == 0);
+  }
+  if (source is LogicExpression &&
+      source.operands.length > 1 &&
+      target is! LogicExpression) {
+    return false;
+  }
+  if (source is LogicExpression &&
+      target is LogicExpression &&
+      source.operands.length > target.operands.length) {
+    return false;
+  }
+  var sourceLogic = source as LogicExpression;
+  var targetLogic = target as LogicExpression;
+  return sourceLogic.operands.every(
+      (exp1) => targetLogic.operands.any((exp2) => exp1.compareTo(exp2) == 0));
+}
+
+Map<String, List<StatusSectionEntry>> getTestsThatOverlap(
+    List<String> tests, StatusFiles statusFiles) {
+  var dnfExpressionsCache = <StatusSectionEntry, Expression>{};
+  Map<String, List<StatusSectionEntry>> results = {};
+  for (var test in tests) {
+    var sectionEntries = statusFiles.sectionsWithTest(test);
+    if (sectionEntries.length > 1) {
+      // Find out if two sections overlap
+      var overlapping = <StatusSectionEntry>[];
+      for (var i = 0; i < sectionEntries.length; i++) {
+        for (var j = i + 1; j < sectionEntries.length; j++) {
+          var dnfFirst = dnfExpressionsCache.putIfAbsent(
+              sectionEntries[i],
+              () =>
+                  toDisjunctiveNormalForm(sectionEntries[i].section.condition));
+          var dnfOther = dnfExpressionsCache.putIfAbsent(
+              sectionEntries[j],
+              () =>
+                  toDisjunctiveNormalForm(sectionEntries[j].section.condition));
+          if (isSubset(dnfFirst, dnfOther) || isSubset(dnfOther, dnfFirst)) {
+            overlapping.add(sectionEntries[i]);
+            overlapping.add(sectionEntries[j]);
+          }
+        }
+        if (overlapping.isNotEmpty) {
+          results[test] = overlapping;
+        }
+      }
+    }
+  }
+  return results;
+}
+
+void printOverlappingSectionsForTest(ExtendedPrinter printer,
+    Map<String, List<StatusSectionEntry>> testSectionEntries) {
+  for (var test in testSectionEntries.keys) {
+    printer.println(test);
+    printer.printLinePattern("*");
+    printer.printIterable(testSectionEntries[test], (StatusSectionEntry entry) {
+      return "${entry.section.lineNumber}: [ ${entry.section.condition} ]\n"
+          "\t${entry.entry.lineNumber}: ${entry.entry.path}: "
+          "${entry.entry.expectations}";
+    }, header: (StatusSectionEntry entry) {
+      return entry.statusFile.path;
+    }, itemPreceding: "\t");
+  }
+}
+
+void printOverlappingSectionsForTestsGrouped(ExtendedPrinter printer,
+    Map<String, List<StatusSectionEntry>> testSectionEntries) {
+  Iterable<StatusSectionEntry> expandedResult =
+      testSectionEntries.values.expand((id) => id);
+  var allFiles = expandedResult.map((result) => result.statusFile).toSet();
+  for (var file in allFiles) {
+    printer.preceding = "";
+    printer.println(file.path);
+    var all = expandedResult.where((x) => x.statusFile == file).toList();
+    all.sort((a, b) => a.entry.lineNumber.compareTo(b.entry.lineNumber));
+    var sections = all.map((entry) => entry.section).toSet();
+    for (var section in sections) {
+      printer.preceding = "\t";
+      printer.println("${section.lineNumber}: [ ${section.condition} ]");
+      var entries = all
+          .where((entry) => entry.section == section)
+          .map((entry) => entry.entry)
+          .toSet();
+      printer.preceding = "\t\t";
+      for (var entry in entries) {
+        printer.println("${entry.lineNumber}: "
+            "${entry.path}: "
+            "${entry.expectations}");
+      }
+      printer.println("");
+    }
+  }
+}
diff --git a/tools/gardening/lib/src/buildbot_loading.dart b/tools/gardening/lib/src/buildbot_loading.dart
index ea4e9e3..6a55fdc 100644
--- a/tools/gardening/lib/src/buildbot_loading.dart
+++ b/tools/gardening/lib/src/buildbot_loading.dart
@@ -6,8 +6,6 @@
 import 'dart:io';
 import 'cache_new.dart';
 import 'logdog_rpc.dart';
-import 'results/util.dart';
-
 import 'util.dart';
 
 import 'buildbot_structures.dart';
diff --git a/tools/gardening/lib/src/compare_failures_impl.dart b/tools/gardening/lib/src/compare_failures_impl.dart
index fcef3d5..bc4c895 100644
--- a/tools/gardening/lib/src/compare_failures_impl.dart
+++ b/tools/gardening/lib/src/compare_failures_impl.dart
@@ -7,7 +7,6 @@
 /// Use this to detect flakiness of failures, especially timeouts.
 
 import 'dart:async';
-import 'dart:io';
 
 import 'bot.dart';
 import 'buildbot_structures.dart';
diff --git a/tools/gardening/lib/src/extended_printer.dart b/tools/gardening/lib/src/extended_printer.dart
index fa76935..c92846b 100644
--- a/tools/gardening/lib/src/extended_printer.dart
+++ b/tools/gardening/lib/src/extended_printer.dart
@@ -42,8 +42,8 @@
   }
 
   /// Prints an iterable while maintaining state for index and preceding.
-  void printIterable<T>(Iterable<T> items, ItemCallBack cb,
-      {ItemCallBack header,
+  void printIterable<T>(Iterable<T> items, ItemCallBack<T> cb,
+      {ItemCallBack<T> header,
       String separatorPattern: "",
       String itemPreceding: ""}) {
     bool isFirst = true;
diff --git a/tools/gardening/lib/src/luci_api.dart b/tools/gardening/lib/src/luci_api.dart
index f3242fc..2a44833 100644
--- a/tools/gardening/lib/src/luci_api.dart
+++ b/tools/gardening/lib/src/luci_api.dart
@@ -91,7 +91,6 @@
 
   /// [_makeGetRequest] performs a get request to [uri].
   Future<String> _makeGetRequest(Uri uri) async {
-    String uriString = uri.toString();
     var request = await _client.getUrl(uri);
     var response = await request.close();
     if (response.statusCode != 200) {
diff --git a/tools/gardening/lib/src/results/configuration_environment.dart b/tools/gardening/lib/src/results/configuration_environment.dart
index ed50119..fb25d3e 100644
--- a/tools/gardening/lib/src/results/configuration_environment.dart
+++ b/tools/gardening/lib/src/results/configuration_environment.dart
@@ -7,7 +7,7 @@
 // and also information about test-suites.
 
 import 'package:status_file/environment.dart';
-import 'result_models.dart';
+import 'result_json_models.dart';
 import 'configurations.dart';
 
 typedef String _LookUpFunction(Configuration configuration);
@@ -20,7 +20,7 @@
       new _Variable.bool((c) => c.compiler == Compiler.dart2analyzer.name),
   "arch": new _Variable((c) => c.arch, Architecture.names),
   "browser": new _Variable.bool((c) {
-    var runtime = new Runtime.fromName(c.runtime);
+    var runtime = runtimeFromName(c.runtime);
     return runtime != null ? runtime.isBrowser : false;
   }),
   "builder_tag": new _Variable((c) => c.builderTag ?? "", const []),
@@ -35,16 +35,17 @@
   "hot_reload": new _Variable.bool((c) => c.hotReload),
   "hot_reload_rollback": new _Variable.bool((c) => c.hotReloadRollback),
   "ie": new _Variable.bool((c) {
-    var runtime = new Runtime.fromName(c.runtime);
+    var runtime = runtimeFromName(c.runtime);
     return runtime != null ? runtime.isIE : false;
   }),
   "jscl": new _Variable.bool((c) {
-    var runtime = new Runtime.fromName(c.runtime);
+    var runtime = runtimeFromName(c.runtime);
     return runtime != null ? runtime.isJSCommandLine : false;
   }),
   "minified": new _Variable.bool((c) => c.minified),
   "mode": new _Variable((c) => c.mode, Mode.names),
   "runtime": new _Variable(_runtimeName, Runtime.names),
+  "spec_parser": new _Variable.bool((c) => c.compiler == Compiler.specParser),
   "strong": new _Variable.bool((c) => c.strong),
   "system": new _Variable((c) => c.system, System.names),
   "use_sdk": new _Variable.bool((c) => c.useSdk)
diff --git a/tools/gardening/lib/src/results/configurations.dart b/tools/gardening/lib/src/results/configurations.dart
index 3c0a68a..09d900b 100644
--- a/tools/gardening/lib/src/results/configurations.dart
+++ b/tools/gardening/lib/src/results/configurations.dart
@@ -2,7 +2,11 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// Code from tools/testing/dart/configuration.dart
+Runtime runtimeFromName(name) {
+  return Runtime._all[name];
+}
+
+// Code from tools/testing/dart/configuration.dart starting with Architecture
 // TODO(mkroghj) add package with all settings, such as these
 // and also information about test-suites
 
@@ -35,7 +39,7 @@
     simarm64,
     simdbc,
     simdbc64
-  ], key: (architecture) => architecture.name);
+  ], key: (architecture) => (architecture as Architecture).name);
 
   static Architecture find(String name) {
     var architecture = _all[name];
@@ -57,6 +61,7 @@
   static const dart2js = const Compiler._('dart2js');
   static const dart2analyzer = const Compiler._('dart2analyzer');
   static const dartdevc = const Compiler._('dartdevc');
+  static const dartdevk = const Compiler._('dartdevk');
   static const appJit = const Compiler._('app_jit');
   static const dartk = const Compiler._('dartk');
   static const dartkp = const Compiler._('dartkp');
@@ -70,11 +75,12 @@
     dart2js,
     dart2analyzer,
     dartdevc,
+    dartdevk,
     appJit,
     dartk,
     dartkp,
-    specParser
-  ], key: (Compiler compiler) => compiler.name);
+    specParser,
+  ], key: (compiler) => (compiler as Compiler).name);
 
   static Compiler find(String name) {
     var compiler = _all[name];
@@ -111,8 +117,8 @@
           Runtime.safariMobileSim
         ];
 
-      case Compiler.dart2js:
       case Compiler.dartdevc:
+      case Compiler.dartdevk:
         // TODO(rnystrom): Expand to support other JS execution environments
         // (other browsers, d8) when tested and working.
         return const [
@@ -129,6 +135,8 @@
       case Compiler.precompiler:
       case Compiler.dartkp:
         return const [Runtime.dartPrecompiled];
+      case Compiler.specParser:
+        return const [Runtime.none];
       case Compiler.none:
         return const [
           Runtime.vm,
@@ -141,6 +149,32 @@
     throw "unreachable";
   }
 
+  /// The preferred runtime to use with this compiler if no other runtime is
+  /// specified.
+  Runtime get defaultRuntime {
+    switch (this) {
+      case Compiler.dart2js:
+        return Runtime.d8;
+      case Compiler.dartdevc:
+      case Compiler.dartdevk:
+        return Runtime.chrome;
+      case Compiler.dart2analyzer:
+        return Runtime.none;
+      case Compiler.appJit:
+      case Compiler.dartk:
+        return Runtime.vm;
+      case Compiler.precompiler:
+      case Compiler.dartkp:
+        return Runtime.dartPrecompiled;
+      case Compiler.specParser:
+        return Runtime.none;
+      case Compiler.none:
+        return Runtime.vm;
+    }
+
+    throw "unreachable";
+  }
+
   String toString() => "Compiler($name)";
 }
 
@@ -153,7 +187,7 @@
 
   static final _all = new Map<String, Mode>.fromIterable(
       [debug, product, release],
-      key: (Mode mode) => mode.name);
+      key: (mode) => (mode as Mode).name);
 
   static Mode find(String name) {
     var mode = _all[name];
@@ -185,7 +219,7 @@
 
   static final _all = new Map<String, Progress>.fromIterable(
       [compact, color, line, verbose, silent, status, buildbot, diff],
-      key: (Progress progress) => progress.name);
+      key: (progress) => (progress as Progress).name);
 
   static Progress find(String name) {
     var progress = _all[name];
@@ -242,7 +276,7 @@
     contentShellOnAndroid,
     selfCheck,
     none
-  ], key: (Runtime runtime) => runtime.name);
+  ], key: (runtime) => (runtime as Runtime).name);
 
   static Runtime find(String name) {
     // Allow "ff" as a synonym for Firefox.
@@ -258,10 +292,6 @@
 
   const Runtime._(this.name);
 
-  factory Runtime.fromName(name) {
-    return _all[name];
-  }
-
   bool get isBrowser => const [
         drt,
         ie9,
@@ -285,6 +315,43 @@
   /// If the runtime doesn't support `Window.open`, we use iframes instead.
   bool get requiresIFrame => !const [ie11, ie10].contains(this);
 
+  /// The preferred compiler to use with this runtime if no other compiler is
+  /// specified.
+  Compiler get defaultCompiler {
+    switch (this) {
+      case vm:
+      case flutter:
+      case drt:
+        return Compiler.none;
+
+      case dartPrecompiled:
+        return Compiler.precompiler;
+
+      case d8:
+      case jsshell:
+      case firefox:
+      case chrome:
+      case safari:
+      case ie9:
+      case ie10:
+      case ie11:
+      case opera:
+      case chromeOnAndroid:
+      case safariMobileSim:
+      case contentShellOnAndroid:
+        return Compiler.dart2js;
+
+      case selfCheck:
+        return Compiler.dartk;
+
+      case none:
+        // If we aren't running it, we probably just want to analyze it.
+        return Compiler.dart2analyzer;
+    }
+
+    throw "unreachable";
+  }
+
   String toString() => "Runtime($name)";
 }
 
@@ -299,7 +366,7 @@
 
   static final _all = new Map<String, System>.fromIterable(
       [android, fuchsia, linux, macos, windows],
-      key: (System system) => system.name);
+      key: (system) => (system as System).name);
 
   static System find(String name) {
     var system = _all[name];
@@ -312,5 +379,21 @@
 
   const System._(this.name);
 
+  /// The root directory name for build outputs on this system.
+  String get outputDirectory {
+    switch (this) {
+      case android:
+      case fuchsia:
+      case linux:
+      case windows:
+        return 'out/';
+
+      case macos:
+        return 'xcodebuild/';
+    }
+
+    throw "unreachable";
+  }
+
   String toString() => "System($name)";
 }
diff --git a/tools/gardening/lib/src/results/failing_test.dart b/tools/gardening/lib/src/results/failing_test.dart
new file mode 100644
index 0000000..e19a1e3
--- /dev/null
+++ b/tools/gardening/lib/src/results/failing_test.dart
@@ -0,0 +1,285 @@
+// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:status_file/canonical_status_file.dart';
+
+import 'result_json_models.dart';
+import '../results/configurations.dart';
+import '../results/status_expectations.dart';
+import '../results/status_files.dart';
+import '../util.dart';
+
+typedef SectionsSuggestion ComputeSectionsFunc(
+    List<Configuration> failingConfigurations,
+    List<Configuration> passingConfigurations,
+    StatusExpectations expectations,
+    String testName);
+
+/// [FailingTest] captures the essential information of a failing test, to
+/// suggest sections to be updated.
+class FailingTest {
+  /// [result] holds data from the actual running of the test, such as name and
+  /// outcome.
+  final Result result;
+
+  /// [TestResult] is the combined result for all tests in all configurations,
+  /// gathered from the result.logs.
+  final TestResult testResult;
+  final List<Configuration> failingConfigurations;
+  final List<Configuration> passingConfigurations;
+
+  FailingTest(this.result, this.testResult, this.failingConfigurations,
+      this.passingConfigurations);
+
+  // There are multiple strategies for finding candidate sections, which will
+  // then be presented to the user.
+  List<SectionsSuggestion> computeSections(StatusExpectations expectations) {
+    var computeSectionStrategies = <ComputeSectionsFunc>[
+      _findExistingFailingEntriesStrategy,
+      _failingSectionsIntersectionStrategy,
+      _statusSectionDifferenceStrategy
+    ];
+
+    // We remember all the sections already found by previous strategies. The
+    // most precise strategies should be called first, so a section is printed
+    // with the most accurate description of why it is a good candidate..
+    var seenSections = new Set<StatusSectionWithFile>();
+
+    var computedList = <SectionsSuggestion>[];
+    computeSectionStrategies.forEach((strategy) {
+      var suggestion = strategy(failingConfigurations, passingConfigurations,
+          expectations, result.name);
+      suggestion.sections = suggestion.sections
+          .where((section) => !seenSections.contains(section))
+          .toList();
+      if (suggestion != null && suggestion.sections.isNotEmpty) {
+        computedList.add(suggestion);
+        seenSections.addAll(suggestion.sections);
+      }
+    });
+    return computedList;
+  }
+
+  /// Checks, from [expectations], if the failing test is still failing.
+  bool stillFailing(StatusExpectations expectations) {
+    var testExpectations = expectations.getTestResultsWithExpectation();
+    return testExpectations
+        .where((expectation) =>
+            !expectation.isSuccess() && expectation.result == result)
+        .isNotEmpty;
+  }
+
+  /// Gets the status files for the suite this test belongs to.
+  List<StatusFile> statusFiles(StatusExpectations expectations) {
+    var testSuite = getSuiteNameForTest(result.name);
+    return expectations.statusFilesMaps[testSuite].statusFiles;
+  }
+
+  /// Gets all failing status entries. Test can still fail without having any
+  /// entries.
+  List<StatusSectionEntry> failingStatusEntries(
+      StatusExpectations expectations) {
+    var entries = _sectionEntriesForTestInConfigurations(
+        expectations, failingConfigurations, result.name,
+        success: false);
+    return new Set.from(entries).toList();
+  }
+
+  /// Gets the failing configurations not covered by expressions in [sections].
+  List<Configuration> failingConfigurationsNotCovered(
+      StatusExpectations expectations, List<StatusSectionWithFile> sections) {
+    return _configurationsNotCovered(
+        expectations, sections, this.failingConfigurations);
+  }
+
+  /// Gets the passing configurations not covered by expressions in [sections].
+  List<Configuration> passingConfigurationsNotCovered(
+      StatusExpectations expectations, List<StatusSectionWithFile> sections) {
+    return _configurationsNotCovered(
+        expectations, sections, this.passingConfigurations);
+  }
+
+  List<Configuration> _configurationsNotCovered(
+      StatusExpectations expectations,
+      List<StatusSectionWithFile> sections,
+      List<Configuration> configurations) {
+    List<Configuration> notCovered = [];
+    for (var configuration in configurations) {
+      var environment = expectations.configurationEnvironments[configuration];
+      if (!sections
+          .any((section) => section.section.condition.evaluate(environment))) {
+        notCovered.add(configuration);
+      }
+    }
+    return notCovered;
+  }
+}
+
+/// Finds status section entries (entries with a path and expectation), where
+/// the path matches the test name, in [statusExpectations] for the
+/// [configurations]. [success] can be used to further filter on the entries, by
+/// specifying if the status section entry should be successful, failing or both
+/// (null), when compared with the result from the test, in one of the
+/// configurations.
+List<StatusSectionEntry> _sectionEntriesForTestInConfigurations(
+    StatusExpectations statusExpectations,
+    List<Configuration> configurations,
+    String testName,
+    {bool success: null}) {
+  var expectations = statusExpectations.getTestResultsWithExpectation();
+  return expectations
+      .where((expectation) =>
+          configurations.contains(expectation.configuration) &&
+          expectation.result.name == testName &&
+          (success == null || expectation.isSuccess() == success))
+      .expand((testResult) => testResult.entries)
+      .toList();
+}
+
+/*********************************
+ * Strategies to find sections
+ *********************************/
+
+/// Strategy that returns all status headers that have a failing status entry
+/// for this test. For tests going from some failure to passing, this would be
+/// the preferred option.
+/// We are not guaranteed that any sections will cover all failing sections.
+SectionsSuggestion _findExistingFailingEntriesStrategy(
+    List<Configuration> failingConfigurations,
+    List<Configuration> passingConfigurations,
+    StatusExpectations expectations,
+    String testName) {
+  String description = "These sections already already have entries for this "
+      "test, that apply to at least one failing configuration";
+  var allEntries = new Set<StatusSectionEntry>.from(
+      _sectionEntriesForTestInConfigurations(
+          expectations, failingConfigurations, testName,
+          success: false));
+  var sections = allEntries
+      .map(
+          (entry) => new StatusSectionWithFile(entry.statusFile, entry.section))
+      .toList();
+  return new SectionsSuggestion(description, sections);
+}
+
+/// The [_failingSectionsIntersectionStrategy] will hopefully be the bread and
+/// butter strategy for most. It takes the intersection of all failing
+/// configurations enabled sections and subtracts the set of all sections
+/// enabled for the passing configurations.
+/// If a result is found, it is guaranteed to cover all the failing
+/// configurations and none of the passing configurations.
+SectionsSuggestion _failingSectionsIntersectionStrategy(
+    List<Configuration> failingConfigurations,
+    List<Configuration> passingConfigurations,
+    StatusExpectations expectations,
+    String testName) {
+  String description = "Every section listed here covers all failing"
+      "configurations and none of the passing configurations.";
+  var testSuite = getSuiteNameForTest(testName);
+  var configurationSections = <StatusSectionWithFile, List<Configuration>>{};
+  for (var configuration in failingConfigurations) {
+    var sections =
+        _sectionsFromConfiguration(expectations, configuration, testSuite);
+    for (var section in _filterSections(sections, testSuite, configuration)) {
+      configurationSections.putIfAbsent(section, () => [])..add(configuration);
+    }
+  }
+  var sections = new Set<StatusSectionWithFile>.from(configurationSections.keys
+      .where((key) =>
+          failingConfigurations.length == configurationSections[key].length));
+  if (sections.isEmpty) {
+    return new SectionsSuggestion(description, []);
+  }
+  for (var configuration in passingConfigurations) {
+    var sectionsToRemove =
+        _sectionsFromConfiguration(expectations, configuration, testSuite);
+    sections.removeAll(sectionsToRemove);
+  }
+  var sortedSections = sections.toList()
+    ..sort((a, b) => a.section.condition.compareTo(b.section.condition));
+  return new SectionsSuggestion(description, sortedSections);
+}
+
+/// The [_statusSectionDifferenceStrategy] takes the union of all enabled
+/// failing sections and subtracts all the enabled passing sections. We are
+/// guaranteed to not select a section that is enabled in a passing
+/// configuration, however, it is not guaranteed that a combination of the
+/// sections will cover all failing configurations.
+SectionsSuggestion _statusSectionDifferenceStrategy(
+    List<Configuration> failingConfigurations,
+    List<Configuration> passingConfigurations,
+    StatusExpectations expectations,
+    String testName) {
+  String description = "All sections cover one or more failing "
+      "configuration but none of the passing configurations.";
+  var configurationSections = <Configuration, Set<StatusSectionWithFile>>{};
+  var testSuite = getSuiteNameForTest(testName);
+  for (var configuration in failingConfigurations) {
+    var sections = _filterSections(
+        _sectionsFromConfiguration(expectations, configuration, testSuite),
+        testSuite,
+        configuration);
+    configurationSections[configuration] = new Set.from(sections);
+  }
+  for (var configuration in passingConfigurations) {
+    var sectionsToRemove =
+        _sectionsFromConfiguration(expectations, configuration, testSuite);
+    for (var failingSections in configurationSections.values) {
+      failingSections.removeAll(sectionsToRemove);
+    }
+  }
+  var sortedSections = configurationSections.values
+      .reduce((a, b) => a..addAll(b))
+      .toList()
+        ..sort((a, b) => a.section.condition.compareTo(b.section.condition));
+  return new SectionsSuggestion(description, sortedSections);
+}
+
+List<StatusSectionWithFile> _sectionsFromConfiguration(
+    StatusExpectations expectations,
+    Configuration configuration,
+    String testSuite) {
+  var environment = expectations.configurationEnvironments[configuration];
+  return expectations.statusFilesMaps[testSuite]
+      .sectionsForConfiguration(environment);
+}
+
+/// Filters section by not taking the default section, and also exclude status
+/// files of other compilers.
+List<StatusSectionWithFile> _filterSections(
+    List<StatusSectionWithFile> statusSections,
+    String suite,
+    Configuration configuration) {
+  String specificStatusFile =
+      configuration.compiler == Compiler.none ? "" : configuration.compiler;
+  if (configuration.compiler == Compiler.dartdevk.name) {
+    specificStatusFile = Compiler.dartdevc.name;
+  }
+  if (configuration.compiler == Compiler.dartk ||
+      configuration.compiler == Compiler.dartkp) {
+    specificStatusFile = "kernel";
+  }
+  if (specificStatusFile.isEmpty) {
+    return statusSections
+        .where((statusSection) => statusSection.section.condition != null);
+  } else {
+    return statusSections
+        .where((statusSection) =>
+            statusSection.section.condition != null &&
+            (statusSection.statusFile.path.endsWith("$suite.status") ||
+                statusSection.statusFile.path
+                    .endsWith("${suite}-$specificStatusFile.status") ||
+                statusSection.statusFile.path
+                    .endsWith("${suite}_$specificStatusFile.status")))
+        .toList();
+  }
+}
+
+/// A [SectionsSuggestion] object holds all the sections suggested by a
+/// strategy, and a description of that strategy.
+class SectionsSuggestion {
+  final String strategy;
+  List<StatusSectionWithFile> sections;
+  SectionsSuggestion(this.strategy, this.sections);
+}
diff --git a/tools/gardening/lib/src/results/result_models.dart b/tools/gardening/lib/src/results/result_json_models.dart
similarity index 100%
rename from tools/gardening/lib/src/results/result_models.dart
rename to tools/gardening/lib/src/results/result_json_models.dart
diff --git a/tools/gardening/lib/src/results/status_expectations.dart b/tools/gardening/lib/src/results/status_expectations.dart
index 9cc09d5..5131a48 100644
--- a/tools/gardening/lib/src/results/status_expectations.dart
+++ b/tools/gardening/lib/src/results/status_expectations.dart
@@ -7,55 +7,77 @@
 import 'package:gardening/src/results/configuration_environment.dart';
 import 'package:gardening/src/results/status_files.dart';
 
-import 'result_models.dart';
+import 'result_json_models.dart';
 import 'testpy_wrapper.dart';
-import 'util.dart';
+import '../util.dart';
 import 'package:status_file/expectation.dart';
 
-/// Finds the expectation for each test found in the [testResult] results and
-/// outputs if the test succeeded or failed.
-Future<List<TestExpectationResult>> getTestResultsWithExpectation(
-    TestResult testResult) async {
-  // Build expectations from configurations. Each configuration may test
-  // multiple test suites.
-  Map<String, ConfigurationEnvironment> configurationEnvironments = {};
-  Map<String, Map<String, StatusFiles>> statusFilesMaps = {};
-  await Future.wait(testResult.configurations.keys.map((key) async {
-    Configuration configuration = testResult.configurations[key];
-    configurationEnvironments[key] =
-        new ConfigurationEnvironment(configuration);
-    var statusFilePathsMap = await statusFileListerMap(configuration);
-    statusFilesMaps[key] = {};
-    statusFilePathsMap.keys.forEach((suite) {
-      var statusFilePaths = statusFilePathsMap[suite].map((file) {
+class StatusExpectations {
+  final TestResult testResult;
+
+  final Map<Configuration, ConfigurationEnvironment> configurationEnvironments =
+      {};
+  final Map<String, StatusFiles> statusFilesMaps = {};
+
+  bool _isLoaded = false;
+
+  StatusExpectations(this.testResult);
+
+  /// Build expectations from configurations. Each configuration may test
+  /// multiple test suites.
+  Future loadStatusFiles() async {
+    if (_isLoaded) {
+      return;
+    }
+
+    Map<String, Iterable<String>> suiteStatusFiles = {};
+
+    await Future.wait(testResult.configurations.keys.map((key) async {
+      Configuration configuration = testResult.configurations[key];
+      if (!configurationEnvironments.containsKey(key)) {
+        configurationEnvironments[configuration] =
+            new ConfigurationEnvironment(configuration);
+      }
+      // We allow overwriting, since status files for a suite does not change.
+      suiteStatusFiles.addAll(await statusFileListerMap(configuration));
+    }));
+
+    suiteStatusFiles.keys.forEach((suite) {
+      var statusFilePaths = suiteStatusFiles[suite].map((file) {
         return "${PathHelper.sdkRepositoryRoot()}/$file";
       }).where((sf) {
         return new File(sf).existsSync();
       }).toList();
-      statusFilesMaps[key][suite] = StatusFiles.read(statusFilePaths);
+      statusFilesMaps[suite] = StatusFiles.read(statusFilePaths);
     });
-  }));
 
-  List<TestExpectationResult> expectationResults = [];
-  testResult.results.forEach((result) {
-    try {
-      ConfigurationEnvironment environment =
-          configurationEnvironments[result.configuration];
-      var testSuite = getSuiteNameForTest(result.name);
-      StatusFiles expectationSuite =
-          statusFilesMaps[result.configuration][testSuite];
-      var qualifiedName = getQualifiedNameForTest(result.name);
-      var statusFileEntries = expectationSuite.sectionsWithTestForConfiguration(
-          environment, qualifiedName);
-      expectationResults.add(new TestExpectationResult(statusFileEntries,
-          result, testResult.configurations[result.configuration]));
-    } catch (ex, st) {
-      print(ex);
-      print(st);
-    }
-  });
+    _isLoaded = true;
+  }
 
-  return expectationResults;
+  /// Finds the expectation for each test found in the [testResult] results and
+  /// outputs if the test succeeded or failed. The status files must have been
+  /// loaded.
+  List<TestExpectationResult> getTestResultsWithExpectation() {
+    assert(_isLoaded);
+    List<TestExpectationResult> expectationResults = [];
+    testResult.results.forEach((result) {
+      try {
+        Configuration configuration =
+            testResult.configurations[result.configuration];
+        ConfigurationEnvironment environment =
+            configurationEnvironments[configuration];
+        var testSuite = getSuiteNameForTest(result.name);
+        StatusFiles expectationSuite = statusFilesMaps[testSuite];
+        var qualifiedName = getQualifiedNameForTest(result.name);
+        var statusFileEntries = expectationSuite
+            .sectionsWithTestForConfiguration(environment, qualifiedName);
+        expectationResults.add(new TestExpectationResult(
+            statusFileEntries, result, configuration));
+      } catch (ex) {}
+    });
+
+    return expectationResults;
+  }
 }
 
 /// [TestExpectationResult] contains information about the result of running a
@@ -87,7 +109,8 @@
       return _isSuccess;
     }
     Expectation outcome = Expectation.find(result.result);
-    Set<Expectation> testExpectations = _getTestExpectations();
+    Set<Expectation> testExpectations =
+        expectationsFromTest(result.testExpectations);
     Set<Expectation> expectationSet = expectations();
     _isSuccess = testExpectations.contains(outcome) ||
         expectationSet.contains(Expectation.skip) ||
@@ -97,20 +120,20 @@
         });
     return _isSuccess;
   }
+}
 
-  Set<Expectation> _getTestExpectations() {
-    if (result.testExpectations == null) {
-      return new Set<Expectation>();
-    }
-    return result.testExpectations.map((exp) {
-      if (exp == "static-type-warning") {
-        return Expectation.staticWarning;
-      } else if (exp == "runtime-error") {
-        return Expectation.runtimeError;
-      } else if (exp == "compile-time-error") {
-        return Expectation.compileTimeError;
-      }
-      return null;
-    }).toSet();
+Set<Expectation> expectationsFromTest(List<String> testExpectations) {
+  if (testExpectations == null) {
+    return new Set<Expectation>();
   }
+  return testExpectations.map((exp) {
+    if (exp == "static-type-warning") {
+      return Expectation.staticWarning;
+    } else if (exp == "runtime-error") {
+      return Expectation.runtimeError;
+    } else if (exp == "compile-time-error") {
+      return Expectation.compileTimeError;
+    }
+    return null;
+  }).toSet();
 }
diff --git a/tools/gardening/lib/src/results/status_files.dart b/tools/gardening/lib/src/results/status_files.dart
index 65e11cf..2494605 100644
--- a/tools/gardening/lib/src/results/status_files.dart
+++ b/tools/gardening/lib/src/results/status_files.dart
@@ -3,24 +3,28 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:gardening/src/results/configuration_environment.dart';
-import 'package:gardening/src/util.dart';
-import 'package:status_file/status_file.dart';
+import 'package:status_file/canonical_status_file.dart';
 
 class StatusFiles {
   Map<String, List<StatusSectionEntry>> _exactEntries = {};
   Map<StatusSectionEntry, List<RegExp>> _wildcardEntries = {};
+  List<StatusSectionWithFile> _sections = [];
+  final List<StatusFile> statusFiles;
 
   /// Constructs a [StatusFiles] from a list of status file paths.
   static StatusFiles read(Iterable<String> files) {
-    return new StatusFiles(files.map((file) {
+    var distinctFiles = new Set.from(files).toList();
+    return new StatusFiles(distinctFiles.map((file) {
       return new StatusFile.read(file);
     }).toList());
   }
 
-  StatusFiles(List<StatusFile> statusFiles) {
+  StatusFiles(this.statusFiles) {
     for (var file in statusFiles) {
       for (var section in file.sections) {
-        for (var entry in section.entries) {
+        _sections.add(new StatusSectionWithFile(file, section));
+        for (StatusEntry entry
+            in section.entries.where((entry) => entry is StatusEntry)) {
           var sectionEntry = new StatusSectionEntry(file, section, entry);
           if (entry.path.contains("*")) {
             _wildcardEntries[sectionEntry] = _processForMatching(entry.path);
@@ -34,20 +38,44 @@
 
   /// Gets all section entries with test-expectations for a configuration
   /// environment.
+  List<StatusSectionWithFile> sectionsForConfiguration(
+      ConfigurationEnvironment environment) {
+    return _sections.where((s) => s.section.isEnabled(environment)).toList();
+  }
+
+  /// Gets all section entries with test-expectations for a configuration
+  /// environment.
   List<StatusSectionEntry> sectionsWithTestForConfiguration(
       ConfigurationEnvironment environment, String testPath) {
+    return sectionsWithTest(testPath)
+        .where((entry) => entry.section.isEnabled(environment))
+        .toList();
+  }
+
+  /// Gets all section entries with test-expectations for a configuration
+  /// environment.
+  List<StatusSectionEntry> sectionsWithTest(String testPath) {
     List<StatusSectionEntry> matchingEntries = <StatusSectionEntry>[];
     if (_exactEntries.containsKey(testPath)) {
       matchingEntries.addAll(_exactEntries[testPath]);
     }
-    // Test if it is a multi test.
-    RegExp isMultiTestMatcher = new RegExp(r"^((.*)_(test|t\d+))\/[^\/]+$");
+    // Test if it is a multi test by matching finding the name of the test
+    // (either by the test name ending with _test/ or _t<nr>/ and cutting out
+    // the remaining, as long as it does not contain the word _test
+    RegExp isMultiTestMatcher = new RegExp(r"^((.*)_(test|t\d+))\/(.+)$");
     Match isMultiTestMatch = isMultiTestMatcher.firstMatch(testPath);
     if (isMultiTestMatch != null) {
       String testFile = isMultiTestMatch.group(1);
       if (_exactEntries.containsKey(testFile)) {
         matchingEntries.addAll(_exactEntries[testFile]);
       }
+      var multiTestParts = isMultiTestMatch.group(4).split('/');
+      for (var part in multiTestParts) {
+        testFile = "$testFile/$part";
+        if (_exactEntries.containsKey(testFile)) {
+          matchingEntries.addAll(_exactEntries[testFile]);
+        }
+      }
     }
 
     var parts = testPath.split('/');
@@ -59,9 +87,7 @@
       matchingEntries.add(entry);
     });
 
-    return matchingEntries
-        .where((entry) => entry.section.isEnabled(environment))
-        .toList();
+    return matchingEntries;
   }
 
   /// Processes the expectations for matching against filenames. Generates
@@ -82,3 +108,11 @@
   final StatusEntry entry;
   StatusSectionEntry(this.statusFile, this.section, this.entry);
 }
+
+/// [StatusSectionWithFile] holds information about a section and the status
+/// file it belongs to.
+class StatusSectionWithFile {
+  final StatusFile statusFile;
+  final StatusSection section;
+  StatusSectionWithFile(this.statusFile, this.section);
+}
diff --git a/tools/gardening/lib/src/results/test_result_helper.dart b/tools/gardening/lib/src/results/test_result_helper.dart
new file mode 100644
index 0000000..b394289
--- /dev/null
+++ b/tools/gardening/lib/src/results/test_result_helper.dart
@@ -0,0 +1,106 @@
+// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:async';
+import 'dart:io';
+
+import '../luci.dart';
+import '../luci_api.dart';
+import '../util.dart';
+import 'result_json_models.dart';
+import 'test_result_service.dart';
+
+Future<TestResult> getTestResult(List<String> arguments) async {
+  if (isCqInput(arguments)) {
+    Iterable<BuildBucketTestResult> buildBucketTestResults =
+        await getTestResultsFromCq(arguments);
+    if (buildBucketTestResults != null) {
+      return buildBucketTestResults.fold<TestResult>(new TestResult(),
+          (combined, buildResult) => combined..combineWith([buildResult]));
+    }
+  } else {
+    return await getTestResultFromBuilder(arguments);
+  }
+  return null;
+}
+
+/// Utility method to get a single test-result no matter what has been passed in
+/// as arguments. The test-result can either be from a builder-group, a single
+/// build on a builder or from a log.
+Future<TestResult> getTestResultFromBuilder(List<String> arguments) async {
+  if (arguments.isEmpty) {
+    print("No result.log file given as argument.");
+    return null;
+  }
+
+  var logger = createLogger();
+  var cache = createCacheFunction(logger);
+  var testResultService = new TestResultService(logger, cache);
+
+  String firstArgument = arguments.first;
+
+  var luciApi = new LuciApi();
+  bool isBuilderGroup = (await getBuilderGroups(luciApi, DART_CLIENT, cache()))
+      .any((builder) => builder == firstArgument);
+  bool isBuilder = (await getAllBuilders(luciApi, DART_CLIENT, cache()))
+      .any((builder) => builder == firstArgument);
+
+  if (arguments.length == 1) {
+    if (arguments.first.startsWith("http")) {
+      return testResultService.fromLogdog(firstArgument);
+    } else if (isBuilderGroup) {
+      return testResultService.forBuilderGroup(firstArgument);
+    } else if (isBuilder) {
+      return testResultService.latestForBuilder(BUILDER_PROJECT, firstArgument);
+    }
+  }
+
+  var file = new File(arguments.first);
+  if (await file.exists()) {
+    return testResultService.getFromFile(file);
+  }
+
+  if (arguments.length == 2 && isBuilder && isNumber(arguments.last)) {
+    var buildNumber = int.parse(arguments.last);
+    return testResultService.forBuild(
+        BUILDER_PROJECT, firstArgument, buildNumber);
+  }
+
+  print("Too many arguments passed to command or arguments were incorrect.");
+  return null;
+}
+
+/// Utility method to get test results from the CQ.
+Future<Iterable<BuildBucketTestResult>> getTestResultsFromCq(
+    List<String> arguments) async {
+  if (arguments.isEmpty) {
+    print("No result.log file given as argument.");
+    return null;
+  }
+
+  var logger = createLogger();
+  var createCache = createCacheFunction(logger);
+  var testResultService = new TestResultService(logger, createCache);
+
+  String firstArgument = arguments.first;
+
+  if (arguments.length == 1) {
+    if (!isSwarmingTaskUrl(firstArgument)) {
+      print("URI does not match "
+          "`https://ci.chromium.org/swarming/task/<taskid>?server...`.");
+      return null;
+    }
+    String swarmingTaskId = getSwarmingTaskId(firstArgument);
+    return await testResultService.getFromSwarmingTaskId(swarmingTaskId);
+  }
+
+  if (arguments.length == 2 && areNumbers(arguments)) {
+    int changeNumber = int.parse(firstArgument);
+    int patchset = int.parse(arguments.last);
+    return await testResultService.fromGerrit(changeNumber, patchset);
+  }
+
+  print("Too many arguments passed to command or arguments were incorrect.");
+  return null;
+}
diff --git a/tools/gardening/lib/src/results/test_result_service.dart b/tools/gardening/lib/src/results/test_result_service.dart
index 017ff36..f6a56d7 100644
--- a/tools/gardening/lib/src/results/test_result_service.dart
+++ b/tools/gardening/lib/src/results/test_result_service.dart
@@ -6,7 +6,7 @@
 import 'dart:async';
 import 'dart:convert';
 import 'dart:core';
-import 'result_models.dart';
+import 'result_json_models.dart';
 import '../logger.dart';
 import '../cache_new.dart';
 import '../logdog.dart';
@@ -14,7 +14,6 @@
 import '../luci_api.dart';
 import '../luci.dart';
 import '../buildbucket.dart';
-import 'util.dart';
 import '../util.dart';
 
 /// [TestResultService] provides functions to obtain [TestResult]s from logs.
@@ -166,7 +165,7 @@
       TestResult result = steps.fold(new TestResult(), (acc, buildStep) {
         return acc..combineWith([buildStep.testResult]);
       });
-      return new BuildBucketTestResult(build, result);
+      return new BuildBucketTestResult(build)..combineWith([result]);
     });
   }
 
@@ -228,10 +227,9 @@
 }
 
 /// Class that keeps track of a try build and the corresponding test result.
-class BuildBucketTestResult {
+class BuildBucketTestResult extends TestResult {
   final BuildBucketBuild build;
-  final TestResult testResult;
-  BuildBucketTestResult(this.build, this.testResult);
+  BuildBucketTestResult(this.build);
 }
 
 /// Class that keeps track of a test step and test result.
diff --git a/tools/gardening/lib/src/results/testpy_wrapper.dart b/tools/gardening/lib/src/results/testpy_wrapper.dart
index 2ec633f..29fb99d 100644
--- a/tools/gardening/lib/src/results/testpy_wrapper.dart
+++ b/tools/gardening/lib/src/results/testpy_wrapper.dart
@@ -2,11 +2,9 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-import 'dart:io';
 import 'dart:async';
 import 'package:path/path.dart' as path;
-import 'result_models.dart';
-import 'util.dart';
+import 'result_json_models.dart';
 import '../util.dart';
 
 /// Calls test.py with arguments gathered from a specific [configuration] and
diff --git a/tools/gardening/lib/src/results/util.dart b/tools/gardening/lib/src/results/util.dart
deleted file mode 100644
index b216948..0000000
--- a/tools/gardening/lib/src/results/util.dart
+++ /dev/null
@@ -1,92 +0,0 @@
-// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'result_models.dart';
-import 'dart:io';
-
-const String BUILDER_PROJECT = "chromium";
-
-/// [PathHelper] is a utility class holding information about static paths.
-class PathHelper {
-  static String testPyPath() {
-    var root = sdkRepositoryRoot();
-    return "${root}/tools/test.py";
-  }
-
-  static String _sdkRepositoryRoot;
-  static String sdkRepositoryRoot() {
-    return _sdkRepositoryRoot ??=
-        _findRoot(new Directory.fromUri(Platform.script));
-  }
-
-  static String _findRoot(Directory current) {
-    if (current.path.endsWith("sdk")) {
-      return current.path;
-    }
-    if (current.parent == null) {
-      print("Could not find the dart sdk folder. "
-          "Please run the tool in the root of the dart-sdk local repository.");
-      exit(1);
-    }
-    return _findRoot(current.parent);
-  }
-}
-
-/// Tests if all strings passed in [stringsToTest] are integers.
-bool areNumbers(Iterable<String> stringsToTest) {
-  RegExp isNumberRegExp = new RegExp(r"^\d+$");
-  return stringsToTest
-      .every((string) => isNumberRegExp.firstMatch(string) != null);
-}
-
-bool isNumber(String stringToTest) {
-  bool succeeded = true;
-  int.parse(stringToTest, onError: (String) {
-    succeeded = false;
-    return 0;
-  });
-  return succeeded;
-}
-
-/// Gets if the [url] is a swarming task url.
-bool isSwarmingTaskUrl(String url) {
-  return url.startsWith("https://ci.chromium.org/swarming");
-}
-
-/// Gets the swarming task id from the [url].
-String getSwarmingTaskId(String url) {
-  RegExp swarmingTaskIdInPathRegExp =
-      new RegExp(r"https:\/\/ci\.chromium\.org\/swarming\/task\/(.*)\?server");
-  Match swarmingTaskIdMatch = swarmingTaskIdInPathRegExp.firstMatch(url);
-  if (swarmingTaskIdMatch == null) {
-    return null;
-  }
-  return swarmingTaskIdMatch.group(1);
-}
-
-/// Returns the test-suite for [name].
-String getSuiteNameForTest(String name) {
-  var reg = new RegExp(r"^(.*?)\/.*$");
-  var match = reg.firstMatch(name);
-  if (match == null) {
-    return null;
-  }
-  return match.group(1);
-}
-
-/// Returns the qualified name (what to use in status-files) for a test with
-/// [name].
-String getQualifiedNameForTest(String name) {
-  if (name.startsWith("cc/")) {
-    return name;
-  }
-  return name.substring(name.indexOf("/") + 1);
-}
-
-/// Returns the reproduction command for test.py based on the [configuration]
-/// and [name].
-String getReproductionCommand(Configuration configuration, String name) {
-  var allArgs = configuration.toArgs(includeSelectors: false)..add(name);
-  return "${PathHelper.testPyPath()} ${allArgs.join(' ')}";
-}
diff --git a/tools/gardening/lib/src/results_workflow/ask_for_logs.dart b/tools/gardening/lib/src/results_workflow/ask_for_logs.dart
new file mode 100644
index 0000000..0f6fe70
--- /dev/null
+++ b/tools/gardening/lib/src/results_workflow/ask_for_logs.dart
@@ -0,0 +1,82 @@
+// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:async';
+
+import 'package:gardening/src/results/test_result_helper.dart';
+
+import 'present_failures.dart';
+import '../results/result_json_models.dart';
+import '../workflow.dart';
+
+class AskForLogs extends WorkflowStep {
+  List<TestResult> testResults = [];
+
+  @override
+  Future<WorkflowAction> onShow(payload) async {
+    // This is the first step, so payload is disregarded.
+    if (testResults.isEmpty) {
+      askForInputFirstTime();
+      // prefetch builders
+    } else {
+      askForInputOtherTimes();
+    }
+    return new WaitForInputWorkflowAction();
+  }
+
+  @override
+  Future<WorkflowAction> input(String input) async {
+    // No input entered.
+    if (input == null || input.isEmpty && testResults.length == 0) {
+      print("ERROR: Needs to add at least one result log.");
+      return new Future.value(new WaitForInputWorkflowAction());
+    }
+    // Navigate to next step.
+    if (input == null || input.isEmpty) {
+      return new Future.value(
+          new NavigateStepWorkflowAction(new PresentFailures(), testResults));
+    }
+    await getTestResult(input.split(' ')).then((testResult) {
+      if (testResult == null) {
+        print("ERROR: The input '$input' is invalid.");
+      } else {
+        testResults.add(testResult);
+      }
+    });
+    print("Add another log or press <Enter> to continue.");
+    return new Future.value(new WaitForInputWorkflowAction());
+  }
+
+  @override
+  Future<bool> onLeave() {
+    return new Future.value(false);
+  }
+
+  void askForInputFirstTime() {
+    print("The tool needs to lookup tests and their expectations to make "
+        "suggestions. The more data-points the tool can find, the better it "
+        "can report on potential changes to status files.");
+    print("");
+    print("IMPORTANT: If you experience failures on builders, the tool needs a "
+        "dimensionally close passing configuration, to compute a significant "
+        "difference. ");
+    print("For tests failures discovered locally, a similar configuration with "
+        "non-failing tests will often be available, confusing the tool. If you "
+        "are only relying on local changes, just add that single log and "
+        "continue.");
+    print("You can add test results by the following commands:");
+    print("<file>                     : for a local result.log file.\n"
+        "<uri_to_result_log>        : for direct links to result.logs.\n"
+        "<uri_try_bot>              : for links to try bot builders.\n"
+        "<commit_number> <patchset> : for links to try bot builders.\n"
+        "<builder>                  : for a builder name.\n"
+        "<builder> <build>          : for a builder and build number.\n"
+        "<builder_group>            : for a builder group.\n");
+    print("Input one of the above commands to add a log:");
+  }
+
+  void askForInputOtherTimes() {
+    print("Add additional logs or write <Enter> to continue.");
+  }
+}
diff --git a/tools/gardening/lib/src/results_workflow/fix_failing_test.dart b/tools/gardening/lib/src/results_workflow/fix_failing_test.dart
new file mode 100644
index 0000000..0dbacea
--- /dev/null
+++ b/tools/gardening/lib/src/results_workflow/fix_failing_test.dart
@@ -0,0 +1,412 @@
+// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:async';
+import 'dart:io';
+
+import 'package:status_file/canonical_status_file.dart';
+import 'package:status_file/expectation.dart';
+import 'package:status_file/status_file_normalizer.dart';
+import 'package:status_file/src/expression.dart';
+
+import 'present_failures.dart';
+import '../results/result_json_models.dart';
+import '../results/failing_test.dart';
+import '../results/status_expectations.dart';
+import '../results/status_files.dart';
+import '../util.dart';
+import '../workflow.dart';
+
+final RegExp toggleSectionRegExp = new RegExp(r"^t(\d+)$");
+
+/// This is the main workflow step, where the user is asked what to do with the
+/// failure and input comments etc. For every test, [onShow] is called with the
+/// remaining tests including the one to work on.
+class FixFailingTest extends WorkflowStep<List<FailingTest>> {
+  final TestResult _testResult;
+  FixWorkingItem _currentWorkingItem;
+  List<FailingTest> _remainingTests;
+
+  // These fields are mutated to persist user input.
+  String _lastComment = null;
+  FixWorkingItem _lastWorkingItem;
+  List<StatusSectionWithFile> _customSections = [];
+  bool _fixIfPossible = false;
+
+  FixFailingTest(this._testResult);
+
+  @override
+  Future<WorkflowAction> onShow(List<FailingTest> payload) async {
+    if (payload.isEmpty) {
+      print("Finished updating status files from failing tests.");
+      print("Trying to find if any new errors have arised from the fixes.");
+      return new NavigateStepWorkflowAction(
+          new PresentFailures(), [_testResult]);
+    }
+    // We have to compute status files on every show, because we modify the
+    // status files on every fix.
+    var statusExpectations = new StatusExpectations(_testResult);
+    await statusExpectations.loadStatusFiles();
+
+    _remainingTests = payload.sublist(1);
+    var failingTest = payload.first;
+
+    if (!failingTest.stillFailing(statusExpectations)) {
+      return new NavigateStepWorkflowAction(this, _remainingTests);
+    }
+
+    _currentWorkingItem = new FixWorkingItem(failingTest.result.name,
+        failingTest, statusExpectations, _lastComment, this._customSections);
+    _currentWorkingItem.init();
+
+    if (_lastWorkingItem != null && _fixIfPossible) {
+      // Outcome may be larger from the previous one, but current newOutcome
+      // will always be a singleton list. So we check by matching first
+      // element.
+      var outcomeIsSame = _currentWorkingItem.newOutcome.first ==
+          _lastWorkingItem.newOutcome.first;
+      var lastConfigurations =
+          _lastWorkingItem.failingTest.failingConfigurations;
+      var currentConfigurations =
+          _currentWorkingItem.failingTest.failingConfigurations;
+      var sameConfigurations = lastConfigurations.length ==
+              currentConfigurations.length &&
+          lastConfigurations.every(
+              (configuration) => currentConfigurations.contains(configuration));
+      if (outcomeIsSame && sameConfigurations) {
+        _lastWorkingItem.currentSections.forEach((section) {
+          addExpressionToCustomSections(
+              section.section.condition, section.statusFile.path);
+        });
+        print("Auto-fixing ${_currentWorkingItem.name}");
+        await fixFailingTest();
+        return new NavigateStepWorkflowAction(this, _remainingTests);
+      }
+    }
+
+    print("");
+    print("${_remainingTests.length + 1} tests remaining.");
+    askAboutTest();
+
+    return new WaitForInputWorkflowAction();
+  }
+
+  @override
+  Future<WorkflowAction> input(String input) async {
+    bool error = false;
+    if (input.isEmpty) {
+      await fixFailingTest();
+      return new NavigateStepWorkflowAction(this, _remainingTests);
+    } else if (input == "a") {
+      // Add expression.
+      var expression = getNewExpressionFromCommandLine();
+      if (expression != null) {
+        var statusFile = getStatusFile(_currentWorkingItem);
+        addExpressionToCustomSections(expression, statusFile.path);
+      }
+    } else if (input == "c") {
+      // Change comment.
+      _currentWorkingItem.comment = getNewComment();
+      _lastComment = _currentWorkingItem.comment;
+    } else if (input == "f") {
+      // Fix failing tests and try to fix the coming ones.
+      _fixIfPossible = true;
+      await fixFailingTest();
+      return new NavigateStepWorkflowAction(this, _remainingTests);
+    } else if (input == "o") {
+      // Case change new outcome.
+      _currentWorkingItem.newOutcome = getNewOutcome();
+    } else if (input == "r") {
+      // Case reset.
+      _currentWorkingItem.init();
+    } else if (input == "s") {
+      // Case reset.
+      return new NavigateStepWorkflowAction(this, _remainingTests);
+    } else {
+      error = true;
+    }
+    var toggleMatch = toggleSectionRegExp.firstMatch(input);
+    if (toggleMatch != null) {
+      var index = int.parse(toggleMatch.group(1));
+      error = !_currentWorkingItem.toggleSection(index);
+    }
+    if (error) {
+      print("Input was not correct. Please try again.");
+    } else {
+      askAboutTest();
+    }
+    return new WaitForInputWorkflowAction();
+  }
+
+  @override
+  Future<bool> onLeave() {
+    return new Future.value(false);
+  }
+
+  /// Prints up to date data about [currentWorkItem] and gives information about
+  /// the commands that can be used.
+  void askAboutTest() {
+    _currentWorkingItem.printInfo();
+    print("");
+    print("To modify the above data, the following commands are available:");
+    print("<Enter> : Write new outcome to selected sections in status files.");
+    print("a       : Add/Create section.");
+    print("c       : Modify the comment.");
+    print("f       : Write new outcome to selected sections in status files "
+        "and try to fix remaining tests 'the same way'.");
+    print("o       : Modify outcomes.");
+    print("r       : Reset to initial state.");
+    print("s       : Skip this failure.");
+    print("ti      : Toggle selection of section, where i is the index.");
+  }
+
+  /// Fixes the failing test based on the data in [_currentWorkingItem].
+  Future fixFailingTest() async {
+    // Delete all existing entries that are wrong.
+    var statusFiles = new Set<StatusFile>();
+    for (var statusEntry in _currentWorkingItem.statusEntries) {
+      statusEntry.section.entries.remove(statusEntry.entry);
+      statusFiles.add(statusEntry.statusFile);
+    }
+    // Add new expectations to status sections.
+    var path = getQualifiedNameForTest(_currentWorkingItem.name);
+    var expectations = _currentWorkingItem.newOutcome
+        .map((outcome) => Expectation.find(outcome))
+        .toList();
+    var comment = _currentWorkingItem.comment == null
+        ? null
+        : new Comment(_currentWorkingItem.comment);
+    var statusEntry = new StatusEntry(path, 0, expectations, comment);
+    for (var currentSection in _currentWorkingItem.currentSections) {
+      if (!currentSection.statusFile.sections
+          .contains(currentSection.section)) {
+        currentSection.statusFile.sections.add(currentSection.section);
+      }
+      currentSection.section.entries.add(statusEntry);
+      statusFiles.add(currentSection.statusFile);
+    }
+    // Save the modified status files.
+    for (var statusFile in statusFiles) {
+      var normalized = normalizeStatusFile(statusFile);
+      await new File(statusFile.path).writeAsString(normalized.toString());
+    }
+    _lastWorkingItem = _currentWorkingItem;
+  }
+
+  /// Tries to find a section with the [expression] in [statusFilePath]. If it
+  /// cannot find a section, it will create a new section. It selects the new
+  /// section on the [currentWorkItem].
+  void addExpressionToCustomSections(
+      Expression expression, String statusFilePath) {
+    expression = expression.normalize();
+    var statusFile = _currentWorkingItem
+        .statusFiles()
+        .firstWhere((statusFile) => statusFile.path == statusFilePath);
+    var sectionToAdd = statusFile.sections.firstWhere(
+        (section) =>
+            section.condition != null &&
+            section.condition.normalize().compareTo(expression) == 0,
+        orElse: () => null);
+    sectionToAdd ??= new StatusSection(expression, 0, []);
+    var section = new StatusSectionWithFile(statusFile, sectionToAdd);
+    // This mutates the
+    _customSections.add(section);
+    _currentWorkingItem.currentSections.add(section);
+  }
+}
+
+/// Gets a new [Expression] from the commandline. The expression is parsed to
+/// make sure it is syntactically correct. If no input is added it returns
+/// [null].
+Expression getNewExpressionFromCommandLine() {
+  print("Write a new status header expression - <Enter> to cancel:");
+  String input = stdin.readLineSync();
+  if (input.isEmpty) {
+    return null;
+  }
+  try {
+    return Expression.parse(input);
+  } catch (e) {
+    print(e);
+    return getNewExpressionFromCommandLine();
+  }
+}
+
+/// Gets a status file by finding the suite from [workingItem] and asks the
+/// user to pick the correct file.
+StatusFile getStatusFile(FixWorkingItem workingItem) {
+  var statusFiles = workingItem.statusFiles();
+  print("Which status file should the section be added to/exists in?");
+  int i = 0;
+  for (var statusFile in statusFiles) {
+    print("  ${i++}: ${statusFile.path}");
+  }
+  var input = stdin.readLineSync();
+  var index = int.parse(input, onError: (_) => null);
+  if (index >= 0 && index < statusFiles.length) {
+    return statusFiles[index];
+  }
+  print("Input was not between 0-$i. Please try again");
+  return getStatusFile(workingItem);
+}
+
+/// Gets a new outcome from the user. The input is a list of strings, but every
+/// element has been parsed to check if it is an expectation.
+List<String> getNewOutcome() {
+  print("Write new outcomes, separate by ',':");
+  String input = stdin.readLineSync();
+  try {
+    var newOutcomes =
+        input.split(",").map((outcome) => outcome.trim()).toList();
+    newOutcomes.forEach((name) => Expectation.find(name));
+    return newOutcomes;
+  } catch (e) {
+    print(e);
+    return getNewOutcome();
+  }
+}
+
+/// Gets a comment from the user. It automatically adds # if it is not entered
+/// and checks if the input is a number, by which it assumes it is an issue.
+String getNewComment() {
+  print("Write a new comment or github issue. Empty for no comment:");
+  String newComment = stdin.readLineSync();
+  if (newComment.isEmpty) {
+    return null;
+  }
+  if (int.parse(newComment, onError: (input) => null) != null) {
+    return "# Issue $newComment";
+  }
+  if (!newComment.startsWith("#")) {
+    newComment = "# $newComment";
+  }
+  return newComment;
+}
+
+/// [FixWorkingItem] holds the current data about what sections to update,
+/// what configurations are covered, the comment, the outcomes etc.
+class FixWorkingItem {
+  final String name;
+  final FailingTest failingTest;
+  final StatusExpectations statusExpectations;
+  final List<StatusSectionWithFile> customSections;
+
+  List<StatusSectionWithFile> currentSections;
+  List<SectionsSuggestion> suggestedSections;
+  List<String> newOutcome;
+  List<StatusSectionEntry> statusEntries;
+  String comment;
+
+  FixWorkingItem(this.name, this.failingTest, this.statusExpectations,
+      this.comment, this.customSections) {}
+
+  /// init resets all custom data to the standard values from the failing test,
+  /// except the comment and custom added sections.
+  void init() {
+    newOutcome = [failingTest.result.result];
+    statusEntries = failingTest.failingStatusEntries(statusExpectations);
+    suggestedSections = failingTest.computeSections(statusExpectations);
+    currentSections = [];
+  }
+
+  /// Gets the status files for the failing test.
+  List<StatusFile> statusFiles() {
+    return failingTest.statusFiles(statusExpectations);
+  }
+
+  /// Toggles the selection of a section by [index].
+  bool toggleSection(int index) {
+    var sections =
+        suggestedSections.expand((suggested) => suggested.sections).toList();
+    sections.addAll(customSections);
+    if (index < 0 || index >= sections.length) {
+      return false;
+    }
+    var section = sections[index];
+    if (currentSections.contains(section)) {
+      currentSections.remove(section);
+    } else {
+      currentSections.add(section);
+    }
+    return true;
+  }
+
+  /// Prints all information about the current working item.
+  void printInfo() {
+    print("");
+    print("--- ${name} ---");
+    print("New (o)utcome: ${newOutcome}");
+    print("Failing configurations (covered configurations marked by *):");
+    var failingNotCovered = failingTest.failingConfigurationsNotCovered(
+        statusExpectations, currentSections);
+    failingTest.failingConfigurations.forEach((configuration) {
+      String selected = !failingNotCovered.contains(configuration) ? "* " : "";
+      print("  $selected${configuration.toArgs(includeSelectors: false)}");
+    });
+    if (failingTest.passingConfigurations.isEmpty) {
+      print("Passing configurations: None");
+    } else {
+      var passingNotCovered = failingTest.failingConfigurationsNotCovered(
+          statusExpectations, currentSections);
+      print("Passing configurations (covered configurations marked by x - this "
+          "is generally not what you want):");
+      failingTest.passingConfigurations.forEach((configuration) {
+        String selected = passingNotCovered.contains(configuration) ? "x " : "";
+        print("  $selected${configuration.toArgs(includeSelectors: false)}");
+      });
+    }
+    var defaultExpectations =
+        expectationsFromTest(failingTest.result.testExpectations);
+    defaultExpectations.add(Expectation.pass);
+    // Is the outcome the default expectation, i.e. should all entries should be
+    // removed.
+    bool isDefaultExpectation = newOutcome.length == 1 &&
+        defaultExpectations.contains(Expectation.find(newOutcome.first));
+    if (isDefaultExpectation) {
+      print("The new outcome is the default expectation of the test file.");
+    } else {
+      _printSections();
+    }
+    if (statusEntries.isNotEmpty) {
+      print("Status entries to be deleted:");
+      _printStatusEntries(statusEntries);
+    }
+    print("Status entry (c)omment:");
+    if (comment != null) {
+      print("  ${comment}");
+    }
+  }
+
+  void _printSections() {
+    print("Sections to add the new outcome to. The selected sections are "
+        "marked by *:");
+    int groupCounter = "A".codeUnitAt(0);
+    ;
+    int sectionCounter = 0;
+    suggestedSections.forEach((suggestedSection) {
+      print("  ${new String.fromCharCode(groupCounter++)} "
+          "(${suggestedSection.strategy}):");
+      suggestedSection.sections
+          .forEach((section) => _printSection(section, sectionCounter++));
+    });
+    print("  ${new String.fromCharCode(groupCounter)}: Added sections");
+    customSections
+        .forEach((section) => _printSection(section, sectionCounter++));
+  }
+
+  void _printSection(StatusSectionWithFile section, int index) {
+    String selected = currentSections.contains(section) ? "* " : "";
+    print("    $selected${index}: ${section.statusFile.path}: "
+        "[ ${section.section.condition.toString()} ]");
+  }
+
+  void _printStatusEntries(List<StatusSectionEntry> entries) {
+    for (StatusSectionEntry entry in entries) {
+      print("  ${entry.statusFile.path}");
+      print("    [ ${entry.section.condition} ]");
+      print("      line ${entry.entry.lineNumber}: ${entry.entry.path} : "
+          "${entry.entry.expectations} ${entry.entry.comment ?? ""}");
+    }
+  }
+}
diff --git a/tools/gardening/lib/src/results_workflow/present_failures.dart b/tools/gardening/lib/src/results_workflow/present_failures.dart
new file mode 100644
index 0000000..db5f033
--- /dev/null
+++ b/tools/gardening/lib/src/results_workflow/present_failures.dart
@@ -0,0 +1,93 @@
+// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:async';
+
+import 'fix_failing_test.dart';
+import '../results/result_json_models.dart';
+import '../results/status_expectations.dart';
+import '../results/failing_test.dart';
+import '../workflow.dart';
+
+class PresentFailures extends WorkflowStep {
+  PresentFailures();
+
+  TestResult testResult;
+  List<FailingTest> failingTests;
+
+  @override
+  Future<WorkflowAction> onShow(payload) async {
+    testResult =
+        (payload as List<TestResult>).reduce((t1, t2) => t1..combineWith([t2]));
+
+    failingTests = await groupFailingTests(testResult);
+
+    if (failingTests.isEmpty) {
+      print("No errors found.. Do you want to add more logs? (y)es or (n)o.");
+      return new WaitForInputWorkflowAction();
+    } else {
+      print("Found ${failingTests.length} status failures. If this number "
+          "seems weird or you find tests that seems to pass, check if your "
+          "branch is up to date.");
+      print("");
+      print("It can take some time navigating from tests to tests, since we "
+          "modify status files for each fix and have to reload them again.");
+      return new Future.value(new NavigateStepWorkflowAction(
+          new FixFailingTest(testResult), failingTests));
+    }
+  }
+
+  @override
+  Future<WorkflowAction> input(String input) {
+    if (input == "y") {
+      return new Future.value(new BackWorkflowAction());
+    }
+  }
+
+  @override
+  Future<bool> onLeave() {
+    return new Future.value(false);
+  }
+}
+
+/// Every failing test is converted to a [FailingTest] to allow grouping passing
+/// and failing configurations.
+Future<List<FailingTest>> groupFailingTests(TestResult testResult) async {
+  var statusExpectations = new StatusExpectations(testResult);
+  await statusExpectations.loadStatusFiles();
+  List<TestExpectationResult> results =
+      statusExpectations.getTestResultsWithExpectation();
+
+  List<TestExpectationResult> failing =
+      results.where((x) => !x.isSuccess()).toList();
+
+  // We group failing by their name and their new outcome.
+  var grouped = <String, List<FailingTest>>{};
+
+  // Add all failing tests configurations first.
+  for (var test in failing) {
+    var key = "${test.result.name}";
+    var failingTests = grouped.putIfAbsent(key, () => []);
+    var failingTest = failingTests.firstWhere(
+        (ft) => ft.result.result == test.result.result,
+        orElse: () => null);
+    if (failingTest == null) {
+      failingTest = new FailingTest(test.result, testResult, [], []);
+      failingTests.add(failingTest);
+    }
+    failingTest.failingConfigurations.add(test.configuration);
+  }
+
+  // Then add all other configurations, to tighten the bound on the failing
+  // configurations.
+  for (var result in results) {
+    if (result.isSuccess() && grouped.containsKey(result.result.name)) {
+      grouped[result.result.name].forEach((failingTest) =>
+          failingTest.passingConfigurations.add(result.configuration));
+    }
+  }
+
+  return grouped.values.expand((failingTests) => failingTests).toList()
+    ..sort((a, b) => a.result.name.compareTo(b.result.name));
+}
diff --git a/tools/gardening/lib/src/try.dart b/tools/gardening/lib/src/try.dart
index ebe8f09..32b47f2 100644
--- a/tools/gardening/lib/src/try.dart
+++ b/tools/gardening/lib/src/try.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-import 'dart:async';
-
 /// [Try] is similar to Haskell monad, where
 /// a computation may throw an exception.
 /// There is no checking of passing null into
diff --git a/tools/gardening/lib/src/util.dart b/tools/gardening/lib/src/util.dart
index a608f62..d0b44cd 100644
--- a/tools/gardening/lib/src/util.dart
+++ b/tools/gardening/lib/src/util.dart
@@ -7,6 +7,7 @@
 import 'dart:io';
 
 import 'package:args/args.dart';
+import 'results/result_json_models.dart';
 
 import 'cache.dart';
 import 'cache_new.dart';
@@ -246,3 +247,100 @@
 
 /// Regular expression matches a Linux or Windows new line character.
 final RegExp newLine = new RegExp(r'\r\n|\n');
+
+/// Determine if arguments is a CQ url or commit-number + patchset.
+bool isCqInput(List<String> arguments) {
+  if (arguments.length == 1) {
+    return isSwarmingTaskUrl(arguments.first);
+  }
+  if (arguments.length == 2) {
+    return areNumbers(arguments);
+  }
+  return false;
+}
+
+const String BUILDER_PROJECT = "chromium";
+
+/// [PathHelper] is a utility class holding information about static paths.
+class PathHelper {
+  static String testPyPath() {
+    var root = sdkRepositoryRoot();
+    return "${root}/tools/test.py";
+  }
+
+  static String _sdkRepositoryRoot;
+  static String sdkRepositoryRoot() {
+    return _sdkRepositoryRoot ??=
+        _findRoot(new Directory.fromUri(Platform.script));
+  }
+
+  static String _findRoot(Directory current) {
+    if (current.path.endsWith("sdk")) {
+      return current.path;
+    }
+    if (current.parent == null) {
+      print("Could not find the dart sdk folder. "
+          "Please run the tool in the root of the dart-sdk local repository.");
+      exit(1);
+    }
+    return _findRoot(current.parent);
+  }
+}
+
+/// Tests if all strings passed in [stringsToTest] are integers.
+bool areNumbers(Iterable<String> stringsToTest) {
+  RegExp isNumberRegExp = new RegExp(r"^\d+$");
+  return stringsToTest
+      .every((string) => isNumberRegExp.firstMatch(string) != null);
+}
+
+bool isNumber(String stringToTest) {
+  bool succeeded = true;
+  int.parse(stringToTest, onError: (String) {
+    succeeded = false;
+    return 0;
+  });
+  return succeeded;
+}
+
+/// Gets if the [url] is a swarming task url.
+bool isSwarmingTaskUrl(String url) {
+  return url.startsWith("https://ci.chromium.org/swarming");
+}
+
+/// Gets the swarming task id from the [url].
+String getSwarmingTaskId(String url) {
+  RegExp swarmingTaskIdInPathRegExp =
+      new RegExp(r"https:\/\/ci\.chromium\.org\/swarming\/task\/(.*)\?server");
+  Match swarmingTaskIdMatch = swarmingTaskIdInPathRegExp.firstMatch(url);
+  if (swarmingTaskIdMatch == null) {
+    return null;
+  }
+  return swarmingTaskIdMatch.group(1);
+}
+
+/// Returns the test-suite for [name].
+String getSuiteNameForTest(String name) {
+  var reg = new RegExp(r"^(.*?)\/.*$");
+  var match = reg.firstMatch(name);
+  if (match == null) {
+    return null;
+  }
+  return match.group(1);
+}
+
+/// Returns the qualified name (what to use in status-files) for a test with
+/// [name].
+String getQualifiedNameForTest(String name) {
+  if (name.startsWith("cc/")) {
+    return name;
+  }
+  return name.substring(name.indexOf("/") + 1);
+}
+
+/// Returns the reproduction command for test.py based on the [configuration]
+/// and [name].
+String getReproductionCommand(Configuration configuration, String name) {
+  var allArgs = configuration.toArgs(includeSelectors: false)..add(name);
+  return "${PathHelper.testPyPath()} ${allArgs.join(' ')}";
+}
diff --git a/tools/gardening/lib/src/workflow/workflow.dart b/tools/gardening/lib/src/workflow.dart
similarity index 95%
rename from tools/gardening/lib/src/workflow/workflow.dart
rename to tools/gardening/lib/src/workflow.dart
index 0acd153..434572e 100644
--- a/tools/gardening/lib/src/workflow/workflow.dart
+++ b/tools/gardening/lib/src/workflow.dart
@@ -88,12 +88,13 @@
       return _navigate(action.nextStep, action.payload);
     } else if (action is BackWorkflowAction) {
       await _navigateLeave();
-      var lastStep = _lastSteps.removeLast();
-      while (lastStep != null && lastStep is! ComputeStep) {
+      _lastSteps.removeLast();
+      var lastStep = _lastSteps.last;
+      while (_lastSteps.isNotEmpty && lastStep is ComputeStep) {
         lastStep = _lastSteps.removeLast();
       }
-      if (currentStep != null) {
-        return _handleWorkflowAction(await currentStep.onShow(null));
+      if (lastStep != null) {
+        return _handleWorkflowAction(await lastStep.onShow(null));
       }
     }
   }
diff --git a/tools/testing/dart/command.dart b/tools/testing/dart/command.dart
index 835de90..0a25554 100644
--- a/tools/testing/dart/command.dart
+++ b/tools/testing/dart/command.dart
@@ -52,14 +52,14 @@
         workingDirectory: workingDirectory);
   }
 
-  static Command kernelCompilation(
+  static Command vmKernelCompilation(
       String outputFile,
       bool neverSkipCompilation,
       List<Uri> bootstrapDependencies,
       String executable,
       List<String> arguments,
       Map<String, String> environment) {
-    return new KernelCompilationCommand._(outputFile, neverSkipCompilation,
+    return new VMKernelCompilationCommand._(outputFile, neverSkipCompilation,
         bootstrapDependencies, executable, arguments, environment);
   }
 
@@ -282,15 +282,15 @@
       deepJsonCompare(_bootstrapDependencies, other._bootstrapDependencies);
 }
 
-class KernelCompilationCommand extends CompilationCommand {
-  KernelCompilationCommand._(
+class VMKernelCompilationCommand extends CompilationCommand {
+  VMKernelCompilationCommand._(
       String outputFile,
       bool neverSkipCompilation,
       List<Uri> bootstrapDependencies,
       String executable,
       List<String> arguments,
       Map<String, String> environmentOverrides)
-      : super._('dartk', outputFile, neverSkipCompilation,
+      : super._('vm_compile_to_kernel', outputFile, neverSkipCompilation,
             bootstrapDependencies, executable, arguments, environmentOverrides);
 
   int get maxNumRetries => 1;
diff --git a/tools/testing/dart/command_output.dart b/tools/testing/dart/command_output.dart
index f25f1e0..e5593be 100644
--- a/tools/testing/dart/command_output.dart
+++ b/tools/testing/dart/command_output.dart
@@ -108,6 +108,9 @@
 
   /// Called when producing output for a test failure to describe this output.
   void describe(Progress progress, OutputWriter output) {
+    output.subsection("exit code");
+    output.write(exitCode.toString());
+
     if (diagnostics.isNotEmpty) {
       output.subsection("diagnostics");
       output.writeAll(diagnostics);
@@ -512,7 +515,7 @@
 
     if (_result.browserOutput.stderr.isNotEmpty) {
       output.subsection("Browser stderr");
-      output.write(_result.browserOutput.stdout.toString());
+      output.write(_result.browserOutput.stderr.toString());
     }
   }
 
@@ -853,8 +856,8 @@
   }
 }
 
-class KernelCompilationCommandOutput extends CompilationCommandOutput {
-  KernelCompilationCommandOutput(
+class VMKernelCompilationCommandOutput extends CompilationCommandOutput {
+  VMKernelCompilationCommandOutput(
       Command command,
       int exitCode,
       bool timedOut,
@@ -885,7 +888,7 @@
   }
 
   /// If the compiler was able to produce a Kernel IR file we want to run the
-  /// result on the Dart VM. We therefore mark the [KernelCompilationCommand]
+  /// result on the Dart VM. We therefore mark the [VMKernelCompilationCommand]
   /// as successful.
   ///
   /// This ensures we test that the DartVM produces correct CompileTime errors
@@ -951,8 +954,8 @@
   } else if (command is VmCommand) {
     return new VMCommandOutput(
         command, exitCode, timedOut, stdout, stderr, time, pid);
-  } else if (command is KernelCompilationCommand) {
-    return new KernelCompilationCommandOutput(
+  } else if (command is VMKernelCompilationCommand) {
+    return new VMKernelCompilationCommandOutput(
         command, exitCode, timedOut, stdout, stderr, time, compilationSkipped);
   } else if (command is AdbPrecompilationCommand) {
     return new VMCommandOutput(
diff --git a/tools/testing/dart/compiler_configuration.dart b/tools/testing/dart/compiler_configuration.dart
index c3b8d31..f5bb536 100644
--- a/tools/testing/dart/compiler_configuration.dart
+++ b/tools/testing/dart/compiler_configuration.dart
@@ -149,19 +149,26 @@
     var buildDir = _configuration.buildDirectory;
     var args = <String>[];
     if (useDfe) {
-      args.add('--dfe=${buildDir}/gen/kernel-service.dart.snapshot');
-      args.add('--kernel-binaries=' +
-          (_useSdk
-              ? '${_configuration.buildDirectory}/dart-sdk/lib/_internal'
-              : '${buildDir}'));
+      // DFE+strong configuration is a Dart 2.0 configuration which uses
+      // pkg/vm/tool/dart2 wrapper script, which takes care of passing
+      // correct arguments to VM binary. No need to pass any additional
+      // arguments.
+      if (!_isStrong) {
+        args.add('--dfe=${buildDir}/gen/kernel-service.dart.snapshot');
+        args.add('--kernel-binaries=' +
+            (_useSdk
+                ? '${_configuration.buildDirectory}/dart-sdk/lib/_internal'
+                : '${buildDir}'));
+      }
       if (_isDebug) {
         // Temporarily disable background compilation to avoid flaky crashes
         // (see http://dartbug.com/30016 for details).
         args.add('--no-background-compilation');
       }
-    }
-    if (_isStrong) {
-      args.add('--strong');
+    } else {
+      if (_isStrong) {
+        args.add('--strong');
+      }
     }
     if (_isChecked) {
       args.add('--enable_asserts');
@@ -451,7 +458,8 @@
     // computeCompilerArguments() to here seems hacky. Is there a cleaner way?
     var sharedOptions = arguments.sublist(0, arguments.length - 1);
     var inputFile = arguments.last;
-    var outputFile = "$tempDir/${inputFile.replaceAll('.dart', '.js')}";
+    var inputFilename = (new Uri.file(inputFile)).pathSegments.last;
+    var outputFile = "$tempDir/${inputFilename.replaceAll('.dart', '.js')}";
 
     return new CommandArtifact(
         [createCommand(inputFile, outputFile, sharedOptions, environment)],
@@ -530,7 +538,8 @@
     // computeCompilerArguments() to here seems hacky. Is there a cleaner way?
     var sharedOptions = arguments.sublist(0, arguments.length - 1);
     var inputFile = arguments.last;
-    var outputFile = "$tempDir/${inputFile.replaceAll('.dart', '.js')}";
+    var inputFilename = (new Uri.file(inputFile)).pathSegments.last;
+    var outputFile = "$tempDir/${inputFilename.replaceAll('.dart', '.js')}";
 
     return new CommandArtifact(
         [createCommand(inputFile, outputFile, sharedOptions, environment)],
@@ -593,19 +602,19 @@
 
   Command computeCompileToKernelCommand(String tempDir, List<String> arguments,
       Map<String, String> environmentOverrides) {
-    var buildDir = _configuration.buildDirectory;
-    String exec = Platform.executable;
+    final genKernel =
+        Platform.script.resolve('../../../pkg/vm/tool/gen_kernel').toFilePath();
+    final dillFile = tempKernelFile(tempDir);
     var args = [
       '--packages=.packages',
-      'pkg/vm/bin/precompiler_kernel_front_end.dart',
-      '--platform=${buildDir}/vm_platform_strong.dill',
+      '--aot',
+      '--platform=${_configuration.buildDirectory}/vm_platform_strong.dill',
       '-o',
-      tempKernelFile(tempDir),
+      dillFile,
     ];
-    args.addAll(arguments.where((name) => name.endsWith('.dart')));
-    return Command.compilation('compile_to_kernel', tempDir,
-        bootstrapDependencies(), exec, args, environmentOverrides,
-        alwaysCompile: !_useSdk);
+    args.add(arguments.where((name) => name.endsWith('.dart')).single);
+    return Command.vmKernelCompilation(dillFile, true, bootstrapDependencies(),
+        genKernel, args, environmentOverrides);
   }
 
   /// Creates a command to clean up large temporary kernel files.
@@ -795,7 +804,9 @@
       args.add('--enable_asserts');
       args.add('--enable_type_checks');
     }
-
+    if (_isStrong) {
+      args.add('--strong');
+    }
     var dir = artifact.filename;
     if (runtimeConfiguration is DartPrecompiledAdbRuntimeConfiguration) {
       // On android the precompiled snapshot will be pushed to a different
diff --git a/tools/testing/dart/configuration.dart b/tools/testing/dart/configuration.dart
index 1eaa8f4..cd1be47 100644
--- a/tools/testing/dart/configuration.dart
+++ b/tools/testing/dart/configuration.dart
@@ -78,7 +78,8 @@
       this.builderTag,
       this.outputDirectory,
       this.reproducingArguments,
-      this.fastTestsOnly})
+      this.fastTestsOnly,
+      this.printPassingStdout})
       : _packages = packages,
         _timeout = timeout;
 
@@ -122,6 +123,7 @@
   final bool writeDebugLog;
   final bool writeTestOutcomeLog;
   final bool writeResultLog;
+  final bool printPassingStdout;
 
   // Various file paths.
 
@@ -173,6 +175,13 @@
     return _servers;
   }
 
+  /// Returns true if this configuration is considered Dart 2.0 configuration
+  /// by VM (which is identified by using common front-end and strong mode).
+  /// In this case instead of invoking VM binary directly we use
+  /// pkg/vm/tool/dart2 wrapper script, which takes care of passing
+  /// correct arguments to VM binary.
+  bool get usingDart2VMWrapper => isStrong && compiler == Compiler.dartk;
+
   /// The base directory named for this configuration, like:
   ///
   ///     none_vm_release_x64
diff --git a/tools/testing/dart/options.dart b/tools/testing/dart/options.dart
index 18b6315..451d8d7 100644
--- a/tools/testing/dart/options.dart
+++ b/tools/testing/dart/options.dart
@@ -307,6 +307,9 @@
 false positves and negatives, but can be useful for quick and
 dirty offline testing when not making changes that affect the
 compiler.''',
+        hide: true),
+    new _Option.bool('print_passing_stdout',
+        'Print the stdout of passing, as well as failing, tests.',
         hide: true)
   ];
 
@@ -676,7 +679,8 @@
                 builderTag: data["builder_tag"] as String,
                 outputDirectory: data["output_directory"] as String,
                 reproducingArguments: _reproducingCommand(data),
-                fastTestsOnly: data["fast_tests"] as bool);
+                fastTestsOnly: data["fast_tests"] as bool,
+                printPassingStdout: data["print_passing_stdout"] as bool);
 
             if (configuration.validate()) {
               result.add(configuration);
diff --git a/tools/testing/dart/test_configurations.dart b/tools/testing/dart/test_configurations.dart
index 99acbd2..34c9527 100644
--- a/tools/testing/dart/test_configurations.dart
+++ b/tools/testing/dart/test_configurations.dart
@@ -231,6 +231,9 @@
       var printFailureSummary = progressIndicator != Progress.buildbot;
       eventListener.add(new TestFailurePrinter(printFailureSummary, formatter));
     }
+    if (firstConf.printPassingStdout) {
+      eventListener.add(new PassingStdoutPrinter(formatter));
+    }
     eventListener.add(ProgressIndicator.fromProgress(
         progressIndicator, startTime, formatter));
     if (printTiming) {
diff --git a/tools/testing/dart/test_progress.dart b/tools/testing/dart/test_progress.dart
index 1066681..fb56beb 100644
--- a/tools/testing/dart/test_progress.dart
+++ b/tools/testing/dart/test_progress.dart
@@ -434,6 +434,31 @@
   }
 }
 
+class PassingStdoutPrinter extends EventListener {
+  final Formatter _formatter;
+  final _failureSummary = <String>[];
+
+  PassingStdoutPrinter([this._formatter = Formatter.normal]);
+
+  void done(TestCase test) {
+    if (!test.unexpectedOutput) {
+      var lines = <String>[];
+      var output = new OutputWriter(_formatter, lines);
+      for (final command in test.commands) {
+        var commandOutput = test.commandOutputs[command];
+        if (commandOutput == null) continue;
+
+        commandOutput.describe(test.configuration.progress, output);
+      }
+      for (var line in lines) {
+        print(line);
+      }
+    }
+  }
+
+  void allDone() {}
+}
+
 class ProgressIndicator extends EventListener {
   ProgressIndicator(this._startTime);
 
diff --git a/tools/testing/dart/test_runner.dart b/tools/testing/dart/test_runner.dart
index 4cdfe6d..ac8b5df 100644
--- a/tools/testing/dart/test_runner.dart
+++ b/tools/testing/dart/test_runner.dart
@@ -1145,10 +1145,10 @@
   Future<CommandOutput> _runCommand(Command command, int timeout) {
     if (command is BrowserTestCommand) {
       return _startBrowserControllerTest(command, timeout);
-    } else if (command is KernelCompilationCommand) {
-      // For now, we always run dartk in batch mode.
+    } else if (command is VMKernelCompilationCommand) {
+      // For now, we always run vm_compile_to_kernel in batch mode.
       var name = command.displayName;
-      assert(name == 'dartk');
+      assert(name == 'vm_compile_to_kernel');
       return _getBatchRunner(name)
           .runCommand(name, command, timeout, command.arguments);
     } else if (command is CompilationCommand &&
@@ -1331,7 +1331,7 @@
 
     // The dartk batch compiler sometimes runs out of memory. In such a case we
     // will retry running it.
-    if (command is KernelCompilationCommand) {
+    if (command is VMKernelCompilationCommand) {
       if (output.hasCrashed) {
         bool containsOutOfMemoryMessage(String line) {
           return line.contains('Exhausted heap space, trying to allocat');
diff --git a/tools/testing/dart/test_suite.dart b/tools/testing/dart/test_suite.dart
index bcdd9d0..0b9cb56 100644
--- a/tools/testing/dart/test_suite.dart
+++ b/tools/testing/dart/test_suite.dart
@@ -164,6 +164,14 @@
     // Controlled by user with the option "--dart".
     var dartExecutable = configuration.dartPath;
 
+    if (configuration.usingDart2VMWrapper) {
+      if (dartExecutable != null) {
+        throw 'Can not use --dart when testing Dart 2.0 configuration';
+      }
+
+      dartExecutable = 'pkg/vm/tool/dart2';
+    }
+
     if (dartExecutable == null) {
       var suffix = executableBinarySuffix;
       dartExecutable = useSdk
@@ -815,7 +823,8 @@
       // turn on reified generics in the VM.
       // Note that VMOptions=--no-reify-generic-functions in test is ignored.
       // Also, enable Dart 2.0 fixed-size integers with --limit-ints-to-64-bits.
-      if (suiteName.endsWith("_2")) {
+      // Dart 2 VM wrapper (pkg/vm/tool/dart2) already passes correct arguments.
+      if (suiteName.endsWith("_2") && !configuration.usingDart2VMWrapper) {
         allVmOptions = allVmOptions.toList()
           ..add("--reify-generic-functions")
           ..add("--limit-ints-to-64-bits");