Version 2.0.0-dev.27.0

Merge commit '0bda5c90154f9acf7c3ff1cd17110cbbc27df5f2' into dev
diff --git a/pkg/analysis_server/lib/src/services/correction/assist_internal.dart b/pkg/analysis_server/lib/src/services/correction/assist_internal.dart
index 2056f5c..f1d3c51 100644
--- a/pkg/analysis_server/lib/src/services/correction/assist_internal.dart
+++ b/pkg/analysis_server/lib/src/services/correction/assist_internal.dart
@@ -1475,12 +1475,6 @@
       return;
     }
 
-    // We can inline the list of our children only into another list.
-    var widgetParentNode = widgetCreation.parent;
-    if (widgetParentNode is! ListLiteral) {
-      return;
-    }
-
     // Prepare the list of our children.
     List<Expression> childrenExpressions;
     {
@@ -1494,6 +1488,12 @@
       }
     }
 
+    // We can inline the list of our children only into another list.
+    var widgetParentNode = widgetCreation.parent;
+    if (childrenExpressions.length > 1 && widgetParentNode is! ListLiteral) {
+      return;
+    }
+
     DartChangeBuilder changeBuilder = new DartChangeBuilder(session);
     await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
       var firstChild = childrenExpressions.first;
diff --git a/pkg/analysis_server/lib/src/services/correction/fix_internal.dart b/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
index 9bd531c..46227d3 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
@@ -16,6 +16,7 @@
 import 'package:analysis_server/src/services/correction/util.dart';
 import 'package:analysis_server/src/services/search/hierarchy.dart';
 import 'package:analysis_server/src/utilities/flutter.dart' as flutter;
+import 'package:analyzer/context/context_root.dart';
 import 'package:analyzer/dart/analysis/session.dart';
 import 'package:analyzer/dart/ast/ast.dart';
 import 'package:analyzer/dart/ast/standard_resolution_map.dart';
@@ -3216,30 +3217,24 @@
    * Return `true` if the [source] can be imported into [unitLibraryFile].
    */
   bool _isSourceVisibleToLibrary(Source source) {
-    if (!source.uri.isScheme('file')) {
+    String path = source.fullName;
+
+    ContextRoot contextRoot = driver.contextRoot;
+    if (contextRoot == null) {
       return true;
     }
 
-    // Prepare the root of our package.
-    Folder packageRoot;
-    for (Folder folder = unitLibraryFolder;
-        folder != null;
-        folder = folder.parent) {
-      if (folder.getChildAssumingFile('pubspec.yaml').exists ||
-          folder.getChildAssumingFile('BUILD').exists) {
-        packageRoot = folder;
-        break;
-      }
-    }
-
-    // This should be rare / never situation.
-    if (packageRoot == null) {
-      return true;
+    // We don't want to use private libraries of other packages.
+    if (source.uri.isScheme('package') && _isLibSrcPath(path)) {
+      return resourceProvider.pathContext.isWithin(contextRoot.root, path);
     }
 
     // We cannot use relative URIs to reference files outside of our package.
-    return resourceProvider.pathContext
-        .isWithin(packageRoot.path, source.fullName);
+    if (source.uri.isScheme('file')) {
+      return resourceProvider.pathContext.isWithin(contextRoot.root, path);
+    }
+
+    return true;
   }
 
   /**
diff --git a/pkg/analysis_server/test/abstract_context.dart b/pkg/analysis_server/test/abstract_context.dart
index 069e2b0..3ec06b6 100644
--- a/pkg/analysis_server/test/abstract_context.dart
+++ b/pkg/analysis_server/test/abstract_context.dart
@@ -4,6 +4,7 @@
 
 import 'dart:async';
 
+import 'package:analyzer/context/context_root.dart';
 import 'package:analyzer/dart/ast/ast.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/dart/element/visitor.dart';
@@ -114,7 +115,7 @@
         resourceProvider,
         new MemoryByteStore(),
         _fileContentOverlay,
-        null,
+        new ContextRoot(resourceProvider.convertPath('/project'), []),
         sourceFactory,
         new AnalysisOptionsImpl()..strongMode = true);
     scheduler.start();
diff --git a/pkg/analysis_server/test/edit/fixes_test.dart b/pkg/analysis_server/test/edit/fixes_test.dart
index 684506f..92c67e2 100644
--- a/pkg/analysis_server/test/edit/fixes_test.dart
+++ b/pkg/analysis_server/test/edit/fixes_test.dart
@@ -110,22 +110,25 @@
   }
 
   test_suggestImportFromDifferentAnalysisRoot() async {
-    // Set up two projects.
-    newFolder("/project1");
-    newFolder("/project2");
+    newFolder('/aaa');
+    newFile('/aaa/.packages', content: '''
+aaa:${resourceProvider.convertPath('/aaa/lib')}
+bbb:${resourceProvider.convertPath('/bbb/lib')}
+''');
+    // Ensure that the target is analyzed as an implicit source.
+    newFile('/aaa/lib/foo.dart', content: 'import "package:bbb/target.dart";');
+
+    newFolder('/bbb');
+    newFile('/bbb/lib/target.dart', content: 'class Foo() {}');
+
     handleSuccessfulRequest(
-        new AnalysisSetAnalysisRootsParams(["/project1", "/project2"], [])
-            .toRequest('0'),
+        new AnalysisSetAnalysisRootsParams(['/aaa', '/bbb'], []).toRequest('0'),
         handler: analysisHandler);
 
-    // Set up files.
-    testFile = resourceProvider.convertPath('/project1/main.dart');
-    testCode = 'main() { print(new Foo()); }';
+    // Configure the test file.
+    testFile = resourceProvider.convertPath('/aaa/main.dart');
+    testCode = 'main() { new Foo(); }';
     _addOverlay(testFile, testCode);
-    // Add another file in the same project that imports the target file.
-    // This ensures it will be analyzed as an implicit Source.
-    _addOverlay('/project1/another.dart', 'import "../project2/target.dart";');
-    _addOverlay('/project2/target.dart', 'class Foo() {}');
 
     await waitForTasksFinished();
 
@@ -134,7 +137,7 @@
         .fixes
         .map((f) => f.message)
         .toList();
-    expect(fixes, contains("Import library '../project2/target.dart'"));
+    expect(fixes, contains("Import library 'package:bbb/target.dart'"));
   }
 
   void _addOverlay(String name, String contents) {
diff --git a/pkg/analysis_server/test/services/correction/assist_test.dart b/pkg/analysis_server/test/services/correction/assist_test.dart
index 35ff0a3..5518646 100644
--- a/pkg/analysis_server/test/services/correction/assist_test.dart
+++ b/pkg/analysis_server/test/services/correction/assist_test.dart
@@ -85,19 +85,6 @@
     await assertNoAssist(kind);
   }
 
-  Position expectedPosition(String search) {
-    int offset = resultCode.indexOf(search);
-    return new Position(testFile, offset);
-  }
-
-  List<Position> expectedPositions(List<String> patterns) {
-    List<Position> positions = <Position>[];
-    patterns.forEach((String search) {
-      positions.add(expectedPosition(search));
-    });
-    return positions;
-  }
-
   List<LinkedEditSuggestion> expectedSuggestions(
       LinkedEditSuggestionKind kind, List<String> values) {
     return values.map((value) {
@@ -2874,7 +2861,7 @@
 ''');
   }
 
-  test_flutterRemoveWidget_BAD_childrenIntoChild() async {
+  test_flutterRemoveWidget_BAD_childrenMultipleIntoChild() async {
     addFlutterPackage();
     await resolveTestUnit('''
 import 'package:flutter/material.dart';
@@ -2995,6 +2982,52 @@
 ''');
   }
 
+  test_flutterRemoveWidget_OK_childrenOneIntoChild() async {
+    addFlutterPackage();
+    await resolveTestUnit('''
+import 'package:flutter/material.dart';
+main() {
+  new Center(
+    child: /*caret*/new Column(
+      children: [
+        new Text('foo'),
+      ],
+    ),
+  );
+}
+''');
+    _setCaretLocation();
+    await assertHasAssist(DartAssistKind.FLUTTER_REMOVE_WIDGET, '''
+import 'package:flutter/material.dart';
+main() {
+  new Center(
+    child: /*caret*/new Text('foo'),
+  );
+}
+''');
+  }
+
+  test_flutterRemoveWidget_OK_childrenOneIntoReturn() async {
+    addFlutterPackage();
+    await resolveTestUnit('''
+import 'package:flutter/material.dart';
+main() {
+  return /*caret*/new Column(
+    children: [
+      new Text('foo'),
+    ],
+  );
+}
+''');
+    _setCaretLocation();
+    await assertHasAssist(DartAssistKind.FLUTTER_REMOVE_WIDGET, '''
+import 'package:flutter/material.dart';
+main() {
+  return /*caret*/new Text('foo');
+}
+''');
+  }
+
   test_flutterRemoveWidget_OK_intoChildren() async {
     addFlutterPackage();
     await resolveTestUnit('''
diff --git a/pkg/analysis_server/test/services/correction/fix_test.dart b/pkg/analysis_server/test/services/correction/fix_test.dart
index 4402f49..e3d6398 100644
--- a/pkg/analysis_server/test/services/correction/fix_test.dart
+++ b/pkg/analysis_server/test/services/correction/fix_test.dart
@@ -105,19 +105,6 @@
     }
   }
 
-  Position expectedPosition(String search) {
-    int offset = resultCode.indexOf(search);
-    return new Position(testFile, offset);
-  }
-
-  List<Position> expectedPositions(List<String> patterns) {
-    List<Position> positions = <Position>[];
-    patterns.forEach((String search) {
-      positions.add(expectedPosition(search));
-    });
-    return positions;
-  }
-
   List<LinkedEditSuggestion> expectedSuggestions(
       LinkedEditSuggestionKind kind, List<String> values) {
     return values.map((value) {
@@ -3562,35 +3549,26 @@
 ''');
   }
 
-  test_importLibraryPackage_preferPublicOverPrivate() async {
-    _configureMyPkg(
-        {'src/a.dart': 'class Test {}', 'b.dart': "export 'src/a.dart';"});
+  test_importLibraryProject_BAD_inLibSrc_differentContextRoot() async {
+    addPackageSource('bbb', 'b1.dart', r'''
+import 'src/b2.dart';
+''');
+    addPackageSource('bbb', 'src/b2.dart', 'class Test {}');
     await resolveTestUnit('''
+import 'package:bbb/b1.dart';
 main() {
-  Test test = null;
+  Test t;
 }
 ''');
-    await assertHasFix(DartFixKind.IMPORT_LIBRARY_PROJECT2, '''
-import 'package:my_pkg/b.dart';
-
-main() {
-  Test test = null;
-}
-''');
-    await assertHasFix(DartFixKind.IMPORT_LIBRARY_PROJECT3, '''
-import 'package:my_pkg/src/a.dart';
-
-main() {
-  Test test = null;
-}
-''');
+    errorFilter = (AnalysisError error) {
+      return error.errorCode == StaticWarningCode.UNDEFINED_CLASS;
+    };
+    await assertNoFix(DartFixKind.IMPORT_LIBRARY_PROJECT3);
   }
 
   test_importLibraryProject_BAD_notInLib_BUILD() async {
-    testFile = '/aaa/bin/test.dart';
-    newFile('/aaa/BUILD');
-    newFile('/bbb/BUILD');
-    addSource('/bbb/test/lib.dart', 'class Test {}');
+    testFile = '/project/lib/test.dart';
+    addSource('/other/test/lib.dart', 'class Test {}');
     await resolveTestUnit('''
 main() {
   Test t;
@@ -3600,10 +3578,8 @@
   }
 
   test_importLibraryProject_BAD_notInLib_pubspec() async {
-    testFile = '/aaa/bin/test.dart';
-    newFile('/aaa/pubspec.yaml', content: 'name: aaa');
-    newFile('/bbb/pubspec.yaml', content: 'name: bbb');
-    addSource('/bbb/test/lib.dart', 'class Test {}');
+    testFile = '/project/lib/test.dart';
+    addSource('/other/test/lib.dart', 'class Test {}');
     await resolveTestUnit('''
 main() {
   Test t;
@@ -3612,8 +3588,30 @@
     await assertNoFix(DartFixKind.IMPORT_LIBRARY_PROJECT1);
   }
 
+  test_importLibraryProject_OK_inLibSrc_thisContextRoot() async {
+    testFile = '/project/lib/test.dart';
+    packageMap['project'] = [newFolder('/project/lib')];
+    addSource('/project/lib/src/lib.dart', 'class Test {}');
+    await resolveTestUnit('''
+main() {
+  Test t;
+}
+''');
+    errorFilter = (AnalysisError error) {
+      return error.errorCode == StaticWarningCode.UNDEFINED_CLASS;
+    };
+    await assertHasFix(DartFixKind.IMPORT_LIBRARY_PROJECT3, '''
+import 'package:project/src/lib.dart';
+
+main() {
+  Test t;
+}
+''');
+  }
+
   test_importLibraryProject_withClass_annotation() async {
-    addSource('/lib.dart', '''
+    testFile = '/project/lib/test.dart';
+    addSource('/project/lib/lib.dart', '''
 library lib;
 class Test {
   const Test(int p);
@@ -3634,7 +3632,8 @@
   }
 
   test_importLibraryProject_withClass_constInstanceCreation() async {
-    addSource('/lib.dart', '''
+    testFile = '/project/lib/test.dart';
+    addSource('/project/lib/lib.dart', '''
 class Test {
   const Test();
 }
@@ -3742,7 +3741,8 @@
   }
 
   test_importLibraryProject_withFunction() async {
-    addSource('/lib.dart', '''
+    testFile = '/project/lib/test.dart';
+    addSource('/project/lib/lib.dart', '''
 library lib;
 myFunction() {}
 ''');
@@ -3761,7 +3761,8 @@
   }
 
   test_importLibraryProject_withFunction_unresolvedMethod() async {
-    addSource('/lib.dart', '''
+    testFile = '/project/lib/test.dart';
+    addSource('/project/lib/lib.dart', '''
 library lib;
 myFunction() {}
 ''');
@@ -3804,7 +3805,8 @@
   }
 
   test_importLibraryProject_withTopLevelVariable() async {
-    addSource('/lib.dart', '''
+    testFile = '/project/lib/test.dart';
+    addSource('/project/lib/lib.dart', '''
 library lib;
 int MY_VAR = 42;
 ''');
diff --git a/pkg/analyzer/lib/file_system/physical_file_system.dart b/pkg/analyzer/lib/file_system/physical_file_system.dart
index 2314617..1812123 100644
--- a/pkg/analyzer/lib/file_system/physical_file_system.dart
+++ b/pkg/analyzer/lib/file_system/physical_file_system.dart
@@ -40,27 +40,6 @@
 }
 
 /**
- * Return a (semi-)canonicalized version of [path] for the purpose of analysis.
- *
- * Using the built-in path's [canonicalize] results in fully lowercase paths on
- * Windows displayed to the user so this method uses [normalize] and then just
- * uppercases the drive letter on Windows to resolve the most common issues.
- */
-String _canonicalize(String path) {
-  path = normalize(path);
-  // Ideally we'd call path's [canonicalize] here to ensure that on
-  // case-insensitive file systems that different casing paths resolved to the
-  // same thing; however these paths are used both as both as part of the
-  // identity and also to display to users in error messages so for now we only
-  // canonicalize the drive letter to resolve the most common issues.
-  // https://github.com/dart-lang/sdk/issues/32095
-  if (io.Platform.isWindows && isAbsolute(path)) {
-    path = path.substring(0, 1).toUpperCase() + path.substring(1);
-  }
-  return path;
-}
-
-/**
 * The name of the directory containing plugin specific subfolders used to
 * store data across sessions.
 */
@@ -111,13 +90,13 @@
 
   @override
   File getFile(String path) {
-    path = _canonicalize(path);
+    path = normalize(path);
     return new _PhysicalFile(new io.File(path));
   }
 
   @override
   Folder getFolder(String path) {
-    path = _canonicalize(path);
+    path = normalize(path);
     return new _PhysicalFolder(new io.Directory(path));
   }
 
@@ -276,7 +255,7 @@
 
   @override
   String canonicalizePath(String relPath) {
-    return _canonicalize(join(path, relPath));
+    return normalize(join(path, relPath));
   }
 
   @override
diff --git a/pkg/dev_compiler/web/source_map_stack_trace.dart b/pkg/dev_compiler/web/source_map_stack_trace.dart
index a23bf85..d5c019a 100644
--- a/pkg/dev_compiler/web/source_map_stack_trace.dart
+++ b/pkg/dev_compiler/web/source_map_stack_trace.dart
@@ -44,8 +44,8 @@
     for (var root in roots) {
       if (root != null && p.url.isWithin(root, sourceUrl)) {
         var relative = p.url.relative(sourceUrl, from: root);
-        if (relative.startsWith('dart:')) {
-          sourceUrl = relative;
+        if (relative.contains('dart:')) {
+          sourceUrl = relative.substring(relative.indexOf('dart:'));
           break;
         }
         var packageRoot = '$root/packages';
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 f5ad752..269228d 100644
--- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
@@ -7,18 +7,6 @@
 // ignore: UNDEFINED_HIDDEN_NAME
 import 'dart:core' hide MapEntry;
 
-import 'package:kernel/ast.dart' hide InvalidExpression, InvalidInitializer;
-
-import 'package:kernel/type_algebra.dart' show instantiateToBounds;
-
-import 'package:kernel/class_hierarchy.dart' show ClassHierarchy;
-
-import 'package:kernel/clone.dart' show CloneVisitor;
-
-import 'package:kernel/core_types.dart' show CoreTypes;
-
-import 'package:kernel/transformations/flags.dart' show TransformerFlag;
-
 import '../fasta_codes.dart' as fasta;
 
 import '../fasta_codes.dart'
@@ -85,13 +73,21 @@
 
 import 'utils.dart' show offsetForToken;
 
+import 'forest.dart' show Forest;
+
+import 'fangorn.dart' show Fangorn;
+
 import '../names.dart';
 
 import 'fasta_accessors.dart';
 
+import 'kernel_api.dart';
+
+import 'kernel_ast_api.dart';
+
 import 'kernel_builder.dart';
 
-import 'kernel_shadow_ast.dart';
+final Forest<Expression, Statement> _forest = new Fangorn();
 
 class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
   @override
@@ -110,6 +106,7 @@
   final Scope enclosingScope;
 
   final bool enableNative;
+
   final bool stringExpectedAfterNative;
 
   /// Whether to ignore an unresolved reference to `main` within the body of
@@ -209,6 +206,9 @@
         typePromoter = _typeInferrer.typePromoter,
         super(scope);
 
+  @override
+  Forest<Expression, Statement> get forest => _forest;
+
   bool get hasParserError => recoverableErrors.isNotEmpty;
 
   bool get inConstructor {
@@ -1463,7 +1463,7 @@
     if (value == null) {
       push(new LargeIntAccessor(this, token));
     } else {
-      push(new ShadowIntLiteral(value)..fileOffset = offsetForToken(token));
+      push(forest.literalInt(value, offsetForToken(token)));
     }
   }
 
@@ -2231,8 +2231,7 @@
           int value =
               int.parse("-" + receiver.token.lexeme, onError: (_) => null);
           if (value != null) {
-            push(new ShadowIntLiteral(value)
-              ..fileOffset = offsetForToken(token));
+            push(forest.literalInt(value, offsetForToken(token)));
             return;
           }
         }
@@ -3434,13 +3433,17 @@
   Expression buildFallThroughError(int charOffset) {
     addProblem(fasta.messageSwitchCaseFallThrough, charOffset);
 
+    // TODO(ahe): The following doesn't make sense for the Analyzer. It should
+    // be moved to [Forest] or conditional on `forest is Fangorn`.
+
+    // TODO(ahe): Compute a LocatedMessage above instead?
     Location location = messages.getLocationFromUri(uri, charOffset);
 
     return new Throw(buildStaticInvocation(
         library.loader.coreTypes.fallThroughErrorUrlAndLineConstructor,
         new Arguments(<Expression>[
           new StringLiteral("${location?.file ?? uri}"),
-          new IntLiteral(location?.line ?? 0)
+          forest.literalInt(location?.line ?? 0, charOffset),
         ]),
         charOffset: charOffset));
   }
diff --git a/pkg/front_end/lib/src/fasta/kernel/fangorn.dart b/pkg/front_end/lib/src/fasta/kernel/fangorn.dart
new file mode 100644
index 0000000..f102ac7
--- /dev/null
+++ b/pkg/front_end/lib/src/fasta/kernel/fangorn.dart
@@ -0,0 +1,17 @@
+// Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
+// for 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.fangorn;
+
+import 'kernel_shadow_ast.dart';
+
+import 'forest.dart' show Forest;
+
+/// A shadow tree factory.
+class Fangorn extends Forest<ShadowExpression, ShadowStatement> {
+  @override
+  ShadowExpression literalInt(int value, int offset) {
+    return new ShadowIntLiteral(value)..fileOffset = offset;
+  }
+}
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 a838287..27d8092 100644
--- a/pkg/front_end/lib/src/fasta/kernel/fasta_accessors.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/fasta_accessors.dart
@@ -4,8 +4,6 @@
 
 library fasta.fasta_accessors;
 
-import 'package:kernel/ast.dart' hide InvalidExpression, InvalidInitializer;
-
 import '../../scanner/token.dart' show Token;
 
 import '../fasta_codes.dart'
@@ -27,6 +25,8 @@
 
 import '../type_inference/type_promotion.dart' show TypePromoter;
 
+import 'forest.dart' show Forest;
+
 import 'frontend_accessors.dart' as kernel
     show
         IndexAccessor,
@@ -45,6 +45,8 @@
 
 import 'frontend_accessors.dart' show Accessor;
 
+import 'kernel_ast_api.dart';
+
 import 'kernel_builder.dart'
     show
         Builder,
@@ -60,18 +62,6 @@
         TypeDeclarationBuilder,
         KernelTypeBuilder;
 
-import 'kernel_shadow_ast.dart'
-    show
-        ShadowArguments,
-        ShadowComplexAssignment,
-        ShadowIllegalAssignment,
-        ShadowIndexAssign,
-        ShadowPropertyAssign,
-        ShadowStaticAssignment,
-        ShadowThisExpression,
-        ShadowTypeLiteral,
-        ShadowVariableAssignment;
-
 import 'utils.dart' show offsetForToken;
 
 import 'type_algorithms.dart' show calculateBoundsForDeclaration;
@@ -87,6 +77,8 @@
 
   bool get constantExpressionRequired;
 
+  Forest<Expression, Statement> get forest;
+
   Constructor lookupConstructor(Name name, {bool isSuper});
 
   Expression toValue(node);
@@ -325,7 +317,10 @@
       {int offset: TreeNode.noOffset,
       bool voidContext: false,
       Procedure interfaceTarget}) {
-    return buildError(new ShadowArguments(<Expression>[new IntLiteral(1)]),
+    // TODO(ahe): For the Analyzer, we probably need to build a prefix
+    // increment node that wraps an error.
+    return buildError(
+        new ShadowArguments(<Expression>[helper.forest.literalInt(1, offset)]),
         isGetter: true);
   }
 
@@ -334,7 +329,10 @@
       {int offset: TreeNode.noOffset,
       bool voidContext: false,
       Procedure interfaceTarget}) {
-    return buildError(new ShadowArguments(<Expression>[new IntLiteral(1)]),
+    // TODO(ahe): For the Analyzer, we probably need to build a post increment
+    // node that wraps an error.
+    return buildError(
+        new ShadowArguments(<Expression>[helper.forest.literalInt(1, offset)]),
         isGetter: true);
   }
 
diff --git a/pkg/front_end/lib/src/fasta/kernel/forest.dart b/pkg/front_end/lib/src/fasta/kernel/forest.dart
new file mode 100644
index 0000000..283d8cc
--- /dev/null
+++ b/pkg/front_end/lib/src/fasta/kernel/forest.dart
@@ -0,0 +1,10 @@
+// Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
+// for 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.forest;
+
+/// A tree factory.
+abstract class Forest<Expression, Statement> {
+  Expression literalInt(int value, int offset);
+}
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_api.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_api.dart
new file mode 100644
index 0000000..7d5877f
--- /dev/null
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_api.dart
@@ -0,0 +1,16 @@
+// Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
+// for 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 library exports all API from Kernel that can be used throughout fasta.
+library fasta.kernel_api;
+
+export 'package:kernel/type_algebra.dart' show instantiateToBounds;
+
+export 'package:kernel/class_hierarchy.dart' show ClassHierarchy;
+
+export 'package:kernel/clone.dart' show CloneVisitor;
+
+export 'package:kernel/core_types.dart' show CoreTypes;
+
+export 'package:kernel/transformations/flags.dart' show TransformerFlag;
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_ast_api.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_ast_api.dart
new file mode 100644
index 0000000..472ab0b
--- /dev/null
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_ast_api.dart
@@ -0,0 +1,131 @@
+// Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
+// for 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 library exports all API from Kernel's ast.dart that can be used
+/// throughout fasta.
+library fasta.kernel_ast_api;
+
+export 'package:kernel/ast.dart'
+    show
+        Arguments,
+        AssertStatement,
+        AsyncMarker,
+        Block,
+        BreakStatement,
+        Catch,
+        CheckLibraryIsLoaded,
+        Class,
+        ConditionalExpression,
+        Constructor,
+        ConstructorInvocation,
+        ContinueSwitchStatement,
+        DartType,
+        DynamicType,
+        EmptyStatement,
+        Expression,
+        ExpressionStatement,
+        Field,
+        FunctionDeclaration,
+        FunctionNode,
+        FunctionType,
+        Initializer,
+        InvalidType,
+        LabeledStatement,
+        Let,
+        Library,
+        Location,
+        MapEntry,
+        Member,
+        MethodInvocation,
+        Name,
+        NamedExpression,
+        NamedType,
+        NullLiteral,
+        Procedure,
+        ProcedureKind,
+        Rethrow,
+        ReturnStatement,
+        Statement,
+        StaticGet,
+        StringConcatenation,
+        StringLiteral,
+        SuperInitializer,
+        SwitchCase,
+        ThisExpression,
+        Throw,
+        TreeNode,
+        TypeParameter,
+        TypeParameterType,
+        VariableDeclaration,
+        VariableGet,
+        VoidType,
+        setParents;
+
+export 'kernel_shadow_ast.dart'
+    show
+        ShadowArguments,
+        ShadowAsExpression,
+        ShadowAssertInitializer,
+        ShadowAssertStatement,
+        ShadowAwaitExpression,
+        ShadowBlock,
+        ShadowBoolLiteral,
+        ShadowBreakStatement,
+        ShadowCascadeExpression,
+        ShadowComplexAssignment,
+        ShadowConditionalExpression,
+        ShadowConstructorInvocation,
+        ShadowContinueSwitchStatement,
+        ShadowDeferredCheck,
+        ShadowDoStatement,
+        ShadowDoubleLiteral,
+        ShadowExpressionStatement,
+        ShadowFactoryConstructorInvocation,
+        ShadowFieldInitializer,
+        ShadowForInStatement,
+        ShadowForStatement,
+        ShadowFunctionDeclaration,
+        ShadowFunctionExpression,
+        ShadowIfNullExpression,
+        ShadowIfStatement,
+        ShadowIllegalAssignment,
+        ShadowIndexAssign,
+        ShadowInvalidInitializer,
+        ShadowIsExpression,
+        ShadowIsNotExpression,
+        ShadowLabeledStatement,
+        ShadowListLiteral,
+        ShadowLogicalExpression,
+        ShadowLoopAssignmentStatement,
+        ShadowMapLiteral,
+        ShadowMethodInvocation,
+        ShadowNamedFunctionExpression,
+        ShadowNot,
+        ShadowNullAwareMethodInvocation,
+        ShadowNullLiteral,
+        ShadowPropertyAssign,
+        ShadowRedirectingInitializer,
+        ShadowRethrow,
+        ShadowReturnStatement,
+        ShadowStaticAssignment,
+        ShadowStaticGet,
+        ShadowStaticInvocation,
+        ShadowStringConcatenation,
+        ShadowStringLiteral,
+        ShadowSuperInitializer,
+        ShadowSuperMethodInvocation,
+        ShadowSuperPropertyGet,
+        ShadowSwitchStatement,
+        ShadowSymbolLiteral,
+        ShadowSyntheticExpression,
+        ShadowThisExpression,
+        ShadowThrow,
+        ShadowTryCatch,
+        ShadowTryFinally,
+        ShadowTypeLiteral,
+        ShadowVariableAssignment,
+        ShadowVariableDeclaration,
+        ShadowVariableGet,
+        ShadowWhileStatement,
+        ShadowYieldStatement;
diff --git a/pkg/front_end/lib/src/fasta/loader.dart b/pkg/front_end/lib/src/fasta/loader.dart
index 8c40e68..6bba731 100644
--- a/pkg/front_end/lib/src/fasta/loader.dart
+++ b/pkg/front_end/lib/src/fasta/loader.dart
@@ -85,6 +85,12 @@
   LibraryBuilder read(Uri uri, int charOffset,
       {Uri fileUri, LibraryBuilder accessor, LibraryBuilder origin}) {
     LibraryBuilder builder = builders.putIfAbsent(uri, () {
+      if (fileUri != null &&
+          (fileUri.scheme == "dart" ||
+              fileUri.scheme == "package" ||
+              fileUri.scheme == "dart-ext")) {
+        fileUri = null;
+      }
       if (fileUri == null) {
         switch (uri.scheme) {
           case "package":
diff --git a/pkg/front_end/lib/src/fasta/source/source_library_builder.dart b/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
index ab381f5..cc8fd0a 100644
--- a/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
@@ -276,9 +276,7 @@
     Uri resolvedUri;
     Uri newFileUri;
     resolvedUri = resolve(this.uri, uri, charOffset, isPart: true);
-    if (this.uri.scheme != "package") {
-      newFileUri = resolve(fileUri, uri, charOffset);
-    }
+    newFileUri = resolve(fileUri, uri, charOffset);
     parts.add(loader.read(resolvedUri, charOffset,
         fileUri: newFileUri, accessor: this));
   }
diff --git a/pkg/front_end/lib/src/fasta/uri_translator_impl.dart b/pkg/front_end/lib/src/fasta/uri_translator_impl.dart
index 78d9e26..9d31710 100644
--- a/pkg/front_end/lib/src/fasta/uri_translator_impl.dart
+++ b/pkg/front_end/lib/src/fasta/uri_translator_impl.dart
@@ -47,15 +47,7 @@
   /// if there is no corresponding Dart library registered.
   Uri _translateDartUri(Uri uri) {
     if (!uri.isScheme('dart')) return null;
-    String path = uri.path;
-
-    int index = path.indexOf('/');
-    if (index == -1) return dartLibraries.libraryInfoFor(path)?.uri;
-
-    String libraryName = path.substring(0, index);
-    String relativePath = path.substring(index + 1);
-    Uri libraryFileUri = dartLibraries.libraryInfoFor(libraryName).uri;
-    return libraryFileUri?.resolve(relativePath);
+    return dartLibraries.libraryInfoFor(uri.path)?.uri;
   }
 
   /// Return the file URI that corresponds to the given `package` URI, or
diff --git a/pkg/front_end/test/fasta/uri_translator_test.dart b/pkg/front_end/test/fasta/uri_translator_test.dart
index cb04561..455d771 100644
--- a/pkg/front_end/test/fasta/uri_translator_test.dart
+++ b/pkg/front_end/test/fasta/uri_translator_test.dart
@@ -40,8 +40,7 @@
   void test_translate_dart() {
     expect(translator.translate(Uri.parse('dart:core')),
         Uri.parse('org-dartlang-test:///sdk/core/core.dart'));
-    expect(translator.translate(Uri.parse('dart:core/string.dart')),
-        Uri.parse('org-dartlang-test:///sdk/core/string.dart'));
+    expect(translator.translate(Uri.parse('dart:core/string.dart')), null);
 
     expect(translator.translate(Uri.parse('dart:math')),
         Uri.parse('org-dartlang-test:///sdk/math/math.dart'));
diff --git a/pkg/front_end/tool/_fasta/command_line.dart b/pkg/front_end/tool/_fasta/command_line.dart
index a25d6be..f3404a3 100644
--- a/pkg/front_end/tool/_fasta/command_line.dart
+++ b/pkg/front_end/tool/_fasta/command_line.dart
@@ -56,22 +56,29 @@
   ///
   /// An /argument/ is something that isn't an option, for example, a file name.
   ///
-  /// The specification is a map of options to one of the type literals `Uri`,
-  /// `int`, `bool`, or `String`, or a comma (`","`) that represents option
-  /// values of type [Uri], [int], [bool], [String], or a comma-separated list
-  /// of [String], respectively.
+  /// The specification is a map of options to one of the following values:
+  /// * the type literal `Uri`, representing an option value of type [Uri],
+  /// * the type literal `int`, representing an option value of type [int],
+  /// * the bool literal `false`, representing a boolean option that is turned
+  ///   off by default,
+  /// * the bool literal `true, representing a boolean option that is turned on
+  ///   by default,
+  /// * or the string literal `","`, representing a comma-separated list of
+  ///   values.
   ///
   /// If [arguments] contains `"--"`, anything before is parsed as options, and
   /// arguments; anything following is treated as arguments (even if starting
   /// with, for example, a `-`).
   ///
-  /// Anything that looks like an option is assumed to be a `bool` option set
-  /// to true, unless it's mentioned in [specification] in which case the
-  /// option requires a value, either on the form `--option value` or
-  /// `--option=value`.
+  /// If an option isn't found in [specification], an error is thrown.
   ///
-  /// This method performs only a limited amount of validation, but if an error
-  /// occurs, it will print [usage] along with a specific error message.
+  /// Boolean options do not require an option value, but an optional value can
+  /// be provided using the forms `--option=value` where `value` can be `true`
+  /// or `yes` to turn on the option, or `false` or `no` to turn it off.  If no
+  /// option value is specified, a boolean option is turned on.
+  ///
+  /// All other options require an option value, either on the form `--option
+  /// value` or `--option=value`.
   static ParsedArguments parse(
       List<String> arguments, Map<String, dynamic> specification) {
     specification ??= const <String, dynamic>{};
@@ -85,109 +92,134 @@
     }
     while (iterator.moveNext()) {
       String argument = iterator.current;
-      if (argument.startsWith("-")) {
-        var valueSpecification = specification[argument];
+      if (argument.startsWith("-") || argument == "/?" || argument == "/h") {
+        index = argument.indexOf("=");
         String value;
-        if (valueSpecification != null) {
+        if (index != -1) {
+          value = argument.substring(index + 1);
+          argument = argument.substring(0, index);
+        }
+        var valueSpecification = specification[argument];
+        if (valueSpecification == null) {
+          throw new CommandLineProblem.deprecated(
+              "Unknown option '$argument'.");
+        }
+        String canonicalArgument = argument;
+        if (valueSpecification is String && valueSpecification != ",") {
+          canonicalArgument = valueSpecification;
+          valueSpecification = specification[valueSpecification];
+        }
+        if (valueSpecification == true || valueSpecification == false) {
+          valueSpecification = bool;
+        }
+        if (valueSpecification is! String && valueSpecification is! Type) {
+          throw new CommandLineProblem.deprecated("Unrecognized type of value "
+              "specification: ${valueSpecification.runtimeType}.");
+        }
+        final bool requiresValue = valueSpecification != bool;
+        if (requiresValue && value == null) {
           if (!iterator.moveNext()) {
             throw new CommandLineProblem(
                 templateFastaCLIArgumentRequired.withArguments(argument));
           }
           value = iterator.current;
-        } else {
-          index = argument.indexOf("=");
-          if (index != -1) {
-            value = argument.substring(index + 1);
-            argument = argument.substring(0, index);
-            valueSpecification = specification[argument];
-          }
         }
-        if (valueSpecification == null) {
-          if (value != null) {
-            throw new CommandLineProblem.deprecated(
-                "Option '$argument' doesn't take a value: '$value'.");
-          }
-          result.options[argument] = true;
-        } else {
-          if (valueSpecification is! String && valueSpecification is! Type) {
-            return throw new CommandLineProblem.deprecated(
-                "Unrecognized type of value "
-                "specification: ${valueSpecification.runtimeType}.");
-          }
-          switch ("$valueSpecification") {
-            case ",":
-              result.options
-                  .putIfAbsent(argument, () => <String>[])
-                  .addAll(value.split(","));
-              break;
+        switch ("$valueSpecification") {
+          case ",":
+            result.options
+                .putIfAbsent(argument, () => <String>[])
+                .addAll(value.split(","));
+            break;
 
-            case "int":
-            case "bool":
-            case "String":
-            case "Uri":
-              if (result.options.containsKey(argument)) {
-                return throw new CommandLineProblem.deprecated(
-                    "Multiple values for '$argument': "
-                    "'${result.options[argument]}' and '$value'.");
-              }
-              var parsedValue;
-              if (valueSpecification == int) {
-                parsedValue = int.parse(value, onError: (_) {
-                  return throw new CommandLineProblem.deprecated(
-                      "Value for '$argument', '$value', isn't an int.");
-                });
-              } else if (valueSpecification == bool) {
-                if (value == "true" || value == "yes") {
-                  parsedValue = true;
-                } else if (value == "false" || value == "no") {
-                  parsedValue = false;
-                } else {
-                  return throw new CommandLineProblem.deprecated(
-                      "Value for '$argument' is '$value', "
-                      "but expected one of: 'true', 'false', 'yes', or 'no'.");
-                }
-              } else if (valueSpecification == Uri) {
-                parsedValue = Uri.base.resolveUri(new Uri.file(value));
-              } else if (valueSpecification == String) {
-                parsedValue = value;
-              } else if (valueSpecification is String) {
-                return throw new CommandLineProblem.deprecated(
-                    "Unrecognized value specification: "
-                    "'$valueSpecification', try using a type literal instead.");
-              } else {
-                // All possible cases should have been handled above.
-                return unhandled("${valueSpecification.runtimeType}",
-                    "CommandLine.parse", -1, null);
-              }
-              result.options[argument] = parsedValue;
-              break;
-
-            default:
+          case "int":
+          case "bool":
+          case "String":
+          case "Uri":
+            if (result.options.containsKey(canonicalArgument)) {
               return throw new CommandLineProblem.deprecated(
-                  "Unrecognized value specification: '$valueSpecification'.");
-          }
+                  "Multiple values for '$argument': "
+                  "'${result.options[canonicalArgument]}' and '$value'.");
+            }
+            var parsedValue;
+            if (valueSpecification == int) {
+              parsedValue = int.parse(value, onError: (_) {
+                return throw new CommandLineProblem.deprecated(
+                    "Value for '$argument', '$value', isn't an int.");
+              });
+            } else if (valueSpecification == bool) {
+              if (value == null || value == "true" || value == "yes") {
+                parsedValue = true;
+              } else if (value == "false" || value == "no") {
+                parsedValue = false;
+              } else {
+                return throw new CommandLineProblem.deprecated(
+                    "Value for '$argument' is '$value', "
+                    "but expected one of: 'true', 'false', 'yes', or 'no'.");
+              }
+            } else if (valueSpecification == Uri) {
+              parsedValue = Uri.base.resolveUri(new Uri.file(value));
+            } else if (valueSpecification == String) {
+              parsedValue = value;
+            } else if (valueSpecification is String) {
+              return throw new CommandLineProblem.deprecated(
+                  "Unrecognized value specification: "
+                  "'$valueSpecification', try using a type literal instead.");
+            } else {
+              // All possible cases should have been handled above.
+              return unhandled("${valueSpecification.runtimeType}",
+                  "CommandLine.parse", -1, null);
+            }
+            result.options[canonicalArgument] = parsedValue;
+            break;
+
+          default:
+            return throw new CommandLineProblem.deprecated(
+                "Unrecognized value specification: '$valueSpecification'.");
         }
-      } else if (argument == "/?" || argument == "/h") {
-        result.options[argument] = true;
       } else {
         result.arguments.add(argument);
       }
     }
+    specification.forEach((String key, value) {
+      if (value == bool) {
+        result.options[key] ??= false;
+      } else if (value is bool) {
+        result.options[key] ??= value;
+      }
+    });
     result.arguments.addAll(nonOptions);
     return result;
   }
 }
 
+// Before adding new options here, you must:
+//  * Document the option.
+//  * Get an explicit approval from the front-end team.
 const Map<String, dynamic> optionSpecification = const <String, dynamic>{
   "--compile-sdk": Uri,
+  "--dump-ir": false,
+  "--exclude-source": false,
   "--fatal": ",",
+  "--help": false,
+  "--legacy": "--legacy-mode",
+  "--legacy-mode": true,
+  "--libraries-json": Uri,
   "--output": Uri,
-  "-o": Uri,
   "--packages": Uri,
   "--platform": Uri,
-  "--libraries-json": Uri,
+  "--sdk": Uri,
+  "--strong": "--strong-mode",
+  "--strong-mode": false,
+  "--sync-async": false,
   "--target": String,
-  "-t": String,
+  "--verbose": false,
+  "--verify": false,
+  "-h": "--help",
+  "-o": "--output",
+  "-t": "--target",
+  "-v": "--verbose",
+  "/?": "--help",
+  "/h": "--help",
 };
 
 ProcessedOptions analyzeCommandLine(
@@ -199,38 +231,24 @@
 
   final List<String> arguments = parsedArguments.arguments;
 
-  final bool help = options.containsKey("--help") ||
-      options.containsKey("-h") ||
-      options.containsKey("/h") ||
-      options.containsKey("/?");
+  final bool help = options["--help"];
 
   if (help) {
     print(computeUsage(programName, verbose).message);
     exit(0);
   }
 
-  if (options.containsKey("-o") && options.containsKey("--output")) {
-    return throw new CommandLineProblem.deprecated(
-        "Can't specify both '-o' and '--output'.");
-  }
-
-  if (options.containsKey("-t") && options.containsKey("--target")) {
-    return throw new CommandLineProblem.deprecated(
-        "Can't specify both '-t' and '--target'.");
-  }
-
   if (options.containsKey("--compile-sdk") &&
       options.containsKey("--platform")) {
     return throw new CommandLineProblem.deprecated(
         "Can't specify both '--compile-sdk' and '--platform'.");
   }
 
-  final bool strongMode =
-      options.containsKey("--strong-mode") || options.containsKey("--strong");
+  final bool strongMode = options["--strong-mode"] || !options["--legacy-mode"];
 
-  final bool syncAsync = options.containsKey("--sync-async");
+  final bool syncAsync = options["--sync-async"];
 
-  final String targetName = options["-t"] ?? options["--target"] ?? "vm";
+  final String targetName = options["--target"] ?? "vm";
 
   final TargetFlags flags =
       new TargetFlags(strongMode: strongMode, syncAsync: syncAsync);
@@ -242,11 +260,11 @@
         "Valid targets are:\n  ${targets.keys.join("\n  ")}");
   }
 
-  final bool verify = options.containsKey("--verify");
+  final bool verify = options["--verify"];
 
-  final bool dumpIr = options.containsKey("--dump-ir");
+  final bool dumpIr = options["--dump-ir"];
 
-  final bool excludeSource = options.containsKey("--exclude-source");
+  final bool excludeSource = options["--exclude-source"];
 
   final Uri packages = options["--packages"];
 
@@ -270,10 +288,6 @@
       return throw new CommandLineProblem.deprecated(
           "Cannot specify '--compile-sdk' option to compile_platform.");
     }
-    if (options.containsKey("-o")) {
-      return throw new CommandLineProblem.deprecated(
-          "Cannot specify '-o' option to compile_platform.");
-    }
     if (options.containsKey("--output")) {
       return throw new CommandLineProblem.deprecated(
           "Cannot specify '--output' option to compile_platform.");
@@ -343,14 +357,19 @@
     List<String> arguments,
     bool areRestArgumentsInputs,
     dynamic f(CompilerContext context, List<String> restArguments)) {
+  bool verbose = false;
+  for (String argument in arguments) {
+    if (argument == "--") break;
+    if (argument == "-v" || argument == "--verbose") {
+      verbose = true;
+      break;
+    }
+  }
   ParsedArguments parsedArguments;
   ProcessedOptions options;
-  bool verbose = true;
   CommandLineProblem problem;
   try {
     parsedArguments = ParsedArguments.parse(arguments, optionSpecification);
-    verbose = parsedArguments.options.containsKey("-v") ||
-        parsedArguments.options.containsKey("--verbose");
     options = analyzeCommandLine(
         programName, parsedArguments, areRestArgumentsInputs, verbose);
   } on CommandLineProblem catch (e) {
diff --git a/pkg/front_end/tool/_fasta/entry_points.dart b/pkg/front_end/tool/_fasta/entry_points.dart
index aa54f46..2555edb 100644
--- a/pkg/front_end/tool/_fasta/entry_points.dart
+++ b/pkg/front_end/tool/_fasta/entry_points.dart
@@ -209,9 +209,6 @@
     DillTarget dillTarget = createDillTarget(uriTranslator);
     KernelTarget kernelTarget =
         createKernelTarget(dillTarget, uriTranslator, c.options.strongMode);
-    if (c.options.strongMode) {
-      print("Note: strong mode support is preliminary and may not work.");
-    }
     Uri platform = c.options.sdkSummary;
     if (platform != null) {
       _appendDillForUri(dillTarget, platform);
diff --git a/pkg/kernel/lib/binary/ast_to_binary.dart b/pkg/kernel/lib/binary/ast_to_binary.dart
index 8ed77d7..1cb3111 100644
--- a/pkg/kernel/lib/binary/ast_to_binary.dart
+++ b/pkg/kernel/lib/binary/ast_to_binary.dart
@@ -1840,13 +1840,8 @@
     // the bytes buffer is too large to fit in our own buffer, just emit both.
     if (length + bytes.length < SIZE &&
         (bytes.length < SMALL || length < SMALL)) {
-      if (length == 0) {
-        _sink.add(bytes);
-        flushedLength += bytes.length;
-      } else {
-        _buffer.setRange(length, length + bytes.length, bytes);
-        length += bytes.length;
-      }
+      _buffer.setRange(length, length + bytes.length, bytes);
+      length += bytes.length;
     } else if (bytes.length < SMALL) {
       // Flush as much as we can in the current buffer.
       _buffer.setRange(length, SIZE, bytes);
@@ -1860,12 +1855,9 @@
       length = remainder;
       flushedLength += SIZE;
     } else {
-      _sink.add(_buffer.sublist(0, length));
+      flush();
       _sink.add(bytes);
-      _buffer = new Uint8List(SIZE);
-      flushedLength += length;
       flushedLength += bytes.length;
-      length = 0;
     }
   }
 
diff --git a/runtime/bin/platform.h b/runtime/bin/platform.h
index 7361772..d174902 100644
--- a/runtime/bin/platform.h
+++ b/runtime/bin/platform.h
@@ -91,9 +91,6 @@
   static DART_NORETURN void Exit(int exit_code);
 
  private:
-  static void SaveConsoleConfiguration();
-  static void RestoreConsoleConfiguration();
-
   // The path to the executable.
   static const char* executable_name_;
   // The path to the resolved executable.
diff --git a/runtime/bin/platform_android.cc b/runtime/bin/platform_android.cc
index 9f29cb5..7e3f880 100644
--- a/runtime/bin/platform_android.cc
+++ b/runtime/bin/platform_android.cc
@@ -7,16 +7,13 @@
 
 #include "bin/platform.h"
 
-#include <errno.h>        // NOLINT
 #include <signal.h>       // NOLINT
 #include <string.h>       // NOLINT
 #include <sys/utsname.h>  // NOLINT
-#include <termios.h>      // NOLINT
 #include <unistd.h>       // NOLINT
 
 #include "bin/fdutils.h"
 #include "bin/file.h"
-#include "platform/signal_blocker.h"
 
 namespace dart {
 namespace bin {
@@ -31,53 +28,6 @@
   abort();
 }
 
-class PlatformPosix {
- public:
-  static void SaveConsoleConfiguration() {
-    SaveConsoleConfigurationHelper(STDOUT_FILENO, &stdout_initial_c_lflag_);
-    SaveConsoleConfigurationHelper(STDERR_FILENO, &stderr_initial_c_lflag_);
-    SaveConsoleConfigurationHelper(STDIN_FILENO, &stdin_initial_c_lflag_);
-  }
-
-  static void RestoreConsoleConfiguration() {
-    RestoreConsoleConfigurationHelper(STDOUT_FILENO, stdout_initial_c_lflag_);
-    RestoreConsoleConfigurationHelper(STDERR_FILENO, stderr_initial_c_lflag_);
-    RestoreConsoleConfigurationHelper(STDIN_FILENO, stdin_initial_c_lflag_);
-    stdout_initial_c_lflag_ = -1;
-    stderr_initial_c_lflag_ = -1;
-    stdin_initial_c_lflag_ = -1;
-  }
-
- private:
-  static tcflag_t stdout_initial_c_lflag_;
-  static tcflag_t stderr_initial_c_lflag_;
-  static tcflag_t stdin_initial_c_lflag_;
-
-  static void SaveConsoleConfigurationHelper(intptr_t fd, tcflag_t* flag) {
-    ASSERT(flag != NULL);
-    struct termios term;
-    int status = NO_RETRY_EXPECTED(tcgetattr(fd, &term));
-    if (status != 0) {
-      return;
-    }
-    *flag = term.c_lflag;
-  }
-
-  static void RestoreConsoleConfigurationHelper(intptr_t fd, tcflag_t flag) {
-    struct termios term;
-    int status = NO_RETRY_EXPECTED(tcgetattr(fd, &term));
-    if (status != 0) {
-      return;
-    }
-    term.c_lflag = flag;
-    NO_RETRY_EXPECTED(tcsetattr(fd, TCSANOW, &term));
-  }
-};
-
-tcflag_t PlatformPosix::stdout_initial_c_lflag_ = 0;
-tcflag_t PlatformPosix::stderr_initial_c_lflag_ = 0;
-tcflag_t PlatformPosix::stdin_initial_c_lflag_ = 0;
-
 bool Platform::Initialize() {
   // Turn off the signal handler for SIGPIPE as it causes the process
   // to terminate on writing to a closed pipe. Without the signal
@@ -112,7 +62,7 @@
     perror("sigaction() failed.");
     return false;
   }
-  SaveConsoleConfiguration();
+
   return true;
 }
 
@@ -192,18 +142,9 @@
 }
 
 void Platform::Exit(int exit_code) {
-  RestoreConsoleConfiguration();
   exit(exit_code);
 }
 
-void Platform::SaveConsoleConfiguration() {
-  PlatformPosix::SaveConsoleConfiguration();
-}
-
-void Platform::RestoreConsoleConfiguration() {
-  PlatformPosix::RestoreConsoleConfiguration();
-}
-
 }  // namespace bin
 }  // namespace dart
 
diff --git a/runtime/bin/platform_fuchsia.cc b/runtime/bin/platform_fuchsia.cc
index 24936b7..cda405e 100644
--- a/runtime/bin/platform_fuchsia.cc
+++ b/runtime/bin/platform_fuchsia.cc
@@ -150,14 +150,6 @@
   exit(exit_code);
 }
 
-void Platform::SaveConsoleConfiguration() {
-  UNIMPLEMENTED();
-}
-
-void Platform::RestoreConsoleConfiguration() {
-  UNIMPLEMENTED();
-}
-
 }  // namespace bin
 }  // namespace dart
 
diff --git a/runtime/bin/platform_linux.cc b/runtime/bin/platform_linux.cc
index b087151..e681f03 100644
--- a/runtime/bin/platform_linux.cc
+++ b/runtime/bin/platform_linux.cc
@@ -7,16 +7,13 @@
 
 #include "bin/platform.h"
 
-#include <errno.h>        // NOLINT
 #include <signal.h>       // NOLINT
 #include <string.h>       // NOLINT
 #include <sys/utsname.h>  // NOLINT
-#include <termios.h>      // NOLINT
 #include <unistd.h>       // NOLINT
 
 #include "bin/fdutils.h"
 #include "bin/file.h"
-#include "platform/signal_blocker.h"
 
 namespace dart {
 namespace bin {
@@ -31,53 +28,6 @@
   abort();
 }
 
-class PlatformPosix {
- public:
-  static void SaveConsoleConfiguration() {
-    SaveConsoleConfigurationHelper(STDOUT_FILENO, &stdout_initial_c_lflag_);
-    SaveConsoleConfigurationHelper(STDERR_FILENO, &stderr_initial_c_lflag_);
-    SaveConsoleConfigurationHelper(STDIN_FILENO, &stdin_initial_c_lflag_);
-  }
-
-  static void RestoreConsoleConfiguration() {
-    RestoreConsoleConfigurationHelper(STDOUT_FILENO, stdout_initial_c_lflag_);
-    RestoreConsoleConfigurationHelper(STDERR_FILENO, stderr_initial_c_lflag_);
-    RestoreConsoleConfigurationHelper(STDIN_FILENO, stdin_initial_c_lflag_);
-    stdout_initial_c_lflag_ = -1;
-    stderr_initial_c_lflag_ = -1;
-    stdin_initial_c_lflag_ = -1;
-  }
-
- private:
-  static tcflag_t stdout_initial_c_lflag_;
-  static tcflag_t stderr_initial_c_lflag_;
-  static tcflag_t stdin_initial_c_lflag_;
-
-  static void SaveConsoleConfigurationHelper(intptr_t fd, tcflag_t* flag) {
-    ASSERT(flag != NULL);
-    struct termios term;
-    int status = NO_RETRY_EXPECTED(tcgetattr(fd, &term));
-    if (status != 0) {
-      return;
-    }
-    *flag = term.c_lflag;
-  }
-
-  static void RestoreConsoleConfigurationHelper(intptr_t fd, tcflag_t flag) {
-    struct termios term;
-    int status = NO_RETRY_EXPECTED(tcgetattr(fd, &term));
-    if (status != 0) {
-      return;
-    }
-    term.c_lflag = flag;
-    NO_RETRY_EXPECTED(tcsetattr(fd, TCSANOW, &term));
-  }
-};
-
-tcflag_t PlatformPosix::stdout_initial_c_lflag_ = 0;
-tcflag_t PlatformPosix::stderr_initial_c_lflag_ = 0;
-tcflag_t PlatformPosix::stdin_initial_c_lflag_ = 0;
-
 bool Platform::Initialize() {
   // Turn off the signal handler for SIGPIPE as it causes the process
   // to terminate on writing to a closed pipe. Without the signal
@@ -112,7 +62,6 @@
     perror("sigaction() failed.");
     return false;
   }
-  SaveConsoleConfiguration();
   return true;
 }
 
@@ -192,18 +141,9 @@
 }
 
 void Platform::Exit(int exit_code) {
-  RestoreConsoleConfiguration();
   exit(exit_code);
 }
 
-void Platform::SaveConsoleConfiguration() {
-  PlatformPosix::SaveConsoleConfiguration();
-}
-
-void Platform::RestoreConsoleConfiguration() {
-  PlatformPosix::RestoreConsoleConfiguration();
-}
-
 }  // namespace bin
 }  // namespace dart
 
diff --git a/runtime/bin/platform_macos.cc b/runtime/bin/platform_macos.cc
index 3f72398..e563788 100644
--- a/runtime/bin/platform_macos.cc
+++ b/runtime/bin/platform_macos.cc
@@ -12,19 +12,16 @@
 #if !HOST_OS_IOS
 #include <crt_externs.h>  // NOLINT
 #endif                    // !HOST_OS_IOS
-#include <errno.h>        // NOLINT
 #include <mach-o/dyld.h>
 #include <signal.h>       // NOLINT
 #include <string.h>       // NOLINT
 #include <sys/sysctl.h>   // NOLINT
 #include <sys/types.h>    // NOLINT
 #include <sys/utsname.h>  // NOLINT
-#include <termios.h>      // NOLINT
 #include <unistd.h>       // NOLINT
 
 #include "bin/fdutils.h"
 #include "bin/file.h"
-#include "platform/signal_blocker.h"
 
 namespace dart {
 namespace bin {
@@ -39,53 +36,6 @@
   abort();
 }
 
-class PlatformPosix {
- public:
-  static void SaveConsoleConfiguration() {
-    SaveConsoleConfigurationHelper(STDOUT_FILENO, &stdout_initial_c_lflag_);
-    SaveConsoleConfigurationHelper(STDERR_FILENO, &stderr_initial_c_lflag_);
-    SaveConsoleConfigurationHelper(STDIN_FILENO, &stdin_initial_c_lflag_);
-  }
-
-  static void RestoreConsoleConfiguration() {
-    RestoreConsoleConfigurationHelper(STDOUT_FILENO, stdout_initial_c_lflag_);
-    RestoreConsoleConfigurationHelper(STDERR_FILENO, stderr_initial_c_lflag_);
-    RestoreConsoleConfigurationHelper(STDIN_FILENO, stdin_initial_c_lflag_);
-    stdout_initial_c_lflag_ = -1;
-    stderr_initial_c_lflag_ = -1;
-    stdin_initial_c_lflag_ = -1;
-  }
-
- private:
-  static tcflag_t stdout_initial_c_lflag_;
-  static tcflag_t stderr_initial_c_lflag_;
-  static tcflag_t stdin_initial_c_lflag_;
-
-  static void SaveConsoleConfigurationHelper(intptr_t fd, tcflag_t* flag) {
-    ASSERT(flag != NULL);
-    struct termios term;
-    int status = NO_RETRY_EXPECTED(tcgetattr(fd, &term));
-    if (status != 0) {
-      return;
-    }
-    *flag = term.c_lflag;
-  }
-
-  static void RestoreConsoleConfigurationHelper(intptr_t fd, tcflag_t flag) {
-    struct termios term;
-    int status = NO_RETRY_EXPECTED(tcgetattr(fd, &term));
-    if (status != 0) {
-      return;
-    }
-    term.c_lflag = flag;
-    NO_RETRY_EXPECTED(tcsetattr(fd, TCSANOW, &term));
-  }
-};
-
-tcflag_t PlatformPosix::stdout_initial_c_lflag_ = 0;
-tcflag_t PlatformPosix::stderr_initial_c_lflag_ = 0;
-tcflag_t PlatformPosix::stdin_initial_c_lflag_ = 0;
-
 bool Platform::Initialize() {
   // Turn off the signal handler for SIGPIPE as it causes the process
   // to terminate on writing to a closed pipe. Without the signal
@@ -119,7 +69,6 @@
     perror("sigaction() failed.");
     return false;
   }
-  SaveConsoleConfiguration();
   return true;
 }
 
@@ -280,18 +229,9 @@
 }
 
 void Platform::Exit(int exit_code) {
-  RestoreConsoleConfiguration();
   exit(exit_code);
 }
 
-void Platform::SaveConsoleConfiguration() {
-  PlatformPosix::SaveConsoleConfiguration();
-}
-
-void Platform::RestoreConsoleConfiguration() {
-  PlatformPosix::RestoreConsoleConfiguration();
-}
-
 }  // namespace bin
 }  // namespace dart
 
diff --git a/runtime/bin/platform_win.cc b/runtime/bin/platform_win.cc
index 8b61246..333d57c 100644
--- a/runtime/bin/platform_win.cc
+++ b/runtime/bin/platform_win.cc
@@ -47,9 +47,6 @@
     platform_win_mutex_ = new Mutex();
     saved_output_cp_ = -1;
     saved_input_cp_ = -1;
-    saved_stdout_mode_ = -1;
-    saved_stderr_mode_ = -1;
-    saved_stdin_mode_ = -1;
     // Set up a no-op handler so that CRT functions return an error instead of
     // hitting an assertion failure.
     // See: https://msdn.microsoft.com/en-us/library/a9yf33zb.aspx
@@ -86,9 +83,6 @@
     // Set both the input and output code pages to UTF8.
     ASSERT(saved_output_cp_ == -1);
     ASSERT(saved_input_cp_ == -1);
-    ASSERT(saved_stdout_mode_ == -1);
-    ASSERT(saved_stderr_mode_ == -1);
-    ASSERT(saved_stdin_mode_ == -1);
     const int output_cp = GetConsoleOutputCP();
     const int input_cp = GetConsoleCP();
     if (output_cp != CP_UTF8) {
@@ -101,11 +95,12 @@
     }
 
     // Try to set the bits for ANSI support, but swallow any failures.
-    saved_stdout_mode_ =
-        ModifyMode(STD_OUTPUT_HANDLE, ENABLE_VIRTUAL_TERMINAL_PROCESSING);
-    saved_stderr_mode_ = ModifyMode(STD_ERROR_HANDLE, 0);
-    saved_stdin_mode_ = ModifyMode(STD_INPUT_HANDLE, 0);
-
+    HANDLE out = GetStdHandle(STD_OUTPUT_HANDLE);
+    DWORD out_mode;
+    if ((out != INVALID_HANDLE_VALUE) && GetConsoleMode(out, &out_mode)) {
+      const DWORD request = out_mode | ENABLE_VIRTUAL_TERMINAL_PROCESSING;
+      SetConsoleMode(out, request);
+    }
     // TODO(28984): Due to issue #29104, we cannot set
     // ENABLE_VIRTUAL_TERMINAL_INPUT here, as it causes ENABLE_PROCESSED_INPUT
     // to be ignored.
@@ -138,54 +133,43 @@
   static Mutex* platform_win_mutex_;
   static int saved_output_cp_;
   static int saved_input_cp_;
-  static DWORD saved_stdout_mode_;
-  static DWORD saved_stderr_mode_;
-  static DWORD saved_stdin_mode_;
-
-  static DWORD ModifyMode(DWORD handle, DWORD flags) {
-    HANDLE h = GetStdHandle(handle);
-    DWORD mode;
-    DWORD old_mode = 0;
-
-    if ((h != INVALID_HANDLE_VALUE) && GetConsoleMode(h, &mode)) {
-      old_mode = mode;
-      if (flags != 0) {
-        const DWORD request = mode | flags;
-        SetConsoleMode(h, request);
-      }
-    }
-    return old_mode;
-  }
-
-  static void CleanupDevices(const char* device,
-                             DWORD handle,
-                             DWORD orig_flags) {
-    const intptr_t kWideBufLen = 64;
-    wchar_t widebuf[kWideBufLen];
-    int result =
-        MultiByteToWideChar(CP_UTF8, 0, device, -1, widebuf, kWideBufLen);
-    ASSERT(result != 0);
-    HANDLE h = CreateFileW(widebuf, GENERIC_READ | GENERIC_WRITE,
-                           FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);
-    if (h != INVALID_HANDLE_VALUE) {
-      SetStdHandle(STD_OUTPUT_HANDLE, h);
-      if (orig_flags != -1) {
-        SetConsoleMode(h, orig_flags);
-      }
-    }
-  }
 
   static void RestoreConsoleLocked() {
-    // STD_OUTPUT_HANDLE, STD_ERROR_HANDLE, and STD_INPUT_HANDLE may have been
-    // closed or redirected. Therefore, we explicitly open the CONOUT$, CONERR$
-    // and CONIN$ devices, so that we can be sure that we are really restoring
-    // the console to its original state.
-    CleanupDevices("CONOUT$", STD_OUTPUT_HANDLE, saved_stdout_mode_);
-    saved_stdout_mode_ = -1;
-    CleanupDevices("CONERR$", STD_ERROR_HANDLE, saved_stderr_mode_);
-    saved_stderr_mode_ = -1;
-    CleanupDevices("CONIN$", STD_INPUT_HANDLE, saved_stdin_mode_);
-    saved_stdin_mode_ = -1;
+    // STD_OUTPUT_HANDLE and STD_INPUT_HANDLE may have been closed or
+    // redirected. Therefore, we explicitly open the CONOUT$ and CONIN$
+    // devices, so that we can be sure that we are really unsetting
+    // ENABLE_VIRTUAL_TERMINAL_PROCESSING and ENABLE_VIRTUAL_TERMINAL_INPUT
+    // respectively.
+    const intptr_t kWideBufLen = 64;
+    const char* conout = "CONOUT$";
+    wchar_t widebuf[kWideBufLen];
+    int result =
+        MultiByteToWideChar(CP_UTF8, 0, conout, -1, widebuf, kWideBufLen);
+    ASSERT(result != 0);
+    HANDLE out = CreateFileW(widebuf, GENERIC_READ | GENERIC_WRITE,
+                             FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);
+    if (out != INVALID_HANDLE_VALUE) {
+      SetStdHandle(STD_OUTPUT_HANDLE, out);
+    }
+    DWORD out_mode;
+    if ((out != INVALID_HANDLE_VALUE) && GetConsoleMode(out, &out_mode)) {
+      DWORD request = out_mode & ~ENABLE_VIRTUAL_TERMINAL_INPUT;
+      SetConsoleMode(out, request);
+    }
+
+    const char* conin = "CONIN$";
+    result = MultiByteToWideChar(CP_UTF8, 0, conin, -1, widebuf, kWideBufLen);
+    ASSERT(result != 0);
+    HANDLE in = CreateFileW(widebuf, GENERIC_READ | GENERIC_WRITE,
+                            FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);
+    if (in != INVALID_HANDLE_VALUE) {
+      SetStdHandle(STD_INPUT_HANDLE, in);
+    }
+    DWORD in_mode;
+    if ((in != INVALID_HANDLE_VALUE) && GetConsoleMode(in, &in_mode)) {
+      DWORD request = in_mode & ~ENABLE_VIRTUAL_TERMINAL_INPUT;
+      SetConsoleMode(in, request);
+    }
 
     if (saved_output_cp_ != -1) {
       SetConsoleOutputCP(saved_output_cp_);
@@ -212,15 +196,11 @@
 
 int PlatformWin::saved_output_cp_ = -1;
 int PlatformWin::saved_input_cp_ = -1;
-DWORD PlatformWin::saved_stdout_mode_ = -1;
-DWORD PlatformWin::saved_stderr_mode_ = -1;
-DWORD PlatformWin::saved_stdin_mode_ = -1;
-
 Mutex* PlatformWin::platform_win_mutex_ = NULL;
 
 bool Platform::Initialize() {
   PlatformWin::InitOnce();
-  SaveConsoleConfiguration();
+  PlatformWin::SaveAndConfigureConsole();
   return true;
 }
 
@@ -405,20 +385,12 @@
   // TODO(zra): Remove once VM shuts down cleanly.
   ::dart::private_flag_windows_run_tls_destructors = false;
   // Restore the console's output code page
-  RestoreConsoleConfiguration();
+  PlatformWin::RestoreConsole();
   // On Windows we use ExitProcess so that threads can't clobber the exit_code.
   // See: https://code.google.com/p/nativeclient/issues/detail?id=2870
   ::ExitProcess(exit_code);
 }
 
-void Platform::SaveConsoleConfiguration() {
-  PlatformWin::SaveAndConfigureConsole();
-}
-
-void Platform::RestoreConsoleConfiguration() {
-  PlatformWin::RestoreConsole();
-}
-
 }  // namespace bin
 }  // namespace dart
 
diff --git a/runtime/include/dart_api.h b/runtime/include/dart_api.h
index 08fad5f..a8f9e4d 100644
--- a/runtime/include/dart_api.h
+++ b/runtime/include/dart_api.h
@@ -1038,8 +1038,7 @@
  *
  * \returns true if the snapshot is a Dart2 snapshot, false otherwise.
  */
-DART_EXPORT bool Dart_IsDart2Snapshot(uint8_t* snapshot_buffer,
-                                      intptr_t snapshot_size);
+DART_EXPORT bool Dart_IsDart2Snapshot(const uint8_t* snapshot_buffer);
 
 /**
  * Schedules an interrupt for the specified isolate.
diff --git a/runtime/tests/vm/vm.status b/runtime/tests/vm/vm.status
index ee0eaf1..8f854da 100644
--- a/runtime/tests/vm/vm.status
+++ b/runtime/tests/vm/vm.status
@@ -217,19 +217,10 @@
 cc/Debugger_Rewind_Optimized: SkipSlow
 cc/Debugger_SetBreakpointInPartOfLibrary: Crash
 cc/FunctionSourceFingerprint: Fail
-cc/IsolateReload_BadClass: Fail
-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_Library: Fail
 cc/IsolateReload_DanglingSetter_Class: Fail
 cc/IsolateReload_DanglingSetter_Instance: Fail
 cc/IsolateReload_DanglingSetter_Library: Fail
-cc/IsolateReload_DirectSubclasses_Failure: Fail
-cc/IsolateReload_DirectSubclasses_Success: Skip
 cc/IsolateReload_EnumDelete: Fail
 cc/IsolateReload_EnumReorderIdentical: Fail
 cc/IsolateReload_EnumToNotEnum: Skip
@@ -253,7 +244,6 @@
 cc/IsolateReload_RunNewFieldInitializersWithConsts: Skip
 cc/IsolateReload_ShapeChangeRetainsHash: Skip
 cc/IsolateReload_SmiFastPathStubs: Fail
-cc/IsolateReload_TopLevelParseError: Fail
 cc/IsolateReload_TypedefToNotTypedef: Fail
 cc/Parser_AllocateVariables_CaptureLoopVar: Fail
 cc/Parser_AllocateVariables_CapturedVar: Fail
diff --git a/runtime/vm/compiler/aot/aot_call_specializer.cc b/runtime/vm/compiler/aot/aot_call_specializer.cc
index d0cbb8a..474f6a8 100644
--- a/runtime/vm/compiler/aot/aot_call_specializer.cc
+++ b/runtime/vm/compiler/aot/aot_call_specializer.cc
@@ -320,19 +320,19 @@
 Value* AotCallSpecializer::PrepareReceiverOfDevirtualizedCall(Value* input,
                                                               intptr_t cid) {
   ASSERT(I->strong() && FLAG_use_strong_mode_types);
-  ASSERT(cid == kDoubleCid);
+  ASSERT((cid == kDoubleCid) ||
+         (FLAG_limit_ints_to_64_bits && (cid == kMintCid)));
 
   // Can't assert !input->Type()->is_nullable() here as PushArgument receives
   // value prior to a CheckNull in case of devirtualized call.
 
   input = input->CopyWithType(Z);
 
-  // Make sure type of the input is double.
-  // It is necessary as VM has limited knowledge of generic types
-  // and may not accurately infer type of the receiver if it is a
-  // generic type.
-  // TODO(dartbug.com/30480): improve type inference for generic types
-  if (!input->Type()->IsNullableDouble()) {
+  // Correct type of input if necessary.
+  // This correction is needed as VM may not be able to infer receiver type.
+  if ((cid == kIntegerCid) && !input->Type()->IsNullableInt()) {
+    input->SetReachingType(new (Z) CompileType(CompileType::Int()));
+  } else if ((cid == kDoubleCid) && !input->Type()->IsNullableDouble()) {
     input->SetReachingType(new (Z) CompileType(CompileType::Double()));
   }
 
@@ -488,63 +488,186 @@
 }
 
 bool AotCallSpecializer::TryOptimizeStaticCallUsingStaticTypes(
-    StaticCallInstr* call) {
+    StaticCallInstr* instr) {
   ASSERT(I->strong() && FLAG_use_strong_mode_types);
   Definition* replacement = NULL;
 
-  if (FlowGraphCompiler::SupportsUnboxedDoubles()) {
-    const Class& owner = Class::Handle(Z, call->function().Owner());
-    // Recognize double operators here as devirtualization can convert
-    // instance calls of double operators into static calls.
-    if (owner.id() == kDoubleCid) {
-      const String& name = String::Handle(Z, call->function().name());
-      Token::Kind op_kind = MethodTokenRecognizer::RecognizeTokenKind(name);
-      // TODO(dartbug.com/30480): Handle more double operations.
-      if ((op_kind == Token::kADD) || (op_kind == Token::kSUB) ||
-          (op_kind == Token::kMUL) || (op_kind == Token::kDIV)) {
-        ASSERT(call->FirstArgIndex() == 0);
-        Value* left_value = call->PushArgumentAt(0)->value();
-        Value* right_value = call->PushArgumentAt(1)->value();
-        if (right_value->Type()->IsNullableDouble() ||
-            IsSupportedIntOperandForStaticDoubleOp(right_value->Type())) {
-          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(), Instruction::kNotSpeculative);
-        }
-      } else if ((op_kind == Token::kLT) || (op_kind == Token::kLTE) ||
-                 (op_kind == Token::kGT) || (op_kind == Token::kGTE)) {
-        ASSERT(call->FirstArgIndex() == 0);
-        Value* left_value = call->PushArgumentAt(0)->value();
-        Value* right_value = call->PushArgumentAt(1)->value();
-        if (right_value->Type()->IsNullableDouble() ||
-            IsSupportedIntOperandForStaticDoubleOp(right_value->Type())) {
-          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,
+  const Class& owner = Class::Handle(Z, instr->function().Owner());
+  if ((owner.id() != kIntegerCid) && (owner.id() != kDoubleCid)) {
+    return false;
+  }
+
+  const intptr_t receiver_index = instr->FirstArgIndex();
+  const String& name = String::Handle(Z, instr->function().name());
+  const Token::Kind op_kind = MethodTokenRecognizer::RecognizeTokenKind(name);
+
+  // Recognize double and int operators here as devirtualization can convert
+  // instance calls of these operators into static calls.
+
+  if (owner.id() == kIntegerCid) {
+    if (!FLAG_limit_ints_to_64_bits ||
+        !FlowGraphCompiler::SupportsUnboxedInt64()) {
+      return false;
+    }
+
+    switch (op_kind) {
+      case Token::kEQ:
+      case Token::kNE: {
+        Value* left_value = instr->PushArgumentAt(receiver_index)->value();
+        Value* right_value = instr->PushArgumentAt(receiver_index + 1)->value();
+        CompileType* right_type = right_value->Type();
+        // TODO(dartbug.com/32166): Support EQ, NE for nullable ints.
+        // (requires null-aware comparison instruction).
+        if (right_type->IsNullableInt() && !right_type->is_nullable()) {
+          left_value = PrepareReceiverOfDevirtualizedCall(left_value, kMintCid);
+          right_value = PrepareStaticOpInput(right_value, kMintCid, instr);
+          replacement = new (Z) EqualityCompareInstr(
+              instr->token_pos(), op_kind, left_value, right_value, kMintCid,
               Thread::kNoDeoptId, Instruction::kNotSpeculative);
         }
-      } else if (op_kind == Token::kNEGATE) {
-        ASSERT(call->FirstArgIndex() == 0);
-        Value* left_value = call->PushArgumentAt(0)->value();
+        break;
+      }
+      case Token::kLT:
+      case Token::kLTE:
+      case Token::kGT:
+      case Token::kGTE: {
+        Value* left_value = instr->PushArgumentAt(receiver_index)->value();
+        Value* right_value = instr->PushArgumentAt(receiver_index + 1)->value();
+        CompileType* left_type = left_value->Type();
+        CompileType* right_type = right_value->Type();
+        if (right_type->IsNullableInt()) {
+          left_value = PrepareReceiverOfDevirtualizedCall(left_value, kMintCid);
+          right_value = PrepareStaticOpInput(right_value, kMintCid, instr);
+          replacement = new (Z) RelationalOpInstr(
+              instr->token_pos(), op_kind, left_value, right_value, kMintCid,
+              Thread::kNoDeoptId, Instruction::kNotSpeculative);
+        } else if (FlowGraphCompiler::SupportsUnboxedDoubles() &&
+                   right_type->IsNullableDouble() &&
+                   IsSupportedIntOperandForStaticDoubleOp(left_type)) {
+          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, Instruction::kNotSpeculative);
+        }
+        break;
+      }
+      // TODO(dartbug.com/30480): Enable 64-bit integer shifts (SHL, SHR).
+      case Token::kBIT_OR:
+      case Token::kBIT_XOR:
+      case Token::kBIT_AND:
+      case Token::kADD:
+      case Token::kSUB:
+      case Token::kMUL:
+      case Token::kDIV: {
+        if ((op_kind == Token::kDIV) &&
+            !FlowGraphCompiler::SupportsHardwareDivision()) {
+          return false;
+        }
+        Value* left_value = instr->PushArgumentAt(receiver_index)->value();
+        Value* right_value = instr->PushArgumentAt(receiver_index + 1)->value();
+        CompileType* left_type = left_value->Type();
+        CompileType* right_type = right_value->Type();
+        if (right_type->IsNullableInt() && (op_kind != Token::kDIV)) {
+          left_value = PrepareReceiverOfDevirtualizedCall(left_value, kMintCid);
+          right_value = PrepareStaticOpInput(right_value, kMintCid, instr);
+          replacement = new (Z) BinaryInt64OpInstr(
+              op_kind, left_value, right_value, Thread::kNoDeoptId,
+              Instruction::kNotSpeculative);
+        } else if (FlowGraphCompiler::SupportsUnboxedDoubles() &&
+                   right_type->IsNullableDouble() &&
+                   IsSupportedIntOperandForStaticDoubleOp(left_type)) {
+          if ((op_kind == Token::kADD) || (op_kind == Token::kSUB) ||
+              (op_kind == Token::kMUL) || (op_kind == Token::kDIV)) {
+            ASSERT(left_type->IsNullableDouble() ||
+                   right_type->IsNullableDouble() || (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(), Instruction::kNotSpeculative);
+          }
+        }
+        break;
+      }
+
+      default:
+        break;
+    }
+  } else if ((owner.id() == kDoubleCid) &&
+             FlowGraphCompiler::SupportsUnboxedDoubles()) {
+    // TODO(dartbug.com/30480): Handle more double operations.
+    switch (op_kind) {
+      case Token::kEQ:
+      case Token::kNE: {
+        Value* left_value = instr->PushArgumentAt(receiver_index)->value();
+        Value* right_value = instr->PushArgumentAt(receiver_index + 1)->value();
+        CompileType* right_type = right_value->Type();
+        // TODO(dartbug.com/32166): Support EQ, NE for nullable doubles.
+        // (requires null-aware comparison instruction).
+        if (right_type->IsNullableDouble() && !right_type->is_nullable()) {
+          left_value =
+              PrepareReceiverOfDevirtualizedCall(left_value, kDoubleCid);
+          right_value = PrepareStaticOpInput(right_value, kDoubleCid, instr);
+          replacement = new (Z) EqualityCompareInstr(
+              instr->token_pos(), op_kind, left_value, right_value, kDoubleCid,
+              Thread::kNoDeoptId, Instruction::kNotSpeculative);
+        }
+        break;
+      }
+      case Token::kLT:
+      case Token::kLTE:
+      case Token::kGT:
+      case Token::kGTE: {
+        Value* left_value = instr->PushArgumentAt(receiver_index)->value();
+        Value* right_value = instr->PushArgumentAt(receiver_index + 1)->value();
+        if (right_value->Type()->IsNullableDouble() ||
+            IsSupportedIntOperandForStaticDoubleOp(right_value->Type())) {
+          left_value =
+              PrepareReceiverOfDevirtualizedCall(left_value, kDoubleCid);
+          right_value = PrepareStaticOpInput(right_value, kDoubleCid, instr);
+          replacement = new (Z) RelationalOpInstr(
+              instr->token_pos(), op_kind, left_value, right_value, kDoubleCid,
+              Thread::kNoDeoptId, Instruction::kNotSpeculative);
+        }
+        break;
+      }
+      case Token::kADD:
+      case Token::kSUB:
+      case Token::kMUL:
+      case Token::kDIV: {
+        Value* left_value = instr->PushArgumentAt(receiver_index)->value();
+        Value* right_value = instr->PushArgumentAt(receiver_index + 1)->value();
+        if (right_value->Type()->IsNullableDouble() ||
+            IsSupportedIntOperandForStaticDoubleOp(right_value->Type())) {
+          left_value =
+              PrepareReceiverOfDevirtualizedCall(left_value, kDoubleCid);
+          right_value = PrepareStaticOpInput(right_value, kDoubleCid, instr);
+          replacement = new (Z) BinaryDoubleOpInstr(
+              op_kind, left_value, right_value, Thread::kNoDeoptId,
+              instr->token_pos(), Instruction::kNotSpeculative);
+        }
+        break;
+      }
+      case Token::kNEGATE: {
+        Value* left_value = instr->PushArgumentAt(receiver_index)->value();
         left_value = PrepareReceiverOfDevirtualizedCall(left_value, kDoubleCid);
         replacement = new (Z)
-            UnaryDoubleOpInstr(Token::kNEGATE, left_value, call->deopt_id(),
+            UnaryDoubleOpInstr(Token::kNEGATE, left_value, instr->deopt_id(),
                                Instruction::kNotSpeculative);
+        break;
       }
+      default:
+        break;
     }
   }
 
-  if (replacement != NULL) {
+  if ((replacement != NULL) && !replacement->ComputeCanDeoptimize()) {
     if (FLAG_trace_strong_mode_types) {
       THR_Print("[Strong mode] Optimization: replacing %s with %s\n",
-                call->ToCString(), replacement->ToCString());
+                instr->ToCString(), replacement->ToCString());
     }
-    ReplaceCall(call, replacement);
+    ReplaceCall(instr, replacement);
     return true;
   }
 
diff --git a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
index eb100c3..daa2a9c 100644
--- a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
+++ b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
@@ -1030,7 +1030,8 @@
           FieldHelper field_helper(builder_);
           field_helper.ReadUntilIncluding(FieldHelper::kFlags);
 
-          if (!field_helper.IsGenericCovariantImpl()) {
+          if (!field_helper.IsCovariant() &&
+              !field_helper.IsGenericCovariantImpl()) {
             result_->setter_value->set_type_check_mode(
                 LocalVariable::kTypeCheckedByCaller);
           }
diff --git a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.h b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.h
index 330dfe7..04c2b31 100644
--- a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.h
+++ b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.h
@@ -174,6 +174,7 @@
     kFinal = 1 << 0,
     kConst = 1 << 1,
     kStatic = 1 << 2,
+    kIsCovariant = 1 << 5,
     kIsGenericCovariantImpl = 1 << 6,
     kIsGenericCovariantInterface = 1 << 7
   };
@@ -198,6 +199,7 @@
   bool IsConst() { return (flags_ & kConst) != 0; }
   bool IsFinal() { return (flags_ & kFinal) != 0; }
   bool IsStatic() { return (flags_ & kStatic) != 0; }
+  bool IsCovariant() const { return (flags_ & kIsCovariant) != 0; }
   bool IsGenericCovariantImpl() {
     return (flags_ & kIsGenericCovariantImpl) != 0;
   }
diff --git a/runtime/vm/dart_api_impl.cc b/runtime/vm/dart_api_impl.cc
index 1877043..5b607f4 100644
--- a/runtime/vm/dart_api_impl.cc
+++ b/runtime/vm/dart_api_impl.cc
@@ -1551,8 +1551,15 @@
   return Api::Success();
 }
 
-DART_EXPORT bool Dart_IsDart2Snapshot(uint8_t* snapshot_buffer,
-                                      intptr_t snapshot_size) {
+DART_EXPORT bool Dart_IsDart2Snapshot(const uint8_t* snapshot_buffer) {
+  if (snapshot_buffer == NULL) {
+    return false;
+  }
+  const Snapshot* snapshot = Snapshot::SetupFromBuffer(snapshot_buffer);
+  if (snapshot == NULL) {
+    return false;
+  }
+  const intptr_t snapshot_size = snapshot->length();
   const char* expected_version = Version::SnapshotString();
   ASSERT(expected_version != NULL);
   const intptr_t version_len = strlen(expected_version);
@@ -1560,13 +1567,12 @@
     return false;
   }
 
-  const char* version = reinterpret_cast<const char*>(snapshot_buffer);
+  const char* version = reinterpret_cast<const char*>(snapshot->content());
   ASSERT(version != NULL);
   if (strncmp(version, expected_version, version_len)) {
     return false;
   }
-  const char* features =
-      reinterpret_cast<const char*>(snapshot_buffer) + version_len;
+  const char* features = version + version_len;
   ASSERT(features != NULL);
   intptr_t pending_len = snapshot_size - version_len;
   intptr_t buffer_len = OS::StrNLen(features, pending_len);
diff --git a/runtime/vm/isolate_reload_test.cc b/runtime/vm/isolate_reload_test.cc
index 25496a4..35ff7b2 100644
--- a/runtime/vm/isolate_reload_test.cc
+++ b/runtime/vm/isolate_reload_test.cc
@@ -304,7 +304,11 @@
       "}\n";
 
   Dart_Handle result = TestCase::ReloadTestScript(kReloadScript);
-  EXPECT_ERROR(result, "unexpected token");
+  if (TestCase::UsingDartFrontend()) {
+    EXPECT_ERROR(result, "Expected ';' before this");
+  } else {
+    EXPECT_ERROR(result, "unexpected token");
+  }
   EXPECT_EQ(4, SimpleInvoke(lib, "main"));
 }
 
@@ -1168,7 +1172,13 @@
       "}\n";
 
   lib = TestCase::ReloadTestScript(kReloadScript);
-  EXPECT_ERROR(lib, "unexpected token");
+  if (TestCase::UsingDartFrontend()) {
+    EXPECT_ERROR(lib,
+                 "Variables must be declared using the keywords"
+                 " 'const', 'final', 'var' or a type name.");
+  } else {
+    EXPECT_ERROR(lib, "unexpected token");
+  }
 }
 
 TEST_CASE(IsolateReload_PendingUnqualifiedCall_StaticToInstance) {
@@ -2419,7 +2429,11 @@
       "}\n";
 
   lib = TestCase::ReloadTestScript(kReloadScript);
-  EXPECT_ERROR(lib, "unexpected token");
+  if (TestCase::UsingDartFrontend()) {
+    EXPECT_ERROR(lib, "Expected ';' before this");
+  } else {
+    EXPECT_ERROR(lib, "unexpected token");
+  }
 
   // If we don't clean up the subclasses, we would find BIterator in
   // the list of subclasses, which would be bad.  Make sure that
diff --git a/runtime/vm/kernel_loader.cc b/runtime/vm/kernel_loader.cc
index 56ed9e6..f3362e4 100644
--- a/runtime/vm/kernel_loader.cc
+++ b/runtime/vm/kernel_loader.cc
@@ -668,6 +668,19 @@
   }
 }
 
+void KernelLoader::CheckForInitializer(const Field& field) {
+  if (builder_.PeekTag() == kSomething) {
+    SimpleExpressionConverter converter(&H, &builder_);
+    const bool has_simple_initializer =
+        converter.IsSimple(builder_.ReaderOffset() + 1);
+    if (!has_simple_initializer || !converter.SimpleValue().IsNull()) {
+      field.set_has_initializer(true);
+      return;
+    }
+  }
+  field.set_has_initializer(false);
+}
+
 void KernelLoader::LoadLibrary(intptr_t index) {
   if (!program_->is_single_program()) {
     FATAL(
@@ -802,10 +815,10 @@
     field.set_kernel_offset(field_offset);
     const AbstractType& type = T.BuildType();  // read type.
     field.SetFieldType(type);
+    CheckForInitializer(field);
     field_helper.SetJustRead(FieldHelper::kType);
     field_helper.ReadUntilExcluding(FieldHelper::kInitializer);
     intptr_t field_initializer_offset = builder_.ReaderOffset();
-    field.set_has_initializer(builder_.PeekTag() == kSomething);
     field_helper.ReadUntilExcluding(FieldHelper::kEnd);
     {
       // GenerateFieldAccessors reads (some of) the initializer.
@@ -1057,9 +1070,9 @@
                      field_helper.IsConst(), is_reflectable, script_class, type,
                      field_helper.position_, field_helper.end_position_));
       field.set_kernel_offset(field_offset);
+      CheckForInitializer(field);
       field_helper.ReadUntilExcluding(FieldHelper::kInitializer);
       intptr_t field_initializer_offset = builder_.ReaderOffset();
-      field.set_has_initializer(builder_.PeekTag() == kSomething);
       field_helper.ReadUntilExcluding(FieldHelper::kEnd);
       {
         // GenerateFieldAccessors reads (some of) the initializer.
diff --git a/runtime/vm/kernel_loader.h b/runtime/vm/kernel_loader.h
index 126405b..8a5f60f 100644
--- a/runtime/vm/kernel_loader.h
+++ b/runtime/vm/kernel_loader.h
@@ -190,6 +190,8 @@
   void LoadPreliminaryClass(ClassHelper* class_helper,
                             intptr_t type_parameter_count);
 
+  void CheckForInitializer(const Field& field);
+
   Class& LoadClass(const Library& library,
                    const Class& toplevel_class,
                    intptr_t class_end);
diff --git a/runtime/vm/snapshot_test.cc b/runtime/vm/snapshot_test.cc
index 00ae83a..30b5dff 100644
--- a/runtime/vm/snapshot_test.cc
+++ b/runtime/vm/snapshot_test.cc
@@ -1813,8 +1813,9 @@
     Dart_ExitScope();
   }
   FLAG_load_deferred_eagerly = saved_load_deferred_eagerly_mode;
-  bool is_kernel = Dart_IsDart2Snapshot(full_snapshot, isolate_snapshot_size);
+  bool is_kernel = Dart_IsDart2Snapshot(full_snapshot);
   EXPECT_EQ(FLAG_strong, is_kernel);
+  free(full_snapshot);
 }
 
 #endif  // !PRODUCT
diff --git a/runtime/vm/unit_test.cc b/runtime/vm/unit_test.cc
index 574e44f..85447d38 100644
--- a/runtime/vm/unit_test.cc
+++ b/runtime/vm/unit_test.cc
@@ -170,6 +170,10 @@
 static ThreadLocalKey kernel_reload_key = kUnsetThreadLocalKey;
 #endif
 
+bool TestCase::UsingDartFrontend() {
+  return FLAG_use_dart_frontend;
+}
+
 char* TestCase::CompileTestScriptWithDFE(const char* url,
                                          const char* source,
                                          void** kernel_pgm,
diff --git a/runtime/vm/unit_test.h b/runtime/vm/unit_test.h
index 1f7fc8f..970de8f 100644
--- a/runtime/vm/unit_test.h
+++ b/runtime/vm/unit_test.h
@@ -306,6 +306,8 @@
 
   TestCase(RunEntry* run, const char* name) : TestCaseBase(name), run_(run) {}
 
+  static bool UsingDartFrontend();
+
   static char* CompileTestScriptWithDFE(const char* url,
                                         const char* source,
                                         void** kernel_pgm,
diff --git a/tests/corelib/corelib.status b/tests/corelib/corelib.status
index a4398a5..edd0cde 100644
--- a/tests/corelib/corelib.status
+++ b/tests/corelib/corelib.status
@@ -3,52 +3,7 @@
 # BSD-style license that can be found in the LICENSE file.
 
 [ $compiler == dart2analyzer ]
-big_integer_arith_vm_test/add: CompileTimeError # int64
-big_integer_arith_vm_test/div: CompileTimeError # int64
-big_integer_arith_vm_test/gcd: CompileTimeError # int64
-big_integer_arith_vm_test/mod: CompileTimeError # int64
-big_integer_arith_vm_test/modInv: CompileTimeError # int64
-big_integer_arith_vm_test/modPow: CompileTimeError # int64
-big_integer_arith_vm_test/mul: CompileTimeError # int64
-big_integer_arith_vm_test/negate: CompileTimeError # int64
-big_integer_arith_vm_test/none: CompileTimeError # int64
-big_integer_arith_vm_test/overflow: CompileTimeError # int64
-big_integer_arith_vm_test/shift: CompileTimeError # int64
-big_integer_arith_vm_test/sub: CompileTimeError # int64
-big_integer_arith_vm_test/trunDiv: CompileTimeError # int64
-bit_twiddling_bigint_test: CompileTimeError # int64
-bit_twiddling_test: CompileTimeError # int64
-double_ceil_test: CompileTimeError # int64
-double_floor_test: CompileTimeError # int64
-double_round_test: CompileTimeError # int64
-double_truncate_test: CompileTimeError # int64
-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_ceil_test: CompileTimeError # int64
-int_ceil_to_double_test: CompileTimeError # int64
-int_floor_test: CompileTimeError # int64
-int_floor_to_double_test: CompileTimeError # int64
-int_from_environment_test: CompileTimeError # int64
-int_modulo_arith_test/bignum: CompileTimeError # int64
-int_modulo_arith_test/modPow: CompileTimeError # int64
-int_modulo_arith_test/none: CompileTimeError # int64
-int_parse_radix_bad_handler_test: Fail
-int_parse_radix_test/02: CompileTimeError # int64
-int_round_test: CompileTimeError # int64
-int_round_to_double_test: CompileTimeError # int64
-int_to_int_test: CompileTimeError # int64
-int_truncate_test: CompileTimeError # int64
-int_truncate_to_double_test: CompileTimeError # int64
-integer_to_radix_string_test: CompileTimeError # int64
-integer_to_string_test/01: CompileTimeError # int64
-iterable_element_at_test: StaticWarning, OK # Test generates errors on purpose.
-num_clamp_test: StaticWarning, OK # Test generates errors on purpose.
-num_parse_test/01: CompileTimeError # int64
-num_parse_test/none: CompileTimeError # int64
-num_sign_test: CompileTimeError # int64
-regress_r21715_test: CompileTimeError # int64
-string_test: StaticWarning, OK # Test generates error on purpose.
+*: Skip
 
 [ $compiler == dart2js ]
 regexp/pcre_test: Pass, Slow # Issue 21593
@@ -126,22 +81,6 @@
 [ $arch == x64 && $system == windows ]
 stopwatch_test: Skip # Flaky test due to expected performance behaviour.
 
-# 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 && $strong ]
-*: Skip # Issue 28649
-
 [ $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.
diff --git a/tests/language/language_analyzer2.status b/tests/language/language_analyzer2.status
index 814eee9..0dd8e28 100644
--- a/tests/language/language_analyzer2.status
+++ b/tests/language/language_analyzer2.status
@@ -3,425 +3,4 @@
 # BSD-style license that can be found in the LICENSE file.
 
 [ $compiler == dart2analyzer ]
-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.
-assert_message_test: StaticWarning
-assertion_initializer_test: StaticWarning
-assertion_test: StaticWarning
-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
-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
-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
-factory_redirection_test/11: StaticWarning # Issue 18230
-factory_redirection_test/12: StaticWarning # Issue 18230
-factory_redirection_test/13: StaticWarning # Issue 18230
-factory_redirection_test/14: StaticWarning # Issue 18230
-factory_redirection_test/none: StaticWarning # Issue 18230
-factory_return_type_checked_test: StaticWarning # Issue 18728
-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
-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
-function_subtype_closure0_test: StaticWarning
-function_subtype_closure1_test: StaticWarning
-function_subtype_factory1_test: StaticWarning
-function_subtype_inline1_test: StaticWarning
-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
-generic_local_functions_test: CompileTimeError # Issue 28515
-generic_methods_generic_function_parameter_test: CompileTimeError # Issue 28515
-generic_methods_type_expression_test: Skip # This tests now unsupported Dart 1.0 behavior (is check warnings)
-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
-if_null_evaluation_order_test/01: StaticWarning # invalid use of void for dart 2, see also #32100
-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
-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
-label3_negative_test: CompileTimeError
-label5_negative_test: CompileTimeError
-label6_negative_test: CompileTimeError
-label8_negative_test: CompileTimeError
-label_test: StaticWarning
-library_ambiguous_test/00: StaticWarning
-library_ambiguous_test/01: StaticWarning
-library_ambiguous_test/02: StaticWarning
-library_ambiguous_test/03: StaticWarning
-library_negative_test: CompileTimeError
-list_literal2_negative_test: CompileTimeError
-list_literal4_test: StaticWarning
-list_literal_negative_test: CompileTimeError
-list_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
-map_literal4_test: StaticWarning
-map_literal6_test: StaticWarning
-map_literal8_test: StaticWarning
-map_literal_negative_test: CompileTimeError
-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
-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
-named_parameters3_test: StaticWarning
-named_parameters4_test: StaticWarning
-named_parameters_test/01: StaticWarning
-named_parameters_test/02: StaticWarning
-named_parameters_test/03: StaticWarning
-named_parameters_test/04: StaticWarning
-named_parameters_test/05: StaticWarning
-named_parameters_test/06: StaticWarning
-named_parameters_test/07: StaticWarning
-named_parameters_test/08: StaticWarning
-named_parameters_test/09: StaticWarning
-named_parameters_test/10: StaticWarning
-named_parameters_type_test/01: StaticWarning
-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
-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
-not_enough_positional_arguments_test/03: StaticWarning
-not_enough_positional_arguments_test/05: StaticWarning
-not_enough_positional_arguments_test/06: StaticWarning
-not_enough_positional_arguments_test/07: StaticWarning
-number_identifier_test/08: StaticWarning
-number_identifier_test/09: StaticWarning
-on_catch_malformed_type_test: StaticWarning
-operator1_negative_test: CompileTimeError
-operator2_negative_test: CompileTimeError
-operator_equals_test: StaticWarning
-optional_named_parameters_test/01: StaticWarning
-optional_named_parameters_test/02: StaticWarning
-optional_named_parameters_test/03: StaticWarning
-optional_named_parameters_test/04: StaticWarning
-optional_named_parameters_test/05: StaticWarning
-optional_named_parameters_test/06: StaticWarning
-optional_named_parameters_test/07: StaticWarning
-optional_named_parameters_test/08: StaticWarning
-optional_named_parameters_test/09: StaticWarning
-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
-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
-string_interpolate2_negative_test: CompileTimeError
-string_interpolate_test: StaticWarning
-string_interpolation1_negative_test: CompileTimeError
-string_interpolation2_negative_test: CompileTimeError
-string_interpolation3_negative_test: CompileTimeError
-string_interpolation4_negative_test: CompileTimeError
-string_interpolation5_negative_test: CompileTimeError
-string_interpolation6_negative_test: CompileTimeError
-string_test: StaticWarning
-string_unicode1_negative_test: CompileTimeError
-string_unicode2_negative_test: CompileTimeError
-string_unicode3_negative_test: CompileTimeError
-string_unicode4_negative_test: CompileTimeError
-super_assign_test: StaticWarning
-super_call4_test: StaticWarning
-super_getter_setter_test: StaticWarning
-super_operator_index5_test: StaticWarning
-super_operator_index6_test: StaticWarning
-super_operator_index7_test: StaticWarning
-super_operator_index8_test: StaticWarning
-super_operator_test: StaticWarning
-super_setter_test: StaticWarning
-switch1_negative_test: CompileTimeError
-switch3_negative_test: CompileTimeError
-switch4_negative_test: CompileTimeError
-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
-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
-unresolved_top_level_var_negative_test: Fail # Issue 12163
-vm/canonicalization_preserves_deopt_test: StaticWarning
-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
-
-[ $compiler == dart2analyzer && $runtime == none ]
-arithmetic_test: CompileTimeError # int64
-bit_operations_test/01: CompileTimeError # int64
-bit_operations_test/02: CompileTimeError # int64
-bit_operations_test/03: CompileTimeError # int64
-bit_operations_test/04: CompileTimeError # int64
-bit_operations_test/none: CompileTimeError # int64
-deopt_inlined_function_lazy_test: CompileTimeError # int64
-guess_cid_test: CompileTimeError # int64
-identical_closure2_test: CompileTimeError # int64
-int2_test: CompileTimeError # int64
-mint_compares_test: CompileTimeError # int64
-number_identity_test: CompileTimeError # int64
-vm/regress_14903_test: CompileTimeError # int64
-
-[ $compiler == dart2analyzer && $runtime == none && $checked ]
-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 && $runtime == none && !$checked ]
-assertion_initializer_const_function_error_test/01: MissingCompileTimeError
-
-[ $compiler == dart2analyzer && $strong ]
-*: Skip # Issue 28649
-
+*: Skip
diff --git a/tests/language/language_dart2js.status b/tests/language/language_dart2js.status
index 0b99ca7..5ced098 100644
--- a/tests/language/language_dart2js.status
+++ b/tests/language/language_dart2js.status
@@ -1332,7 +1332,6 @@
 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: CompileTimeError
 regress_13462_0_test: CompileTimeError
 regress_13462_1_test: CompileTimeError
diff --git a/tests/language_2/assertion_initializer_const_error2_test.dart b/tests/language_2/assertion_initializer_const_error2_test.dart
index cf7788d..e406b4a 100644
--- a/tests/language_2/assertion_initializer_const_error2_test.dart
+++ b/tests/language_2/assertion_initializer_const_error2_test.dart
@@ -1,60 +1,83 @@
-// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
-
-// Dart test program testing assert statements.
+// VMOptions=--assert_initializer
+//
+// Test of asserts in initializer lists.
 
 import "package:expect/expect.dart";
 
 class C {
   final int x;
   // Const constructors.
-  const C.cc01(this.x, y)
-      : assert(x < y)  //# cc01: compile-time error
-      ;
-  const C.cc02(x, y) : x = x
-      , assert(x < y)  //# cc02: compile-time error
-      ;
-  const C.cc03(x, y) :
-      assert(x < y),  //# cc03: compile-time error
-      x = x;
-  const C.cc05(this.x, y) :
-      assert(x < y),   //# cc05: compile-time error
-      super();
-  const C.cc06(x, y) : x = x
-      , assert(x < y)  //# cc06: compile-time error
-      , super()
-      ;
-  const C.cc07(x, y) :
-      assert(x < y),  //# cc07: compile-time error
-      x = x, super();
-  const C.cc08(x, y) :
-      assert(x < y),  //# cc08: compile-time error
-      x = x
-      , assert(y > x)  //# cc08: continued
-      , super()
-      ;
-  const C.cc09(this.x, y)
-      : assert(x < y, "$x < $y")  //# cc09: compile-time error
-      ;
-  const C.cc10(this.x, y)
-      : assert(x < y,)  //# cc10: compile-time error
-      ;
-  const C.cc11(this.x, y)
-      : assert(x < y, "$x < $y",)  //# cc11: compile-time error
-      ;
+  const C.cc01(this.x, y) : assert(x < y);
+  const C.cc02(x, y)
+      : x = x,
+        assert(x < y);
+  const C.cc03(x, y)
+      : assert(x < y),
+        x = x;
+  const C.cc04(this.x, y)
+      : assert(x < y),
+        super();
+  const C.cc05(x, y)
+      : x = x,
+        assert(x < y),
+        super();
+  const C.cc06(x, y)
+      : assert(x < y),
+        x = x,
+        super();
+  const C.cc07(x, y)
+      : assert(x < y),
+        x = x,
+        assert(y > x),
+        super();
+  const C.cc08(this.x, y) : assert(x < y, "$x < $y");
+  const C.cc09(this.x, y) : assert(x < y,);
+  const C.cc10(this.x, y) : assert(x < y, "$x < $y",);
 }
 
 main() {
-  // Failing assertions in const invociations are compile-time errors.
-  const C.cc01(2, 1);  //# cc01: continued
-  const C.cc02(2, 1);  //# cc02: continued
-  const C.cc03(2, 1);  //# cc03: continued
-  const C.cc05(2, 1);  //# cc05: continued
-  const C.cc06(2, 1);  //# cc06: continued
-  const C.cc07(2, 1);  //# cc07: continued
-  const C.cc08(2, 1);  //# cc08: continued
-  const C.cc09(2, 1);  //# cc09: continued
-  const C.cc10(2, 1);  //# cc10: continued
-  const C.cc11(2, 1);  //# cc11: continued
+  const x = 3;
+  {
+    const x = 1; //# cc01: compile-time error
+    const C.cc01(2, x);
+  }
+  {
+    const x = 1; //# cc02: compile-time error
+    const C.cc02(2, x);
+  }
+  {
+    const x = 1; //# cc03: compile-time error
+    const C.cc03(2, x);
+  }
+  {
+    const x = 1; //# cc04: compile-time error
+    const C.cc04(2, x);
+  }
+  {
+    const x = 1; //# cc05: compile-time error
+    const C.cc05(2, x);
+  }
+  {
+    const x = 1; //# cc06: compile-time error
+    const C.cc06(2, x);
+  }
+  {
+    const x = 1; //# cc07: compile-time error
+    const C.cc07(2, x);
+  }
+  {
+    const x = 1; //# cc08: compile-time error
+    const C.cc08(2, x);
+  }
+  {
+    const x = 1; //# cc09: compile-time error
+    const C.cc09(2, x);
+  }
+  {
+    const x = 1; //# cc10: compile-time error
+    const C.cc10(2, x);
+  }
 }
diff --git a/tests/language_2/implicit_creation/implicit_new_constructor_generic_named_test.dart b/tests/language_2/implicit_creation/implicit_new_constructor_generic_named_test.dart
index a05d29c..11d9aa1 100644
--- a/tests/language_2/implicit_creation/implicit_new_constructor_generic_named_test.dart
+++ b/tests/language_2/implicit_creation/implicit_new_constructor_generic_named_test.dart
@@ -4,8 +4,6 @@
 
 import "package:expect/expect.dart";
 
-import "implicit_new_constructor_generic_named_test.dart" as prefix;
-
 // Test that an omitted `new` is allowed for a generic constructor invocation.
 
 class C<T> {
diff --git a/tests/language_2/implicit_creation/implicit_new_constructor_generic_test.dart b/tests/language_2/implicit_creation/implicit_new_constructor_generic_test.dart
index 8994682..aca30e2 100644
--- a/tests/language_2/implicit_creation/implicit_new_constructor_generic_test.dart
+++ b/tests/language_2/implicit_creation/implicit_new_constructor_generic_test.dart
@@ -4,8 +4,6 @@
 
 import "package:expect/expect.dart";
 
-import "implicit_new_constructor_generic_test.dart" as prefix;
-
 // Test that an omitted `new` is allowed for a generic constructor invocation.
 
 class C<T> {
diff --git a/tests/language_2/implicit_creation/implicit_new_or_const_composite_test.dart b/tests/language_2/implicit_creation/implicit_new_or_const_composite_test.dart
index 31813f2..cd42c0f 100644
--- a/tests/language_2/implicit_creation/implicit_new_or_const_composite_test.dart
+++ b/tests/language_2/implicit_creation/implicit_new_or_const_composite_test.dart
@@ -35,7 +35,7 @@
 
     Expect.identical(cd1, cd2);
     Expect.identical(cd1, cd3);
-    Expect.allDistinct([cd1, cd3, cd4]);
+    Expect.allDistinct([cd1, cd3, cd4, cd5]);
   }
 
   {
diff --git a/tests/language_2/implicit_creation/implicit_new_or_const_generic_test.dart b/tests/language_2/implicit_creation/implicit_new_or_const_generic_test.dart
index 1a4de2d..1f58aa5 100644
--- a/tests/language_2/implicit_creation/implicit_new_or_const_generic_test.dart
+++ b/tests/language_2/implicit_creation/implicit_new_or_const_generic_test.dart
@@ -82,7 +82,7 @@
   }
 
   // Test instance creation with type parameters.
-  new G<int>().testWithT();
+  new G<int>().testWithInt();
 }
 
 class D<T> {
@@ -97,7 +97,7 @@
 
 class G<T> {
   // Tests creation of D<T> where T is a type variable.
-  void testWithT() {
+  void testWithInt() {
     // Cannot create constants referencing T or x.
     var instances = [
       new D<T>(null),
@@ -113,7 +113,7 @@
       prefix.D<T>.named(null),
     ];
 
-    const dx = const D<T>(null);
+    const dx = const D<int>(null);
     Expect.allDistinct([dx]..addAll(instances));
     for (var i = 0; i < instances.length; i++) {
       var d = instances[i];
diff --git a/tests/language_2/import_nonexisting_dart_uri_test.dart b/tests/language_2/import_nonexisting_dart_uri_test.dart
new file mode 100644
index 0000000..1a4fd42
--- /dev/null
+++ b/tests/language_2/import_nonexisting_dart_uri_test.dart
@@ -0,0 +1,7 @@
+// Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
+// for 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:nonexisting/nonexisting.dart"; //# 01: compile-time error
+
+main() {}
diff --git a/tests/language_2/initializer_super_last_test.dart b/tests/language_2/initializer_super_last_test.dart
new file mode 100644
index 0000000..73f18d0d
--- /dev/null
+++ b/tests/language_2/initializer_super_last_test.dart
@@ -0,0 +1,167 @@
+// Copyright (c) 201, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+// VMOptions=--assert_initializer
+//
+// Dart test program testing assert statements.
+
+import "package:expect/expect.dart";
+
+class S {
+  const S();
+  const S.named();
+}
+
+class C extends S {
+  final int x;
+  C.cc01(int x)
+      : x = x,
+        super();
+  C.cc02(int x)
+      : x = x,
+        super.named();
+  C.cc03(this.x) : super();
+  C.cc04(this.x) : super.named();
+  C.cc05(int x)
+      : x = x,
+        assert(x == x),
+        super();
+  C.cc06(int x)
+      : x = x,
+        assert(x == x),
+        super.named();
+  C.cc07(this.x)
+      : assert(x == x),
+        super();
+  C.cc08(this.x)
+      : assert(x == x),
+        super.named();
+  C.cc09(int x)
+      : //
+        super(), //# cc09: compile-time error
+        x = x;
+  C.cc10(int x)
+      : //
+        super.named(), //# cc10: compile-time error
+        x = x;
+  C.cc11(this.x)
+      : //
+        super(), //# cc11: compile-time error
+        assert(x == x);
+  C.cc12(this.x)
+      : //
+        super.named(), //# cc12: compile-time error
+        assert(x == x);
+  C.cc13(int x)
+      : //
+        super(), //# cc13: compile-time error
+        x = x,
+        assert(x == x);
+  C.cc14(int x)
+      : //
+        super.named(), //# cc14: compile-time error
+        x = x,
+        assert(x == x);
+  C.cc15(int x)
+      : x = x,
+        super(), //# cc15: compile-time error
+        assert(x == x);
+  C.cc16(int x)
+      : x = x,
+        super.named(), //# cc16: compile-time error
+        assert(x == x);
+
+  const C.cc17(int x)
+      : x = x,
+        super();
+  const C.cc18(int x)
+      : x = x,
+        super.named();
+  const C.cc19(this.x) : super();
+  const C.cc20(this.x) : super.named();
+  const C.cc21(int x)
+      : x = x,
+        assert(x == x),
+        super();
+  const C.cc22(int x)
+      : x = x,
+        assert(x == x),
+        super.named();
+  const C.cc23(this.x)
+      : assert(x == x),
+        super();
+  const C.cc24(this.x)
+      : assert(x == x),
+        super.named();
+  const C.cc25(int x)
+      : //
+        super(), //# cc25: compile-time error
+        x = x;
+  const C.cc26(int x)
+      : //
+        super.named(), //# cc26: compile-time error
+        x = x;
+  const C.cc27(this.x)
+      : //
+        super(), //# cc27: compile-time error
+        assert(x == x);
+  const C.cc28(this.x)
+      : //
+        super.named(), //# cc28: compile-time error
+        assert(x == x);
+  const C.cc29(int x)
+      : //
+        super(), //# cc29: compile-time error
+        x = x,
+        assert(x == x);
+  const C.cc30(int x)
+      : //
+        super.named(), //# cc30: compile-time error
+        x = x,
+        assert(x == x);
+  const C.cc31(int x)
+      : x = x,
+        super(), //# cc31: compile-time error
+        assert(x == x);
+  const C.cc32(int x)
+      : x = x,
+        super.named(), //# cc32: compile-time error
+        assert(x == x);
+}
+
+main() {
+  // Ensure that erroneous constructors are actually needed.
+  new C.cc01(42);
+  new C.cc02(42);
+  new C.cc03(42);
+  new C.cc04(42);
+  new C.cc05(42);
+  new C.cc06(42);
+  new C.cc07(42);
+  new C.cc08(42);
+  new C.cc09(42);
+  new C.cc10(42);
+  new C.cc11(42);
+  new C.cc12(42);
+  new C.cc13(42);
+  new C.cc14(42);
+  new C.cc15(42);
+  new C.cc16(42);
+
+  const C.cc17(42);
+  const C.cc18(42);
+  const C.cc19(42);
+  const C.cc20(42);
+  const C.cc21(42);
+  const C.cc22(42);
+  const C.cc23(42);
+  const C.cc24(42);
+  const C.cc25(42);
+  const C.cc26(42);
+  const C.cc27(42);
+  const C.cc28(42);
+  const C.cc29(42);
+  const C.cc30(42);
+  const C.cc31(42);
+  const C.cc32(42);
+}
diff --git a/tests/language_2/language_2.status b/tests/language_2/language_2.status
index 3e36e64..06cff1c 100644
--- a/tests/language_2/language_2.status
+++ b/tests/language_2/language_2.status
@@ -22,6 +22,28 @@
 stacktrace_demangle_ctors_test: SkipByDesign # Names are not scrubbed.
 type_checks_in_factory_method_test: SkipByDesign # Requires checked mode.
 
+[ $fasta ]
+initializer_super_last_test/cc04: MissingCompileTimeError
+initializer_super_last_test/cc09: MissingCompileTimeError
+initializer_super_last_test/cc10: MissingCompileTimeError
+initializer_super_last_test/cc11: MissingCompileTimeError
+initializer_super_last_test/cc12: MissingCompileTimeError
+initializer_super_last_test/cc13: MissingCompileTimeError
+initializer_super_last_test/cc14: MissingCompileTimeError
+initializer_super_last_test/cc15: MissingCompileTimeError
+initializer_super_last_test/cc16: MissingCompileTimeError
+initializer_super_last_test/cc25: MissingCompileTimeError
+initializer_super_last_test/cc26: MissingCompileTimeError
+initializer_super_last_test/cc27: MissingCompileTimeError
+initializer_super_last_test/cc28: MissingCompileTimeError
+initializer_super_last_test/cc29: MissingCompileTimeError
+initializer_super_last_test/cc30: MissingCompileTimeError
+initializer_super_last_test/cc31: MissingCompileTimeError
+initializer_super_last_test/cc32: MissingCompileTimeError
+
+[ $compiler == dart2js && !$strong ]
+initializer_super_last_test: Crash, CompileTimeError # Issue 31321
+
 [ $compiler != dart2js && $compiler != dartdevc && !$fasta && $strong ]
 type_promotion_functions_test: CompileTimeError # Issue 30895: This test requires a complete rewrite for 2.0.
 
@@ -40,6 +62,40 @@
 implicit_creation/implicit_new_prefix_constructor_generic_test: Fail # No support for implicit creation.
 implicit_creation/implicit_new_prefix_constructor_test: Fail # No support for implicit creation.
 
+[ $compiler != dart2js && !$strong ]
+initializer_super_last_test/cc01: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc02: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc03: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc04: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc05: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc06: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc07: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc08: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc09: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc10: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc11: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc12: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc13: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc14: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc15: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc16: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc17: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc18: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc19: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc20: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc21: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc22: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc23: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc24: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc25: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc26: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc27: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc28: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc29: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc30: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc31: MissingCompileTimeError # Was valid in Dart 1.
+initializer_super_last_test/cc32: MissingCompileTimeError # Was valid in Dart 1.
+
 [ $compiler != dartdevc && !$checked ]
 function_type/*: Skip # Needs checked mode.
 
diff --git a/tests/language_2/language_2_analyzer.status b/tests/language_2/language_2_analyzer.status
index a1008b0..325899a 100644
--- a/tests/language_2/language_2_analyzer.status
+++ b/tests/language_2/language_2_analyzer.status
@@ -654,6 +654,7 @@
 assertion_initializer_const_error2_test/cc01: MissingCompileTimeError # Not reporting failed assert() at compile time.
 assertion_initializer_const_error2_test/cc02: MissingCompileTimeError # Not reporting failed assert() at compile time.
 assertion_initializer_const_error2_test/cc03: MissingCompileTimeError # Not reporting failed assert() at compile time.
+assertion_initializer_const_error2_test/cc04: MissingCompileTimeError # Not reporting failed assert() at compile time.
 assertion_initializer_const_error2_test/cc05: MissingCompileTimeError # Not reporting failed assert() at compile time.
 assertion_initializer_const_error2_test/cc06: MissingCompileTimeError # Not reporting failed assert() at compile time.
 assertion_initializer_const_error2_test/cc07: MissingCompileTimeError # Not reporting failed assert() at compile time.
diff --git a/tests/language_2/language_2_dart2js.status b/tests/language_2/language_2_dart2js.status
index 572064c..e525517 100644
--- a/tests/language_2/language_2_dart2js.status
+++ b/tests/language_2/language_2_dart2js.status
@@ -1396,6 +1396,7 @@
 argument_assignability_function_typed_test/03: RuntimeError
 argument_assignability_function_typed_test/04: RuntimeError
 argument_assignability_function_typed_test/05: RuntimeError
+assertion_initializer_const_error2_test/none: CompileTimeError
 assertion_initializer_test: CompileTimeError
 assertion_test: RuntimeError
 async_await_foreign_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
@@ -1517,9 +1518,7 @@
 const_switch_test/02: RuntimeError
 const_switch_test/04: RuntimeError
 const_types_test/34: MissingCompileTimeError
-const_types_test/35: MissingCompileTimeError
 const_types_test/39: MissingCompileTimeError
-const_types_test/40: MissingCompileTimeError
 constants_test/05: MissingCompileTimeError
 constructor12_test: RuntimeError
 constructor_named_arguments_test/none: RuntimeError
@@ -1963,7 +1962,6 @@
 redirecting_factory_default_values_test/02: MissingCompileTimeError
 redirecting_factory_default_values_test/03: MissingCompileTimeError
 redirecting_factory_infinite_steps_test/01: MissingCompileTimeError
-redirecting_factory_long_test: RuntimeError
 redirecting_factory_malbounded_test/01: MissingCompileTimeError
 redirecting_factory_reflection_test: CompileTimeError
 regress_13462_0_test: CompileTimeError
@@ -2164,6 +2162,7 @@
 argument_assignability_function_typed_test/03: RuntimeError
 argument_assignability_function_typed_test/04: RuntimeError
 argument_assignability_function_typed_test/05: RuntimeError
+assertion_initializer_const_error2_test/none: CompileTimeError
 assertion_initializer_test: CompileTimeError
 assertion_test: RuntimeError
 async_await_foreign_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
@@ -2726,7 +2725,6 @@
 redirecting_factory_default_values_test/02: MissingCompileTimeError
 redirecting_factory_default_values_test/03: MissingCompileTimeError
 redirecting_factory_infinite_steps_test/01: MissingCompileTimeError
-redirecting_factory_long_test: RuntimeError
 redirecting_factory_malbounded_test/01: MissingCompileTimeError
 redirecting_factory_reflection_test: CompileTimeError
 regress_13462_0_test: CompileTimeError
diff --git a/tests/language_2/language_2_dartdevc.status b/tests/language_2/language_2_dartdevc.status
index fa770e2..c86380f 100644
--- a/tests/language_2/language_2_dartdevc.status
+++ b/tests/language_2/language_2_dartdevc.status
@@ -64,6 +64,7 @@
 generic_local_functions_test: CompileTimeError
 generic_methods_generic_function_parameter_test: CompileTimeError
 generic_methods_generic_function_result_test/none: CompileTimeError # Issue #30208
+generic_methods_overriding_test/03: MissingCompileTimeError # Issue 29920
 generic_no_such_method_dispatcher_simple_test: Skip # This test is just for kernel.
 generic_no_such_method_dispatcher_test: CompileTimeError
 getter_setter_in_lib_test: CompileTimeError
@@ -337,6 +338,8 @@
 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
+conditional_import_string_test: CompileTimeError # Test is broken
+conditional_import_test: CompileTimeError # Test is broken
 config_import_test: CompileTimeError
 const_constructor2_test/20: MissingCompileTimeError
 const_constructor2_test/22: MissingCompileTimeError
@@ -399,6 +402,8 @@
 field_override_test/00: MissingCompileTimeError
 field_override_test/01: MissingCompileTimeError
 function_propagation_test: RuntimeError
+function_subtype_cast0_test: RuntimeError # CastError: Casting value of type '(int) => void' to type '(dynamic) => void' which is incompatible
+function_subtype_closure0_test: RuntimeError # Expect.throws(TypeError) fails: Did not throw
 function_type_call_getter2_test/00: MissingCompileTimeError
 function_type_call_getter2_test/01: MissingCompileTimeError
 function_type_call_getter2_test/02: MissingCompileTimeError
@@ -421,12 +426,15 @@
 identical_const_test/02: MissingCompileTimeError
 identical_const_test/03: MissingCompileTimeError
 identical_const_test/04: MissingCompileTimeError
+implicit_creation/implicit_new_or_const_composite_test: RuntimeError
+implicit_creation/implicit_new_or_const_test: RuntimeError
 implicit_this_test/01: MissingCompileTimeError
 implicit_this_test/04: MissingCompileTimeError
 initializing_formal_type_annotation_test/01: MissingCompileTimeError
 initializing_formal_type_annotation_test/02: MissingCompileTimeError
 instance_call_wrong_argument_count_negative_test: Fail
 instantiate_tearoff_of_call_test: CompileTimeError
+instantiate_type_variable_test/01: CompileTimeError
 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'.
 issue18628_2_test/01: MissingCompileTimeError
 issue31596_override_test/07: MissingCompileTimeError
@@ -438,6 +446,9 @@
 issue31596_super_test/05: RuntimeError
 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'.
+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
 local_function_test/01: MissingCompileTimeError
 local_function_test/02: MissingCompileTimeError
 malbounded_instantiation_test/01: MissingCompileTimeError
@@ -548,6 +559,8 @@
 mixin_type_parameters_errors_test/03: MissingCompileTimeError
 mixin_type_parameters_errors_test/04: MissingCompileTimeError
 mixin_type_parameters_errors_test/05: MissingCompileTimeError
+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
 multiline_newline_test/06: MissingCompileTimeError
 multiline_newline_test/06r: MissingCompileTimeError
 named_constructor_test/01: MissingCompileTimeError
@@ -605,14 +618,19 @@
 redirecting_factory_default_values_test/03: MissingCompileTimeError
 redirecting_factory_infinite_steps_test/01: MissingCompileTimeError
 redirecting_factory_malbounded_test/01: MissingCompileTimeError
+redirecting_factory_reflection_test: RuntimeError # UnimplementedError: node <InvalidExpression> `invalid-expression`
 regress_23089_test: Crash # Crashes in KernelClassBuilder.buildTypeArguments
 regress_23408_test: CompileTimeError # Issue 31533
+regress_24283_test: RuntimeError # Expect.equals(expected: <-1>, actual: <4294967295>) fails.
 regress_29025_test: CompileTimeError
 regress_29405_test: CompileTimeError # Issue 31402 Error: A value of type '#lib2::Foo' can't be assigned to a variable of type '(#lib2::Foo) → void'.
 regress_29784_test/01: MissingCompileTimeError
 regress_29784_test/02: MissingCompileTimeError
 regress_30339_test: CompileTimeError
+regress_30339_test: RuntimeError # Uncaught Expect.isTrue(false) fails.
+runtime_type_function_test: RuntimeError # Expect.fail('Type print string does not match expectation
 setter4_test: MissingCompileTimeError
+setter_no_getter_call_test/01: CompileTimeError
 setter_no_getter_test/01: CompileTimeError
 setter_override_test/00: MissingCompileTimeError
 setter_override_test/01: MissingCompileTimeError
@@ -638,6 +656,7 @@
 switch_case_test/00: MissingCompileTimeError
 switch_case_test/01: MissingCompileTimeError
 switch_case_test/02: MissingCompileTimeError
+syncstar_yield_test/copyParameters: RuntimeError # Expect.equals(expected: <2>, actual: <3>) fails.
 syntax_test/28: MissingCompileTimeError
 syntax_test/29: MissingCompileTimeError
 syntax_test/30: MissingCompileTimeError
@@ -645,6 +664,7 @@
 syntax_test/32: MissingCompileTimeError
 syntax_test/33: MissingCompileTimeError
 try_catch_test/01: MissingCompileTimeError
+type_literal_test: RuntimeError # Expect.equals(expected: <Func>, actual: <(bool) => int>) fails.
 type_promotion_functions_test/02: CompileTimeError # Issue 31537
 type_promotion_functions_test/03: CompileTimeError # Issue 31537
 type_promotion_functions_test/04: CompileTimeError # Issue 31537
@@ -673,6 +693,10 @@
 void_type_usage_test/conditional_return_to_void: MissingCompileTimeError, Crash
 wrong_number_type_arguments_test/01: MissingCompileTimeError
 
+[ $compiler == dartdevc && $runtime == none ]
+instantiate_type_variable_test/01: CompileTimeError
+setter_no_getter_call_test/01: CompileTimeError
+
 [ $compiler == dartdevc && $runtime != none ]
 assertion_test: RuntimeError # Issue 30326; Expect.equals(expected: <1>, actual: <0>) fails.
 async_star_test/01: RuntimeError
@@ -690,7 +714,6 @@
 expect_test: RuntimeError # Issue 29920
 f_bounded_quantification3_test: RuntimeError # Issue 29920
 forwarding_stub_tearoff_generic_test: RuntimeError
-generic_methods_overriding_test/03: MissingCompileTimeError # Issue 29920
 getter_closure_execution_order_test: RuntimeError # Issue 29920
 implicit_downcast_during_compound_assignment_test: RuntimeError
 implicit_downcast_during_indexed_compound_assignment_test: RuntimeError
@@ -720,25 +743,6 @@
 super_operator_index8_test: RuntimeError
 truncdiv_test: RuntimeError # Issue 29920
 
-[ $compiler == dartdevk && $runtime != none ]
-conditional_import_string_test: CompileTimeError # Test is broken
-conditional_import_test: CompileTimeError # Test is broken
-function_subtype_cast0_test: RuntimeError # CastError: Casting value of type '(int) => void' to type '(dynamic) => void' which is incompatible
-function_subtype_closure0_test: RuntimeError # Expect.throws(TypeError) fails: Did not throw
-implicit_creation/implicit_new_or_const_composite_test: RuntimeError
-implicit_creation/implicit_new_or_const_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
-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
-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.
-
 [ $compiler == dartdevk && $checked ]
 assertion_initializer_const_error2_test/*: MissingCompileTimeError
 assertion_initializer_const_error2_test/none: Pass
@@ -751,27 +755,26 @@
 # 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.
-[ $runtime != none && ($compiler == dartdevc || $compiler == dartdevk) ]
+[ $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_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
 async_star_test/02: RuntimeError
 asyncstar_throw_in_catch_test: Skip # Times out. Issue 29920
 bit_operations_test: RuntimeError # No bigints on web.; Expect.equals(expected: <-25>, actual: <4294967271>) fails.
+bit_operations_test/01: MissingCompileTimeError
+bit_operations_test/02: MissingCompileTimeError
 branch_canonicalization_test: RuntimeError # Issue 29920; Expect.equals(expected: <0>, actual: <1>) fails.
+built_in_identifier_prefix_test: CompileTimeError
 call_closurization_test: RuntimeError # Issue 29920; TypeError: Cannot read property '0' of undefined
 call_test: RuntimeError # Expect.throws(NoSuchMethodError) fails: Did not throw
 canonical_const2_test: RuntimeError # Ints and doubles are unified.; Expect.isFalse(true) fails.
+closure_call_wrong_argument_count_negative_test: Fail
 compile_time_constant_d_test: RuntimeError # Issue 30876; Expect.isTrue(false) fails.
 compile_time_constant_e_test: RuntimeError # Issue 30876; Expect.identical(expected: <A 3 499 99 100>, actual: <A 3 499 99 100>) fails.
+config_import_corelib_test: CompileTimeError
 config_import_test: RuntimeError # Expect.equals(expected: <b>, actual: <a>) fails.
 const_list_test: RuntimeError # Expect.equals(expected: <false>, actual: <true>) fails.
 const_map4_test: RuntimeError # Expect.equals(expected: <true>, actual: <false>) fails.
@@ -797,6 +800,7 @@
 exception_test: RuntimeError # DDC doesn't implement NullThrownError?; Expect.isTrue(false) fails.
 expect_test: RuntimeError # Issue 29920; Expect.identical did not fail
 f_bounded_quantification3_test: RuntimeError # Issue 29920; Uncaught Error: type arguments should not be null: (F1, F2) => {
+field3_test/01: MissingCompileTimeError
 field_increment_bailout_test: RuntimeError # Issue 29920; UnimplementedError: JsInstanceMirror.delegate unimplemented
 field_initialization_order_test/none: RuntimeError # Expect.equals(expected: <b.a.ai.bi.>, actual: <b.bi.a.ai.>) fails.
 flatten_test/05: MissingRuntimeError # Issue 29920
@@ -806,13 +810,19 @@
 for_variable_capture_test: RuntimeError # Issue 29920; Expect.equals(expected: <1>, actual: <0>) fails.
 function_subtype_inline2_test: RuntimeError # Expect.fail('Missing type error: 'new C.c1(m2)'.')
 function_type_alias6_test/none: RuntimeError # Expect.isTrue(false) fails.
+generic_function_type_as_type_argument_test/01: MissingCompileTimeError # Issue 29920
+generic_function_type_as_type_argument_test/02: MissingCompileTimeError # Issue 29920
 generic_instanceof2_test: RuntimeError # Issue 29920; ReferenceError: FooOfK$String is not defined
 generic_is_check_test: RuntimeError # Issue 29920; Expect.isTrue(false) fails.
+generic_methods_overriding_test/01: MissingCompileTimeError # Issue 29920
+generic_tearoff_test: CompileTimeError
 identical_closure2_test: RuntimeError # Issue 29920; Expect.isFalse(true) fails.
 infinite_switch_label_test: RuntimeError # Issue 29920; NoSuchMethodError: method not found: '<Unexpected Null Value>'
 infinity_test: RuntimeError # Issue 29920; Expect.isFalse(true) fails.
 instance_creation_in_function_annotation_test: RuntimeError # Issue 29920; UnimplementedError: JsClosureMirror.function unimplemented
+int64_literal_test/*: Skip # This is testing Dart 2.0 int64 semantics.
 integer_division_by_zero_test: RuntimeError # Issue 29920; Expect.throws: Unexpected 'Unsupported operation: Infinity'
+internal_library_test/02: Crash
 invocation_mirror2_test: RuntimeError # UnimplementedError: JsInstanceMirror.delegate unimplemented
 invocation_mirror_empty_arguments_test: RuntimeError # Expect.throws(UnsupportedError) fails: Did not throw
 invocation_mirror_invoke_on2_test: RuntimeError # UnimplementedError: JsInstanceMirror.delegate unimplemented
@@ -832,8 +842,13 @@
 local_function3_test/none: RuntimeError # Expect.equals(expected: <true>, actual: <false>) fails.
 local_function_test/none: RuntimeError # Expect.equals(expected: <true>, actual: <false>) fails.
 many_overridden_no_such_method_test: RuntimeError # UnimplementedError: JsInstanceMirror.delegate unimplemented; UnimplementedError: JsInstanceMirror.delegate unimplemented
+method_override7_test/03: MissingCompileTimeError # Issue 30514
 mint_arithmetic_test: RuntimeError # Issue 29920; Expect.equals(expected: <4294967297>, actual: <1>) fails.
 modulo_test: RuntimeError # Ints and doubles are unified.; Expect.throws fails: Did not throw
+multiline_newline_test/04: MissingCompileTimeError
+multiline_newline_test/04r: MissingCompileTimeError
+multiline_newline_test/05: MissingCompileTimeError
+multiline_newline_test/05r: MissingCompileTimeError
 named_parameter_clash_test: RuntimeError # Issue 29920; Expect.throws(NoSuchMethodError) fails: Did not throw
 named_parameters_default_eq_test/none: RuntimeError # Expect.isTrue(false) fails.
 nan_identical_test: RuntimeError # Issue 29920; Unsupported operation: Uint64 accessor not supported by dart2js.
@@ -844,41 +859,6 @@
 number_identity2_test: RuntimeError # Issue 29920; Expect.isTrue(false) fails.
 numbers_test: RuntimeError # Issue 29920; Expect.equals(expected: <false>, actual: <true>) fails.
 overridden_no_such_method_test: RuntimeError # UnimplementedError: JsInstanceMirror.delegate unimplemented; UnimplementedError: JsInstanceMirror.delegate unimplemented
-private3_test: RuntimeError # Type 'PrivateSymbol' is not a subtype of type 'Symbol' in strong mode
-regress_16640_test: RuntimeError # Issue 29920; Uncaught Error: type arguments should not be null: E => {
-regress_22443_test: RuntimeError # Uncaught Expect.isTrue(false) fails.
-stack_overflow_stacktrace_test: RuntimeError # Issue 29920; RangeError: Maximum call stack size exceeded
-stack_overflow_test: RuntimeError # Issue 29920; RangeError: Maximum call stack size exceeded
-stacktrace_demangle_ctors_test: RuntimeError # Issue 31089; Expect.isTrue(false) fails.
-stacktrace_test: RuntimeError # Issue 29920; Expect.isTrue(false) fails.
-string_interpolation_and_buffer_test: RuntimeError # NoSuchMethodError: method not found: '<Unexpected Null Value>'
-string_literals_test: RuntimeError # Expect.equals(expected: <\x00\x0A\x0D\x7F\xFF\u{FFFF}\u{D800}\u{DC00}\u{DBFF}\u{DFFF}>, actual: <\x00\x0A\x0D\x7F\xFF\u{FFFF}\u{FFFD}\u{FFFD}\u{FFFD}\u{FFFD}\u{FFFD}\u{FFFD}\u{FFFD}\u{FFFD}\u{FFFD}\u{FFFD}\u{FFFD}\u{FFFD}>) fails.
-super_test: RuntimeError # Expect.equals(expected: <0>, actual: <2>) fails.
-switch_label2_test: RuntimeError # Issue 29920; UnimplementedError: node <ShadowContinueSwitchStatement> see https://github.com/dart-lang/sdk/issues/29352 `continue #L1;
-switch_label_test: RuntimeError # Issue 29920; UnimplementedError: node <ShadowContinueSwitchStatement> see https://github.com/dart-lang/sdk/issues/29352 `continue #L1;
-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 || $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
-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_methods_overriding_test/01: 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
@@ -901,10 +881,20 @@
 override_inheritance_abstract_test/26: MissingCompileTimeError
 override_inheritance_no_such_method_test/13: MissingCompileTimeError
 parser_quirks_test: CompileTimeError
+private3_test: RuntimeError # Type 'PrivateSymbol' is not a subtype of type 'Symbol' in strong mode
+regress_16640_test: RuntimeError # Issue 29920; Uncaught Error: type arguments should not be null: E => {
+regress_22443_test: RuntimeError # Uncaught Expect.isTrue(false) fails.
 regress_27617_test/1: MissingCompileTimeError
+stack_overflow_stacktrace_test: RuntimeError # Issue 29920; RangeError: Maximum call stack size exceeded
+stack_overflow_test: RuntimeError # Issue 29920; RangeError: Maximum call stack size exceeded
+stacktrace_demangle_ctors_test: RuntimeError # Issue 31089; Expect.isTrue(false) fails.
+stacktrace_test: RuntimeError # Issue 29920; Expect.isTrue(false) fails.
+string_interpolation_and_buffer_test: RuntimeError # NoSuchMethodError: method not found: '<Unexpected Null Value>'
+string_literals_test: RuntimeError # Expect.equals(expected: <\x00\x0A\x0D\x7F\xFF\u{FFFF}\u{D800}\u{DC00}\u{DBFF}\u{DFFF}>, actual: <\x00\x0A\x0D\x7F\xFF\u{FFFF}\u{FFFD}\u{FFFD}\u{FFFD}\u{FFFD}\u{FFFD}\u{FFFD}\u{FFFD}\u{FFFD}\u{FFFD}\u{FFFD}\u{FFFD}\u{FFFD}>) fails.
+super_test: RuntimeError # Expect.equals(expected: <0>, actual: <2>) fails.
+switch_label2_test: RuntimeError # Issue 29920; UnimplementedError: node <ShadowContinueSwitchStatement> see https://github.com/dart-lang/sdk/issues/29352 `continue #L1;
+switch_label_test: RuntimeError # Issue 29920; UnimplementedError: node <ShadowContinueSwitchStatement> see https://github.com/dart-lang/sdk/issues/29352 `continue #L1;
+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
 vm/*: SkipByDesign # VM only tests.; VM only tests.
 
-[ $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_kernel.status b/tests/language_2/language_2_kernel.status
index 84243f6..ab0002a 100644
--- a/tests/language_2/language_2_kernel.status
+++ b/tests/language_2/language_2_kernel.status
@@ -122,7 +122,6 @@
 implicit_creation/implicit_const_context_prefix_constructor_named_test: CompileTimeError
 implicit_creation/implicit_const_context_prefix_constructor_test: CompileTimeError
 implicit_creation/implicit_new_constructor_generic_named_test: CompileTimeError
-implicit_creation/implicit_new_constructor_generic_test: CompileTimeError
 implicit_creation/implicit_new_or_const_generic_test: CompileTimeError
 implicit_creation/implicit_new_prefix_constructor_generic_named_test: CompileTimeError
 implicit_this_test/01: MissingCompileTimeError
@@ -839,6 +838,7 @@
 assertion_initializer_const_error2_test/cc01: MissingCompileTimeError # Not reporting failed assert() at compile time.
 assertion_initializer_const_error2_test/cc02: MissingCompileTimeError # Not reporting failed assert() at compile time.
 assertion_initializer_const_error2_test/cc03: MissingCompileTimeError # Not reporting failed assert() at compile time.
+assertion_initializer_const_error2_test/cc04: MissingCompileTimeError # Not reporting failed assert() at compile time.
 assertion_initializer_const_error2_test/cc05: MissingCompileTimeError # Not reporting failed assert() at compile time.
 assertion_initializer_const_error2_test/cc06: MissingCompileTimeError # Not reporting failed assert() at compile time.
 assertion_initializer_const_error2_test/cc07: MissingCompileTimeError # Not reporting failed assert() at compile time.
@@ -1314,7 +1314,6 @@
 compile_time_constant_k_test/03: MissingCompileTimeError
 compile_time_constant_static2_test/04: MissingCompileTimeError
 compile_time_constant_static3_test/04: MissingCompileTimeError
-generic_function_bounds_test: CompileTimeError
 initializing_formal_type_annotation_test/01: MissingCompileTimeError
 initializing_formal_type_annotation_test/02: MissingCompileTimeError
 issue18628_2_test/01: MissingCompileTimeError
@@ -2081,7 +2080,6 @@
 type_variable_static_context_test: MissingCompileTimeError
 typed_selector2_test: MissingCompileTimeError
 unbound_getter_test: MissingCompileTimeError
-unhandled_exception_negative_test: Fail
 unresolved_default_constructor_test/01: MissingCompileTimeError
 unresolved_in_factory_test: MissingCompileTimeError
 unresolved_top_level_method_test: MissingCompileTimeError
diff --git a/tests/language_2/language_2_spec_parser.status b/tests/language_2/language_2_spec_parser.status
index 55eb1d2..9976a28 100644
--- a/tests/language_2/language_2_spec_parser.status
+++ b/tests/language_2/language_2_spec_parser.status
@@ -90,8 +90,6 @@
 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.
 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.
diff --git a/tests/language_2/language_2_vm.status b/tests/language_2/language_2_vm.status
index 219b1d4..9d8d97d 100644
--- a/tests/language_2/language_2_vm.status
+++ b/tests/language_2/language_2_vm.status
@@ -7,6 +7,7 @@
 assertion_initializer_const_error2_test/cc01: MissingCompileTimeError # Not reporting failed assert() at compile time.
 assertion_initializer_const_error2_test/cc02: MissingCompileTimeError # Not reporting failed assert() at compile time.
 assertion_initializer_const_error2_test/cc03: MissingCompileTimeError # Not reporting failed assert() at compile time.
+assertion_initializer_const_error2_test/cc04: MissingCompileTimeError # Not reporting failed assert() at compile time.
 assertion_initializer_const_error2_test/cc05: MissingCompileTimeError # Not reporting failed assert() at compile time.
 assertion_initializer_const_error2_test/cc06: MissingCompileTimeError # Not reporting failed assert() at compile time.
 assertion_initializer_const_error2_test/cc07: MissingCompileTimeError # Not reporting failed assert() at compile time.
diff --git a/tests/language_2/unhandled_exception_negative_test.dart b/tests/language_2/unhandled_exception_negative_test.dart
deleted file mode 100644
index 914505a..0000000
--- a/tests/language_2/unhandled_exception_negative_test.dart
+++ /dev/null
@@ -1,30 +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.
-// Dart test program for testing unhandled exceptions.
-
-class MyException {
-  const MyException(String message) : message_ = message;
-  String getMessage() { return message_; }
-  final String message_;
-}
-
-class Helper {
-  static int f1(int i) {
-    int j;
-    j = i + 200;
-    j = j + 300;
-    throw new MyException("Unhandled Exception");
-    return i;
-  }
-}
-
-class UnhandledExceptionNegativeTest {
-  static testMain() {
-    Helper.f1(1);
-  }
-}
-
-main() {
-  UnhandledExceptionNegativeTest.testMain();
-}
diff --git a/tests/lib/analyzer/analyze_library.status b/tests/lib/analyzer/analyze_library.status
index b3b42a8..0dd8e28 100644
--- a/tests/lib/analyzer/analyze_library.status
+++ b/tests/lib/analyzer/analyze_library.status
@@ -3,35 +3,4 @@
 # BSD-style license that can be found in the LICENSE file.
 
 [ $compiler == dart2analyzer ]
-lib/_blink/dartium/_blink_dartium: Skip # TODO: Remove Dartium
-lib/_chrome/dart2js/chrome_dart2js: CompileTimeError # Issue 16522
-lib/html/dart2js/html_dart2js: CompileTimeError # Issue 16522
-lib/html/dartium/html_dartium: Skip # TODO: Remove Dartium
-lib/html/html_common/html_common: StaticWarning # Issue 21647
-lib/html/html_common/html_common_dart2js: CompileTimeError # Issue 16522
-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
-lib/typed_data/dart2js/typed_data_dart2js: CompileTimeError # Issue 16522
-lib/web_audio/dart2js/web_audio_dart2js: CompileTimeError # Issue 16522
-lib/web_audio/dartium/web_audio_dartium: Skip # TODO: Remove Dartium
-lib/web_gl/dart2js/web_gl_dart2js: CompileTimeError # Issue 16522
-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
-
-[ $compiler == dart2analyzer && $strong ]
-*: 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
-
+*: Skip
diff --git a/tests/lib/lib.status b/tests/lib/lib.status
index 689a0ba..9a42a66 100644
--- a/tests/lib/lib.status
+++ b/tests/lib/lib.status
@@ -12,22 +12,7 @@
 mirrors/*: Skip # Issue 27929: Triage
 
 [ $compiler == dart2analyzer ]
-async/stream_event_transformed_test: StaticWarning
-convert/base64_test/01: CompileTimeError # int64
-convert/utf82_test: CompileTimeError # int64
-math/double_pow_test: CompileTimeError # int64
-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
-typed_data/int32x4_bigint_test: CompileTimeError # int64
+*: Skip
 
 [ $compiler != dart2analyzer ]
 async/stream_controller_async_test: StaticWarning
@@ -233,12 +218,6 @@
 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 == dart2analyzer && $checked ]
-mirrors/regress_16321_test/01: MissingCompileTimeError # Issue 16391
-
-[ $compiler == dart2analyzer && $strong ]
-*: Skip # Issue 28649
-
 [ $compiler == dart2js && $mode == debug ]
 mirrors/native_class_test: Pass, Slow
 
diff --git a/tests/lib_2/lib_2.status b/tests/lib_2/lib_2.status
index 8dafc68..4191543 100644
--- a/tests/lib_2/lib_2.status
+++ b/tests/lib_2/lib_2.status
@@ -75,6 +75,7 @@
 html/xhr_test/json: Fail # IE10 returns string, not JSON object
 
 [ $runtime == safari ]
+async/periodic_timer3_test: Pass, RuntimeError # Flaky. Issue 32094
 convert/json_test: Fail # https://bugs.webkit.org/show_bug.cgi?id=134920
 html/audiobuffersourcenode_test/functional: RuntimeError
 html/canvasrenderingcontext2d_test/drawImage_video_element: Fail # Safari does not support drawImage w/ video element
diff --git a/tests/standalone/standalone.status b/tests/standalone/standalone.status
index f32ce9e..3f6fc2e 100644
--- a/tests/standalone/standalone.status
+++ b/tests/standalone/standalone.status
@@ -10,11 +10,7 @@
 io/raw_datagram_socket_test: SkipByDesign
 
 [ $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
+*: Skip
 
 # Overriding these flags are not supported in product mode.
 [ $mode == product ]
@@ -30,9 +26,6 @@
 [ $builder_tag == swarming && $system == macos ]
 io/*: Skip # Issue 30618
 
-[ $compiler == dart2analyzer && $strong ]
-*: Skip # Issue 28649
-
 [ $compiler == dartk && $strong ]
 *: SkipByDesign
 
diff --git a/tools/VERSION b/tools/VERSION
index 6752539..17fcce9 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 0
 PATCH 0
-PRERELEASE 26
+PRERELEASE 27
 PRERELEASE_PATCH 0
diff --git a/tools/infra/config/cq.cfg b/tools/infra/config/cq.cfg
index 6976275..728288d 100644
--- a/tools/infra/config/cq.cfg
+++ b/tools/infra/config/cq.cfg
@@ -29,7 +29,10 @@
       builders { name: "dart2js-linux-chrome-try"}
       builders { name: "ddc-linux-release-chrome-try"}
       builders { name: "vm-linux-product-x64-try"}
-      builders { name: "dart-sdk-windows-try"}
+      builders {
+        name: "dart-sdk-windows-try"
+        experiment_percentage: 100
+      }
       builders { name: "vm-kernel-mac-release-x64-try"}
       builders { name: "benchmark-linux-try"}
     }
diff --git a/tools/testing/dart/configuration.dart b/tools/testing/dart/configuration.dart
index 1a1c66d..0791d9d 100644
--- a/tools/testing/dart/configuration.dart
+++ b/tools/testing/dart/configuration.dart
@@ -646,6 +646,7 @@
       case Compiler.dartkp:
         return Runtime.dartPrecompiled;
       case Compiler.specParser:
+      case Compiler.fasta:
         return Runtime.none;
       case Compiler.none:
         return Runtime.vm;
@@ -654,6 +655,20 @@
     throw "unreachable";
   }
 
+  Mode get defaultMode {
+    switch (this) {
+      case Compiler.dart2analyzer:
+      case Compiler.dart2js:
+      case Compiler.dartdevc:
+      case Compiler.dartdevk:
+      case Compiler.fasta:
+        return Mode.release;
+
+      default:
+        return Mode.debug;
+    }
+  }
+
   String toString() => "Compiler($name)";
 }
 
diff --git a/tools/testing/dart/options.dart b/tools/testing/dart/options.dart
index 451d8d7..03fe413 100644
--- a/tools/testing/dart/options.dart
+++ b/tools/testing/dart/options.dart
@@ -86,9 +86,7 @@
 class OptionsParser {
   static final List<_Option> _options = [
     new _Option('mode', 'Mode in which to run the tests.',
-        abbr: 'm',
-        values: ['all']..addAll(Mode.names),
-        defaultsTo: Mode.debug.name),
+        abbr: 'm', values: ['all']..addAll(Mode.names)),
     new _Option(
         'compiler',
         '''How the Dart code should be compiled or statically processed.
@@ -613,7 +611,7 @@
         // Expand compilers.
         for (var compiler in compilers) {
           // Expand modes.
-          var modes = data["mode"] as String;
+          String modes = data["mode"] ?? compiler.defaultMode.name;
           if (modes == "all") modes = "debug,release,product";
           for (var modeName in modes.split(",")) {
             var mode = Mode.find(modeName);