Version 1.11.0-dev.1.0

svn merge -r 45518:45726 https://dart.googlecode.com/svn/branches/bleeding_edge trunk

git-svn-id: http://dart.googlecode.com/svn/trunk@45728 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/client/tools/buildbot_annotated_steps.py b/client/tools/buildbot_annotated_steps.py
index 32f8579..658e25c 100755
--- a/client/tools/buildbot_annotated_steps.py
+++ b/client/tools/buildbot_annotated_steps.py
@@ -185,20 +185,17 @@
   # The buildbot will set a BUILDBOT_JAVA_HOME relative to the dart
   # root directory, set JAVA_HOME based on that.
   FixJavaHome()
-  if name.startswith('dart-editor'):
-    # Run the old annotated steps script
-    status = ProcessTools('release', name, version)
-  elif name.startswith('pub-'):
+  if name.startswith('pub-'):
     status = ProcessBot(name, 'pub')
   elif name.startswith('vm-android'):
     status = ProcessBot(name, 'android')
+  elif name.startswith('dart-sdk'):
+    status = ProcessBot(name, 'dart_sdk')
   elif name.startswith('cross') or name.startswith('target'):
     status = ProcessBot(name, 'cross-vm',
                         custom_env=EnvironmentWithoutBotoConfig())
   elif name.startswith('linux-distribution-support'):
     status = ProcessBot(name, 'linux_distribution_support')
-  elif name.startswith('ft'):
-    status = ProcessBot(name, 'functional_testing')
   elif name.startswith('version-checker'):
     status = ProcessBot(name, 'version_checker')
   elif name.startswith('dart2js-dump-info'):
diff --git a/dart.gyp b/dart.gyp
index 93d2214..fb973e1 100644
--- a/dart.gyp
+++ b/dart.gyp
@@ -9,11 +9,9 @@
       'type': 'none',
       'dependencies': [
         'analysis_server',
-        'analyzer_java',
         'create_sdk',
         'dart2js',
         'dartanalyzer',
-        'editor',
         'packages',
         'runtime',
         'samples',
@@ -57,13 +55,6 @@
       ],
     },
     {
-      'target_name': 'analyzer_java',
-      'type': 'none',
-      'dependencies': [
-        'editor/analyzer_java.gyp:analyzer',
-      ],
-    },
-    {
       'target_name': 'dartfmt',
       'type': 'none',
       'dependencies': [
@@ -78,28 +69,6 @@
       ],
     },
     {
-      # This is the target that is built on the dart2dart bots.
-      # It must depend on anything that is required by dart2dart
-      # tests.
-      'target_name': 'dart2dart_bot',
-      'type': 'none',
-      'dependencies': [
-        'create_sdk',
-        'packages',
-      ],
-    },
-    {
-      # This is the target that is built on the dartc bots.
-      # It must depend on anything that is required by dartc
-      # tests.
-      'target_name': 'dartc_bot',
-      'type': 'none',
-      'dependencies': [
-        'create_sdk',
-        'packages',
-      ],
-    },
-    {
       # This is the target that is built on the dart2js build bots.
       # It must depend on anything that is required by the dart2js
       # test suites.
@@ -132,45 +101,6 @@
       ],
     },
     {
-      'target_name': 'editor',
-      'type': 'none',
-      'dependencies': [
-        'editor/build/generated/editor_deps.gyp:editor_deps',
-
-        # This dependency on create_sdk does not mean that the
-        # Editor is rebuilt if the SDK is. It only means that when you build
-        # the Editor, you should also build the SDK. If we wanted to
-        # make sure that the editor is rebuilt when the SDK is, we
-        # should list a *file* in PRODUCT_DIR which the action below
-        # uses as input.
-        # This is the desired behavior as we would otherwise have to
-        # rebuild the editor each time the VM, dart2js, or library
-        # code changes.
-        'create_sdk',
-      ],
-      'actions': [
-        {
-          'action_name': 'create_editor_py',
-          'inputs': [
-            'tools/create_editor.py',
-            '<(SHARED_INTERMEDIATE_DIR)/editor_deps/editor.stamp',
-            '<!@(["python", "tools/list_files.py", "", "editor/tools/features/'
-            'com.google.dart.tools.deploy.feature_releng"])',
-          ],
-          'outputs': [
-            '<(PRODUCT_DIR)/editor/VERSION',
-          ],
-          'action': [
-            'python',
-            'tools/create_editor.py',
-            '--out', '<(PRODUCT_DIR)/editor',
-            '--build', '<(INTERMEDIATE_DIR)',
-          ],
-          'message': 'Creating editor.',
-        },
-      ],
-    },
-    {
       'target_name': 'samples',
       'type': 'none',
       'dependencies': [],
diff --git a/pkg/analysis_server/AUTHORS b/pkg/analysis_server/AUTHORS
old mode 100755
new mode 100644
diff --git a/pkg/analysis_server/CHANGELOG.md b/pkg/analysis_server/CHANGELOG.md
old mode 100755
new mode 100644
diff --git a/pkg/analysis_server/CONTRIBUTING.md b/pkg/analysis_server/CONTRIBUTING.md
old mode 100755
new mode 100644
diff --git a/pkg/analysis_server/README.md b/pkg/analysis_server/README.md
old mode 100755
new mode 100644
diff --git a/pkg/analysis_server/lib/src/analysis_server.dart b/pkg/analysis_server/lib/src/analysis_server.dart
index 121227a..b101f37 100644
--- a/pkg/analysis_server/lib/src/analysis_server.dart
+++ b/pkg/analysis_server/lib/src/analysis_server.dart
@@ -564,7 +564,7 @@
     List<CompilationUnit> units = getResolvedCompilationUnits(file);
     List<AstNode> nodes = <AstNode>[];
     for (CompilationUnit unit in units) {
-      AstNode node = new NodeLocator.con1(offset).searchWithin(unit);
+      AstNode node = new NodeLocator(offset).searchWithin(unit);
       if (node != null) {
         nodes.add(node);
       }
@@ -979,7 +979,7 @@
     folderMap.forEach((Folder folder, AnalysisContext context) {
       List<Source> sourceList = sourceMap[context];
       if (sourceList == null) {
-        sourceList = Source.EMPTY_ARRAY;
+        sourceList = Source.EMPTY_LIST;
       }
       context.analysisPriorityOrder = sourceList;
       // Schedule the context for analysis so that it has the opportunity to
@@ -1139,7 +1139,7 @@
     //
     folderMap.forEach((Folder folder, AnalysisContext context) {
       AnalysisOptionsImpl options =
-          new AnalysisOptionsImpl.con1(context.analysisOptions);
+          new AnalysisOptionsImpl.from(context.analysisOptions);
       optionUpdaters.forEach((OptionUpdater optionUpdater) {
         optionUpdater(options);
       });
@@ -1321,7 +1321,7 @@
     context.contentCache = analysisServer.overlayState;
     analysisServer.folderMap[folder] = context;
     context.sourceFactory = _createSourceFactory(packageUriResolver);
-    context.analysisOptions = new AnalysisOptionsImpl.con1(defaultOptions);
+    context.analysisOptions = new AnalysisOptionsImpl.from(defaultOptions);
     _onContextsChangedController
         .add(new ContextsChangedEvent(added: [context]));
     analysisServer.schedulePerformAnalysisOperation(context);
diff --git a/pkg/analysis_server/lib/src/computer/computer_hover.dart b/pkg/analysis_server/lib/src/computer/computer_hover.dart
index ceafb22e..e80a243 100644
--- a/pkg/analysis_server/lib/src/computer/computer_hover.dart
+++ b/pkg/analysis_server/lib/src/computer/computer_hover.dart
@@ -65,7 +65,7 @@
    * Returns the computed hover, maybe `null`.
    */
   HoverInformation compute() {
-    AstNode node = new NodeLocator.con1(_offset).searchWithin(_unit);
+    AstNode node = new NodeLocator(_offset).searchWithin(_unit);
     if (node == null) {
       return null;
     }
diff --git a/pkg/analysis_server/lib/src/operation/operation_analysis.dart b/pkg/analysis_server/lib/src/operation/operation_analysis.dart
index 7f0fe1a..6ac3935 100644
--- a/pkg/analysis_server/lib/src/operation/operation_analysis.dart
+++ b/pkg/analysis_server/lib/src/operation/operation_analysis.dart
@@ -174,7 +174,7 @@
  */
 void setCacheSize(AnalysisContext context, int cacheSize) {
   AnalysisOptionsImpl options =
-      new AnalysisOptionsImpl.con1(context.analysisOptions);
+      new AnalysisOptionsImpl.from(context.analysisOptions);
   options.cacheSize = cacheSize;
   context.analysisOptions = options;
 }
diff --git a/pkg/analysis_server/lib/src/services/completion/import_uri_contributor.dart b/pkg/analysis_server/lib/src/services/completion/import_uri_contributor.dart
index 8551852..0d56e98 100644
--- a/pkg/analysis_server/lib/src/services/completion/import_uri_contributor.dart
+++ b/pkg/analysis_server/lib/src/services/completion/import_uri_contributor.dart
@@ -137,7 +137,9 @@
         String prefix = 'package:$pkgName/';
         _addSuggestion(prefix);
         for (Folder folder in folders) {
-          _addPackageFolderSuggestions(partial, prefix, folder);
+          if (folder.exists) {
+            _addPackageFolderSuggestions(partial, prefix, folder);
+          }
         }
       });
     }
diff --git a/pkg/analysis_server/lib/src/services/completion/keyword_contributor.dart b/pkg/analysis_server/lib/src/services/completion/keyword_contributor.dart
index 5414bcc..d4379d9 100644
--- a/pkg/analysis_server/lib/src/services/completion/keyword_contributor.dart
+++ b/pkg/analysis_server/lib/src/services/completion/keyword_contributor.dart
@@ -52,6 +52,23 @@
 
   @override
   visitBlock(Block node) {
+    if (entity is ExpressionStatement) {
+      Expression expression = (entity as ExpressionStatement).expression;
+      if (expression is SimpleIdentifier) {
+        Token token = expression.token;
+        Token previous = token.previous;
+        if (previous.isSynthetic) {
+          previous = previous.previous;
+        }
+        Token next = token.next;
+        if (next.isSynthetic) {
+          next = next.next;
+        }
+        if (previous.lexeme == ')' && next.lexeme == '{') {
+          _addSuggestion2(ASYNC);
+        }
+      }
+    }
     _addStatementKeywords(node);
   }
 
@@ -128,6 +145,11 @@
   }
 
   @override
+  visitExpression(Expression node) {
+    _addExpressionKeywords(node);
+  }
+
+  @override
   visitExpressionFunctionBody(ExpressionFunctionBody node) {
     if (entity == node.expression) {
       _addExpressionKeywords(node);
@@ -146,7 +168,9 @@
   @override
   visitFunctionExpression(FunctionExpression node) {
     if (entity == node.body) {
-      _addSuggestion2(ASYNC, relevance: DART_RELEVANCE_HIGH);
+      if (!node.body.isAsynchronous) {
+        _addSuggestion2(ASYNC, relevance: DART_RELEVANCE_HIGH);
+      }
       if (node.body is EmptyFunctionBody &&
           node.parent is FunctionDeclaration &&
           node.parent.parent is CompilationUnit) {
@@ -199,6 +223,25 @@
   }
 
   @override
+  visitPrefixedIdentifier(PrefixedIdentifier node) {
+    if (entity != node.identifier) {
+      _addExpressionKeywords(node);
+    }
+  }
+
+  @override
+  visitReturnStatement(ReturnStatement node) {
+    if (entity == node.expression) {
+      _addExpressionKeywords(node);
+    }
+  }
+
+  @override
+  visitStringLiteral(StringLiteral node) {
+    // ignored
+  }
+
+  @override
   visitSwitchStatement(SwitchStatement node) {
     if (entity == node.expression) {
       _addExpressionKeywords(node);
diff --git a/pkg/analysis_server/lib/src/services/completion/prefixed_element_contributor.dart b/pkg/analysis_server/lib/src/services/completion/prefixed_element_contributor.dart
index 296ca24..5abb208 100644
--- a/pkg/analysis_server/lib/src/services/completion/prefixed_element_contributor.dart
+++ b/pkg/analysis_server/lib/src/services/completion/prefixed_element_contributor.dart
@@ -73,7 +73,20 @@
       }
     }
     if (node is Expression) {
-      InterfaceTypeSuggestionBuilder.suggestionsFor(request, node.bestType);
+      String containingMethodName;
+      bool isSuper = node is SuperExpression;
+      if (isSuper) {
+        MethodDeclaration containingMethod =
+            node.getAncestor((p) => p is MethodDeclaration);
+        if (containingMethod != null) {
+          SimpleIdentifier id = containingMethod.name;
+          if (id != null) {
+            containingMethodName = id.name;
+          }
+        }
+      }
+      InterfaceTypeSuggestionBuilder.suggestionsFor(request, node.bestType,
+          isSuper: isSuper, containingMethodName: containingMethodName);
       return new Future.value(true);
     }
     return new Future.value(false);
diff --git a/pkg/analysis_server/lib/src/services/completion/suggestion_builder.dart b/pkg/analysis_server/lib/src/services/completion/suggestion_builder.dart
index 80ddd85..07ee074 100644
--- a/pkg/analysis_server/lib/src/services/completion/suggestion_builder.dart
+++ b/pkg/analysis_server/lib/src/services/completion/suggestion_builder.dart
@@ -294,7 +294,7 @@
    * Add a suggestion based upon the given element, provided that it is not
    * shadowed by a previously added suggestion.
    */
-  void addSuggestion(Element element) {
+  void addSuggestion(Element element, {int relevance: DART_RELEVANCE_DEFAULT}) {
     if (element.isPrivate) {
       LibraryElement elementLibrary = element.library;
       LibraryElement unitLibrary = request.unit.element.library;
@@ -339,22 +339,35 @@
       assert(false);
       return;
     }
-    CompletionSuggestion suggestion = createSuggestion(element, kind: kind);
+    CompletionSuggestion suggestion =
+        createSuggestion(element, kind: kind, relevance: relevance);
     if (suggestion != null) {
       request.addSuggestion(suggestion);
     }
   }
 
-  void _buildSuggestions(InterfaceType type, LibraryElement library) {
+  void _buildSuggestions(InterfaceType type, LibraryElement library,
+      bool isSuper, String containingMethodName) {
+    if (isSuper) {
+      // Suggest members from superclass if the target is "super"
+      type = type.superclass;
+      if (type == null) {
+        return;
+      }
+    }
     // Visit all of the types in the class hierarchy, collecting possible
     // completions.  If multiple elements are found that complete to the same
     // identifier, addSuggestion will discard all but the first (with a few
     // exceptions to handle getter/setter pairs).
-    for (InterfaceType targetType in _getTypeOrdering(type)) {
+    List<InterfaceType> types = _getTypeOrdering(type);
+    for (InterfaceType targetType in types) {
       for (MethodElement method in targetType.methods) {
         // Exclude static methods when completion on an instance
         if (!method.isStatic) {
-          addSuggestion(method);
+          addSuggestion(method,
+              relevance: method.name == containingMethodName
+                  ? DART_RELEVANCE_HIGH
+                  : DART_RELEVANCE_DEFAULT);
         }
       }
       for (PropertyAccessorElement propertyAccessor in targetType.accessors) {
@@ -412,7 +425,8 @@
   /**
    * Add suggestions for the visible members in the given interface
    */
-  static void suggestionsFor(DartCompletionRequest request, DartType type) {
+  static void suggestionsFor(DartCompletionRequest request, DartType type,
+      {bool isSuper: false, String containingMethodName: null}) {
     CompilationUnit compilationUnit =
         request.target.containingNode.getAncestor((n) => n is CompilationUnit);
     LibraryElement library = compilationUnit.element.library;
@@ -421,7 +435,7 @@
     }
     if (type is InterfaceType) {
       return new InterfaceTypeSuggestionBuilder(request)._buildSuggestions(
-          type, library);
+          type, library, isSuper, containingMethodName);
     }
   }
 }
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 dbb8255..5d03c83 100644
--- a/pkg/analysis_server/lib/src/services/correction/assist_internal.dart
+++ b/pkg/analysis_server/lib/src/services/correction/assist_internal.dart
@@ -72,8 +72,7 @@
 
   List<Assist> compute() {
     utils = new CorrectionUtils(unit);
-    node =
-        new NodeLocator.con2(selectionOffset, selectionEnd).searchWithin(unit);
+    node = new NodeLocator(selectionOffset, selectionEnd).searchWithin(unit);
     if (node == null) {
       return assists;
     }
@@ -1093,7 +1092,7 @@
       return;
     }
     int declOffset = element.nameOffset;
-    AstNode declNode = new NodeLocator.con1(declOffset).searchWithin(unit);
+    AstNode declNode = new NodeLocator(declOffset).searchWithin(unit);
     if (declNode != null &&
         declNode.parent is VariableDeclaration &&
         (declNode.parent as VariableDeclaration).name == declNode &&
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 9ae3c0e..25dfa1c 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
@@ -107,8 +107,8 @@
     errorLength = error.length;
     errorEnd = errorOffset + errorLength;
     errorRange = new SourceRange(errorOffset, errorLength);
-    node = new NodeLocator.con1(errorOffset).searchWithin(unit);
-    coveredNode = new NodeLocator.con2(errorOffset, errorOffset + errorLength)
+    node = new NodeLocator(errorOffset).searchWithin(unit);
+    coveredNode = new NodeLocator(errorOffset, errorOffset + errorLength)
         .searchWithin(unit);
     // analyze ErrorCode
     ErrorCode errorCode = error.errorCode;
@@ -813,7 +813,7 @@
       DartType parameterType = parameterElement.type;
       if (parameterType is InterfaceType && parameterType.isDartCoreFunction) {
         ExecutableElement element = new MethodElementImpl('', -1);
-        parameterType = new FunctionTypeImpl.con1(element);
+        parameterType = new FunctionTypeImpl(element);
       }
       if (parameterType is! FunctionType) {
         return;
diff --git a/pkg/analysis_server/lib/src/services/correction/util.dart b/pkg/analysis_server/lib/src/services/correction/util.dart
index ba7a858..67ab4db 100644
--- a/pkg/analysis_server/lib/src/services/correction/util.dart
+++ b/pkg/analysis_server/lib/src/services/correction/util.dart
@@ -442,7 +442,7 @@
       classElement.getAncestor((e) => e is CompilationUnitElement);
   CompilationUnit unit = getParsedUnit(unitElement);
   int offset = classElement.nameOffset;
-  AstNode classNameNode = new NodeLocator.con1(offset).searchWithin(unit);
+  AstNode classNameNode = new NodeLocator(offset).searchWithin(unit);
   if (classElement.isEnum) {
     return classNameNode.getAncestor((node) => node is EnumDeclaration);
   } else {
@@ -642,8 +642,7 @@
   /**
    * Returns the [AstNode] that encloses the given offset.
    */
-  AstNode findNode(int offset) =>
-      new NodeLocator.con1(offset).searchWithin(unit);
+  AstNode findNode(int offset) => new NodeLocator(offset).searchWithin(unit);
 
   /**
    * Returns names of elements that might conflict with a new local variable
diff --git a/pkg/analysis_server/lib/src/services/generated/util.dart b/pkg/analysis_server/lib/src/services/generated/util.dart
index 0650257..31a15c3 100644
--- a/pkg/analysis_server/lib/src/services/generated/util.dart
+++ b/pkg/analysis_server/lib/src/services/generated/util.dart
@@ -83,8 +83,7 @@
    */
   AstNode get coveredNode {
     if (_coveredNode == null) {
-      NodeLocator locator =
-          new NodeLocator.con2(selectionOffset, selectionOffset);
+      NodeLocator locator = new NodeLocator(selectionOffset, selectionOffset);
       _coveredNode = locator.searchWithin(compilationUnit);
     }
     return _coveredNode;
@@ -95,8 +94,8 @@
    */
   AstNode get coveringNode {
     if (_coveringNode == null) {
-      NodeLocator locator = new NodeLocator.con2(
-          selectionOffset, selectionOffset + selectionLength);
+      NodeLocator locator =
+          new NodeLocator(selectionOffset, selectionOffset + selectionLength);
       _coveringNode = locator.searchWithin(compilationUnit);
     }
     return _coveringNode;
@@ -935,8 +934,7 @@
   /**
    * @return the [AstNode] that encloses the given offset.
    */
-  AstNode findNode(int offset) =>
-      new NodeLocator.con1(offset).searchWithin(unit);
+  AstNode findNode(int offset) => new NodeLocator(offset).searchWithin(unit);
 
   /**
    * TODO(scheglov) replace with nodes once there will be [CompilationUnit.comments].
diff --git a/pkg/analysis_server/lib/src/services/index/index.dart b/pkg/analysis_server/lib/src/services/index/index.dart
index 4582ac8..00bfeab 100644
--- a/pkg/analysis_server/lib/src/services/index/index.dart
+++ b/pkg/analysis_server/lib/src/services/index/index.dart
@@ -224,7 +224,7 @@
   /**
    * An empty array of locations.
    */
-  static const List<LocationImpl> EMPTY_ARRAY = const <LocationImpl>[];
+  static const List<LocationImpl> EMPTY_LIST = const <LocationImpl>[];
 
   /**
    * The element containing this location.
diff --git a/pkg/analysis_server/lib/src/services/index/store/split_store.dart b/pkg/analysis_server/lib/src/services/index/store/split_store.dart
index bde1d08..594e18d 100644
--- a/pkg/analysis_server/lib/src/services/index/store/split_store.dart
+++ b/pkg/analysis_server/lib/src/services/index/store/split_store.dart
@@ -283,7 +283,7 @@
     // find LocationData(s)
     List<LocationData> locationDatas = _relations[key];
     if (locationDatas == null) {
-      return LocationImpl.EMPTY_ARRAY;
+      return LocationImpl.EMPTY_LIST;
     }
     // convert to Location(s)
     List<LocationImpl> locations = <LocationImpl>[];
@@ -733,7 +733,7 @@
       Future<List<LocationImpl>> locationsFuture = nodeFuture.then((node) {
         if (node == null) {
           // TODO(scheglov) remove node
-          return LocationImpl.EMPTY_ARRAY;
+          return LocationImpl.EMPTY_LIST;
         }
         return node.getRelationships(element, relationship);
       });
diff --git a/pkg/analysis_server/lib/src/services/refactoring/convert_method_to_getter.dart b/pkg/analysis_server/lib/src/services/refactoring/convert_method_to_getter.dart
index e0182cc..22adfa3 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/convert_method_to_getter.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/convert_method_to_getter.dart
@@ -124,7 +124,7 @@
       {
         CompilationUnit refUnit = refElement.unit;
         AstNode refNode =
-            new NodeLocator.con1(refRange.offset).searchWithin(refUnit);
+            new NodeLocator(refRange.offset).searchWithin(refUnit);
         invocation = refNode.getAncestor((node) => node is MethodInvocation);
       }
       // we need invocation
diff --git a/pkg/analysis_server/lib/src/services/refactoring/extract_local.dart b/pkg/analysis_server/lib/src/services/refactoring/extract_local.dart
index 8d7782c..3acc982 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/extract_local.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/extract_local.dart
@@ -319,7 +319,7 @@
   List<AstNode> _findNodes(List<SourceRange> ranges) {
     List<AstNode> nodes = <AstNode>[];
     for (SourceRange range in ranges) {
-      AstNode node = new NodeLocator.con1(range.offset).searchWithin(unit);
+      AstNode node = new NodeLocator(range.offset).searchWithin(unit);
       nodes.add(node);
     }
     return nodes;
@@ -402,7 +402,7 @@
     AstNode enclosingFunction;
     {
       AstNode selectionNode =
-          new NodeLocator.con1(selectionOffset).searchWithin(unit);
+          new NodeLocator(selectionOffset).searchWithin(unit);
       enclosingFunction = getEnclosingExecutableNode(selectionNode);
     }
     // visit function
diff --git a/pkg/analysis_server/lib/src/services/refactoring/extract_method.dart b/pkg/analysis_server/lib/src/services/refactoring/extract_method.dart
index 2f85e83..be9162d 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/extract_method.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/extract_method.dart
@@ -125,7 +125,7 @@
 
   @override
   String get refactoringName {
-    AstNode node = new NodeLocator.con1(selectionOffset).searchWithin(unit);
+    AstNode node = new NodeLocator(selectionOffset).searchWithin(unit);
     if (node != null &&
         node.getAncestor((node) => node is ClassDeclaration) != null) {
       return 'Extract Method';
diff --git a/pkg/analysis_server/lib/src/services/refactoring/inline_local.dart b/pkg/analysis_server/lib/src/services/refactoring/inline_local.dart
index 350517a..8ae9b94 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/inline_local.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/inline_local.dart
@@ -69,7 +69,7 @@
     RefactoringStatus result = new RefactoringStatus();
     // prepare variable
     {
-      AstNode offsetNode = new NodeLocator.con1(offset).searchWithin(unit);
+      AstNode offsetNode = new NodeLocator(offset).searchWithin(unit);
       if (offsetNode is SimpleIdentifier) {
         Element element = offsetNode.staticElement;
         if (element is LocalVariableElement) {
diff --git a/pkg/analysis_server/lib/src/services/refactoring/inline_method.dart b/pkg/analysis_server/lib/src/services/refactoring/inline_method.dart
index fb8791f..f3100ef 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/inline_method.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/inline_method.dart
@@ -324,7 +324,7 @@
     RefactoringStatus fatalStatus = new RefactoringStatus.fatal(
         'Method declaration or reference must be selected to activate this refactoring.');
     // prepare selected SimpleIdentifier
-    AstNode node = new NodeLocator.con1(offset).searchWithin(unit);
+    AstNode node = new NodeLocator(offset).searchWithin(unit);
     if (node is! SimpleIdentifier) {
       return fatalStatus;
     }
diff --git a/pkg/analysis_server/lib/src/services/refactoring/rename_import.dart b/pkg/analysis_server/lib/src/services/refactoring/rename_import.dart
index 6f910a9..608eb73 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/rename_import.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/rename_import.dart
@@ -101,7 +101,7 @@
   SimpleIdentifier _getInterpolationIdentifier(SourceReference reference) {
     Source source = reference.element.source;
     CompilationUnit unit = context.parseCompilationUnit(source);
-    NodeLocator nodeLocator = new NodeLocator.con1(reference.range.offset);
+    NodeLocator nodeLocator = new NodeLocator(reference.range.offset);
     AstNode node = nodeLocator.searchWithin(unit);
     if (node is SimpleIdentifier) {
       AstNode parent = node.parent;
diff --git a/pkg/analysis_server/test/abstract_single_unit.dart b/pkg/analysis_server/test/abstract_single_unit.dart
index 6d0e7a0..757c819 100644
--- a/pkg/analysis_server/test/abstract_single_unit.dart
+++ b/pkg/analysis_server/test/abstract_single_unit.dart
@@ -49,7 +49,7 @@
   }
 
   AstNode findNodeAtOffset(int offset, [Predicate<AstNode> predicate]) {
-    AstNode result = new NodeLocator.con1(offset).searchWithin(testUnit);
+    AstNode result = new NodeLocator(offset).searchWithin(testUnit);
     if (result != null && predicate != null) {
       result = result.getAncestor(predicate);
     }
diff --git a/pkg/analysis_server/test/completion_test.dart b/pkg/analysis_server/test/completion_test.dart
index 1101d88..0d96743 100644
--- a/pkg/analysis_server/test/completion_test.dart
+++ b/pkg/analysis_server/test/completion_test.dart
@@ -1421,7 +1421,7 @@
   main() {
     super.!1
   }
-}''', <String>["1+fa", "1-fb", "1+ma", "1-mb"], failingTests: '1');
+}''', <String>["1+fa", "1-fb", "1+ma", "1-mb"]);
 
     buildTests('testCompletion_superConstructorInvocation_noNamePrefix', '''
 class A {
diff --git a/pkg/analysis_server/test/mocks.dart b/pkg/analysis_server/test/mocks.dart
index 94bc8c6..1aa8f47 100644
--- a/pkg/analysis_server/test/mocks.dart
+++ b/pkg/analysis_server/test/mocks.dart
@@ -21,7 +21,6 @@
 import 'package:analyzer/src/generated/element.dart';
 import 'package:analyzer/src/generated/engine.dart';
 import 'package:analyzer/src/generated/source.dart';
-import 'package:matcher/matcher.dart';
 import 'package:typed_mock/typed_mock.dart';
 import 'package:unittest/unittest.dart';
 
diff --git a/pkg/analysis_server/test/services/completion/completion_test_util.dart b/pkg/analysis_server/test/services/completion/completion_test_util.dart
index 3e44f63..6e76a4e 100644
--- a/pkg/analysis_server/test/services/completion/completion_test_util.dart
+++ b/pkg/analysis_server/test/services/completion/completion_test_util.dart
@@ -634,7 +634,7 @@
 
   CompletionSuggestion assertSuggestInvocationMethod(
       String name, String declaringType, String returnType,
-      [int relevance = DART_RELEVANCE_DEFAULT]) {
+      {int relevance: DART_RELEVANCE_DEFAULT}) {
     if (contributor is PrefixedElementContributor) {
       return assertSuggestMethod(name, declaringType, returnType,
           relevance: relevance);
diff --git a/pkg/analysis_server/test/services/completion/import_uri_contributor_test.dart b/pkg/analysis_server/test/services/completion/import_uri_contributor_test.dart
index bfea35a..e584c4d 100644
--- a/pkg/analysis_server/test/services/completion/import_uri_contributor_test.dart
+++ b/pkg/analysis_server/test/services/completion/import_uri_contributor_test.dart
@@ -164,6 +164,18 @@
         csKind: CompletionSuggestionKind.IMPORT);
   }
 
+  test_import_package_missing_lib() {
+    var pkgSrc = addPackageSource('bar', 'bar.dart', 'library bar;');
+    provider.deleteFolder(dirname(pkgSrc.fullName));
+    addTestSource('import "p^" class');
+    computeFast();
+    expect(request.replacementOffset, completionOffset - 1);
+    expect(request.replacementLength, 1);
+    assertSuggest('package:', csKind: CompletionSuggestionKind.IMPORT);
+    assertSuggest('package:bar/', csKind: CompletionSuggestionKind.IMPORT);
+    assertNotSuggested('package:bar/bar.dart');
+  }
+
   test_outside_import() {
     addTestSource('import ^"d" import');
     computeFast();
diff --git a/pkg/analysis_server/test/services/completion/keyword_contributor_test.dart b/pkg/analysis_server/test/services/completion/keyword_contributor_test.dart
index 46940bf..9569141 100644
--- a/pkg/analysis_server/test/services/completion/keyword_contributor_test.dart
+++ b/pkg/analysis_server/test/services/completion/keyword_contributor_test.dart
@@ -258,6 +258,25 @@
         relevance: DART_RELEVANCE_HIGH);
   }
 
+  test_anonymous_function_async() {
+    addTestSource('main() {foo(() ^ {}}}');
+    expect(computeFast(), isTrue);
+    assertSuggestKeywords([],
+        pseudoKeywords: ['async'], relevance: DART_RELEVANCE_HIGH);
+  }
+
+  test_anonymous_function_async2() {
+    addTestSource('main() {foo(() a^ {}}}');
+    expect(computeFast(), isTrue);
+    assertSuggestKeywords(STMT_START_OUTSIDE_CLASS, pseudoKeywords: ['async']);
+  }
+
+  test_anonymous_function_async3() {
+    addTestSource('main() {foo(() async ^ {}}}');
+    expect(computeFast(), isTrue);
+    assertSuggestKeywords([]);
+  }
+
   test_argument() {
     addTestSource('main() {foo(^);}');
     expect(computeFast(), isTrue);
@@ -880,6 +899,24 @@
     assertSuggestKeywords(EXPRESSION_START_INSTANCE, pseudoKeywords: ['await']);
   }
 
+  test_method_body_expression1() {
+    addTestSource('class A { foo() {return b == true ? ^}}');
+    expect(computeFast(), isTrue);
+    assertSuggestKeywords(EXPRESSION_START_INSTANCE);
+  }
+
+  test_method_body_expression2() {
+    addTestSource('class A { foo() {return b == true ? 1 : ^}}');
+    expect(computeFast(), isTrue);
+    assertSuggestKeywords(EXPRESSION_START_INSTANCE);
+  }
+
+  test_method_body_return() {
+    addTestSource('class A { foo() {return ^}}');
+    expect(computeFast(), isTrue);
+    assertSuggestKeywords(EXPRESSION_START_INSTANCE);
+  }
+
   test_method_param() {
     addTestSource('class A { foo(^) {});}');
     expect(computeFast(), isTrue);
diff --git a/pkg/analysis_server/test/services/completion/prefixed_element_contributor_test.dart b/pkg/analysis_server/test/services/completion/prefixed_element_contributor_test.dart
index 5c4bfc8..8015d8f 100644
--- a/pkg/analysis_server/test/services/completion/prefixed_element_contributor_test.dart
+++ b/pkg/analysis_server/test/services/completion/prefixed_element_contributor_test.dart
@@ -523,4 +523,46 @@
       assertSuggestMethod('f', 'Base', 'void');
     });
   }
+
+  test_super() {
+    // SimpleIdentifier  MethodInvocation  ExpressionStatement
+    addTestSource('''
+class C3 {
+  int fi3;
+  static int fs3;
+  m() {}
+  mi3() {}
+  static ms3() {}
+}
+class C2 {
+  int fi2;
+  static int fs2;
+  m() {}
+  mi2() {}
+  static ms2() {}
+}
+class C1 extends C2 implements C3 {
+  int fi1;
+  static int fs1;
+  m() {super.^}
+  mi1() {}
+  static ms1() {}
+}''');
+    return computeFull((bool result) {
+      assertNotSuggested('fi1');
+      assertNotSuggested('fs1');
+      assertNotSuggested('mi1');
+      assertNotSuggested('ms1');
+      assertSuggestInvocationField('fi2', 'int');
+      assertNotSuggested('fs2');
+      assertSuggestInvocationMethod('mi2', 'C2', null);
+      assertNotSuggested('ms2');
+      assertSuggestInvocationMethod('m', 'C2', null,
+          relevance: DART_RELEVANCE_HIGH);
+      assertNotSuggested('fi3');
+      assertNotSuggested('fs3');
+      assertNotSuggested('mi3');
+      assertNotSuggested('ms3');
+    });
+  }
 }
diff --git a/pkg/analysis_server/test/services/correction/source_range_test.dart b/pkg/analysis_server/test/services/correction/source_range_test.dart
index 41bb641..4754b56 100644
--- a/pkg/analysis_server/test/services/correction/source_range_test.dart
+++ b/pkg/analysis_server/test/services/correction/source_range_test.dart
@@ -46,7 +46,7 @@
 
   void test_rangeError() {
     AnalysisError error =
-        new AnalysisError.con2(null, 10, 5, ParserErrorCode.CONST_CLASS, []);
+        new AnalysisError(null, 10, 5, ParserErrorCode.CONST_CLASS, []);
     expect(rangeError(error), new SourceRange(10, 5));
   }
 
diff --git a/pkg/analysis_server/test/src/utilities/change_builder_dart_test.dart b/pkg/analysis_server/test/src/utilities/change_builder_dart_test.dart
index 3e73a39..513fbd8 100644
--- a/pkg/analysis_server/test/src/utilities/change_builder_dart_test.dart
+++ b/pkg/analysis_server/test/src/utilities/change_builder_dart_test.dart
@@ -5,9 +5,7 @@
 library analysis_server.test.src.utilities.change_builder_dart_test;
 
 import 'package:analysis_server/src/protocol.dart';
-import 'package:analysis_server/src/utilities/change_builder_core.dart';
 import 'package:analysis_server/src/utilities/change_builder_dart.dart';
-import 'package:analysis_server/utilities/change_builder_core.dart';
 import 'package:analysis_server/utilities/change_builder_dart.dart';
 import 'package:analyzer/src/generated/ast.dart';
 import 'package:analyzer/src/generated/source.dart';
@@ -15,7 +13,6 @@
 import 'package:unittest/unittest.dart';
 
 import '../../abstract_context.dart';
-import '../../domain_execution_test.dart';
 
 main() {
   groupSep = ' | ';
diff --git a/pkg/analysis_server/tool/spec/codegen_analysis_server.dart b/pkg/analysis_server/tool/spec/codegen_analysis_server.dart
index 497460a..db90acc 100644
--- a/pkg/analysis_server/tool/spec/codegen_analysis_server.dart
+++ b/pkg/analysis_server/tool/spec/codegen_analysis_server.dart
@@ -12,7 +12,7 @@
 import 'codegen_tools.dart';
 
 final GeneratedFile target = javaGeneratedFile(
-    '../../../../editor/tools/plugins/com.google.dart.server/src/com/google/dart/server/generated/AnalysisServer.java',
+    'generated/java/AnalysisServer.java',
     (Api api) => new CodegenAnalysisServer(api));
 
 /**
diff --git a/pkg/analysis_server/tool/spec/codegen_java_types.dart b/pkg/analysis_server/tool/spec/codegen_java_types.dart
index 16bfade..b6915b1 100644
--- a/pkg/analysis_server/tool/spec/codegen_java_types.dart
+++ b/pkg/analysis_server/tool/spec/codegen_java_types.dart
@@ -15,8 +15,7 @@
 import 'from_html.dart';
 import 'implied_types.dart';
 
-final String pathToGenTypes =
-    '../../../../editor/tools/plugins/com.google.dart.server/src/com/google/dart/server/generated/types/';
+final String pathToGenTypes = 'generated/java/types/';
 
 final GeneratedDirectory targetDir = new GeneratedDirectory(pathToGenTypes, () {
   Api api = readApi();
diff --git a/pkg/analysis_server/tool/spec/generated/java/AnalysisServer.java b/pkg/analysis_server/tool/spec/generated/java/AnalysisServer.java
new file mode 100644
index 0000000..2f39f5e
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/AnalysisServer.java
@@ -0,0 +1,520 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated;
+
+import com.google.dart.server.*;
+import com.google.dart.server.generated.types.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * The interface {@code AnalysisServer} defines the behavior of objects that interface to an
+ * analysis server.
+ *
+ * @coverage dart.server
+ */
+public interface AnalysisServer {
+
+  /**
+   * Add the given listener to the list of listeners that will receive notification when new
+   * analysis results become available.
+   *
+   * @param listener the listener to be added
+   */
+  public void addAnalysisServerListener(AnalysisServerListener listener);
+
+  /**
+   * Add the given listener to the list of listeners that will receive notification when the server
+   * is not active
+   *
+   * @param listener the listener to be added
+   */
+  public void addStatusListener(AnalysisServerStatusListener listener);
+
+  /**
+   * {@code analysis.getErrors}
+   *
+   * Return the errors associated with the given file. If the errors for the given file have not yet
+   * been computed, or the most recently computed errors for the given file are out of date, then the
+   * response for this request will be delayed until they have been computed. If some or all of the
+   * errors for the file cannot be computed, then the subset of the errors that can be computed will
+   * be returned and the response will contain an error to indicate why the errors could not be
+   * computed. If the content of the file changes after this request was received but before a
+   * response could be sent, then an error of type CONTENT_MODIFIED will be generated.
+   *
+   * This request is intended to be used by clients that cannot asynchronously apply updated error
+   * information. Clients that can apply error information as it becomes available should use the
+   * information provided by the 'analysis.errors' notification.
+   *
+   * If a request is made for a file which does not exist, or which is not currently subject to
+   * analysis (e.g. because it is not associated with any analysis root specified to
+   * analysis.setAnalysisRoots), an error of type GET_ERRORS_INVALID_FILE will be generated.
+   *
+   * @param file The file for which errors are being requested.
+   */
+  public void analysis_getErrors(String file, GetErrorsConsumer consumer);
+
+  /**
+   * {@code analysis.getHover}
+   *
+   * Return the hover information associate with the given location. If some or all of the hover
+   * information is not available at the time this request is processed the information will be
+   * omitted from the response.
+   *
+   * @param file The file in which hover information is being requested.
+   * @param offset The offset for which hover information is being requested.
+   */
+  public void analysis_getHover(String file, int offset, GetHoverConsumer consumer);
+
+  /**
+   * {@code analysis.getLibraryDependencies}
+   *
+   * Return library dependency information for use in client-side indexing and package URI
+   * resolution.
+   */
+  public void analysis_getLibraryDependencies(GetLibraryDependenciesConsumer consumer);
+
+  /**
+   * {@code analysis.getNavigation}
+   *
+   * Return the navigation information associated with the given region of the given file. If the
+   * navigation information for the given file has not yet been computed, or the most recently
+   * computed navigation information for the given file is out of date, then the response for this
+   * request will be delayed until it has been computed. If the content of the file changes after
+   * this request was received but before a response could be sent, then an error of type
+   * CONTENT_MODIFIED will be generated.
+   *
+   * If a navigation region overlaps (but extends either before or after) the given region of the
+   * file it will be included in the result. This means that it is theoretically possible to get the
+   * same navigation region in response to multiple requests. Clients can avoid this by always
+   * choosing a region that starts at the beginning of a line and ends at the end of a (possibly
+   * different) line in the file.
+   *
+   * @param file The file in which navigation information is being requested.
+   * @param offset The offset of the region for which navigation information is being requested.
+   * @param length The length of the region for which navigation information is being requested.
+   */
+  public void analysis_getNavigation(String file, int offset, int length, GetNavigationConsumer consumer);
+
+  /**
+   * {@code analysis.reanalyze}
+   *
+   * Force the re-analysis of everything contained in the specified analysis roots. This will cause
+   * all previously computed analysis results to be discarded and recomputed, and will cause all
+   * subscribed notifications to be re-sent.
+   *
+   * If no analysis roots are provided, then all current analysis roots will be re-analyzed. If an
+   * empty list of analysis roots is provided, then nothing will be re-analyzed. If the list contains
+   * one or more paths that are not currently analysis roots, then an error of type
+   * INVALID_ANALYSIS_ROOT will be generated.
+   *
+   * @param roots A list of the analysis roots that are to be re-analyzed.
+   */
+  public void analysis_reanalyze(List<String> roots);
+
+  /**
+   * {@code analysis.setAnalysisRoots}
+   *
+   * Sets the root paths used to determine which files to analyze. The set of files to be analyzed
+   * are all of the files in one of the root paths that are not either explicitly or implicitly
+   * excluded. A file is explicitly excluded if it is in one of the excluded paths. A file is
+   * implicitly excluded if it is in a subdirectory of one of the root paths where the name of the
+   * subdirectory starts with a period (that is, a hidden directory).
+   *
+   * Note that this request determines the set of requested analysis roots. The actual set of
+   * analysis roots at any given time is the intersection of this set with the set of files and
+   * directories actually present on the filesystem. When the filesystem changes, the actual set of
+   * analysis roots is automatically updated, but the set of requested analysis roots is unchanged.
+   * This means that if the client sets an analysis root before the root becomes visible to server in
+   * the filesystem, there is no error; once the server sees the root in the filesystem it will start
+   * analyzing it. Similarly, server will stop analyzing files that are removed from the file system
+   * but they will remain in the set of requested roots.
+   *
+   * If an included path represents a file, then server will look in the directory containing the
+   * file for a pubspec.yaml file. If none is found, then the parents of the directory will be
+   * searched until such a file is found or the root of the file system is reached. If such a file is
+   * found, it will be used to resolve package: URI’s within the file.
+   *
+   * @param included A list of the files and directories that should be analyzed.
+   * @param excluded A list of the files and directories within the included directories that should
+   *         not be analyzed.
+   * @param packageRoots A mapping from source directories to target directories that should override
+   *         the normal package: URI resolution mechanism. The analyzer will behave as though each
+   *         source directory in the map contains a special pubspec.yaml file which resolves any
+   *         package: URI to the corresponding path within the target directory. The effect is the
+   *         same as specifying the target directory as a "--package_root" parameter to the Dart VM
+   *         when executing any Dart file inside the source directory. Files in any directories that
+   *         are not overridden by this mapping have their package: URI's resolved using the normal
+   *         pubspec.yaml mechanism. If this field is absent, or the empty map is specified, that
+   *         indicates that the normal pubspec.yaml mechanism should always be used.
+   */
+  public void analysis_setAnalysisRoots(List<String> included, List<String> excluded, Map<String, String> packageRoots);
+
+  /**
+   * {@code analysis.setPriorityFiles}
+   *
+   * Set the priority files to the files in the given list. A priority file is a file that is given
+   * priority when scheduling which analysis work to do first. The list typically contains those
+   * files that are visible to the user and those for which analysis results will have the biggest
+   * impact on the user experience. The order of the files within the list is significant: the first
+   * file will be given higher priority than the second, the second higher priority than the third,
+   * and so on.
+   *
+   * Note that this request determines the set of requested priority files. The actual set of
+   * priority files is the intersection of the requested set of priority files with the set of files
+   * currently subject to analysis. (See analysis.setSubscriptions for a description of files that
+   * are subject to analysis.)
+   *
+   * If a requested priority file is a directory it is ignored, but remains in the set of requested
+   * priority files so that if it later becomes a file it can be included in the set of actual
+   * priority files.
+   *
+   * @param files The files that are to be a priority for analysis.
+   */
+  public void analysis_setPriorityFiles(List<String> files);
+
+  /**
+   * {@code analysis.setSubscriptions}
+   *
+   * Subscribe for services. All previous subscriptions are replaced by the current set of
+   * subscriptions. If a given service is not included as a key in the map then no files will be
+   * subscribed to the service, exactly as if the service had been included in the map with an
+   * explicit empty list of files.
+   *
+   * Note that this request determines the set of requested subscriptions. The actual set of
+   * subscriptions at any given time is the intersection of this set with the set of files currently
+   * subject to analysis. The files currently subject to analysis are the set of files contained
+   * within an actual analysis root but not excluded, plus all of the files transitively reachable
+   * from those files via import, export and part directives. (See analysis.setAnalysisRoots for an
+   * explanation of how the actual analysis roots are determined.) When the actual analysis roots
+   * change, the actual set of subscriptions is automatically updated, but the set of requested
+   * subscriptions is unchanged.
+   *
+   * If a requested subscription is a directory it is ignored, but remains in the set of requested
+   * subscriptions so that if it later becomes a file it can be included in the set of actual
+   * subscriptions.
+   *
+   * It is an error if any of the keys in the map are not valid services. If there is an error, then
+   * the existing subscriptions will remain unchanged.
+   *
+   * @param subscriptions A table mapping services to a list of the files being subscribed to the
+   *         service.
+   */
+  public void analysis_setSubscriptions(Map<String, List<String>> subscriptions);
+
+  /**
+   * {@code analysis.updateContent}
+   *
+   * Update the content of one or more files. Files that were previously updated but not included in
+   * this update remain unchanged. This effectively represents an overlay of the filesystem. The
+   * files whose content is overridden are therefore seen by server as being files with the given
+   * content, even if the files do not exist on the filesystem or if the file path represents the
+   * path to a directory on the filesystem.
+   *
+   * @param files A table mapping the files whose content has changed to a description of the content
+   *         change.
+   */
+  public void analysis_updateContent(Map<String, Object> files, UpdateContentConsumer consumer);
+
+  /**
+   * {@code analysis.updateOptions}
+   *
+   * Update the options controlling analysis based on the given set of options. Any options that are
+   * not included in the analysis options will not be changed. If there are options in the analysis
+   * options that are not valid, they will be silently ignored.
+   *
+   * @param options The options that are to be used to control analysis.
+   */
+  public void analysis_updateOptions(AnalysisOptions options);
+
+  /**
+   * {@code completion.getSuggestions}
+   *
+   * Request that completion suggestions for the given offset in the given file be returned.
+   *
+   * @param file The file containing the point at which suggestions are to be made.
+   * @param offset The offset within the file at which suggestions are to be made.
+   */
+  public void completion_getSuggestions(String file, int offset, GetSuggestionsConsumer consumer);
+
+  /**
+   * {@code edit.format}
+   *
+   * Format the contents of a single file. The currently selected region of text is passed in so that
+   * the selection can be preserved across the formatting operation. The updated selection will be as
+   * close to matching the original as possible, but whitespace at the beginning or end of the
+   * selected region will be ignored. If preserving selection information is not required, zero (0)
+   * can be specified for both the selection offset and selection length.
+   *
+   * If a request is made for a file which does not exist, or which is not currently subject to
+   * analysis (e.g. because it is not associated with any analysis root specified to
+   * analysis.setAnalysisRoots), an error of type FORMAT_INVALID_FILE will be generated. If the
+   * source contains syntax errors, an error of type FORMAT_WITH_ERRORS will be generated.
+   *
+   * @param file The file containing the code to be formatted.
+   * @param selectionOffset The offset of the current selection in the file.
+   * @param selectionLength The length of the current selection in the file.
+   */
+  public void edit_format(String file, int selectionOffset, int selectionLength, FormatConsumer consumer);
+
+  /**
+   * {@code edit.getAssists}
+   *
+   * Return the set of assists that are available at the given location. An assist is distinguished
+   * from a refactoring primarily by the fact that it affects a single file and does not require user
+   * input in order to be performed.
+   *
+   * @param file The file containing the code for which assists are being requested.
+   * @param offset The offset of the code for which assists are being requested.
+   * @param length The length of the code for which assists are being requested.
+   */
+  public void edit_getAssists(String file, int offset, int length, GetAssistsConsumer consumer);
+
+  /**
+   * {@code edit.getAvailableRefactorings}
+   *
+   * Get a list of the kinds of refactorings that are valid for the given selection in the given
+   * file.
+   *
+   * @param file The file containing the code on which the refactoring would be based.
+   * @param offset The offset of the code on which the refactoring would be based.
+   * @param length The length of the code on which the refactoring would be based.
+   */
+  public void edit_getAvailableRefactorings(String file, int offset, int length, GetAvailableRefactoringsConsumer consumer);
+
+  /**
+   * {@code edit.getFixes}
+   *
+   * Return the set of fixes that are available for the errors at a given offset in a given file.
+   *
+   * @param file The file containing the errors for which fixes are being requested.
+   * @param offset The offset used to select the errors for which fixes will be returned.
+   */
+  public void edit_getFixes(String file, int offset, GetFixesConsumer consumer);
+
+  /**
+   * {@code edit.getRefactoring}
+   *
+   * Get the changes required to perform a refactoring.
+   *
+   * If another refactoring request is received during the processing of this one, an error of type
+   * REFACTORING_REQUEST_CANCELLED will be generated.
+   *
+   * @param kind The kind of refactoring to be performed.
+   * @param file The file containing the code involved in the refactoring.
+   * @param offset The offset of the region involved in the refactoring.
+   * @param length The length of the region involved in the refactoring.
+   * @param validateOnly True if the client is only requesting that the values of the options be
+   *         validated and no change be generated.
+   * @param options Data used to provide values provided by the user. The structure of the data is
+   *         dependent on the kind of refactoring being performed. The data that is expected is
+   *         documented in the section titled Refactorings, labeled as “Options”. This field can be
+   *         omitted if the refactoring does not require any options or if the values of those
+   *         options are not known.
+   */
+  public void edit_getRefactoring(String kind, String file, int offset, int length, boolean validateOnly, RefactoringOptions options, GetRefactoringConsumer consumer);
+
+  /**
+   * {@code edit.sortMembers}
+   *
+   * Sort all of the directives, unit and class members of the given Dart file.
+   *
+   * If a request is made for a file that does not exist, does not belong to an analysis root or is
+   * not a Dart file, SORT_MEMBERS_INVALID_FILE will be generated.
+   *
+   * If the Dart file has scan or parse errors, SORT_MEMBERS_PARSE_ERRORS will be generated.
+   *
+   * @param file The Dart file to sort.
+   */
+  public void edit_sortMembers(String file, SortMembersConsumer consumer);
+
+  /**
+   * {@code execution.createContext}
+   *
+   * Create an execution context for the executable file with the given path. The context that is
+   * created will persist until execution.deleteContext is used to delete it. Clients, therefore, are
+   * responsible for managing the lifetime of execution contexts.
+   *
+   * @param contextRoot The path of the Dart or HTML file that will be launched, or the path of the
+   *         directory containing the file.
+   */
+  public void execution_createContext(String contextRoot, CreateContextConsumer consumer);
+
+  /**
+   * {@code execution.deleteContext}
+   *
+   * Delete the execution context with the given identifier. The context id is no longer valid after
+   * this command. The server is allowed to re-use ids when they are no longer valid.
+   *
+   * @param id The identifier of the execution context that is to be deleted.
+   */
+  public void execution_deleteContext(String id);
+
+  /**
+   * {@code execution.mapUri}
+   *
+   * Map a URI from the execution context to the file that it corresponds to, or map a file to the
+   * URI that it corresponds to in the execution context.
+   *
+   * Exactly one of the file and uri fields must be provided. If both fields are provided, then an
+   * error of type INVALID_PARAMETER will be generated. Similarly, if neither field is provided, then
+   * an error of type INVALID_PARAMETER will be generated.
+   *
+   * If the file field is provided and the value is not the path of a file (either the file does not
+   * exist or the path references something other than a file), then an error of type
+   * INVALID_PARAMETER will be generated.
+   *
+   * If the uri field is provided and the value is not a valid URI or if the URI references something
+   * that is not a file (either a file that does not exist or something other than a file), then an
+   * error of type INVALID_PARAMETER will be generated.
+   *
+   * If the contextRoot used to create the execution context does not exist, then an error of type
+   * INVALID_EXECUTION_CONTEXT will be generated.
+   *
+   * @param id The identifier of the execution context in which the URI is to be mapped.
+   * @param file The path of the file to be mapped into a URI.
+   * @param uri The URI to be mapped into a file path.
+   */
+  public void execution_mapUri(String id, String file, String uri, MapUriConsumer consumer);
+
+  /**
+   * {@code execution.setSubscriptions}
+   *
+   * Subscribe for services. All previous subscriptions are replaced by the given set of services.
+   *
+   * It is an error if any of the elements in the list are not valid services. If there is an error,
+   * then the current subscriptions will remain unchanged.
+   *
+   * @param subscriptions A list of the services being subscribed to.
+   */
+  public void execution_setSubscriptions(List<String> subscriptions);
+
+  /**
+   * Return {@code true} if the socket is open.
+   */
+  public boolean isSocketOpen();
+
+  /**
+   * Remove the given listener from the list of listeners that will receive notification when new
+     * analysis results become available.
+   *
+   * @param listener the listener to be removed
+   */
+  public void removeAnalysisServerListener(AnalysisServerListener listener);
+
+  /**
+   * {@code search.findElementReferences}
+   *
+   * Perform a search for references to the element defined or referenced at the given offset in the
+   * given file.
+   *
+   * An identifier is returned immediately, and individual results will be returned via the
+   * search.results notification as they become available.
+   *
+   * @param file The file containing the declaration of or reference to the element used to define
+   *         the search.
+   * @param offset The offset within the file of the declaration of or reference to the element.
+   * @param includePotential True if potential matches are to be included in the results.
+   */
+  public void search_findElementReferences(String file, int offset, boolean includePotential, FindElementReferencesConsumer consumer);
+
+  /**
+   * {@code search.findMemberDeclarations}
+   *
+   * Perform a search for declarations of members whose name is equal to the given name.
+   *
+   * An identifier is returned immediately, and individual results will be returned via the
+   * search.results notification as they become available.
+   *
+   * @param name The name of the declarations to be found.
+   */
+  public void search_findMemberDeclarations(String name, FindMemberDeclarationsConsumer consumer);
+
+  /**
+   * {@code search.findMemberReferences}
+   *
+   * Perform a search for references to members whose name is equal to the given name. This search
+   * does not check to see that there is a member defined with the given name, so it is able to find
+   * references to undefined members as well.
+   *
+   * An identifier is returned immediately, and individual results will be returned via the
+   * search.results notification as they become available.
+   *
+   * @param name The name of the references to be found.
+   */
+  public void search_findMemberReferences(String name, FindMemberReferencesConsumer consumer);
+
+  /**
+   * {@code search.findTopLevelDeclarations}
+   *
+   * Perform a search for declarations of top-level elements (classes, typedefs, getters, setters,
+   * functions and fields) whose name matches the given pattern.
+   *
+   * An identifier is returned immediately, and individual results will be returned via the
+   * search.results notification as they become available.
+   *
+   * @param pattern The regular expression used to match the names of the declarations to be found.
+   */
+  public void search_findTopLevelDeclarations(String pattern, FindTopLevelDeclarationsConsumer consumer);
+
+  /**
+   * {@code search.getTypeHierarchy}
+   *
+   * Return the type hierarchy of the class declared or referenced at the given location.
+   *
+   * @param file The file containing the declaration or reference to the type for which a hierarchy
+   *         is being requested.
+   * @param offset The offset of the name of the type within the file.
+   */
+  public void search_getTypeHierarchy(String file, int offset, GetTypeHierarchyConsumer consumer);
+
+  /**
+   * {@code server.getVersion}
+   *
+   * Return the version number of the analysis server.
+   */
+  public void server_getVersion(GetVersionConsumer consumer);
+
+  /**
+   * {@code server.setSubscriptions}
+   *
+   * Subscribe for services. All previous subscriptions are replaced by the given set of services.
+   *
+   * It is an error if any of the elements in the list are not valid services. If there is an error,
+   * then the current subscriptions will remain unchanged.
+   *
+   * @param subscriptions A list of the services being subscribed to.
+   */
+  public void server_setSubscriptions(List<String> subscriptions);
+
+  /**
+   * {@code server.shutdown}
+   *
+   * Cleanly shutdown the analysis server. Requests that are received after this request will not be
+   * processed. Requests that were received before this request, but for which a response has not yet
+   * been sent, will not be responded to. No further responses or notifications will be sent after
+   * the response to this request has been sent.
+   */
+  public void server_shutdown();
+
+  /**
+   * Start the analysis server.
+   */
+  public void start() throws Exception;
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/AddContentOverlay.java b/pkg/analysis_server/tool/spec/generated/java/types/AddContentOverlay.java
new file mode 100644
index 0000000..3ffc75f
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/AddContentOverlay.java
@@ -0,0 +1,132 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * A directive to begin overlaying the contents of a file. The supplied content will be used for
+ * analysis in place of the file contents in the filesystem.
+ *
+ * If this directive is used on a file that already has a file content overlay, the old overlay is
+ * discarded and replaced with the new one.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class AddContentOverlay {
+
+  public static final AddContentOverlay[] EMPTY_ARRAY = new AddContentOverlay[0];
+
+  public static final List<AddContentOverlay> EMPTY_LIST = Lists.newArrayList();
+
+  private final String type;
+
+  /**
+   * The new content of the file.
+   */
+  private final String content;
+
+  /**
+   * Constructor for {@link AddContentOverlay}.
+   */
+  public AddContentOverlay(String content) {
+    this.type = "add";
+    this.content = content;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof AddContentOverlay) {
+      AddContentOverlay other = (AddContentOverlay) obj;
+      return
+        ObjectUtilities.equals(other.type, type) &&
+        ObjectUtilities.equals(other.content, content);
+    }
+    return false;
+  }
+
+  public static AddContentOverlay fromJson(JsonObject jsonObject) {
+    String type = jsonObject.get("type").getAsString();
+    String content = jsonObject.get("content").getAsString();
+    return new AddContentOverlay(content);
+  }
+
+  public static List<AddContentOverlay> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<AddContentOverlay> list = new ArrayList<AddContentOverlay>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * The new content of the file.
+   */
+  public String getContent() {
+    return content;
+  }
+
+  public String getType() {
+    return type;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(type);
+    builder.append(content);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("type", type);
+    jsonObject.addProperty("content", content);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("type=");
+    builder.append(type + ", ");
+    builder.append("content=");
+    builder.append(content);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/AnalysisError.java b/pkg/analysis_server/tool/spec/generated/java/types/AnalysisError.java
new file mode 100644
index 0000000..c9b75e8
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/AnalysisError.java
@@ -0,0 +1,199 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * An indication of an error, warning, or hint that was produced by the analysis.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class AnalysisError {
+
+  public static final AnalysisError[] EMPTY_ARRAY = new AnalysisError[0];
+
+  public static final List<AnalysisError> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The severity of the error.
+   */
+  private final String severity;
+
+  /**
+   * The type of the error.
+   */
+  private final String type;
+
+  /**
+   * The location associated with the error.
+   */
+  private final Location location;
+
+  /**
+   * The message to be displayed for this error. The message should indicate what is wrong with the
+   * code and why it is wrong.
+   */
+  private final String message;
+
+  /**
+   * The correction message to be displayed for this error. The correction message should indicate
+   * how the user can fix the error. The field is omitted if there is no correction message
+   * associated with the error code.
+   */
+  private final String correction;
+
+  /**
+   * Constructor for {@link AnalysisError}.
+   */
+  public AnalysisError(String severity, String type, Location location, String message, String correction) {
+    this.severity = severity;
+    this.type = type;
+    this.location = location;
+    this.message = message;
+    this.correction = correction;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof AnalysisError) {
+      AnalysisError other = (AnalysisError) obj;
+      return
+        ObjectUtilities.equals(other.severity, severity) &&
+        ObjectUtilities.equals(other.type, type) &&
+        ObjectUtilities.equals(other.location, location) &&
+        ObjectUtilities.equals(other.message, message) &&
+        ObjectUtilities.equals(other.correction, correction);
+    }
+    return false;
+  }
+
+  public static AnalysisError fromJson(JsonObject jsonObject) {
+    String severity = jsonObject.get("severity").getAsString();
+    String type = jsonObject.get("type").getAsString();
+    Location location = Location.fromJson(jsonObject.get("location").getAsJsonObject());
+    String message = jsonObject.get("message").getAsString();
+    String correction = jsonObject.get("correction") == null ? null : jsonObject.get("correction").getAsString();
+    return new AnalysisError(severity, type, location, message, correction);
+  }
+
+  public static List<AnalysisError> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<AnalysisError> list = new ArrayList<AnalysisError>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * The correction message to be displayed for this error. The correction message should indicate
+   * how the user can fix the error. The field is omitted if there is no correction message
+   * associated with the error code.
+   */
+  public String getCorrection() {
+    return correction;
+  }
+
+  /**
+   * The location associated with the error.
+   */
+  public Location getLocation() {
+    return location;
+  }
+
+  /**
+   * The message to be displayed for this error. The message should indicate what is wrong with the
+   * code and why it is wrong.
+   */
+  public String getMessage() {
+    return message;
+  }
+
+  /**
+   * The severity of the error.
+   */
+  public String getSeverity() {
+    return severity;
+  }
+
+  /**
+   * The type of the error.
+   */
+  public String getType() {
+    return type;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(severity);
+    builder.append(type);
+    builder.append(location);
+    builder.append(message);
+    builder.append(correction);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("severity", severity);
+    jsonObject.addProperty("type", type);
+    jsonObject.add("location", location.toJson());
+    jsonObject.addProperty("message", message);
+    if (correction != null) {
+      jsonObject.addProperty("correction", correction);
+    }
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("severity=");
+    builder.append(severity + ", ");
+    builder.append("type=");
+    builder.append(type + ", ");
+    builder.append("location=");
+    builder.append(location + ", ");
+    builder.append("message=");
+    builder.append(message + ", ");
+    builder.append("correction=");
+    builder.append(correction);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/AnalysisErrorFixes.java b/pkg/analysis_server/tool/spec/generated/java/types/AnalysisErrorFixes.java
new file mode 100644
index 0000000..1868fbd
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/AnalysisErrorFixes.java
@@ -0,0 +1,138 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * A list of fixes associated with a specific error
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class AnalysisErrorFixes {
+
+  public static final AnalysisErrorFixes[] EMPTY_ARRAY = new AnalysisErrorFixes[0];
+
+  public static final List<AnalysisErrorFixes> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The error with which the fixes are associated.
+   */
+  private final AnalysisError error;
+
+  /**
+   * The fixes associated with the error.
+   */
+  private final List<SourceChange> fixes;
+
+  /**
+   * Constructor for {@link AnalysisErrorFixes}.
+   */
+  public AnalysisErrorFixes(AnalysisError error, List<SourceChange> fixes) {
+    this.error = error;
+    this.fixes = fixes;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof AnalysisErrorFixes) {
+      AnalysisErrorFixes other = (AnalysisErrorFixes) obj;
+      return
+        ObjectUtilities.equals(other.error, error) &&
+        ObjectUtilities.equals(other.fixes, fixes);
+    }
+    return false;
+  }
+
+  public static AnalysisErrorFixes fromJson(JsonObject jsonObject) {
+    AnalysisError error = AnalysisError.fromJson(jsonObject.get("error").getAsJsonObject());
+    List<SourceChange> fixes = SourceChange.fromJsonArray(jsonObject.get("fixes").getAsJsonArray());
+    return new AnalysisErrorFixes(error, fixes);
+  }
+
+  public static List<AnalysisErrorFixes> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<AnalysisErrorFixes> list = new ArrayList<AnalysisErrorFixes>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * The error with which the fixes are associated.
+   */
+  public AnalysisError getError() {
+    return error;
+  }
+
+  /**
+   * The fixes associated with the error.
+   */
+  public List<SourceChange> getFixes() {
+    return fixes;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(error);
+    builder.append(fixes);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.add("error", error.toJson());
+    JsonArray jsonArrayFixes = new JsonArray();
+    for (SourceChange elt : fixes) {
+      jsonArrayFixes.add(elt.toJson());
+    }
+    jsonObject.add("fixes", jsonArrayFixes);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("error=");
+    builder.append(error + ", ");
+    builder.append("fixes=");
+    builder.append(StringUtils.join(fixes, ", "));
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/AnalysisErrorSeverity.java b/pkg/analysis_server/tool/spec/generated/java/types/AnalysisErrorSeverity.java
new file mode 100644
index 0000000..6fbfabb
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/AnalysisErrorSeverity.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+/**
+ * An enumeration of the possible severities of analysis errors.
+ *
+ * @coverage dart.server.generated.types
+ */
+public class AnalysisErrorSeverity {
+
+  public static final String INFO = "INFO";
+
+  public static final String WARNING = "WARNING";
+
+  public static final String ERROR = "ERROR";
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/AnalysisErrorType.java b/pkg/analysis_server/tool/spec/generated/java/types/AnalysisErrorType.java
new file mode 100644
index 0000000..eb45b09
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/AnalysisErrorType.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+/**
+ * An enumeration of the possible types of analysis errors.
+ *
+ * @coverage dart.server.generated.types
+ */
+public class AnalysisErrorType {
+
+  public static final String CHECKED_MODE_COMPILE_TIME_ERROR = "CHECKED_MODE_COMPILE_TIME_ERROR";
+
+  public static final String COMPILE_TIME_ERROR = "COMPILE_TIME_ERROR";
+
+  public static final String HINT = "HINT";
+
+  public static final String LINT = "LINT";
+
+  public static final String STATIC_TYPE_WARNING = "STATIC_TYPE_WARNING";
+
+  public static final String STATIC_WARNING = "STATIC_WARNING";
+
+  public static final String SYNTACTIC_ERROR = "SYNTACTIC_ERROR";
+
+  public static final String TODO = "TODO";
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/AnalysisOptions.java b/pkg/analysis_server/tool/spec/generated/java/types/AnalysisOptions.java
new file mode 100644
index 0000000..9ec191d
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/AnalysisOptions.java
@@ -0,0 +1,258 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * A set of options controlling what kind of analysis is to be performed. If the value of a field
+ * is omitted the value of the option will not be changed.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class AnalysisOptions {
+
+  public static final AnalysisOptions[] EMPTY_ARRAY = new AnalysisOptions[0];
+
+  public static final List<AnalysisOptions> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * Deprecated
+   *
+   * True if the client wants to enable support for the proposed async feature.
+   */
+  private final Boolean enableAsync;
+
+  /**
+   * Deprecated
+   *
+   * True if the client wants to enable support for the proposed deferred loading feature.
+   */
+  private final Boolean enableDeferredLoading;
+
+  /**
+   * Deprecated
+   *
+   * True if the client wants to enable support for the proposed enum feature.
+   */
+  private final Boolean enableEnums;
+
+  /**
+   * True if the client wants to enable support for the proposed "null aware operators" feature.
+   */
+  private final Boolean enableNullAwareOperators;
+
+  /**
+   * True if hints that are specific to dart2js should be generated. This option is ignored if
+   * generateHints is false.
+   */
+  private final Boolean generateDart2jsHints;
+
+  /**
+   * True if hints should be generated as part of generating errors and warnings.
+   */
+  private final Boolean generateHints;
+
+  /**
+   * True if lints should be generated as part of generating errors and warnings.
+   */
+  private final Boolean generateLints;
+
+  /**
+   * Constructor for {@link AnalysisOptions}.
+   */
+  public AnalysisOptions(Boolean enableAsync, Boolean enableDeferredLoading, Boolean enableEnums, Boolean enableNullAwareOperators, Boolean generateDart2jsHints, Boolean generateHints, Boolean generateLints) {
+    this.enableAsync = enableAsync;
+    this.enableDeferredLoading = enableDeferredLoading;
+    this.enableEnums = enableEnums;
+    this.enableNullAwareOperators = enableNullAwareOperators;
+    this.generateDart2jsHints = generateDart2jsHints;
+    this.generateHints = generateHints;
+    this.generateLints = generateLints;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof AnalysisOptions) {
+      AnalysisOptions other = (AnalysisOptions) obj;
+      return
+        ObjectUtilities.equals(other.enableAsync, enableAsync) &&
+        ObjectUtilities.equals(other.enableDeferredLoading, enableDeferredLoading) &&
+        ObjectUtilities.equals(other.enableEnums, enableEnums) &&
+        ObjectUtilities.equals(other.enableNullAwareOperators, enableNullAwareOperators) &&
+        ObjectUtilities.equals(other.generateDart2jsHints, generateDart2jsHints) &&
+        ObjectUtilities.equals(other.generateHints, generateHints) &&
+        ObjectUtilities.equals(other.generateLints, generateLints);
+    }
+    return false;
+  }
+
+  public static AnalysisOptions fromJson(JsonObject jsonObject) {
+    Boolean enableAsync = jsonObject.get("enableAsync") == null ? null : jsonObject.get("enableAsync").getAsBoolean();
+    Boolean enableDeferredLoading = jsonObject.get("enableDeferredLoading") == null ? null : jsonObject.get("enableDeferredLoading").getAsBoolean();
+    Boolean enableEnums = jsonObject.get("enableEnums") == null ? null : jsonObject.get("enableEnums").getAsBoolean();
+    Boolean enableNullAwareOperators = jsonObject.get("enableNullAwareOperators") == null ? null : jsonObject.get("enableNullAwareOperators").getAsBoolean();
+    Boolean generateDart2jsHints = jsonObject.get("generateDart2jsHints") == null ? null : jsonObject.get("generateDart2jsHints").getAsBoolean();
+    Boolean generateHints = jsonObject.get("generateHints") == null ? null : jsonObject.get("generateHints").getAsBoolean();
+    Boolean generateLints = jsonObject.get("generateLints") == null ? null : jsonObject.get("generateLints").getAsBoolean();
+    return new AnalysisOptions(enableAsync, enableDeferredLoading, enableEnums, enableNullAwareOperators, generateDart2jsHints, generateHints, generateLints);
+  }
+
+  public static List<AnalysisOptions> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<AnalysisOptions> list = new ArrayList<AnalysisOptions>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * Deprecated
+   *
+   * True if the client wants to enable support for the proposed async feature.
+   */
+  public Boolean getEnableAsync() {
+    return enableAsync;
+  }
+
+  /**
+   * Deprecated
+   *
+   * True if the client wants to enable support for the proposed deferred loading feature.
+   */
+  public Boolean getEnableDeferredLoading() {
+    return enableDeferredLoading;
+  }
+
+  /**
+   * Deprecated
+   *
+   * True if the client wants to enable support for the proposed enum feature.
+   */
+  public Boolean getEnableEnums() {
+    return enableEnums;
+  }
+
+  /**
+   * True if the client wants to enable support for the proposed "null aware operators" feature.
+   */
+  public Boolean getEnableNullAwareOperators() {
+    return enableNullAwareOperators;
+  }
+
+  /**
+   * True if hints that are specific to dart2js should be generated. This option is ignored if
+   * generateHints is false.
+   */
+  public Boolean getGenerateDart2jsHints() {
+    return generateDart2jsHints;
+  }
+
+  /**
+   * True if hints should be generated as part of generating errors and warnings.
+   */
+  public Boolean getGenerateHints() {
+    return generateHints;
+  }
+
+  /**
+   * True if lints should be generated as part of generating errors and warnings.
+   */
+  public Boolean getGenerateLints() {
+    return generateLints;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(enableAsync);
+    builder.append(enableDeferredLoading);
+    builder.append(enableEnums);
+    builder.append(enableNullAwareOperators);
+    builder.append(generateDart2jsHints);
+    builder.append(generateHints);
+    builder.append(generateLints);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    if (enableAsync != null) {
+      jsonObject.addProperty("enableAsync", enableAsync);
+    }
+    if (enableDeferredLoading != null) {
+      jsonObject.addProperty("enableDeferredLoading", enableDeferredLoading);
+    }
+    if (enableEnums != null) {
+      jsonObject.addProperty("enableEnums", enableEnums);
+    }
+    if (enableNullAwareOperators != null) {
+      jsonObject.addProperty("enableNullAwareOperators", enableNullAwareOperators);
+    }
+    if (generateDart2jsHints != null) {
+      jsonObject.addProperty("generateDart2jsHints", generateDart2jsHints);
+    }
+    if (generateHints != null) {
+      jsonObject.addProperty("generateHints", generateHints);
+    }
+    if (generateLints != null) {
+      jsonObject.addProperty("generateLints", generateLints);
+    }
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("enableAsync=");
+    builder.append(enableAsync + ", ");
+    builder.append("enableDeferredLoading=");
+    builder.append(enableDeferredLoading + ", ");
+    builder.append("enableEnums=");
+    builder.append(enableEnums + ", ");
+    builder.append("enableNullAwareOperators=");
+    builder.append(enableNullAwareOperators + ", ");
+    builder.append("generateDart2jsHints=");
+    builder.append(generateDart2jsHints + ", ");
+    builder.append("generateHints=");
+    builder.append(generateHints + ", ");
+    builder.append("generateLints=");
+    builder.append(generateLints);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/AnalysisService.java b/pkg/analysis_server/tool/spec/generated/java/types/AnalysisService.java
new file mode 100644
index 0000000..eef2903
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/AnalysisService.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+/**
+ * An enumeration of the services provided by the analysis domain.
+ *
+ * @coverage dart.server.generated.types
+ */
+public class AnalysisService {
+
+  public static final String FOLDING = "FOLDING";
+
+  public static final String HIGHLIGHTS = "HIGHLIGHTS";
+
+  public static final String INVALIDATE = "INVALIDATE";
+
+  public static final String NAVIGATION = "NAVIGATION";
+
+  public static final String OCCURRENCES = "OCCURRENCES";
+
+  public static final String OUTLINE = "OUTLINE";
+
+  public static final String OVERRIDES = "OVERRIDES";
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/AnalysisStatus.java b/pkg/analysis_server/tool/spec/generated/java/types/AnalysisStatus.java
new file mode 100644
index 0000000..fcff703
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/AnalysisStatus.java
@@ -0,0 +1,136 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * An indication of the current state of analysis.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class AnalysisStatus {
+
+  public static final AnalysisStatus[] EMPTY_ARRAY = new AnalysisStatus[0];
+
+  public static final List<AnalysisStatus> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * True if analysis is currently being performed.
+   */
+  private final boolean isAnalyzing;
+
+  /**
+   * The name of the current target of analysis. This field is omitted if analyzing is false.
+   */
+  private final String analysisTarget;
+
+  /**
+   * Constructor for {@link AnalysisStatus}.
+   */
+  public AnalysisStatus(boolean isAnalyzing, String analysisTarget) {
+    this.isAnalyzing = isAnalyzing;
+    this.analysisTarget = analysisTarget;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof AnalysisStatus) {
+      AnalysisStatus other = (AnalysisStatus) obj;
+      return
+        other.isAnalyzing == isAnalyzing &&
+        ObjectUtilities.equals(other.analysisTarget, analysisTarget);
+    }
+    return false;
+  }
+
+  public static AnalysisStatus fromJson(JsonObject jsonObject) {
+    boolean isAnalyzing = jsonObject.get("isAnalyzing").getAsBoolean();
+    String analysisTarget = jsonObject.get("analysisTarget") == null ? null : jsonObject.get("analysisTarget").getAsString();
+    return new AnalysisStatus(isAnalyzing, analysisTarget);
+  }
+
+  public static List<AnalysisStatus> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<AnalysisStatus> list = new ArrayList<AnalysisStatus>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * The name of the current target of analysis. This field is omitted if analyzing is false.
+   */
+  public String getAnalysisTarget() {
+    return analysisTarget;
+  }
+
+  /**
+   * True if analysis is currently being performed.
+   */
+  public boolean isAnalyzing() {
+    return isAnalyzing;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(isAnalyzing);
+    builder.append(analysisTarget);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("isAnalyzing", isAnalyzing);
+    if (analysisTarget != null) {
+      jsonObject.addProperty("analysisTarget", analysisTarget);
+    }
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("isAnalyzing=");
+    builder.append(isAnalyzing + ", ");
+    builder.append("analysisTarget=");
+    builder.append(analysisTarget);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/ChangeContentOverlay.java b/pkg/analysis_server/tool/spec/generated/java/types/ChangeContentOverlay.java
new file mode 100644
index 0000000..468bb07
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/ChangeContentOverlay.java
@@ -0,0 +1,142 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * A directive to modify an existing file content overlay. One or more ranges of text are deleted
+ * from the old file content overlay and replaced with new text.
+ *
+ * The edits are applied in the order in which they occur in the list. This means that the offset
+ * of each edit must be correct under the assumption that all previous edits have been applied.
+ *
+ * It is an error to use this overlay on a file that does not yet have a file content overlay or
+ * that has had its overlay removed via RemoveContentOverlay.
+ *
+ * If any of the edits cannot be applied due to its offset or length being out of range, an
+ * INVALID_OVERLAY_CHANGE error will be reported.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class ChangeContentOverlay {
+
+  public static final ChangeContentOverlay[] EMPTY_ARRAY = new ChangeContentOverlay[0];
+
+  public static final List<ChangeContentOverlay> EMPTY_LIST = Lists.newArrayList();
+
+  private final String type;
+
+  /**
+   * The edits to be applied to the file.
+   */
+  private final List<SourceEdit> edits;
+
+  /**
+   * Constructor for {@link ChangeContentOverlay}.
+   */
+  public ChangeContentOverlay(List<SourceEdit> edits) {
+    this.type = "change";
+    this.edits = edits;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof ChangeContentOverlay) {
+      ChangeContentOverlay other = (ChangeContentOverlay) obj;
+      return
+        ObjectUtilities.equals(other.type, type) &&
+        ObjectUtilities.equals(other.edits, edits);
+    }
+    return false;
+  }
+
+  public static ChangeContentOverlay fromJson(JsonObject jsonObject) {
+    String type = jsonObject.get("type").getAsString();
+    List<SourceEdit> edits = SourceEdit.fromJsonArray(jsonObject.get("edits").getAsJsonArray());
+    return new ChangeContentOverlay(edits);
+  }
+
+  public static List<ChangeContentOverlay> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<ChangeContentOverlay> list = new ArrayList<ChangeContentOverlay>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * The edits to be applied to the file.
+   */
+  public List<SourceEdit> getEdits() {
+    return edits;
+  }
+
+  public String getType() {
+    return type;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(type);
+    builder.append(edits);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("type", type);
+    JsonArray jsonArrayEdits = new JsonArray();
+    for (SourceEdit elt : edits) {
+      jsonArrayEdits.add(elt.toJson());
+    }
+    jsonObject.add("edits", jsonArrayEdits);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("type=");
+    builder.append(type + ", ");
+    builder.append("edits=");
+    builder.append(StringUtils.join(edits, ", "));
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/CompletionSuggestion.java b/pkg/analysis_server/tool/spec/generated/java/types/CompletionSuggestion.java
new file mode 100644
index 0000000..922dbf4
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/CompletionSuggestion.java
@@ -0,0 +1,520 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * A suggestion for how to complete partially entered text. Many of the fields are optional,
+ * depending on the kind of element being suggested.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class CompletionSuggestion {
+
+  public static final CompletionSuggestion[] EMPTY_ARRAY = new CompletionSuggestion[0];
+
+  public static final List<CompletionSuggestion> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The kind of element being suggested.
+   */
+  private final String kind;
+
+  /**
+   * The relevance of this completion suggestion where a higher number indicates a higher relevance.
+   */
+  private final int relevance;
+
+  /**
+   * The identifier to be inserted if the suggestion is selected. If the suggestion is for a method
+   * or function, the client might want to additionally insert a template for the parameters. The
+   * information required in order to do so is contained in other fields.
+   */
+  private final String completion;
+
+  /**
+   * The offset, relative to the beginning of the completion, of where the selection should be placed
+   * after insertion.
+   */
+  private final int selectionOffset;
+
+  /**
+   * The number of characters that should be selected after insertion.
+   */
+  private final int selectionLength;
+
+  /**
+   * True if the suggested element is deprecated.
+   */
+  private final boolean isDeprecated;
+
+  /**
+   * True if the element is not known to be valid for the target. This happens if the type of the
+   * target is dynamic.
+   */
+  private final boolean isPotential;
+
+  /**
+   * An abbreviated version of the Dartdoc associated with the element being suggested, This field is
+   * omitted if there is no Dartdoc associated with the element.
+   */
+  private final String docSummary;
+
+  /**
+   * The Dartdoc associated with the element being suggested, This field is omitted if there is no
+   * Dartdoc associated with the element.
+   */
+  private final String docComplete;
+
+  /**
+   * The class that declares the element being suggested. This field is omitted if the suggested
+   * element is not a member of a class.
+   */
+  private final String declaringType;
+
+  /**
+   * Information about the element reference being suggested.
+   */
+  private final Element element;
+
+  /**
+   * The return type of the getter, function or method or the type of the field being suggested. This
+   * field is omitted if the suggested element is not a getter, function or method.
+   */
+  private final String returnType;
+
+  /**
+   * The names of the parameters of the function or method being suggested. This field is omitted if
+   * the suggested element is not a setter, function or method.
+   */
+  private final List<String> parameterNames;
+
+  /**
+   * The types of the parameters of the function or method being suggested. This field is omitted if
+   * the parameterNames field is omitted.
+   */
+  private final List<String> parameterTypes;
+
+  /**
+   * The number of required parameters for the function or method being suggested. This field is
+   * omitted if the parameterNames field is omitted.
+   */
+  private final Integer requiredParameterCount;
+
+  /**
+   * True if the function or method being suggested has at least one named parameter. This field is
+   * omitted if the parameterNames field is omitted.
+   */
+  private final Boolean hasNamedParameters;
+
+  /**
+   * The name of the optional parameter being suggested. This field is omitted if the suggestion is
+   * not the addition of an optional argument within an argument list.
+   */
+  private final String parameterName;
+
+  /**
+   * The type of the options parameter being suggested. This field is omitted if the parameterName
+   * field is omitted.
+   */
+  private final String parameterType;
+
+  /**
+   * The import to be added if the suggestion is out of scope and needs an import to be added to be
+   * in scope.
+   */
+  private final String importUri;
+
+  /**
+   * Constructor for {@link CompletionSuggestion}.
+   */
+  public CompletionSuggestion(String kind, int relevance, String completion, int selectionOffset, int selectionLength, boolean isDeprecated, boolean isPotential, String docSummary, String docComplete, String declaringType, Element element, String returnType, List<String> parameterNames, List<String> parameterTypes, Integer requiredParameterCount, Boolean hasNamedParameters, String parameterName, String parameterType, String importUri) {
+    this.kind = kind;
+    this.relevance = relevance;
+    this.completion = completion;
+    this.selectionOffset = selectionOffset;
+    this.selectionLength = selectionLength;
+    this.isDeprecated = isDeprecated;
+    this.isPotential = isPotential;
+    this.docSummary = docSummary;
+    this.docComplete = docComplete;
+    this.declaringType = declaringType;
+    this.element = element;
+    this.returnType = returnType;
+    this.parameterNames = parameterNames;
+    this.parameterTypes = parameterTypes;
+    this.requiredParameterCount = requiredParameterCount;
+    this.hasNamedParameters = hasNamedParameters;
+    this.parameterName = parameterName;
+    this.parameterType = parameterType;
+    this.importUri = importUri;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof CompletionSuggestion) {
+      CompletionSuggestion other = (CompletionSuggestion) obj;
+      return
+        ObjectUtilities.equals(other.kind, kind) &&
+        other.relevance == relevance &&
+        ObjectUtilities.equals(other.completion, completion) &&
+        other.selectionOffset == selectionOffset &&
+        other.selectionLength == selectionLength &&
+        other.isDeprecated == isDeprecated &&
+        other.isPotential == isPotential &&
+        ObjectUtilities.equals(other.docSummary, docSummary) &&
+        ObjectUtilities.equals(other.docComplete, docComplete) &&
+        ObjectUtilities.equals(other.declaringType, declaringType) &&
+        ObjectUtilities.equals(other.element, element) &&
+        ObjectUtilities.equals(other.returnType, returnType) &&
+        ObjectUtilities.equals(other.parameterNames, parameterNames) &&
+        ObjectUtilities.equals(other.parameterTypes, parameterTypes) &&
+        ObjectUtilities.equals(other.requiredParameterCount, requiredParameterCount) &&
+        ObjectUtilities.equals(other.hasNamedParameters, hasNamedParameters) &&
+        ObjectUtilities.equals(other.parameterName, parameterName) &&
+        ObjectUtilities.equals(other.parameterType, parameterType) &&
+        ObjectUtilities.equals(other.importUri, importUri);
+    }
+    return false;
+  }
+
+  public static CompletionSuggestion fromJson(JsonObject jsonObject) {
+    String kind = jsonObject.get("kind").getAsString();
+    int relevance = jsonObject.get("relevance").getAsInt();
+    String completion = jsonObject.get("completion").getAsString();
+    int selectionOffset = jsonObject.get("selectionOffset").getAsInt();
+    int selectionLength = jsonObject.get("selectionLength").getAsInt();
+    boolean isDeprecated = jsonObject.get("isDeprecated").getAsBoolean();
+    boolean isPotential = jsonObject.get("isPotential").getAsBoolean();
+    String docSummary = jsonObject.get("docSummary") == null ? null : jsonObject.get("docSummary").getAsString();
+    String docComplete = jsonObject.get("docComplete") == null ? null : jsonObject.get("docComplete").getAsString();
+    String declaringType = jsonObject.get("declaringType") == null ? null : jsonObject.get("declaringType").getAsString();
+    Element element = jsonObject.get("element") == null ? null : Element.fromJson(jsonObject.get("element").getAsJsonObject());
+    String returnType = jsonObject.get("returnType") == null ? null : jsonObject.get("returnType").getAsString();
+    List<String> parameterNames = jsonObject.get("parameterNames") == null ? null : JsonUtilities.decodeStringList(jsonObject.get("parameterNames").getAsJsonArray());
+    List<String> parameterTypes = jsonObject.get("parameterTypes") == null ? null : JsonUtilities.decodeStringList(jsonObject.get("parameterTypes").getAsJsonArray());
+    Integer requiredParameterCount = jsonObject.get("requiredParameterCount") == null ? null : jsonObject.get("requiredParameterCount").getAsInt();
+    Boolean hasNamedParameters = jsonObject.get("hasNamedParameters") == null ? null : jsonObject.get("hasNamedParameters").getAsBoolean();
+    String parameterName = jsonObject.get("parameterName") == null ? null : jsonObject.get("parameterName").getAsString();
+    String parameterType = jsonObject.get("parameterType") == null ? null : jsonObject.get("parameterType").getAsString();
+    String importUri = jsonObject.get("importUri") == null ? null : jsonObject.get("importUri").getAsString();
+    return new CompletionSuggestion(kind, relevance, completion, selectionOffset, selectionLength, isDeprecated, isPotential, docSummary, docComplete, declaringType, element, returnType, parameterNames, parameterTypes, requiredParameterCount, hasNamedParameters, parameterName, parameterType, importUri);
+  }
+
+  public static List<CompletionSuggestion> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<CompletionSuggestion> list = new ArrayList<CompletionSuggestion>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * The identifier to be inserted if the suggestion is selected. If the suggestion is for a method
+   * or function, the client might want to additionally insert a template for the parameters. The
+   * information required in order to do so is contained in other fields.
+   */
+  public String getCompletion() {
+    return completion;
+  }
+
+  /**
+   * The class that declares the element being suggested. This field is omitted if the suggested
+   * element is not a member of a class.
+   */
+  public String getDeclaringType() {
+    return declaringType;
+  }
+
+  /**
+   * The Dartdoc associated with the element being suggested, This field is omitted if there is no
+   * Dartdoc associated with the element.
+   */
+  public String getDocComplete() {
+    return docComplete;
+  }
+
+  /**
+   * An abbreviated version of the Dartdoc associated with the element being suggested, This field is
+   * omitted if there is no Dartdoc associated with the element.
+   */
+  public String getDocSummary() {
+    return docSummary;
+  }
+
+  /**
+   * Information about the element reference being suggested.
+   */
+  public Element getElement() {
+    return element;
+  }
+
+  /**
+   * True if the function or method being suggested has at least one named parameter. This field is
+   * omitted if the parameterNames field is omitted.
+   */
+  public Boolean getHasNamedParameters() {
+    return hasNamedParameters;
+  }
+
+  /**
+   * The import to be added if the suggestion is out of scope and needs an import to be added to be
+   * in scope.
+   */
+  public String getImportUri() {
+    return importUri;
+  }
+
+  /**
+   * True if the suggested element is deprecated.
+   */
+  public boolean isDeprecated() {
+    return isDeprecated;
+  }
+
+  /**
+   * True if the element is not known to be valid for the target. This happens if the type of the
+   * target is dynamic.
+   */
+  public boolean isPotential() {
+    return isPotential;
+  }
+
+  /**
+   * The kind of element being suggested.
+   */
+  public String getKind() {
+    return kind;
+  }
+
+  /**
+   * The name of the optional parameter being suggested. This field is omitted if the suggestion is
+   * not the addition of an optional argument within an argument list.
+   */
+  public String getParameterName() {
+    return parameterName;
+  }
+
+  /**
+   * The names of the parameters of the function or method being suggested. This field is omitted if
+   * the suggested element is not a setter, function or method.
+   */
+  public List<String> getParameterNames() {
+    return parameterNames;
+  }
+
+  /**
+   * The type of the options parameter being suggested. This field is omitted if the parameterName
+   * field is omitted.
+   */
+  public String getParameterType() {
+    return parameterType;
+  }
+
+  /**
+   * The types of the parameters of the function or method being suggested. This field is omitted if
+   * the parameterNames field is omitted.
+   */
+  public List<String> getParameterTypes() {
+    return parameterTypes;
+  }
+
+  /**
+   * The relevance of this completion suggestion where a higher number indicates a higher relevance.
+   */
+  public int getRelevance() {
+    return relevance;
+  }
+
+  /**
+   * The number of required parameters for the function or method being suggested. This field is
+   * omitted if the parameterNames field is omitted.
+   */
+  public Integer getRequiredParameterCount() {
+    return requiredParameterCount;
+  }
+
+  /**
+   * The return type of the getter, function or method or the type of the field being suggested. This
+   * field is omitted if the suggested element is not a getter, function or method.
+   */
+  public String getReturnType() {
+    return returnType;
+  }
+
+  /**
+   * The number of characters that should be selected after insertion.
+   */
+  public int getSelectionLength() {
+    return selectionLength;
+  }
+
+  /**
+   * The offset, relative to the beginning of the completion, of where the selection should be placed
+   * after insertion.
+   */
+  public int getSelectionOffset() {
+    return selectionOffset;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(kind);
+    builder.append(relevance);
+    builder.append(completion);
+    builder.append(selectionOffset);
+    builder.append(selectionLength);
+    builder.append(isDeprecated);
+    builder.append(isPotential);
+    builder.append(docSummary);
+    builder.append(docComplete);
+    builder.append(declaringType);
+    builder.append(element);
+    builder.append(returnType);
+    builder.append(parameterNames);
+    builder.append(parameterTypes);
+    builder.append(requiredParameterCount);
+    builder.append(hasNamedParameters);
+    builder.append(parameterName);
+    builder.append(parameterType);
+    builder.append(importUri);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("kind", kind);
+    jsonObject.addProperty("relevance", relevance);
+    jsonObject.addProperty("completion", completion);
+    jsonObject.addProperty("selectionOffset", selectionOffset);
+    jsonObject.addProperty("selectionLength", selectionLength);
+    jsonObject.addProperty("isDeprecated", isDeprecated);
+    jsonObject.addProperty("isPotential", isPotential);
+    if (docSummary != null) {
+      jsonObject.addProperty("docSummary", docSummary);
+    }
+    if (docComplete != null) {
+      jsonObject.addProperty("docComplete", docComplete);
+    }
+    if (declaringType != null) {
+      jsonObject.addProperty("declaringType", declaringType);
+    }
+    if (element != null) {
+      jsonObject.add("element", element.toJson());
+    }
+    if (returnType != null) {
+      jsonObject.addProperty("returnType", returnType);
+    }
+    if (parameterNames != null) {
+      JsonArray jsonArrayParameterNames = new JsonArray();
+      for (String elt : parameterNames) {
+        jsonArrayParameterNames.add(new JsonPrimitive(elt));
+      }
+      jsonObject.add("parameterNames", jsonArrayParameterNames);
+    }
+    if (parameterTypes != null) {
+      JsonArray jsonArrayParameterTypes = new JsonArray();
+      for (String elt : parameterTypes) {
+        jsonArrayParameterTypes.add(new JsonPrimitive(elt));
+      }
+      jsonObject.add("parameterTypes", jsonArrayParameterTypes);
+    }
+    if (requiredParameterCount != null) {
+      jsonObject.addProperty("requiredParameterCount", requiredParameterCount);
+    }
+    if (hasNamedParameters != null) {
+      jsonObject.addProperty("hasNamedParameters", hasNamedParameters);
+    }
+    if (parameterName != null) {
+      jsonObject.addProperty("parameterName", parameterName);
+    }
+    if (parameterType != null) {
+      jsonObject.addProperty("parameterType", parameterType);
+    }
+    if (importUri != null) {
+      jsonObject.addProperty("importUri", importUri);
+    }
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("kind=");
+    builder.append(kind + ", ");
+    builder.append("relevance=");
+    builder.append(relevance + ", ");
+    builder.append("completion=");
+    builder.append(completion + ", ");
+    builder.append("selectionOffset=");
+    builder.append(selectionOffset + ", ");
+    builder.append("selectionLength=");
+    builder.append(selectionLength + ", ");
+    builder.append("isDeprecated=");
+    builder.append(isDeprecated + ", ");
+    builder.append("isPotential=");
+    builder.append(isPotential + ", ");
+    builder.append("docSummary=");
+    builder.append(docSummary + ", ");
+    builder.append("docComplete=");
+    builder.append(docComplete + ", ");
+    builder.append("declaringType=");
+    builder.append(declaringType + ", ");
+    builder.append("element=");
+    builder.append(element + ", ");
+    builder.append("returnType=");
+    builder.append(returnType + ", ");
+    builder.append("parameterNames=");
+    builder.append(StringUtils.join(parameterNames, ", ") + ", ");
+    builder.append("parameterTypes=");
+    builder.append(StringUtils.join(parameterTypes, ", ") + ", ");
+    builder.append("requiredParameterCount=");
+    builder.append(requiredParameterCount + ", ");
+    builder.append("hasNamedParameters=");
+    builder.append(hasNamedParameters + ", ");
+    builder.append("parameterName=");
+    builder.append(parameterName + ", ");
+    builder.append("parameterType=");
+    builder.append(parameterType + ", ");
+    builder.append("importUri=");
+    builder.append(importUri);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/CompletionSuggestionKind.java b/pkg/analysis_server/tool/spec/generated/java/types/CompletionSuggestionKind.java
new file mode 100644
index 0000000..3e79fab
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/CompletionSuggestionKind.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+/**
+ * An enumeration of the kinds of elements that can be included in a completion suggestion.
+ *
+ * @coverage dart.server.generated.types
+ */
+public class CompletionSuggestionKind {
+
+  /**
+   * A list of arguments for the method or function that is being invoked. For this suggestion kind,
+   * the completion field is a textual representation of the invocation and the parameterNames,
+   * parameterTypes, and requiredParameterCount attributes are defined.
+   */
+  public static final String ARGUMENT_LIST = "ARGUMENT_LIST";
+
+  public static final String IMPORT = "IMPORT";
+
+  /**
+   * The element identifier should be inserted at the completion location. For example "someMethod"
+   * in import 'myLib.dart' show someMethod; . For suggestions of this kind, the element attribute is
+   * defined and the completion field is the element's identifier.
+   */
+  public static final String IDENTIFIER = "IDENTIFIER";
+
+  /**
+   * The element is being invoked at the completion location. For example, "someMethod" in
+   * x.someMethod(); . For suggestions of this kind, the element attribute is defined and the
+   * completion field is the element's identifier.
+   */
+  public static final String INVOCATION = "INVOCATION";
+
+  /**
+   * A keyword is being suggested. For suggestions of this kind, the completion is the keyword.
+   */
+  public static final String KEYWORD = "KEYWORD";
+
+  /**
+   * A named argument for the current callsite is being suggested. For suggestions of this kind, the
+   * completion is the named argument identifier including a trailing ':' and space.
+   */
+  public static final String NAMED_ARGUMENT = "NAMED_ARGUMENT";
+
+  public static final String OPTIONAL_ARGUMENT = "OPTIONAL_ARGUMENT";
+
+  public static final String PARAMETER = "PARAMETER";
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/Element.java b/pkg/analysis_server/tool/spec/generated/java/types/Element.java
new file mode 100644
index 0000000..cbef7ea
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/Element.java
@@ -0,0 +1,297 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * Information about an element (something that can be declared in code).
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class Element {
+
+  public static final Element[] EMPTY_ARRAY = new Element[0];
+
+  public static final List<Element> EMPTY_LIST = Lists.newArrayList();
+
+  private static final int ABSTRACT = 0x01;
+
+  private static final int CONST = 0x02;
+
+  private static final int FINAL = 0x04;
+
+  private static final int TOP_LEVEL_STATIC = 0x08;
+
+  private static final int PRIVATE = 0x10;
+
+  private static final int DEPRECATED = 0x20;
+
+  /**
+   * The kind of the element.
+   */
+  private final String kind;
+
+  /**
+   * The name of the element. This is typically used as the label in the outline.
+   */
+  private final String name;
+
+  /**
+   * The location of the name in the declaration of the element.
+   */
+  private final Location location;
+
+  /**
+   * A bit-map containing the following flags:
+   *
+   * - 0x01 - set if the element is explicitly or implicitly abstract
+   * - 0x02 - set if the element was declared to be ‘const’
+   * - 0x04 - set if the element was declared to be ‘final’
+   * - 0x08 - set if the element is a static member of a class or is a top-level function or field
+   * - 0x10 - set if the element is private
+   * - 0x20 - set if the element is deprecated
+   */
+  private final int flags;
+
+  /**
+   * The parameter list for the element. If the element is not a method or function this field will
+   * not be defined. If the element doesn't have parameters (e.g. getter), this field will not be
+   * defined. If the element has zero parameters, this field will have a value of "()".
+   */
+  private final String parameters;
+
+  /**
+   * The return type of the element. If the element is not a method or function this field will not
+   * be defined. If the element does not have a declared return type, this field will contain an
+   * empty string.
+   */
+  private final String returnType;
+
+  /**
+   * The type parameter list for the element. If the element doesn't have type parameters, this field
+   * will not be defined.
+   */
+  private final String typeParameters;
+
+  /**
+   * Constructor for {@link Element}.
+   */
+  public Element(String kind, String name, Location location, int flags, String parameters, String returnType, String typeParameters) {
+    this.kind = kind;
+    this.name = name;
+    this.location = location;
+    this.flags = flags;
+    this.parameters = parameters;
+    this.returnType = returnType;
+    this.typeParameters = typeParameters;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof Element) {
+      Element other = (Element) obj;
+      return
+        ObjectUtilities.equals(other.kind, kind) &&
+        ObjectUtilities.equals(other.name, name) &&
+        ObjectUtilities.equals(other.location, location) &&
+        other.flags == flags &&
+        ObjectUtilities.equals(other.parameters, parameters) &&
+        ObjectUtilities.equals(other.returnType, returnType) &&
+        ObjectUtilities.equals(other.typeParameters, typeParameters);
+    }
+    return false;
+  }
+
+  public static Element fromJson(JsonObject jsonObject) {
+    String kind = jsonObject.get("kind").getAsString();
+    String name = jsonObject.get("name").getAsString();
+    Location location = jsonObject.get("location") == null ? null : Location.fromJson(jsonObject.get("location").getAsJsonObject());
+    int flags = jsonObject.get("flags").getAsInt();
+    String parameters = jsonObject.get("parameters") == null ? null : jsonObject.get("parameters").getAsString();
+    String returnType = jsonObject.get("returnType") == null ? null : jsonObject.get("returnType").getAsString();
+    String typeParameters = jsonObject.get("typeParameters") == null ? null : jsonObject.get("typeParameters").getAsString();
+    return new Element(kind, name, location, flags, parameters, returnType, typeParameters);
+  }
+
+  public static List<Element> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<Element> list = new ArrayList<Element>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * A bit-map containing the following flags:
+   *
+   * - 0x01 - set if the element is explicitly or implicitly abstract
+   * - 0x02 - set if the element was declared to be ‘const’
+   * - 0x04 - set if the element was declared to be ‘final’
+   * - 0x08 - set if the element is a static member of a class or is a top-level function or field
+   * - 0x10 - set if the element is private
+   * - 0x20 - set if the element is deprecated
+   */
+  public int getFlags() {
+    return flags;
+  }
+
+  /**
+   * The kind of the element.
+   */
+  public String getKind() {
+    return kind;
+  }
+
+  /**
+   * The location of the name in the declaration of the element.
+   */
+  public Location getLocation() {
+    return location;
+  }
+
+  /**
+   * The name of the element. This is typically used as the label in the outline.
+   */
+  public String getName() {
+    return name;
+  }
+
+  /**
+   * The parameter list for the element. If the element is not a method or function this field will
+   * not be defined. If the element doesn't have parameters (e.g. getter), this field will not be
+   * defined. If the element has zero parameters, this field will have a value of "()".
+   */
+  public String getParameters() {
+    return parameters;
+  }
+
+  /**
+   * The return type of the element. If the element is not a method or function this field will not
+   * be defined. If the element does not have a declared return type, this field will contain an
+   * empty string.
+   */
+  public String getReturnType() {
+    return returnType;
+  }
+
+  /**
+   * The type parameter list for the element. If the element doesn't have type parameters, this field
+   * will not be defined.
+   */
+  public String getTypeParameters() {
+    return typeParameters;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(kind);
+    builder.append(name);
+    builder.append(location);
+    builder.append(flags);
+    builder.append(parameters);
+    builder.append(returnType);
+    builder.append(typeParameters);
+    return builder.toHashCode();
+  }
+
+  public boolean isAbstract() {
+    return (flags & ABSTRACT) != 0;
+  }
+
+  public boolean isConst() {
+    return (flags & CONST) != 0;
+  }
+
+  public boolean isDeprecated() {
+    return (flags & DEPRECATED) != 0;
+  }
+
+  public boolean isFinal() {
+    return (flags & FINAL) != 0;
+  }
+
+  public boolean isPrivate() {
+    return (flags & PRIVATE) != 0;
+  }
+
+  public boolean isTopLevelOrStatic() {
+    return (flags & TOP_LEVEL_STATIC) != 0;
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("kind", kind);
+    jsonObject.addProperty("name", name);
+    if (location != null) {
+      jsonObject.add("location", location.toJson());
+    }
+    jsonObject.addProperty("flags", flags);
+    if (parameters != null) {
+      jsonObject.addProperty("parameters", parameters);
+    }
+    if (returnType != null) {
+      jsonObject.addProperty("returnType", returnType);
+    }
+    if (typeParameters != null) {
+      jsonObject.addProperty("typeParameters", typeParameters);
+    }
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("kind=");
+    builder.append(kind + ", ");
+    builder.append("name=");
+    builder.append(name + ", ");
+    builder.append("location=");
+    builder.append(location + ", ");
+    builder.append("flags=");
+    builder.append(flags + ", ");
+    builder.append("parameters=");
+    builder.append(parameters + ", ");
+    builder.append("returnType=");
+    builder.append(returnType + ", ");
+    builder.append("typeParameters=");
+    builder.append(typeParameters);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/ElementKind.java b/pkg/analysis_server/tool/spec/generated/java/types/ElementKind.java
new file mode 100644
index 0000000..ff0b4ee
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/ElementKind.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+/**
+ * An enumeration of the kinds of elements.
+ *
+ * @coverage dart.server.generated.types
+ */
+public class ElementKind {
+
+  public static final String CLASS = "CLASS";
+
+  public static final String CLASS_TYPE_ALIAS = "CLASS_TYPE_ALIAS";
+
+  public static final String COMPILATION_UNIT = "COMPILATION_UNIT";
+
+  public static final String CONSTRUCTOR = "CONSTRUCTOR";
+
+  public static final String ENUM = "ENUM";
+
+  public static final String ENUM_CONSTANT = "ENUM_CONSTANT";
+
+  public static final String FIELD = "FIELD";
+
+  public static final String FUNCTION = "FUNCTION";
+
+  public static final String FUNCTION_TYPE_ALIAS = "FUNCTION_TYPE_ALIAS";
+
+  public static final String GETTER = "GETTER";
+
+  public static final String LABEL = "LABEL";
+
+  public static final String LIBRARY = "LIBRARY";
+
+  public static final String LOCAL_VARIABLE = "LOCAL_VARIABLE";
+
+  public static final String METHOD = "METHOD";
+
+  public static final String PARAMETER = "PARAMETER";
+
+  public static final String PREFIX = "PREFIX";
+
+  public static final String SETTER = "SETTER";
+
+  public static final String TOP_LEVEL_VARIABLE = "TOP_LEVEL_VARIABLE";
+
+  public static final String TYPE_PARAMETER = "TYPE_PARAMETER";
+
+  public static final String UNIT_TEST_GROUP = "UNIT_TEST_GROUP";
+
+  public static final String UNIT_TEST_TEST = "UNIT_TEST_TEST";
+
+  public static final String UNKNOWN = "UNKNOWN";
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/ExecutableFile.java b/pkg/analysis_server/tool/spec/generated/java/types/ExecutableFile.java
new file mode 100644
index 0000000..140984a
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/ExecutableFile.java
@@ -0,0 +1,134 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * A description of an executable file.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class ExecutableFile {
+
+  public static final ExecutableFile[] EMPTY_ARRAY = new ExecutableFile[0];
+
+  public static final List<ExecutableFile> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The path of the executable file.
+   */
+  private final String file;
+
+  /**
+   * The kind of the executable file.
+   */
+  private final String kind;
+
+  /**
+   * Constructor for {@link ExecutableFile}.
+   */
+  public ExecutableFile(String file, String kind) {
+    this.file = file;
+    this.kind = kind;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof ExecutableFile) {
+      ExecutableFile other = (ExecutableFile) obj;
+      return
+        ObjectUtilities.equals(other.file, file) &&
+        ObjectUtilities.equals(other.kind, kind);
+    }
+    return false;
+  }
+
+  public static ExecutableFile fromJson(JsonObject jsonObject) {
+    String file = jsonObject.get("file").getAsString();
+    String kind = jsonObject.get("kind").getAsString();
+    return new ExecutableFile(file, kind);
+  }
+
+  public static List<ExecutableFile> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<ExecutableFile> list = new ArrayList<ExecutableFile>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * The path of the executable file.
+   */
+  public String getFile() {
+    return file;
+  }
+
+  /**
+   * The kind of the executable file.
+   */
+  public String getKind() {
+    return kind;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(file);
+    builder.append(kind);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("file", file);
+    jsonObject.addProperty("kind", kind);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("file=");
+    builder.append(file + ", ");
+    builder.append("kind=");
+    builder.append(kind);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/ExecutableKind.java b/pkg/analysis_server/tool/spec/generated/java/types/ExecutableKind.java
new file mode 100644
index 0000000..a206c9c
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/ExecutableKind.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+/**
+ * An enumeration of the kinds of executable files.
+ *
+ * @coverage dart.server.generated.types
+ */
+public class ExecutableKind {
+
+  public static final String CLIENT = "CLIENT";
+
+  public static final String EITHER = "EITHER";
+
+  public static final String NOT_EXECUTABLE = "NOT_EXECUTABLE";
+
+  public static final String SERVER = "SERVER";
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/ExecutionService.java b/pkg/analysis_server/tool/spec/generated/java/types/ExecutionService.java
new file mode 100644
index 0000000..499982a
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/ExecutionService.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+/**
+ * An enumeration of the services provided by the execution domain.
+ *
+ * @coverage dart.server.generated.types
+ */
+public class ExecutionService {
+
+  public static final String LAUNCH_DATA = "LAUNCH_DATA";
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/ExtractLocalVariableFeedback.java b/pkg/analysis_server/tool/spec/generated/java/types/ExtractLocalVariableFeedback.java
new file mode 100644
index 0000000..8dc8afc
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/ExtractLocalVariableFeedback.java
@@ -0,0 +1,167 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class ExtractLocalVariableFeedback extends RefactoringFeedback {
+
+  public static final ExtractLocalVariableFeedback[] EMPTY_ARRAY = new ExtractLocalVariableFeedback[0];
+
+  public static final List<ExtractLocalVariableFeedback> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The proposed names for the local variable.
+   */
+  private final List<String> names;
+
+  /**
+   * The offsets of the expressions that would be replaced by a reference to the variable.
+   */
+  private final int[] offsets;
+
+  /**
+   * The lengths of the expressions that would be replaced by a reference to the variable. The
+   * lengths correspond to the offsets. In other words, for a given expression, if the offset of that
+   * expression is offsets[i], then the length of that expression is lengths[i].
+   */
+  private final int[] lengths;
+
+  /**
+   * Constructor for {@link ExtractLocalVariableFeedback}.
+   */
+  public ExtractLocalVariableFeedback(List<String> names, int[] offsets, int[] lengths) {
+    this.names = names;
+    this.offsets = offsets;
+    this.lengths = lengths;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof ExtractLocalVariableFeedback) {
+      ExtractLocalVariableFeedback other = (ExtractLocalVariableFeedback) obj;
+      return
+        ObjectUtilities.equals(other.names, names) &&
+        Arrays.equals(other.offsets, offsets) &&
+        Arrays.equals(other.lengths, lengths);
+    }
+    return false;
+  }
+
+  public static ExtractLocalVariableFeedback fromJson(JsonObject jsonObject) {
+    List<String> names = JsonUtilities.decodeStringList(jsonObject.get("names").getAsJsonArray());
+    int[] offsets = JsonUtilities.decodeIntArray(jsonObject.get("offsets").getAsJsonArray());
+    int[] lengths = JsonUtilities.decodeIntArray(jsonObject.get("lengths").getAsJsonArray());
+    return new ExtractLocalVariableFeedback(names, offsets, lengths);
+  }
+
+  public static List<ExtractLocalVariableFeedback> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<ExtractLocalVariableFeedback> list = new ArrayList<ExtractLocalVariableFeedback>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * The lengths of the expressions that would be replaced by a reference to the variable. The
+   * lengths correspond to the offsets. In other words, for a given expression, if the offset of that
+   * expression is offsets[i], then the length of that expression is lengths[i].
+   */
+  public int[] getLengths() {
+    return lengths;
+  }
+
+  /**
+   * The proposed names for the local variable.
+   */
+  public List<String> getNames() {
+    return names;
+  }
+
+  /**
+   * The offsets of the expressions that would be replaced by a reference to the variable.
+   */
+  public int[] getOffsets() {
+    return offsets;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(names);
+    builder.append(offsets);
+    builder.append(lengths);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    JsonArray jsonArrayNames = new JsonArray();
+    for (String elt : names) {
+      jsonArrayNames.add(new JsonPrimitive(elt));
+    }
+    jsonObject.add("names", jsonArrayNames);
+    JsonArray jsonArrayOffsets = new JsonArray();
+    for (int elt : offsets) {
+      jsonArrayOffsets.add(new JsonPrimitive(elt));
+    }
+    jsonObject.add("offsets", jsonArrayOffsets);
+    JsonArray jsonArrayLengths = new JsonArray();
+    for (int elt : lengths) {
+      jsonArrayLengths.add(new JsonPrimitive(elt));
+    }
+    jsonObject.add("lengths", jsonArrayLengths);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("names=");
+    builder.append(StringUtils.join(names, ", ") + ", ");
+    builder.append("offsets=");
+    builder.append(StringUtils.join(offsets, ", ") + ", ");
+    builder.append("lengths=");
+    builder.append(StringUtils.join(lengths, ", "));
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/ExtractLocalVariableOptions.java b/pkg/analysis_server/tool/spec/generated/java/types/ExtractLocalVariableOptions.java
new file mode 100644
index 0000000..543d20db
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/ExtractLocalVariableOptions.java
@@ -0,0 +1,152 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class ExtractLocalVariableOptions extends RefactoringOptions {
+
+  public static final ExtractLocalVariableOptions[] EMPTY_ARRAY = new ExtractLocalVariableOptions[0];
+
+  public static final List<ExtractLocalVariableOptions> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The name that the local variable should be given.
+   */
+  private String name;
+
+  /**
+   * True if all occurrences of the expression within the scope in which the variable will be defined
+   * should be replaced by a reference to the local variable. The expression used to initiate the
+   * refactoring will always be replaced.
+   */
+  private boolean extractAll;
+
+  /**
+   * Constructor for {@link ExtractLocalVariableOptions}.
+   */
+  public ExtractLocalVariableOptions(String name, boolean extractAll) {
+    this.name = name;
+    this.extractAll = extractAll;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof ExtractLocalVariableOptions) {
+      ExtractLocalVariableOptions other = (ExtractLocalVariableOptions) obj;
+      return
+        ObjectUtilities.equals(other.name, name) &&
+        other.extractAll == extractAll;
+    }
+    return false;
+  }
+
+  public static ExtractLocalVariableOptions fromJson(JsonObject jsonObject) {
+    String name = jsonObject.get("name").getAsString();
+    boolean extractAll = jsonObject.get("extractAll").getAsBoolean();
+    return new ExtractLocalVariableOptions(name, extractAll);
+  }
+
+  public static List<ExtractLocalVariableOptions> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<ExtractLocalVariableOptions> list = new ArrayList<ExtractLocalVariableOptions>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * True if all occurrences of the expression within the scope in which the variable will be defined
+   * should be replaced by a reference to the local variable. The expression used to initiate the
+   * refactoring will always be replaced.
+   */
+  public boolean extractAll() {
+    return extractAll;
+  }
+
+  /**
+   * The name that the local variable should be given.
+   */
+  public String getName() {
+    return name;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(name);
+    builder.append(extractAll);
+    return builder.toHashCode();
+  }
+
+  /**
+   * True if all occurrences of the expression within the scope in which the variable will be defined
+   * should be replaced by a reference to the local variable. The expression used to initiate the
+   * refactoring will always be replaced.
+   */
+  public void setExtractAll(boolean extractAll) {
+    this.extractAll = extractAll;
+  }
+
+  /**
+   * The name that the local variable should be given.
+   */
+  public void setName(String name) {
+    this.name = name;
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("name", name);
+    jsonObject.addProperty("extractAll", extractAll);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("name=");
+    builder.append(name + ", ");
+    builder.append("extractAll=");
+    builder.append(extractAll);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/ExtractMethodFeedback.java b/pkg/analysis_server/tool/spec/generated/java/types/ExtractMethodFeedback.java
new file mode 100644
index 0000000..7e446a9
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/ExtractMethodFeedback.java
@@ -0,0 +1,272 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class ExtractMethodFeedback extends RefactoringFeedback {
+
+  public static final ExtractMethodFeedback[] EMPTY_ARRAY = new ExtractMethodFeedback[0];
+
+  public static final List<ExtractMethodFeedback> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The offset to the beginning of the expression or statements that will be extracted.
+   */
+  private final int offset;
+
+  /**
+   * The length of the expression or statements that will be extracted.
+   */
+  private final int length;
+
+  /**
+   * The proposed return type for the method. If the returned element does not have a declared return
+   * type, this field will contain an empty string.
+   */
+  private final String returnType;
+
+  /**
+   * The proposed names for the method.
+   */
+  private final List<String> names;
+
+  /**
+   * True if a getter could be created rather than a method.
+   */
+  private final boolean canCreateGetter;
+
+  /**
+   * The proposed parameters for the method.
+   */
+  private final List<RefactoringMethodParameter> parameters;
+
+  /**
+   * The offsets of the expressions or statements that would be replaced by an invocation of the
+   * method.
+   */
+  private final int[] offsets;
+
+  /**
+   * The lengths of the expressions or statements that would be replaced by an invocation of the
+   * method. The lengths correspond to the offsets. In other words, for a given expression (or block
+   * of statements), if the offset of that expression is offsets[i], then the length of that
+   * expression is lengths[i].
+   */
+  private final int[] lengths;
+
+  /**
+   * Constructor for {@link ExtractMethodFeedback}.
+   */
+  public ExtractMethodFeedback(int offset, int length, String returnType, List<String> names, boolean canCreateGetter, List<RefactoringMethodParameter> parameters, int[] offsets, int[] lengths) {
+    this.offset = offset;
+    this.length = length;
+    this.returnType = returnType;
+    this.names = names;
+    this.canCreateGetter = canCreateGetter;
+    this.parameters = parameters;
+    this.offsets = offsets;
+    this.lengths = lengths;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof ExtractMethodFeedback) {
+      ExtractMethodFeedback other = (ExtractMethodFeedback) obj;
+      return
+        other.offset == offset &&
+        other.length == length &&
+        ObjectUtilities.equals(other.returnType, returnType) &&
+        ObjectUtilities.equals(other.names, names) &&
+        other.canCreateGetter == canCreateGetter &&
+        ObjectUtilities.equals(other.parameters, parameters) &&
+        Arrays.equals(other.offsets, offsets) &&
+        Arrays.equals(other.lengths, lengths);
+    }
+    return false;
+  }
+
+  public static ExtractMethodFeedback fromJson(JsonObject jsonObject) {
+    int offset = jsonObject.get("offset").getAsInt();
+    int length = jsonObject.get("length").getAsInt();
+    String returnType = jsonObject.get("returnType").getAsString();
+    List<String> names = JsonUtilities.decodeStringList(jsonObject.get("names").getAsJsonArray());
+    boolean canCreateGetter = jsonObject.get("canCreateGetter").getAsBoolean();
+    List<RefactoringMethodParameter> parameters = RefactoringMethodParameter.fromJsonArray(jsonObject.get("parameters").getAsJsonArray());
+    int[] offsets = JsonUtilities.decodeIntArray(jsonObject.get("offsets").getAsJsonArray());
+    int[] lengths = JsonUtilities.decodeIntArray(jsonObject.get("lengths").getAsJsonArray());
+    return new ExtractMethodFeedback(offset, length, returnType, names, canCreateGetter, parameters, offsets, lengths);
+  }
+
+  public static List<ExtractMethodFeedback> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<ExtractMethodFeedback> list = new ArrayList<ExtractMethodFeedback>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * True if a getter could be created rather than a method.
+   */
+  public boolean canCreateGetter() {
+    return canCreateGetter;
+  }
+
+  /**
+   * The length of the expression or statements that will be extracted.
+   */
+  public int getLength() {
+    return length;
+  }
+
+  /**
+   * The lengths of the expressions or statements that would be replaced by an invocation of the
+   * method. The lengths correspond to the offsets. In other words, for a given expression (or block
+   * of statements), if the offset of that expression is offsets[i], then the length of that
+   * expression is lengths[i].
+   */
+  public int[] getLengths() {
+    return lengths;
+  }
+
+  /**
+   * The proposed names for the method.
+   */
+  public List<String> getNames() {
+    return names;
+  }
+
+  /**
+   * The offset to the beginning of the expression or statements that will be extracted.
+   */
+  public int getOffset() {
+    return offset;
+  }
+
+  /**
+   * The offsets of the expressions or statements that would be replaced by an invocation of the
+   * method.
+   */
+  public int[] getOffsets() {
+    return offsets;
+  }
+
+  /**
+   * The proposed parameters for the method.
+   */
+  public List<RefactoringMethodParameter> getParameters() {
+    return parameters;
+  }
+
+  /**
+   * The proposed return type for the method. If the returned element does not have a declared return
+   * type, this field will contain an empty string.
+   */
+  public String getReturnType() {
+    return returnType;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(offset);
+    builder.append(length);
+    builder.append(returnType);
+    builder.append(names);
+    builder.append(canCreateGetter);
+    builder.append(parameters);
+    builder.append(offsets);
+    builder.append(lengths);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("offset", offset);
+    jsonObject.addProperty("length", length);
+    jsonObject.addProperty("returnType", returnType);
+    JsonArray jsonArrayNames = new JsonArray();
+    for (String elt : names) {
+      jsonArrayNames.add(new JsonPrimitive(elt));
+    }
+    jsonObject.add("names", jsonArrayNames);
+    jsonObject.addProperty("canCreateGetter", canCreateGetter);
+    JsonArray jsonArrayParameters = new JsonArray();
+    for (RefactoringMethodParameter elt : parameters) {
+      jsonArrayParameters.add(elt.toJson());
+    }
+    jsonObject.add("parameters", jsonArrayParameters);
+    JsonArray jsonArrayOffsets = new JsonArray();
+    for (int elt : offsets) {
+      jsonArrayOffsets.add(new JsonPrimitive(elt));
+    }
+    jsonObject.add("offsets", jsonArrayOffsets);
+    JsonArray jsonArrayLengths = new JsonArray();
+    for (int elt : lengths) {
+      jsonArrayLengths.add(new JsonPrimitive(elt));
+    }
+    jsonObject.add("lengths", jsonArrayLengths);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("offset=");
+    builder.append(offset + ", ");
+    builder.append("length=");
+    builder.append(length + ", ");
+    builder.append("returnType=");
+    builder.append(returnType + ", ");
+    builder.append("names=");
+    builder.append(StringUtils.join(names, ", ") + ", ");
+    builder.append("canCreateGetter=");
+    builder.append(canCreateGetter + ", ");
+    builder.append("parameters=");
+    builder.append(StringUtils.join(parameters, ", ") + ", ");
+    builder.append("offsets=");
+    builder.append(StringUtils.join(offsets, ", ") + ", ");
+    builder.append("lengths=");
+    builder.append(StringUtils.join(lengths, ", "));
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/ExtractMethodOptions.java b/pkg/analysis_server/tool/spec/generated/java/types/ExtractMethodOptions.java
new file mode 100644
index 0000000..54b2a6b
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/ExtractMethodOptions.java
@@ -0,0 +1,261 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class ExtractMethodOptions extends RefactoringOptions {
+
+  public static final ExtractMethodOptions[] EMPTY_ARRAY = new ExtractMethodOptions[0];
+
+  public static final List<ExtractMethodOptions> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The return type that should be defined for the method.
+   */
+  private String returnType;
+
+  /**
+   * True if a getter should be created rather than a method. It is an error if this field is true
+   * and the list of parameters is non-empty.
+   */
+  private boolean createGetter;
+
+  /**
+   * The name that the method should be given.
+   */
+  private String name;
+
+  /**
+   * The parameters that should be defined for the method.
+   *
+   * It is an error if a REQUIRED or NAMED parameter follows a POSITIONAL parameter. It is an error
+   * if a REQUIRED or POSITIONAL parameter follows a NAMED parameter.
+   *
+   * - To change the order and/or update proposed parameters, add parameters with the same
+   *   identifiers as proposed.
+   * - To add new parameters, omit their identifier.
+   * - To remove some parameters, omit them in this list.
+   */
+  private List<RefactoringMethodParameter> parameters;
+
+  /**
+   * True if all occurrences of the expression or statements should be replaced by an invocation of
+   * the method. The expression or statements used to initiate the refactoring will always be
+   * replaced.
+   */
+  private boolean extractAll;
+
+  /**
+   * Constructor for {@link ExtractMethodOptions}.
+   */
+  public ExtractMethodOptions(String returnType, boolean createGetter, String name, List<RefactoringMethodParameter> parameters, boolean extractAll) {
+    this.returnType = returnType;
+    this.createGetter = createGetter;
+    this.name = name;
+    this.parameters = parameters;
+    this.extractAll = extractAll;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof ExtractMethodOptions) {
+      ExtractMethodOptions other = (ExtractMethodOptions) obj;
+      return
+        ObjectUtilities.equals(other.returnType, returnType) &&
+        other.createGetter == createGetter &&
+        ObjectUtilities.equals(other.name, name) &&
+        ObjectUtilities.equals(other.parameters, parameters) &&
+        other.extractAll == extractAll;
+    }
+    return false;
+  }
+
+  public static ExtractMethodOptions fromJson(JsonObject jsonObject) {
+    String returnType = jsonObject.get("returnType").getAsString();
+    boolean createGetter = jsonObject.get("createGetter").getAsBoolean();
+    String name = jsonObject.get("name").getAsString();
+    List<RefactoringMethodParameter> parameters = RefactoringMethodParameter.fromJsonArray(jsonObject.get("parameters").getAsJsonArray());
+    boolean extractAll = jsonObject.get("extractAll").getAsBoolean();
+    return new ExtractMethodOptions(returnType, createGetter, name, parameters, extractAll);
+  }
+
+  public static List<ExtractMethodOptions> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<ExtractMethodOptions> list = new ArrayList<ExtractMethodOptions>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * True if a getter should be created rather than a method. It is an error if this field is true
+   * and the list of parameters is non-empty.
+   */
+  public boolean createGetter() {
+    return createGetter;
+  }
+
+  /**
+   * True if all occurrences of the expression or statements should be replaced by an invocation of
+   * the method. The expression or statements used to initiate the refactoring will always be
+   * replaced.
+   */
+  public boolean extractAll() {
+    return extractAll;
+  }
+
+  /**
+   * The name that the method should be given.
+   */
+  public String getName() {
+    return name;
+  }
+
+  /**
+   * The parameters that should be defined for the method.
+   *
+   * It is an error if a REQUIRED or NAMED parameter follows a POSITIONAL parameter. It is an error
+   * if a REQUIRED or POSITIONAL parameter follows a NAMED parameter.
+   *
+   * - To change the order and/or update proposed parameters, add parameters with the same
+   *   identifiers as proposed.
+   * - To add new parameters, omit their identifier.
+   * - To remove some parameters, omit them in this list.
+   */
+  public List<RefactoringMethodParameter> getParameters() {
+    return parameters;
+  }
+
+  /**
+   * The return type that should be defined for the method.
+   */
+  public String getReturnType() {
+    return returnType;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(returnType);
+    builder.append(createGetter);
+    builder.append(name);
+    builder.append(parameters);
+    builder.append(extractAll);
+    return builder.toHashCode();
+  }
+
+  /**
+   * True if a getter should be created rather than a method. It is an error if this field is true
+   * and the list of parameters is non-empty.
+   */
+  public void setCreateGetter(boolean createGetter) {
+    this.createGetter = createGetter;
+  }
+
+  /**
+   * True if all occurrences of the expression or statements should be replaced by an invocation of
+   * the method. The expression or statements used to initiate the refactoring will always be
+   * replaced.
+   */
+  public void setExtractAll(boolean extractAll) {
+    this.extractAll = extractAll;
+  }
+
+  /**
+   * The name that the method should be given.
+   */
+  public void setName(String name) {
+    this.name = name;
+  }
+
+  /**
+   * The parameters that should be defined for the method.
+   *
+   * It is an error if a REQUIRED or NAMED parameter follows a POSITIONAL parameter. It is an error
+   * if a REQUIRED or POSITIONAL parameter follows a NAMED parameter.
+   *
+   * - To change the order and/or update proposed parameters, add parameters with the same
+   *   identifiers as proposed.
+   * - To add new parameters, omit their identifier.
+   * - To remove some parameters, omit them in this list.
+   */
+  public void setParameters(List<RefactoringMethodParameter> parameters) {
+    this.parameters = parameters;
+  }
+
+  /**
+   * The return type that should be defined for the method.
+   */
+  public void setReturnType(String returnType) {
+    this.returnType = returnType;
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("returnType", returnType);
+    jsonObject.addProperty("createGetter", createGetter);
+    jsonObject.addProperty("name", name);
+    JsonArray jsonArrayParameters = new JsonArray();
+    for (RefactoringMethodParameter elt : parameters) {
+      jsonArrayParameters.add(elt.toJson());
+    }
+    jsonObject.add("parameters", jsonArrayParameters);
+    jsonObject.addProperty("extractAll", extractAll);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("returnType=");
+    builder.append(returnType + ", ");
+    builder.append("createGetter=");
+    builder.append(createGetter + ", ");
+    builder.append("name=");
+    builder.append(name + ", ");
+    builder.append("parameters=");
+    builder.append(StringUtils.join(parameters, ", ") + ", ");
+    builder.append("extractAll=");
+    builder.append(extractAll);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/FoldingKind.java b/pkg/analysis_server/tool/spec/generated/java/types/FoldingKind.java
new file mode 100644
index 0000000..f48452c
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/FoldingKind.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+/**
+ * An enumeration of the kinds of folding regions.
+ *
+ * @coverage dart.server.generated.types
+ */
+public class FoldingKind {
+
+  public static final String COMMENT = "COMMENT";
+
+  public static final String CLASS_MEMBER = "CLASS_MEMBER";
+
+  public static final String DIRECTIVES = "DIRECTIVES";
+
+  public static final String DOCUMENTATION_COMMENT = "DOCUMENTATION_COMMENT";
+
+  public static final String TOP_LEVEL_DECLARATION = "TOP_LEVEL_DECLARATION";
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/FoldingRegion.java b/pkg/analysis_server/tool/spec/generated/java/types/FoldingRegion.java
new file mode 100644
index 0000000..75b0736
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/FoldingRegion.java
@@ -0,0 +1,153 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * A description of a region that can be folded.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class FoldingRegion {
+
+  public static final FoldingRegion[] EMPTY_ARRAY = new FoldingRegion[0];
+
+  public static final List<FoldingRegion> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The kind of the region.
+   */
+  private final String kind;
+
+  /**
+   * The offset of the region to be folded.
+   */
+  private final int offset;
+
+  /**
+   * The length of the region to be folded.
+   */
+  private final int length;
+
+  /**
+   * Constructor for {@link FoldingRegion}.
+   */
+  public FoldingRegion(String kind, int offset, int length) {
+    this.kind = kind;
+    this.offset = offset;
+    this.length = length;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof FoldingRegion) {
+      FoldingRegion other = (FoldingRegion) obj;
+      return
+        ObjectUtilities.equals(other.kind, kind) &&
+        other.offset == offset &&
+        other.length == length;
+    }
+    return false;
+  }
+
+  public static FoldingRegion fromJson(JsonObject jsonObject) {
+    String kind = jsonObject.get("kind").getAsString();
+    int offset = jsonObject.get("offset").getAsInt();
+    int length = jsonObject.get("length").getAsInt();
+    return new FoldingRegion(kind, offset, length);
+  }
+
+  public static List<FoldingRegion> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<FoldingRegion> list = new ArrayList<FoldingRegion>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * The kind of the region.
+   */
+  public String getKind() {
+    return kind;
+  }
+
+  /**
+   * The length of the region to be folded.
+   */
+  public int getLength() {
+    return length;
+  }
+
+  /**
+   * The offset of the region to be folded.
+   */
+  public int getOffset() {
+    return offset;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(kind);
+    builder.append(offset);
+    builder.append(length);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("kind", kind);
+    jsonObject.addProperty("offset", offset);
+    jsonObject.addProperty("length", length);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("kind=");
+    builder.append(kind + ", ");
+    builder.append("offset=");
+    builder.append(offset + ", ");
+    builder.append("length=");
+    builder.append(length);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/HighlightRegion.java b/pkg/analysis_server/tool/spec/generated/java/types/HighlightRegion.java
new file mode 100644
index 0000000..11b64e0
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/HighlightRegion.java
@@ -0,0 +1,157 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * A description of a region that could have special highlighting associated with it.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class HighlightRegion {
+
+  public static final HighlightRegion[] EMPTY_ARRAY = new HighlightRegion[0];
+
+  public static final List<HighlightRegion> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The type of highlight associated with the region.
+   */
+  private final String type;
+
+  /**
+   * The offset of the region to be highlighted.
+   */
+  private final int offset;
+
+  /**
+   * The length of the region to be highlighted.
+   */
+  private final int length;
+
+  /**
+   * Constructor for {@link HighlightRegion}.
+   */
+  public HighlightRegion(String type, int offset, int length) {
+    this.type = type;
+    this.offset = offset;
+    this.length = length;
+  }
+
+  public boolean containsInclusive(int x) {
+    return offset <= x && x <= offset + length;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof HighlightRegion) {
+      HighlightRegion other = (HighlightRegion) obj;
+      return
+        ObjectUtilities.equals(other.type, type) &&
+        other.offset == offset &&
+        other.length == length;
+    }
+    return false;
+  }
+
+  public static HighlightRegion fromJson(JsonObject jsonObject) {
+    String type = jsonObject.get("type").getAsString();
+    int offset = jsonObject.get("offset").getAsInt();
+    int length = jsonObject.get("length").getAsInt();
+    return new HighlightRegion(type, offset, length);
+  }
+
+  public static List<HighlightRegion> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<HighlightRegion> list = new ArrayList<HighlightRegion>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * The length of the region to be highlighted.
+   */
+  public int getLength() {
+    return length;
+  }
+
+  /**
+   * The offset of the region to be highlighted.
+   */
+  public int getOffset() {
+    return offset;
+  }
+
+  /**
+   * The type of highlight associated with the region.
+   */
+  public String getType() {
+    return type;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(type);
+    builder.append(offset);
+    builder.append(length);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("type", type);
+    jsonObject.addProperty("offset", offset);
+    jsonObject.addProperty("length", length);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("type=");
+    builder.append(type + ", ");
+    builder.append("offset=");
+    builder.append(offset + ", ");
+    builder.append("length=");
+    builder.append(length);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/HighlightRegionType.java b/pkg/analysis_server/tool/spec/generated/java/types/HighlightRegionType.java
new file mode 100644
index 0000000..cf9d006
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/HighlightRegionType.java
@@ -0,0 +1,102 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+/**
+ * An enumeration of the kinds of highlighting that can be applied to files.
+ *
+ * @coverage dart.server.generated.types
+ */
+public class HighlightRegionType {
+
+  public static final String ANNOTATION = "ANNOTATION";
+
+  public static final String BUILT_IN = "BUILT_IN";
+
+  public static final String CLASS = "CLASS";
+
+  public static final String COMMENT_BLOCK = "COMMENT_BLOCK";
+
+  public static final String COMMENT_DOCUMENTATION = "COMMENT_DOCUMENTATION";
+
+  public static final String COMMENT_END_OF_LINE = "COMMENT_END_OF_LINE";
+
+  public static final String CONSTRUCTOR = "CONSTRUCTOR";
+
+  public static final String DIRECTIVE = "DIRECTIVE";
+
+  public static final String DYNAMIC_TYPE = "DYNAMIC_TYPE";
+
+  public static final String ENUM = "ENUM";
+
+  public static final String ENUM_CONSTANT = "ENUM_CONSTANT";
+
+  public static final String FIELD = "FIELD";
+
+  public static final String FIELD_STATIC = "FIELD_STATIC";
+
+  public static final String FUNCTION = "FUNCTION";
+
+  public static final String FUNCTION_DECLARATION = "FUNCTION_DECLARATION";
+
+  public static final String FUNCTION_TYPE_ALIAS = "FUNCTION_TYPE_ALIAS";
+
+  public static final String GETTER_DECLARATION = "GETTER_DECLARATION";
+
+  public static final String IDENTIFIER_DEFAULT = "IDENTIFIER_DEFAULT";
+
+  public static final String IMPORT_PREFIX = "IMPORT_PREFIX";
+
+  public static final String KEYWORD = "KEYWORD";
+
+  public static final String LABEL = "LABEL";
+
+  public static final String LITERAL_BOOLEAN = "LITERAL_BOOLEAN";
+
+  public static final String LITERAL_DOUBLE = "LITERAL_DOUBLE";
+
+  public static final String LITERAL_INTEGER = "LITERAL_INTEGER";
+
+  public static final String LITERAL_LIST = "LITERAL_LIST";
+
+  public static final String LITERAL_MAP = "LITERAL_MAP";
+
+  public static final String LITERAL_STRING = "LITERAL_STRING";
+
+  public static final String LOCAL_VARIABLE = "LOCAL_VARIABLE";
+
+  public static final String LOCAL_VARIABLE_DECLARATION = "LOCAL_VARIABLE_DECLARATION";
+
+  public static final String METHOD = "METHOD";
+
+  public static final String METHOD_DECLARATION = "METHOD_DECLARATION";
+
+  public static final String METHOD_DECLARATION_STATIC = "METHOD_DECLARATION_STATIC";
+
+  public static final String METHOD_STATIC = "METHOD_STATIC";
+
+  public static final String PARAMETER = "PARAMETER";
+
+  public static final String SETTER_DECLARATION = "SETTER_DECLARATION";
+
+  public static final String TOP_LEVEL_VARIABLE = "TOP_LEVEL_VARIABLE";
+
+  public static final String TYPE_NAME_DYNAMIC = "TYPE_NAME_DYNAMIC";
+
+  public static final String TYPE_PARAMETER = "TYPE_PARAMETER";
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/HoverInformation.java b/pkg/analysis_server/tool/spec/generated/java/types/HoverInformation.java
new file mode 100644
index 0000000..b203bcb
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/HoverInformation.java
@@ -0,0 +1,351 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * The hover information associated with a specific location.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class HoverInformation {
+
+  public static final HoverInformation[] EMPTY_ARRAY = new HoverInformation[0];
+
+  public static final List<HoverInformation> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The offset of the range of characters that encompases the cursor position and has the same hover
+   * information as the cursor position.
+   */
+  private final int offset;
+
+  /**
+   * The length of the range of characters that encompases the cursor position and has the same hover
+   * information as the cursor position.
+   */
+  private final int length;
+
+  /**
+   * The path to the defining compilation unit of the library in which the referenced element is
+   * declared. This data is omitted if there is no referenced element, or if the element is declared
+   * inside an HTML file.
+   */
+  private final String containingLibraryPath;
+
+  /**
+   * The name of the library in which the referenced element is declared. This data is omitted if
+   * there is no referenced element, or if the element is declared inside an HTML file.
+   */
+  private final String containingLibraryName;
+
+  /**
+   * A human-readable description of the class declaring the element being referenced. This data is
+   * omitted if there is no referenced element, or if the element is not a class member.
+   */
+  private final String containingClassDescription;
+
+  /**
+   * The dartdoc associated with the referenced element. Other than the removal of the comment
+   * delimiters, including leading asterisks in the case of a block comment, the dartdoc is
+   * unprocessed markdown. This data is omitted if there is no referenced element, or if the element
+   * has no dartdoc.
+   */
+  private final String dartdoc;
+
+  /**
+   * A human-readable description of the element being referenced. This data is omitted if there is
+   * no referenced element.
+   */
+  private final String elementDescription;
+
+  /**
+   * A human-readable description of the kind of element being referenced (such as “class” or
+   * “function type alias”). This data is omitted if there is no referenced element.
+   */
+  private final String elementKind;
+
+  /**
+   * A human-readable description of the parameter corresponding to the expression being hovered
+   * over. This data is omitted if the location is not in an argument to a function.
+   */
+  private final String parameter;
+
+  /**
+   * The name of the propagated type of the expression. This data is omitted if the location does not
+   * correspond to an expression or if there is no propagated type information.
+   */
+  private final String propagatedType;
+
+  /**
+   * The name of the static type of the expression. This data is omitted if the location does not
+   * correspond to an expression.
+   */
+  private final String staticType;
+
+  /**
+   * Constructor for {@link HoverInformation}.
+   */
+  public HoverInformation(int offset, int length, String containingLibraryPath, String containingLibraryName, String containingClassDescription, String dartdoc, String elementDescription, String elementKind, String parameter, String propagatedType, String staticType) {
+    this.offset = offset;
+    this.length = length;
+    this.containingLibraryPath = containingLibraryPath;
+    this.containingLibraryName = containingLibraryName;
+    this.containingClassDescription = containingClassDescription;
+    this.dartdoc = dartdoc;
+    this.elementDescription = elementDescription;
+    this.elementKind = elementKind;
+    this.parameter = parameter;
+    this.propagatedType = propagatedType;
+    this.staticType = staticType;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof HoverInformation) {
+      HoverInformation other = (HoverInformation) obj;
+      return
+        other.offset == offset &&
+        other.length == length &&
+        ObjectUtilities.equals(other.containingLibraryPath, containingLibraryPath) &&
+        ObjectUtilities.equals(other.containingLibraryName, containingLibraryName) &&
+        ObjectUtilities.equals(other.containingClassDescription, containingClassDescription) &&
+        ObjectUtilities.equals(other.dartdoc, dartdoc) &&
+        ObjectUtilities.equals(other.elementDescription, elementDescription) &&
+        ObjectUtilities.equals(other.elementKind, elementKind) &&
+        ObjectUtilities.equals(other.parameter, parameter) &&
+        ObjectUtilities.equals(other.propagatedType, propagatedType) &&
+        ObjectUtilities.equals(other.staticType, staticType);
+    }
+    return false;
+  }
+
+  public static HoverInformation fromJson(JsonObject jsonObject) {
+    int offset = jsonObject.get("offset").getAsInt();
+    int length = jsonObject.get("length").getAsInt();
+    String containingLibraryPath = jsonObject.get("containingLibraryPath") == null ? null : jsonObject.get("containingLibraryPath").getAsString();
+    String containingLibraryName = jsonObject.get("containingLibraryName") == null ? null : jsonObject.get("containingLibraryName").getAsString();
+    String containingClassDescription = jsonObject.get("containingClassDescription") == null ? null : jsonObject.get("containingClassDescription").getAsString();
+    String dartdoc = jsonObject.get("dartdoc") == null ? null : jsonObject.get("dartdoc").getAsString();
+    String elementDescription = jsonObject.get("elementDescription") == null ? null : jsonObject.get("elementDescription").getAsString();
+    String elementKind = jsonObject.get("elementKind") == null ? null : jsonObject.get("elementKind").getAsString();
+    String parameter = jsonObject.get("parameter") == null ? null : jsonObject.get("parameter").getAsString();
+    String propagatedType = jsonObject.get("propagatedType") == null ? null : jsonObject.get("propagatedType").getAsString();
+    String staticType = jsonObject.get("staticType") == null ? null : jsonObject.get("staticType").getAsString();
+    return new HoverInformation(offset, length, containingLibraryPath, containingLibraryName, containingClassDescription, dartdoc, elementDescription, elementKind, parameter, propagatedType, staticType);
+  }
+
+  public static List<HoverInformation> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<HoverInformation> list = new ArrayList<HoverInformation>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * A human-readable description of the class declaring the element being referenced. This data is
+   * omitted if there is no referenced element, or if the element is not a class member.
+   */
+  public String getContainingClassDescription() {
+    return containingClassDescription;
+  }
+
+  /**
+   * The name of the library in which the referenced element is declared. This data is omitted if
+   * there is no referenced element, or if the element is declared inside an HTML file.
+   */
+  public String getContainingLibraryName() {
+    return containingLibraryName;
+  }
+
+  /**
+   * The path to the defining compilation unit of the library in which the referenced element is
+   * declared. This data is omitted if there is no referenced element, or if the element is declared
+   * inside an HTML file.
+   */
+  public String getContainingLibraryPath() {
+    return containingLibraryPath;
+  }
+
+  /**
+   * The dartdoc associated with the referenced element. Other than the removal of the comment
+   * delimiters, including leading asterisks in the case of a block comment, the dartdoc is
+   * unprocessed markdown. This data is omitted if there is no referenced element, or if the element
+   * has no dartdoc.
+   */
+  public String getDartdoc() {
+    return dartdoc;
+  }
+
+  /**
+   * A human-readable description of the element being referenced. This data is omitted if there is
+   * no referenced element.
+   */
+  public String getElementDescription() {
+    return elementDescription;
+  }
+
+  /**
+   * A human-readable description of the kind of element being referenced (such as “class” or
+   * “function type alias”). This data is omitted if there is no referenced element.
+   */
+  public String getElementKind() {
+    return elementKind;
+  }
+
+  /**
+   * The length of the range of characters that encompases the cursor position and has the same hover
+   * information as the cursor position.
+   */
+  public int getLength() {
+    return length;
+  }
+
+  /**
+   * The offset of the range of characters that encompases the cursor position and has the same hover
+   * information as the cursor position.
+   */
+  public int getOffset() {
+    return offset;
+  }
+
+  /**
+   * A human-readable description of the parameter corresponding to the expression being hovered
+   * over. This data is omitted if the location is not in an argument to a function.
+   */
+  public String getParameter() {
+    return parameter;
+  }
+
+  /**
+   * The name of the propagated type of the expression. This data is omitted if the location does not
+   * correspond to an expression or if there is no propagated type information.
+   */
+  public String getPropagatedType() {
+    return propagatedType;
+  }
+
+  /**
+   * The name of the static type of the expression. This data is omitted if the location does not
+   * correspond to an expression.
+   */
+  public String getStaticType() {
+    return staticType;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(offset);
+    builder.append(length);
+    builder.append(containingLibraryPath);
+    builder.append(containingLibraryName);
+    builder.append(containingClassDescription);
+    builder.append(dartdoc);
+    builder.append(elementDescription);
+    builder.append(elementKind);
+    builder.append(parameter);
+    builder.append(propagatedType);
+    builder.append(staticType);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("offset", offset);
+    jsonObject.addProperty("length", length);
+    if (containingLibraryPath != null) {
+      jsonObject.addProperty("containingLibraryPath", containingLibraryPath);
+    }
+    if (containingLibraryName != null) {
+      jsonObject.addProperty("containingLibraryName", containingLibraryName);
+    }
+    if (containingClassDescription != null) {
+      jsonObject.addProperty("containingClassDescription", containingClassDescription);
+    }
+    if (dartdoc != null) {
+      jsonObject.addProperty("dartdoc", dartdoc);
+    }
+    if (elementDescription != null) {
+      jsonObject.addProperty("elementDescription", elementDescription);
+    }
+    if (elementKind != null) {
+      jsonObject.addProperty("elementKind", elementKind);
+    }
+    if (parameter != null) {
+      jsonObject.addProperty("parameter", parameter);
+    }
+    if (propagatedType != null) {
+      jsonObject.addProperty("propagatedType", propagatedType);
+    }
+    if (staticType != null) {
+      jsonObject.addProperty("staticType", staticType);
+    }
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("offset=");
+    builder.append(offset + ", ");
+    builder.append("length=");
+    builder.append(length + ", ");
+    builder.append("containingLibraryPath=");
+    builder.append(containingLibraryPath + ", ");
+    builder.append("containingLibraryName=");
+    builder.append(containingLibraryName + ", ");
+    builder.append("containingClassDescription=");
+    builder.append(containingClassDescription + ", ");
+    builder.append("dartdoc=");
+    builder.append(dartdoc + ", ");
+    builder.append("elementDescription=");
+    builder.append(elementDescription + ", ");
+    builder.append("elementKind=");
+    builder.append(elementKind + ", ");
+    builder.append("parameter=");
+    builder.append(parameter + ", ");
+    builder.append("propagatedType=");
+    builder.append(propagatedType + ", ");
+    builder.append("staticType=");
+    builder.append(staticType);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/InlineLocalVariableFeedback.java b/pkg/analysis_server/tool/spec/generated/java/types/InlineLocalVariableFeedback.java
new file mode 100644
index 0000000..4e8503b
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/InlineLocalVariableFeedback.java
@@ -0,0 +1,132 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class InlineLocalVariableFeedback extends RefactoringFeedback {
+
+  public static final InlineLocalVariableFeedback[] EMPTY_ARRAY = new InlineLocalVariableFeedback[0];
+
+  public static final List<InlineLocalVariableFeedback> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The name of the variable being inlined.
+   */
+  private final String name;
+
+  /**
+   * The number of times the variable occurs.
+   */
+  private final int occurrences;
+
+  /**
+   * Constructor for {@link InlineLocalVariableFeedback}.
+   */
+  public InlineLocalVariableFeedback(String name, int occurrences) {
+    this.name = name;
+    this.occurrences = occurrences;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof InlineLocalVariableFeedback) {
+      InlineLocalVariableFeedback other = (InlineLocalVariableFeedback) obj;
+      return
+        ObjectUtilities.equals(other.name, name) &&
+        other.occurrences == occurrences;
+    }
+    return false;
+  }
+
+  public static InlineLocalVariableFeedback fromJson(JsonObject jsonObject) {
+    String name = jsonObject.get("name").getAsString();
+    int occurrences = jsonObject.get("occurrences").getAsInt();
+    return new InlineLocalVariableFeedback(name, occurrences);
+  }
+
+  public static List<InlineLocalVariableFeedback> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<InlineLocalVariableFeedback> list = new ArrayList<InlineLocalVariableFeedback>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * The name of the variable being inlined.
+   */
+  public String getName() {
+    return name;
+  }
+
+  /**
+   * The number of times the variable occurs.
+   */
+  public int getOccurrences() {
+    return occurrences;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(name);
+    builder.append(occurrences);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("name", name);
+    jsonObject.addProperty("occurrences", occurrences);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("name=");
+    builder.append(name + ", ");
+    builder.append("occurrences=");
+    builder.append(occurrences);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/InlineMethodFeedback.java b/pkg/analysis_server/tool/spec/generated/java/types/InlineMethodFeedback.java
new file mode 100644
index 0000000..6cd3e0c
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/InlineMethodFeedback.java
@@ -0,0 +1,155 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class InlineMethodFeedback extends RefactoringFeedback {
+
+  public static final InlineMethodFeedback[] EMPTY_ARRAY = new InlineMethodFeedback[0];
+
+  public static final List<InlineMethodFeedback> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The name of the class enclosing the method being inlined. If not a class member is being
+   * inlined, this field will be absent.
+   */
+  private final String className;
+
+  /**
+   * The name of the method (or function) being inlined.
+   */
+  private final String methodName;
+
+  /**
+   * True if the declaration of the method is selected. So all references should be inlined.
+   */
+  private final boolean isDeclaration;
+
+  /**
+   * Constructor for {@link InlineMethodFeedback}.
+   */
+  public InlineMethodFeedback(String className, String methodName, boolean isDeclaration) {
+    this.className = className;
+    this.methodName = methodName;
+    this.isDeclaration = isDeclaration;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof InlineMethodFeedback) {
+      InlineMethodFeedback other = (InlineMethodFeedback) obj;
+      return
+        ObjectUtilities.equals(other.className, className) &&
+        ObjectUtilities.equals(other.methodName, methodName) &&
+        other.isDeclaration == isDeclaration;
+    }
+    return false;
+  }
+
+  public static InlineMethodFeedback fromJson(JsonObject jsonObject) {
+    String className = jsonObject.get("className") == null ? null : jsonObject.get("className").getAsString();
+    String methodName = jsonObject.get("methodName").getAsString();
+    boolean isDeclaration = jsonObject.get("isDeclaration").getAsBoolean();
+    return new InlineMethodFeedback(className, methodName, isDeclaration);
+  }
+
+  public static List<InlineMethodFeedback> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<InlineMethodFeedback> list = new ArrayList<InlineMethodFeedback>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * The name of the class enclosing the method being inlined. If not a class member is being
+   * inlined, this field will be absent.
+   */
+  public String getClassName() {
+    return className;
+  }
+
+  /**
+   * True if the declaration of the method is selected. So all references should be inlined.
+   */
+  public boolean isDeclaration() {
+    return isDeclaration;
+  }
+
+  /**
+   * The name of the method (or function) being inlined.
+   */
+  public String getMethodName() {
+    return methodName;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(className);
+    builder.append(methodName);
+    builder.append(isDeclaration);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    if (className != null) {
+      jsonObject.addProperty("className", className);
+    }
+    jsonObject.addProperty("methodName", methodName);
+    jsonObject.addProperty("isDeclaration", isDeclaration);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("className=");
+    builder.append(className + ", ");
+    builder.append("methodName=");
+    builder.append(methodName + ", ");
+    builder.append("isDeclaration=");
+    builder.append(isDeclaration);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/InlineMethodOptions.java b/pkg/analysis_server/tool/spec/generated/java/types/InlineMethodOptions.java
new file mode 100644
index 0000000..707977e
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/InlineMethodOptions.java
@@ -0,0 +1,152 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class InlineMethodOptions extends RefactoringOptions {
+
+  public static final InlineMethodOptions[] EMPTY_ARRAY = new InlineMethodOptions[0];
+
+  public static final List<InlineMethodOptions> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * True if the method being inlined should be removed. It is an error if this field is true and
+   * inlineAll is false.
+   */
+  private boolean deleteSource;
+
+  /**
+   * True if all invocations of the method should be inlined, or false if only the invocation site
+   * used to create this refactoring should be inlined.
+   */
+  private boolean inlineAll;
+
+  /**
+   * Constructor for {@link InlineMethodOptions}.
+   */
+  public InlineMethodOptions(boolean deleteSource, boolean inlineAll) {
+    this.deleteSource = deleteSource;
+    this.inlineAll = inlineAll;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof InlineMethodOptions) {
+      InlineMethodOptions other = (InlineMethodOptions) obj;
+      return
+        other.deleteSource == deleteSource &&
+        other.inlineAll == inlineAll;
+    }
+    return false;
+  }
+
+  public static InlineMethodOptions fromJson(JsonObject jsonObject) {
+    boolean deleteSource = jsonObject.get("deleteSource").getAsBoolean();
+    boolean inlineAll = jsonObject.get("inlineAll").getAsBoolean();
+    return new InlineMethodOptions(deleteSource, inlineAll);
+  }
+
+  public static List<InlineMethodOptions> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<InlineMethodOptions> list = new ArrayList<InlineMethodOptions>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * True if the method being inlined should be removed. It is an error if this field is true and
+   * inlineAll is false.
+   */
+  public boolean deleteSource() {
+    return deleteSource;
+  }
+
+  /**
+   * True if all invocations of the method should be inlined, or false if only the invocation site
+   * used to create this refactoring should be inlined.
+   */
+  public boolean inlineAll() {
+    return inlineAll;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(deleteSource);
+    builder.append(inlineAll);
+    return builder.toHashCode();
+  }
+
+  /**
+   * True if the method being inlined should be removed. It is an error if this field is true and
+   * inlineAll is false.
+   */
+  public void setDeleteSource(boolean deleteSource) {
+    this.deleteSource = deleteSource;
+  }
+
+  /**
+   * True if all invocations of the method should be inlined, or false if only the invocation site
+   * used to create this refactoring should be inlined.
+   */
+  public void setInlineAll(boolean inlineAll) {
+    this.inlineAll = inlineAll;
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("deleteSource", deleteSource);
+    jsonObject.addProperty("inlineAll", inlineAll);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("deleteSource=");
+    builder.append(deleteSource + ", ");
+    builder.append("inlineAll=");
+    builder.append(inlineAll);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/LinkedEditGroup.java b/pkg/analysis_server/tool/spec/generated/java/types/LinkedEditGroup.java
new file mode 100644
index 0000000..06e1e26
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/LinkedEditGroup.java
@@ -0,0 +1,165 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * A collection of positions that should be linked (edited simultaneously) for the purposes of
+ * updating code after a source change. For example, if a set of edits introduced a new variable
+ * name, the group would contain all of the positions of the variable name so that if the client
+ * wanted to let the user edit the variable name after the operation, all occurrences of the name
+ * could be edited simultaneously.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class LinkedEditGroup {
+
+  public static final LinkedEditGroup[] EMPTY_ARRAY = new LinkedEditGroup[0];
+
+  public static final List<LinkedEditGroup> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The positions of the regions that should be edited simultaneously.
+   */
+  private final List<Position> positions;
+
+  /**
+   * The length of the regions that should be edited simultaneously.
+   */
+  private final int length;
+
+  /**
+   * Pre-computed suggestions for what every region might want to be changed to.
+   */
+  private final List<LinkedEditSuggestion> suggestions;
+
+  /**
+   * Constructor for {@link LinkedEditGroup}.
+   */
+  public LinkedEditGroup(List<Position> positions, int length, List<LinkedEditSuggestion> suggestions) {
+    this.positions = positions;
+    this.length = length;
+    this.suggestions = suggestions;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof LinkedEditGroup) {
+      LinkedEditGroup other = (LinkedEditGroup) obj;
+      return
+        ObjectUtilities.equals(other.positions, positions) &&
+        other.length == length &&
+        ObjectUtilities.equals(other.suggestions, suggestions);
+    }
+    return false;
+  }
+
+  public static LinkedEditGroup fromJson(JsonObject jsonObject) {
+    List<Position> positions = Position.fromJsonArray(jsonObject.get("positions").getAsJsonArray());
+    int length = jsonObject.get("length").getAsInt();
+    List<LinkedEditSuggestion> suggestions = LinkedEditSuggestion.fromJsonArray(jsonObject.get("suggestions").getAsJsonArray());
+    return new LinkedEditGroup(positions, length, suggestions);
+  }
+
+  public static List<LinkedEditGroup> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<LinkedEditGroup> list = new ArrayList<LinkedEditGroup>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * The length of the regions that should be edited simultaneously.
+   */
+  public int getLength() {
+    return length;
+  }
+
+  /**
+   * The positions of the regions that should be edited simultaneously.
+   */
+  public List<Position> getPositions() {
+    return positions;
+  }
+
+  /**
+   * Pre-computed suggestions for what every region might want to be changed to.
+   */
+  public List<LinkedEditSuggestion> getSuggestions() {
+    return suggestions;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(positions);
+    builder.append(length);
+    builder.append(suggestions);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    JsonArray jsonArrayPositions = new JsonArray();
+    for (Position elt : positions) {
+      jsonArrayPositions.add(elt.toJson());
+    }
+    jsonObject.add("positions", jsonArrayPositions);
+    jsonObject.addProperty("length", length);
+    JsonArray jsonArraySuggestions = new JsonArray();
+    for (LinkedEditSuggestion elt : suggestions) {
+      jsonArraySuggestions.add(elt.toJson());
+    }
+    jsonObject.add("suggestions", jsonArraySuggestions);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("positions=");
+    builder.append(StringUtils.join(positions, ", ") + ", ");
+    builder.append("length=");
+    builder.append(length + ", ");
+    builder.append("suggestions=");
+    builder.append(StringUtils.join(suggestions, ", "));
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/LinkedEditSuggestion.java b/pkg/analysis_server/tool/spec/generated/java/types/LinkedEditSuggestion.java
new file mode 100644
index 0000000..4301ff1
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/LinkedEditSuggestion.java
@@ -0,0 +1,135 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * A suggestion of a value that could be used to replace all of the linked edit regions in a
+ * LinkedEditGroup.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class LinkedEditSuggestion {
+
+  public static final LinkedEditSuggestion[] EMPTY_ARRAY = new LinkedEditSuggestion[0];
+
+  public static final List<LinkedEditSuggestion> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The value that could be used to replace all of the linked edit regions.
+   */
+  private final String value;
+
+  /**
+   * The kind of value being proposed.
+   */
+  private final String kind;
+
+  /**
+   * Constructor for {@link LinkedEditSuggestion}.
+   */
+  public LinkedEditSuggestion(String value, String kind) {
+    this.value = value;
+    this.kind = kind;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof LinkedEditSuggestion) {
+      LinkedEditSuggestion other = (LinkedEditSuggestion) obj;
+      return
+        ObjectUtilities.equals(other.value, value) &&
+        ObjectUtilities.equals(other.kind, kind);
+    }
+    return false;
+  }
+
+  public static LinkedEditSuggestion fromJson(JsonObject jsonObject) {
+    String value = jsonObject.get("value").getAsString();
+    String kind = jsonObject.get("kind").getAsString();
+    return new LinkedEditSuggestion(value, kind);
+  }
+
+  public static List<LinkedEditSuggestion> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<LinkedEditSuggestion> list = new ArrayList<LinkedEditSuggestion>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * The kind of value being proposed.
+   */
+  public String getKind() {
+    return kind;
+  }
+
+  /**
+   * The value that could be used to replace all of the linked edit regions.
+   */
+  public String getValue() {
+    return value;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(value);
+    builder.append(kind);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("value", value);
+    jsonObject.addProperty("kind", kind);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("value=");
+    builder.append(value + ", ");
+    builder.append("kind=");
+    builder.append(kind);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/LinkedEditSuggestionKind.java b/pkg/analysis_server/tool/spec/generated/java/types/LinkedEditSuggestionKind.java
new file mode 100644
index 0000000..25343a2
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/LinkedEditSuggestionKind.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+/**
+ * An enumeration of the kind of values that can be suggested for a linked edit.
+ *
+ * @coverage dart.server.generated.types
+ */
+public class LinkedEditSuggestionKind {
+
+  public static final String METHOD = "METHOD";
+
+  public static final String PARAMETER = "PARAMETER";
+
+  public static final String TYPE = "TYPE";
+
+  public static final String VARIABLE = "VARIABLE";
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/Location.java b/pkg/analysis_server/tool/spec/generated/java/types/Location.java
new file mode 100644
index 0000000..a0eac20
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/Location.java
@@ -0,0 +1,191 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * A location (character range) within a file.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class Location {
+
+  public static final Location[] EMPTY_ARRAY = new Location[0];
+
+  public static final List<Location> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The file containing the range.
+   */
+  private final String file;
+
+  /**
+   * The offset of the range.
+   */
+  private final int offset;
+
+  /**
+   * The length of the range.
+   */
+  private final int length;
+
+  /**
+   * The one-based index of the line containing the first character of the range.
+   */
+  private final int startLine;
+
+  /**
+   * The one-based index of the column containing the first character of the range.
+   */
+  private final int startColumn;
+
+  /**
+   * Constructor for {@link Location}.
+   */
+  public Location(String file, int offset, int length, int startLine, int startColumn) {
+    this.file = file;
+    this.offset = offset;
+    this.length = length;
+    this.startLine = startLine;
+    this.startColumn = startColumn;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof Location) {
+      Location other = (Location) obj;
+      return
+        ObjectUtilities.equals(other.file, file) &&
+        other.offset == offset &&
+        other.length == length &&
+        other.startLine == startLine &&
+        other.startColumn == startColumn;
+    }
+    return false;
+  }
+
+  public static Location fromJson(JsonObject jsonObject) {
+    String file = jsonObject.get("file").getAsString();
+    int offset = jsonObject.get("offset").getAsInt();
+    int length = jsonObject.get("length").getAsInt();
+    int startLine = jsonObject.get("startLine").getAsInt();
+    int startColumn = jsonObject.get("startColumn").getAsInt();
+    return new Location(file, offset, length, startLine, startColumn);
+  }
+
+  public static List<Location> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<Location> list = new ArrayList<Location>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * The file containing the range.
+   */
+  public String getFile() {
+    return file;
+  }
+
+  /**
+   * The length of the range.
+   */
+  public int getLength() {
+    return length;
+  }
+
+  /**
+   * The offset of the range.
+   */
+  public int getOffset() {
+    return offset;
+  }
+
+  /**
+   * The one-based index of the column containing the first character of the range.
+   */
+  public int getStartColumn() {
+    return startColumn;
+  }
+
+  /**
+   * The one-based index of the line containing the first character of the range.
+   */
+  public int getStartLine() {
+    return startLine;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(file);
+    builder.append(offset);
+    builder.append(length);
+    builder.append(startLine);
+    builder.append(startColumn);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("file", file);
+    jsonObject.addProperty("offset", offset);
+    jsonObject.addProperty("length", length);
+    jsonObject.addProperty("startLine", startLine);
+    jsonObject.addProperty("startColumn", startColumn);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("file=");
+    builder.append(file + ", ");
+    builder.append("offset=");
+    builder.append(offset + ", ");
+    builder.append("length=");
+    builder.append(length + ", ");
+    builder.append("startLine=");
+    builder.append(startLine + ", ");
+    builder.append("startColumn=");
+    builder.append(startColumn);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/MoveFileOptions.java b/pkg/analysis_server/tool/spec/generated/java/types/MoveFileOptions.java
new file mode 100644
index 0000000..a24c3eb
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/MoveFileOptions.java
@@ -0,0 +1,120 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class MoveFileOptions extends RefactoringOptions {
+
+  public static final MoveFileOptions[] EMPTY_ARRAY = new MoveFileOptions[0];
+
+  public static final List<MoveFileOptions> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The new file path to which the given file is being moved.
+   */
+  private String newFile;
+
+  /**
+   * Constructor for {@link MoveFileOptions}.
+   */
+  public MoveFileOptions(String newFile) {
+    this.newFile = newFile;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof MoveFileOptions) {
+      MoveFileOptions other = (MoveFileOptions) obj;
+      return
+        ObjectUtilities.equals(other.newFile, newFile);
+    }
+    return false;
+  }
+
+  public static MoveFileOptions fromJson(JsonObject jsonObject) {
+    String newFile = jsonObject.get("newFile").getAsString();
+    return new MoveFileOptions(newFile);
+  }
+
+  public static List<MoveFileOptions> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<MoveFileOptions> list = new ArrayList<MoveFileOptions>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * The new file path to which the given file is being moved.
+   */
+  public String getNewFile() {
+    return newFile;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(newFile);
+    return builder.toHashCode();
+  }
+
+  /**
+   * The new file path to which the given file is being moved.
+   */
+  public void setNewFile(String newFile) {
+    this.newFile = newFile;
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("newFile", newFile);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("newFile=");
+    builder.append(newFile);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/NavigationRegion.java b/pkg/analysis_server/tool/spec/generated/java/types/NavigationRegion.java
new file mode 100644
index 0000000..a968156
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/NavigationRegion.java
@@ -0,0 +1,177 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * A description of a region from which the user can navigate to the declaration of an element.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class NavigationRegion {
+
+  public static final NavigationRegion[] EMPTY_ARRAY = new NavigationRegion[0];
+
+  public static final List<NavigationRegion> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The offset of the region from which the user can navigate.
+   */
+  private final int offset;
+
+  /**
+   * The length of the region from which the user can navigate.
+   */
+  private final int length;
+
+  /**
+   * The indexes of the targets (in the enclosing navigation response) to which the given region is
+   * bound. By opening the target, clients can implement one form of navigation.
+   */
+  private final int[] targets;
+
+  private final List<NavigationTarget> targetObjects = Lists.newArrayList();
+
+  /**
+   * Constructor for {@link NavigationRegion}.
+   */
+  public NavigationRegion(int offset, int length, int[] targets) {
+    this.offset = offset;
+    this.length = length;
+    this.targets = targets;
+  }
+
+  public boolean containsInclusive(int x) {
+    return offset <= x && x <= offset + length;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof NavigationRegion) {
+      NavigationRegion other = (NavigationRegion) obj;
+      return
+        other.offset == offset &&
+        other.length == length &&
+        Arrays.equals(other.targets, targets);
+    }
+    return false;
+  }
+
+  public static NavigationRegion fromJson(JsonObject jsonObject) {
+    int offset = jsonObject.get("offset").getAsInt();
+    int length = jsonObject.get("length").getAsInt();
+    int[] targets = JsonUtilities.decodeIntArray(jsonObject.get("targets").getAsJsonArray());
+    return new NavigationRegion(offset, length, targets);
+  }
+
+  public static List<NavigationRegion> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<NavigationRegion> list = new ArrayList<NavigationRegion>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  public List<NavigationTarget> getTargetObjects() {
+    return targetObjects;
+  }
+
+  /**
+   * The length of the region from which the user can navigate.
+   */
+  public int getLength() {
+    return length;
+  }
+
+  /**
+   * The offset of the region from which the user can navigate.
+   */
+  public int getOffset() {
+    return offset;
+  }
+
+  /**
+   * The indexes of the targets (in the enclosing navigation response) to which the given region is
+   * bound. By opening the target, clients can implement one form of navigation.
+   */
+  public int[] getTargets() {
+    return targets;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(offset);
+    builder.append(length);
+    builder.append(targets);
+    return builder.toHashCode();
+  }
+
+  public void lookupTargets(List<NavigationTarget> allTargets) {
+    for (int i = 0; i < targets.length; i++) {
+      int targetIndex = targets[i];
+      NavigationTarget target = allTargets.get(targetIndex);
+      targetObjects.add(target);
+    }
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("offset", offset);
+    jsonObject.addProperty("length", length);
+    JsonArray jsonArrayTargets = new JsonArray();
+    for (int elt : targets) {
+      jsonArrayTargets.add(new JsonPrimitive(elt));
+    }
+    jsonObject.add("targets", jsonArrayTargets);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("offset=");
+    builder.append(offset + ", ");
+    builder.append("length=");
+    builder.append(length + ", ");
+    builder.append("targets=");
+    builder.append(StringUtils.join(targets, ", "));
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/NavigationTarget.java b/pkg/analysis_server/tool/spec/generated/java/types/NavigationTarget.java
new file mode 100644
index 0000000..9290862
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/NavigationTarget.java
@@ -0,0 +1,220 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * A description of a target to which the user can navigate.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class NavigationTarget {
+
+  public static final NavigationTarget[] EMPTY_ARRAY = new NavigationTarget[0];
+
+  public static final List<NavigationTarget> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The kind of the element.
+   */
+  private final String kind;
+
+  /**
+   * The index of the file (in the enclosing navigation response) to navigate to.
+   */
+  private final int fileIndex;
+
+  /**
+   * The offset of the region from which the user can navigate.
+   */
+  private final int offset;
+
+  /**
+   * The length of the region from which the user can navigate.
+   */
+  private final int length;
+
+  /**
+   * The one-based index of the line containing the first character of the region.
+   */
+  private final int startLine;
+
+  /**
+   * The one-based index of the column containing the first character of the region.
+   */
+  private final int startColumn;
+
+  private String file;
+
+  /**
+   * Constructor for {@link NavigationTarget}.
+   */
+  public NavigationTarget(String kind, int fileIndex, int offset, int length, int startLine, int startColumn) {
+    this.kind = kind;
+    this.fileIndex = fileIndex;
+    this.offset = offset;
+    this.length = length;
+    this.startLine = startLine;
+    this.startColumn = startColumn;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof NavigationTarget) {
+      NavigationTarget other = (NavigationTarget) obj;
+      return
+        ObjectUtilities.equals(other.kind, kind) &&
+        other.fileIndex == fileIndex &&
+        other.offset == offset &&
+        other.length == length &&
+        other.startLine == startLine &&
+        other.startColumn == startColumn;
+    }
+    return false;
+  }
+
+  public static NavigationTarget fromJson(JsonObject jsonObject) {
+    String kind = jsonObject.get("kind").getAsString();
+    int fileIndex = jsonObject.get("fileIndex").getAsInt();
+    int offset = jsonObject.get("offset").getAsInt();
+    int length = jsonObject.get("length").getAsInt();
+    int startLine = jsonObject.get("startLine").getAsInt();
+    int startColumn = jsonObject.get("startColumn").getAsInt();
+    return new NavigationTarget(kind, fileIndex, offset, length, startLine, startColumn);
+  }
+
+  public static List<NavigationTarget> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<NavigationTarget> list = new ArrayList<NavigationTarget>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  public String getFile() {
+    return file;
+  }
+
+  /**
+   * The index of the file (in the enclosing navigation response) to navigate to.
+   */
+  public int getFileIndex() {
+    return fileIndex;
+  }
+
+  /**
+   * The kind of the element.
+   */
+  public String getKind() {
+    return kind;
+  }
+
+  /**
+   * The length of the region from which the user can navigate.
+   */
+  public int getLength() {
+    return length;
+  }
+
+  /**
+   * The offset of the region from which the user can navigate.
+   */
+  public int getOffset() {
+    return offset;
+  }
+
+  /**
+   * The one-based index of the column containing the first character of the region.
+   */
+  public int getStartColumn() {
+    return startColumn;
+  }
+
+  /**
+   * The one-based index of the line containing the first character of the region.
+   */
+  public int getStartLine() {
+    return startLine;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(kind);
+    builder.append(fileIndex);
+    builder.append(offset);
+    builder.append(length);
+    builder.append(startLine);
+    builder.append(startColumn);
+    return builder.toHashCode();
+  }
+
+  public void lookupFile(String[] allTargetFiles) {
+    file = allTargetFiles[fileIndex];
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("kind", kind);
+    jsonObject.addProperty("fileIndex", fileIndex);
+    jsonObject.addProperty("offset", offset);
+    jsonObject.addProperty("length", length);
+    jsonObject.addProperty("startLine", startLine);
+    jsonObject.addProperty("startColumn", startColumn);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("kind=");
+    builder.append(kind + ", ");
+    builder.append("fileIndex=");
+    builder.append(fileIndex + ", ");
+    builder.append("offset=");
+    builder.append(offset + ", ");
+    builder.append("length=");
+    builder.append(length + ", ");
+    builder.append("startLine=");
+    builder.append(startLine + ", ");
+    builder.append("startColumn=");
+    builder.append(startColumn);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/Occurrences.java b/pkg/analysis_server/tool/spec/generated/java/types/Occurrences.java
new file mode 100644
index 0000000..db04138
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/Occurrences.java
@@ -0,0 +1,166 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * A description of the references to a single element within a single file.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class Occurrences {
+
+  public static final Occurrences[] EMPTY_ARRAY = new Occurrences[0];
+
+  public static final List<Occurrences> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The element that was referenced.
+   */
+  private final Element element;
+
+  /**
+   * The offsets of the name of the referenced element within the file.
+   */
+  private final int[] offsets;
+
+  /**
+   * The length of the name of the referenced element.
+   */
+  private final int length;
+
+  /**
+   * Constructor for {@link Occurrences}.
+   */
+  public Occurrences(Element element, int[] offsets, int length) {
+    this.element = element;
+    this.offsets = offsets;
+    this.length = length;
+  }
+
+  public boolean containsInclusive(int x) {
+    for (int offset : offsets) {
+      if (offset <= x && x <= offset + length) {
+        return true;
+      }
+    }
+    return false;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof Occurrences) {
+      Occurrences other = (Occurrences) obj;
+      return
+        ObjectUtilities.equals(other.element, element) &&
+        Arrays.equals(other.offsets, offsets) &&
+        other.length == length;
+    }
+    return false;
+  }
+
+  public static Occurrences fromJson(JsonObject jsonObject) {
+    Element element = Element.fromJson(jsonObject.get("element").getAsJsonObject());
+    int[] offsets = JsonUtilities.decodeIntArray(jsonObject.get("offsets").getAsJsonArray());
+    int length = jsonObject.get("length").getAsInt();
+    return new Occurrences(element, offsets, length);
+  }
+
+  public static List<Occurrences> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<Occurrences> list = new ArrayList<Occurrences>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * The element that was referenced.
+   */
+  public Element getElement() {
+    return element;
+  }
+
+  /**
+   * The length of the name of the referenced element.
+   */
+  public int getLength() {
+    return length;
+  }
+
+  /**
+   * The offsets of the name of the referenced element within the file.
+   */
+  public int[] getOffsets() {
+    return offsets;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(element);
+    builder.append(offsets);
+    builder.append(length);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.add("element", element.toJson());
+    JsonArray jsonArrayOffsets = new JsonArray();
+    for (int elt : offsets) {
+      jsonArrayOffsets.add(new JsonPrimitive(elt));
+    }
+    jsonObject.add("offsets", jsonArrayOffsets);
+    jsonObject.addProperty("length", length);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("element=");
+    builder.append(element + ", ");
+    builder.append("offsets=");
+    builder.append(StringUtils.join(offsets, ", ") + ", ");
+    builder.append("length=");
+    builder.append(length);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/Outline.java b/pkg/analysis_server/tool/spec/generated/java/types/Outline.java
new file mode 100644
index 0000000..5a6576f
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/Outline.java
@@ -0,0 +1,207 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * An node in the outline structure of a file.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class Outline {
+
+  public static final Outline[] EMPTY_ARRAY = new Outline[0];
+
+  public static final List<Outline> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * A description of the element represented by this node.
+   */
+  private Element element;
+
+  /**
+   * The offset of the first character of the element. This is different than the offset in the
+   * Element, which if the offset of the name of the element. It can be used, for example, to map
+   * locations in the file back to an outline.
+   */
+  private int offset;
+
+  /**
+   * The length of the element.
+   */
+  private int length;
+
+  private final Outline parent;
+
+  private List<Outline> children;
+
+  /**
+   * Constructor for {@link Outline}.
+   */
+  public Outline(Outline parent, Element element, int offset, int length) {
+    this.parent = parent;
+    this.element = element;
+    this.offset = offset;
+    this.length = length;
+  }
+
+  public boolean containsInclusive(int x) {
+    return offset <= x && x <= offset + length;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof Outline) {
+      Outline other = (Outline) obj;
+      return
+        ObjectUtilities.equals(other.element, element) &&
+        other.offset == offset &&
+        other.length == length &&
+        ObjectUtilities.equals(other.children, children);
+    }
+    return false;
+  }
+
+  public static Outline fromJson(Outline parent, JsonObject outlineObject) {
+    JsonObject elementObject = outlineObject.get("element").getAsJsonObject();
+    Element element = Element.fromJson(elementObject);
+    int offset = outlineObject.get("offset").getAsInt();
+    int length = outlineObject.get("length").getAsInt();
+
+    // create outline object
+    Outline outline = new Outline(parent, element, offset, length);
+
+    // compute children recursively
+    List<Outline> childrenList = Lists.newArrayList();
+    JsonElement childrenJsonArray = outlineObject.get("children");
+    if (childrenJsonArray instanceof JsonArray) {
+      Iterator<JsonElement> childrenElementIterator = ((JsonArray) childrenJsonArray).iterator();
+      while (childrenElementIterator.hasNext()) {
+        JsonObject childObject = childrenElementIterator.next().getAsJsonObject();
+        childrenList.add(fromJson(outline, childObject));
+      }
+    }
+    outline.setChildren(childrenList);
+    return outline;
+  }
+
+  public Outline getParent() {
+    return parent;
+  }
+
+  /**
+   * The children of the node. The field will be omitted if the node has no children.
+   */
+  public List<Outline> getChildren() {
+    return children;
+  }
+
+  /**
+   * A description of the element represented by this node.
+   */
+  public Element getElement() {
+    return element;
+  }
+
+  /**
+   * The length of the element.
+   */
+  public int getLength() {
+    return length;
+  }
+
+  /**
+   * The offset of the first character of the element. This is different than the offset in the
+   * Element, which if the offset of the name of the element. It can be used, for example, to map
+   * locations in the file back to an outline.
+   */
+  public int getOffset() {
+    return offset;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(element);
+    builder.append(offset);
+    builder.append(length);
+    builder.append(children);
+    return builder.toHashCode();
+  }
+
+  /**
+   * The children of the node. The field will be omitted if the node has no children.
+   */
+  public void setChildren(List<Outline> children) {
+    this.children = children;
+  }
+
+  /**
+   * A description of the element represented by this node.
+   */
+  public void setElement(Element element) {
+    this.element = element;
+  }
+
+  /**
+   * The length of the element.
+   */
+  public void setLength(int length) {
+    this.length = length;
+  }
+
+  /**
+   * The offset of the first character of the element. This is different than the offset in the
+   * Element, which if the offset of the name of the element. It can be used, for example, to map
+   * locations in the file back to an outline.
+   */
+  public void setOffset(int offset) {
+    this.offset = offset;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("element=");
+    builder.append(element + ", ");
+    builder.append("offset=");
+    builder.append(offset + ", ");
+    builder.append("length=");
+    builder.append(length + ", ");
+    builder.append("children=");
+    builder.append(StringUtils.join(children, ", "));
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/OverriddenMember.java b/pkg/analysis_server/tool/spec/generated/java/types/OverriddenMember.java
new file mode 100644
index 0000000..47c085f
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/OverriddenMember.java
@@ -0,0 +1,134 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * A description of a member that is being overridden.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class OverriddenMember {
+
+  public static final OverriddenMember[] EMPTY_ARRAY = new OverriddenMember[0];
+
+  public static final List<OverriddenMember> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The element that is being overridden.
+   */
+  private final Element element;
+
+  /**
+   * The name of the class in which the member is defined.
+   */
+  private final String className;
+
+  /**
+   * Constructor for {@link OverriddenMember}.
+   */
+  public OverriddenMember(Element element, String className) {
+    this.element = element;
+    this.className = className;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof OverriddenMember) {
+      OverriddenMember other = (OverriddenMember) obj;
+      return
+        ObjectUtilities.equals(other.element, element) &&
+        ObjectUtilities.equals(other.className, className);
+    }
+    return false;
+  }
+
+  public static OverriddenMember fromJson(JsonObject jsonObject) {
+    Element element = Element.fromJson(jsonObject.get("element").getAsJsonObject());
+    String className = jsonObject.get("className").getAsString();
+    return new OverriddenMember(element, className);
+  }
+
+  public static List<OverriddenMember> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<OverriddenMember> list = new ArrayList<OverriddenMember>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * The name of the class in which the member is defined.
+   */
+  public String getClassName() {
+    return className;
+  }
+
+  /**
+   * The element that is being overridden.
+   */
+  public Element getElement() {
+    return element;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(element);
+    builder.append(className);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.add("element", element.toJson());
+    jsonObject.addProperty("className", className);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("element=");
+    builder.append(element + ", ");
+    builder.append("className=");
+    builder.append(className);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/OverrideMember.java b/pkg/analysis_server/tool/spec/generated/java/types/OverrideMember.java
new file mode 100644
index 0000000..6fb38e1
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/OverrideMember.java
@@ -0,0 +1,186 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * A description of a member that overrides an inherited member.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class OverrideMember {
+
+  public static final OverrideMember[] EMPTY_ARRAY = new OverrideMember[0];
+
+  public static final List<OverrideMember> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The offset of the name of the overriding member.
+   */
+  private final int offset;
+
+  /**
+   * The length of the name of the overriding member.
+   */
+  private final int length;
+
+  /**
+   * The member inherited from a superclass that is overridden by the overriding member. The field is
+   * omitted if there is no superclass member, in which case there must be at least one interface
+   * member.
+   */
+  private final OverriddenMember superclassMember;
+
+  /**
+   * The members inherited from interfaces that are overridden by the overriding member. The field is
+   * omitted if there are no interface members, in which case there must be a superclass member.
+   */
+  private final List<OverriddenMember> interfaceMembers;
+
+  /**
+   * Constructor for {@link OverrideMember}.
+   */
+  public OverrideMember(int offset, int length, OverriddenMember superclassMember, List<OverriddenMember> interfaceMembers) {
+    this.offset = offset;
+    this.length = length;
+    this.superclassMember = superclassMember;
+    this.interfaceMembers = interfaceMembers;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof OverrideMember) {
+      OverrideMember other = (OverrideMember) obj;
+      return
+        other.offset == offset &&
+        other.length == length &&
+        ObjectUtilities.equals(other.superclassMember, superclassMember) &&
+        ObjectUtilities.equals(other.interfaceMembers, interfaceMembers);
+    }
+    return false;
+  }
+
+  public static OverrideMember fromJson(JsonObject jsonObject) {
+    int offset = jsonObject.get("offset").getAsInt();
+    int length = jsonObject.get("length").getAsInt();
+    OverriddenMember superclassMember = jsonObject.get("superclassMember") == null ? null : OverriddenMember.fromJson(jsonObject.get("superclassMember").getAsJsonObject());
+    List<OverriddenMember> interfaceMembers = jsonObject.get("interfaceMembers") == null ? null : OverriddenMember.fromJsonArray(jsonObject.get("interfaceMembers").getAsJsonArray());
+    return new OverrideMember(offset, length, superclassMember, interfaceMembers);
+  }
+
+  public static List<OverrideMember> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<OverrideMember> list = new ArrayList<OverrideMember>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * The members inherited from interfaces that are overridden by the overriding member. The field is
+   * omitted if there are no interface members, in which case there must be a superclass member.
+   */
+  public List<OverriddenMember> getInterfaceMembers() {
+    return interfaceMembers;
+  }
+
+  /**
+   * The length of the name of the overriding member.
+   */
+  public int getLength() {
+    return length;
+  }
+
+  /**
+   * The offset of the name of the overriding member.
+   */
+  public int getOffset() {
+    return offset;
+  }
+
+  /**
+   * The member inherited from a superclass that is overridden by the overriding member. The field is
+   * omitted if there is no superclass member, in which case there must be at least one interface
+   * member.
+   */
+  public OverriddenMember getSuperclassMember() {
+    return superclassMember;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(offset);
+    builder.append(length);
+    builder.append(superclassMember);
+    builder.append(interfaceMembers);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("offset", offset);
+    jsonObject.addProperty("length", length);
+    if (superclassMember != null) {
+      jsonObject.add("superclassMember", superclassMember.toJson());
+    }
+    if (interfaceMembers != null) {
+      JsonArray jsonArrayInterfaceMembers = new JsonArray();
+      for (OverriddenMember elt : interfaceMembers) {
+        jsonArrayInterfaceMembers.add(elt.toJson());
+      }
+      jsonObject.add("interfaceMembers", jsonArrayInterfaceMembers);
+    }
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("offset=");
+    builder.append(offset + ", ");
+    builder.append("length=");
+    builder.append(length + ", ");
+    builder.append("superclassMember=");
+    builder.append(superclassMember + ", ");
+    builder.append("interfaceMembers=");
+    builder.append(StringUtils.join(interfaceMembers, ", "));
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/Position.java b/pkg/analysis_server/tool/spec/generated/java/types/Position.java
new file mode 100644
index 0000000..f5c7acb
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/Position.java
@@ -0,0 +1,134 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * A position within a file.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class Position {
+
+  public static final Position[] EMPTY_ARRAY = new Position[0];
+
+  public static final List<Position> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The file containing the position.
+   */
+  private final String file;
+
+  /**
+   * The offset of the position.
+   */
+  private final int offset;
+
+  /**
+   * Constructor for {@link Position}.
+   */
+  public Position(String file, int offset) {
+    this.file = file;
+    this.offset = offset;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof Position) {
+      Position other = (Position) obj;
+      return
+        ObjectUtilities.equals(other.file, file) &&
+        other.offset == offset;
+    }
+    return false;
+  }
+
+  public static Position fromJson(JsonObject jsonObject) {
+    String file = jsonObject.get("file").getAsString();
+    int offset = jsonObject.get("offset").getAsInt();
+    return new Position(file, offset);
+  }
+
+  public static List<Position> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<Position> list = new ArrayList<Position>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * The file containing the position.
+   */
+  public String getFile() {
+    return file;
+  }
+
+  /**
+   * The offset of the position.
+   */
+  public int getOffset() {
+    return offset;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(file);
+    builder.append(offset);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("file", file);
+    jsonObject.addProperty("offset", offset);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("file=");
+    builder.append(file + ", ");
+    builder.append("offset=");
+    builder.append(offset);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/PubStatus.java b/pkg/analysis_server/tool/spec/generated/java/types/PubStatus.java
new file mode 100644
index 0000000..c46b87a
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/PubStatus.java
@@ -0,0 +1,115 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * An indication of the current state of pub execution.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class PubStatus {
+
+  public static final PubStatus[] EMPTY_ARRAY = new PubStatus[0];
+
+  public static final List<PubStatus> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * True if the server is currently running pub to produce a list of package directories.
+   */
+  private final boolean isListingPackageDirs;
+
+  /**
+   * Constructor for {@link PubStatus}.
+   */
+  public PubStatus(boolean isListingPackageDirs) {
+    this.isListingPackageDirs = isListingPackageDirs;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof PubStatus) {
+      PubStatus other = (PubStatus) obj;
+      return
+        other.isListingPackageDirs == isListingPackageDirs;
+    }
+    return false;
+  }
+
+  public static PubStatus fromJson(JsonObject jsonObject) {
+    boolean isListingPackageDirs = jsonObject.get("isListingPackageDirs").getAsBoolean();
+    return new PubStatus(isListingPackageDirs);
+  }
+
+  public static List<PubStatus> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<PubStatus> list = new ArrayList<PubStatus>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * True if the server is currently running pub to produce a list of package directories.
+   */
+  public boolean isListingPackageDirs() {
+    return isListingPackageDirs;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(isListingPackageDirs);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("isListingPackageDirs", isListingPackageDirs);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("isListingPackageDirs=");
+    builder.append(isListingPackageDirs);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/RefactoringFeedback.java b/pkg/analysis_server/tool/spec/generated/java/types/RefactoringFeedback.java
new file mode 100644
index 0000000..c1864b7
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/RefactoringFeedback.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * An abstract superclass of all refactoring feedbacks.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class RefactoringFeedback {
+
+  public static final RefactoringFeedback[] EMPTY_ARRAY = new RefactoringFeedback[0];
+
+  public static final List<RefactoringFeedback> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * Constructor for {@link RefactoringFeedback}.
+   */
+  public RefactoringFeedback() {
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof RefactoringFeedback) {
+      RefactoringFeedback other = (RefactoringFeedback) obj;
+      return
+        true;
+    }
+    return false;
+  }
+
+  public static RefactoringFeedback fromJson(JsonObject jsonObject) {
+    return new RefactoringFeedback();
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/RefactoringKind.java b/pkg/analysis_server/tool/spec/generated/java/types/RefactoringKind.java
new file mode 100644
index 0000000..822770d
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/RefactoringKind.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+/**
+ * An enumeration of the kinds of refactorings that can be created.
+ *
+ * @coverage dart.server.generated.types
+ */
+public class RefactoringKind {
+
+  public static final String CONVERT_GETTER_TO_METHOD = "CONVERT_GETTER_TO_METHOD";
+
+  public static final String CONVERT_METHOD_TO_GETTER = "CONVERT_METHOD_TO_GETTER";
+
+  public static final String EXTRACT_LOCAL_VARIABLE = "EXTRACT_LOCAL_VARIABLE";
+
+  public static final String EXTRACT_METHOD = "EXTRACT_METHOD";
+
+  public static final String INLINE_LOCAL_VARIABLE = "INLINE_LOCAL_VARIABLE";
+
+  public static final String INLINE_METHOD = "INLINE_METHOD";
+
+  public static final String MOVE_FILE = "MOVE_FILE";
+
+  public static final String RENAME = "RENAME";
+
+  public static final String SORT_MEMBERS = "SORT_MEMBERS";
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/RefactoringMethodParameter.java b/pkg/analysis_server/tool/spec/generated/java/types/RefactoringMethodParameter.java
new file mode 100644
index 0000000..d5f7dfe
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/RefactoringMethodParameter.java
@@ -0,0 +1,242 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * A description of a parameter in a method refactoring.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class RefactoringMethodParameter {
+
+  public static final RefactoringMethodParameter[] EMPTY_ARRAY = new RefactoringMethodParameter[0];
+
+  public static final List<RefactoringMethodParameter> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The unique identifier of the parameter. Clients may omit this field for the parameters they want
+   * to add.
+   */
+  private String id;
+
+  /**
+   * The kind of the parameter.
+   */
+  private String kind;
+
+  /**
+   * The type that should be given to the parameter, or the return type of the parameter's function
+   * type.
+   */
+  private String type;
+
+  /**
+   * The name that should be given to the parameter.
+   */
+  private String name;
+
+  /**
+   * The parameter list of the parameter's function type. If the parameter is not of a function type,
+   * this field will not be defined. If the function type has zero parameters, this field will have a
+   * value of "()".
+   */
+  private String parameters;
+
+  /**
+   * Constructor for {@link RefactoringMethodParameter}.
+   */
+  public RefactoringMethodParameter(String id, String kind, String type, String name, String parameters) {
+    this.id = id;
+    this.kind = kind;
+    this.type = type;
+    this.name = name;
+    this.parameters = parameters;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof RefactoringMethodParameter) {
+      RefactoringMethodParameter other = (RefactoringMethodParameter) obj;
+      return
+        ObjectUtilities.equals(other.id, id) &&
+        ObjectUtilities.equals(other.kind, kind) &&
+        ObjectUtilities.equals(other.type, type) &&
+        ObjectUtilities.equals(other.name, name) &&
+        ObjectUtilities.equals(other.parameters, parameters);
+    }
+    return false;
+  }
+
+  public static RefactoringMethodParameter fromJson(JsonObject jsonObject) {
+    String id = jsonObject.get("id") == null ? null : jsonObject.get("id").getAsString();
+    String kind = jsonObject.get("kind").getAsString();
+    String type = jsonObject.get("type").getAsString();
+    String name = jsonObject.get("name").getAsString();
+    String parameters = jsonObject.get("parameters") == null ? null : jsonObject.get("parameters").getAsString();
+    return new RefactoringMethodParameter(id, kind, type, name, parameters);
+  }
+
+  public static List<RefactoringMethodParameter> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<RefactoringMethodParameter> list = new ArrayList<RefactoringMethodParameter>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * The unique identifier of the parameter. Clients may omit this field for the parameters they want
+   * to add.
+   */
+  public String getId() {
+    return id;
+  }
+
+  /**
+   * The kind of the parameter.
+   */
+  public String getKind() {
+    return kind;
+  }
+
+  /**
+   * The name that should be given to the parameter.
+   */
+  public String getName() {
+    return name;
+  }
+
+  /**
+   * The parameter list of the parameter's function type. If the parameter is not of a function type,
+   * this field will not be defined. If the function type has zero parameters, this field will have a
+   * value of "()".
+   */
+  public String getParameters() {
+    return parameters;
+  }
+
+  /**
+   * The type that should be given to the parameter, or the return type of the parameter's function
+   * type.
+   */
+  public String getType() {
+    return type;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(id);
+    builder.append(kind);
+    builder.append(type);
+    builder.append(name);
+    builder.append(parameters);
+    return builder.toHashCode();
+  }
+
+  /**
+   * The unique identifier of the parameter. Clients may omit this field for the parameters they want
+   * to add.
+   */
+  public void setId(String id) {
+    this.id = id;
+  }
+
+  /**
+   * The kind of the parameter.
+   */
+  public void setKind(String kind) {
+    this.kind = kind;
+  }
+
+  /**
+   * The name that should be given to the parameter.
+   */
+  public void setName(String name) {
+    this.name = name;
+  }
+
+  /**
+   * The parameter list of the parameter's function type. If the parameter is not of a function type,
+   * this field will not be defined. If the function type has zero parameters, this field will have a
+   * value of "()".
+   */
+  public void setParameters(String parameters) {
+    this.parameters = parameters;
+  }
+
+  /**
+   * The type that should be given to the parameter, or the return type of the parameter's function
+   * type.
+   */
+  public void setType(String type) {
+    this.type = type;
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    if (id != null) {
+      jsonObject.addProperty("id", id);
+    }
+    jsonObject.addProperty("kind", kind);
+    jsonObject.addProperty("type", type);
+    jsonObject.addProperty("name", name);
+    if (parameters != null) {
+      jsonObject.addProperty("parameters", parameters);
+    }
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("id=");
+    builder.append(id + ", ");
+    builder.append("kind=");
+    builder.append(kind + ", ");
+    builder.append("type=");
+    builder.append(type + ", ");
+    builder.append("name=");
+    builder.append(name + ", ");
+    builder.append("parameters=");
+    builder.append(parameters);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/RefactoringMethodParameterKind.java b/pkg/analysis_server/tool/spec/generated/java/types/RefactoringMethodParameterKind.java
new file mode 100644
index 0000000..c7a059a
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/RefactoringMethodParameterKind.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+/**
+ * An enumeration of the kinds of parameters.
+ *
+ * @coverage dart.server.generated.types
+ */
+public class RefactoringMethodParameterKind {
+
+  public static final String REQUIRED = "REQUIRED";
+
+  public static final String POSITIONAL = "POSITIONAL";
+
+  public static final String NAMED = "NAMED";
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/RefactoringOptions.java b/pkg/analysis_server/tool/spec/generated/java/types/RefactoringOptions.java
new file mode 100644
index 0000000..05af2ff
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/RefactoringOptions.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * An abstract superclass of all refactoring options.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class RefactoringOptions {
+
+  public static final RefactoringOptions[] EMPTY_ARRAY = new RefactoringOptions[0];
+
+  public static final List<RefactoringOptions> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * Constructor for {@link RefactoringOptions}.
+   */
+  public RefactoringOptions() {
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof RefactoringOptions) {
+      RefactoringOptions other = (RefactoringOptions) obj;
+      return
+        true;
+    }
+    return false;
+  }
+
+  public static RefactoringOptions fromJson(JsonObject jsonObject) {
+    return new RefactoringOptions();
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/RefactoringProblem.java b/pkg/analysis_server/tool/spec/generated/java/types/RefactoringProblem.java
new file mode 100644
index 0000000..da87988
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/RefactoringProblem.java
@@ -0,0 +1,159 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * A description of a problem related to a refactoring.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class RefactoringProblem {
+
+  public static final RefactoringProblem[] EMPTY_ARRAY = new RefactoringProblem[0];
+
+  public static final List<RefactoringProblem> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The severity of the problem being represented.
+   */
+  private final String severity;
+
+  /**
+   * A human-readable description of the problem being represented.
+   */
+  private final String message;
+
+  /**
+   * The location of the problem being represented. This field is omitted unless there is a specific
+   * location associated with the problem (such as a location where an element being renamed will be
+   * shadowed).
+   */
+  private final Location location;
+
+  /**
+   * Constructor for {@link RefactoringProblem}.
+   */
+  public RefactoringProblem(String severity, String message, Location location) {
+    this.severity = severity;
+    this.message = message;
+    this.location = location;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof RefactoringProblem) {
+      RefactoringProblem other = (RefactoringProblem) obj;
+      return
+        ObjectUtilities.equals(other.severity, severity) &&
+        ObjectUtilities.equals(other.message, message) &&
+        ObjectUtilities.equals(other.location, location);
+    }
+    return false;
+  }
+
+  public static RefactoringProblem fromJson(JsonObject jsonObject) {
+    String severity = jsonObject.get("severity").getAsString();
+    String message = jsonObject.get("message").getAsString();
+    Location location = jsonObject.get("location") == null ? null : Location.fromJson(jsonObject.get("location").getAsJsonObject());
+    return new RefactoringProblem(severity, message, location);
+  }
+
+  public static List<RefactoringProblem> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<RefactoringProblem> list = new ArrayList<RefactoringProblem>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * The location of the problem being represented. This field is omitted unless there is a specific
+   * location associated with the problem (such as a location where an element being renamed will be
+   * shadowed).
+   */
+  public Location getLocation() {
+    return location;
+  }
+
+  /**
+   * A human-readable description of the problem being represented.
+   */
+  public String getMessage() {
+    return message;
+  }
+
+  /**
+   * The severity of the problem being represented.
+   */
+  public String getSeverity() {
+    return severity;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(severity);
+    builder.append(message);
+    builder.append(location);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("severity", severity);
+    jsonObject.addProperty("message", message);
+    if (location != null) {
+      jsonObject.add("location", location.toJson());
+    }
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("severity=");
+    builder.append(severity + ", ");
+    builder.append("message=");
+    builder.append(message + ", ");
+    builder.append("location=");
+    builder.append(location);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/RefactoringProblemSeverity.java b/pkg/analysis_server/tool/spec/generated/java/types/RefactoringProblemSeverity.java
new file mode 100644
index 0000000..823eacc
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/RefactoringProblemSeverity.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+/**
+ * An enumeration of the severities of problems that can be returned by the refactoring requests.
+ *
+ * @coverage dart.server.generated.types
+ */
+public class RefactoringProblemSeverity {
+
+  public static final String INFO = "INFO";
+
+  public static final String WARNING = "WARNING";
+
+  public static final String ERROR = "ERROR";
+
+  public static final String FATAL = "FATAL";
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/RemoveContentOverlay.java b/pkg/analysis_server/tool/spec/generated/java/types/RemoveContentOverlay.java
new file mode 100644
index 0000000..fb284da
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/RemoveContentOverlay.java
@@ -0,0 +1,113 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * A directive to remove an existing file content overlay. After processing this directive, the
+ * file contents will once again be read from the file system.
+ *
+ * If this directive is used on a file that doesn't currently have a content overlay, it has no
+ * effect.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class RemoveContentOverlay {
+
+  public static final RemoveContentOverlay[] EMPTY_ARRAY = new RemoveContentOverlay[0];
+
+  public static final List<RemoveContentOverlay> EMPTY_LIST = Lists.newArrayList();
+
+  private final String type;
+
+  /**
+   * Constructor for {@link RemoveContentOverlay}.
+   */
+  public RemoveContentOverlay() {
+    this.type = "remove";
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof RemoveContentOverlay) {
+      RemoveContentOverlay other = (RemoveContentOverlay) obj;
+      return
+        ObjectUtilities.equals(other.type, type);
+    }
+    return false;
+  }
+
+  public static RemoveContentOverlay fromJson(JsonObject jsonObject) {
+    String type = jsonObject.get("type").getAsString();
+    return new RemoveContentOverlay();
+  }
+
+  public static List<RemoveContentOverlay> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<RemoveContentOverlay> list = new ArrayList<RemoveContentOverlay>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  public String getType() {
+    return type;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(type);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("type", type);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("type=");
+    builder.append(type);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/RenameFeedback.java b/pkg/analysis_server/tool/spec/generated/java/types/RenameFeedback.java
new file mode 100644
index 0000000..c94f2e6
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/RenameFeedback.java
@@ -0,0 +1,172 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class RenameFeedback extends RefactoringFeedback {
+
+  public static final RenameFeedback[] EMPTY_ARRAY = new RenameFeedback[0];
+
+  public static final List<RenameFeedback> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The offset to the beginning of the name selected to be renamed.
+   */
+  private final int offset;
+
+  /**
+   * The length of the name selected to be renamed.
+   */
+  private final int length;
+
+  /**
+   * The human-readable description of the kind of element being renamed (such as “class” or
+   * “function type alias”).
+   */
+  private final String elementKindName;
+
+  /**
+   * The old name of the element before the refactoring.
+   */
+  private final String oldName;
+
+  /**
+   * Constructor for {@link RenameFeedback}.
+   */
+  public RenameFeedback(int offset, int length, String elementKindName, String oldName) {
+    this.offset = offset;
+    this.length = length;
+    this.elementKindName = elementKindName;
+    this.oldName = oldName;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof RenameFeedback) {
+      RenameFeedback other = (RenameFeedback) obj;
+      return
+        other.offset == offset &&
+        other.length == length &&
+        ObjectUtilities.equals(other.elementKindName, elementKindName) &&
+        ObjectUtilities.equals(other.oldName, oldName);
+    }
+    return false;
+  }
+
+  public static RenameFeedback fromJson(JsonObject jsonObject) {
+    int offset = jsonObject.get("offset").getAsInt();
+    int length = jsonObject.get("length").getAsInt();
+    String elementKindName = jsonObject.get("elementKindName").getAsString();
+    String oldName = jsonObject.get("oldName").getAsString();
+    return new RenameFeedback(offset, length, elementKindName, oldName);
+  }
+
+  public static List<RenameFeedback> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<RenameFeedback> list = new ArrayList<RenameFeedback>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * The human-readable description of the kind of element being renamed (such as “class” or
+   * “function type alias”).
+   */
+  public String getElementKindName() {
+    return elementKindName;
+  }
+
+  /**
+   * The length of the name selected to be renamed.
+   */
+  public int getLength() {
+    return length;
+  }
+
+  /**
+   * The offset to the beginning of the name selected to be renamed.
+   */
+  public int getOffset() {
+    return offset;
+  }
+
+  /**
+   * The old name of the element before the refactoring.
+   */
+  public String getOldName() {
+    return oldName;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(offset);
+    builder.append(length);
+    builder.append(elementKindName);
+    builder.append(oldName);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("offset", offset);
+    jsonObject.addProperty("length", length);
+    jsonObject.addProperty("elementKindName", elementKindName);
+    jsonObject.addProperty("oldName", oldName);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("offset=");
+    builder.append(offset + ", ");
+    builder.append("length=");
+    builder.append(length + ", ");
+    builder.append("elementKindName=");
+    builder.append(elementKindName + ", ");
+    builder.append("oldName=");
+    builder.append(oldName);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/RenameOptions.java b/pkg/analysis_server/tool/spec/generated/java/types/RenameOptions.java
new file mode 100644
index 0000000..e17d49e
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/RenameOptions.java
@@ -0,0 +1,120 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class RenameOptions extends RefactoringOptions {
+
+  public static final RenameOptions[] EMPTY_ARRAY = new RenameOptions[0];
+
+  public static final List<RenameOptions> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The name that the element should have after the refactoring.
+   */
+  private String newName;
+
+  /**
+   * Constructor for {@link RenameOptions}.
+   */
+  public RenameOptions(String newName) {
+    this.newName = newName;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof RenameOptions) {
+      RenameOptions other = (RenameOptions) obj;
+      return
+        ObjectUtilities.equals(other.newName, newName);
+    }
+    return false;
+  }
+
+  public static RenameOptions fromJson(JsonObject jsonObject) {
+    String newName = jsonObject.get("newName").getAsString();
+    return new RenameOptions(newName);
+  }
+
+  public static List<RenameOptions> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<RenameOptions> list = new ArrayList<RenameOptions>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * The name that the element should have after the refactoring.
+   */
+  public String getNewName() {
+    return newName;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(newName);
+    return builder.toHashCode();
+  }
+
+  /**
+   * The name that the element should have after the refactoring.
+   */
+  public void setNewName(String newName) {
+    this.newName = newName;
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("newName", newName);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("newName=");
+    builder.append(newName);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/RequestError.java b/pkg/analysis_server/tool/spec/generated/java/types/RequestError.java
new file mode 100644
index 0000000..20c9b3a
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/RequestError.java
@@ -0,0 +1,155 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * An indication of a problem with the execution of the server, typically in response to a request.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class RequestError {
+
+  public static final RequestError[] EMPTY_ARRAY = new RequestError[0];
+
+  public static final List<RequestError> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * A code that uniquely identifies the error that occurred.
+   */
+  private final String code;
+
+  /**
+   * A short description of the error.
+   */
+  private final String message;
+
+  /**
+   * The stack trace associated with processing the request, used for debugging the server.
+   */
+  private final String stackTrace;
+
+  /**
+   * Constructor for {@link RequestError}.
+   */
+  public RequestError(String code, String message, String stackTrace) {
+    this.code = code;
+    this.message = message;
+    this.stackTrace = stackTrace;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof RequestError) {
+      RequestError other = (RequestError) obj;
+      return
+        ObjectUtilities.equals(other.code, code) &&
+        ObjectUtilities.equals(other.message, message) &&
+        ObjectUtilities.equals(other.stackTrace, stackTrace);
+    }
+    return false;
+  }
+
+  public static RequestError fromJson(JsonObject jsonObject) {
+    String code = jsonObject.get("code").getAsString();
+    String message = jsonObject.get("message").getAsString();
+    String stackTrace = jsonObject.get("stackTrace") == null ? null : jsonObject.get("stackTrace").getAsString();
+    return new RequestError(code, message, stackTrace);
+  }
+
+  public static List<RequestError> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<RequestError> list = new ArrayList<RequestError>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * A code that uniquely identifies the error that occurred.
+   */
+  public String getCode() {
+    return code;
+  }
+
+  /**
+   * A short description of the error.
+   */
+  public String getMessage() {
+    return message;
+  }
+
+  /**
+   * The stack trace associated with processing the request, used for debugging the server.
+   */
+  public String getStackTrace() {
+    return stackTrace;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(code);
+    builder.append(message);
+    builder.append(stackTrace);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("code", code);
+    jsonObject.addProperty("message", message);
+    if (stackTrace != null) {
+      jsonObject.addProperty("stackTrace", stackTrace);
+    }
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("code=");
+    builder.append(code + ", ");
+    builder.append("message=");
+    builder.append(message + ", ");
+    builder.append("stackTrace=");
+    builder.append(stackTrace);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/RequestErrorCode.java b/pkg/analysis_server/tool/spec/generated/java/types/RequestErrorCode.java
new file mode 100644
index 0000000..99f418a
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/RequestErrorCode.java
@@ -0,0 +1,136 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+/**
+ * An enumeration of the types of errors that can occur in the execution of the server.
+ *
+ * @coverage dart.server.generated.types
+ */
+public class RequestErrorCode {
+
+  /**
+   * An "analysis.getErrors" or "analysis.getNavigation" request could not be satisfied because the
+   * content of the file changed before the requested results could be computed.
+   */
+  public static final String CONTENT_MODIFIED = "CONTENT_MODIFIED";
+
+  /**
+   * An "edit.format" request specified a FilePath which does not match a Dart file in an analysis
+   * root.
+   */
+  public static final String FORMAT_INVALID_FILE = "FORMAT_INVALID_FILE";
+
+  /**
+   * An "edit.format" request specified a file that contains syntax errors.
+   */
+  public static final String FORMAT_WITH_ERRORS = "FORMAT_WITH_ERRORS";
+
+  /**
+   * An "analysis.getErrors" request specified a FilePath which does not match a file currently
+   * subject to analysis.
+   */
+  public static final String GET_ERRORS_INVALID_FILE = "GET_ERRORS_INVALID_FILE";
+
+  /**
+   * A path passed as an argument to a request (such as analysis.reanalyze) is required to be an
+   * analysis root, but isn't.
+   */
+  public static final String INVALID_ANALYSIS_ROOT = "INVALID_ANALYSIS_ROOT";
+
+  /**
+   * The context root used to create an execution context does not exist.
+   */
+  public static final String INVALID_EXECUTION_CONTEXT = "INVALID_EXECUTION_CONTEXT";
+
+  /**
+   * An "analysis.updateContent" request contained a ChangeContentOverlay object which can't be
+   * applied, due to an edit having an offset or length that is out of range.
+   */
+  public static final String INVALID_OVERLAY_CHANGE = "INVALID_OVERLAY_CHANGE";
+
+  /**
+   * One of the method parameters was invalid.
+   */
+  public static final String INVALID_PARAMETER = "INVALID_PARAMETER";
+
+  /**
+   * A malformed request was received.
+   */
+  public static final String INVALID_REQUEST = "INVALID_REQUEST";
+
+  /**
+   * The "--no-index" flag was passed when the analysis server created, but this API call requires an
+   * index to have been generated.
+   */
+  public static final String NO_INDEX_GENERATED = "NO_INDEX_GENERATED";
+
+  /**
+   * Another refactoring request was received during processing of this one.
+   */
+  public static final String REFACTORING_REQUEST_CANCELLED = "REFACTORING_REQUEST_CANCELLED";
+
+  /**
+   * The analysis server has already been started (and hence won't accept new connections).
+   *
+   * This error is included for future expansion; at present the analysis server can only speak to
+   * one client at a time so this error will never occur.
+   */
+  public static final String SERVER_ALREADY_STARTED = "SERVER_ALREADY_STARTED";
+
+  /**
+   * An internal error occurred in the analysis server. Also see the server.error notification.
+   */
+  public static final String SERVER_ERROR = "SERVER_ERROR";
+
+  /**
+   * An "edit.sortMembers" request specified a FilePath which does not match a Dart file in an
+   * analysis root.
+   */
+  public static final String SORT_MEMBERS_INVALID_FILE = "SORT_MEMBERS_INVALID_FILE";
+
+  /**
+   * An "edit.sortMembers" request specified a Dart file that has scan or parse errors.
+   */
+  public static final String SORT_MEMBERS_PARSE_ERRORS = "SORT_MEMBERS_PARSE_ERRORS";
+
+  /**
+   * An "analysis.setPriorityFiles" request includes one or more files that are not being analyzed.
+   *
+   * This is a legacy error; it will be removed before the API reaches version 1.0.
+   */
+  public static final String UNANALYZED_PRIORITY_FILES = "UNANALYZED_PRIORITY_FILES";
+
+  /**
+   * A request was received which the analysis server does not recognize, or cannot handle in its
+   * current configuation.
+   */
+  public static final String UNKNOWN_REQUEST = "UNKNOWN_REQUEST";
+
+  /**
+   * The analysis server was requested to perform an action on a source that does not exist.
+   */
+  public static final String UNKNOWN_SOURCE = "UNKNOWN_SOURCE";
+
+  /**
+   * The analysis server was requested to perform an action which is not supported.
+   *
+   * This is a legacy error; it will be removed before the API reaches version 1.0.
+   */
+  public static final String UNSUPPORTED_FEATURE = "UNSUPPORTED_FEATURE";
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/SearchResult.java b/pkg/analysis_server/tool/spec/generated/java/types/SearchResult.java
new file mode 100644
index 0000000..19f4eac
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/SearchResult.java
@@ -0,0 +1,182 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * A single result from a search request.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class SearchResult {
+
+  public static final SearchResult[] EMPTY_ARRAY = new SearchResult[0];
+
+  public static final List<SearchResult> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The location of the code that matched the search criteria.
+   */
+  private final Location location;
+
+  /**
+   * The kind of element that was found or the kind of reference that was found.
+   */
+  private final String kind;
+
+  /**
+   * True if the result is a potential match but cannot be confirmed to be a match. For example, if
+   * all references to a method m defined in some class were requested, and a reference to a method m
+   * from an unknown class were found, it would be marked as being a potential match.
+   */
+  private final boolean isPotential;
+
+  /**
+   * The elements that contain the result, starting with the most immediately enclosing ancestor and
+   * ending with the library.
+   */
+  private final List<Element> path;
+
+  /**
+   * Constructor for {@link SearchResult}.
+   */
+  public SearchResult(Location location, String kind, boolean isPotential, List<Element> path) {
+    this.location = location;
+    this.kind = kind;
+    this.isPotential = isPotential;
+    this.path = path;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof SearchResult) {
+      SearchResult other = (SearchResult) obj;
+      return
+        ObjectUtilities.equals(other.location, location) &&
+        ObjectUtilities.equals(other.kind, kind) &&
+        other.isPotential == isPotential &&
+        ObjectUtilities.equals(other.path, path);
+    }
+    return false;
+  }
+
+  public static SearchResult fromJson(JsonObject jsonObject) {
+    Location location = Location.fromJson(jsonObject.get("location").getAsJsonObject());
+    String kind = jsonObject.get("kind").getAsString();
+    boolean isPotential = jsonObject.get("isPotential").getAsBoolean();
+    List<Element> path = Element.fromJsonArray(jsonObject.get("path").getAsJsonArray());
+    return new SearchResult(location, kind, isPotential, path);
+  }
+
+  public static List<SearchResult> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<SearchResult> list = new ArrayList<SearchResult>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * True if the result is a potential match but cannot be confirmed to be a match. For example, if
+   * all references to a method m defined in some class were requested, and a reference to a method m
+   * from an unknown class were found, it would be marked as being a potential match.
+   */
+  public boolean isPotential() {
+    return isPotential;
+  }
+
+  /**
+   * The kind of element that was found or the kind of reference that was found.
+   */
+  public String getKind() {
+    return kind;
+  }
+
+  /**
+   * The location of the code that matched the search criteria.
+   */
+  public Location getLocation() {
+    return location;
+  }
+
+  /**
+   * The elements that contain the result, starting with the most immediately enclosing ancestor and
+   * ending with the library.
+   */
+  public List<Element> getPath() {
+    return path;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(location);
+    builder.append(kind);
+    builder.append(isPotential);
+    builder.append(path);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.add("location", location.toJson());
+    jsonObject.addProperty("kind", kind);
+    jsonObject.addProperty("isPotential", isPotential);
+    JsonArray jsonArrayPath = new JsonArray();
+    for (Element elt : path) {
+      jsonArrayPath.add(elt.toJson());
+    }
+    jsonObject.add("path", jsonArrayPath);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("location=");
+    builder.append(location + ", ");
+    builder.append("kind=");
+    builder.append(kind + ", ");
+    builder.append("isPotential=");
+    builder.append(isPotential + ", ");
+    builder.append("path=");
+    builder.append(StringUtils.join(path, ", "));
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/SearchResultKind.java b/pkg/analysis_server/tool/spec/generated/java/types/SearchResultKind.java
new file mode 100644
index 0000000..4cf530d
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/SearchResultKind.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+/**
+ * An enumeration of the kinds of search results returned by the search domain.
+ *
+ * @coverage dart.server.generated.types
+ */
+public class SearchResultKind {
+
+  /**
+   * The declaration of an element.
+   */
+  public static final String DECLARATION = "DECLARATION";
+
+  /**
+   * The invocation of a function or method.
+   */
+  public static final String INVOCATION = "INVOCATION";
+
+  /**
+   * A reference to a field, parameter or variable where it is being read.
+   */
+  public static final String READ = "READ";
+
+  /**
+   * A reference to a field, parameter or variable where it is being read and written.
+   */
+  public static final String READ_WRITE = "READ_WRITE";
+
+  /**
+   * A reference to an element.
+   */
+  public static final String REFERENCE = "REFERENCE";
+
+  /**
+   * Some other kind of search result.
+   */
+  public static final String UNKNOWN = "UNKNOWN";
+
+  /**
+   * A reference to a field, parameter or variable where it is being written.
+   */
+  public static final String WRITE = "WRITE";
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/ServerService.java b/pkg/analysis_server/tool/spec/generated/java/types/ServerService.java
new file mode 100644
index 0000000..4878287
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/ServerService.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+/**
+ * An enumeration of the services provided by the server domain.
+ *
+ * @coverage dart.server.generated.types
+ */
+public class ServerService {
+
+  public static final String STATUS = "STATUS";
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/SourceChange.java b/pkg/analysis_server/tool/spec/generated/java/types/SourceChange.java
new file mode 100644
index 0000000..7d39be9
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/SourceChange.java
@@ -0,0 +1,182 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * A description of a set of edits that implement a single conceptual change.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class SourceChange {
+
+  public static final SourceChange[] EMPTY_ARRAY = new SourceChange[0];
+
+  public static final List<SourceChange> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * A human-readable description of the change to be applied.
+   */
+  private final String message;
+
+  /**
+   * A list of the edits used to effect the change, grouped by file.
+   */
+  private final List<SourceFileEdit> edits;
+
+  /**
+   * A list of the linked editing groups used to customize the changes that were made.
+   */
+  private final List<LinkedEditGroup> linkedEditGroups;
+
+  /**
+   * The position that should be selected after the edits have been applied.
+   */
+  private final Position selection;
+
+  /**
+   * Constructor for {@link SourceChange}.
+   */
+  public SourceChange(String message, List<SourceFileEdit> edits, List<LinkedEditGroup> linkedEditGroups, Position selection) {
+    this.message = message;
+    this.edits = edits;
+    this.linkedEditGroups = linkedEditGroups;
+    this.selection = selection;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof SourceChange) {
+      SourceChange other = (SourceChange) obj;
+      return
+        ObjectUtilities.equals(other.message, message) &&
+        ObjectUtilities.equals(other.edits, edits) &&
+        ObjectUtilities.equals(other.linkedEditGroups, linkedEditGroups) &&
+        ObjectUtilities.equals(other.selection, selection);
+    }
+    return false;
+  }
+
+  public static SourceChange fromJson(JsonObject jsonObject) {
+    String message = jsonObject.get("message").getAsString();
+    List<SourceFileEdit> edits = SourceFileEdit.fromJsonArray(jsonObject.get("edits").getAsJsonArray());
+    List<LinkedEditGroup> linkedEditGroups = LinkedEditGroup.fromJsonArray(jsonObject.get("linkedEditGroups").getAsJsonArray());
+    Position selection = jsonObject.get("selection") == null ? null : Position.fromJson(jsonObject.get("selection").getAsJsonObject());
+    return new SourceChange(message, edits, linkedEditGroups, selection);
+  }
+
+  public static List<SourceChange> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<SourceChange> list = new ArrayList<SourceChange>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * A list of the edits used to effect the change, grouped by file.
+   */
+  public List<SourceFileEdit> getEdits() {
+    return edits;
+  }
+
+  /**
+   * A list of the linked editing groups used to customize the changes that were made.
+   */
+  public List<LinkedEditGroup> getLinkedEditGroups() {
+    return linkedEditGroups;
+  }
+
+  /**
+   * A human-readable description of the change to be applied.
+   */
+  public String getMessage() {
+    return message;
+  }
+
+  /**
+   * The position that should be selected after the edits have been applied.
+   */
+  public Position getSelection() {
+    return selection;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(message);
+    builder.append(edits);
+    builder.append(linkedEditGroups);
+    builder.append(selection);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("message", message);
+    JsonArray jsonArrayEdits = new JsonArray();
+    for (SourceFileEdit elt : edits) {
+      jsonArrayEdits.add(elt.toJson());
+    }
+    jsonObject.add("edits", jsonArrayEdits);
+    JsonArray jsonArrayLinkedEditGroups = new JsonArray();
+    for (LinkedEditGroup elt : linkedEditGroups) {
+      jsonArrayLinkedEditGroups.add(elt.toJson());
+    }
+    jsonObject.add("linkedEditGroups", jsonArrayLinkedEditGroups);
+    if (selection != null) {
+      jsonObject.add("selection", selection.toJson());
+    }
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("message=");
+    builder.append(message + ", ");
+    builder.append("edits=");
+    builder.append(StringUtils.join(edits, ", ") + ", ");
+    builder.append("linkedEditGroups=");
+    builder.append(StringUtils.join(linkedEditGroups, ", ") + ", ");
+    builder.append("selection=");
+    builder.append(selection);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/SourceEdit.java b/pkg/analysis_server/tool/spec/generated/java/types/SourceEdit.java
new file mode 100644
index 0000000..adcf771
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/SourceEdit.java
@@ -0,0 +1,186 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * A description of a single change to a single file.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class SourceEdit {
+
+  public static final SourceEdit[] EMPTY_ARRAY = new SourceEdit[0];
+
+  public static final List<SourceEdit> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The offset of the region to be modified.
+   */
+  private final int offset;
+
+  /**
+   * The length of the region to be modified.
+   */
+  private final int length;
+
+  /**
+   * The code that is to replace the specified region in the original code.
+   */
+  private final String replacement;
+
+  /**
+   * An identifier that uniquely identifies this source edit from other edits in the same response.
+   * This field is omitted unless a containing structure needs to be able to identify the edit for
+   * some reason.
+   *
+   * For example, some refactoring operations can produce edits that might not be appropriate
+   * (referred to as potential edits). Such edits will have an id so that they can be referenced.
+   * Edits in the same response that do not need to be referenced will not have an id.
+   */
+  private final String id;
+
+  /**
+   * Constructor for {@link SourceEdit}.
+   */
+  public SourceEdit(int offset, int length, String replacement, String id) {
+    this.offset = offset;
+    this.length = length;
+    this.replacement = replacement;
+    this.id = id;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof SourceEdit) {
+      SourceEdit other = (SourceEdit) obj;
+      return
+        other.offset == offset &&
+        other.length == length &&
+        ObjectUtilities.equals(other.replacement, replacement) &&
+        ObjectUtilities.equals(other.id, id);
+    }
+    return false;
+  }
+
+  public static SourceEdit fromJson(JsonObject jsonObject) {
+    int offset = jsonObject.get("offset").getAsInt();
+    int length = jsonObject.get("length").getAsInt();
+    String replacement = jsonObject.get("replacement").getAsString();
+    String id = jsonObject.get("id") == null ? null : jsonObject.get("id").getAsString();
+    return new SourceEdit(offset, length, replacement, id);
+  }
+
+  public static List<SourceEdit> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<SourceEdit> list = new ArrayList<SourceEdit>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * An identifier that uniquely identifies this source edit from other edits in the same response.
+   * This field is omitted unless a containing structure needs to be able to identify the edit for
+   * some reason.
+   *
+   * For example, some refactoring operations can produce edits that might not be appropriate
+   * (referred to as potential edits). Such edits will have an id so that they can be referenced.
+   * Edits in the same response that do not need to be referenced will not have an id.
+   */
+  public String getId() {
+    return id;
+  }
+
+  /**
+   * The length of the region to be modified.
+   */
+  public int getLength() {
+    return length;
+  }
+
+  /**
+   * The offset of the region to be modified.
+   */
+  public int getOffset() {
+    return offset;
+  }
+
+  /**
+   * The code that is to replace the specified region in the original code.
+   */
+  public String getReplacement() {
+    return replacement;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(offset);
+    builder.append(length);
+    builder.append(replacement);
+    builder.append(id);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("offset", offset);
+    jsonObject.addProperty("length", length);
+    jsonObject.addProperty("replacement", replacement);
+    if (id != null) {
+      jsonObject.addProperty("id", id);
+    }
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("offset=");
+    builder.append(offset + ", ");
+    builder.append("length=");
+    builder.append(length + ", ");
+    builder.append("replacement=");
+    builder.append(replacement + ", ");
+    builder.append("id=");
+    builder.append(id);
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/SourceFileEdit.java b/pkg/analysis_server/tool/spec/generated/java/types/SourceFileEdit.java
new file mode 100644
index 0000000..d9d247d
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/SourceFileEdit.java
@@ -0,0 +1,163 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * A description of a set of changes to a single file.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class SourceFileEdit {
+
+  public static final SourceFileEdit[] EMPTY_ARRAY = new SourceFileEdit[0];
+
+  public static final List<SourceFileEdit> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The file containing the code to be modified.
+   */
+  private final String file;
+
+  /**
+   * The modification stamp of the file at the moment when the change was created, in milliseconds
+   * since the "Unix epoch". Will be -1 if the file did not exist and should be created. The client
+   * may use this field to make sure that the file was not changed since then, so it is safe to apply
+   * the change.
+   */
+  private final long fileStamp;
+
+  /**
+   * A list of the edits used to effect the change.
+   */
+  private final List<SourceEdit> edits;
+
+  /**
+   * Constructor for {@link SourceFileEdit}.
+   */
+  public SourceFileEdit(String file, long fileStamp, List<SourceEdit> edits) {
+    this.file = file;
+    this.fileStamp = fileStamp;
+    this.edits = edits;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof SourceFileEdit) {
+      SourceFileEdit other = (SourceFileEdit) obj;
+      return
+        ObjectUtilities.equals(other.file, file) &&
+        other.fileStamp == fileStamp &&
+        ObjectUtilities.equals(other.edits, edits);
+    }
+    return false;
+  }
+
+  public static SourceFileEdit fromJson(JsonObject jsonObject) {
+    String file = jsonObject.get("file").getAsString();
+    long fileStamp = jsonObject.get("fileStamp").getAsLong();
+    List<SourceEdit> edits = SourceEdit.fromJsonArray(jsonObject.get("edits").getAsJsonArray());
+    return new SourceFileEdit(file, fileStamp, edits);
+  }
+
+  public static List<SourceFileEdit> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<SourceFileEdit> list = new ArrayList<SourceFileEdit>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  /**
+   * A list of the edits used to effect the change.
+   */
+  public List<SourceEdit> getEdits() {
+    return edits;
+  }
+
+  /**
+   * The file containing the code to be modified.
+   */
+  public String getFile() {
+    return file;
+  }
+
+  /**
+   * The modification stamp of the file at the moment when the change was created, in milliseconds
+   * since the "Unix epoch". Will be -1 if the file did not exist and should be created. The client
+   * may use this field to make sure that the file was not changed since then, so it is safe to apply
+   * the change.
+   */
+  public long getFileStamp() {
+    return fileStamp;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(file);
+    builder.append(fileStamp);
+    builder.append(edits);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("file", file);
+    jsonObject.addProperty("fileStamp", fileStamp);
+    JsonArray jsonArrayEdits = new JsonArray();
+    for (SourceEdit elt : edits) {
+      jsonArrayEdits.add(elt.toJson());
+    }
+    jsonObject.add("edits", jsonArrayEdits);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("file=");
+    builder.append(file + ", ");
+    builder.append("fileStamp=");
+    builder.append(fileStamp + ", ");
+    builder.append("edits=");
+    builder.append(StringUtils.join(edits, ", "));
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/TypeHierarchyItem.java b/pkg/analysis_server/tool/spec/generated/java/types/TypeHierarchyItem.java
new file mode 100644
index 0000000..2c14939
--- /dev/null
+++ b/pkg/analysis_server/tool/spec/generated/java/types/TypeHierarchyItem.java
@@ -0,0 +1,271 @@
+/*
+ * Copyright (c) 2014, the Dart project authors.
+ *
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ * This file has been automatically generated.  Please do not edit it manually.
+ * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
+ */
+package com.google.dart.server.generated.types;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Lists;
+import com.google.dart.server.utilities.general.JsonUtilities;
+import com.google.dart.server.utilities.general.ObjectUtilities;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * A representation of a class in a type hierarchy.
+ *
+ * @coverage dart.server.generated.types
+ */
+@SuppressWarnings("unused")
+public class TypeHierarchyItem {
+
+  public static final TypeHierarchyItem[] EMPTY_ARRAY = new TypeHierarchyItem[0];
+
+  public static final List<TypeHierarchyItem> EMPTY_LIST = Lists.newArrayList();
+
+  /**
+   * The class element represented by this item.
+   */
+  private final Element classElement;
+
+  /**
+   * The name to be displayed for the class. This field will be omitted if the display name is the
+   * same as the name of the element. The display name is different if there is additional type
+   * information to be displayed, such as type arguments.
+   */
+  private final String displayName;
+
+  /**
+   * The member in the class corresponding to the member on which the hierarchy was requested. This
+   * field will be omitted if the hierarchy was not requested for a member or if the class does not
+   * have a corresponding member.
+   */
+  private final Element memberElement;
+
+  /**
+   * The index of the item representing the superclass of this class. This field will be omitted if
+   * this item represents the class Object.
+   */
+  private final Integer superclass;
+
+  /**
+   * The indexes of the items representing the interfaces implemented by this class. The list will be
+   * empty if there are no implemented interfaces.
+   */
+  private final int[] interfaces;
+
+  /**
+   * The indexes of the items representing the mixins referenced by this class. The list will be
+   * empty if there are no classes mixed in to this class.
+   */
+  private final int[] mixins;
+
+  /**
+   * The indexes of the items representing the subtypes of this class. The list will be empty if
+   * there are no subtypes or if this item represents a supertype of the pivot type.
+   */
+  private final int[] subclasses;
+
+  /**
+   * Constructor for {@link TypeHierarchyItem}.
+   */
+  public TypeHierarchyItem(Element classElement, String displayName, Element memberElement, Integer superclass, int[] interfaces, int[] mixins, int[] subclasses) {
+    this.classElement = classElement;
+    this.displayName = displayName;
+    this.memberElement = memberElement;
+    this.superclass = superclass;
+    this.interfaces = interfaces;
+    this.mixins = mixins;
+    this.subclasses = subclasses;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof TypeHierarchyItem) {
+      TypeHierarchyItem other = (TypeHierarchyItem) obj;
+      return
+        ObjectUtilities.equals(other.classElement, classElement) &&
+        ObjectUtilities.equals(other.displayName, displayName) &&
+        ObjectUtilities.equals(other.memberElement, memberElement) &&
+        ObjectUtilities.equals(other.superclass, superclass) &&
+        Arrays.equals(other.interfaces, interfaces) &&
+        Arrays.equals(other.mixins, mixins) &&
+        Arrays.equals(other.subclasses, subclasses);
+    }
+    return false;
+  }
+
+  public static TypeHierarchyItem fromJson(JsonObject jsonObject) {
+    Element classElement = Element.fromJson(jsonObject.get("classElement").getAsJsonObject());
+    String displayName = jsonObject.get("displayName") == null ? null : jsonObject.get("displayName").getAsString();
+    Element memberElement = jsonObject.get("memberElement") == null ? null : Element.fromJson(jsonObject.get("memberElement").getAsJsonObject());
+    Integer superclass = jsonObject.get("superclass") == null ? null : jsonObject.get("superclass").getAsInt();
+    int[] interfaces = JsonUtilities.decodeIntArray(jsonObject.get("interfaces").getAsJsonArray());
+    int[] mixins = JsonUtilities.decodeIntArray(jsonObject.get("mixins").getAsJsonArray());
+    int[] subclasses = JsonUtilities.decodeIntArray(jsonObject.get("subclasses").getAsJsonArray());
+    return new TypeHierarchyItem(classElement, displayName, memberElement, superclass, interfaces, mixins, subclasses);
+  }
+
+  public static List<TypeHierarchyItem> fromJsonArray(JsonArray jsonArray) {
+    if (jsonArray == null) {
+      return EMPTY_LIST;
+    }
+    ArrayList<TypeHierarchyItem> list = new ArrayList<TypeHierarchyItem>(jsonArray.size());
+    Iterator<JsonElement> iterator = jsonArray.iterator();
+    while (iterator.hasNext()) {
+      list.add(fromJson(iterator.next().getAsJsonObject()));
+    }
+    return list;
+  }
+
+  public String getBestName() {
+    if (displayName == null) {
+      return classElement.getName();
+    } else {
+      return displayName;
+    }
+  }
+
+  /**
+   * The class element represented by this item.
+   */
+  public Element getClassElement() {
+    return classElement;
+  }
+
+  /**
+   * The name to be displayed for the class. This field will be omitted if the display name is the
+   * same as the name of the element. The display name is different if there is additional type
+   * information to be displayed, such as type arguments.
+   */
+  public String getDisplayName() {
+    return displayName;
+  }
+
+  /**
+   * The indexes of the items representing the interfaces implemented by this class. The list will be
+   * empty if there are no implemented interfaces.
+   */
+  public int[] getInterfaces() {
+    return interfaces;
+  }
+
+  /**
+   * The member in the class corresponding to the member on which the hierarchy was requested. This
+   * field will be omitted if the hierarchy was not requested for a member or if the class does not
+   * have a corresponding member.
+   */
+  public Element getMemberElement() {
+    return memberElement;
+  }
+
+  /**
+   * The indexes of the items representing the mixins referenced by this class. The list will be
+   * empty if there are no classes mixed in to this class.
+   */
+  public int[] getMixins() {
+    return mixins;
+  }
+
+  /**
+   * The indexes of the items representing the subtypes of this class. The list will be empty if
+   * there are no subtypes or if this item represents a supertype of the pivot type.
+   */
+  public int[] getSubclasses() {
+    return subclasses;
+  }
+
+  /**
+   * The index of the item representing the superclass of this class. This field will be omitted if
+   * this item represents the class Object.
+   */
+  public Integer getSuperclass() {
+    return superclass;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+    builder.append(classElement);
+    builder.append(displayName);
+    builder.append(memberElement);
+    builder.append(superclass);
+    builder.append(interfaces);
+    builder.append(mixins);
+    builder.append(subclasses);
+    return builder.toHashCode();
+  }
+
+  public JsonObject toJson() {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.add("classElement", classElement.toJson());
+    if (displayName != null) {
+      jsonObject.addProperty("displayName", displayName);
+    }
+    if (memberElement != null) {
+      jsonObject.add("memberElement", memberElement.toJson());
+    }
+    if (superclass != null) {
+      jsonObject.addProperty("superclass", superclass);
+    }
+    JsonArray jsonArrayInterfaces = new JsonArray();
+    for (int elt : interfaces) {
+      jsonArrayInterfaces.add(new JsonPrimitive(elt));
+    }
+    jsonObject.add("interfaces", jsonArrayInterfaces);
+    JsonArray jsonArrayMixins = new JsonArray();
+    for (int elt : mixins) {
+      jsonArrayMixins.add(new JsonPrimitive(elt));
+    }
+    jsonObject.add("mixins", jsonArrayMixins);
+    JsonArray jsonArraySubclasses = new JsonArray();
+    for (int elt : subclasses) {
+      jsonArraySubclasses.add(new JsonPrimitive(elt));
+    }
+    jsonObject.add("subclasses", jsonArraySubclasses);
+    return jsonObject;
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[");
+    builder.append("classElement=");
+    builder.append(classElement + ", ");
+    builder.append("displayName=");
+    builder.append(displayName + ", ");
+    builder.append("memberElement=");
+    builder.append(memberElement + ", ");
+    builder.append("superclass=");
+    builder.append(superclass + ", ");
+    builder.append("interfaces=");
+    builder.append(StringUtils.join(interfaces, ", ") + ", ");
+    builder.append("mixins=");
+    builder.append(StringUtils.join(mixins, ", ") + ", ");
+    builder.append("subclasses=");
+    builder.append(StringUtils.join(subclasses, ", "));
+    builder.append("]");
+    return builder.toString();
+  }
+
+}
diff --git a/pkg/analyzer/example/resolver_driver.dart b/pkg/analyzer/example/resolver_driver.dart
index 44d9635..59e66e7 100755
--- a/pkg/analyzer/example/resolver_driver.dart
+++ b/pkg/analyzer/example/resolver_driver.dart
@@ -14,9 +14,6 @@
 import 'package:analyzer/src/generated/source.dart';
 import 'package:analyzer/src/generated/source_io.dart';
 
-const _usage =
-    'Usage: resolve_driver <path_to_sdk> <file_to_resolve> [<packages_root>]';
-
 void main(List<String> args) {
   print('working dir ${new File('.').resolveSymbolicLinksSync()}');
 
@@ -43,7 +40,7 @@
   AnalysisContext context = AnalysisEngine.instance.createAnalysisContext()
     ..sourceFactory = new SourceFactory(resolvers);
 
-  Source source = new FileBasedSource.con1(new JavaFile(args[1]));
+  Source source = new FileBasedSource(new JavaFile(args[1]));
   ChangeSet changeSet = new ChangeSet()..addedSource(source);
   context.applyChanges(changeSet);
   LibraryElement libElement = context.computeLibraryElement(source);
@@ -55,6 +52,9 @@
   resolvedUnit.accept(visitor);
 }
 
+const _usage =
+    'Usage: resolve_driver <path_to_sdk> <file_to_resolve> [<packages_root>]';
+
 class _ASTVisitor extends GeneralizingAstVisitor {
   visitNode(AstNode node) {
     var lines = <String>['${node.runtimeType} : <"$node">'];
diff --git a/pkg/analyzer/lib/file_system/physical_file_system.dart b/pkg/analyzer/lib/file_system/physical_file_system.dart
index 2cd391a..139d67d 100644
--- a/pkg/analyzer/lib/file_system/physical_file_system.dart
+++ b/pkg/analyzer/lib/file_system/physical_file_system.dart
@@ -91,7 +91,7 @@
     if (uri == null) {
       uri = javaFile.toURI();
     }
-    return new FileBasedSource.con2(uri, javaFile);
+    return new FileBasedSource(javaFile, uri);
   }
 
   @override
diff --git a/pkg/analyzer/lib/src/context/cache.dart b/pkg/analyzer/lib/src/context/cache.dart
index 5ae41bd..4c4c46fd 100644
--- a/pkg/analyzer/lib/src/context/cache.dart
+++ b/pkg/analyzer/lib/src/context/cache.dart
@@ -6,10 +6,8 @@
 
 import 'dart:collection';
 
-import 'package:analyzer/src/generated/ast.dart';
 import 'package:analyzer/src/generated/engine.dart'
     show AnalysisEngine, CacheState, InternalAnalysisContext, RetentionPriority;
-import 'package:analyzer/src/generated/html.dart';
 import 'package:analyzer/src/generated/java_engine.dart';
 import 'package:analyzer/src/generated/source.dart';
 import 'package:analyzer/src/generated/utilities_collection.dart';
@@ -17,6 +15,11 @@
 import 'package:analyzer/task/model.dart';
 
 /**
+ * Return `true` if the given [target] is a priority one.
+ */
+typedef bool IsPriorityAnalysisTarget(AnalysisTarget target);
+
+/**
  * An LRU cache of results produced by analysis.
  */
 class AnalysisCache {
@@ -39,12 +42,6 @@
    */
   AnalysisCache(this._partitions);
 
-  /**
-   * Return the number of entries in this cache that have an AST associated with
-   * them.
-   */
-  int get astSize => _partitions[_partitions.length - 1].astSize;
-
   // TODO(brianwilkerson) Implement or delete this.
 //  /**
 //   * Return information about each of the partitions in this cache.
@@ -63,29 +60,14 @@
 //  }
 
   /**
-   * Record that the AST associated with the given [target] was just read from
-   * the cache.
-   */
-  void accessedAst(AnalysisTarget target) {
-    // TODO(brianwilkerson) Extract this logic to a helper method (here and
-    // elsewhere)
-    int count = _partitions.length;
-    for (int i = 0; i < count; i++) {
-      if (_partitions[i].contains(target)) {
-        _partitions[i].accessedAst(target);
-        return;
-      }
-    }
-  }
-
-  /**
    * Return the entry associated with the given [target].
    */
   CacheEntry get(AnalysisTarget target) {
     int count = _partitions.length;
     for (int i = 0; i < count; i++) {
-      if (_partitions[i].contains(target)) {
-        return _partitions[i].get(target);
+      CachePartition partition = _partitions[i];
+      if (partition.isResponsibleFor(target)) {
+        return partition.get(target);
       }
     }
     //
@@ -102,8 +84,9 @@
   InternalAnalysisContext getContextFor(AnalysisTarget target) {
     int count = _partitions.length;
     for (int i = 0; i < count; i++) {
-      if (_partitions[i].contains(target)) {
-        return _partitions[i].context;
+      CachePartition partition = _partitions[i];
+      if (partition.isResponsibleFor(target)) {
+        return partition.context;
       }
     }
     //
@@ -119,6 +102,34 @@
   }
 
   /**
+   * Return the state of the given [result] for the given [target].
+   *
+   * It does not update the cache, if the corresponding [CacheEntry] does not
+   * exist, then [CacheState.INVALID] is returned.
+   */
+  CacheState getState(AnalysisTarget target, ResultDescriptor result) {
+    CacheEntry entry = get(target);
+    if (entry == null) {
+      return CacheState.INVALID;
+    }
+    return entry.getState(result);
+  }
+
+  /**
+   * Return the value of the given [result] for the given [target].
+   *
+   * It does not update the cache, if the corresponding [CacheEntry] does not
+   * exist, then the default value is returned.
+   */
+  Object getValue(AnalysisTarget target, ResultDescriptor result) {
+    CacheEntry entry = get(target);
+    if (entry == null) {
+      return result.defaultValue;
+    }
+    return entry.getValue(result);
+  }
+
+  /**
    * Return an iterator returning all of the map entries mapping targets to
    * cache entries.
    */
@@ -132,17 +143,17 @@
   }
 
   /**
-   * Associate the given [entry] with the given [target].
+   * Puts the given [entry] into the cache.
    */
-  void put(AnalysisTarget target, CacheEntry entry) {
-    entry._cache = this;
-    entry._target = target;
+  void put(CacheEntry entry) {
+    AnalysisTarget target = entry.target;
     entry.fixExceptionState();
     int count = _partitions.length;
     for (int i = 0; i < count; i++) {
-      if (_partitions[i].contains(target)) {
+      CachePartition partition = _partitions[i];
+      if (partition.isResponsibleFor(target)) {
         if (_TRACE_CHANGES) {
-          CacheEntry oldEntry = _partitions[i].get(target);
+          CacheEntry oldEntry = partition.get(target);
           if (oldEntry == null) {
             AnalysisEngine.instance.logger
                 .logInformation('Added a cache entry for $target.');
@@ -152,7 +163,7 @@
 //                'Diff = ${entry.getDiff(oldEntry)}');
           }
         }
-        _partitions[i].put(target, entry);
+        partition.put(entry);
         return;
       }
     }
@@ -166,26 +177,13 @@
   void remove(AnalysisTarget target) {
     int count = _partitions.length;
     for (int i = 0; i < count; i++) {
-      if (_partitions[i].contains(target)) {
+      CachePartition partition = _partitions[i];
+      if (partition.isResponsibleFor(target)) {
         if (_TRACE_CHANGES) {
           AnalysisEngine.instance.logger
               .logInformation('Removed the cache entry for $target.');
         }
-        _partitions[i].remove(target);
-        return;
-      }
-    }
-  }
-
-  /**
-   * Record that the AST associated with the given [target] was just removed
-   * from the cache.
-   */
-  void removedAst(AnalysisTarget target) {
-    int count = _partitions.length;
-    for (int i = 0; i < count; i++) {
-      if (_partitions[i].contains(target)) {
-        _partitions[i].removedAst(target);
+        partition.remove(target);
         return;
       }
     }
@@ -202,32 +200,6 @@
     }
     return size;
   }
-
-  /**
-   * Record that the AST associated with the given [target] was just stored to
-   * the cache.
-   */
-  void storedAst(AnalysisTarget target) {
-    int count = _partitions.length;
-    for (int i = 0; i < count; i++) {
-      if (_partitions[i].contains(target)) {
-        _partitions[i].storedAst(target);
-        return;
-      }
-    }
-  }
-
-  ResultData _getDataFor(TargetedResult result) {
-    AnalysisTarget target = result.target;
-    int count = _partitions.length;
-    for (int i = 0; i < count; i++) {
-      if (_partitions[i].contains(target)) {
-        CacheEntry entry = _partitions[i].get(target);
-        return entry._getResultData(result.result);
-      }
-    }
-    return null;
-  }
 }
 
 /**
@@ -242,14 +214,14 @@
   static int _EXPLICITLY_ADDED_FLAG = 0;
 
   /**
-   * The cache that contains this entry.
-   */
-  AnalysisCache _cache;
-
-  /**
    * The target this entry is about.
    */
-  AnalysisTarget _target;
+  final AnalysisTarget target;
+
+  /**
+   * The partition that is responsible for this entry.
+   */
+  CachePartition _partition;
 
   /**
    * The most recent time at which the state of the target matched the state
@@ -274,6 +246,8 @@
   Map<ResultDescriptor, ResultData> _resultMap =
       new HashMap<ResultDescriptor, ResultData>();
 
+  CacheEntry(this.target);
+
   /**
    * The exception that caused one or more values to have a state of
    * [CacheState.ERROR].
@@ -296,19 +270,6 @@
   }
 
   /**
-   * Return `true` if this entry contains at least one result whose value is an
-   * AST structure.
-   */
-  bool get hasAstStructure {
-    for (ResultData data in _resultMap.values) {
-      if (data.value is AstNode || data.value is XmlNode) {
-        return true;
-      }
-    }
-    return false;
-  }
-
-  /**
    * Fix the state of the [exception] to match the current state of the entry.
    */
   void fixExceptionState() {
@@ -318,30 +279,6 @@
   }
 
   /**
-   * Mark any AST structures associated with this cache entry as being flushed.
-   */
-  void flushAstStructures() {
-    _resultMap.forEach((ResultDescriptor descriptor, ResultData data) {
-      if (data.value is AstNode || data.value is XmlNode) {
-        _validateStateChange(descriptor, CacheState.FLUSHED);
-        data.state = CacheState.FLUSHED;
-        data.value = descriptor.defaultValue;
-      }
-    });
-  }
-
-  /**
-   * Return the memento of the result represented by the given [descriptor].
-   */
-  Object getMemento(ResultDescriptor descriptor) {
-    ResultData data = _resultMap[descriptor];
-    if (data == null) {
-      return null;
-    }
-    return data.memento;
-  }
-
-  /**
    * Return the state of the result represented by the given [descriptor].
    */
   CacheState getState(ResultDescriptor descriptor) {
@@ -361,6 +298,9 @@
     if (data == null) {
       return descriptor.defaultValue;
     }
+    if (_partition != null) {
+      _partition.resultAccessed(target, descriptor);
+    }
     return data.value;
   }
 
@@ -413,9 +353,7 @@
     }
     this._exception = exception;
     for (ResultDescriptor descriptor in descriptors) {
-      ResultData data = _getResultData(descriptor);
-      TargetedResult thisResult = new TargetedResult(_target, descriptor);
-      data.invalidate(_cache, thisResult, CacheState.ERROR);
+      _setErrorState(descriptor, exception);
     }
   }
 
@@ -434,8 +372,7 @@
     if (state == CacheState.INVALID) {
       ResultData data = _resultMap[descriptor];
       if (data != null) {
-        TargetedResult thisResult = new TargetedResult(_target, descriptor);
-        data.invalidate(_cache, thisResult, CacheState.INVALID);
+        _invalidate(descriptor, true);
       }
     } else {
       ResultData data = _getResultData(descriptor);
@@ -452,21 +389,20 @@
 
   /**
    * Set the value of the result represented by the given [descriptor] to the
-   * given [value]. The optional [memento] may help to recompute [value] more
-   * efficiently after invalidation.
+   * given [value].
    */
   /*<V>*/ void setValue(ResultDescriptor /*<V>*/ descriptor, dynamic /*V*/
-      value, List<TargetedResult> dependedOn, Object memento) {
+      value, List<TargetedResult> dependedOn) {
     _validateStateChange(descriptor, CacheState.VALID);
-    ResultData data = _getResultData(descriptor);
-    {
-      TargetedResult thisResult = new TargetedResult(_target, descriptor);
-      data.invalidate(_cache, thisResult, CacheState.INVALID);
-      data.setDependedOnResults(_cache, thisResult, dependedOn);
+    TargetedResult thisResult = new TargetedResult(target, descriptor);
+    if (_partition != null) {
+      _partition.resultStored(thisResult, value);
     }
+    _invalidate(descriptor, false);
+    ResultData data = _getResultData(descriptor);
+    _setDependedOnResults(data, thisResult, dependedOn);
     data.state = CacheState.VALID;
     data.value = value == null ? descriptor.defaultValue : value;
-    data.memento = memento;
   }
 
   @override
@@ -490,6 +426,81 @@
   }
 
   /**
+   * Invalidate the result represented by the given [descriptor] if
+   * [includeThis] is true. Propagate invalidation to other results that
+   * depend on it.
+   */
+  void _invalidate(ResultDescriptor descriptor, bool includeThis) {
+    ResultData thisData;
+    if (includeThis) {
+      thisData = _resultMap.remove(descriptor);
+    } else {
+      thisData = _resultMap[descriptor];
+    }
+    if (thisData == null) {
+      return;
+    }
+    // Stop depending on other results.
+    TargetedResult thisResult = new TargetedResult(target, descriptor);
+    thisData.dependedOnResults.forEach((TargetedResult dependedOnResult) {
+      ResultData data = _partition._getDataFor(dependedOnResult, orNull: true);
+      if (data != null) {
+        data.dependentResults.remove(thisResult);
+      }
+    });
+    // Invalidate results that depend on this result.
+    List<TargetedResult> dependentResults = thisData.dependentResults;
+    thisData.dependentResults = <TargetedResult>[];
+    dependentResults.forEach((TargetedResult dependentResult) {
+      CacheEntry entry = _partition.get(dependentResult.target);
+      entry._invalidate(dependentResult.result, true);
+    });
+    // If empty, remove the entry altogether.
+    if (_resultMap.isEmpty) {
+      _partition._targetMap.remove(target);
+    }
+  }
+
+  /**
+   * Invalidates all the results of this entry, with propagation.
+   */
+  void _invalidateAll() {
+    List<ResultDescriptor> results = _resultMap.keys.toList();
+    for (ResultDescriptor result in results) {
+      _invalidate(result, true);
+    }
+  }
+
+  /**
+   * Set the [dependedOn] on which this result depends.
+   */
+  void _setDependedOnResults(ResultData thisData, TargetedResult thisResult,
+      List<TargetedResult> dependedOn) {
+    thisData.dependedOnResults = dependedOn;
+    thisData.dependedOnResults.forEach((TargetedResult dependentResult) {
+      ResultData data = _partition._getDataFor(dependentResult);
+      data.dependentResults.add(thisResult);
+    });
+  }
+
+  /**
+   * Set states of the given and dependent results to [CacheState.ERROR] and
+   * their values to the corresponding default values
+   */
+  void _setErrorState(ResultDescriptor descriptor, CaughtException exception) {
+    ResultData thisData = _getResultData(descriptor);
+    // Set the error state.
+    _exception = exception;
+    thisData.state = CacheState.ERROR;
+    thisData.value = descriptor.defaultValue;
+    // Propagate the error state.
+    thisData.dependentResults.forEach((TargetedResult dependentResult) {
+      CacheEntry entry = _partition.get(dependentResult.target);
+      entry._setErrorState(dependentResult.result, exception);
+    });
+  }
+
+  /**
    * Set the value of the flag with the given [index] to the given [value].
    */
   void _setFlag(int index, bool value) {
@@ -540,6 +551,134 @@
 }
 
 /**
+ * An object that controls flushing of analysis results from the cache.
+ */
+class CacheFlushManager<T> {
+  final IsPriorityAnalysisTarget isPriorityAnalysisTarget;
+  final ResultCachingPolicy<T> policy;
+  final int maxActiveSize;
+  final int maxIdleSize;
+
+  /**
+   * A map of the stored [TargetedResult] to their sizes.
+   */
+  final HashMap<TargetedResult, int> resultSizeMap =
+      new HashMap<TargetedResult, int>();
+
+  /**
+   * A linked set containing the most recently accessed results with the most
+   * recently used at the end of the list. When more results are added than the
+   * maximum size allowed then the least recently used results will be flushed
+   * from the cache.
+   */
+  final LinkedHashSet<TargetedResult> recentlyUsed =
+      new LinkedHashSet<TargetedResult>();
+
+  /**
+   * The current size of stored results.
+   */
+  int currentSize = 0;
+
+  /**
+   * The current maximum cache size.
+   */
+  int maxSize;
+
+  CacheFlushManager(
+      ResultCachingPolicy<T> policy, this.isPriorityAnalysisTarget)
+      : policy = policy,
+        maxActiveSize = policy.maxActiveSize,
+        maxIdleSize = policy.maxIdleSize,
+        maxSize = policy.maxIdleSize;
+
+  /**
+   * If [currentSize] is already less than [maxSize], returns an empty list.
+   * Otherwise returns [TargetedResult]s to flush from the cache to make
+   * [currentSize] less or equal to [maxSize].
+   *
+   * Results for priority files are never flushed, so this method might leave
+   * [currentSize] greater than [maxSize].
+   */
+  List<TargetedResult> flushToSize() {
+    // If still under the cap, done.
+    if (maxSize == -1 || currentSize <= maxSize) {
+      return TargetedResult.EMPTY_LIST;
+    }
+    // Flush results until we are under the cap.
+    List<TargetedResult> resultsToFlush = <TargetedResult>[];
+    for (TargetedResult result in recentlyUsed) {
+      if (isPriorityAnalysisTarget(result.target)) {
+        continue;
+      }
+      resultsToFlush.add(result);
+      int size = resultSizeMap.remove(result);
+      assert(size != null);
+      currentSize -= size;
+      if (currentSize <= maxSize) {
+        break;
+      }
+    }
+    recentlyUsed.removeAll(resultsToFlush);
+    return resultsToFlush;
+  }
+
+  /**
+   * Notifies this manager that the corresponding analysis context is active.
+   */
+  void madeActive() {
+    maxSize = maxActiveSize;
+  }
+
+  /**
+   * Notifies this manager that the corresponding analysis context is idle.
+   * Returns [TargetedResult]s that should be flushed from the cache.
+   */
+  List<TargetedResult> madeIdle() {
+    maxSize = maxIdleSize;
+    return flushToSize();
+  }
+
+  /**
+   * Records that the given [result] was just read from the cache.
+   */
+  void resultAccessed(TargetedResult result) {
+    if (recentlyUsed.remove(result)) {
+      recentlyUsed.add(result);
+    }
+  }
+
+  /**
+   * Records that the given [newResult] and [newValue] were stored to the cache.
+   * Returns [TargetedResult]s that should be flushed from the cache.
+   */
+  List<TargetedResult> resultStored(TargetedResult newResult, T newValue) {
+    if (!recentlyUsed.remove(newResult)) {
+      int size = policy.measure(newValue);
+      resultSizeMap[newResult] = size;
+      currentSize += size;
+    }
+    recentlyUsed.add(newResult);
+    return flushToSize();
+  }
+
+  /**
+   * Records that the given [target] was just removed from to the cache.
+   */
+  void targetRemoved(AnalysisTarget target) {
+    List<TargetedResult> resultsToRemove = <TargetedResult>[];
+    for (TargetedResult result in recentlyUsed) {
+      if (result.target == target) {
+        resultsToRemove.add(result);
+        int size = resultSizeMap.remove(result);
+        assert(size != null);
+        currentSize -= size;
+      }
+    }
+    recentlyUsed.removeAll(resultsToRemove);
+  }
+}
+
+/**
  * A single partition in an LRU cache of information related to analysis.
  */
 abstract class CachePartition {
@@ -550,15 +689,10 @@
   final InternalAnalysisContext context;
 
   /**
-   * The maximum number of sources for which AST structures should be kept in
-   * the cache.
+   * A table mapping caching policies to the cache flush managers.
    */
-  int _maxCacheSize = 0;
-
-  /**
-   * The policy used to determine which results to remove from the cache.
-   */
-  final CacheRetentionPolicy _retentionPolicy;
+  final HashMap<ResultCachingPolicy, CacheFlushManager> _flushManagerMap =
+      new HashMap<ResultCachingPolicy, CacheFlushManager>();
 
   /**
    * A table mapping the targets belonging to this partition to the information
@@ -568,37 +702,10 @@
       new HashMap<AnalysisTarget, CacheEntry>();
 
   /**
-   * A list containing the most recently accessed targets with the most recently
-   * used at the end of the list. When more targets are added than the maximum
-   * allowed then the least recently used target will be removed and will have
-   * it's cached AST structure flushed.
-   */
-  List<AnalysisTarget> _recentlyUsed = <AnalysisTarget>[];
-
-  /**
    * Initialize a newly created cache partition, belonging to the given
-   * [context]. The partition will maintain at most [_maxCacheSize] AST
-   * structures in the cache, using the [_retentionPolicy] to determine which
-   * AST structures to flush.
+   * [context].
    */
-  CachePartition(this.context, this._maxCacheSize, this._retentionPolicy);
-
-  /**
-   * Return the number of entries in this partition that have an AST associated
-   * with them.
-   */
-  int get astSize {
-    int astSize = 0;
-    int count = _recentlyUsed.length;
-    for (int i = 0; i < count; i++) {
-      AnalysisTarget target = _recentlyUsed[i];
-      CacheEntry entry = _targetMap[target];
-      if (entry.hasAstStructure) {
-        astSize++;
-      }
-    }
-    return astSize;
-  }
+  CachePartition(this.context);
 
   /**
    * Return a table mapping the targets known to the context to the information
@@ -610,52 +717,16 @@
   Map<AnalysisTarget, CacheEntry> get map => _targetMap;
 
   /**
-   * Return the maximum size of the cache.
-   */
-  int get maxCacheSize => _maxCacheSize;
-
-  /**
-   * Set the maximum size of the cache to the given [size].
-   */
-  void set maxCacheSize(int size) {
-    _maxCacheSize = size;
-    while (_recentlyUsed.length > _maxCacheSize) {
-      if (!_flushAstFromCache()) {
-        break;
-      }
-    }
-  }
-
-  /**
-   * Record that the AST associated with the given [target] was just read from
-   * the cache.
-   */
-  void accessedAst(AnalysisTarget target) {
-    if (_recentlyUsed.remove(target)) {
-      _recentlyUsed.add(target);
-      return;
-    }
-    while (_recentlyUsed.length >= _maxCacheSize) {
-      if (!_flushAstFromCache()) {
-        break;
-      }
-    }
-    _recentlyUsed.add(target);
-  }
-
-  /**
-   * Return `true` if the given [target] is contained in this partition.
-   */
-  // TODO(brianwilkerson) Rename this to something more meaningful, such as
-  // isResponsibleFor.
-  bool contains(AnalysisTarget target);
-
-  /**
    * Return the entry associated with the given [target].
    */
   CacheEntry get(AnalysisTarget target) => _targetMap[target];
 
   /**
+   * Return `true` if this partition is responsible for the given [target].
+   */
+  bool isResponsibleFor(AnalysisTarget target);
+
+  /**
    * Return an iterator returning all of the map entries mapping targets to
    * cache entries.
    */
@@ -663,9 +734,15 @@
       new SingleMapIterator<AnalysisTarget, CacheEntry>(_targetMap);
 
   /**
-   * Associate the given [entry] with the given [target].
+   * Puts the given [entry] into the partition.
    */
-  void put(AnalysisTarget target, CacheEntry entry) {
+  void put(CacheEntry entry) {
+    AnalysisTarget target = entry.target;
+    if (entry._partition != null) {
+      throw new StateError(
+          'The entry for $target is already in ${entry._partition}');
+    }
+    entry._partition = this;
     entry.fixExceptionState();
     _targetMap[target] = entry;
   }
@@ -674,16 +751,41 @@
    * Remove all information related to the given [target] from this cache.
    */
   void remove(AnalysisTarget target) {
-    _recentlyUsed.remove(target);
-    _targetMap.remove(target);
+    for (CacheFlushManager flushManager in _flushManagerMap.values) {
+      flushManager.targetRemoved(target);
+    }
+    CacheEntry entry = _targetMap.remove(target);
+    if (entry != null) {
+      entry._invalidateAll();
+    }
   }
 
   /**
-   * Record that the AST associated with the given [target] was just removed
-   * from the cache.
+   * Records that a value of the result described by the given [descriptor]
+   * for the given [target] was just read from the cache.
    */
-  void removedAst(AnalysisTarget target) {
-    _recentlyUsed.remove(target);
+  void resultAccessed(AnalysisTarget target, ResultDescriptor descriptor) {
+    CacheFlushManager flushManager = _getFlushManager(descriptor);
+    TargetedResult result = new TargetedResult(target, descriptor);
+    flushManager.resultAccessed(result);
+  }
+
+  /**
+   * Records that the given [result] was just stored into the cache.
+   */
+  void resultStored(TargetedResult result, Object value) {
+    CacheFlushManager flushManager = _getFlushManager(result.result);
+    List<TargetedResult> resultsToFlush =
+        flushManager.resultStored(result, value);
+    for (TargetedResult result in resultsToFlush) {
+      CacheEntry entry = get(result.target);
+      if (entry != null) {
+        ResultData data = entry._resultMap[result.result];
+        if (data != null) {
+          data.flush();
+        }
+      }
+    }
   }
 
   /**
@@ -691,123 +793,26 @@
    */
   int size() => _targetMap.length;
 
-  /**
-   * Record that the AST associated with the given [target] was just stored to
-   * the cache.
-   */
-  void storedAst(AnalysisTarget target) {
-    if (_recentlyUsed.contains(target)) {
-      return;
+  ResultData _getDataFor(TargetedResult result, {bool orNull: false}) {
+    CacheEntry entry = context.analysisCache.get(result.target);
+    if (orNull) {
+      return entry != null ? entry._resultMap[result.result] : null;
+    } else {
+      return entry._getResultData(result.result);
     }
-    while (_recentlyUsed.length >= _maxCacheSize) {
-      if (!_flushAstFromCache()) {
-        break;
-      }
-    }
-    _recentlyUsed.add(target);
   }
 
   /**
-   * Attempt to flush one AST structure from the cache. Return `true` if a
-   * structure was flushed.
+   * Return the [CacheFlushManager] for the given [descriptor], not `null`.
    */
-  bool _flushAstFromCache() {
-    AnalysisTarget removedTarget = _removeAstToFlush();
-    if (removedTarget == null) {
-      return false;
-    }
-    CacheEntry entry = _targetMap[removedTarget];
-    entry.flushAstStructures();
-    return true;
+  CacheFlushManager _getFlushManager(ResultDescriptor descriptor) {
+    ResultCachingPolicy policy = descriptor.cachingPolicy;
+    return _flushManagerMap.putIfAbsent(
+        policy, () => new CacheFlushManager(policy, _isPriorityAnalysisTarget));
   }
 
-  /**
-   * Remove and return one target from the list of recently used targets whose
-   * AST structure can be flushed from the cache,  or `null` if none of the
-   * targets can be removed. The target that will be returned will be the target
-   * that has been unreferenced for the longest period of time but that is not a
-   * priority for analysis.
-   */
-  AnalysisTarget _removeAstToFlush() {
-    int targetToRemove = -1;
-    for (int i = 0; i < _recentlyUsed.length; i++) {
-      AnalysisTarget target = _recentlyUsed[i];
-      RetentionPriority priority =
-          _retentionPolicy.getAstPriority(target, _targetMap[target]);
-      if (priority == RetentionPriority.LOW) {
-        return _recentlyUsed.removeAt(i);
-      } else if (priority == RetentionPriority.MEDIUM && targetToRemove < 0) {
-        targetToRemove = i;
-      }
-    }
-    if (targetToRemove < 0) {
-      // This happens if the retention policy returns a priority of HIGH for all
-      // of the targets that have been recently used. This is the case, for
-      // example, when the list of priority sources is bigger than the current
-      // cache size.
-      return null;
-    }
-    return _recentlyUsed.removeAt(targetToRemove);
-  }
-}
-
-/**
- * A policy objecy that determines how important it is for data to be retained
- * in the analysis cache.
- */
-abstract class CacheRetentionPolicy {
-  /**
-   * Return the priority of retaining the AST structure for the given [target]
-   * in the given [entry].
-   */
-  // TODO(brianwilkerson) Find a more general mechanism, probably based on task
-  // descriptors, to determine which data is still needed for analysis and which
-  // can be removed from the cache. Ideally we could (a) remove the need for
-  // this class and (b) be able to flush all result data (not just AST's).
-  RetentionPriority getAstPriority(AnalysisTarget target, CacheEntry entry);
-}
-
-/**
- * A retention policy that will keep AST's in the cache if there is analysis
- * information that needs to be computed for a source, where the computation is
- * dependent on having the AST.
- */
-class DefaultRetentionPolicy implements CacheRetentionPolicy {
-  /**
-   * An instance of this class that can be shared.
-   */
-  static const DefaultRetentionPolicy POLICY = const DefaultRetentionPolicy();
-
-  /**
-   * Initialize a newly created instance of this class.
-   */
-  const DefaultRetentionPolicy();
-
-  // TODO(brianwilkerson) Implement or delete this.
-//  /**
-//   * Return `true` if there is analysis information in the given entry that needs to be
-//   * computed, where the computation is dependent on having the AST.
-//   *
-//   * @param dartEntry the entry being tested
-//   * @return `true` if there is analysis information that needs to be computed from the AST
-//   */
-//  bool astIsNeeded(DartEntry dartEntry) =>
-//      dartEntry.hasInvalidData(DartEntry.HINTS) ||
-//          dartEntry.hasInvalidData(DartEntry.LINTS) ||
-//          dartEntry.hasInvalidData(DartEntry.VERIFICATION_ERRORS) ||
-//          dartEntry.hasInvalidData(DartEntry.RESOLUTION_ERRORS);
-
-  @override
-  RetentionPriority getAstPriority(AnalysisTarget target, CacheEntry entry) {
-    // TODO(brianwilkerson) Implement or replace this.
-//    if (sourceEntry is DartEntry) {
-//      DartEntry dartEntry = sourceEntry;
-//      if (astIsNeeded(dartEntry)) {
-//        return RetentionPriority.MEDIUM;
-//      }
-//    }
-//    return RetentionPriority.LOW;
-    return RetentionPriority.MEDIUM;
+  bool _isPriorityAnalysisTarget(AnalysisTarget target) {
+    return context.priorityTargets.contains(target);
   }
 }
 
@@ -834,12 +839,6 @@
   Object value;
 
   /**
-   * The optional data that is remembered with [value] and, when [value] is
-   * invalidated, may help to recompute it more efficiently.
-   */
-  Object memento;
-
-  /**
    * A list of the results on which this result depends.
    */
   List<TargetedResult> dependedOnResults = <TargetedResult>[];
@@ -859,58 +858,11 @@
   }
 
   /**
-   * Add the given [result] to the list of dependent results.
+   * Flush this value.
    */
-  void addDependentResult(TargetedResult result) {
-    dependentResults.add(result);
-  }
-
-  /**
-   * Invalidate this [ResultData] that corresponds to [thisResult] and
-   * propagate invalidation to the results that depend on this one.
-   */
-  void invalidate(
-      AnalysisCache cache, TargetedResult thisResult, CacheState newState) {
-    // Invalidate this result.
-    state = newState;
+  void flush() {
+    state = CacheState.FLUSHED;
     value = descriptor.defaultValue;
-    // Stop depending on other results.
-    List<TargetedResult> dependedOnResults = this.dependedOnResults;
-    this.dependedOnResults = <TargetedResult>[];
-    dependedOnResults.forEach((TargetedResult dependedOnResult) {
-      ResultData data = cache._getDataFor(dependedOnResult);
-      data.removeDependentResult(thisResult);
-    });
-    // Invalidate results that depend on this result.
-    List<TargetedResult> dependentResults = this.dependentResults;
-    this.dependentResults = <TargetedResult>[];
-    dependentResults.forEach((TargetedResult dependentResult) {
-      ResultData data = cache._getDataFor(dependentResult);
-      data.invalidate(cache, dependentResult, newState);
-    });
-  }
-
-  /**
-   * Remove the given [result] from the list of dependent results.
-   */
-  void removeDependentResult(TargetedResult result) {
-    dependentResults.remove(result);
-  }
-
-  /**
-   * Set the [dependedOn] on which this result depends.
-   */
-  void setDependedOnResults(AnalysisCache cache, TargetedResult thisResult,
-      List<TargetedResult> dependedOn) {
-    dependedOnResults.forEach((TargetedResult dependedOnResult) {
-      ResultData data = cache._getDataFor(dependedOnResult);
-      data.removeDependentResult(thisResult);
-    });
-    dependedOnResults = dependedOn;
-    dependedOnResults.forEach((TargetedResult dependentResult) {
-      ResultData data = cache._getDataFor(dependentResult);
-      data.addDependentResult(thisResult);
-    });
   }
 }
 
@@ -920,14 +872,15 @@
 class SdkCachePartition extends CachePartition {
   /**
    * Initialize a newly created cache partition, belonging to the given
-   * [context]. The partition will maintain at most [maxCacheSize] AST
-   * structures in the cache.
+   * [context].
    */
-  SdkCachePartition(InternalAnalysisContext context, int maxCacheSize)
-      : super(context, maxCacheSize, DefaultRetentionPolicy.POLICY);
+  SdkCachePartition(InternalAnalysisContext context) : super(context);
 
   @override
-  bool contains(AnalysisTarget target) {
+  bool isResponsibleFor(AnalysisTarget target) {
+    if (target is AnalysisContextTarget) {
+      return true;
+    }
     Source source = target.source;
     return source != null && source.isInSystemLibrary;
   }
@@ -979,14 +932,10 @@
 class UniversalCachePartition extends CachePartition {
   /**
    * Initialize a newly created cache partition, belonging to the given
-   * [context]. The partition will maintain at most [maxCacheSize] AST
-   * structures in the cache, using the [retentionPolicy] to determine which
-   * AST structures to flush.
+   * [context].
    */
-  UniversalCachePartition(InternalAnalysisContext context, int maxCacheSize,
-      CacheRetentionPolicy retentionPolicy)
-      : super(context, maxCacheSize, retentionPolicy);
+  UniversalCachePartition(InternalAnalysisContext context) : super(context);
 
   @override
-  bool contains(AnalysisTarget target) => true;
+  bool isResponsibleFor(AnalysisTarget target) => true;
 }
diff --git a/pkg/analyzer/lib/src/context/context.dart b/pkg/analyzer/lib/src/context/context.dart
index debb32e..bbf7128 100644
--- a/pkg/analyzer/lib/src/context/context.dart
+++ b/pkg/analyzer/lib/src/context/context.dart
@@ -8,11 +8,17 @@
 import 'dart:collection';
 
 import 'package:analyzer/src/cancelable_future.dart';
-import 'package:analyzer/src/context/cache.dart' as cache;
+import 'package:analyzer/src/context/cache.dart';
 import 'package:analyzer/src/generated/ast.dart';
 import 'package:analyzer/src/generated/constant.dart';
 import 'package:analyzer/src/generated/element.dart';
-import 'package:analyzer/src/generated/engine.dart';
+import 'package:analyzer/src/generated/engine.dart'
+    hide
+        AnalysisCache,
+        CachePartition,
+        SdkCachePartition,
+        UniversalCachePartition,
+        WorkManager;
 import 'package:analyzer/src/generated/error.dart';
 import 'package:analyzer/src/generated/html.dart' as ht;
 import 'package:analyzer/src/generated/java_core.dart';
@@ -23,6 +29,7 @@
 import 'package:analyzer/src/generated/source.dart';
 import 'package:analyzer/src/generated/utilities_collection.dart';
 import 'package:analyzer/src/task/dart.dart';
+import 'package:analyzer/src/task/dart_work_manager.dart';
 import 'package:analyzer/src/task/driver.dart';
 import 'package:analyzer/src/task/manager.dart';
 import 'package:analyzer/task/dart.dart';
@@ -42,7 +49,7 @@
  * it should be free of side effects so that it doesn't cause reentrant changes
  * to the analysis state.
  */
-typedef T PendingFutureComputer<T>(cache.CacheEntry entry);
+typedef T PendingFutureComputer<T>(CacheEntry entry);
 
 /**
  * An [AnalysisContext] in which analysis can be performed.
@@ -84,13 +91,13 @@
    * The partition that contains analysis results that are not shared with other
    * contexts.
    */
-  cache.CachePartition _privatePartition;
+  CachePartition _privatePartition;
 
   /**
    * The cache in which information about the results associated with targets
    * are stored.
    */
-  cache.AnalysisCache _cache;
+  AnalysisCache _cache;
 
   /**
    * The task manager used to manage the tasks used to analyze code.
@@ -98,9 +105,14 @@
   TaskManager _taskManager;
 
   /**
+   * The [DartWorkManager] instance that performs Dart specific scheduling.
+   */
+  DartWorkManager dartWorkManager;
+
+  /**
    * The analysis driver used to perform analysis.
    */
-  AnalysisDriver _driver;
+  AnalysisDriver driver;
 
   /**
    * A list containing sources for which data should not be flushed.
@@ -181,17 +193,21 @@
    * Initialize a newly created analysis context.
    */
   AnalysisContextImpl() {
-    _privatePartition = new cache.UniversalCachePartition(this,
-        AnalysisOptionsImpl.DEFAULT_CACHE_SIZE,
-        new ContextRetentionPolicy(this));
+    _privatePartition = new UniversalCachePartition(this);
     _cache = createCacheFromSourceFactory(null);
     _taskManager = AnalysisEngine.instance.taskManager;
-    _driver = new AnalysisDriver(_taskManager, this);
+    // TODO(scheglov) Get WorkManager(Factory)(s) from plugins.
+    dartWorkManager = new DartWorkManager(this);
+    driver =
+        new AnalysisDriver(_taskManager, <WorkManager>[dartWorkManager], this);
     _onSourcesChangedController =
         new StreamController<SourcesChangedEvent>.broadcast();
   }
 
   @override
+  AnalysisCache get analysisCache => _cache;
+
+  @override
   AnalysisOptions get analysisOptions => _options;
 
   @override
@@ -203,6 +219,7 @@
         this._options.generateSdkErrors != options.generateSdkErrors ||
         this._options.dart2jsHint != options.dart2jsHint ||
         (this._options.hint && !options.hint) ||
+        (this._options.lint && !options.lint) ||
         this._options.preserveComments != options.preserveComments ||
         this._options.enableNullAwareOperators !=
             options.enableNullAwareOperators ||
@@ -210,7 +227,6 @@
     int cacheSize = options.cacheSize;
     if (this._options.cacheSize != cacheSize) {
       this._options.cacheSize = cacheSize;
-      _privatePartition.maxCacheSize = cacheSize;
     }
     this._options.analyzeFunctionBodiesPredicate =
         options.analyzeFunctionBodiesPredicate;
@@ -233,17 +249,18 @@
   @override
   void set analysisPriorityOrder(List<Source> sources) {
     if (sources == null || sources.isEmpty) {
-      _priorityOrder = Source.EMPTY_ARRAY;
+      _priorityOrder = Source.EMPTY_LIST;
     } else {
       while (sources.remove(null)) {
         // Nothing else to do.
       }
       if (sources.isEmpty) {
-        _priorityOrder = Source.EMPTY_ARRAY;
+        _priorityOrder = Source.EMPTY_LIST;
       } else {
         _priorityOrder = sources;
       }
     }
+    dartWorkManager.applyPriorityTargets(_priorityOrder);
   }
 
   @override
@@ -257,7 +274,7 @@
   @override
   List<AnalysisTarget> get explicitTargets {
     List<AnalysisTarget> targets = <AnalysisTarget>[];
-    MapIterator<AnalysisTarget, cache.CacheEntry> iterator = _cache.iterator();
+    MapIterator<AnalysisTarget, CacheEntry> iterator = _cache.iterator();
     while (iterator.moveNext()) {
       if (iterator.value.explicitlyAdded) {
         targets.add(iterator.key);
@@ -275,10 +292,10 @@
   @override
   List<Source> get launchableClientLibrarySources {
     List<Source> sources = new List<Source>();
-    MapIterator<AnalysisTarget, cache.CacheEntry> iterator = _cache.iterator();
+    MapIterator<AnalysisTarget, CacheEntry> iterator = _cache.iterator();
     while (iterator.moveNext()) {
       AnalysisTarget target = iterator.key;
-      cache.CacheEntry entry = iterator.value;
+      CacheEntry entry = iterator.value;
       if (target is Source &&
           entry.getValue(SOURCE_KIND) == SourceKind.LIBRARY &&
           !target.isInSystemLibrary &&
@@ -292,10 +309,10 @@
   @override
   List<Source> get launchableServerLibrarySources {
     List<Source> sources = new List<Source>();
-    MapIterator<AnalysisTarget, cache.CacheEntry> iterator = _cache.iterator();
+    MapIterator<AnalysisTarget, CacheEntry> iterator = _cache.iterator();
     while (iterator.moveNext()) {
       AnalysisTarget target = iterator.key;
-      cache.CacheEntry entry = iterator.value;
+      CacheEntry entry = iterator.value;
       if (target is Source &&
           entry.getValue(SOURCE_KIND) == SourceKind.LIBRARY &&
           !target.isInSystemLibrary &&
@@ -348,7 +365,7 @@
   @override
   List<Source> get sources {
     List<Source> sources = new List<Source>();
-    MapIterator<AnalysisTarget, cache.CacheEntry> iterator = _cache.iterator();
+    MapIterator<AnalysisTarget, CacheEntry> iterator = _cache.iterator();
     while (iterator.moveNext()) {
       AnalysisTarget target = iterator.key;
       if (target is Source) {
@@ -369,7 +386,8 @@
     bool hintsEnabled = _options.hint;
     bool lintsEnabled = _options.lint;
 
-    MapIterator<AnalysisTarget, cache.CacheEntry> iterator = _cache.iterator();
+    MapIterator<AnalysisTarget, CacheEntry> iterator =
+        _privatePartition.iterator();
     while (iterator.moveNext()) {
       AnalysisTarget target = iterator.key;
       if (target is Source) {
@@ -440,13 +458,6 @@
   }
 
   @override
-  void addSourceInfo(Source source, SourceEntry info) {
-    // TODO(brianwilkerson) This method needs to be replaced by something that
-    // will copy CacheEntry's.
-//    _cache.put(source, info);
-  }
-
-  @override
   void applyAnalysisDelta(AnalysisDelta delta) {
     ChangeSet changeSet = new ChangeSet();
     delta.analysisLevels.forEach((Source source, AnalysisLevel level) {
@@ -501,6 +512,8 @@
     for (Source source in removedSources) {
       _sourceRemoved(source);
     }
+    dartWorkManager.applyChange(
+        changeSet.addedSources, changeSet.changedSources, removedSources);
     _onSourcesChangedController.add(new SourcesChangedEvent(changeSet));
   }
 
@@ -517,7 +530,7 @@
     if (unit == null) {
       return null;
     }
-    NodeLocator locator = new NodeLocator.con1(element.nameOffset);
+    NodeLocator locator = new NodeLocator(element.nameOffset);
     AstNode nameNode = locator.searchWithin(unit);
     while (nameNode != null) {
       if (nameNode is AnnotatedNode) {
@@ -554,15 +567,24 @@
 
   @override
   List<Source> computeImportedLibraries(Source source) =>
-      _computeResult(source, IMPORTED_LIBRARIES);
+      _computeResult(source, EXPLICITLY_IMPORTED_LIBRARIES);
 
   @override
-  SourceKind computeKindOf(Source source) =>
-      _computeResult(source, SOURCE_KIND);
+  SourceKind computeKindOf(Source source) {
+    String name = source.shortName;
+    if (AnalysisEngine.isDartFileName(name)) {
+      return _computeResult(source, SOURCE_KIND);
+    } else if (AnalysisEngine.isHtmlFileName(name)) {
+      return SourceKind.HTML;
+    }
+    return SourceKind.UNKNOWN;
+  }
 
   @override
-  LibraryElement computeLibraryElement(Source source) => _computeResult(
-      source, LIBRARY_ELEMENT); //_computeResult(source, HtmlEntry.ELEMENT);
+  LibraryElement computeLibraryElement(Source source) {
+    //_computeResult(source, HtmlEntry.ELEMENT);
+    return _computeResult(source, LIBRARY_ELEMENT);
+  }
 
   @override
   LineInfo computeLineInfo(Source source) => _computeResult(source, LINE_INFO);
@@ -581,8 +603,7 @@
       return new CancelableFuture.error(new AnalysisNotScheduledError());
     }
     return new _AnalysisFutureHelper<CompilationUnit>(this).computeAsync(
-        new LibrarySpecificUnit(librarySource, unitSource),
-        (cache.CacheEntry entry) {
+        new LibrarySpecificUnit(librarySource, unitSource), (CacheEntry entry) {
       CacheState state = entry.getState(RESOLVED_UNIT);
       if (state == CacheState.ERROR) {
         throw entry.exception;
@@ -596,15 +617,15 @@
   /**
    * Create an analysis cache based on the given source [factory].
    */
-  cache.AnalysisCache createCacheFromSourceFactory(SourceFactory factory) {
+  AnalysisCache createCacheFromSourceFactory(SourceFactory factory) {
     if (factory == null) {
-      return new cache.AnalysisCache(<cache.CachePartition>[_privatePartition]);
+      return new AnalysisCache(<CachePartition>[_privatePartition]);
     }
     DartSdk sdk = factory.dartSdk;
     if (sdk == null) {
-      return new cache.AnalysisCache(<cache.CachePartition>[_privatePartition]);
+      return new AnalysisCache(<CachePartition>[_privatePartition]);
     }
-    return new cache.AnalysisCache(<cache.CachePartition>[
+    return new AnalysisCache(<CachePartition>[
       AnalysisEngine.instance.partitionManager_new.forSdk(sdk),
       _privatePartition
     ]);
@@ -623,41 +644,32 @@
 
   @override
   List<CompilationUnit> ensureResolvedDartUnits(Source unitSource) {
-    // TODO(brianwilkerson) Implement this.
+    // Check every library.
+    List<CompilationUnit> units = <CompilationUnit>[];
+    List<Source> containingLibraries = getLibrariesContaining(unitSource);
+    for (Source librarySource in containingLibraries) {
+      LibrarySpecificUnit target =
+          new LibrarySpecificUnit(librarySource, unitSource);
+      CompilationUnit unit = _cache.getValue(target, RESOLVED_UNIT);
+      if (unit == null) {
+        units = null;
+        break;
+      }
+      units.add(unit);
+    }
+    // If we have results, then we're done.
+    if (units != null) {
+      return units;
+    }
+    // Schedule recomputing RESOLVED_UNIT results.
+    for (Source librarySource in containingLibraries) {
+      LibrarySpecificUnit target =
+          new LibrarySpecificUnit(librarySource, unitSource);
+      if (_cache.getState(target, RESOLVED_UNIT) == CacheState.FLUSHED) {
+        dartWorkManager.addPriorityResult(target, RESOLVED_UNIT);
+      }
+    }
     return null;
-//    cache.CacheEntry entry = _cache.get(unitSource);
-//    // Check every library.
-//    List<CompilationUnit> units = <CompilationUnit>[];
-//    List<Source> containingLibraries = entry.containingLibraries;
-//    for (Source librarySource in containingLibraries) {
-//      CompilationUnit unit =
-//          entry.getValueInLibrary(DartEntry.RESOLVED_UNIT, librarySource);
-//      if (unit == null) {
-//        units = null;
-//        break;
-//      }
-//      units.add(unit);
-//    }
-//    // Invalidate the flushed RESOLVED_UNIT to force it eventually.
-//    if (units == null) {
-//      bool shouldBeScheduled = false;
-//      for (Source librarySource in containingLibraries) {
-//        if (entry.getStateInLibrary(DartEntry.RESOLVED_UNIT, librarySource) ==
-//            CacheState.FLUSHED) {
-//          entry.setStateInLibrary(
-//              DartEntry.RESOLVED_UNIT, librarySource, CacheState.INVALID);
-//          shouldBeScheduled = true;
-//        }
-//      }
-//      if (shouldBeScheduled) {
-//        _workManager.add(unitSource, SourcePriority.UNKNOWN);
-//      }
-//      // We cannot provide resolved units right now,
-//      // but the future analysis will.
-//      return null;
-//    }
-//    // done
-//    return units;
   }
 
   @override
@@ -671,35 +683,12 @@
     return source.exists();
   }
 
-  Element findElementById(int id) {
-    // TODO(brianwilkerson) Implement this.
-    return null;
-//    _ElementByIdFinder finder = new _ElementByIdFinder(id);
-//    try {
-//      MapIterator<AnalysisTarget, cache.CacheEntry> iterator =
-//          _cache.iterator();
-//      while (iterator.moveNext()) {
-//        cache.CacheEntry entry = iterator.value;
-//        if (entry.getValue(SOURCE_KIND) == SourceKind.LIBRARY) {
-//          DartEntry dartEntry = entry;
-//          LibraryElement library = dartEntry.getValue(DartEntry.ELEMENT);
-//          if (library != null) {
-//            library.accept(finder);
-//          }
-//        }
-//      }
-//    } on _ElementByIdFinderException {
-//      return finder.result;
-//    }
-//    return null;
-  }
-
   @override
-  cache.CacheEntry getCacheEntry(AnalysisTarget target) {
-    cache.CacheEntry entry = _cache.get(target);
+  CacheEntry getCacheEntry(AnalysisTarget target) {
+    CacheEntry entry = _cache.get(target);
     if (entry == null) {
-      entry = new cache.CacheEntry();
-      _cache.put(target, entry);
+      entry = new CacheEntry(target);
+      _cache.put(entry);
     }
     return entry;
   }
@@ -708,7 +697,7 @@
   CompilationUnitElement getCompilationUnitElement(
       Source unitSource, Source librarySource) {
     AnalysisTarget target = new LibrarySpecificUnit(librarySource, unitSource);
-    return _getResult(target, COMPILATION_UNIT_ELEMENT);
+    return _cache.getValue(target, COMPILATION_UNIT_ELEMENT);
   }
 
   @override
@@ -757,9 +746,27 @@
 
   @override
   AnalysisErrorInfo getErrors(Source source) {
-    List<AnalysisError> errors = _getResult(source, DART_ERRORS);
-    LineInfo lineInfo = _getResult(source, LINE_INFO);
-    return new AnalysisErrorInfoImpl(errors, lineInfo);
+    // TODO(brianwilkerson) Figure out how to implement this cleanly. The
+    // problem is that _getResult doesn't know to go into the individual inputs
+    // for the task to get their values for tasks that are just merging other
+    // result values. Therefore, if some, but not all, of the error lists have
+    // been computed, no errors will be returned by it.
+    List<List<AnalysisError>> errorLists = <List<AnalysisError>>[];
+    errorLists.add(_cache.getValue(source, BUILD_DIRECTIVES_ERRORS));
+    errorLists.add(_cache.getValue(source, BUILD_LIBRARY_ERRORS));
+    errorLists.add(_cache.getValue(source, PARSE_ERRORS));
+    errorLists.add(_cache.getValue(source, SCAN_ERRORS));
+    for (Source library in getLibrariesContaining(source)) {
+      LibrarySpecificUnit unit = new LibrarySpecificUnit(library, source);
+      errorLists.add(_cache.getValue(unit, BUILD_FUNCTION_TYPE_ALIASES_ERRORS));
+      errorLists.add(_cache.getValue(unit, HINTS));
+      errorLists.add(_cache.getValue(unit, RESOLVE_REFERENCES_ERRORS));
+      errorLists.add(_cache.getValue(unit, RESOLVE_TYPE_NAMES_ERRORS));
+      errorLists.add(_cache.getValue(unit, VERIFY_ERRORS));
+    }
+    LineInfo lineInfo = _cache.getValue(source, LINE_INFO);
+    return new AnalysisErrorInfoImpl(
+        AnalysisError.mergeLists(errorLists), lineInfo);
   }
 
   @override
@@ -776,16 +783,15 @@
   List<Source> getHtmlFilesReferencing(Source source) {
     SourceKind sourceKind = getKindOf(source);
     if (sourceKind == null) {
-      return Source.EMPTY_ARRAY;
+      return Source.EMPTY_LIST;
     }
     List<Source> htmlSources = new List<Source>();
     while (true) {
       if (sourceKind == SourceKind.PART) {
         List<Source> librarySources = getLibrariesContaining(source);
-        MapIterator<AnalysisTarget, cache.CacheEntry> iterator =
-            _cache.iterator();
+        MapIterator<AnalysisTarget, CacheEntry> iterator = _cache.iterator();
         while (iterator.moveNext()) {
-          cache.CacheEntry entry = iterator.value;
+          CacheEntry entry = iterator.value;
           if (entry.getValue(SOURCE_KIND) == SourceKind.HTML) {
             List<Source> referencedLibraries =
                 (entry as HtmlEntry).getValue(HtmlEntry.REFERENCED_LIBRARIES);
@@ -795,10 +801,9 @@
           }
         }
       } else {
-        MapIterator<AnalysisTarget, cache.CacheEntry> iterator =
-            _cache.iterator();
+        MapIterator<AnalysisTarget, CacheEntry> iterator = _cache.iterator();
         while (iterator.moveNext()) {
-          cache.CacheEntry entry = iterator.value;
+          CacheEntry entry = iterator.value;
           if (entry.getValue(SOURCE_KIND) == SourceKind.HTML) {
             List<Source> referencedLibraries =
                 (entry as HtmlEntry).getValue(HtmlEntry.REFERENCED_LIBRARIES);
@@ -811,30 +816,52 @@
       break;
     }
     if (htmlSources.isEmpty) {
-      return Source.EMPTY_ARRAY;
+      return Source.EMPTY_LIST;
     }
     return htmlSources;
   }
 
   @override
-  SourceKind getKindOf(Source source) => _getResult(source, SOURCE_KIND);
+  SourceKind getKindOf(Source source) {
+    String name = source.shortName;
+    if (AnalysisEngine.isDartFileName(name)) {
+      return _cache.getValue(source, SOURCE_KIND);
+    } else if (AnalysisEngine.isHtmlFileName(name)) {
+      return SourceKind.HTML;
+    }
+    return SourceKind.UNKNOWN;
+  }
 
   @override
   List<Source> getLibrariesContaining(Source source) {
-    // TODO(brianwilkerson) Implement this.
-//    cache.CacheEntry sourceEntry = _cache.get(source);
-//    if (sourceEntry is DartEntry) {
-//      return sourceEntry.containingLibraries;
-//    }
+    SourceKind kind = getKindOf(source);
+    if (kind == SourceKind.LIBRARY) {
+      return <Source>[source];
+    } else if (kind == SourceKind.PART) {
+      List<Source> libraries = <Source>[];
+      MapIterator<AnalysisTarget, CacheEntry> iterator = _cache.iterator();
+      while (iterator.moveNext()) {
+        AnalysisTarget target = iterator.key;
+        if (target is Source && getKindOf(target) == SourceKind.LIBRARY) {
+          List<Source> parts = _cache.getValue(target, INCLUDED_PARTS);
+          if (parts.contains(source)) {
+            libraries.add(target);
+          }
+        }
+      }
+      if (libraries.isNotEmpty) {
+        return libraries;
+      }
+    }
     return Source.EMPTY_ARRAY;
   }
 
   @override
   List<Source> getLibrariesDependingOn(Source librarySource) {
     List<Source> dependentLibraries = new List<Source>();
-    MapIterator<AnalysisTarget, cache.CacheEntry> iterator = _cache.iterator();
+    MapIterator<AnalysisTarget, CacheEntry> iterator = _cache.iterator();
     while (iterator.moveNext()) {
-      cache.CacheEntry entry = iterator.value;
+      CacheEntry entry = iterator.value;
       if (entry.getValue(SOURCE_KIND) == SourceKind.LIBRARY) {
         if (_contains(entry.getValue(EXPORTED_LIBRARIES), librarySource)) {
           dependentLibraries.add(iterator.key);
@@ -845,7 +872,7 @@
       }
     }
     if (dependentLibraries.isEmpty) {
-      return Source.EMPTY_ARRAY;
+      return Source.EMPTY_LIST;
     }
     return dependentLibraries;
   }
@@ -858,15 +885,15 @@
 //      HtmlEntry htmlEntry = entry;
 //      return htmlEntry.getValue(HtmlEntry.REFERENCED_LIBRARIES);
 //    }
-    return Source.EMPTY_ARRAY;
+    return Source.EMPTY_LIST;
   }
 
   @override
   LibraryElement getLibraryElement(Source source) =>
-      _getResult(source, LIBRARY_ELEMENT);
+      _cache.getValue(source, LIBRARY_ELEMENT);
 
   @override
-  LineInfo getLineInfo(Source source) => _getResult(source, LINE_INFO);
+  LineInfo getLineInfo(Source source) => _cache.getValue(source, LINE_INFO);
 
   @override
   int getModificationStamp(Source source) {
@@ -891,11 +918,11 @@
   }
 
   /**
-   * Return the cache entry associated with the given [source], or `null` if
-   * there is no entry associated with the source.
+   * Return the cache entry associated with the given [target], or `null` if
+   * there is no entry associated with the target.
    */
-  cache.CacheEntry getReadableSourceEntryOrNull(Source source) =>
-      _cache.get(source);
+  CacheEntry getReadableSourceEntryOrNull(AnalysisTarget target) =>
+      _cache.get(target);
 
   @override
   CompilationUnit getResolvedCompilationUnit(
@@ -914,7 +941,7 @@
         !AnalysisEngine.isDartFileName(librarySource.shortName)) {
       return null;
     }
-    return _getResult(
+    return _cache.getValue(
         new LibrarySpecificUnit(librarySource, unitSource), RESOLVED_UNIT);
   }
 
@@ -932,7 +959,7 @@
   @override
   List<Source> getSourcesWithFullName(String path) {
     List<Source> sources = <Source>[];
-    MapIterator<AnalysisTarget, cache.CacheEntry> iterator = _cache.iterator();
+    MapIterator<AnalysisTarget, CacheEntry> iterator = _cache.iterator();
     while (iterator.moveNext()) {
       AnalysisTarget target = iterator.key;
       if (target is Source && target.fullName == path) {
@@ -945,7 +972,7 @@
   @override
   bool handleContentsChanged(
       Source source, String originalContents, String newContents, bool notify) {
-    cache.CacheEntry entry = _cache.get(source);
+    CacheEntry entry = _cache.get(source);
     if (entry == null) {
       return false;
     }
@@ -959,8 +986,7 @@
           _sourceChanged(source);
         }
         entry.modificationTime = _contentCache.getModificationStamp(source);
-        entry.setValue(
-            CONTENT, newContents, cache.TargetedResult.EMPTY_LIST, null);
+        entry.setValue(CONTENT, newContents, TargetedResult.EMPTY_LIST);
       } else {
         entry.modificationTime = _contentCache.getModificationStamp(source);
       }
@@ -974,8 +1000,7 @@
         TimestampedData<String> fileContents = getContents(source);
         String fileContentsData = fileContents.data;
         if (fileContentsData == originalContents) {
-          entry.setValue(
-              CONTENT, fileContentsData, cache.TargetedResult.EMPTY_LIST, null);
+          entry.setValue(CONTENT, fileContentsData, TargetedResult.EMPTY_LIST);
           entry.modificationTime = fileContents.modificationTime;
           changed = false;
         }
@@ -993,34 +1018,15 @@
     return changed;
   }
 
-  /**
-   * Invalidates hints in the given [librarySource] and included parts.
-   */
-  void invalidateLibraryHints(Source librarySource) {
-    cache.CacheEntry entry = _cache.get(librarySource);
-    // Prepare sources to invalidate hints in.
-    List<Source> sources = <Source>[librarySource];
-    sources.addAll(entry.getValue(INCLUDED_PARTS));
-    // Invalidate hints.
-    for (Source source in sources) {
-      LibrarySpecificUnit unitTarget =
-          new LibrarySpecificUnit(librarySource, source);
-      cache.CacheEntry unitEntry = _cache.get(unitTarget);
-      if (unitEntry.getState(HINTS) == CacheState.VALID) {
-        unitEntry.setState(HINTS, CacheState.INVALID);
-      }
-    }
-  }
-
   @override
   bool isClientLibrary(Source librarySource) {
-    cache.CacheEntry entry = _cache.get(librarySource);
+    CacheEntry entry = _cache.get(librarySource);
     return entry.getValue(IS_CLIENT) && entry.getValue(IS_LAUNCHABLE);
   }
 
   @override
   bool isServerLibrary(Source librarySource) {
-    cache.CacheEntry entry = _cache.get(librarySource);
+    CacheEntry entry = _cache.get(librarySource);
     return !entry.getValue(IS_CLIENT) && entry.getValue(IS_LAUNCHABLE);
   }
 
@@ -1044,7 +1050,7 @@
   @override
   AnalysisResult performAnalysisTask() {
     return PerformanceStatistics.performAnaysis.makeCurrentWhile(() {
-      bool done = !_driver.performAnalysisTask();
+      bool done = !driver.performAnalysisTask();
       if (done) {
         done = !_validateCacheConsistency();
       }
@@ -1066,9 +1072,9 @@
       //
       // Cache the element in the library's info.
       //
-      cache.CacheEntry entry = getCacheEntry(librarySource);
+      CacheEntry entry = getCacheEntry(librarySource);
       setValue(ResultDescriptor result, value) {
-        entry.setValue(result, value, cache.TargetedResult.EMPTY_LIST, null);
+        entry.setValue(result, value, TargetedResult.EMPTY_LIST);
       }
       setValue(BUILD_DIRECTIVES_ERRORS, AnalysisError.NO_ERRORS);
       setValue(BUILD_FUNCTION_TYPE_ALIASES_ERRORS, AnalysisError.NO_ERRORS);
@@ -1078,11 +1084,11 @@
       // CONSTRUCTORS
       // CONSTRUCTORS_ERRORS
       entry.setState(CONTENT, CacheState.FLUSHED);
-      setValue(EXPORTED_LIBRARIES, Source.EMPTY_ARRAY);
+      setValue(EXPORTED_LIBRARIES, Source.EMPTY_LIST);
       // EXPORT_SOURCE_CLOSURE
-      setValue(IMPORTED_LIBRARIES, Source.EMPTY_ARRAY);
+      setValue(IMPORTED_LIBRARIES, Source.EMPTY_LIST);
       // IMPORT_SOURCE_CLOSURE
-      setValue(INCLUDED_PARTS, Source.EMPTY_ARRAY);
+      setValue(INCLUDED_PARTS, Source.EMPTY_LIST);
       setValue(IS_CLIENT, true);
       setValue(IS_LAUNCHABLE, false);
       setValue(LIBRARY_ELEMENT, library);
@@ -1117,9 +1123,8 @@
       setValue(VERIFY_ERRORS, AnalysisError.NO_ERRORS);
     });
 
-    cache.CacheEntry entry = getCacheEntry(AnalysisContextTarget.request);
-    entry.setValue(
-        TYPE_PROVIDER, typeProvider, cache.TargetedResult.EMPTY_LIST, null);
+    CacheEntry entry = getCacheEntry(AnalysisContextTarget.request);
+    entry.setValue(TYPE_PROVIDER, typeProvider, TargetedResult.EMPTY_LIST);
   }
 
   @override
@@ -1165,6 +1170,8 @@
   @override
   void setContents(Source source, String contents) {
     _contentsChanged(source, contents, true);
+    dartWorkManager.applyChange(
+        Source.EMPTY_LIST, <Source>[source], Source.EMPTY_LIST);
   }
 
   @override
@@ -1244,7 +1251,7 @@
    * given list of [sources].
    */
   void _addSourcesInContainer(List<Source> sources, SourceContainer container) {
-    MapIterator<AnalysisTarget, cache.CacheEntry> iterator = _cache.iterator();
+    MapIterator<AnalysisTarget, CacheEntry> iterator = _cache.iterator();
     while (iterator.moveNext()) {
       Source source = iterator.key;
       if (container.contains(source)) {
@@ -1268,35 +1275,12 @@
     }
   }
 
-  /**
-   * Return the priority that should be used when the source associated with
-   * the given [entry] is added to the work manager.
-   */
-  SourcePriority _computePriority(cache.CacheEntry entry) {
-    // Used in commented out code.
-    SourceKind kind = entry.getValue(SOURCE_KIND);
-    if (kind == SourceKind.LIBRARY) {
-      return SourcePriority.LIBRARY;
-    } else if (kind == SourceKind.PART) {
-      return SourcePriority.NORMAL_PART;
-    }
-    return SourcePriority.UNKNOWN;
-  }
-
   Object /*V*/ _computeResult(
       AnalysisTarget target, ResultDescriptor /*<V>*/ descriptor) {
-    cache.CacheEntry entry = getCacheEntry(target);
-    if (descriptor is CompositeResultDescriptor) {
-      List compositeResults = [];
-      for (ResultDescriptor descriptor in descriptor.contributors) {
-        List value = _computeResult(target, descriptor);
-        compositeResults.addAll(value);
-      }
-      return compositeResults;
-    }
+    CacheEntry entry = getCacheEntry(target);
     CacheState state = entry.getState(descriptor);
     if (state == CacheState.FLUSHED || state == CacheState.INVALID) {
-      _driver.computeResult(target, descriptor);
+      driver.computeResult(target, descriptor);
     }
     state = entry.getState(descriptor);
     if (state == CacheState.ERROR) {
@@ -1360,11 +1344,10 @@
 //        }
         _sourceChanged(source);
         changed = true;
-        cache.CacheEntry entry = _cache.get(source);
+        CacheEntry entry = _cache.get(source);
         if (entry != null) {
           entry.modificationTime = _contentCache.getModificationStamp(source);
-          entry.setValue(
-              CONTENT, contents, cache.TargetedResult.EMPTY_LIST, null);
+          entry.setValue(CONTENT, contents, TargetedResult.EMPTY_LIST);
         }
       }
     } else if (originalContents != null) {
@@ -1393,15 +1376,30 @@
    * added to this context if [explicitlyAdded] is `true`. Return the cache
    * entry that was created.
    */
-  cache.CacheEntry _createCacheEntry(Source source, bool explicitlyAdded) {
-    cache.CacheEntry entry = new cache.CacheEntry();
+  CacheEntry _createCacheEntry(Source source, bool explicitlyAdded) {
+    CacheEntry entry = new CacheEntry(source);
     entry.modificationTime = getModificationStamp(source);
     entry.explicitlyAdded = explicitlyAdded;
-    _cache.put(source, entry);
+    _cache.put(entry);
     return entry;
   }
 
   /**
+   * Return a list containing all of the cache entries for targets associated
+   * with the given [source].
+   */
+  List<CacheEntry> _entriesFor(Source source) {
+    List<CacheEntry> entries = <CacheEntry>[];
+    MapIterator<AnalysisTarget, CacheEntry> iterator = _cache.iterator();
+    while (iterator.moveNext()) {
+      if (iterator.key.source == source) {
+        entries.add(iterator.value);
+      }
+    }
+    return entries;
+  }
+
+  /**
    * Return a list containing all of the change notices that are waiting to be
    * returned. If there are no notices, then return either `null` or an empty
    * list, depending on the value of [nullIfEmpty].
@@ -1411,7 +1409,7 @@
       if (nullIfEmpty) {
         return null;
       }
-      return ChangeNoticeImpl.EMPTY_ARRAY;
+      return ChangeNoticeImpl.EMPTY_LIST;
     }
     List<ChangeNotice> notices = new List.from(_pendingNotices.values);
     _pendingNotices.clear();
@@ -1432,32 +1430,13 @@
     return notice;
   }
 
-  Object _getResult(AnalysisTarget target, ResultDescriptor descriptor) {
-    cache.CacheEntry entry = _cache.get(target);
-    if (entry == null) {
-      return descriptor.defaultValue;
-    }
-    if (descriptor is CompositeResultDescriptor) {
-      List compositeResults = [];
-      for (ResultDescriptor descriptor in descriptor.contributors) {
-        List value = _getResult(target, descriptor);
-        compositeResults.addAll(value);
-      }
-      return compositeResults;
-    }
-    if (entry.isValid(descriptor)) {
-      return entry.getValue(descriptor);
-    }
-    return descriptor.defaultValue;
-  }
-
   /**
    * Return a list containing all of the sources known to this context that have
    * the given [kind].
    */
   List<Source> _getSources(SourceKind kind) {
     List<Source> sources = new List<Source>();
-    MapIterator<AnalysisTarget, cache.CacheEntry> iterator = _cache.iterator();
+    MapIterator<AnalysisTarget, CacheEntry> iterator = _cache.iterator();
     while (iterator.moveNext()) {
       if (iterator.value.getValue(SOURCE_KIND) == kind &&
           iterator.key is Source) {
@@ -1472,7 +1451,7 @@
    * related to it. If so, add the source to the set of sources that need to be
    * processed. This method is intended to be used for testing purposes only.
    */
-  void _getSourcesNeedingProcessing(Source source, cache.CacheEntry entry,
+  void _getSourcesNeedingProcessing(Source source, CacheEntry entry,
       bool isPriority, bool hintsEnabled, bool lintsEnabled,
       HashSet<Source> sources) {
     CacheState state = entry.getState(CONTENT);
@@ -1516,7 +1495,7 @@
 //        }
 //      }
       for (Source librarySource in getLibrariesContaining(source)) {
-        cache.CacheEntry libraryEntry = _cache.get(librarySource);
+        CacheEntry libraryEntry = _cache.get(librarySource);
         state = libraryEntry.getState(LIBRARY_ELEMENT);
         if (state == CacheState.INVALID ||
             (isPriority && state == CacheState.FLUSHED)) {
@@ -1525,7 +1504,7 @@
         } else if (state == CacheState.ERROR) {
           return;
         }
-        cache.CacheEntry unitEntry =
+        CacheEntry unitEntry =
             _cache.get(new LibrarySpecificUnit(librarySource, source));
         state = unitEntry.getState(RESOLVED_UNIT);
         if (state == CacheState.INVALID ||
@@ -1614,35 +1593,6 @@
   }
 
   /**
-   * In response to a change to at least one of the compilation units in the
-   * library defined by the given [librarySource], invalidate any results that
-   * are dependent on the result of resolving that library.
-   *
-   * <b>Note:</b> Any cache entries that were accessed before this method was
-   * invoked must be re-accessed after this method returns.
-   */
-  void _invalidateLibraryResolution(Source librarySource) {
-    // TODO(brianwilkerson) Figure out whether we still need this.
-    // TODO(brianwilkerson) This could be optimized. There's no need to flush
-    // all of these entries if the public namespace hasn't changed, which will
-    // be a fairly common case. The question is whether we can afford the time
-    // to compute the namespace to look for differences.
-//    DartEntry libraryEntry = _getReadableDartEntry(librarySource);
-//    if (libraryEntry != null) {
-//      List<Source> includedParts =
-//          libraryEntry.getValue(DartEntry.INCLUDED_PARTS);
-//      libraryEntry.invalidateAllResolutionInformation(false);
-//      _workManager.add(librarySource, SourcePriority.LIBRARY);
-//      for (Source partSource in includedParts) {
-//        SourceEntry partEntry = _cache.get(partSource);
-//        if (partEntry is DartEntry) {
-//          partEntry.invalidateAllResolutionInformation(false);
-//        }
-//      }
-//    }
-  }
-
-  /**
    * Log the given debugging [message].
    */
   void _logInformation(String message) {
@@ -1704,7 +1654,7 @@
    * Return `true` if errors should be produced for the given [source]. The
    * [entry] associated with the source is passed in for efficiency.
    */
-  bool _shouldErrorsBeAnalyzed(Source source, cache.CacheEntry entry) {
+  bool _shouldErrorsBeAnalyzed(Source source, CacheEntry entry) {
     if (source.isInSystemLibrary) {
       return _options.generateSdkErrors;
     } else if (!entry.explicitlyAdded) {
@@ -1719,7 +1669,7 @@
    * that referenced the source before it existed.
    */
   void _sourceAvailable(Source source) {
-    cache.CacheEntry entry = _cache.get(source);
+    CacheEntry entry = _cache.get(source);
     if (entry == null) {
       _createCacheEntry(source, true);
     } else {
@@ -1733,7 +1683,7 @@
    * the source before it existed.
    */
   void _sourceChanged(Source source) {
-    cache.CacheEntry entry = _cache.get(source);
+    CacheEntry entry = _cache.get(source);
     // If the source is removed, we don't care about it.
     if (entry == null) {
       return;
@@ -1746,6 +1696,10 @@
       try {
         TimestampedData<String> fileContents = getContents(source);
         if (fileContents.data == sourceContent) {
+          int time = fileContents.modificationTime;
+          for (CacheEntry entry in _entriesFor(source)) {
+            entry.modificationTime = time;
+          }
           return;
         }
       } catch (e) {}
@@ -1790,20 +1744,6 @@
    * Record that the given [source] has been removed.
    */
   void _sourceRemoved(Source source) {
-    List<Source> containingLibraries = getLibrariesContaining(source);
-    if (containingLibraries != null && containingLibraries.isNotEmpty) {
-      HashSet<Source> libraries = new HashSet<Source>();
-      for (Source librarySource in containingLibraries) {
-        libraries.add(librarySource);
-        for (Source dependentLibrary
-            in getLibrariesDependingOn(librarySource)) {
-          libraries.add(dependentLibrary);
-        }
-      }
-      for (Source librarySource in libraries) {
-        _invalidateLibraryResolution(librarySource);
-      }
-    }
     _cache.remove(source);
     _removeFromPriorityOrder(source);
   }
@@ -1880,117 +1820,69 @@
    */
   bool _validateCacheConsistency() {
     int consistencyCheckStart = JavaSystem.nanoTime();
-    List<AnalysisTarget> changedTargets = new List<AnalysisTarget>();
-    List<AnalysisTarget> missingTargets = new List<AnalysisTarget>();
-    MapIterator<AnalysisTarget, cache.CacheEntry> iterator = _cache.iterator();
+    HashSet<Source> changedSources = new HashSet<Source>();
+    HashSet<Source> missingSources = new HashSet<Source>();
+    MapIterator<AnalysisTarget, CacheEntry> iterator = _cache.iterator();
     while (iterator.moveNext()) {
       AnalysisTarget target = iterator.key;
-      cache.CacheEntry entry = iterator.value;
       if (target is Source) {
+        CacheEntry entry = iterator.value;
         int sourceTime = getModificationStamp(target);
         if (sourceTime != entry.modificationTime) {
-          changedTargets.add(target);
+          changedSources.add(target);
         }
-      }
-      if (entry.exception != null) {
-        if (!exists(target)) {
-          missingTargets.add(target);
+        if (entry.exception != null) {
+          if (!exists(target)) {
+            missingSources.add(target);
+          }
         }
       }
     }
-    int count = changedTargets.length;
-    for (int i = 0; i < count; i++) {
-      _sourceChanged(changedTargets[i]);
+    for (Source source in changedSources) {
+      _sourceChanged(source);
     }
     int removalCount = 0;
-    for (AnalysisTarget target in missingTargets) {
-      if (target is Source &&
-          getLibrariesContaining(target).isEmpty &&
-          getLibrariesDependingOn(target).isEmpty) {
-        _cache.remove(target);
+    for (Source source in missingSources) {
+      if (getLibrariesContaining(source).isEmpty &&
+          getLibrariesDependingOn(source).isEmpty) {
+        _cache.remove(source);
         removalCount++;
       }
     }
     int consistencyCheckEnd = JavaSystem.nanoTime();
-    if (changedTargets.length > 0 || missingTargets.length > 0) {
+    if (changedSources.length > 0 || missingSources.length > 0) {
       StringBuffer buffer = new StringBuffer();
       buffer.write("Consistency check took ");
       buffer.write((consistencyCheckEnd - consistencyCheckStart) / 1000000.0);
       buffer.writeln(" ms and found");
       buffer.write("  ");
-      buffer.write(changedTargets.length);
+      buffer.write(changedSources.length);
       buffer.writeln(" inconsistent entries");
       buffer.write("  ");
-      buffer.write(missingTargets.length);
+      buffer.write(missingSources.length);
       buffer.write(" missing sources (");
       buffer.write(removalCount);
       buffer.writeln(" removed");
-      for (Source source in missingTargets) {
+      for (Source source in missingSources) {
         buffer.write("    ");
         buffer.writeln(source.fullName);
       }
       _logInformation(buffer.toString());
     }
-    return changedTargets.length > 0;
+    return changedSources.length > 0;
   }
 }
 
 /**
- * A retention policy used by an analysis context.
- */
-class ContextRetentionPolicy implements cache.CacheRetentionPolicy {
-  /**
-   * The context associated with this policy.
-   */
-  final AnalysisContextImpl context;
-
-  /**
-   * Initialize a newly created policy to be associated with the given
-   * [context].
-   */
-  ContextRetentionPolicy(this.context);
-
-  @override
-  RetentionPriority getAstPriority(
-      AnalysisTarget target, cache.CacheEntry entry) {
-    int priorityCount = context._priorityOrder.length;
-    for (int i = 0; i < priorityCount; i++) {
-      if (target == context._priorityOrder[i]) {
-        return RetentionPriority.HIGH;
-      }
-    }
-    if (_astIsNeeded(entry)) {
-      return RetentionPriority.MEDIUM;
-    }
-    return RetentionPriority.LOW;
-  }
-
-  bool _astIsNeeded(cache.CacheEntry entry) =>
-      entry.isInvalid(BUILD_FUNCTION_TYPE_ALIASES_ERRORS) ||
-          entry.isInvalid(BUILD_LIBRARY_ERRORS) ||
-          entry.isInvalid(CONSTRUCTORS_ERRORS) ||
-          entry.isInvalid(HINTS) ||
-          //entry.isInvalid(LINTS) ||
-          entry.isInvalid(RESOLVE_REFERENCES_ERRORS) ||
-          entry.isInvalid(RESOLVE_TYPE_NAMES_ERRORS) ||
-          entry.isInvalid(VERIFY_ERRORS);
-}
-
-/**
  * An object that manages the partitions that can be shared between analysis
  * contexts.
  */
 class PartitionManager {
   /**
-   * The default cache size for a Dart SDK partition.
-   */
-  static int _DEFAULT_SDK_CACHE_SIZE = 256;
-
-  /**
    * A table mapping SDK's to the partitions used for those SDK's.
    */
-  HashMap<DartSdk, cache.SdkCachePartition> _sdkPartitions =
-      new HashMap<DartSdk, cache.SdkCachePartition>();
+  HashMap<DartSdk, SdkCachePartition> _sdkPartitions =
+      new HashMap<DartSdk, SdkCachePartition>();
 
   /**
    * Clear any cached data being maintained by this manager.
@@ -2003,7 +1895,7 @@
    * Return the partition being used for the given [sdk], creating the partition
    * if necessary.
    */
-  cache.SdkCachePartition forSdk(DartSdk sdk) {
+  SdkCachePartition forSdk(DartSdk sdk) {
     // Call sdk.context now, because when it creates a new
     // InternalAnalysisContext instance, it calls forSdk() again, so creates an
     // SdkCachePartition instance.
@@ -2011,10 +1903,9 @@
     // with two SdkCachePartition instances.
     InternalAnalysisContext sdkContext = sdk.context;
     // Check cache for an existing partition.
-    cache.SdkCachePartition partition = _sdkPartitions[sdk];
+    SdkCachePartition partition = _sdkPartitions[sdk];
     if (partition == null) {
-      partition =
-          new cache.SdkCachePartition(sdkContext, _DEFAULT_SDK_CACHE_SIZE);
+      partition = new SdkCachePartition(sdkContext);
       _sdkPartitions[sdk] = partition;
     }
     return partition;
@@ -2068,7 +1959,7 @@
    * in a microtask, so there is no danger of side effects occurring due to
    * client callbacks.
    */
-  bool evaluate(cache.CacheEntry entry) {
+  bool evaluate(CacheEntry entry) {
     assert(!_completer.isCompleted);
     try {
       T result = _computeValue(entry);
@@ -2128,13 +2019,13 @@
    * reentrant changes to the analysis state.
    */
   CancelableFuture<T> computeAsync(
-      AnalysisTarget target, T computeValue(cache.CacheEntry entry)) {
+      AnalysisTarget target, T computeValue(CacheEntry entry)) {
     if (_context.isDisposed) {
       // No further analysis is expected, so return a future that completes
       // immediately with AnalysisNotScheduledError.
       return new CancelableFuture.error(new AnalysisNotScheduledError());
     }
-    cache.CacheEntry entry = _context.getReadableSourceEntryOrNull(target);
+    CacheEntry entry = _context.getReadableSourceEntryOrNull(target);
     if (entry == null) {
       return new CancelableFuture.error(new AnalysisNotScheduledError());
     }
diff --git a/pkg/analyzer/lib/src/generated/ast.dart b/pkg/analyzer/lib/src/generated/ast.dart
index 384593e..ee68939 100644
--- a/pkg/analyzer/lib/src/generated/ast.dart
+++ b/pkg/analyzer/lib/src/generated/ast.dart
@@ -9,7 +9,6 @@
 
 import 'dart:collection';
 
-import 'constant.dart';
 import 'element.dart';
 import 'engine.dart' show AnalysisEngine;
 import 'java_core.dart';
@@ -595,8 +594,10 @@
   Token get beginToken => _expression.beginToken;
 
   @override
-  Iterable get childEntities =>
-      new ChildEntities()..add(_expression)..add(asOperator)..add(_type);
+  Iterable get childEntities => new ChildEntities()
+    ..add(_expression)
+    ..add(asOperator)
+    ..add(_type);
 
   @override
   Token get endToken => _type.endToken;
@@ -1252,13 +1253,13 @@
   ForEachStatement visitForEachStatement(ForEachStatement node) {
     DeclaredIdentifier loopVariable = node.loopVariable;
     if (loopVariable == null) {
-      return new ForEachStatement.con2(cloneToken(node.awaitKeyword),
+      return new ForEachStatement.withReference(cloneToken(node.awaitKeyword),
           cloneToken(node.forKeyword), cloneToken(node.leftParenthesis),
           cloneNode(node.identifier), cloneToken(node.inKeyword),
           cloneNode(node.iterable), cloneToken(node.rightParenthesis),
           cloneNode(node.body));
     }
-    return new ForEachStatement.con1(cloneToken(node.awaitKeyword),
+    return new ForEachStatement.withDeclaration(cloneToken(node.awaitKeyword),
         cloneToken(node.forKeyword), cloneToken(node.leftParenthesis),
         cloneNode(loopVariable), cloneToken(node.inKeyword),
         cloneNode(node.iterable), cloneToken(node.rightParenthesis),
@@ -3191,8 +3192,9 @@
   }
 
   @override
-  Iterable get childEntities =>
-      new ChildEntities()..add(awaitKeyword)..add(_expression);
+  Iterable get childEntities => new ChildEntities()
+    ..add(awaitKeyword)
+    ..add(_expression);
 
   @override
   Token get endToken => _expression.endToken;
@@ -3286,8 +3288,10 @@
   }
 
   @override
-  Iterable get childEntities =>
-      new ChildEntities()..add(_leftOperand)..add(operator)..add(_rightOperand);
+  Iterable get childEntities => new ChildEntities()
+    ..add(_leftOperand)
+    ..add(operator)
+    ..add(_rightOperand);
 
   @override
   Token get endToken => _rightOperand.endToken;
@@ -3492,8 +3496,10 @@
   }
 
   @override
-  Iterable get childEntities =>
-      new ChildEntities()..add(keyword)..add(star)..add(_block);
+  Iterable get childEntities => new ChildEntities()
+    ..add(keyword)
+    ..add(star)
+    ..add(_block);
 
   @override
   Token get endToken => _block.endToken;
@@ -3659,8 +3665,10 @@
   Token get beginToken => breakKeyword;
 
   @override
-  Iterable get childEntities =>
-      new ChildEntities()..add(breakKeyword)..add(_label)..add(semicolon);
+  Iterable get childEntities => new ChildEntities()
+    ..add(breakKeyword)
+    ..add(_label)
+    ..add(semicolon);
 
   @override
   Token get endToken => semicolon;
@@ -4567,8 +4575,9 @@
   Token get beginToken => _identifier.beginToken;
 
   @override
-  Iterable get childEntities =>
-      new ChildEntities()..add(newKeyword)..add(_identifier);
+  Iterable get childEntities => new ChildEntities()
+    ..add(newKeyword)
+    ..add(_identifier);
 
   @override
   Token get endToken => _identifier.endToken;
@@ -4709,7 +4718,9 @@
   Iterable get childEntities {
     ChildEntities result = new ChildEntities()..add(_scriptTag);
     if (_directivesAreBeforeDeclarations) {
-      result..addAll(_directives)..addAll(_declarations);
+      result
+        ..addAll(_directives)
+        ..addAll(_declarations);
     } else {
       result.addAll(sortedDirectivesAndDeclarations);
     }
@@ -5261,18 +5272,6 @@
 }
 
 /**
- * Object representing a "const" instance creation expression, and its
- * evaluation result.  This is used as the AnalysisTarget for constant
- * evaluation of instance creation expressions.
- */
-class ConstantInstanceCreationHandle {
-  /**
-   * The result of evaluating the constant.
-   */
-  EvaluationResultImpl evaluationResult;
-}
-
-/**
  * A constructor declaration.
  *
  * > constructorDeclaration ::=
@@ -5684,8 +5683,10 @@
   Token get beginToken => _type.beginToken;
 
   @override
-  Iterable get childEntities =>
-      new ChildEntities()..add(_type)..add(period)..add(_name);
+  Iterable get childEntities => new ChildEntities()
+    ..add(_type)
+    ..add(period)
+    ..add(_name);
 
   @override
   Token get endToken {
@@ -5775,8 +5776,10 @@
   Token get beginToken => continueKeyword;
 
   @override
-  Iterable get childEntities =>
-      new ChildEntities()..add(continueKeyword)..add(_label)..add(semicolon);
+  Iterable get childEntities => new ChildEntities()
+    ..add(continueKeyword)
+    ..add(_label)
+    ..add(semicolon);
 
   @override
   Token get endToken => semicolon;
@@ -5877,8 +5880,10 @@
   }
 
   @override
-  Iterable get childEntities =>
-      super._childEntities..add(keyword)..add(_type)..add(_identifier);
+  Iterable get childEntities => super._childEntities
+    ..add(keyword)
+    ..add(_type)
+    ..add(_identifier);
 
   @override
   LocalVariableElement get element {
@@ -5999,8 +6004,10 @@
   Token get beginToken => _parameter.beginToken;
 
   @override
-  Iterable get childEntities =>
-      new ChildEntities()..add(_parameter)..add(separator)..add(_defaultValue);
+  Iterable get childEntities => new ChildEntities()
+    ..add(_parameter)
+    ..add(separator)
+    ..add(_defaultValue);
 
   /**
    * Return the expression computing the default value for the parameter, or
@@ -6953,8 +6960,9 @@
   Token get beginToken => _expression.beginToken;
 
   @override
-  Iterable get childEntities =>
-      new ChildEntities()..add(_expression)..add(semicolon);
+  Iterable get childEntities => new ChildEntities()
+    ..add(_expression)
+    ..add(semicolon);
 
   @override
   Token get endToken {
@@ -7016,8 +7024,9 @@
   Token get beginToken => extendsKeyword;
 
   @override
-  Iterable get childEntities =>
-      new ChildEntities()..add(extendsKeyword)..add(_superclass);
+  Iterable get childEntities => new ChildEntities()
+    ..add(extendsKeyword)
+    ..add(_superclass);
 
   @override
   Token get endToken => _superclass.endToken;
@@ -7093,8 +7102,10 @@
   }
 
   @override
-  Iterable get childEntities =>
-      super._childEntities..add(staticKeyword)..add(_fieldList)..add(semicolon);
+  Iterable get childEntities => super._childEntities
+    ..add(staticKeyword)
+    ..add(_fieldList)
+    ..add(semicolon);
 
   @override
   Element get element => null;
@@ -7339,6 +7350,7 @@
    * Initialize a newly created for-each statement. The [awaitKeyword] can be
    * `null` if this is not an asynchronous for loop.
    */
+  @deprecated // Use new ForEachStatement.withDeclaration(...)
   ForEachStatement.con1(this.awaitKeyword, this.forKeyword,
       this.leftParenthesis, DeclaredIdentifier loopVariable, this.inKeyword,
       Expression iterator, this.rightParenthesis, Statement body) {
@@ -7351,6 +7363,7 @@
    * Initialize a newly created for-each statement. The [awaitKeyword] can be
    * `null` if this is not an asynchronous for loop.
    */
+  @deprecated // Use new ForEachStatement.withReference(...)
   ForEachStatement.con2(this.awaitKeyword, this.forKeyword,
       this.leftParenthesis, SimpleIdentifier identifier, this.inKeyword,
       Expression iterator, this.rightParenthesis, Statement body) {
@@ -7359,6 +7372,32 @@
     _body = _becomeParentOf(body);
   }
 
+  /**
+   * Initialize a newly created for-each statement whose loop control variable
+   * is declared internally (in the for-loop part). The [awaitKeyword] can be
+   * `null` if this is not an asynchronous for loop.
+   */
+  ForEachStatement.withDeclaration(this.awaitKeyword, this.forKeyword,
+      this.leftParenthesis, DeclaredIdentifier loopVariable, this.inKeyword,
+      Expression iterator, this.rightParenthesis, Statement body) {
+    _loopVariable = _becomeParentOf(loopVariable);
+    _iterable = _becomeParentOf(iterator);
+    _body = _becomeParentOf(body);
+  }
+
+  /**
+   * Initialize a newly created for-each statement whose loop control variable
+   * is declared outside the for loop. The [awaitKeyword] can be `null` if this
+   * is not an asynchronous for loop.
+   */
+  ForEachStatement.withReference(this.awaitKeyword, this.forKeyword,
+      this.leftParenthesis, SimpleIdentifier identifier, this.inKeyword,
+      Expression iterator, this.rightParenthesis, Statement body) {
+    _identifier = _becomeParentOf(identifier);
+    _iterable = _becomeParentOf(iterator);
+    _body = _becomeParentOf(body);
+  }
+
   @override
   Token get beginToken => forKeyword;
 
@@ -7570,7 +7609,9 @@
       }
       result.add(parameter);
     }
-    return result..add(rightDelimiter)..add(rightParenthesis);
+    return result
+      ..add(rightDelimiter)
+      ..add(rightParenthesis);
   }
 
   @override
@@ -8047,8 +8088,9 @@
   }
 
   @override
-  Iterable get childEntities =>
-      new ChildEntities()..add(_parameters)..add(_body);
+  Iterable get childEntities => new ChildEntities()
+    ..add(_parameters)
+    ..add(_body);
 
   @override
   Token get endToken {
@@ -8161,8 +8203,9 @@
   }
 
   @override
-  Iterable get childEntities =>
-      new ChildEntities()..add(_function)..add(_argumentList);
+  Iterable get childEntities => new ChildEntities()
+    ..add(_function)
+    ..add(_argumentList);
 
   @override
   Token get endToken => _argumentList.endToken;
@@ -8345,8 +8388,10 @@
   }
 
   @override
-  Iterable get childEntities =>
-      super._childEntities..add(_returnType)..add(identifier)..add(parameters);
+  Iterable get childEntities => super._childEntities
+    ..add(_returnType)
+    ..add(identifier)
+    ..add(parameters);
 
   @override
   Token get endToken => _parameters.endToken;
@@ -9642,13 +9687,13 @@
   ForEachStatement visitForEachStatement(ForEachStatement node) {
     DeclaredIdentifier loopVariable = node.loopVariable;
     if (loopVariable == null) {
-      return new ForEachStatement.con2(_mapToken(node.awaitKeyword),
+      return new ForEachStatement.withReference(_mapToken(node.awaitKeyword),
           _mapToken(node.forKeyword), _mapToken(node.leftParenthesis),
           _cloneNode(node.identifier), _mapToken(node.inKeyword),
           _cloneNode(node.iterable), _mapToken(node.rightParenthesis),
           _cloneNode(node.body));
     }
-    return new ForEachStatement.con1(_mapToken(node.awaitKeyword),
+    return new ForEachStatement.withDeclaration(_mapToken(node.awaitKeyword),
         _mapToken(node.forKeyword), _mapToken(node.leftParenthesis),
         _cloneNode(loopVariable), _mapToken(node.inKeyword),
         _cloneNode(node.iterable), _mapToken(node.rightParenthesis),
@@ -10519,12 +10564,6 @@
   ConstructorElement staticElement;
 
   /**
-   * The [ConstantInstanceCreationHandle] holding the result of evaluating this
-   * expression, if it is constant.
-   */
-  ConstantInstanceCreationHandle constantHandle;
-
-  /**
    * Initialize a newly created instance creation expression.
    */
   InstanceCreationExpression(this.keyword, ConstructorName constructorName,
@@ -10570,16 +10609,6 @@
   Token get endToken => _argumentList.endToken;
 
   /**
-   * The result of evaluating this expression, if it is constant.
-   */
-  EvaluationResultImpl get evaluationResult {
-    if (constantHandle != null) {
-      return constantHandle.evaluationResult;
-    }
-    return null;
-  }
-
-  /**
    * Return `true` if this creation expression is used to invoke a constant
    * constructor.
    */
@@ -10916,7 +10945,9 @@
   Token get beginToken => _label.beginToken;
 
   @override
-  Iterable get childEntities => new ChildEntities()..add(_label)..add(colon);
+  Iterable get childEntities => new ChildEntities()
+    ..add(_label)
+    ..add(colon);
 
   @override
   Token get endToken => colon;
@@ -11048,8 +11079,10 @@
   }
 
   @override
-  Iterable get childEntities =>
-      super._childEntities..add(libraryKeyword)..add(_name)..add(semicolon);
+  Iterable get childEntities => super._childEntities
+    ..add(libraryKeyword)
+    ..add(_name)
+    ..add(semicolon);
 
   @override
   Token get endToken => semicolon;
@@ -11365,8 +11398,10 @@
   Token get beginToken => _key.beginToken;
 
   @override
-  Iterable get childEntities =>
-      new ChildEntities()..add(_key)..add(separator)..add(_value);
+  Iterable get childEntities => new ChildEntities()
+    ..add(_key)
+    ..add(separator)
+    ..add(_value);
 
   @override
   Token get endToken => _value.endToken;
@@ -11728,10 +11763,8 @@
    * if there is no target. In an ordinary method invocation this will be a
    * period ('.'). In a cascade section this will be the cascade operator
    * ('..').
-   *
-   * Deprecated: use [operator] instead.
    */
-  @deprecated
+  @deprecated // Use this.operator
   Token get period => operator;
 
   /**
@@ -11739,10 +11772,8 @@
    * if there is no target. In an ordinary method invocation this will be a
    * period ('.'). In a cascade section this will be the cascade operator
    * ('..').
-   *
-   * Deprecated: use [operator] instead.
    */
-  @deprecated
+  @deprecated // Use this.operator
   void set period(Token value) {
     operator = value;
   }
@@ -11862,8 +11893,9 @@
   Token get beginToken => _name.beginToken;
 
   @override
-  Iterable get childEntities =>
-      new ChildEntities()..add(_name)..add(_expression);
+  Iterable get childEntities => new ChildEntities()
+    ..add(_name)
+    ..add(_expression);
 
   /**
    * Return the element representing the parameter being named by this
@@ -11997,8 +12029,9 @@
   Token get beginToken => nativeKeyword;
 
   @override
-  Iterable get childEntities =>
-      new ChildEntities()..add(nativeKeyword)..add(_name);
+  Iterable get childEntities => new ChildEntities()
+    ..add(nativeKeyword)
+    ..add(_name);
 
   @override
   Token get endToken => _name.endToken;
@@ -12278,16 +12311,27 @@
 
   /**
    * Initialize a newly created locator to locate an [AstNode] by locating the
+   * node within an AST structure that corresponds to the given range of
+   * characters (between the [startOffset] and [endOffset] in the source.
+   */
+  NodeLocator(int startOffset, [int endOffset])
+      : this._startOffset = startOffset,
+        this._endOffset = endOffset == null ? startOffset : endOffset;
+
+  /**
+   * Initialize a newly created locator to locate an [AstNode] by locating the
    * node within an AST structure that corresponds to the given [offset] in the
    * source.
    */
-  NodeLocator.con1(int offset) : this.con2(offset, offset);
+  @deprecated // Use new NodeLocator(offset)
+  NodeLocator.con1(int offset) : this(offset);
 
   /**
    * Initialize a newly created locator to locate an [AstNode] by locating the
    * node within an AST structure that corresponds to the given range of
    * characters (between the [startOffset] and [endOffset] in the source.
    */
+  @deprecated // Use new NodeLocator(startOffset, endOffset)
   NodeLocator.con2(this._startOffset, this._endOffset);
 
   /**
@@ -13788,8 +13832,10 @@
       : super(comment, metadata, partUri);
 
   @override
-  Iterable get childEntities =>
-      super._childEntities..add(partKeyword)..add(_uri)..add(semicolon);
+  Iterable get childEntities => super._childEntities
+    ..add(partKeyword)
+    ..add(_uri)
+    ..add(semicolon);
 
   @override
   Token get endToken => semicolon;
@@ -13985,8 +14031,9 @@
   }
 
   @override
-  Iterable get childEntities =>
-      new ChildEntities()..add(_operand)..add(operator);
+  Iterable get childEntities => new ChildEntities()
+    ..add(_operand)
+    ..add(operator);
 
   @override
   Token get endToken => operator;
@@ -14116,8 +14163,10 @@
   }
 
   @override
-  Iterable get childEntities =>
-      new ChildEntities()..add(_prefix)..add(period)..add(_identifier);
+  Iterable get childEntities => new ChildEntities()
+    ..add(_prefix)
+    ..add(period)
+    ..add(_identifier);
 
   @override
   Token get endToken => _identifier.endToken;
@@ -14258,8 +14307,9 @@
   }
 
   @override
-  Iterable get childEntities =>
-      new ChildEntities()..add(operator)..add(_operand);
+  Iterable get childEntities => new ChildEntities()
+    ..add(operator)
+    ..add(_operand);
 
   @override
   Token get endToken => _operand.endToken;
@@ -14389,8 +14439,10 @@
   }
 
   @override
-  Iterable get childEntities =>
-      new ChildEntities()..add(_target)..add(operator)..add(_propertyName);
+  Iterable get childEntities => new ChildEntities()
+    ..add(_target)
+    ..add(operator)
+    ..add(_propertyName);
 
   @override
   Token get endToken => _propertyName.endToken;
@@ -15316,8 +15368,10 @@
   Token get beginToken => returnKeyword;
 
   @override
-  Iterable get childEntities =>
-      new ChildEntities()..add(returnKeyword)..add(_expression)..add(semicolon);
+  Iterable get childEntities => new ChildEntities()
+    ..add(returnKeyword)
+    ..add(_expression)
+    ..add(semicolon);
 
   @override
   Token get endToken => semicolon;
@@ -16001,8 +16055,10 @@
   }
 
   @override
-  Iterable get childEntities =>
-      super._childEntities..add(keyword)..add(_type)..add(identifier);
+  Iterable get childEntities => super._childEntities
+    ..add(keyword)
+    ..add(_type)
+    ..add(identifier);
 
   @override
   Token get endToken => identifier.endToken;
@@ -17280,8 +17336,9 @@
   Token get beginToken => throwKeyword;
 
   @override
-  Iterable get childEntities =>
-      new ChildEntities()..add(throwKeyword)..add(_expression);
+  Iterable get childEntities => new ChildEntities()
+    ..add(throwKeyword)
+    ..add(_expression);
 
   @override
   Token get endToken {
@@ -17360,8 +17417,9 @@
   }
 
   @override
-  Iterable get childEntities =>
-      super._childEntities..add(_variableList)..add(semicolon);
+  Iterable get childEntities => super._childEntities
+    ..add(_variableList)
+    ..add(semicolon);
 
   @override
   Element get element => null;
@@ -18773,8 +18831,9 @@
     _typeArguments = _becomeParentOf(typeArguments);
   }
 
-  ChildEntities get _childEntities =>
-      new ChildEntities()..add(constKeyword)..add(_typeArguments);
+  ChildEntities get _childEntities => new ChildEntities()
+    ..add(constKeyword)
+    ..add(_typeArguments);
 
   @override
   void visitChildren(AstVisitor visitor) {
@@ -18818,8 +18877,9 @@
   Token get beginToken => _name.beginToken;
 
   @override
-  Iterable get childEntities =>
-      new ChildEntities()..add(_name)..add(_typeArguments);
+  Iterable get childEntities => new ChildEntities()
+    ..add(_name)
+    ..add(_typeArguments);
 
   @override
   Token get endToken {
@@ -18934,8 +18994,10 @@
   }
 
   @override
-  Iterable get childEntities =>
-      super._childEntities..add(_name)..add(extendsKeyword)..add(_bound);
+  Iterable get childEntities => super._childEntities
+    ..add(_name)
+    ..add(extendsKeyword)
+    ..add(_bound);
 
   @override
   TypeParameterElement get element =>
@@ -19555,8 +19617,10 @@
   }
 
   @override
-  Iterable get childEntities =>
-      super._childEntities..add(_name)..add(equals)..add(_initializer);
+  Iterable get childEntities => super._childEntities
+    ..add(_name)
+    ..add(equals)
+    ..add(_initializer);
 
   /**
    * This overridden implementation of getDocumentationComment() looks in the
@@ -19786,8 +19850,9 @@
   Token get beginToken => _variableList.beginToken;
 
   @override
-  Iterable get childEntities =>
-      new ChildEntities()..add(_variableList)..add(semicolon);
+  Iterable get childEntities => new ChildEntities()
+    ..add(_variableList)
+    ..add(semicolon);
 
   @override
   Token get endToken => semicolon;
diff --git a/pkg/analyzer/lib/src/generated/constant.dart b/pkg/analyzer/lib/src/generated/constant.dart
index 6aafe29..1fb7b7f 100644
--- a/pkg/analyzer/lib/src/generated/constant.dart
+++ b/pkg/analyzer/lib/src/generated/constant.dart
@@ -9,7 +9,9 @@
 
 import 'dart:collection';
 
+import 'package:analyzer/src/generated/engine.dart';
 import 'package:analyzer/src/generated/utilities_general.dart';
+import 'package:analyzer/src/task/dart.dart';
 
 import 'ast.dart';
 import 'element.dart';
@@ -23,6 +25,11 @@
 import 'utilities_dart.dart' show ParameterKind;
 
 /**
+ * Callback used by [ReferenceFinder] to report that a dependency was found.
+ */
+typedef void ReferenceFinderCallback(ConstantEvaluationTarget dependency);
+
+/**
  * The state of an object representing a boolean value.
  */
 class BoolState extends InstanceState {
@@ -155,7 +162,7 @@
       InstanceCreationExpression node) {
     InstanceCreationExpression expression =
         super.visitInstanceCreationExpression(node);
-    expression.constantHandle = node.constantHandle;
+    expression.staticElement = node.staticElement;
     return expression;
   }
 
@@ -186,6 +193,794 @@
 }
 
 /**
+ * Helper class encapsulating the methods for evaluating constants and
+ * constant instance creation expressions.
+ */
+class ConstantEvaluationEngine {
+  /**
+   * Parameter to "fromEnvironment" methods that denotes the default value.
+   */
+  static String _DEFAULT_VALUE_PARAM = "defaultValue";
+
+  /**
+   * Source of RegExp matching any public identifier.
+   * From sdk/lib/internal/symbol.dart.
+   */
+  static String _PUBLIC_IDENTIFIER_RE =
+      "(?!${ConstantValueComputer._RESERVED_WORD_RE}\\b(?!\\\$))[a-zA-Z\$][\\w\$]*";
+
+  /**
+   * RegExp that validates a non-empty non-private symbol.
+   * From sdk/lib/internal/symbol.dart.
+   */
+  static RegExp _PUBLIC_SYMBOL_PATTERN = new RegExp(
+      "^(?:${ConstantValueComputer._OPERATOR_RE}\$|$_PUBLIC_IDENTIFIER_RE(?:=?\$|[.](?!\$)))+?\$");
+
+  /**
+   * The type provider used to access the known types.
+   */
+  final TypeProvider typeProvider;
+
+  /**
+   * The set of variables declared on the command line using '-D'.
+   */
+  final DeclaredVariables _declaredVariables;
+
+  /**
+   * Validator used to verify correct dependency analysis when running unit
+   * tests.
+   */
+  final ConstantEvaluationValidator validator;
+
+  /**
+   * Initialize a newly created [ConstantEvaluationEngine].  The [typeProvider]
+   * is used to access known types.  [_declaredVariables] is the set of
+   * variables declared on the command line using '-D'.  The [validator], if
+   * given, is used to verify correct dependency analysis when running unit
+   * tests.
+   */
+  ConstantEvaluationEngine(this.typeProvider, this._declaredVariables,
+      {ConstantEvaluationValidator validator})
+      : validator = validator != null
+          ? validator
+          : new ConstantEvaluationValidator_ForProduction();
+
+  /**
+   * Check that the arguments to a call to fromEnvironment() are correct. The
+   * [arguments] are the AST nodes of the arguments. The [argumentValues] are
+   * the values of the unnamed arguments. The [namedArgumentValues] are the
+   * values of the named arguments. The [expectedDefaultValueType] is the
+   * allowed type of the "defaultValue" parameter (if present). Note:
+   * "defaultValue" is always allowed to be null. Return `true` if the arguments
+   * are correct, `false` if there is an error.
+   */
+  bool checkFromEnvironmentArguments(NodeList<Expression> arguments,
+      List<DartObjectImpl> argumentValues,
+      HashMap<String, DartObjectImpl> namedArgumentValues,
+      InterfaceType expectedDefaultValueType) {
+    int argumentCount = arguments.length;
+    if (argumentCount < 1 || argumentCount > 2) {
+      return false;
+    }
+    if (arguments[0] is NamedExpression) {
+      return false;
+    }
+    if (!identical(argumentValues[0].type, typeProvider.stringType)) {
+      return false;
+    }
+    if (argumentCount == 2) {
+      if (arguments[1] is! NamedExpression) {
+        return false;
+      }
+      if (!((arguments[1] as NamedExpression).name.label.name ==
+          _DEFAULT_VALUE_PARAM)) {
+        return false;
+      }
+      ParameterizedType defaultValueType =
+          namedArgumentValues[_DEFAULT_VALUE_PARAM].type;
+      if (!(identical(defaultValueType, expectedDefaultValueType) ||
+          identical(defaultValueType, typeProvider.nullType))) {
+        return false;
+      }
+    }
+    return true;
+  }
+
+  /**
+   * Check that the arguments to a call to Symbol() are correct. The [arguments]
+   * are the AST nodes of the arguments. The [argumentValues] are the values of
+   * the unnamed arguments. The [namedArgumentValues] are the values of the
+   * named arguments. Return `true` if the arguments are correct, `false` if
+   * there is an error.
+   */
+  bool checkSymbolArguments(NodeList<Expression> arguments,
+      List<DartObjectImpl> argumentValues,
+      HashMap<String, DartObjectImpl> namedArgumentValues) {
+    if (arguments.length != 1) {
+      return false;
+    }
+    if (arguments[0] is NamedExpression) {
+      return false;
+    }
+    if (!identical(argumentValues[0].type, typeProvider.stringType)) {
+      return false;
+    }
+    String name = argumentValues[0].stringValue;
+    return isValidPublicSymbol(name);
+  }
+
+  /**
+   * Compute the constant value associated with the given [constant].
+   */
+  void computeConstantValue(ConstantEvaluationTarget constant) {
+    validator.beforeComputeValue(constant);
+    if (constant is ParameterElement) {
+      if (constant.initializer != null) {
+        Expression defaultValue =
+            (constant as PotentiallyConstVariableElement).constantInitializer;
+        if (defaultValue != null) {
+          RecordingErrorListener errorListener = new RecordingErrorListener();
+          ErrorReporter errorReporter =
+              new ErrorReporter(errorListener, constant.source);
+          DartObjectImpl dartObject =
+              defaultValue.accept(new ConstantVisitor(this, errorReporter));
+          (constant as ParameterElementImpl).evaluationResult =
+              new EvaluationResultImpl(dartObject, errorListener.errors);
+        }
+      }
+    } else if (constant is VariableElement) {
+      RecordingErrorListener errorListener = new RecordingErrorListener();
+      ErrorReporter errorReporter =
+          new ErrorReporter(errorListener, constant.source);
+      DartObjectImpl dartObject =
+          (constant as PotentiallyConstVariableElement).constantInitializer
+              .accept(new ConstantVisitor(this, errorReporter));
+      // Only check the type for truly const declarations (don't check final
+      // fields with initializers, since their types may be generic.  The type
+      // of the final field will be checked later, when the constructor is
+      // invoked).
+      if (dartObject != null && constant.isConst) {
+        if (!runtimeTypeMatch(dartObject, constant.type)) {
+          errorReporter.reportErrorForElement(
+              CheckedModeCompileTimeErrorCode.VARIABLE_TYPE_MISMATCH, constant,
+              [dartObject.type, constant.type]);
+        }
+      }
+      (constant as VariableElementImpl).evaluationResult =
+          new EvaluationResultImpl(dartObject, errorListener.errors);
+    } else if (constant is ConstructorElement) {
+      // No evaluation needs to be done; constructor declarations are only in
+      // the dependency graph to ensure that any constants referred to in
+      // initializer lists and parameter defaults are evaluated before
+      // invocations of the constructor.  However we do need to annotate the
+      // element as being free of constant evaluation cycles so that later code
+      // will know that it is safe to evaluate.
+      (constant as ConstructorElementImpl).isCycleFree = true;
+    } else if (constant is ConstantEvaluationTarget_Annotation) {
+      Annotation constNode = constant.annotation;
+      ElementAnnotationImpl elementAnnotation = constNode.elementAnnotation;
+      // elementAnnotation is null if the annotation couldn't be resolved, in
+      // which case we skip it.
+      if (elementAnnotation != null) {
+        Element element = elementAnnotation.element;
+        if (element is PropertyAccessorElement &&
+            element.variable is VariableElementImpl) {
+          // The annotation is a reference to a compile-time constant variable.
+          // Just copy the evaluation result.
+          VariableElementImpl variableElement =
+              element.variable as VariableElementImpl;
+          elementAnnotation.evaluationResult = variableElement.evaluationResult;
+        } else if (element is ConstructorElementImpl &&
+            constNode.arguments != null) {
+          RecordingErrorListener errorListener = new RecordingErrorListener();
+          CompilationUnit sourceCompilationUnit =
+              constNode.getAncestor((node) => node is CompilationUnit);
+          ErrorReporter errorReporter = new ErrorReporter(
+              errorListener, sourceCompilationUnit.element.source);
+          ConstantVisitor constantVisitor =
+              new ConstantVisitor(this, errorReporter);
+          DartObjectImpl result = evaluateConstructorCall(constNode,
+              constNode.arguments.arguments, element, constantVisitor,
+              errorReporter);
+          elementAnnotation.evaluationResult =
+              new EvaluationResultImpl(result, errorListener.errors);
+        } else {
+          // This may happen for invalid code (e.g. failing to pass arguments
+          // to an annotation which references a const constructor).  The error
+          // is detected elsewhere, so just silently ignore it here.
+          elementAnnotation.evaluationResult = new EvaluationResultImpl(null);
+        }
+      }
+    } else {
+      // Should not happen.
+      assert(false);
+      AnalysisEngine.instance.logger.logError(
+          "Constant value computer trying to compute the value of a node of type ${constant.runtimeType}");
+      return;
+    }
+  }
+
+  /**
+   * Determine which constant elements need to have their values computed
+   * prior to computing the value of [constant], and report them using
+   * [callback].
+   */
+  void computeDependencies(
+      ConstantEvaluationTarget constant, ReferenceFinderCallback callback) {
+    ReferenceFinder referenceFinder = new ReferenceFinder(callback);
+    if (constant is ParameterElement) {
+      if (constant.initializer != null) {
+        Expression defaultValue =
+            (constant as ConstVariableElement).constantInitializer;
+        if (defaultValue != null) {
+          defaultValue.accept(referenceFinder);
+        }
+      }
+    } else if (constant is PotentiallyConstVariableElement) {
+      constant.constantInitializer.accept(referenceFinder);
+    } else if (constant is ConstructorElementImpl) {
+      constant.isCycleFree = false;
+      ConstructorElement redirectedConstructor =
+          getConstRedirectedConstructor(constant);
+      if (redirectedConstructor != null) {
+        ConstructorElement redirectedConstructorBase =
+            ConstantEvaluationEngine._getConstructorBase(redirectedConstructor);
+        callback(redirectedConstructorBase);
+        return;
+      }
+      bool superInvocationFound = false;
+      List<ConstructorInitializer> initializers = constant.constantInitializers;
+      for (ConstructorInitializer initializer in initializers) {
+        if (initializer is SuperConstructorInvocation) {
+          superInvocationFound = true;
+        }
+        initializer.accept(referenceFinder);
+      }
+      if (!superInvocationFound) {
+        // No explicit superconstructor invocation found, so we need to
+        // manually insert a reference to the implicit superconstructor.
+        InterfaceType superclass =
+            (constant.returnType as InterfaceType).superclass;
+        if (superclass != null && !superclass.isObject) {
+          ConstructorElement unnamedConstructor = ConstantEvaluationEngine
+              ._getConstructorBase(superclass.element.unnamedConstructor);
+          if (unnamedConstructor != null) {
+            callback(unnamedConstructor);
+          }
+        }
+      }
+      for (FieldElement field in constant.enclosingElement.fields) {
+        // Note: non-static const isn't allowed but we handle it anyway so that
+        // we won't be confused by incorrect code.
+        if ((field.isFinal || field.isConst) &&
+            !field.isStatic &&
+            field.initializer != null) {
+          callback(field);
+        }
+      }
+      for (ParameterElement parameterElement in constant.parameters) {
+        callback(parameterElement);
+      }
+    } else if (constant is ConstantEvaluationTarget_Annotation) {
+      Annotation constNode = constant.annotation;
+      ElementAnnotationImpl elementAnnotation = constNode.elementAnnotation;
+      // elementAnnotation is null if the annotation couldn't be resolved, in
+      // which case we skip it.
+      if (elementAnnotation != null) {
+        Element element = elementAnnotation.element;
+        if (element is PropertyAccessorElement &&
+            element.variable is VariableElementImpl) {
+          // The annotation is a reference to a compile-time constant variable,
+          // so it depends on the variable.
+          callback(element.variable);
+        } else if (element is ConstructorElementImpl && element.isConst) {
+          // The annotation is a constructor invocation, so it depends on the
+          // constructor.
+          // TODO(paulberry): make sure the right thing happens if the
+          // constructor is non-const.
+          callback(element);
+        } else {
+          // This could happen in the event of invalid code.  The error will be
+          // reported at constant evaluation time.
+        }
+      }
+      if (constNode.arguments != null) {
+        constNode.arguments.accept(referenceFinder);
+      }
+    } else {
+      // Should not happen.
+      assert(false);
+      AnalysisEngine.instance.logger.logError(
+          "Constant value computer trying to compute the value of a node of type ${constant.runtimeType}");
+    }
+  }
+
+  /**
+   * Evaluate a call to fromEnvironment() on the bool, int, or String class. The
+   * [environmentValue] is the value fetched from the environment. The
+   * [builtInDefaultValue] is the value that should be used as the default if no
+   * "defaultValue" argument appears in [namedArgumentValues]. The
+   * [namedArgumentValues] are the values of the named parameters passed to
+   * fromEnvironment(). Return a [DartObjectImpl] object corresponding to the
+   * evaluated result.
+   */
+  DartObjectImpl computeValueFromEnvironment(DartObject environmentValue,
+      DartObjectImpl builtInDefaultValue,
+      HashMap<String, DartObjectImpl> namedArgumentValues) {
+    DartObjectImpl value = environmentValue as DartObjectImpl;
+    if (value.isUnknown || value.isNull) {
+      // The name either doesn't exist in the environment or we couldn't parse
+      // the corresponding value.
+      // If the code supplied an explicit default, use it.
+      if (namedArgumentValues.containsKey(_DEFAULT_VALUE_PARAM)) {
+        value = namedArgumentValues[_DEFAULT_VALUE_PARAM];
+      } else if (value.isNull) {
+        // The code didn't supply an explicit default.
+        // The name exists in the environment but we couldn't parse the
+        // corresponding value.
+        // So use the built-in default value, because this is what the VM does.
+        value = builtInDefaultValue;
+      } else {
+        // The code didn't supply an explicit default.
+        // The name doesn't exist in the environment.
+        // The VM would use the built-in default value, but we don't want to do
+        // that for analysis because it's likely to lead to cascading errors.
+        // So just leave [value] in the unknown state.
+      }
+    }
+    return value;
+  }
+
+  DartObjectImpl evaluateConstructorCall(AstNode node,
+      NodeList<Expression> arguments, ConstructorElement constructor,
+      ConstantVisitor constantVisitor, ErrorReporter errorReporter) {
+    if (!_getConstructorBase(constructor).isCycleFree) {
+      // It's not safe to evaluate this constructor, so bail out.
+      // TODO(paulberry): ensure that a reasonable error message is produced
+      // in this case, as well as other cases involving constant expression
+      // circularities (e.g. "compile-time constant expression depends on
+      // itself")
+      return new DartObjectImpl.validWithUnknownValue(constructor.returnType);
+    }
+    int argumentCount = arguments.length;
+    List<DartObjectImpl> argumentValues =
+        new List<DartObjectImpl>(argumentCount);
+    List<Expression> argumentNodes = new List<Expression>(argumentCount);
+    HashMap<String, DartObjectImpl> namedArgumentValues =
+        new HashMap<String, DartObjectImpl>();
+    HashMap<String, NamedExpression> namedArgumentNodes =
+        new HashMap<String, NamedExpression>();
+    for (int i = 0; i < argumentCount; i++) {
+      Expression argument = arguments[i];
+      if (argument is NamedExpression) {
+        String name = argument.name.label.name;
+        namedArgumentValues[name] =
+            constantVisitor._valueOf(argument.expression);
+        namedArgumentNodes[name] = argument;
+        argumentValues[i] = typeProvider.nullObject;
+      } else {
+        argumentValues[i] = constantVisitor._valueOf(argument);
+        argumentNodes[i] = argument;
+      }
+    }
+    constructor = followConstantRedirectionChain(constructor);
+    InterfaceType definingClass = constructor.returnType as InterfaceType;
+    if (constructor.isFactory) {
+      // We couldn't find a non-factory constructor.
+      // See if it's because we reached an external const factory constructor
+      // that we can emulate.
+      if (constructor.name == "fromEnvironment") {
+        if (!checkFromEnvironmentArguments(
+            arguments, argumentValues, namedArgumentValues, definingClass)) {
+          errorReporter.reportErrorForNode(
+              CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION, node);
+          return null;
+        }
+        String variableName =
+            argumentCount < 1 ? null : argumentValues[0].stringValue;
+        if (identical(definingClass, typeProvider.boolType)) {
+          DartObject valueFromEnvironment;
+          valueFromEnvironment =
+              _declaredVariables.getBool(typeProvider, variableName);
+          return computeValueFromEnvironment(valueFromEnvironment,
+              new DartObjectImpl(typeProvider.boolType, BoolState.FALSE_STATE),
+              namedArgumentValues);
+        } else if (identical(definingClass, typeProvider.intType)) {
+          DartObject valueFromEnvironment;
+          valueFromEnvironment =
+              _declaredVariables.getInt(typeProvider, variableName);
+          return computeValueFromEnvironment(valueFromEnvironment,
+              new DartObjectImpl(typeProvider.nullType, NullState.NULL_STATE),
+              namedArgumentValues);
+        } else if (identical(definingClass, typeProvider.stringType)) {
+          DartObject valueFromEnvironment;
+          valueFromEnvironment =
+              _declaredVariables.getString(typeProvider, variableName);
+          return computeValueFromEnvironment(valueFromEnvironment,
+              new DartObjectImpl(typeProvider.nullType, NullState.NULL_STATE),
+              namedArgumentValues);
+        }
+      } else if (constructor.name == "" &&
+          identical(definingClass, typeProvider.symbolType) &&
+          argumentCount == 1) {
+        if (!checkSymbolArguments(
+            arguments, argumentValues, namedArgumentValues)) {
+          errorReporter.reportErrorForNode(
+              CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION, node);
+          return null;
+        }
+        String argumentValue = argumentValues[0].stringValue;
+        return new DartObjectImpl(
+            definingClass, new SymbolState(argumentValue));
+      }
+      // Either it's an external const factory constructor that we can't
+      // emulate, or an error occurred (a cycle, or a const constructor trying
+      // to delegate to a non-const constructor).
+      // In the former case, the best we can do is consider it an unknown value.
+      // In the latter case, the error has already been reported, so considering
+      // it an unknown value will suppress further errors.
+      return new DartObjectImpl.validWithUnknownValue(definingClass);
+    }
+    ConstructorElementImpl constructorBase = _getConstructorBase(constructor);
+    validator.beforeGetConstantInitializers(constructorBase);
+    List<ConstructorInitializer> initializers =
+        constructorBase.constantInitializers;
+    if (initializers == null) {
+      // This can happen in some cases where there are compile errors in the
+      // code being analyzed (for example if the code is trying to create a
+      // const instance using a non-const constructor, or the node we're
+      // visiting is involved in a cycle).  The error has already been reported,
+      // so consider it an unknown value to suppress further errors.
+      return new DartObjectImpl.validWithUnknownValue(definingClass);
+    }
+    HashMap<String, DartObjectImpl> fieldMap =
+        new HashMap<String, DartObjectImpl>();
+    // Start with final fields that are initialized at their declaration site.
+    for (FieldElement field in constructor.enclosingElement.fields) {
+      if ((field.isFinal || field.isConst) &&
+          !field.isStatic &&
+          field is ConstFieldElementImpl) {
+        validator.beforeGetFieldEvaluationResult(field);
+        EvaluationResultImpl evaluationResult = field.evaluationResult;
+        DartType fieldType =
+            FieldMember.from(field, constructor.returnType).type;
+        DartObjectImpl fieldValue = evaluationResult.value;
+        if (fieldValue != null && !runtimeTypeMatch(fieldValue, fieldType)) {
+          errorReporter.reportErrorForNode(
+              CheckedModeCompileTimeErrorCode.CONST_CONSTRUCTOR_FIELD_TYPE_MISMATCH,
+              node, [fieldValue.type, field.name, fieldType]);
+        }
+        fieldMap[field.name] = evaluationResult.value;
+      }
+    }
+    // Now evaluate the constructor declaration.
+    HashMap<String, DartObjectImpl> parameterMap =
+        new HashMap<String, DartObjectImpl>();
+    List<ParameterElement> parameters = constructor.parameters;
+    int parameterCount = parameters.length;
+    for (int i = 0; i < parameterCount; i++) {
+      ParameterElement parameter = parameters[i];
+      ParameterElement baseParameter = parameter;
+      while (baseParameter is ParameterMember) {
+        baseParameter = (baseParameter as ParameterMember).baseElement;
+      }
+      DartObjectImpl argumentValue = null;
+      AstNode errorTarget = null;
+      if (baseParameter.parameterKind == ParameterKind.NAMED) {
+        argumentValue = namedArgumentValues[baseParameter.name];
+        errorTarget = namedArgumentNodes[baseParameter.name];
+      } else if (i < argumentCount) {
+        argumentValue = argumentValues[i];
+        errorTarget = argumentNodes[i];
+      }
+      if (errorTarget == null) {
+        // No argument node that we can direct error messages to, because we
+        // are handling an optional parameter that wasn't specified.  So just
+        // direct error messages to the constructor call.
+        errorTarget = node;
+      }
+      if (argumentValue == null && baseParameter is ParameterElementImpl) {
+        // The parameter is an optional positional parameter for which no value
+        // was provided, so use the default value.
+        validator.beforeGetParameterDefault(baseParameter);
+        EvaluationResultImpl evaluationResult = baseParameter.evaluationResult;
+        if (evaluationResult == null) {
+          // No default was provided, so the default value is null.
+          argumentValue = typeProvider.nullObject;
+        } else if (evaluationResult.value != null) {
+          argumentValue = evaluationResult.value;
+        }
+      }
+      if (argumentValue != null) {
+        if (!runtimeTypeMatch(argumentValue, parameter.type)) {
+          errorReporter.reportErrorForNode(
+              CheckedModeCompileTimeErrorCode.CONST_CONSTRUCTOR_PARAM_TYPE_MISMATCH,
+              errorTarget, [argumentValue.type, parameter.type]);
+        }
+        if (baseParameter.isInitializingFormal) {
+          FieldElement field = (parameter as FieldFormalParameterElement).field;
+          if (field != null) {
+            DartType fieldType = field.type;
+            if (fieldType != parameter.type) {
+              // We've already checked that the argument can be assigned to the
+              // parameter; we also need to check that it can be assigned to
+              // the field.
+              if (!runtimeTypeMatch(argumentValue, fieldType)) {
+                errorReporter.reportErrorForNode(
+                    CheckedModeCompileTimeErrorCode.CONST_CONSTRUCTOR_PARAM_TYPE_MISMATCH,
+                    errorTarget, [argumentValue.type, fieldType]);
+              }
+            }
+            String fieldName = field.name;
+            fieldMap[fieldName] = argumentValue;
+          }
+        } else {
+          String name = baseParameter.name;
+          parameterMap[name] = argumentValue;
+        }
+      }
+    }
+    ConstantVisitor initializerVisitor = new ConstantVisitor(
+        this, errorReporter, lexicalEnvironment: parameterMap);
+    String superName = null;
+    NodeList<Expression> superArguments = null;
+    for (ConstructorInitializer initializer in initializers) {
+      if (initializer is ConstructorFieldInitializer) {
+        ConstructorFieldInitializer constructorFieldInitializer = initializer;
+        Expression initializerExpression =
+            constructorFieldInitializer.expression;
+        DartObjectImpl evaluationResult =
+            initializerExpression.accept(initializerVisitor);
+        if (evaluationResult != null) {
+          String fieldName = constructorFieldInitializer.fieldName.name;
+          fieldMap[fieldName] = evaluationResult;
+          PropertyAccessorElement getter = definingClass.getGetter(fieldName);
+          if (getter != null) {
+            PropertyInducingElement field = getter.variable;
+            if (!runtimeTypeMatch(evaluationResult, field.type)) {
+              errorReporter.reportErrorForNode(
+                  CheckedModeCompileTimeErrorCode.CONST_CONSTRUCTOR_FIELD_TYPE_MISMATCH,
+                  node, [evaluationResult.type, fieldName, field.type]);
+            }
+          }
+        }
+      } else if (initializer is SuperConstructorInvocation) {
+        SuperConstructorInvocation superConstructorInvocation = initializer;
+        SimpleIdentifier name = superConstructorInvocation.constructorName;
+        if (name != null) {
+          superName = name.name;
+        }
+        superArguments = superConstructorInvocation.argumentList.arguments;
+      } else if (initializer is RedirectingConstructorInvocation) {
+        // This is a redirecting constructor, so just evaluate the constructor
+        // it redirects to.
+        ConstructorElement constructor = initializer.staticElement;
+        if (constructor != null && constructor.isConst) {
+          return evaluateConstructorCall(node,
+              initializer.argumentList.arguments, constructor,
+              initializerVisitor, errorReporter);
+        }
+      }
+    }
+    // Evaluate explicit or implicit call to super().
+    InterfaceType superclass = definingClass.superclass;
+    if (superclass != null && !superclass.isObject) {
+      ConstructorElement superConstructor =
+          superclass.lookUpConstructor(superName, constructor.library);
+      if (superConstructor != null) {
+        if (superArguments == null) {
+          superArguments = new NodeList<Expression>(null);
+        }
+        evaluateSuperConstructorCall(node, fieldMap, superConstructor,
+            superArguments, initializerVisitor, errorReporter);
+      }
+    }
+    return new DartObjectImpl(definingClass, new GenericState(fieldMap));
+  }
+
+  void evaluateSuperConstructorCall(AstNode node,
+      HashMap<String, DartObjectImpl> fieldMap,
+      ConstructorElement superConstructor, NodeList<Expression> superArguments,
+      ConstantVisitor initializerVisitor, ErrorReporter errorReporter) {
+    if (superConstructor != null && superConstructor.isConst) {
+      DartObjectImpl evaluationResult = evaluateConstructorCall(node,
+          superArguments, superConstructor, initializerVisitor, errorReporter);
+      if (evaluationResult != null) {
+        fieldMap[GenericState.SUPERCLASS_FIELD] = evaluationResult;
+      }
+    }
+  }
+
+  /**
+   * Attempt to follow the chain of factory redirections until a constructor is
+   * reached which is not a const factory constructor. Return the constant
+   * constructor which terminates the chain of factory redirections, if the
+   * chain terminates. If there is a problem (e.g. a redirection can't be found,
+   * or a cycle is encountered), the chain will be followed as far as possible
+   * and then a const factory constructor will be returned.
+   */
+  ConstructorElement followConstantRedirectionChain(
+      ConstructorElement constructor) {
+    HashSet<ConstructorElement> constructorsVisited =
+        new HashSet<ConstructorElement>();
+    while (true) {
+      ConstructorElement redirectedConstructor =
+          getConstRedirectedConstructor(constructor);
+      if (redirectedConstructor == null) {
+        break;
+      } else {
+        ConstructorElement constructorBase = _getConstructorBase(constructor);
+        constructorsVisited.add(constructorBase);
+        ConstructorElement redirectedConstructorBase =
+            _getConstructorBase(redirectedConstructor);
+        if (constructorsVisited.contains(redirectedConstructorBase)) {
+          // Cycle in redirecting factory constructors--this is not allowed
+          // and is checked elsewhere--see
+          // [ErrorVerifier.checkForRecursiveFactoryRedirect()]).
+          break;
+        }
+      }
+      constructor = redirectedConstructor;
+    }
+    return constructor;
+  }
+
+  /**
+   * If [constructor] redirects to another const constructor, return the
+   * const constructor it redirects to.  Otherwise return `null`.
+   */
+  ConstructorElement getConstRedirectedConstructor(
+      ConstructorElement constructor) {
+    if (!constructor.isFactory) {
+      return null;
+    }
+    if (identical(constructor.enclosingElement.type, typeProvider.symbolType)) {
+      // The dart:core.Symbol has a const factory constructor that redirects
+      // to dart:_internal.Symbol.  That in turn redirects to an external
+      // const constructor, which we won't be able to evaluate.
+      // So stop following the chain of redirections at dart:core.Symbol, and
+      // let [evaluateInstanceCreationExpression] handle it specially.
+      return null;
+    }
+    ConstructorElement redirectedConstructor =
+        constructor.redirectedConstructor;
+    if (redirectedConstructor == null) {
+      // This can happen if constructor is an external factory constructor.
+      return null;
+    }
+    if (!redirectedConstructor.isConst) {
+      // Delegating to a non-const constructor--this is not allowed (and
+      // is checked elsewhere--see
+      // [ErrorVerifier.checkForRedirectToNonConstConstructor()]).
+      return null;
+    }
+    return redirectedConstructor;
+  }
+
+  /**
+   * Check if the object [obj] matches the type [type] according to runtime type
+   * checking rules.
+   */
+  bool runtimeTypeMatch(DartObjectImpl obj, DartType type) {
+    if (obj.isNull) {
+      return true;
+    }
+    if (type.isUndefined) {
+      return false;
+    }
+    return obj.type.isSubtypeOf(type);
+  }
+
+  /**
+   * Determine whether the given string is a valid name for a public symbol
+   * (i.e. whether it is allowed for a call to the Symbol constructor).
+   */
+  static bool isValidPublicSymbol(String name) => name.isEmpty ||
+      name == "void" ||
+      new JavaPatternMatcher(_PUBLIC_SYMBOL_PATTERN, name).matches();
+
+  static ConstructorElementImpl _getConstructorBase(
+      ConstructorElement constructor) {
+    while (constructor is ConstructorMember) {
+      constructor = (constructor as ConstructorMember).baseElement;
+    }
+    return constructor;
+  }
+}
+
+/**
+ * Wrapper around an [Annotation] which can be used as a
+ * [ConstantEvaluationTarget].
+ */
+class ConstantEvaluationTarget_Annotation implements ConstantEvaluationTarget {
+  final AnalysisContext context;
+  final Source source;
+  final Source librarySource;
+  final Annotation annotation;
+
+  ConstantEvaluationTarget_Annotation(
+      this.context, this.source, this.librarySource, this.annotation);
+
+  @override
+  int get hashCode => JenkinsSmiHash.hash4(context.hashCode, source.hashCode,
+      librarySource.hashCode, annotation.hashCode);
+
+  @override
+  bool operator ==(other) {
+    if (other is ConstantEvaluationTarget_Annotation) {
+      return this.context == other.context &&
+          this.source == other.source &&
+          this.librarySource == other.librarySource &&
+          this.annotation == other.annotation;
+    } else {
+      return false;
+    }
+  }
+}
+
+/**
+ * Interface used by unit tests to verify correct dependency analysis during
+ * constant evaluation.
+ */
+abstract class ConstantEvaluationValidator {
+  /**
+   * This method is called just before computing the constant value associated
+   * with [constant]. Unit tests will override this method to introduce
+   * additional error checking.
+   */
+  void beforeComputeValue(ConstantEvaluationTarget constant);
+
+  /**
+   * This method is called just before getting the constant initializers
+   * associated with the [constructor]. Unit tests will override this method to
+   * introduce additional error checking.
+   */
+  void beforeGetConstantInitializers(ConstructorElement constructor);
+
+  /**
+   * This method is called just before retrieving an evaluation result from an
+   * element. Unit tests will override it to introduce additional error
+   * checking.
+   */
+  void beforeGetEvaluationResult(ConstantEvaluationTarget constant);
+
+  /**
+   * This method is called just before getting the constant value of a field
+   * with an initializer.  Unit tests will override this method to introduce
+   * additional error checking.
+   */
+  void beforeGetFieldEvaluationResult(FieldElementImpl field);
+
+  /**
+   * This method is called just before getting a parameter's default value. Unit
+   * tests will override this method to introduce additional error checking.
+   */
+  void beforeGetParameterDefault(ParameterElement parameter);
+}
+
+/**
+ * Implementation of [ConstantEvaluationValidator] used in production; does no
+ * validation.
+ */
+class ConstantEvaluationValidator_ForProduction
+    implements ConstantEvaluationValidator {
+  @override
+  void beforeComputeValue(ConstantEvaluationTarget constant) {}
+
+  @override
+  void beforeGetConstantInitializers(ConstructorElement constructor) {}
+
+  @override
+  void beforeGetEvaluationResult(ConstantEvaluationTarget constant) {}
+
+  @override
+  void beforeGetFieldEvaluationResult(FieldElementImpl field) {}
+
+  @override
+  void beforeGetParameterDefault(ParameterElement parameter) {}
+}
+
+/**
  * Instances of the class `ConstantEvaluator` evaluate constant expressions to
  * produce their compile-time value. According to the Dart Language
  * Specification:
@@ -262,8 +1057,9 @@
   EvaluationResult evaluate(Expression expression) {
     RecordingErrorListener errorListener = new RecordingErrorListener();
     ErrorReporter errorReporter = new ErrorReporter(errorListener, _source);
-    DartObjectImpl result = expression
-        .accept(new ConstantVisitor.con1(_typeProvider, errorReporter));
+    DartObjectImpl result = expression.accept(new ConstantVisitor(
+        new ConstantEvaluationEngine(_typeProvider, new DeclaredVariables()),
+        errorReporter));
     if (result != null) {
       return EvaluationResult.forValue(result);
     }
@@ -278,40 +1074,28 @@
  * those compilation units.
  */
 class ConstantFinder extends RecursiveAstVisitor<Object> {
-  /**
-   * A table mapping constant variable elements to the declarations of those
-   * variables.
-   */
-  final HashMap<PotentiallyConstVariableElement, VariableDeclaration> variableMap =
-      new HashMap<PotentiallyConstVariableElement, VariableDeclaration>();
+  final AnalysisContext context;
+  final Source source;
+  final Source librarySource;
 
   /**
-   * A table mapping constant constructors to the declarations of those
-   * constructors.
+   * The elements and AST nodes whose constant values need to be computed.
    */
-  final HashMap<ConstructorElement, ConstructorDeclaration> constructorMap =
-      new HashMap<ConstructorElement, ConstructorDeclaration>();
-
-  /**
-   * A collection of constant constructor invocations.
-   */
-  final List<InstanceCreationExpression> constructorInvocations =
-      new List<InstanceCreationExpression>();
-
-  /**
-   * A collection of annotations.
-   */
-  final List<Annotation> annotations = <Annotation>[];
+  HashSet<ConstantEvaluationTarget> constantsToCompute =
+      new HashSet<ConstantEvaluationTarget>();
 
   /**
    * True if instance variables marked as "final" should be treated as "const".
    */
   bool treatFinalInstanceVarAsConst = false;
 
+  ConstantFinder(this.context, this.source, this.librarySource);
+
   @override
   Object visitAnnotation(Annotation node) {
     super.visitAnnotation(node);
-    annotations.add(node);
+    constantsToCompute.add(new ConstantEvaluationTarget_Annotation(
+        context, source, librarySource, node));
     return null;
   }
 
@@ -337,22 +1121,14 @@
     if (node.constKeyword != null) {
       ConstructorElement element = node.element;
       if (element != null) {
-        constructorMap[element] = node;
+        constantsToCompute.add(element);
+        constantsToCompute.addAll(element.parameters);
       }
     }
     return null;
   }
 
   @override
-  Object visitInstanceCreationExpression(InstanceCreationExpression node) {
-    super.visitInstanceCreationExpression(node);
-    if (node.isConst) {
-      constructorInvocations.add(node);
-    }
-    return null;
-  }
-
-  @override
   Object visitVariableDeclaration(VariableDeclaration node) {
     super.visitVariableDeclaration(node);
     Expression initializer = node.initializer;
@@ -364,7 +1140,7 @@
                 node.isFinal &&
                 !element.isStatic)) {
       if (node.element != null) {
-        variableMap[node.element as PotentiallyConstVariableElement] = node;
+        constantsToCompute.add(node.element);
       }
     }
     return null;
@@ -381,11 +1157,6 @@
  */
 class ConstantValueComputer {
   /**
-   * Parameter to "fromEnvironment" methods that denotes the default value.
-   */
-  static String _DEFAULT_VALUE_PARAM = "defaultValue";
-
-  /**
    * Source of RegExp matching declarable operator names.
    * From sdk/lib/internal/symbol.dart.
    */
@@ -393,13 +1164,6 @@
       "(?:[\\-+*/%&|^]|\\[\\]=?|==|~/?|<[<=]?|>[>=]?|unary-)";
 
   /**
-   * Source of RegExp matching any public identifier.
-   * From sdk/lib/internal/symbol.dart.
-   */
-  static String _PUBLIC_IDENTIFIER_RE =
-      "(?!${ConstantValueComputer._RESERVED_WORD_RE}\\b(?!\\\$))[a-zA-Z\$][\\w\$]*";
-
-  /**
    * Source of RegExp matching Dart reserved words.
    * From sdk/lib/internal/symbol.dart.
    */
@@ -407,733 +1171,91 @@
       "(?:assert|break|c(?:a(?:se|tch)|lass|on(?:st|tinue))|d(?:efault|o)|e(?:lse|num|xtends)|f(?:alse|inal(?:ly)?|or)|i[fns]|n(?:ew|ull)|ret(?:hrow|urn)|s(?:uper|witch)|t(?:h(?:is|row)|r(?:ue|y))|v(?:ar|oid)|w(?:hile|ith))";
 
   /**
-   * RegExp that validates a non-empty non-private symbol.
-   * From sdk/lib/internal/symbol.dart.
-   */
-  static RegExp _PUBLIC_SYMBOL_PATTERN = new RegExp(
-      "^(?:${ConstantValueComputer._OPERATOR_RE}\$|$_PUBLIC_IDENTIFIER_RE(?:=?\$|[.](?!\$)))+?\$");
-
-  /**
-   * The type provider used to access the known types.
-   */
-  TypeProvider typeProvider;
-
-  /**
-   * The object used to find constant variables and constant constructor
-   * invocations in the compilation units that were added.
-   */
-  ConstantFinder _constantFinder = new ConstantFinder();
-
-  /**
    * A graph in which the nodes are the constants, and the edges are from each
    * constant to the other constants that are referenced by it.
    */
-  DirectedGraph<AstNode> referenceGraph = new DirectedGraph<AstNode>();
+  DirectedGraph<ConstantEvaluationTarget> referenceGraph =
+      new DirectedGraph<ConstantEvaluationTarget>();
 
   /**
-   * A table mapping constant variables to the declarations of those variables.
+   * The elements whose constant values need to be computed.  Any elements
+   * which appear in [referenceGraph] but not in this set either belong to a
+   * different library cycle (and hence don't need to be recomputed) or were
+   * computed during a previous stage of resolution stage (e.g. constants
+   * associated with enums).
    */
-  HashMap<PotentiallyConstVariableElement, VariableDeclaration> _variableDeclarationMap;
+  HashSet<ConstantEvaluationTarget> _constantsToCompute =
+      new HashSet<ConstantEvaluationTarget>();
 
   /**
-   * A table mapping constant constructors to the declarations of those
-   * constructors.
+   * The evaluation engine that does the work of evaluating instance creation
+   * expressions.
    */
-  HashMap<ConstructorElement, ConstructorDeclaration> constructorDeclarationMap;
+  final ConstantEvaluationEngine evaluationEngine;
 
-  /**
-   * A collection of constant constructor invocations.
-   */
-  List<InstanceCreationExpression> _constructorInvocations;
-
-  /**
-   * A collection of annotations.
-   */
-  List<Annotation> _annotations;
-
-  /**
-   * The set of variables declared on the command line using '-D'.
-   */
-  final DeclaredVariables _declaredVariables;
+  final AnalysisContext _context;
 
   /**
    * Initialize a newly created constant value computer. The [typeProvider] is
    * the type provider used to access known types. The [declaredVariables] is
    * the set of variables declared on the command line using '-D'.
    */
-  ConstantValueComputer(TypeProvider typeProvider, this._declaredVariables) {
-    this.typeProvider = typeProvider;
-  }
+  ConstantValueComputer(this._context, TypeProvider typeProvider,
+      DeclaredVariables declaredVariables,
+      [ConstantEvaluationValidator validator])
+      : evaluationEngine = new ConstantEvaluationEngine(
+          typeProvider, declaredVariables, validator: validator);
 
   /**
    * Add the constants in the given compilation [unit] to the list of constants
    * whose value needs to be computed.
    */
-  void add(CompilationUnit unit) {
-    unit.accept(_constantFinder);
+  void add(CompilationUnit unit, Source source, Source librarySource) {
+    ConstantFinder constantFinder =
+        new ConstantFinder(_context, source, librarySource);
+    unit.accept(constantFinder);
+    _constantsToCompute.addAll(constantFinder.constantsToCompute);
   }
 
   /**
-   * This method is called just before computing the constant value associated
-   * with [constNode]. Unit tests will override this method to introduce
-   * additional error checking.
-   */
-  void beforeComputeValue(AstNode constNode) {}
-
-  /**
-   * This method is called just before getting the constant value of a field
-   * with an initializer.  Unit tests will override this method to introduce
-   * additional error checking.
-   */
-  void beforeGetFieldEvaluationResult(FieldElementImpl field) {}
-
-  /**
-   * This method is called just before getting the constant initializers
-   * associated with the [constructor]. Unit tests will override this method to
-   * introduce additional error checking.
-   */
-  void beforeGetConstantInitializers(ConstructorElement constructor) {}
-
-  /**
-   * This method is called just before getting a parameter's default value. Unit
-   * tests will override this method to introduce additional error checking.
-   */
-  void beforeGetParameterDefault(ParameterElement parameter) {}
-
-  /**
    * Compute values for all of the constants in the compilation units that were
    * added.
    */
   void computeValues() {
-    _variableDeclarationMap = _constantFinder.variableMap;
-    constructorDeclarationMap = _constantFinder.constructorMap;
-    _constructorInvocations = _constantFinder.constructorInvocations;
-    _annotations = _constantFinder.annotations;
-    _variableDeclarationMap.values.forEach((VariableDeclaration declaration) {
-      ReferenceFinder referenceFinder = new ReferenceFinder(declaration,
-          referenceGraph, _variableDeclarationMap, constructorDeclarationMap);
-      referenceGraph.addNode(declaration);
-      declaration.initializer.accept(referenceFinder);
-    });
-    constructorDeclarationMap.forEach((ConstructorElementImpl element,
-        ConstructorDeclaration declaration) {
-      element.isCycleFree = false;
-      ConstructorElement redirectedConstructor =
-          _getConstRedirectedConstructor(element);
-      if (redirectedConstructor != null) {
-        ConstructorElement redirectedConstructorBase =
-            _getConstructorBase(redirectedConstructor);
-        ConstructorDeclaration redirectedConstructorDeclaration =
-            findConstructorDeclaration(redirectedConstructorBase);
-        referenceGraph.addEdge(declaration, redirectedConstructorDeclaration);
-        return;
-      }
-      ReferenceFinder referenceFinder = new ReferenceFinder(declaration,
-          referenceGraph, _variableDeclarationMap, constructorDeclarationMap);
-      referenceGraph.addNode(declaration);
-      bool superInvocationFound = false;
-      NodeList<ConstructorInitializer> initializers = declaration.initializers;
-      for (ConstructorInitializer initializer in initializers) {
-        if (initializer is SuperConstructorInvocation) {
-          superInvocationFound = true;
-        }
-        initializer.accept(referenceFinder);
-      }
-      if (!superInvocationFound) {
-        // No explicit superconstructor invocation found, so we need to
-        // manually insert a reference to the implicit superconstructor.
-        InterfaceType superclass =
-            (element.returnType as InterfaceType).superclass;
-        if (superclass != null && !superclass.isObject) {
-          ConstructorElement unnamedConstructor =
-              superclass.element.unnamedConstructor;
-          ConstructorDeclaration superConstructorDeclaration =
-              findConstructorDeclaration(unnamedConstructor);
-          if (superConstructorDeclaration != null) {
-            referenceGraph.addEdge(declaration, superConstructorDeclaration);
-          }
-        }
-      }
-      for (FieldElement field in element.enclosingElement.fields) {
-        // Note: non-static const isn't allowed but we handle it anyway so that
-        // we won't be confused by incorrect code.
-        if ((field.isFinal || field.isConst) && !field.isStatic) {
-          VariableDeclaration fieldDeclaration = _variableDeclarationMap[field];
-          if (fieldDeclaration != null) {
-            referenceGraph.addEdge(declaration, fieldDeclaration);
-          }
-        }
-      }
-      for (FormalParameter parameter in declaration.parameters.parameters) {
-        referenceGraph.addNode(parameter);
-        referenceGraph.addEdge(declaration, parameter);
-        if (parameter is DefaultFormalParameter) {
-          Expression defaultValue = parameter.defaultValue;
-          if (defaultValue != null) {
-            ReferenceFinder parameterReferenceFinder = new ReferenceFinder(
-                parameter, referenceGraph, _variableDeclarationMap,
-                constructorDeclarationMap);
-            defaultValue.accept(parameterReferenceFinder);
-          }
-        }
-      }
-    });
-    for (InstanceCreationExpression expression in _constructorInvocations) {
-      referenceGraph.addNode(expression);
-      ConstructorElement constructor = expression.staticElement;
-      if (constructor == null) {
-        continue;
-      }
-      ConstructorDeclaration declaration =
-          findConstructorDeclaration(constructor);
-      // An instance creation expression depends both on the constructor and
-      // the arguments passed to it.
-      ReferenceFinder referenceFinder = new ReferenceFinder(expression,
-          referenceGraph, _variableDeclarationMap, constructorDeclarationMap);
-      if (declaration != null) {
-        referenceGraph.addEdge(expression, declaration);
-      }
-      expression.argumentList.accept(referenceFinder);
+    for (ConstantEvaluationTarget constant in _constantsToCompute) {
+      referenceGraph.addNode(constant);
+      evaluationEngine.computeDependencies(constant,
+          (ConstantEvaluationTarget dependency) {
+        referenceGraph.addEdge(constant, dependency);
+      });
     }
-    List<List<AstNode>> topologicalSort =
+    List<List<ConstantEvaluationTarget>> topologicalSort =
         referenceGraph.computeTopologicalSort();
-    for (List<AstNode> constantsInCycle in topologicalSort) {
+    for (List<ConstantEvaluationTarget> constantsInCycle in topologicalSort) {
       if (constantsInCycle.length == 1) {
         _computeValueFor(constantsInCycle[0]);
       } else {
-        for (AstNode constant in constantsInCycle) {
+        for (ConstantEvaluationTarget constant in constantsInCycle) {
           _generateCycleError(constantsInCycle, constant);
         }
       }
     }
-    // Since no constant can depend on an annotation, we don't waste time
-    // including them in the topological sort.  We just process all the
-    // annotations after all other constants are finished.
-    for (Annotation annotation in _annotations) {
-      _computeValueFor(annotation);
-    }
   }
 
   /**
-   * Create the ConstantVisitor used to evaluate constants. Unit tests will
-   * override this method to introduce additional error checking.
+   * Compute a value for the given [constant].
    */
-  ConstantVisitor createConstantVisitor(ErrorReporter errorReporter) =>
-      new ConstantVisitor.con1(typeProvider, errorReporter);
-
-  ConstructorDeclaration findConstructorDeclaration(
-          ConstructorElement constructor) =>
-      constructorDeclarationMap[_getConstructorBase(constructor)];
-
-  VariableDeclaration findVariableDeclaration(
-          PotentiallyConstVariableElement variable) =>
-      _variableDeclarationMap[variable];
-
-  /**
-   * Check that the arguments to a call to fromEnvironment() are correct. The
-   * [arguments] are the AST nodes of the arguments. The [argumentValues] are
-   * the values of the unnamed arguments. The [namedArgumentValues] are the
-   * values of the named arguments. The [expectedDefaultValueType] is the
-   * allowed type of the "defaultValue" parameter (if present). Note:
-   * "defaultValue" is always allowed to be null. Return `true` if the arguments
-   * are correct, `false` if there is an error.
-   */
-  bool _checkFromEnvironmentArguments(NodeList<Expression> arguments,
-      List<DartObjectImpl> argumentValues,
-      HashMap<String, DartObjectImpl> namedArgumentValues,
-      InterfaceType expectedDefaultValueType) {
-    int argumentCount = arguments.length;
-    if (argumentCount < 1 || argumentCount > 2) {
-      return false;
-    }
-    if (arguments[0] is NamedExpression) {
-      return false;
-    }
-    if (!identical(argumentValues[0].type, typeProvider.stringType)) {
-      return false;
-    }
-    if (argumentCount == 2) {
-      if (arguments[1] is! NamedExpression) {
-        return false;
-      }
-      if (!((arguments[1] as NamedExpression).name.label.name ==
-          _DEFAULT_VALUE_PARAM)) {
-        return false;
-      }
-      ParameterizedType defaultValueType =
-          namedArgumentValues[_DEFAULT_VALUE_PARAM].type;
-      if (!(identical(defaultValueType, expectedDefaultValueType) ||
-          identical(defaultValueType, typeProvider.nullType))) {
-        return false;
-      }
-    }
-    return true;
-  }
-
-  /**
-   * Check that the arguments to a call to Symbol() are correct. The [arguments]
-   * are the AST nodes of the arguments. The [argumentValues] are the values of
-   * the unnamed arguments. The [namedArgumentValues] are the values of the
-   * named arguments. Return `true` if the arguments are correct, `false` if
-   * there is an error.
-   */
-  bool _checkSymbolArguments(NodeList<Expression> arguments,
-      List<DartObjectImpl> argumentValues,
-      HashMap<String, DartObjectImpl> namedArgumentValues) {
-    if (arguments.length != 1) {
-      return false;
-    }
-    if (arguments[0] is NamedExpression) {
-      return false;
-    }
-    if (!identical(argumentValues[0].type, typeProvider.stringType)) {
-      return false;
-    }
-    String name = argumentValues[0].stringValue;
-    return isValidPublicSymbol(name);
-  }
-
-  /**
-   * Compute a value for the given [constNode].
-   */
-  void _computeValueFor(AstNode constNode) {
-    beforeComputeValue(constNode);
-    if (constNode is VariableDeclaration) {
-      VariableElement element = constNode.element;
-      RecordingErrorListener errorListener = new RecordingErrorListener();
-      ErrorReporter errorReporter =
-          new ErrorReporter(errorListener, element.source);
-      DartObjectImpl dartObject =
-          (element as PotentiallyConstVariableElement).constantInitializer
-              .accept(createConstantVisitor(errorReporter));
-      if (dartObject != null) {
-        if (!_runtimeTypeMatch(dartObject, element.type)) {
-          errorReporter.reportErrorForElement(
-              CheckedModeCompileTimeErrorCode.VARIABLE_TYPE_MISMATCH, element, [
-            dartObject.type,
-            element.type
-          ]);
-        }
-      }
-      (element as VariableElementImpl).evaluationResult =
-          new EvaluationResultImpl.con2(dartObject, errorListener.errors);
-    } else if (constNode is InstanceCreationExpression) {
-      InstanceCreationExpression expression = constNode;
-      ConstructorElement constructor = expression.staticElement;
-      if (constructor == null) {
-        // Couldn't resolve the constructor so we can't compute a value.
-        // No problem - the error has already been reported.
-        // But we still need to store an evaluation result.
-        expression.constantHandle.evaluationResult =
-            new EvaluationResultImpl.con1(null);
-        return;
-      }
-      RecordingErrorListener errorListener = new RecordingErrorListener();
-      CompilationUnit sourceCompilationUnit =
-          expression.getAncestor((node) => node is CompilationUnit);
-      ErrorReporter errorReporter = new ErrorReporter(
-          errorListener, sourceCompilationUnit.element.source);
-      ConstantVisitor constantVisitor = createConstantVisitor(errorReporter);
-      DartObjectImpl result = _evaluateConstructorCall(constNode,
-          expression.argumentList.arguments, constructor, constantVisitor,
-          errorReporter);
-      expression.constantHandle.evaluationResult =
-          new EvaluationResultImpl.con2(result, errorListener.errors);
-    } else if (constNode is ConstructorDeclaration) {
-      // No evaluation needs to be done; constructor declarations are only in
-      // the dependency graph to ensure that any constants referred to in
-      // initializer lists and parameter defaults are evaluated before
-      // invocations of the constructor.  However we do need to annotate the
-      // element as being free of constant evaluation cycles so that later code
-      // will know that it is safe to evaluate.
-      ConstructorElementImpl constructor = constNode.element;
-      constructor.isCycleFree = true;
-    } else if (constNode is FormalParameter) {
-      if (constNode is DefaultFormalParameter) {
-        DefaultFormalParameter parameter = constNode;
-        ParameterElement element = parameter.element;
-        Expression defaultValue = parameter.defaultValue;
-        if (defaultValue != null) {
-          RecordingErrorListener errorListener = new RecordingErrorListener();
-          ErrorReporter errorReporter =
-              new ErrorReporter(errorListener, element.source);
-          DartObjectImpl dartObject =
-              defaultValue.accept(createConstantVisitor(errorReporter));
-          (element as ParameterElementImpl).evaluationResult =
-              new EvaluationResultImpl.con2(dartObject, errorListener.errors);
-        }
-      }
-    } else if (constNode is Annotation) {
-      ElementAnnotationImpl elementAnnotation = constNode.elementAnnotation;
-      // elementAnnotation is null if the annotation couldn't be resolved, in
-      // which case we skip it.
-      if (elementAnnotation != null) {
-        Element element = elementAnnotation.element;
-        if (element is PropertyAccessorElement &&
-            element.variable is VariableElementImpl) {
-          // The annotation is a reference to a compile-time constant variable.
-          // Just copy the evaluation result.
-          VariableElementImpl variableElement =
-              element.variable as VariableElementImpl;
-          elementAnnotation.evaluationResult = variableElement.evaluationResult;
-        } else if (element is ConstructorElementImpl &&
-            constNode.arguments != null) {
-          RecordingErrorListener errorListener = new RecordingErrorListener();
-          CompilationUnit sourceCompilationUnit =
-              constNode.getAncestor((node) => node is CompilationUnit);
-          ErrorReporter errorReporter = new ErrorReporter(
-              errorListener, sourceCompilationUnit.element.source);
-          ConstantVisitor constantVisitor =
-              createConstantVisitor(errorReporter);
-          DartObjectImpl result = _evaluateConstructorCall(constNode,
-              constNode.arguments.arguments, element, constantVisitor,
-              errorReporter);
-          elementAnnotation.evaluationResult =
-              new EvaluationResultImpl.con2(result, errorListener.errors);
-        } else {
-          // This may happen for invalid code (e.g. failing to pass arguments
-          // to an annotation which references a const constructor).  The error
-          // is detected elsewhere, so just silently ignore it here.
-          elementAnnotation.evaluationResult =
-              new EvaluationResultImpl.con1(null);
-        }
-      }
-    } else {
-      // Should not happen.
-      AnalysisEngine.instance.logger.logError(
-          "Constant value computer trying to compute the value of a node which is not a VariableDeclaration, InstanceCreationExpression, FormalParameter, or ConstructorDeclaration");
+  void _computeValueFor(ConstantEvaluationTarget constant) {
+    if (!_constantsToCompute.contains(constant)) {
+      // Element is in the dependency graph but should have been computed by
+      // a previous stage of analysis.
+      // TODO(paulberry): once we have moved over to the new task model, this
+      // should only occur for constants associated with enum members.  Once
+      // that happens we should add an assertion to verify that it doesn't
+      // occur in any other cases.
       return;
     }
-  }
-
-  /**
-   * Evaluate a call to fromEnvironment() on the bool, int, or String class. The
-   * [environmentValue] is the value fetched from the environment. The
-   * [builtInDefaultValue] is the value that should be used as the default if no
-   * "defaultValue" argument appears in [namedArgumentValues]. The
-   * [namedArgumentValues] are the values of the named parameters passed to
-   * fromEnvironment(). Return a [DartObjectImpl] object corresponding to the
-   * evaluated result.
-   */
-  DartObjectImpl _computeValueFromEnvironment(DartObject environmentValue,
-      DartObjectImpl builtInDefaultValue,
-      HashMap<String, DartObjectImpl> namedArgumentValues) {
-    DartObjectImpl value = environmentValue as DartObjectImpl;
-    if (value.isUnknown || value.isNull) {
-      // The name either doesn't exist in the environment or we couldn't parse
-      // the corresponding value.
-      // If the code supplied an explicit default, use it.
-      if (namedArgumentValues.containsKey(_DEFAULT_VALUE_PARAM)) {
-        value = namedArgumentValues[_DEFAULT_VALUE_PARAM];
-      } else if (value.isNull) {
-        // The code didn't supply an explicit default.
-        // The name exists in the environment but we couldn't parse the
-        // corresponding value.
-        // So use the built-in default value, because this is what the VM does.
-        value = builtInDefaultValue;
-      } else {
-        // The code didn't supply an explicit default.
-        // The name doesn't exist in the environment.
-        // The VM would use the built-in default value, but we don't want to do
-        // that for analysis because it's likely to lead to cascading errors.
-        // So just leave [value] in the unknown state.
-      }
-    }
-    return value;
-  }
-
-  DartObjectImpl _evaluateConstructorCall(AstNode node,
-      NodeList<Expression> arguments, ConstructorElement constructor,
-      ConstantVisitor constantVisitor, ErrorReporter errorReporter) {
-    if (!_getConstructorBase(constructor).isCycleFree) {
-      // It's not safe to evaluate this constructor, so bail out.
-      // TODO(paulberry): ensure that a reasonable error message is produced
-      // in this case, as well as other cases involving constant expression
-      // circularities (e.g. "compile-time constant expression depends on
-      // itself")
-      return new DartObjectImpl.validWithUnknownValue(constructor.returnType);
-    }
-    int argumentCount = arguments.length;
-    List<DartObjectImpl> argumentValues =
-        new List<DartObjectImpl>(argumentCount);
-    List<Expression> argumentNodes = new List<Expression>(argumentCount);
-    HashMap<String, DartObjectImpl> namedArgumentValues =
-        new HashMap<String, DartObjectImpl>();
-    HashMap<String, NamedExpression> namedArgumentNodes =
-        new HashMap<String, NamedExpression>();
-    for (int i = 0; i < argumentCount; i++) {
-      Expression argument = arguments[i];
-      if (argument is NamedExpression) {
-        String name = argument.name.label.name;
-        namedArgumentValues[name] =
-            constantVisitor._valueOf(argument.expression);
-        namedArgumentNodes[name] = argument;
-        argumentValues[i] = typeProvider.nullObject;
-      } else {
-        argumentValues[i] = constantVisitor._valueOf(argument);
-        argumentNodes[i] = argument;
-      }
-    }
-    constructor = _followConstantRedirectionChain(constructor);
-    InterfaceType definingClass = constructor.returnType as InterfaceType;
-    if (constructor.isFactory) {
-      // We couldn't find a non-factory constructor.
-      // See if it's because we reached an external const factory constructor
-      // that we can emulate.
-      if (constructor.name == "fromEnvironment") {
-        if (!_checkFromEnvironmentArguments(
-            arguments, argumentValues, namedArgumentValues, definingClass)) {
-          errorReporter.reportErrorForNode(
-              CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION, node);
-          return null;
-        }
-        String variableName =
-            argumentCount < 1 ? null : argumentValues[0].stringValue;
-        if (identical(definingClass, typeProvider.boolType)) {
-          DartObject valueFromEnvironment;
-          valueFromEnvironment =
-              _declaredVariables.getBool(typeProvider, variableName);
-          return _computeValueFromEnvironment(valueFromEnvironment,
-              new DartObjectImpl(typeProvider.boolType, BoolState.FALSE_STATE),
-              namedArgumentValues);
-        } else if (identical(definingClass, typeProvider.intType)) {
-          DartObject valueFromEnvironment;
-          valueFromEnvironment =
-              _declaredVariables.getInt(typeProvider, variableName);
-          return _computeValueFromEnvironment(valueFromEnvironment,
-              new DartObjectImpl(typeProvider.nullType, NullState.NULL_STATE),
-              namedArgumentValues);
-        } else if (identical(definingClass, typeProvider.stringType)) {
-          DartObject valueFromEnvironment;
-          valueFromEnvironment =
-              _declaredVariables.getString(typeProvider, variableName);
-          return _computeValueFromEnvironment(valueFromEnvironment,
-              new DartObjectImpl(typeProvider.nullType, NullState.NULL_STATE),
-              namedArgumentValues);
-        }
-      } else if (constructor.name == "" &&
-          identical(definingClass, typeProvider.symbolType) &&
-          argumentCount == 1) {
-        if (!_checkSymbolArguments(
-            arguments, argumentValues, namedArgumentValues)) {
-          errorReporter.reportErrorForNode(
-              CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION, node);
-          return null;
-        }
-        String argumentValue = argumentValues[0].stringValue;
-        return new DartObjectImpl(
-            definingClass, new SymbolState(argumentValue));
-      }
-      // Either it's an external const factory constructor that we can't
-      // emulate, or an error occurred (a cycle, or a const constructor trying
-      // to delegate to a non-const constructor).
-      // In the former case, the best we can do is consider it an unknown value.
-      // In the latter case, the error has already been reported, so considering
-      // it an unknown value will suppress further errors.
-      return new DartObjectImpl.validWithUnknownValue(definingClass);
-    }
-    beforeGetConstantInitializers(constructor);
-    ConstructorElementImpl constructorBase = _getConstructorBase(constructor);
-    List<ConstructorInitializer> initializers =
-        constructorBase.constantInitializers;
-    if (initializers == null) {
-      // This can happen in some cases where there are compile errors in the
-      // code being analyzed (for example if the code is trying to create a
-      // const instance using a non-const constructor, or the node we're
-      // visiting is involved in a cycle).  The error has already been reported,
-      // so consider it an unknown value to suppress further errors.
-      return new DartObjectImpl.validWithUnknownValue(definingClass);
-    }
-    HashMap<String, DartObjectImpl> fieldMap =
-        new HashMap<String, DartObjectImpl>();
-    // Start with final fields that are initialized at their declaration site.
-    for (FieldElement field in constructor.enclosingElement.fields) {
-      if ((field.isFinal || field.isConst) &&
-          !field.isStatic &&
-          field is ConstFieldElementImpl) {
-        beforeGetFieldEvaluationResult(field);
-        EvaluationResultImpl evaluationResult = field.evaluationResult;
-        DartType fieldType =
-            FieldMember.from(field, constructor.returnType).type;
-        DartObjectImpl fieldValue = evaluationResult.value;
-        if (fieldValue != null && !_runtimeTypeMatch(fieldValue, fieldType)) {
-          errorReporter.reportErrorForNode(
-              CheckedModeCompileTimeErrorCode.CONST_CONSTRUCTOR_FIELD_TYPE_MISMATCH,
-              node, [fieldValue.type, field.name, fieldType]);
-        }
-        fieldMap[field.name] = evaluationResult.value;
-      }
-    }
-    // Now evaluate the constructor declaration.
-    HashMap<String, DartObjectImpl> parameterMap =
-        new HashMap<String, DartObjectImpl>();
-    List<ParameterElement> parameters = constructor.parameters;
-    int parameterCount = parameters.length;
-    for (int i = 0; i < parameterCount; i++) {
-      ParameterElement parameter = parameters[i];
-      ParameterElement baseParameter = parameter;
-      while (baseParameter is ParameterMember) {
-        baseParameter = (baseParameter as ParameterMember).baseElement;
-      }
-      DartObjectImpl argumentValue = null;
-      AstNode errorTarget = null;
-      if (baseParameter.parameterKind == ParameterKind.NAMED) {
-        argumentValue = namedArgumentValues[baseParameter.name];
-        errorTarget = namedArgumentNodes[baseParameter.name];
-      } else if (i < argumentCount) {
-        argumentValue = argumentValues[i];
-        errorTarget = argumentNodes[i];
-      }
-      if (errorTarget == null) {
-        // No argument node that we can direct error messages to, because we
-        // are handling an optional parameter that wasn't specified.  So just
-        // direct error messages to the constructor call.
-        errorTarget = node;
-      }
-      if (argumentValue == null && baseParameter is ParameterElementImpl) {
-        // The parameter is an optional positional parameter for which no value
-        // was provided, so use the default value.
-        beforeGetParameterDefault(baseParameter);
-        EvaluationResultImpl evaluationResult = baseParameter.evaluationResult;
-        if (evaluationResult == null) {
-          // No default was provided, so the default value is null.
-          argumentValue = typeProvider.nullObject;
-        } else if (evaluationResult.value != null) {
-          argumentValue = evaluationResult.value;
-        }
-      }
-      if (argumentValue != null) {
-        if (!_runtimeTypeMatch(argumentValue, parameter.type)) {
-          errorReporter.reportErrorForNode(
-              CheckedModeCompileTimeErrorCode.CONST_CONSTRUCTOR_PARAM_TYPE_MISMATCH,
-              errorTarget, [argumentValue.type, parameter.type]);
-        }
-        if (baseParameter.isInitializingFormal) {
-          FieldElement field = (parameter as FieldFormalParameterElement).field;
-          if (field != null) {
-            DartType fieldType = field.type;
-            if (fieldType != parameter.type) {
-              // We've already checked that the argument can be assigned to the
-              // parameter; we also need to check that it can be assigned to
-              // the field.
-              if (!_runtimeTypeMatch(argumentValue, fieldType)) {
-                errorReporter.reportErrorForNode(
-                    CheckedModeCompileTimeErrorCode.CONST_CONSTRUCTOR_PARAM_TYPE_MISMATCH,
-                    errorTarget, [argumentValue.type, fieldType]);
-              }
-            }
-            String fieldName = field.name;
-            fieldMap[fieldName] = argumentValue;
-          }
-        } else {
-          String name = baseParameter.name;
-          parameterMap[name] = argumentValue;
-        }
-      }
-    }
-    ConstantVisitor initializerVisitor =
-        new ConstantVisitor.con2(typeProvider, parameterMap, errorReporter);
-    String superName = null;
-    NodeList<Expression> superArguments = null;
-    for (ConstructorInitializer initializer in initializers) {
-      if (initializer is ConstructorFieldInitializer) {
-        ConstructorFieldInitializer constructorFieldInitializer = initializer;
-        Expression initializerExpression =
-            constructorFieldInitializer.expression;
-        DartObjectImpl evaluationResult =
-            initializerExpression.accept(initializerVisitor);
-        if (evaluationResult != null) {
-          String fieldName = constructorFieldInitializer.fieldName.name;
-          fieldMap[fieldName] = evaluationResult;
-          PropertyAccessorElement getter = definingClass.getGetter(fieldName);
-          if (getter != null) {
-            PropertyInducingElement field = getter.variable;
-            if (!_runtimeTypeMatch(evaluationResult, field.type)) {
-              errorReporter.reportErrorForNode(
-                  CheckedModeCompileTimeErrorCode.CONST_CONSTRUCTOR_FIELD_TYPE_MISMATCH,
-                  node, [evaluationResult.type, fieldName, field.type]);
-            }
-          }
-        }
-      } else if (initializer is SuperConstructorInvocation) {
-        SuperConstructorInvocation superConstructorInvocation = initializer;
-        SimpleIdentifier name = superConstructorInvocation.constructorName;
-        if (name != null) {
-          superName = name.name;
-        }
-        superArguments = superConstructorInvocation.argumentList.arguments;
-      } else if (initializer is RedirectingConstructorInvocation) {
-        // This is a redirecting constructor, so just evaluate the constructor
-        // it redirects to.
-        ConstructorElement constructor = initializer.staticElement;
-        if (constructor != null && constructor.isConst) {
-          return _evaluateConstructorCall(node,
-              initializer.argumentList.arguments, constructor,
-              initializerVisitor, errorReporter);
-        }
-      }
-    }
-    // Evaluate explicit or implicit call to super().
-    InterfaceType superclass = definingClass.superclass;
-    if (superclass != null && !superclass.isObject) {
-      ConstructorElement superConstructor =
-          superclass.lookUpConstructor(superName, constructor.library);
-      if (superConstructor != null) {
-        if (superArguments == null) {
-          superArguments = new NodeList<Expression>(null);
-        }
-        _evaluateSuperConstructorCall(node, fieldMap, superConstructor,
-            superArguments, initializerVisitor, errorReporter);
-      }
-    }
-    return new DartObjectImpl(definingClass, new GenericState(fieldMap));
-  }
-
-  void _evaluateSuperConstructorCall(AstNode node,
-      HashMap<String, DartObjectImpl> fieldMap,
-      ConstructorElement superConstructor, NodeList<Expression> superArguments,
-      ConstantVisitor initializerVisitor, ErrorReporter errorReporter) {
-    if (superConstructor != null && superConstructor.isConst) {
-      DartObjectImpl evaluationResult = _evaluateConstructorCall(node,
-          superArguments, superConstructor, initializerVisitor, errorReporter);
-      if (evaluationResult != null) {
-        fieldMap[GenericState.SUPERCLASS_FIELD] = evaluationResult;
-      }
-    }
-  }
-
-  /**
-   * Attempt to follow the chain of factory redirections until a constructor is
-   * reached which is not a const factory constructor. Return the constant
-   * constructor which terminates the chain of factory redirections, if the
-   * chain terminates. If there is a problem (e.g. a redirection can't be found,
-   * or a cycle is encountered), the chain will be followed as far as possible
-   * and then a const factory constructor will be returned.
-   */
-  ConstructorElement _followConstantRedirectionChain(
-      ConstructorElement constructor) {
-    HashSet<ConstructorElement> constructorsVisited =
-        new HashSet<ConstructorElement>();
-    while (true) {
-      ConstructorElement redirectedConstructor =
-          _getConstRedirectedConstructor(constructor);
-      if (redirectedConstructor == null) {
-        break;
-      } else {
-        ConstructorElement constructorBase = _getConstructorBase(constructor);
-        constructorsVisited.add(constructorBase);
-        ConstructorElement redirectedConstructorBase =
-            _getConstructorBase(redirectedConstructor);
-        if (constructorsVisited.contains(redirectedConstructorBase)) {
-          // Cycle in redirecting factory constructors--this is not allowed
-          // and is checked elsewhere--see
-          // [ErrorVerifier.checkForRecursiveFactoryRedirect()]).
-          break;
-        }
-      }
-      constructor = redirectedConstructor;
-    }
-    return constructor;
+    evaluationEngine.computeConstantValue(constant);
   }
 
   /**
@@ -1142,70 +1264,30 @@
    * in the given [cycle], each of which directly or indirectly references the
    * constant.
    */
-  void _generateCycleError(List<AstNode> cycle, AstNode constant) {
-    // TODO(brianwilkerson) Implement this.
+  void _generateCycleError(
+      List<ConstantEvaluationTarget> cycle, ConstantEvaluationTarget constant) {
+    if (constant is VariableElement) {
+      RecordingErrorListener errorListener = new RecordingErrorListener();
+      ErrorReporter errorReporter =
+          new ErrorReporter(errorListener, constant.source);
+      // TODO(paulberry): It would be really nice if we could extract enough
+      // information from the 'cycle' argument to provide the user with a
+      // description of the cycle.
+      errorReporter.reportErrorForElement(
+          CompileTimeErrorCode.RECURSIVE_COMPILE_TIME_CONSTANT, constant, []);
+      (constant as VariableElementImpl).evaluationResult =
+          new EvaluationResultImpl(null, errorListener.errors);
+    } else if (constant is ConstructorElement) {
+      // We don't report cycle errors on constructor declarations since there
+      // is nowhere to put the error information.
+    } else {
+      // Should not happen.  Formal parameter defaults and annotations should
+      // never appear as part of a cycle because they can't be referred to.
+      assert(false);
+      AnalysisEngine.instance.logger.logError(
+          "Constant value computer trying to report a cycle error for a node of type ${constant.runtimeType}");
+    }
   }
-
-  /**
-   * If [constructor] redirects to another const constructor, return the
-   * const constructor it redirects to.  Otherwise return `null`.
-   */
-  ConstructorElement _getConstRedirectedConstructor(
-      ConstructorElement constructor) {
-    if (!constructor.isFactory) {
-      return null;
-    }
-    if (identical(constructor.enclosingElement.type, typeProvider.symbolType)) {
-      // The dart:core.Symbol has a const factory constructor that redirects
-      // to dart:_internal.Symbol.  That in turn redirects to an external
-      // const constructor, which we won't be able to evaluate.
-      // So stop following the chain of redirections at dart:core.Symbol, and
-      // let [evaluateInstanceCreationExpression] handle it specially.
-      return null;
-    }
-    ConstructorElement redirectedConstructor =
-        constructor.redirectedConstructor;
-    if (redirectedConstructor == null) {
-      // This can happen if constructor is an external factory constructor.
-      return null;
-    }
-    if (!redirectedConstructor.isConst) {
-      // Delegating to a non-const constructor--this is not allowed (and
-      // is checked elsewhere--see
-      // [ErrorVerifier.checkForRedirectToNonConstConstructor()]).
-      return null;
-    }
-    return redirectedConstructor;
-  }
-
-  ConstructorElementImpl _getConstructorBase(ConstructorElement constructor) {
-    while (constructor is ConstructorMember) {
-      constructor = (constructor as ConstructorMember).baseElement;
-    }
-    return constructor;
-  }
-
-  /**
-   * Check if the object [obj] matches the type [type] according to runtime type
-   * checking rules.
-   */
-  bool _runtimeTypeMatch(DartObjectImpl obj, DartType type) {
-    if (obj.isNull) {
-      return true;
-    }
-    if (type.isUndefined) {
-      return false;
-    }
-    return obj.type.isSubtypeOf(type);
-  }
-
-  /**
-   * Determine whether the given string is a valid name for a public symbol
-   * (i.e. whether it is allowed for a call to the Symbol constructor).
-   */
-  static bool isValidPublicSymbol(String name) => name.isEmpty ||
-      name == "void" ||
-      new JavaPatternMatcher(_PUBLIC_SYMBOL_PATTERN, name).matches();
 }
 
 /**
@@ -1267,9 +1349,9 @@
   /**
    * The type provider used to access the known types.
    */
-  final TypeProvider _typeProvider;
+  final ConstantEvaluationEngine evaluationEngine;
 
-  HashMap<String, DartObjectImpl> _lexicalEnvironment;
+  final HashMap<String, DartObjectImpl> _lexicalEnvironment;
 
   /**
    * Error reporter that we use to report errors accumulated while computing the
@@ -1283,49 +1365,25 @@
   DartObjectComputer _dartObjectComputer;
 
   /**
-   * Initialize a newly created constant visitor. The [_typeProvider] is the
-   * type provider used to access known types. The [_errorReporter] is used to
-   * report errors found during evaluation.
+   * Initialize a newly created constant visitor. The [evaluationEngine] is
+   * used to evaluate instance creation expressions. The [lexicalEnvironment]
+   * is a map containing values which should override identifiers, or `null` if
+   * no overriding is necessary. The [_errorReporter] is used to report errors
+   * found during evaluation.  The [validator] is used by unit tests to verify
+   * correct dependency analysis.
    */
-  ConstantVisitor.con1(this._typeProvider, this._errorReporter) {
-    this._lexicalEnvironment = null;
+  ConstantVisitor(this.evaluationEngine, this._errorReporter,
+      {HashMap<String, DartObjectImpl> lexicalEnvironment})
+      : _lexicalEnvironment = lexicalEnvironment {
     this._dartObjectComputer =
-        new DartObjectComputer(_errorReporter, _typeProvider);
+        new DartObjectComputer(_errorReporter, evaluationEngine.typeProvider);
   }
 
   /**
-   * Initialize a newly created constant visitor. The [_typeProvider] is the
-   * type provider used to access known types. The [lexicalEnvironment] is a map
-   * containing values which should override identifiers, or `null` if no
-   * overriding is necessary. The [_errorReporter] is used to report errors
-   * found during evaluation.
+   * Convenience getter to gain access to the [evalationEngine]'s type
+   * provider.
    */
-  ConstantVisitor.con2(this._typeProvider,
-      HashMap<String, DartObjectImpl> lexicalEnvironment, this._errorReporter) {
-    this._lexicalEnvironment = lexicalEnvironment;
-    this._dartObjectComputer =
-        new DartObjectComputer(_errorReporter, _typeProvider);
-  }
-
-  /**
-   * This method is called just before retrieving an evaluation result from an
-   * AST node. Unit tests will override it to introduce additional error
-   * checking.
-   */
-  void beforeGetEvaluationResult(AstNode node) {}
-
-  /**
-   * Return `true` if the given [element] represents the `length` getter in
-   * class 'String'.
-   */
-  bool isStringLength(Element element) {
-    if (element is PropertyAccessorElement) {
-      if (element.isGetter && element.name == 'length') {
-        return element.enclosingElement == _typeProvider.stringType.element;
-      }
-    }
-    return false;
-  }
+  TypeProvider get _typeProvider => evaluationEngine.typeProvider;
 
   @override
   DartObjectImpl visitAdjacentStrings(AdjacentStrings node) {
@@ -1454,14 +1512,14 @@
       _error(node, null);
       return null;
     }
-    beforeGetEvaluationResult(node);
-    EvaluationResultImpl result = node.evaluationResult;
-    if (result != null) {
-      return result.value;
+    ConstructorElement constructor = node.staticElement;
+    if (constructor == null) {
+      // Couldn't resolve the constructor so we can't compute a value.  No
+      // problem - the error has already been reported.
+      return null;
     }
-    // TODO(brianwilkerson) Figure out which error to report.
-    _error(node, null);
-    return null;
+    return evaluationEngine.evaluateConstructorCall(
+        node, node.argumentList.arguments, constructor, this, _errorReporter);
   }
 
   @override
@@ -1600,17 +1658,16 @@
 
   @override
   DartObjectImpl visitPrefixedIdentifier(PrefixedIdentifier node) {
+    SimpleIdentifier prefixNode = node.prefix;
+    Element prefixElement = prefixNode.staticElement;
     // String.length
-    {
-      Element element = node.staticElement;
-      if (isStringLength(element)) {
-        DartObjectImpl prefixResult = node.prefix.accept(this);
+    if (prefixElement is! PrefixElement && prefixElement is! ClassElement) {
+      DartObjectImpl prefixResult = node.prefix.accept(this);
+      if (_isStringLength(prefixResult, node.identifier)) {
         return prefixResult.stringLength(_typeProvider);
       }
     }
     // importPrefix.CONST
-    SimpleIdentifier prefixNode = node.prefix;
-    Element prefixElement = prefixNode.staticElement;
     if (prefixElement is! PrefixElement) {
       DartObjectImpl prefixResult = prefixNode.accept(this);
       if (prefixResult == null) {
@@ -1647,12 +1704,13 @@
 
   @override
   DartObjectImpl visitPropertyAccess(PropertyAccess node) {
-    Element element = node.propertyName.staticElement;
-    if (isStringLength(element)) {
-      DartObjectImpl prefixResult = node.realTarget.accept(this);
-      return prefixResult.stringLength(_typeProvider);
+    if (node.target != null) {
+      DartObjectImpl prefixResult = node.target.accept(this);
+      if (_isStringLength(prefixResult, node.propertyName)) {
+        return prefixResult.stringLength(_typeProvider);
+      }
     }
-    return _getConstantValue(node, element);
+    return _getConstantValue(node, node.propertyName.staticElement);
   }
 
   @override
@@ -1718,7 +1776,7 @@
     }
     if (element is VariableElementImpl) {
       VariableElementImpl variableElementImpl = element;
-      beforeGetEvaluationResult(node);
+      evaluationEngine.validator.beforeGetEvaluationResult(element);
       EvaluationResultImpl value = variableElementImpl.evaluationResult;
       if (variableElementImpl.isConst && value != null) {
         return value.value;
@@ -1743,6 +1801,18 @@
   }
 
   /**
+   * Return `true` if the given [targetResult] represents a string and the
+   * [identifier] is "length".
+   */
+  bool _isStringLength(
+      DartObjectImpl targetResult, SimpleIdentifier identifier) {
+    if (targetResult == null || targetResult.type != _typeProvider.stringType) {
+      return false;
+    }
+    return identifier.name == 'length';
+  }
+
+  /**
    * Return the value of the given [expression], or a representation of 'null'
    * if the expression cannot be evaluated.
    */
@@ -2145,13 +2215,13 @@
       Expression node, EvaluationResultImpl evaluationResult) {
     if (evaluationResult.value != null) {
       try {
-        return new EvaluationResultImpl.con1(
+        return new EvaluationResultImpl(
             evaluationResult.value.stringLength(_typeProvider));
       } on EvaluationException catch (exception) {
         _errorReporter.reportErrorForNode(exception.errorCode, node);
       }
     }
-    return new EvaluationResultImpl.con1(null);
+    return new EvaluationResultImpl(null);
   }
 
   DartObjectImpl times(BinaryExpression node, DartObjectImpl leftOperand,
@@ -3388,10 +3458,16 @@
    */
   final DartObjectImpl value;
 
+  EvaluationResultImpl(this.value, [List<AnalysisError> errors]) {
+    this._errors = errors == null ? <AnalysisError>[] : errors;
+  }
+
+  @deprecated // Use new EvaluationResultImpl(value)
   EvaluationResultImpl.con1(this.value) {
     this._errors = new List<AnalysisError>(0);
   }
 
+  @deprecated // Use new EvaluationResultImpl(value, errors)
   EvaluationResultImpl.con2(this.value, List<AnalysisError> errors) {
     this._errors = errors;
   }
@@ -4859,60 +4935,38 @@
  */
 class ReferenceFinder extends RecursiveAstVisitor<Object> {
   /**
-   * The element representing the construct that will be visited.
+   * The callback which should be used to report any dependencies that were
+   * found.
    */
-  final AstNode _source;
-
-  /**
-   * A graph in which the nodes are the constant variables and the edges are
-   * from each variable to the other constant variables that are referenced in
-   * the head's initializer.
-   */
-  final DirectedGraph<AstNode> _referenceGraph;
-
-  /**
-   * A table mapping constant variables to the declarations of those variables.
-   */
-  final HashMap<PotentiallyConstVariableElement, VariableDeclaration> _variableDeclarationMap;
-
-  /**
-   * A table mapping constant constructors to the declarations of those
-   * constructors.
-   */
-  final HashMap<ConstructorElement, ConstructorDeclaration> _constructorDeclarationMap;
+  final ReferenceFinderCallback _callback;
 
   /**
    * Initialize a newly created reference finder to find references from a given
    * variable to other variables and to add those references to the given graph.
-   * The [source] is the element representing the variable whose initializer
-   * will be visited. The [referenceGraph] is a graph recording which variables
-   * (heads) reference which other variables (tails) in their initializers. The
-   * [variableDeclarationMap] is a table mapping constant variables to the
-   * declarations of those variables. The [constructorDeclarationMap] is a table
-   * mapping constant constructors to the declarations of those constructors.
+   * The [_callback] will be invoked for every dependency found.
    */
-  ReferenceFinder(this._source, this._referenceGraph,
-      this._variableDeclarationMap, this._constructorDeclarationMap);
+  ReferenceFinder(this._callback);
 
   @override
   Object visitInstanceCreationExpression(InstanceCreationExpression node) {
     if (node.isConst) {
-      _referenceGraph.addEdge(_source, node);
+      ConstructorElement constructor =
+          ConstantEvaluationEngine._getConstructorBase(node.staticElement);
+      if (constructor != null) {
+        _callback(constructor);
+      }
     }
-    return null;
+    return super.visitInstanceCreationExpression(node);
   }
 
   @override
   Object visitRedirectingConstructorInvocation(
       RedirectingConstructorInvocation node) {
     super.visitRedirectingConstructorInvocation(node);
-    ConstructorElement target = node.staticElement;
+    ConstructorElement target =
+        ConstantEvaluationEngine._getConstructorBase(node.staticElement);
     if (target != null && target.isConst) {
-      ConstructorDeclaration targetDeclaration =
-          _constructorDeclarationMap[target];
-      if (targetDeclaration != null) {
-        _referenceGraph.addEdge(_source, targetDeclaration);
-      }
+      _callback(target);
     }
     return null;
   }
@@ -4925,16 +4979,7 @@
     }
     if (element is VariableElement) {
       if (element.isConst) {
-        VariableDeclaration variableDeclaration =
-            _variableDeclarationMap[element];
-        // The declaration will be null when the variable is not defined in the
-        // compilation units that were used to produce the
-        // variableDeclarationMap.  In such cases, the variable should already
-        // have a value associated with it, but we don't bother to check because
-        // there's nothing we can do about it at this point.
-        if (variableDeclaration != null) {
-          _referenceGraph.addEdge(_source, variableDeclaration);
-        }
+        _callback(element);
       }
     }
     return null;
@@ -4943,18 +4988,10 @@
   @override
   Object visitSuperConstructorInvocation(SuperConstructorInvocation node) {
     super.visitSuperConstructorInvocation(node);
-    ConstructorElement constructor = node.staticElement;
+    ConstructorElement constructor =
+        ConstantEvaluationEngine._getConstructorBase(node.staticElement);
     if (constructor != null && constructor.isConst) {
-      ConstructorDeclaration constructorDeclaration =
-          _constructorDeclarationMap[constructor];
-      // The declaration will be null when the constructor is not defined in the
-      // compilation units that were used to produce the
-      // constructorDeclarationMap.  In such cases, the constructor should
-      // already have its initializer AST's stored in it, but we don't bother
-      // to check because there's nothing we can do about it at this point.
-      if (constructorDeclaration != null) {
-        _referenceGraph.addEdge(_source, constructorDeclaration);
-      }
+      _callback(constructor);
     }
     return null;
   }
diff --git a/pkg/analyzer/lib/src/generated/element.dart b/pkg/analyzer/lib/src/generated/element.dart
index 46b6d03..f7278d4 100644
--- a/pkg/analyzer/lib/src/generated/element.dart
+++ b/pkg/analyzer/lib/src/generated/element.dart
@@ -10,7 +10,9 @@
 import 'dart:collection';
 
 import 'package:analyzer/src/generated/utilities_general.dart';
-import 'package:analyzer/task/model.dart' show AnalysisTarget;
+import 'package:analyzer/src/task/dart.dart';
+import 'package:analyzer/task/model.dart'
+    show AnalysisTarget, ConstantEvaluationTarget;
 
 import 'ast.dart';
 import 'constant.dart' show EvaluationResultImpl;
@@ -1276,6 +1278,15 @@
   Source source;
 
   /**
+   * The source of the library containing this compilation unit.
+   *
+   * This is the same as the source of the containing [LibraryElement],
+   * except that it does not require the containing [LibraryElement] to be
+   * computed.
+   */
+  Source librarySource;
+
+  /**
    * A list containing all of the top-level accessors (getters and setters)
    * contained in this compilation unit.
    */
@@ -1558,16 +1569,29 @@
   EvaluationResultImpl _result;
 
   /**
+   * Initialize a newly created synthetic field element to have the given
+   * [name] and [offset].
+   */
+  ConstFieldElementImpl(String name, int offset) : super(name, offset);
+
+  /**
    * Initialize a newly created field element to have the given [name].
    */
+  @deprecated // Use new ConstFieldElementImpl.forNode(name)
   ConstFieldElementImpl.con1(Identifier name) : super.forNode(name);
 
   /**
    * Initialize a newly created synthetic field element to have the given
    * [name] and [offset].
    */
+  @deprecated // Use new ConstFieldElementImpl(name, offset)
   ConstFieldElementImpl.con2(String name, int offset) : super(name, offset);
 
+  /**
+   * Initialize a newly created field element to have the given [name].
+   */
+  ConstFieldElementImpl.forNode(Identifier name) : super.forNode(name);
+
   @override
   EvaluationResultImpl get evaluationResult => _result;
 
@@ -1613,7 +1637,7 @@
  * class.
  */
 abstract class ConstructorElement
-    implements ClassMemberElement, ExecutableElement {
+    implements ClassMemberElement, ExecutableElement, ConstantEvaluationTarget {
   /**
    * An empty list of constructor elements.
    */
@@ -2065,7 +2089,7 @@
  * A [FieldFormalParameterElementImpl] for parameters that have an initializer.
  */
 class DefaultFieldFormalParameterElementImpl
-    extends FieldFormalParameterElementImpl {
+    extends FieldFormalParameterElementImpl with ConstVariableElement {
   /**
    * The result of evaluating this variable's initializer.
    */
@@ -2088,7 +2112,8 @@
 /**
  * A [ParameterElement] for parameters that have an initializer.
  */
-class DefaultParameterElementImpl extends ParameterElementImpl {
+class DefaultParameterElementImpl extends ParameterElementImpl
+    with ConstVariableElement {
   /**
    * The result of evaluating this variable's initializer.
    */
@@ -2840,7 +2865,7 @@
       return null;
     }
     int offset = nameOffset;
-    AstNode node = new NodeLocator.con1(offset).searchWithin(unit);
+    AstNode node = new NodeLocator(offset).searchWithin(unit);
     if (node == null) {
       return null;
     }
@@ -4569,16 +4594,31 @@
    * Initialize a newly created function type to be declared by the given
    * [element].
    */
+  FunctionTypeImpl(ExecutableElement element) : super(element, null);
+
+  /**
+   * Initialize a newly created function type to be declared by the given
+   * [element].
+   */
+  @deprecated // Use new FunctionTypeImpl(element)
   FunctionTypeImpl.con1(ExecutableElement element) : super(element, null);
 
   /**
    * Initialize a newly created function type to be declared by the given
    * [element].
    */
+  @deprecated // Use new FunctionTypeImpl.forTypedef(element)
   FunctionTypeImpl.con2(FunctionTypeAliasElement element)
       : super(element, element == null ? null : element.name);
 
   /**
+   * Initialize a newly created function type to be declared by the given
+   * [element].
+   */
+  FunctionTypeImpl.forTypedef(FunctionTypeAliasElement element)
+      : super(element, element == null ? null : element.name);
+
+  /**
    * Return the base parameter elements of this function element.
    */
   List<ParameterElement> get baseParameters {
@@ -5220,8 +5260,8 @@
     }
     Element element = this.element;
     FunctionTypeImpl newType = (element is ExecutableElement)
-        ? new FunctionTypeImpl.con1(element)
-        : new FunctionTypeImpl.con2(element as FunctionTypeAliasElement);
+        ? new FunctionTypeImpl(element)
+        : new FunctionTypeImpl.forTypedef(element as FunctionTypeAliasElement);
     newType.typeArguments =
         TypeImpl.substitute(typeArguments, argumentTypes, parameterTypes);
     return newType;
@@ -6035,7 +6075,7 @@
         lubArguments[i] = DynamicTypeImpl.instance;
       }
     }
-    InterfaceTypeImpl lub = new InterfaceTypeImpl.con1(firstElement);
+    InterfaceTypeImpl lub = new InterfaceTypeImpl(firstElement);
     lub.typeArguments = lubArguments;
     return lub;
   }
@@ -6053,6 +6093,12 @@
   /**
    * Initialize a newly created type to be declared by the given [element].
    */
+  InterfaceTypeImpl(ClassElement element) : super(element, element.displayName);
+
+  /**
+   * Initialize a newly created type to be declared by the given [element].
+   */
+  @deprecated // Use new InterfaceTypeImpl(element)
   InterfaceTypeImpl.con1(ClassElement element)
       : super(element, element.displayName);
 
@@ -6060,8 +6106,15 @@
    * Initialize a newly created type to have the given [name]. This constructor
    * should only be used in cases where there is no declaration of the type.
    */
+  @deprecated // Use new InterfaceTypeImpl.named(name)
   InterfaceTypeImpl.con2(String name) : super(null, name);
 
+  /**
+   * Initialize a newly created type to have the given [name]. This constructor
+   * should only be used in cases where there is no declaration of the type.
+   */
+  InterfaceTypeImpl.named(String name) : super(null, name);
+
   @override
   List<PropertyAccessorElement> get accessors {
     List<PropertyAccessorElement> accessors = element.accessors;
@@ -6610,7 +6663,7 @@
     if (JavaArrays.equals(newTypeArguments, typeArguments)) {
       return this;
     }
-    InterfaceTypeImpl newType = new InterfaceTypeImpl.con1(element);
+    InterfaceTypeImpl newType = new InterfaceTypeImpl(element);
     newType.typeArguments = newTypeArguments;
     return newType;
   }
@@ -7018,6 +7071,7 @@
    * [unit].
    */
   void set definingCompilationUnit(CompilationUnitElement unit) {
+    assert((unit as CompilationUnitElementImpl).librarySource == unit.source);
     (unit as CompilationUnitElementImpl).enclosingElement = this;
     this._definingCompilationUnit = unit;
   }
@@ -7160,7 +7214,7 @@
       function.synthetic = true;
       function.enclosingElement = this;
       function.returnType = loadLibraryReturnType;
-      function.type = new FunctionTypeImpl.con1(function);
+      function.type = new FunctionTypeImpl(function);
       _loadLibraryFunction = function;
     }
     return _loadLibraryFunction;
@@ -7209,6 +7263,8 @@
    */
   void set parts(List<CompilationUnitElement> parts) {
     for (CompilationUnitElement compilationUnit in parts) {
+      assert((compilationUnit as CompilationUnitElementImpl).librarySource ==
+          source);
       (compilationUnit as CompilationUnitElementImpl).enclosingElement = this;
     }
     this._parts = parts;
@@ -8307,7 +8363,8 @@
 /**
  * A parameter defined within an executable element.
  */
-abstract class ParameterElement implements LocalElement, VariableElement {
+abstract class ParameterElement
+    implements LocalElement, VariableElement, ConstantEvaluationTarget {
   /**
    * An empty list of parameter elements.
    */
@@ -8343,7 +8400,7 @@
  * A concrete implementation of a [ParameterElement].
  */
 class ParameterElementImpl extends VariableElementImpl
-    implements ParameterElement {
+    with PotentiallyConstVariableElement implements ParameterElement {
   /**
    * An empty list of parameter elements.
    */
@@ -8678,7 +8735,8 @@
  *
  * This class is not intended to be part of the public API for analyzer.
  */
-abstract class PotentiallyConstVariableElement {
+abstract class PotentiallyConstVariableElement
+    implements VariableElementImpl, ConstantEvaluationTarget {
   /**
    * If this element represents a constant variable, and it has an initializer,
    * a copy of the initializer for the constant.  Otherwise `null`.
@@ -10078,7 +10136,7 @@
 /**
  * A variable. There are concrete subclasses for different kinds of variables.
  */
-abstract class VariableElement implements Element {
+abstract class VariableElement implements Element, ConstantEvaluationTarget {
   /**
    * An empty list of variable elements.
    */
diff --git a/pkg/analyzer/lib/src/generated/element_resolver.dart b/pkg/analyzer/lib/src/generated/element_resolver.dart
index 33d1617..4754e33 100644
--- a/pkg/analyzer/lib/src/generated/element_resolver.dart
+++ b/pkg/analyzer/lib/src/generated/element_resolver.dart
@@ -2009,8 +2009,8 @@
       // Class(args)
       if (element1 is ClassElement) {
         ClassElement classElement = element1;
-        constructor = new InterfaceTypeImpl.con1(classElement)
-            .lookUpConstructor(null, _definingLibrary);
+        constructor = new InterfaceTypeImpl(classElement).lookUpConstructor(
+            null, _definingLibrary);
       }
     }
     //
@@ -2038,8 +2038,8 @@
       // Class.constructor(args)
       if (element1 is ClassElement) {
         ClassElement classElement = element1;
-        constructor = new InterfaceTypeImpl.con1(classElement)
-            .lookUpConstructor(nameNode2.name, _definingLibrary);
+        constructor = new InterfaceTypeImpl(classElement).lookUpConstructor(
+            nameNode2.name, _definingLibrary);
         nameNode2.staticElement = constructor;
       }
     }
@@ -2062,8 +2062,8 @@
           return;
         }
         // prefix.Class.constructor(args)
-        constructor = new InterfaceTypeImpl.con1(classElement)
-            .lookUpConstructor(name3, _definingLibrary);
+        constructor = new InterfaceTypeImpl(classElement).lookUpConstructor(
+            name3, _definingLibrary);
         nameNode3.staticElement = constructor;
       }
     }
diff --git a/pkg/analyzer/lib/src/generated/engine.dart b/pkg/analyzer/lib/src/generated/engine.dart
index 2d482d8..234e817 100644
--- a/pkg/analyzer/lib/src/generated/engine.dart
+++ b/pkg/analyzer/lib/src/generated/engine.dart
@@ -19,6 +19,7 @@
 import 'package:analyzer/src/services/lint.dart';
 import 'package:analyzer/src/task/manager.dart';
 import 'package:analyzer/src/task/task_dart.dart';
+import 'package:analyzer/task/dart.dart';
 import 'package:analyzer/task/model.dart';
 
 import '../../instrumentation/instrumentation.dart';
@@ -919,7 +920,7 @@
   /**
    * A list containing sources for which data should not be flushed.
    */
-  List<Source> _priorityOrder = Source.EMPTY_ARRAY;
+  List<Source> _priorityOrder = Source.EMPTY_LIST;
 
   /**
    * A map from all sources for which there are futures pending to a list of
@@ -1033,6 +1034,9 @@
   }
 
   @override
+  AnalysisCache get analysisCache => _cache;
+
+  @override
   AnalysisOptions get analysisOptions => _options;
 
   @override
@@ -1090,13 +1094,13 @@
   @override
   void set analysisPriorityOrder(List<Source> sources) {
     if (sources == null || sources.isEmpty) {
-      _priorityOrder = Source.EMPTY_ARRAY;
+      _priorityOrder = Source.EMPTY_LIST;
     } else {
       while (sources.remove(null)) {
         // Nothing else to do.
       }
       if (sources.isEmpty) {
-        _priorityOrder = Source.EMPTY_ARRAY;
+        _priorityOrder = Source.EMPTY_LIST;
       }
       //
       // Cap the size of the priority list to being less than the cache size.
@@ -1461,14 +1465,6 @@
   }
 
   @override
-  void addSourceInfo(Source source, SourceEntry info) {
-    // This implementation assumes that the access to the cache does not need to
-    // be synchronized because no other object can have access to this context
-    // while this method is being invoked.
-    _cache.put(source, info);
-  }
-
-  @override
   void applyAnalysisDelta(AnalysisDelta delta) {
     ChangeSet changeSet = new ChangeSet();
     delta.analysisLevels.forEach((Source source, AnalysisLevel level) {
@@ -1539,7 +1535,7 @@
     if (unit == null) {
       return null;
     }
-    NodeLocator locator = new NodeLocator.con1(element.nameOffset);
+    NodeLocator locator = new NodeLocator(element.nameOffset);
     AstNode nameNode = locator.searchWithin(unit);
     while (nameNode != null) {
       if (nameNode is AnnotatedNode) {
@@ -1639,7 +1635,7 @@
 
   @override
   List<Source> computeExportedLibraries(Source source) => _getDartParseData2(
-      source, DartEntry.EXPORTED_LIBRARIES, Source.EMPTY_ARRAY);
+      source, DartEntry.EXPORTED_LIBRARIES, Source.EMPTY_LIST);
 
   @override
   HtmlElement computeHtmlElement(Source source) =>
@@ -1647,7 +1643,7 @@
 
   @override
   List<Source> computeImportedLibraries(Source source) => _getDartParseData2(
-      source, DartEntry.IMPORTED_LIBRARIES, Source.EMPTY_ARRAY);
+      source, DartEntry.IMPORTED_LIBRARIES, Source.EMPTY_LIST);
 
   @override
   SourceKind computeKindOf(Source source) {
@@ -1801,26 +1797,6 @@
     return source.exists();
   }
 
-  Element findElementById(int id) {
-    _ElementByIdFinder finder = new _ElementByIdFinder(id);
-    try {
-      MapIterator<Source, SourceEntry> iterator = _cache.iterator();
-      while (iterator.moveNext()) {
-        SourceEntry sourceEntry = iterator.value;
-        if (sourceEntry.kind == SourceKind.LIBRARY) {
-          DartEntry dartEntry = sourceEntry;
-          LibraryElement library = dartEntry.getValue(DartEntry.ELEMENT);
-          if (library != null) {
-            library.accept(finder);
-          }
-        }
-      }
-    } on _ElementByIdFinderException {
-      return finder.result;
-    }
-    return null;
-  }
-
   @override
   cache.CacheEntry getCacheEntry(AnalysisTarget target) {
     return null;
@@ -1919,7 +1895,7 @@
   List<Source> getHtmlFilesReferencing(Source source) {
     SourceKind sourceKind = getKindOf(source);
     if (sourceKind == null) {
-      return Source.EMPTY_ARRAY;
+      return Source.EMPTY_LIST;
     }
     List<Source> htmlSources = new List<Source>();
     while (true) {
@@ -1952,7 +1928,7 @@
       break;
     }
     if (htmlSources.isEmpty) {
-      return Source.EMPTY_ARRAY;
+      return Source.EMPTY_LIST;
     }
     return htmlSources;
   }
@@ -1972,7 +1948,7 @@
     if (sourceEntry is DartEntry) {
       return sourceEntry.containingLibraries;
     }
-    return Source.EMPTY_ARRAY;
+    return Source.EMPTY_LIST;
   }
 
   @override
@@ -1995,7 +1971,7 @@
       }
     }
     if (dependentLibraries.isEmpty) {
-      return Source.EMPTY_ARRAY;
+      return Source.EMPTY_LIST;
     }
     return dependentLibraries;
   }
@@ -2007,7 +1983,7 @@
       HtmlEntry htmlEntry = sourceEntry;
       return htmlEntry.getValue(HtmlEntry.REFERENCED_LIBRARIES);
     }
-    return Source.EMPTY_ARRAY;
+    return Source.EMPTY_LIST;
   }
 
   @override
@@ -2301,9 +2277,9 @@
         dartEntry.setState(SourceEntry.CONTENT, CacheState.FLUSHED);
         dartEntry.setValue(SourceEntry.LINE_INFO, new LineInfo(<int>[0]));
         // DartEntry.ELEMENT - set in recordElementData
-        dartEntry.setValue(DartEntry.EXPORTED_LIBRARIES, Source.EMPTY_ARRAY);
-        dartEntry.setValue(DartEntry.IMPORTED_LIBRARIES, Source.EMPTY_ARRAY);
-        dartEntry.setValue(DartEntry.INCLUDED_PARTS, Source.EMPTY_ARRAY);
+        dartEntry.setValue(DartEntry.EXPORTED_LIBRARIES, Source.EMPTY_LIST);
+        dartEntry.setValue(DartEntry.IMPORTED_LIBRARIES, Source.EMPTY_LIST);
+        dartEntry.setValue(DartEntry.INCLUDED_PARTS, Source.EMPTY_LIST);
         // DartEntry.IS_CLIENT - set in recordElementData
         // DartEntry.IS_LAUNCHABLE - set in recordElementData
         dartEntry.setValue(DartEntry.PARSE_ERRORS, AnalysisError.NO_ERRORS);
@@ -3278,7 +3254,7 @@
       if (nullIfEmpty) {
         return null;
       }
-      return ChangeNoticeImpl.EMPTY_ARRAY;
+      return ChangeNoticeImpl.EMPTY_LIST;
     }
     List<ChangeNotice> notices = new List.from(_pendingNotices.values);
     _pendingNotices.clear();
@@ -4057,28 +4033,6 @@
     }
   }
 
-  /**
-   * Record the results produced by performing a [task] and return the cache
-   * entry associated with the results.
-   */
-  DartEntry _recordBuildUnitElementTask(BuildUnitElementTask task) {
-    Source source = task.source;
-    Source library = task.library;
-    DartEntry dartEntry = _cache.get(source);
-    CaughtException thrownException = task.exception;
-    if (thrownException != null) {
-      dartEntry.recordBuildElementErrorInLibrary(library, thrownException);
-      throw new AnalysisException('<rethrow>', thrownException);
-    }
-    dartEntry.setValueInLibrary(DartEntry.BUILT_UNIT, library, task.unit);
-    dartEntry.setValueInLibrary(
-        DartEntry.BUILT_ELEMENT, library, task.unitElement);
-    ChangeNoticeImpl notice = _getNotice(source);
-    LineInfo lineInfo = dartEntry.getValue(SourceEntry.LINE_INFO);
-    notice.setErrors(dartEntry.allErrors, lineInfo);
-    return dartEntry;
-  }
-
 //  /**
 //   * Notify all of the analysis listeners that the given source is no longer included in the set of
 //   * sources that are being analyzed.
@@ -4158,6 +4112,28 @@
 //  }
 
   /**
+   * Record the results produced by performing a [task] and return the cache
+   * entry associated with the results.
+   */
+  DartEntry _recordBuildUnitElementTask(BuildUnitElementTask task) {
+    Source source = task.source;
+    Source library = task.library;
+    DartEntry dartEntry = _cache.get(source);
+    CaughtException thrownException = task.exception;
+    if (thrownException != null) {
+      dartEntry.recordBuildElementErrorInLibrary(library, thrownException);
+      throw new AnalysisException('<rethrow>', thrownException);
+    }
+    dartEntry.setValueInLibrary(DartEntry.BUILT_UNIT, library, task.unit);
+    dartEntry.setValueInLibrary(
+        DartEntry.BUILT_ELEMENT, library, task.unitElement);
+    ChangeNoticeImpl notice = _getNotice(source);
+    LineInfo lineInfo = dartEntry.getValue(SourceEntry.LINE_INFO);
+    notice.setErrors(dartEntry.allErrors, lineInfo);
+    return dartEntry;
+  }
+
+  /**
    * Given a [dartEntry] and a [library] element, record the library element and
    * other information gleaned from the element in the cache entry.
    */
@@ -5347,17 +5323,17 @@
   List<Source> _getSources(Source source, DartEntry dartEntry,
       DataDescriptor<List<Source>> descriptor) {
     if (dartEntry == null) {
-      return Source.EMPTY_ARRAY;
+      return Source.EMPTY_LIST;
     }
     CacheState exportState = dartEntry.getState(descriptor);
     if (exportState == CacheState.ERROR) {
-      return Source.EMPTY_ARRAY;
+      return Source.EMPTY_LIST;
     } else if (exportState != CacheState.VALID) {
       if (_taskData == null) {
         _taskData =
             AnalysisContextImpl_this._createParseDartTask(source, dartEntry);
       }
-      return Source.EMPTY_ARRAY;
+      return Source.EMPTY_LIST;
     }
     return dartEntry.getValue(descriptor);
   }
@@ -5798,6 +5774,9 @@
     if (_taskManager == null) {
       _taskManager = new TaskManager();
       _taskManager.addTaskDescriptors(enginePlugin.taskDescriptors);
+      // TODO(brianwilkerson) Create a way to associate different results with
+      // different file suffixes, then make this pluggable.
+      _taskManager.addGeneralResult(DART_ERRORS);
     }
     return _taskManager;
   }
@@ -6106,7 +6085,7 @@
    * The default value for enabling enum support.
    */
   @deprecated
-  static bool DEFAULT_ENABLE_ENUM = false;
+  static bool DEFAULT_ENABLE_ENUM = true;
 
   /**
    * A predicate indicating whether analysis is to parse and analyze function
@@ -6193,6 +6172,7 @@
    * Initialize a newly created set of analysis options to have the same values
    * as those in the given set of analysis [options].
    */
+  @deprecated // Use new AnalysisOptionsImpl.from(options)
   AnalysisOptionsImpl.con1(AnalysisOptions options) {
     analyzeFunctionBodiesPredicate = options.analyzeFunctionBodiesPredicate;
     cacheSize = options.cacheSize;
@@ -6209,6 +6189,26 @@
     preserveComments = options.preserveComments;
   }
 
+  /**
+   * Initialize a newly created set of analysis options to have the same values
+   * as those in the given set of analysis [options].
+   */
+  AnalysisOptionsImpl.from(AnalysisOptions options) {
+    analyzeFunctionBodiesPredicate = options.analyzeFunctionBodiesPredicate;
+    cacheSize = options.cacheSize;
+    dart2jsHint = options.dart2jsHint;
+    enableNullAwareOperators = options.enableNullAwareOperators;
+    enableStrictCallChecks = options.enableStrictCallChecks;
+    generateImplicitErrors = options.generateImplicitErrors;
+    generateSdkErrors = options.generateSdkErrors;
+    hint = options.hint;
+    incremental = options.incremental;
+    incrementalApi = options.incrementalApi;
+    incrementalValidation = options.incrementalValidation;
+    lint = options.lint;
+    preserveComments = options.preserveComments;
+  }
+
   bool get analyzeFunctionBodies {
     if (identical(analyzeFunctionBodiesPredicate, _analyzeAllFunctionBodies)) {
       return true;
@@ -6861,7 +6861,7 @@
   /**
    * An empty list of change notices.
    */
-  static const List<ChangeNoticeImpl> EMPTY_ARRAY = const <ChangeNoticeImpl>[];
+  static const List<ChangeNoticeImpl> EMPTY_LIST = const <ChangeNoticeImpl>[];
 
   /**
    * The source for which the result is being reported.
@@ -7252,7 +7252,7 @@
    */
   static final DataDescriptor<List<Source>> CONTAINING_LIBRARIES =
       new DataDescriptor<List<Source>>(
-          "DartEntry.CONTAINING_LIBRARIES", Source.EMPTY_ARRAY);
+          "DartEntry.CONTAINING_LIBRARIES", Source.EMPTY_LIST);
 
   /**
    * The data descriptor representing the library element for the library. This
@@ -7269,7 +7269,7 @@
    */
   static final DataDescriptor<List<Source>> EXPORTED_LIBRARIES =
       new DataDescriptor<List<Source>>(
-          "DartEntry.EXPORTED_LIBRARIES", Source.EMPTY_ARRAY);
+          "DartEntry.EXPORTED_LIBRARIES", Source.EMPTY_LIST);
 
   /**
    * The data descriptor representing the hints resulting from auditing the
@@ -7286,7 +7286,7 @@
    */
   static final DataDescriptor<List<Source>> IMPORTED_LIBRARIES =
       new DataDescriptor<List<Source>>(
-          "DartEntry.IMPORTED_LIBRARIES", Source.EMPTY_ARRAY);
+          "DartEntry.IMPORTED_LIBRARIES", Source.EMPTY_LIST);
 
   /**
    * The data descriptor representing the list of included parts. This data is
@@ -7295,7 +7295,7 @@
    */
   static final DataDescriptor<List<Source>> INCLUDED_PARTS =
       new DataDescriptor<List<Source>>(
-          "DartEntry.INCLUDED_PARTS", Source.EMPTY_ARRAY);
+          "DartEntry.INCLUDED_PARTS", Source.EMPTY_LIST);
 
   /**
    * The data descriptor representing the client flag. This data is only
@@ -8270,9 +8270,9 @@
       }
     }
     StringLiteral uriLiteral = directive.uri;
-    errorListener.onError(new AnalysisError.con2(librarySource,
-        uriLiteral.offset, uriLiteral.length,
-        CompileTimeErrorCode.URI_DOES_NOT_EXIST, [directive.uriContent]));
+    errorListener.onError(new AnalysisError(librarySource, uriLiteral.offset,
+        uriLiteral.length, CompileTimeErrorCode.URI_DOES_NOT_EXIST,
+        [directive.uriContent]));
   }
 }
 
@@ -8496,8 +8496,8 @@
       AnalysisEngine.instance.instrumentationService.logFileRead(
           source.fullName, _modificationTime, _content);
     } catch (exception, stackTrace) {
-      errors.add(new AnalysisError.con1(
-          source, ScannerErrorCode.UNABLE_GET_CONTENT, [exception]));
+      errors.add(new AnalysisError(
+          source, 0, 0, ScannerErrorCode.UNABLE_GET_CONTENT, [exception]));
       throw new AnalysisException("Could not get contents of $source",
           new CaughtException(exception, stackTrace));
     }
@@ -8547,7 +8547,7 @@
    */
   static final DataDescriptor<List<Source>> REFERENCED_LIBRARIES =
       new DataDescriptor<List<Source>>(
-          "HtmlEntry.REFERENCED_LIBRARIES", Source.EMPTY_ARRAY);
+          "HtmlEntry.REFERENCED_LIBRARIES", Source.EMPTY_LIST);
 
   /**
    * The data descriptor representing the errors resulting from resolving the
@@ -9019,6 +9019,14 @@
  */
 abstract class InternalAnalysisContext implements AnalysisContext {
   /**
+   * A table mapping the sources known to the context to the information known
+   * about the source.
+   *
+   * TODO(scheglov) add the type, once we have only one cache.
+   */
+  dynamic get analysisCache;
+
+  /**
    * Allow the client to supply its own content cache.  This will take the
    * place of the content cache created by default, allowing clients to share
    * the content cache between contexts.
@@ -9067,11 +9075,6 @@
   TypeResolverVisitorFactory get typeResolverVisitorFactory;
 
   /**
-   * Add the given [source] with the given [information] to this context.
-   */
-  void addSourceInfo(Source source, SourceEntry information);
-
-  /**
    * Return a list containing the sources of the libraries that are exported by
    * the library with the given [source]. The list will be empty if the given
    * source is invalid, if the given source does not represent a library, or if
@@ -9184,7 +9187,7 @@
    * Log the given [exception] as one representing an error. The [message] is an
    * explanation of why the error occurred or what it means.
    */
-  @deprecated
+  @deprecated // Use logError(message, exception)
   void logError2(String message, Object exception);
 
   /**
@@ -9198,7 +9201,7 @@
    * Log the given [exception] as one representing an informational message. The
    * [message] is an explanation of why the error occurred or what it means.
    */
-  @deprecated
+  @deprecated // Use logInformation(message, exception)
   void logInformation2(String message, Object exception);
 }
 
@@ -9427,7 +9430,7 @@
   List<Source> _toArray(HashSet<Source> sources) {
     int size = sources.length;
     if (size == 0) {
-      return Source.EMPTY_ARRAY;
+      return Source.EMPTY_LIST;
     }
     return new List.from(sources);
   }
@@ -9466,15 +9469,13 @@
       return null;
     }
     if (code == UriValidationCode.URI_WITH_INTERPOLATION) {
-      errorListener.onError(new AnalysisError.con2(librarySource,
-          uriLiteral.offset, uriLiteral.length,
-          CompileTimeErrorCode.URI_WITH_INTERPOLATION));
+      errorListener.onError(new AnalysisError(librarySource, uriLiteral.offset,
+          uriLiteral.length, CompileTimeErrorCode.URI_WITH_INTERPOLATION));
       return null;
     }
     if (code == UriValidationCode.INVALID_URI) {
-      errorListener.onError(new AnalysisError.con2(librarySource,
-          uriLiteral.offset, uriLiteral.length,
-          CompileTimeErrorCode.INVALID_URI, [uriContent]));
+      errorListener.onError(new AnalysisError(librarySource, uriLiteral.offset,
+          uriLiteral.length, CompileTimeErrorCode.INVALID_URI, [uriContent]));
       return null;
     }
     throw new RuntimeException(
@@ -9524,7 +9525,7 @@
   /**
    * A list containing the sources of the libraries that are referenced within the HTML.
    */
-  List<Source> _referencedLibraries = Source.EMPTY_ARRAY;
+  List<Source> _referencedLibraries = Source.EMPTY_LIST;
 
   /**
    * Initialize a newly created task to perform analysis within the given context.
@@ -9560,7 +9561,7 @@
     List<Source> libraries = new List<Source>();
     _unit.accept(new ParseHtmlTask_getLibrarySources(this, libraries));
     if (libraries.isEmpty) {
-      return Source.EMPTY_ARRAY;
+      return Source.EMPTY_LIST;
     }
     return libraries;
   }
@@ -11689,21 +11690,3 @@
     return pendingFuture.future;
   }
 }
-
-class _ElementByIdFinder extends GeneralizingElementVisitor {
-  final int _id;
-  Element result;
-
-  _ElementByIdFinder(this._id);
-
-  @override
-  visitElement(Element element) {
-    if (element.id == _id) {
-      result = element;
-      throw new _ElementByIdFinderException();
-    }
-    super.visitElement(element);
-  }
-}
-
-class _ElementByIdFinderException {}
diff --git a/pkg/analyzer/lib/src/generated/error.dart b/pkg/analyzer/lib/src/generated/error.dart
index 9a83ed4..13dd77c 100644
--- a/pkg/analyzer/lib/src/generated/error.dart
+++ b/pkg/analyzer/lib/src/generated/error.dart
@@ -89,21 +89,12 @@
   bool isStaticOnly = false;
 
   /**
-   * Initialize a newly created analysis error for the specified [source]. The
-   * error will have the given [errorCode] and the list of [arguments] will be
-   * used to complete the message. The error has no location information.
+   * Initialize a newly created analysis error. The error is associated with the
+   * given [source] and is located at the given [offset] with the given
+   * [length]. The error will have the given [errorCode] and the list of
+   * [arguments] will be used to complete the message.
    */
-  AnalysisError.con1(this.source, this.errorCode, [List<Object> arguments]) {
-    this._message = formatList(errorCode.message, arguments);
-  }
-
-  /**
-   * Initialize a newly created analysis error for the specified [source] at the
-   * given [offset] with the given [length]. The error will have the given
-   * [errorCode] and the list of [arguments] will be used to complete the
-   * message.
-   */
-  AnalysisError.con2(this.source, this.offset, int length, this.errorCode,
+  AnalysisError(this.source, this.offset, int length, this.errorCode,
       [List<Object> arguments]) {
     this._length = length;
     this._message = formatList(errorCode.message, arguments);
@@ -114,6 +105,27 @@
   }
 
   /**
+   * Initialize a newly created analysis error for the specified [source]. The
+   * error will have the given [errorCode] and the list of [arguments] will be
+   * used to complete the message. The error has no location information.
+   */
+  @deprecated // Use new AnalysisError(source, 0, 0, errorCode, arguments)
+  AnalysisError.con1(Source source, ErrorCode errorCode,
+      [List<Object> arguments])
+      : this(source, 0, 0, errorCode, arguments);
+
+  /**
+   * Initialize a newly created analysis error for the specified [source] at the
+   * given [offset] with the given [length]. The error will have the given
+   * [errorCode] and the list of [arguments] will be used to complete the
+   * message.
+   */
+  @deprecated // Use new AnalysisError(source, offset, length, errorCode, arguments)
+  AnalysisError.con2(Source source, int offset, int length, ErrorCode errorCode,
+      [List<Object> arguments])
+      : this(source, offset, length, errorCode, arguments);
+
+  /**
    * Return the template used to create the correction to be displayed for this
    * error, or `null` if there is no correction information for this error. The
    * correction should indicate how the user can fix the error.
@@ -191,6 +203,18 @@
     buffer.write(_message);
     return buffer.toString();
   }
+
+  /**
+   * Merge all of the errors in the lists in the given list of [errorLists] into
+   * a single list of errors.
+   */
+  static List<AnalysisError> mergeLists(List<List<AnalysisError>> errorLists) {
+    List<AnalysisError> errors = <AnalysisError>[];
+    for (List<AnalysisError> errorList in errorLists) {
+      errors.addAll(errorList);
+    }
+    return errors;
+  }
 }
 
 /**
@@ -232,13 +256,25 @@
       new HashMap<ErrorProperty, Object>();
 
   /**
+   * Initialize a newly created analysis error. The error is associated with the
+   * given [source] and is located at the given [offset] with the given
+   * [length]. The error will have the given [errorCode] and the list of
+   * [arguments] will be used to complete the message.
+   */
+  AnalysisErrorWithProperties(
+      Source source, int offset, int length, ErrorCode errorCode,
+      [List<Object> arguments])
+      : super(source, offset, length, errorCode, arguments);
+
+  /**
    * Initialize a newly created analysis error for the specified [source]. The
    * error will have the given [errorCode] and the list of [arguments] will be
    * used to complete the message. The error has no location information.
    */
+  @deprecated // Use new AnalysisErrorWithProperties(source, 0, 0, errorCode, arguments)
   AnalysisErrorWithProperties.con1(Source source, ErrorCode errorCode,
       [List<Object> arguments])
-      : super.con1(source, errorCode, arguments);
+      : this(source, 0, 0, errorCode, arguments);
 
   /**
    * Initialize a newly created analysis error for the specified [source] at the
@@ -246,10 +282,11 @@
    * [errorCode] and the list of [arguments] will be used to complete the
    * message.
    */
+  @deprecated // Use new AnalysisErrorWithProperties(source, offset, length, errorCode, arguments)
   AnalysisErrorWithProperties.con2(
       Source source, int offset, int length, ErrorCode errorCode,
       [List<Object> arguments])
-      : super.con2(source, offset, length, errorCode, arguments);
+      : this(source, offset, length, errorCode, arguments);
 
   @override
   Object getProperty(ErrorProperty property) => _propertyMap[property];
@@ -1924,7 +1961,8 @@
    * constant expression depends on itself.
    */
   static const CompileTimeErrorCode RECURSIVE_COMPILE_TIME_CONSTANT =
-      const CompileTimeErrorCode('RECURSIVE_COMPILE_TIME_CONSTANT', "");
+      const CompileTimeErrorCode('RECURSIVE_COMPILE_TIME_CONSTANT',
+          "Compile-time constant expression depends on itself");
 
   /**
    * 7.6.1 Generative Constructors: A generative constructor may be redirecting,
@@ -2458,7 +2496,7 @@
    */
   AnalysisErrorWithProperties newErrorWithProperties(
           ErrorCode errorCode, AstNode node, List<Object> arguments) =>
-      new AnalysisErrorWithProperties.con2(
+      new AnalysisErrorWithProperties(
           _source, node.offset, node.length, errorCode, arguments);
 
   /**
@@ -2506,7 +2544,7 @@
   void reportErrorForOffset(ErrorCode errorCode, int offset, int length,
       [List<Object> arguments]) {
     _errorListener.onError(
-        new AnalysisError.con2(_source, offset, length, errorCode, arguments));
+        new AnalysisError(_source, offset, length, errorCode, arguments));
   }
 
   /**
diff --git a/pkg/analyzer/lib/src/generated/incremental_resolver.dart b/pkg/analyzer/lib/src/generated/incremental_resolver.dart
index 531ac3b..789ab42 100644
--- a/pkg/analyzer/lib/src/generated/incremental_resolver.dart
+++ b/pkg/analyzer/lib/src/generated/incremental_resolver.dart
@@ -964,16 +964,16 @@
     // compute values
     {
       CompilationUnit unit = node.getAncestor((n) => n is CompilationUnit);
-      ConstantValueComputer computer =
-          new ConstantValueComputer(_typeProvider, _context.declaredVariables);
-      computer.add(unit);
+      ConstantValueComputer computer = new ConstantValueComputer(
+          _context, _typeProvider, _context.declaredVariables);
+      computer.add(unit, _source, _librarySource);
       computer.computeValues();
     }
     // validate
     {
       ErrorReporter errorReporter = new ErrorReporter(errorListener, _source);
-      ConstantVerifier constantVerifier =
-          new ConstantVerifier(errorReporter, _definingLibrary, _typeProvider);
+      ConstantVerifier constantVerifier = new ConstantVerifier(errorReporter,
+          _definingLibrary, _typeProvider, _context.declaredVariables);
       node.accept(constantVerifier);
     }
   }
@@ -1546,7 +1546,7 @@
   }
 
   static AstNode _findNodeCovering(AstNode root, int offset, int end) {
-    NodeLocator nodeLocator = new NodeLocator.con2(offset, end);
+    NodeLocator nodeLocator = new NodeLocator(offset, end);
     return nodeLocator.searchWithin(root);
   }
 
diff --git a/pkg/analyzer/lib/src/generated/parser.dart b/pkg/analyzer/lib/src/generated/parser.dart
index e040afd..2e5bca2 100644
--- a/pkg/analyzer/lib/src/generated/parser.dart
+++ b/pkg/analyzer/lib/src/generated/parser.dart
@@ -1681,10 +1681,9 @@
     // tokens.
     //
     if (originalEnd < originalStart) {
-      oldNode =
-          new NodeLocator.con1(originalStart).searchWithin(originalStructure);
+      oldNode = new NodeLocator(originalStart).searchWithin(originalStructure);
     } else {
-      oldNode = new NodeLocator.con2(originalStart, originalEnd)
+      oldNode = new NodeLocator(originalStart, originalEnd)
           .searchWithin(originalStructure);
     }
     //
@@ -5580,11 +5579,11 @@
           Token rightParenthesis = _expect(TokenType.CLOSE_PAREN);
           Statement body = parseStatement2();
           if (loopVariable == null) {
-            return new ForEachStatement.con2(awaitKeyword, forKeyword,
+            return new ForEachStatement.withReference(awaitKeyword, forKeyword,
                 leftParenthesis, identifier, inKeyword, iterator,
                 rightParenthesis, body);
           }
-          return new ForEachStatement.con1(awaitKeyword, forKeyword,
+          return new ForEachStatement.withDeclaration(awaitKeyword, forKeyword,
               leftParenthesis, loopVariable, inKeyword, iterator,
               rightParenthesis, body);
         }
@@ -7663,7 +7662,7 @@
    */
   void _reportErrorForNode(ParserErrorCode errorCode, AstNode node,
       [List<Object> arguments]) {
-    _reportError(new AnalysisError.con2(
+    _reportError(new AnalysisError(
         _source, node.offset, node.length, errorCode, arguments));
   }
 
@@ -7676,7 +7675,7 @@
     if (token.type == TokenType.EOF) {
       token = token.previous;
     }
-    _reportError(new AnalysisError.con2(_source, token.offset,
+    _reportError(new AnalysisError(_source, token.offset,
         math.max(token.length, 1), errorCode, arguments));
   }
 
diff --git a/pkg/analyzer/lib/src/generated/resolver.dart b/pkg/analyzer/lib/src/generated/resolver.dart
index 29817fd..50f89a5 100644
--- a/pkg/analyzer/lib/src/generated/resolver.dart
+++ b/pkg/analyzer/lib/src/generated/resolver.dart
@@ -743,12 +743,12 @@
   AnalysisError getErrorForDuplicate(Element existing, Element duplicate) {
     if (existing is PropertyAccessorElement && duplicate is MethodElement) {
       if (existing.nameOffset < duplicate.nameOffset) {
-        return new AnalysisError.con2(duplicate.source, duplicate.nameOffset,
+        return new AnalysisError(duplicate.source, duplicate.nameOffset,
             duplicate.displayName.length,
             CompileTimeErrorCode.METHOD_AND_GETTER_WITH_SAME_NAME,
             [existing.displayName]);
       } else {
-        return new AnalysisError.con2(existing.source, existing.nameOffset,
+        return new AnalysisError(existing.source, existing.nameOffset,
             existing.displayName.length,
             CompileTimeErrorCode.GETTER_AND_METHOD_WITH_SAME_NAME,
             [existing.displayName]);
@@ -780,10 +780,11 @@
   /**
    * Build the compilation unit element for the given [source] based on the
    * compilation [unit] associated with the source. Throw an AnalysisException
-   * if the element could not be built.
+   * if the element could not be built.  [librarySource] is the source for the
+   * containing library.
    */
   CompilationUnitElementImpl buildCompilationUnit(
-      Source source, CompilationUnit unit) {
+      Source source, CompilationUnit unit, Source librarySource) {
     return PerformanceStatistics.resolve.makeCurrentWhile(() {
       if (unit == null) {
         return null;
@@ -797,6 +798,7 @@
       element.enums = holder.enums;
       element.functions = holder.functions;
       element.source = source;
+      element.librarySource = librarySource;
       element.typeAliases = holder.typeAliases;
       element.types = holder.types;
       element.topLevelVariables = holder.topLevelVariables;
@@ -824,6 +826,11 @@
   final TypeProvider _typeProvider;
 
   /**
+   * The set of variables declared using '-D' on the command line.
+   */
+  final DeclaredVariables declaredVariables;
+
+  /**
    * The type representing the type 'bool'.
    */
   InterfaceType _boolType;
@@ -853,8 +860,8 @@
    *
    * @param errorReporter the error reporter by which errors will be reported
    */
-  ConstantVerifier(
-      this._errorReporter, this._currentLibrary, this._typeProvider) {
+  ConstantVerifier(this._errorReporter, this._currentLibrary,
+      this._typeProvider, this.declaredVariables) {
     this._boolType = _typeProvider.boolType;
     this._intType = _typeProvider.intType;
     this._numType = _typeProvider.numType;
@@ -907,11 +914,17 @@
   @override
   Object visitInstanceCreationExpression(InstanceCreationExpression node) {
     if (node.isConst) {
-      EvaluationResultImpl evaluationResult = node.evaluationResult;
-      // Note: evaluationResult might be null if there are circular references
-      // among constants.
-      if (evaluationResult != null) {
-        _reportErrors(evaluationResult.errors, null);
+      // We need to evaluate the constant to see if any errors occur during its
+      // evaluation.
+      ConstructorElement constructor = node.staticElement;
+      if (constructor != null) {
+        ConstantEvaluationEngine evaluationEngine =
+            new ConstantEvaluationEngine(_typeProvider, declaredVariables);
+        ConstantVisitor constantVisitor =
+            new ConstantVisitor(evaluationEngine, _errorReporter);
+        evaluationEngine.evaluateConstructorCall(node,
+            node.argumentList.arguments, constructor, constantVisitor,
+            _errorReporter);
       }
     }
     _validateInstanceCreationArguments(node);
@@ -975,8 +988,9 @@
             AnalysisErrorListener.NULL_LISTENER;
         ErrorReporter subErrorReporter =
             new ErrorReporter(errorListener, _errorReporter.source);
-        DartObjectImpl result = key
-            .accept(new ConstantVisitor.con1(_typeProvider, subErrorReporter));
+        DartObjectImpl result = key.accept(new ConstantVisitor(
+            new ConstantEvaluationEngine(_typeProvider, declaredVariables),
+            subErrorReporter));
         if (result != null) {
           if (keys.contains(result)) {
             invalidKeys.add(key);
@@ -1046,18 +1060,15 @@
   Object visitVariableDeclaration(VariableDeclaration node) {
     super.visitVariableDeclaration(node);
     Expression initializer = node.initializer;
-    if (initializer != null && node.isConst) {
+    if (initializer != null && (node.isConst || node.isFinal)) {
       VariableElementImpl element = node.element as VariableElementImpl;
       EvaluationResultImpl result = element.evaluationResult;
       if (result == null) {
-        //
-        // Normally we don't need to visit const variable declarations because
-        // we have already computed their values. But if we missed it for some
-        // reason, this gives us a second chance.
-        //
-        result = new EvaluationResultImpl.con1(_validate(initializer,
-            CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE));
-        element.evaluationResult = result;
+        // Variables marked "const" should have had their values computed by
+        // ConstantValueComputer.  Other variables will only have had their
+        // values computed if the value was needed (e.g. final variables in a
+        // class containing const constructors).
+        assert(!node.isConst);
         return null;
       }
       _reportErrors(result.errors,
@@ -1154,6 +1165,8 @@
           identical(dataErrorCode, CompileTimeErrorCode.CONST_EVAL_TYPE_INT) ||
           identical(dataErrorCode, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM) ||
           identical(dataErrorCode,
+              CompileTimeErrorCode.RECURSIVE_COMPILE_TIME_CONSTANT) ||
+          identical(dataErrorCode,
               CheckedModeCompileTimeErrorCode.CONST_CONSTRUCTOR_FIELD_TYPE_MISMATCH) ||
           identical(dataErrorCode,
               CheckedModeCompileTimeErrorCode.CONST_CONSTRUCTOR_PARAM_TYPE_MISMATCH) ||
@@ -1179,8 +1192,9 @@
     RecordingErrorListener errorListener = new RecordingErrorListener();
     ErrorReporter subErrorReporter =
         new ErrorReporter(errorListener, _errorReporter.source);
-    DartObjectImpl result = expression
-        .accept(new ConstantVisitor.con1(_typeProvider, subErrorReporter));
+    DartObjectImpl result = expression.accept(new ConstantVisitor(
+        new ConstantEvaluationEngine(_typeProvider, declaredVariables),
+        subErrorReporter));
     _reportErrors(errorListener.errors, errorCode);
     return result;
   }
@@ -1256,7 +1270,7 @@
           }
         }
         VariableElementImpl element = parameter.element as VariableElementImpl;
-        element.evaluationResult = new EvaluationResultImpl.con1(result);
+        element.evaluationResult = new EvaluationResultImpl(result);
       }
     }
   }
@@ -1286,8 +1300,9 @@
                   AnalysisErrorListener.NULL_LISTENER;
               ErrorReporter subErrorReporter =
                   new ErrorReporter(errorListener, _errorReporter.source);
-              DartObjectImpl result = initializer.accept(
-                  new ConstantVisitor.con1(_typeProvider, subErrorReporter));
+              DartObjectImpl result = initializer.accept(new ConstantVisitor(
+                  new ConstantEvaluationEngine(
+                      _typeProvider, declaredVariables), subErrorReporter));
               if (result == null) {
                 _errorReporter.reportErrorForNode(
                     CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_FIELD_INITIALIZED_BY_NON_CONST,
@@ -1313,8 +1328,8 @@
     ErrorReporter subErrorReporter =
         new ErrorReporter(errorListener, _errorReporter.source);
     DartObjectImpl result = expression.accept(
-        new _ConstantVerifier_validateInitializerExpression(
-            _typeProvider, subErrorReporter, this, parameterElements));
+        new _ConstantVerifier_validateInitializerExpression(_typeProvider,
+            subErrorReporter, this, parameterElements, declaredVariables));
     _reportErrors(errorListener.errors,
         CompileTimeErrorCode.NON_CONSTANT_VALUE_IN_INITIALIZER);
     if (result != null) {
@@ -1703,10 +1718,10 @@
   EvaluationResultImpl _getConstantBooleanValue(Expression expression) {
     if (expression is BooleanLiteral) {
       if (expression.value) {
-        return new EvaluationResultImpl.con1(
+        return new EvaluationResultImpl(
             new DartObjectImpl(null, BoolState.from(true)));
       } else {
-        return new EvaluationResultImpl.con1(
+        return new EvaluationResultImpl(
             new DartObjectImpl(null, BoolState.from(false)));
       }
     }
@@ -2437,7 +2452,7 @@
     ClassElementImpl element = new ClassElementImpl.forNode(className);
     List<TypeParameterElement> typeParameters = holder.typeParameters;
     List<DartType> typeArguments = _createTypeParameterTypes(typeParameters);
-    InterfaceTypeImpl interfaceType = new InterfaceTypeImpl.con1(element);
+    InterfaceTypeImpl interfaceType = new InterfaceTypeImpl(element);
     interfaceType.typeArguments = typeArguments;
     element.type = interfaceType;
     List<ConstructorElement> constructors = holder.constructors;
@@ -2492,7 +2507,7 @@
     List<TypeParameterElement> typeParameters = holder.typeParameters;
     element.typeParameters = typeParameters;
     List<DartType> typeArguments = _createTypeParameterTypes(typeParameters);
-    InterfaceTypeImpl interfaceType = new InterfaceTypeImpl.con1(element);
+    InterfaceTypeImpl interfaceType = new InterfaceTypeImpl(element);
     interfaceType.typeArguments = typeArguments;
     element.type = interfaceType;
     // set default constructor
@@ -2616,7 +2631,7 @@
     SimpleIdentifier enumName = node.name;
     ClassElementImpl enumElement = new ClassElementImpl.forNode(enumName);
     enumElement.enum2 = true;
-    InterfaceTypeImpl enumType = new InterfaceTypeImpl.con1(enumElement);
+    InterfaceTypeImpl enumType = new InterfaceTypeImpl(enumElement);
     enumElement.type = enumType;
     _currentHolder.addEnum(enumElement);
     enumName.staticElement = enumElement;
@@ -2800,7 +2815,7 @@
         element.setVisibleRange(functionEnd, blockEnd - functionEnd - 1);
       }
     }
-    FunctionTypeImpl type = new FunctionTypeImpl.con1(element);
+    FunctionTypeImpl type = new FunctionTypeImpl(element);
     if (_functionTypesToFix != null) {
       _functionTypesToFix.add(type);
     }
@@ -2822,7 +2837,7 @@
         new FunctionTypeAliasElementImpl.forNode(aliasName);
     element.parameters = parameters;
     element.typeParameters = typeParameters;
-    FunctionTypeImpl type = new FunctionTypeImpl.con2(element);
+    FunctionTypeImpl type = new FunctionTypeImpl.forTypedef(element);
     type.typeArguments = _createTypeParameterTypes(typeParameters);
     element.type = type;
     _currentHolder.addTypeAlias(element);
@@ -2854,14 +2869,6 @@
   }
 
   @override
-  Object visitInstanceCreationExpression(InstanceCreationExpression node) {
-    if (node.isConst) {
-      node.constantHandle = new ConstantInstanceCreationHandle();
-    }
-    return super.visitInstanceCreationExpression(node);
-  }
-
-  @override
   Object visitLabeledStatement(LabeledStatement node) {
     bool onSwitchStatement = node.statement is SwitchStatement;
     for (Label label in node.labels) {
@@ -3069,7 +3076,7 @@
       SimpleIdentifier fieldName = node.name;
       FieldElementImpl field;
       if ((isConst || isFinal) && hasInitializer) {
-        field = new ConstFieldElementImpl.con1(fieldName);
+        field = new ConstFieldElementImpl.forNode(fieldName);
       } else {
         field = new FieldElementImpl.forNode(fieldName);
       }
@@ -3176,7 +3183,7 @@
         new ConstructorElementImpl.forNode(null);
     constructor.synthetic = true;
     constructor.returnType = interfaceType;
-    FunctionTypeImpl type = new FunctionTypeImpl.con1(constructor);
+    FunctionTypeImpl type = new FunctionTypeImpl(constructor);
     _functionTypesToFix.add(type);
     constructor.type = type;
     return <ConstructorElement>[constructor];
@@ -3745,8 +3752,7 @@
     indexField.type = intType;
     fields.add(indexField);
     getters.add(_createGetter(indexField));
-    ConstFieldElementImpl valuesField =
-        new ConstFieldElementImpl.con2("values", -1);
+    ConstFieldElementImpl valuesField = new ConstFieldElementImpl("values", -1);
     valuesField.static = true;
     valuesField.const3 = true;
     valuesField.synthetic = true;
@@ -3762,7 +3768,7 @@
     for (int i = 0; i < constantCount; i++) {
       SimpleIdentifier constantName = constants[i].name;
       FieldElementImpl constantField =
-          new ConstFieldElementImpl.con1(constantName);
+          new ConstFieldElementImpl.forNode(constantName);
       constantField.static = true;
       constantField.const3 = true;
       constantField.type = enumType;
@@ -3775,7 +3781,7 @@
       DartObjectImpl value =
           new DartObjectImpl(enumType, new GenericState(fieldMap));
       constantValues.add(value);
-      constantField.evaluationResult = new EvaluationResultImpl.con1(value);
+      constantField.evaluationResult = new EvaluationResultImpl(value);
       fields.add(constantField);
       getters.add(_createGetter(constantField));
       constantName.staticElement = constantField;
@@ -3783,7 +3789,7 @@
     //
     // Build the value of the 'values' field.
     //
-    valuesField.evaluationResult = new EvaluationResultImpl.con1(
+    valuesField.evaluationResult = new EvaluationResultImpl(
         new DartObjectImpl(valuesField.type, new ListState(constantValues)));
     //
     // Finish building the enum.
@@ -3806,7 +3812,7 @@
         new PropertyAccessorElementImpl.forVariable(field);
     getter.getter = true;
     getter.returnType = field.type;
-    getter.type = new FunctionTypeImpl.con1(getter);
+    getter.type = new FunctionTypeImpl(getter);
     field.getter = getter;
     return getter;
   }
@@ -5207,7 +5213,7 @@
       }
       implicitConstructor.parameters = implicitParameters;
     }
-    FunctionTypeImpl type = new FunctionTypeImpl.con1(implicitConstructor);
+    FunctionTypeImpl type = new FunctionTypeImpl(implicitConstructor);
     type.typeArguments = classType.typeArguments;
     implicitConstructor.type = type;
     return implicitConstructor;
@@ -5290,7 +5296,7 @@
           if (_findForwardedConstructors(classElement, superType, callback) &&
               !constructorFound) {
             SourceRange withRange = classElement.withClauseRange;
-            errorListener.onError(new AnalysisError.con2(classElement.source,
+            errorListener.onError(new AnalysisError(classElement.source,
                 withRange.offset, withRange.length,
                 CompileTimeErrorCode.MIXIN_HAS_NO_CONSTRUCTORS,
                 [superElement.name]));
@@ -5965,7 +5971,7 @@
       if (!visitedClasses.contains(superclassElt)) {
         visitedClasses.add(superclassElt);
         try {
-          resultMap = new MemberMap.con2(
+          resultMap = new MemberMap.from(
               _computeClassChainLookupMap(superclassElt, visitedClasses));
           //
           // Substitute the super types down the hierarchy.
@@ -5998,7 +6004,7 @@
         if (!visitedClasses.contains(mixinElement)) {
           visitedClasses.add(mixinElement);
           try {
-            MemberMap map = new MemberMap.con2(
+            MemberMap map = new MemberMap.from(
                 _computeClassChainLookupMap(mixinElement, visitedClasses));
             //
             // Substitute the super types down the hierarchy.
@@ -6166,7 +6172,7 @@
           //
           MemberMap map =
               _computeInterfaceLookupMap(superclassElement, visitedInterfaces);
-          map = new MemberMap.con2(map);
+          map = new MemberMap.from(map);
           //
           // Substitute the super type down the hierarchy.
           //
@@ -6198,7 +6204,7 @@
             //
             MemberMap map =
                 _computeInterfaceLookupMap(mixinElement, visitedInterfaces);
-            map = new MemberMap.con2(map);
+            map = new MemberMap.from(map);
             //
             // Substitute the mixin type down the hierarchy.
             //
@@ -6230,7 +6236,7 @@
             //
             MemberMap map =
                 _computeInterfaceLookupMap(interfaceElement, visitedInterfaces);
-            map = new MemberMap.con2(map);
+            map = new MemberMap.from(map);
             //
             // Substitute the supertypes down the hierarchy
             //
@@ -6331,7 +6337,7 @@
       errorSet = new HashSet<AnalysisError>();
       _errorsInClassElement[classElt] = errorSet;
     }
-    errorSet.add(new AnalysisError.con2(
+    errorSet.add(new AnalysisError(
         classElt.source, offset, length, errorCode, arguments));
   }
 
@@ -6677,7 +6683,7 @@
     }
     executable.returnType = dynamicType;
     executable.parameters = parameters;
-    FunctionTypeImpl methodType = new FunctionTypeImpl.con1(executable);
+    FunctionTypeImpl methodType = new FunctionTypeImpl(executable);
     executable.type = methodType;
     return executable;
   }
@@ -7090,15 +7096,14 @@
       Source source =
           _analysisContext.sourceFactory.resolveUri(librarySource, uriContent);
       if (!_analysisContext.exists(source)) {
-        _errorListener.onError(new AnalysisError.con2(librarySource,
+        _errorListener.onError(new AnalysisError(librarySource,
             uriLiteral.offset, uriLiteral.length,
             CompileTimeErrorCode.URI_DOES_NOT_EXIST, [uriContent]));
       }
       return source;
     } on URISyntaxException {
-      _errorListener.onError(new AnalysisError.con2(librarySource,
-          uriLiteral.offset, uriLiteral.length,
-          CompileTimeErrorCode.INVALID_URI, [uriContent]));
+      _errorListener.onError(new AnalysisError(librarySource, uriLiteral.offset,
+          uriLiteral.length, CompileTimeErrorCode.INVALID_URI, [uriContent]));
     }
     return null;
   }
@@ -7155,8 +7160,9 @@
     CompilationUnitBuilder builder = new CompilationUnitBuilder();
     Source librarySource = library.librarySource;
     CompilationUnit definingCompilationUnit = library.definingCompilationUnit;
-    CompilationUnitElementImpl definingCompilationUnitElement =
-        builder.buildCompilationUnit(librarySource, definingCompilationUnit);
+    CompilationUnitElementImpl definingCompilationUnitElement = builder
+        .buildCompilationUnit(
+            librarySource, definingCompilationUnit, librarySource);
     NodeList<Directive> directives = definingCompilationUnit.directives;
     LibraryIdentifier libraryNameNode = null;
     bool hasPartDirective = false;
@@ -7186,7 +7192,7 @@
           hasPartDirective = true;
           CompilationUnit partUnit = library.getAST(partSource);
           CompilationUnitElementImpl part =
-              builder.buildCompilationUnit(partSource, partUnit);
+              builder.buildCompilationUnit(partSource, partUnit, librarySource);
           part.uriOffset = partUri.offset;
           part.uriEnd = partUri.end;
           part.uri = partDirective.uriContent;
@@ -7197,7 +7203,7 @@
           String partLibraryName =
               _getPartLibraryName(partSource, partUnit, directivesToResolve);
           if (partLibraryName == null) {
-            _errorListener.onError(new AnalysisError.con2(librarySource,
+            _errorListener.onError(new AnalysisError(librarySource,
                 partUri.offset, partUri.length,
                 CompileTimeErrorCode.PART_OF_NON_PART, [partUri.toSource()]));
           } else if (libraryNameNode == null) {
@@ -7206,7 +7212,7 @@
             // inferred name of the library and present it in a quick-fix.
             // partLibraryNames.add(partLibraryName);
           } else if (libraryNameNode.name != partLibraryName) {
-            _errorListener.onError(new AnalysisError.con2(librarySource,
+            _errorListener.onError(new AnalysisError(librarySource,
                 partUri.offset, partUri.length,
                 StaticWarningCode.PART_OF_DIFFERENT_LIBRARY, [
               libraryNameNode.name,
@@ -7222,7 +7228,7 @@
       }
     }
     if (hasPartDirective && libraryNameNode == null) {
-      _errorListener.onError(new AnalysisError.con1(librarySource,
+      _errorListener.onError(new AnalysisError(librarySource, 0, 0,
           ResolverErrorCode.MISSING_LIBRARY_DIRECTIVE_WITH_PART));
     }
     //
@@ -7257,8 +7263,9 @@
     CompilationUnitBuilder builder = new CompilationUnitBuilder();
     Source librarySource = library.librarySource;
     CompilationUnit definingCompilationUnit = library.definingCompilationUnit;
-    CompilationUnitElementImpl definingCompilationUnitElement =
-        builder.buildCompilationUnit(librarySource, definingCompilationUnit);
+    CompilationUnitElementImpl definingCompilationUnitElement = builder
+        .buildCompilationUnit(
+            librarySource, definingCompilationUnit, librarySource);
     NodeList<Directive> directives = definingCompilationUnit.directives;
     LibraryIdentifier libraryNameNode = null;
     bool hasPartDirective = false;
@@ -7288,8 +7295,8 @@
           hasPartDirective = true;
           CompilationUnit partUnit = library.getAST(partSource);
           if (partUnit != null) {
-            CompilationUnitElementImpl part =
-                builder.buildCompilationUnit(partSource, partUnit);
+            CompilationUnitElementImpl part = builder.buildCompilationUnit(
+                partSource, partUnit, librarySource);
             part.uriOffset = partUri.offset;
             part.uriEnd = partUri.end;
             part.uri = partDirective.uriContent;
@@ -7300,7 +7307,7 @@
             String partLibraryName =
                 _getPartLibraryName(partSource, partUnit, directivesToResolve);
             if (partLibraryName == null) {
-              _errorListener.onError(new AnalysisError.con2(librarySource,
+              _errorListener.onError(new AnalysisError(librarySource,
                   partUri.offset, partUri.length,
                   CompileTimeErrorCode.PART_OF_NON_PART, [partUri.toSource()]));
             } else if (libraryNameNode == null) {
@@ -7309,7 +7316,7 @@
               // inferred name of the library and present it in a quick-fix.
               // partLibraryNames.add(partLibraryName);
             } else if (libraryNameNode.name != partLibraryName) {
-              _errorListener.onError(new AnalysisError.con2(librarySource,
+              _errorListener.onError(new AnalysisError(librarySource,
                   partUri.offset, partUri.length,
                   StaticWarningCode.PART_OF_DIFFERENT_LIBRARY, [
                 libraryNameNode.name,
@@ -7326,7 +7333,7 @@
       }
     }
     if (hasPartDirective && libraryNameNode == null) {
-      _errorListener.onError(new AnalysisError.con1(librarySource,
+      _errorListener.onError(new AnalysisError(librarySource, 0, 0,
           ResolverErrorCode.MISSING_LIBRARY_DIRECTIVE_WITH_PART));
     }
     //
@@ -7519,7 +7526,7 @@
         libraryNames[i] = _getLibraryName(conflictingMembers[i]);
       }
       libraryNames.sort();
-      errorListener.onError(new AnalysisError.con2(getSource(identifier),
+      errorListener.onError(new AnalysisError(getSource(identifier),
           identifier.offset, identifier.length,
           StaticWarningCode.AMBIGUOUS_IMPORT, [
         foundEltName,
@@ -7621,7 +7628,7 @@
     if (sdkElement != null && nonSdkElements.length > 0) {
       String sdkLibName = _getLibraryName(sdkElement);
       String otherLibName = _getLibraryName(nonSdkElements[0]);
-      errorListener.onError(new AnalysisError.con2(getSource(identifier),
+      errorListener.onError(new AnalysisError(getSource(identifier),
           identifier.offset, identifier.length,
           StaticWarningCode.CONFLICTING_DART_IMPORT, [
         name,
@@ -8084,9 +8091,9 @@
                 ErrorCode errorCode = (importElement.isDeferred
                     ? StaticWarningCode.IMPORT_OF_NON_LIBRARY
                     : CompileTimeErrorCode.IMPORT_OF_NON_LIBRARY);
-                _errorListener.onError(new AnalysisError.con2(
-                    library.librarySource, uriLiteral.offset, uriLiteral.length,
-                    errorCode, [uriLiteral.toSource()]));
+                _errorListener.onError(new AnalysisError(library.librarySource,
+                    uriLiteral.offset, uriLiteral.length, errorCode,
+                    [uriLiteral.toSource()]));
               }
             }
           }
@@ -8114,8 +8121,8 @@
               exports.add(exportElement);
               if (analysisContext.computeKindOf(exportedSource) !=
                   SourceKind.LIBRARY) {
-                _errorListener.onError(new AnalysisError.con2(
-                    library.librarySource, uriLiteral.offset, uriLiteral.length,
+                _errorListener.onError(new AnalysisError(library.librarySource,
+                    uriLiteral.offset, uriLiteral.length,
                     CompileTimeErrorCode.EXPORT_OF_NON_LIBRARY,
                     [uriLiteral.toSource()]));
               }
@@ -8446,13 +8453,13 @@
   void _performConstantEvaluation() {
     PerformanceStatistics.resolve.makeCurrentWhile(() {
       ConstantValueComputer computer = new ConstantValueComputer(
-          _typeProvider, analysisContext.declaredVariables);
+          analysisContext, _typeProvider, analysisContext.declaredVariables);
       for (Library library in _librariesInCycles) {
         for (Source source in library.compilationUnitSources) {
           try {
             CompilationUnit unit = library.getAST(source);
             if (unit != null) {
-              computer.add(unit);
+              computer.add(unit, source, library.librarySource);
             }
           } on AnalysisException catch (exception, stackTrace) {
             AnalysisEngine.instance.logger.logError(
@@ -8471,7 +8478,8 @@
             ErrorReporter errorReporter =
                 new ErrorReporter(_errorListener, source);
             ConstantVerifier constantVerifier = new ConstantVerifier(
-                errorReporter, library.libraryElement, _typeProvider);
+                errorReporter, library.libraryElement, _typeProvider,
+                analysisContext.declaredVariables);
             unit.accept(constantVerifier);
           } on AnalysisException catch (exception, stackTrace) {
             AnalysisEngine.instance.logger.logError(
@@ -8771,9 +8779,9 @@
                 ErrorCode errorCode = (importElement.isDeferred
                     ? StaticWarningCode.IMPORT_OF_NON_LIBRARY
                     : CompileTimeErrorCode.IMPORT_OF_NON_LIBRARY);
-                _errorListener.onError(new AnalysisError.con2(
-                    library.librarySource, uriLiteral.offset, uriLiteral.length,
-                    errorCode, [uriLiteral.toSource()]));
+                _errorListener.onError(new AnalysisError(library.librarySource,
+                    uriLiteral.offset, uriLiteral.length, errorCode,
+                    [uriLiteral.toSource()]));
               }
             }
           }
@@ -8804,8 +8812,8 @@
               exports.add(exportElement);
               if (analysisContext.computeKindOf(exportedSource) !=
                   SourceKind.LIBRARY) {
-                _errorListener.onError(new AnalysisError.con2(
-                    library.librarySource, uriLiteral.offset, uriLiteral.length,
+                _errorListener.onError(new AnalysisError(library.librarySource,
+                    uriLiteral.offset, uriLiteral.length,
                     CompileTimeErrorCode.EXPORT_OF_NON_LIBRARY,
                     [uriLiteral.toSource()]));
               }
@@ -8975,13 +8983,13 @@
   void _performConstantEvaluation() {
     PerformanceStatistics.resolve.makeCurrentWhile(() {
       ConstantValueComputer computer = new ConstantValueComputer(
-          _typeProvider, analysisContext.declaredVariables);
+          analysisContext, _typeProvider, analysisContext.declaredVariables);
       for (ResolvableLibrary library in _librariesInCycle) {
         for (ResolvableCompilationUnit unit
             in library.resolvableCompilationUnits) {
           CompilationUnit ast = unit.compilationUnit;
           if (ast != null) {
-            computer.add(ast);
+            computer.add(ast, unit.source, library.librarySource);
           }
         }
       }
@@ -8995,7 +9003,8 @@
           ErrorReporter errorReporter =
               new ErrorReporter(_errorListener, unit.source);
           ConstantVerifier constantVerifier = new ConstantVerifier(
-              errorReporter, library.libraryElement, _typeProvider);
+              errorReporter, library.libraryElement, _typeProvider,
+              analysisContext.declaredVariables);
           ast.accept(constantVerifier);
         }
       }
@@ -9129,7 +9138,7 @@
           offset = accessor.variable.nameOffset;
         }
       }
-      return new AnalysisError.con2(duplicate.source, offset,
+      return new AnalysisError(duplicate.source, offset,
           duplicate.displayName.length,
           CompileTimeErrorCode.PREFIX_COLLIDES_WITH_TOP_LEVEL_MEMBER,
           [existing.displayName]);
@@ -9181,8 +9190,8 @@
 }
 
 /**
- * This class is used to replace uses of `HashMap<String, ExecutableElement>` which are not as
- * performant as this class.
+ * This class is used to replace uses of `HashMap<String, ExecutableElement>`
+ * which are not as performant as this class.
  */
 class MemberMap {
   /**
@@ -9201,15 +9210,19 @@
   List<ExecutableElement> _values;
 
   /**
-   * Default constructor.
+   * Initialize a newly created member map to have the given [initialCapacity].
+   * The map will grow if needed.
    */
-  MemberMap() : this.con1(10);
+  MemberMap([int initialCapacity = 10]) {
+    _initArrays(initialCapacity);
+  }
 
   /**
    * This constructor takes an initial capacity of the map.
    *
    * @param initialCapacity the initial capacity
    */
+  @deprecated // Use new MemberMap(initialCapacity)
   MemberMap.con1(int initialCapacity) {
     _initArrays(initialCapacity);
   }
@@ -9217,6 +9230,7 @@
   /**
    * Copy constructor.
    */
+  @deprecated // Use new MemberMap.from(memberMap)
   MemberMap.con2(MemberMap memberMap) {
     _initArrays(memberMap._size + 5);
     for (int i = 0; i < memberMap._size; i++) {
@@ -9227,6 +9241,19 @@
   }
 
   /**
+   * Initialize a newly created member map to contain the same members as the
+   * given [memberMap].
+   */
+  MemberMap.from(MemberMap memberMap) {
+    _initArrays(memberMap._size + 5);
+    for (int i = 0; i < memberMap._size; i++) {
+      _keys[i] = memberMap._keys[i];
+      _values[i] = memberMap._values[i];
+    }
+    _size = memberMap._size;
+  }
+
+  /**
    * The size of the map.
    *
    * @return the size of the map.
@@ -10910,6 +10937,22 @@
   }
 
   @override
+  Object visitDefaultFormalParameter(DefaultFormalParameter node) {
+    super.visitDefaultFormalParameter(node);
+    FormalParameterList parent = node.parent;
+    AstNode grandparent = parent.parent;
+    if (grandparent is ConstructorDeclaration &&
+        grandparent.constKeyword != null) {
+      // For const constructors, we need to clone the ASTs for default formal
+      // parameters, so that we can use them during constant evaluation.
+      ParameterElement element = node.element;
+      (element as ConstVariableElement).constantInitializer =
+          new ConstantAstCloner().cloneNode(node.defaultValue);
+    }
+    return null;
+  }
+
+  @override
   Object visitDoStatement(DoStatement node) {
     _overrideManager.enterScope();
     try {
@@ -11830,7 +11873,7 @@
     // TODO(jwren) There are 4 error codes for duplicate, but only 1 is being
     // generated.
     Source source = duplicate.source;
-    return new AnalysisError.con2(source, duplicate.nameOffset,
+    return new AnalysisError(source, duplicate.nameOffset,
         duplicate.displayName.length, CompileTimeErrorCode.DUPLICATE_DEFINITION,
         [existing.displayName]);
   }
@@ -12076,7 +12119,7 @@
    */
   void reportErrorForNode(ErrorCode errorCode, AstNode node,
       [List<Object> arguments]) {
-    _errorListener.onError(new AnalysisError.con2(
+    _errorListener.onError(new AnalysisError(
         source, node.offset, node.length, errorCode, arguments));
   }
 
@@ -12091,7 +12134,7 @@
   void reportErrorForOffset(ErrorCode errorCode, int offset, int length,
       [List<Object> arguments]) {
     _errorListener.onError(
-        new AnalysisError.con2(source, offset, length, errorCode, arguments));
+        new AnalysisError(source, offset, length, errorCode, arguments));
   }
 
   /**
@@ -12103,7 +12146,7 @@
    */
   void reportErrorForToken(ErrorCode errorCode, sc.Token token,
       [List<Object> arguments]) {
-    _errorListener.onError(new AnalysisError.con2(
+    _errorListener.onError(new AnalysisError(
         source, token.offset, token.length, errorCode, arguments));
   }
 
@@ -13897,7 +13940,7 @@
     } else {
       ClassElement definingClass = element.enclosingElement as ClassElement;
       element.returnType = definingClass.type;
-      FunctionTypeImpl type = new FunctionTypeImpl.con1(element);
+      FunctionTypeImpl type = new FunctionTypeImpl(element);
       type.typeArguments = definingClass.type.typeArguments;
       element.type = type;
     }
@@ -13966,7 +14009,7 @@
           new CaughtException(new AnalysisException(), null));
     }
     element.returnType = _computeReturnType(node.returnType);
-    FunctionTypeImpl type = new FunctionTypeImpl.con1(element);
+    FunctionTypeImpl type = new FunctionTypeImpl(element);
     ClassElement definingClass =
         element.getAncestor((element) => element is ClassElement);
     if (definingClass != null) {
@@ -14023,7 +14066,7 @@
           new CaughtException(new AnalysisException(), null));
     }
     element.returnType = _computeReturnType(node.returnType);
-    FunctionTypeImpl type = new FunctionTypeImpl.con1(element);
+    FunctionTypeImpl type = new FunctionTypeImpl(element);
     ClassElement definingClass =
         element.getAncestor((element) => element is ClassElement);
     if (definingClass != null) {
@@ -14379,7 +14422,7 @@
         PropertyAccessorElementImpl getter =
             variableElement.getter as PropertyAccessorElementImpl;
         getter.returnType = declaredType;
-        FunctionTypeImpl getterType = new FunctionTypeImpl.con1(getter);
+        FunctionTypeImpl getterType = new FunctionTypeImpl(getter);
         ClassElement definingClass =
             element.getAncestor((element) => element is ClassElement);
         if (definingClass != null) {
@@ -14394,7 +14437,7 @@
             (parameters[0] as ParameterElementImpl).type = declaredType;
           }
           setter.returnType = VoidTypeImpl.instance;
-          FunctionTypeImpl setterType = new FunctionTypeImpl.con1(setter);
+          FunctionTypeImpl setterType = new FunctionTypeImpl(setter);
           if (definingClass != null) {
             setterType.typeArguments = definingClass.type.typeArguments;
           }
@@ -14815,7 +14858,7 @@
     // compilation unit element.
     aliasElement.enclosingElement =
         element.getAncestor((element) => element is CompilationUnitElement);
-    FunctionTypeImpl type = new FunctionTypeImpl.con2(aliasElement);
+    FunctionTypeImpl type = new FunctionTypeImpl.forTypedef(aliasElement);
     ClassElement definingClass =
         element.getAncestor((element) => element is ClassElement);
     if (definingClass != null) {
@@ -15019,7 +15062,7 @@
   void _reportErrorForElement(
       ErrorCode errorCode, Element element, List<Object> arguments) {
     if (element != null) {
-      _errorListener.onError(new AnalysisError.con2(element.source,
+      _errorListener.onError(new AnalysisError(element.source,
           element.nameOffset, element.displayName.length, errorCode,
           arguments));
     }
@@ -15274,9 +15317,11 @@
 
   List<ParameterElement> parameterElements;
 
-  _ConstantVerifier_validateInitializerExpression(TypeProvider arg0,
-      ErrorReporter arg1, this.verifier, this.parameterElements)
-      : super.con1(arg0, arg1);
+  _ConstantVerifier_validateInitializerExpression(TypeProvider typeProvider,
+      ErrorReporter errorReporter, this.verifier, this.parameterElements,
+      DeclaredVariables declaredVariables)
+      : super(new ConstantEvaluationEngine(typeProvider, declaredVariables),
+          errorReporter);
 
   @override
   DartObjectImpl visitSimpleIdentifier(SimpleIdentifier node) {
diff --git a/pkg/analyzer/lib/src/generated/scanner.dart b/pkg/analyzer/lib/src/generated/scanner.dart
index d7bc236..f79401e 100644
--- a/pkg/analyzer/lib/src/generated/scanner.dart
+++ b/pkg/analyzer/lib/src/generated/scanner.dart
@@ -1163,8 +1163,8 @@
    * needed to complete the error message
    */
   void _reportError(ScannerErrorCode errorCode, [List<Object> arguments]) {
-    _errorListener.onError(new AnalysisError.con2(
-        source, _reader.offset, 1, errorCode, arguments));
+    _errorListener.onError(
+        new AnalysisError(source, _reader.offset, 1, errorCode, arguments));
   }
 
   int _select(int choice, TokenType yesType, TokenType noType) {
diff --git a/pkg/analyzer/lib/src/generated/sdk_io.dart b/pkg/analyzer/lib/src/generated/sdk_io.dart
index 3a9f239..cd9c959 100644
--- a/pkg/analyzer/lib/src/generated/sdk_io.dart
+++ b/pkg/analyzer/lib/src/generated/sdk_io.dart
@@ -397,7 +397,7 @@
       if (filePath.replaceAll('\\', '/') == libraryPath) {
         String path = library.shortName;
         try {
-          return new FileBasedSource.con2(parseUriWithException(path), file);
+          return new FileBasedSource(file, parseUriWithException(path));
         } on URISyntaxException catch (exception, stackTrace) {
           AnalysisEngine.instance.logger.logInformation(
               "Failed to create URI: $path",
@@ -410,7 +410,7 @@
         String path =
             "${library.shortName}/${filePath.substring(libraryPath.length + 1)}";
         try {
-          return new FileBasedSource.con2(parseUriWithException(path), file);
+          return new FileBasedSource(file, parseUriWithException(path));
         } on URISyntaxException catch (exception, stackTrace) {
           AnalysisEngine.instance.logger.logInformation(
               "Failed to create URI: $path",
@@ -494,7 +494,7 @@
         file = file.getParentFile();
         file = new JavaFile.relative(file, relativePath);
       }
-      return new FileBasedSource.con2(parseUriWithException(dartUri), file);
+      return new FileBasedSource(file, parseUriWithException(dartUri));
     } on URISyntaxException {
       return null;
     }
@@ -548,7 +548,7 @@
    * of the file is already known to be [libraryFileContents].
    */
   LibraryMap readFromFile(JavaFile file, String libraryFileContents) =>
-      readFromSource(new FileBasedSource.con1(file), libraryFileContents);
+      readFromSource(new FileBasedSource(file), libraryFileContents);
 
   /**
    * Return the library map read from the given [source], given that the content
diff --git a/pkg/analyzer/lib/src/generated/source.dart b/pkg/analyzer/lib/src/generated/source.dart
index d0b5dde..8e42379 100644
--- a/pkg/analyzer/lib/src/generated/source.dart
+++ b/pkg/analyzer/lib/src/generated/source.dart
@@ -99,6 +99,24 @@
   }
 }
 
+class CustomUriResolver extends UriResolver {
+  final Map<String, String> _urlMappings;
+
+  CustomUriResolver(this._urlMappings);
+
+  @override
+  Source resolveAbsolute(Uri uri) {
+    String mapping = _urlMappings[uri.toString()];
+    if (mapping == null) return null;
+
+    Uri fileUri = new Uri.file(mapping);
+    if (!fileUri.isAbsolute) return null;
+
+    JavaFile javaFile = new JavaFile.fromUri(fileUri);
+    return new FileBasedSource(javaFile);
+  }
+}
+
 /**
  * Instances of the class `DartUriResolver` resolve `dart` URI's.
  */
@@ -159,24 +177,6 @@
   static bool isDartUri(Uri uri) => DART_SCHEME == uri.scheme;
 }
 
-class CustomUriResolver extends UriResolver {
-  final Map<String, String> _urlMappings;
-
-  CustomUriResolver(this._urlMappings);
-
-  @override
-  Source resolveAbsolute(Uri uri) {
-    String mapping = _urlMappings[uri.toString()];
-    if (mapping == null) return null;
-
-    Uri fileUri = new Uri.file(mapping);
-    if (!fileUri.isAbsolute) return null;
-
-    JavaFile javaFile = new JavaFile.fromUri(fileUri);
-    return new FileBasedSource.con1(javaFile);
-  }
-}
-
 /**
  * Instances of the class `LineInfo` encapsulate information about line and column information
  * within a source file.
@@ -399,7 +399,13 @@
   /**
    * An empty list of sources.
    */
-  static const List<Source> EMPTY_ARRAY = const <Source>[];
+  @deprecated // Use Source.EMPTY_LIST
+  static const List<Source> EMPTY_ARRAY = EMPTY_LIST;
+
+  /**
+   * An empty list of sources.
+   */
+  static const List<Source> EMPTY_LIST = const <Source>[];
 
   /**
    * Get the contents and timestamp of this source.
@@ -422,9 +428,6 @@
    */
   String get encoding;
 
-  @override
-  Source get source => this;
-
   /**
    * Return the full (long) version of the name that can be displayed to the user to denote this
    * source. For example, for a source representing a file this would typically be the absolute path
@@ -472,6 +475,9 @@
    */
   String get shortName;
 
+  @override
+  Source get source => this;
+
   /**
    * Return the URI from which this source was originally derived.
    *
diff --git a/pkg/analyzer/lib/src/generated/source_io.dart b/pkg/analyzer/lib/src/generated/source_io.dart
index e885cd8f..1c60f5d 100644
--- a/pkg/analyzer/lib/src/generated/source_io.dart
+++ b/pkg/analyzer/lib/src/generated/source_io.dart
@@ -128,11 +128,24 @@
   String _encoding;
 
   /**
+   * Initialize a newly created source object to represent the given [file]. If
+   * a [uri] is given, then it will be used as the URI from which the source was
+   * derived, otherwise a `file:` URI will be created based on the [file].
+   */
+  FileBasedSource(JavaFile file, [Uri uri])
+      : this.uri = (uri == null ? file.toURI() : uri),
+        this.file = file,
+        id = _idTable.putIfAbsent(
+            '${uri == null ? file.toURI() : uri}@${file.getPath()}',
+            () => _idTable.length);
+
+  /**
    * Initialize a newly created source object.
    *
    * @param file the file represented by this source
    */
-  FileBasedSource.con1(JavaFile file) : this.con2(file.toURI(), file);
+  @deprecated // Use new FileBasedSource(file)
+  FileBasedSource.con1(JavaFile file) : this(file);
 
   /**
    * Initialize a newly created source object.
@@ -140,6 +153,7 @@
    * @param file the file represented by this source
    * @param uri the URI from which this source was originally derived
    */
+  @deprecated // Use new FileBasedSource(file, uri)
   FileBasedSource.con2(Uri uri, JavaFile file)
       : uri = uri,
         file = file,
@@ -266,7 +280,7 @@
     if (!isFileUri(uri)) {
       return null;
     }
-    return new FileBasedSource.con2(uri, new JavaFile.fromUri(uri));
+    return new FileBasedSource(new JavaFile.fromUri(uri), uri);
   }
 
   /**
@@ -437,11 +451,11 @@
         if (_isSelfReference(packagesDirectory, canonicalFile)) {
           uri = canonicalFile.toURI();
         }
-        return new FileBasedSource.con2(uri, canonicalFile);
+        return new FileBasedSource(canonicalFile, uri);
       }
     }
-    return new FileBasedSource.con2(
-        uri, getCanonicalFile(_packagesDirectories[0], pkgName, relPath));
+    return new FileBasedSource(
+        getCanonicalFile(_packagesDirectories[0], pkgName, relPath), uri);
   }
 
   @override
@@ -523,7 +537,7 @@
       for (JavaFile dir in _relativeDirectories) {
         JavaFile file = new JavaFile.relative(dir, filePath);
         if (file.exists()) {
-          return new FileBasedSource.con2(uri, file);
+          return new FileBasedSource(file, uri);
         }
       }
     }
diff --git a/pkg/analyzer/lib/src/generated/static_type_analyzer.dart b/pkg/analyzer/lib/src/generated/static_type_analyzer.dart
index b853626..f69d2a4 100644
--- a/pkg/analyzer/lib/src/generated/static_type_analyzer.dart
+++ b/pkg/analyzer/lib/src/generated/static_type_analyzer.dart
@@ -622,8 +622,7 @@
                   newFutureType = returnType as InterfaceTypeImpl;
                 } else {
                   InterfaceType futureType = targetType as InterfaceType;
-                  newFutureType =
-                      new InterfaceTypeImpl.con1(futureType.element);
+                  newFutureType = new InterfaceTypeImpl(futureType.element);
                   newFutureType.typeArguments = <DartType>[returnType];
                 }
                 // set the 'then' invocation type
diff --git a/pkg/analyzer/lib/src/generated/testing/ast_factory.dart b/pkg/analyzer/lib/src/generated/testing/ast_factory.dart
index 00ee216..6125a9c 100644
--- a/pkg/analyzer/lib/src/generated/testing/ast_factory.dart
+++ b/pkg/analyzer/lib/src/generated/testing/ast_factory.dart
@@ -368,15 +368,16 @@
       fieldFormalParameter(null, null, identifier);
 
   static ForEachStatement forEachStatement(DeclaredIdentifier loopVariable,
-      Expression iterator, Statement body) => new ForEachStatement.con1(null,
-      TokenFactory.tokenFromKeyword(Keyword.FOR),
-      TokenFactory.tokenFromType(TokenType.OPEN_PAREN), loopVariable,
-      TokenFactory.tokenFromKeyword(Keyword.IN), iterator,
-      TokenFactory.tokenFromType(TokenType.CLOSE_PAREN), body);
+          Expression iterator, Statement body) =>
+      new ForEachStatement.withDeclaration(null,
+          TokenFactory.tokenFromKeyword(Keyword.FOR),
+          TokenFactory.tokenFromType(TokenType.OPEN_PAREN), loopVariable,
+          TokenFactory.tokenFromKeyword(Keyword.IN), iterator,
+          TokenFactory.tokenFromType(TokenType.CLOSE_PAREN), body);
 
   static ForEachStatement forEachStatement2(
           SimpleIdentifier identifier, Expression iterator, Statement body) =>
-      new ForEachStatement.con2(null,
+      new ForEachStatement.withReference(null,
           TokenFactory.tokenFromKeyword(Keyword.FOR),
           TokenFactory.tokenFromType(TokenType.OPEN_PAREN), identifier,
           TokenFactory.tokenFromKeyword(Keyword.IN), iterator,
diff --git a/pkg/analyzer/lib/src/generated/testing/element_factory.dart b/pkg/analyzer/lib/src/generated/testing/element_factory.dart
index 497990c..29d6bbb 100644
--- a/pkg/analyzer/lib/src/generated/testing/element_factory.dart
+++ b/pkg/analyzer/lib/src/generated/testing/element_factory.dart
@@ -43,7 +43,7 @@
       [List<String> parameterNames]) {
     ClassElementImpl element = new ClassElementImpl(typeName, 0);
     element.supertype = superclassType;
-    InterfaceTypeImpl type = new InterfaceTypeImpl.con1(element);
+    InterfaceTypeImpl type = new InterfaceTypeImpl(element);
     element.type = type;
     if (parameterNames != null) {
       int count = parameterNames.length;
@@ -82,10 +82,15 @@
           [List<String> parameterNames]) =>
       classTypeAlias(typeName, objectType, parameterNames);
 
-  static CompilationUnitElementImpl compilationUnit(String fileName) {
+  static CompilationUnitElementImpl compilationUnit(String fileName,
+      [Source librarySource]) {
     Source source = new NonExistingSource(fileName, UriKind.FILE_URI);
     CompilationUnitElementImpl unit = new CompilationUnitElementImpl(fileName);
     unit.source = source;
+    if (librarySource == null) {
+      librarySource = source;
+    }
+    unit.librarySource = librarySource;
     return unit;
   }
 
@@ -114,7 +119,7 @@
       constructor.parameters = <ParameterElement>[];
     }
     constructor.returnType = type;
-    FunctionTypeImpl constructorType = new FunctionTypeImpl.con1(constructor);
+    FunctionTypeImpl constructorType = new FunctionTypeImpl(constructor);
     constructor.type = constructorType;
     return constructor;
   }
@@ -131,7 +136,7 @@
     // Build the enum.
     //
     ClassElementImpl enumElement = new ClassElementImpl(enumName, -1);
-    InterfaceTypeImpl enumType = new InterfaceTypeImpl.con1(enumElement);
+    InterfaceTypeImpl enumType = new InterfaceTypeImpl(enumElement);
     enumElement.type = enumType;
     enumElement.supertype = objectType;
     enumElement.enum2 = true;
@@ -164,7 +169,7 @@
       for (int i = 0; i < constantCount; i++) {
         String constantName = constantNames[i];
         FieldElementImpl constantElement =
-            new ConstFieldElementImpl.con2(constantName, -1);
+            new ConstFieldElementImpl(constantName, -1);
         constantElement.static = true;
         constantElement.const3 = true;
         constantElement.type = enumType;
@@ -175,7 +180,7 @@
             new DartObjectImpl(stringType, new StringState(constantName));
         DartObjectImpl value =
             new DartObjectImpl(enumType, new GenericState(fieldMap));
-        constantElement.evaluationResult = new EvaluationResultImpl.con1(value);
+        constantElement.evaluationResult = new EvaluationResultImpl(value);
         fields.add(constantElement);
       }
     }
@@ -209,7 +214,7 @@
     getter.variable = field;
     getter.returnType = type;
     field.getter = getter;
-    FunctionTypeImpl getterType = new FunctionTypeImpl.con1(getter);
+    FunctionTypeImpl getterType = new FunctionTypeImpl(getter);
     getter.type = getterType;
     if (!isConst && !isFinal) {
       PropertyAccessorElementImpl setter =
@@ -220,7 +225,7 @@
       setter.parameters =
           <ParameterElement>[requiredParameter2("_$name", type)];
       setter.returnType = VoidTypeImpl.instance;
-      setter.type = new FunctionTypeImpl.con1(setter);
+      setter.type = new FunctionTypeImpl(setter);
       field.setter = setter;
     }
     return field;
@@ -242,7 +247,7 @@
     // We don't create parameter elements because we don't have parameter names
     FunctionElementImpl functionElement =
         new FunctionElementImpl(functionName, 0);
-    FunctionTypeImpl functionType = new FunctionTypeImpl.con1(functionElement);
+    FunctionTypeImpl functionType = new FunctionTypeImpl(functionElement);
     functionElement.type = functionType;
     // return type
     if (returnElement == null) {
@@ -277,7 +282,7 @@
       List<String> names, List<ClassElement> namedParameters) {
     FunctionElementImpl functionElement =
         new FunctionElementImpl(functionName, 0);
-    FunctionTypeImpl functionType = new FunctionTypeImpl.con1(functionElement);
+    FunctionTypeImpl functionType = new FunctionTypeImpl(functionElement);
     functionElement.type = functionType;
     // parameters
     int normalCount = normalParameters == null ? 0 : normalParameters.length;
@@ -334,7 +339,7 @@
     functionElement.returnType =
         returnType == null ? VoidTypeImpl.instance : returnType;
     functionElement.parameters = parameters;
-    FunctionTypeImpl functionType = new FunctionTypeImpl.con1(functionElement);
+    FunctionTypeImpl functionType = new FunctionTypeImpl(functionElement);
     functionElement.type = functionType;
     return functionElement;
   }
@@ -351,7 +356,7 @@
     getter.variable = field;
     getter.returnType = type;
     field.getter = getter;
-    FunctionTypeImpl getterType = new FunctionTypeImpl.con1(getter);
+    FunctionTypeImpl getterType = new FunctionTypeImpl(getter);
     getter.type = getterType;
     return getter;
   }
@@ -406,7 +411,7 @@
       method.parameters = parameters;
     }
     method.returnType = returnType;
-    FunctionTypeImpl methodType = new FunctionTypeImpl.con1(method);
+    FunctionTypeImpl methodType = new FunctionTypeImpl(method);
     method.type = methodType;
     return method;
   }
@@ -417,7 +422,7 @@
     MethodElementImpl method = new MethodElementImpl(methodName, 0);
     method.parameters = parameters;
     method.returnType = returnType;
-    FunctionTypeImpl methodType = new FunctionTypeImpl.con1(method);
+    FunctionTypeImpl methodType = new FunctionTypeImpl(method);
     methodType.typeArguments = typeArguments;
     method.type = methodType;
     return method;
@@ -477,7 +482,7 @@
     getter.variable = field;
     getter.returnType = type;
     field.getter = getter;
-    FunctionTypeImpl getterType = new FunctionTypeImpl.con1(getter);
+    FunctionTypeImpl getterType = new FunctionTypeImpl(getter);
     getter.type = getterType;
     ParameterElementImpl parameter = requiredParameter2("a", type);
     PropertyAccessorElementImpl setter =
@@ -487,7 +492,7 @@
     setter.variable = field;
     setter.parameters = <ParameterElement>[parameter];
     setter.returnType = VoidTypeImpl.instance;
-    setter.type = new FunctionTypeImpl.con1(setter);
+    setter.type = new FunctionTypeImpl(setter);
     field.setter = setter;
     return setter;
   }
@@ -512,7 +517,7 @@
     getter.variable = variable;
     getter.returnType = type;
     variable.getter = getter;
-    FunctionTypeImpl getterType = new FunctionTypeImpl.con1(getter);
+    FunctionTypeImpl getterType = new FunctionTypeImpl(getter);
     getter.type = getterType;
     if (!isConst && !isFinal) {
       PropertyAccessorElementImpl setter =
@@ -524,7 +529,7 @@
       setter.parameters =
           <ParameterElement>[requiredParameter2("_$name", type)];
       setter.returnType = VoidTypeImpl.instance;
-      setter.type = new FunctionTypeImpl.con1(setter);
+      setter.type = new FunctionTypeImpl(setter);
       variable.setter = setter;
     }
     return variable;
diff --git a/pkg/analyzer/lib/src/plugin/engine_plugin.dart b/pkg/analyzer/lib/src/plugin/engine_plugin.dart
index 9cd0577..bed1191 100644
--- a/pkg/analyzer/lib/src/plugin/engine_plugin.dart
+++ b/pkg/analyzer/lib/src/plugin/engine_plugin.dart
@@ -72,9 +72,16 @@
     registerExtension(taskId, BuildPublicNamespaceTask.DESCRIPTOR);
     registerExtension(taskId, BuildSourceClosuresTask.DESCRIPTOR);
     registerExtension(taskId, BuildTypeProviderTask.DESCRIPTOR);
+    registerExtension(taskId, ComputeConstantDependenciesTask.DESCRIPTOR);
+    registerExtension(taskId, ComputeConstantValueTask.DESCRIPTOR);
+    registerExtension(taskId, ContainingLibrariesTask.DESCRIPTOR);
+    registerExtension(taskId, DartErrorsTask.DESCRIPTOR);
+    registerExtension(taskId, EvaluateUnitConstantsTask.DESCRIPTOR);
     registerExtension(taskId, GatherUsedImportedElementsTask.DESCRIPTOR);
     registerExtension(taskId, GatherUsedLocalElementsTask.DESCRIPTOR);
     registerExtension(taskId, GenerateHintsTask.DESCRIPTOR);
+    registerExtension(taskId, LibraryErrorsReadyTask.DESCRIPTOR);
+    registerExtension(taskId, LibraryUnitErrorsTask.DESCRIPTOR);
     registerExtension(taskId, ParseDartTask.DESCRIPTOR);
     registerExtension(taskId, ResolveLibraryTypeNamesTask.DESCRIPTOR);
     registerExtension(taskId, ResolveReferencesTask.DESCRIPTOR);
diff --git a/pkg/analyzer/lib/src/task/dart.dart b/pkg/analyzer/lib/src/task/dart.dart
index 14f0d95..62d68b5 100644
--- a/pkg/analyzer/lib/src/task/dart.dart
+++ b/pkg/analyzer/lib/src/task/dart.dart
@@ -8,6 +8,7 @@
 import 'dart:math' as math;
 
 import 'package:analyzer/src/generated/ast.dart';
+import 'package:analyzer/src/generated/constant.dart';
 import 'package:analyzer/src/generated/element.dart';
 import 'package:analyzer/src/generated/engine.dart' hide AnalysisTask;
 import 'package:analyzer/src/generated/error.dart';
@@ -19,66 +20,108 @@
 import 'package:analyzer/src/generated/sdk.dart';
 import 'package:analyzer/src/generated/source.dart';
 import 'package:analyzer/src/task/general.dart';
+import 'package:analyzer/src/task/model.dart';
 import 'package:analyzer/task/dart.dart';
 import 'package:analyzer/task/general.dart';
 import 'package:analyzer/task/model.dart';
 
 /**
+ * The [ResultCachingPolicy] for ASTs.
+ */
+const ResultCachingPolicy AST_CACHING_POLICY =
+    const SimpleResultCachingPolicy(256, 64);
+
+/**
  * The errors produced while resolving a library directives.
  *
  * The list will be empty if there were no errors, but will not be `null`.
  *
- * The result is only available for targets representing a Dart library.
+ * The result is only available for [Source]s representing a library.
  */
-final ResultDescriptor<List<AnalysisError>> BUILD_DIRECTIVES_ERRORS =
-    new ResultDescriptor<List<AnalysisError>>(
-        'BUILD_DIRECTIVES_ERRORS', AnalysisError.NO_ERRORS,
-        contributesTo: DART_ERRORS);
+final ListResultDescriptor<AnalysisError> BUILD_DIRECTIVES_ERRORS =
+    new ListResultDescriptor<AnalysisError>(
+        'BUILD_DIRECTIVES_ERRORS', AnalysisError.NO_ERRORS);
 
 /**
  * The errors produced while building function type aliases.
  *
  * The list will be empty if there were no errors, but will not be `null`.
  *
- * The result is only available for targets representing a Dart library.
+ * The result is only available for [LibrarySpecificUnit]s.
  */
-final ResultDescriptor<List<AnalysisError>> BUILD_FUNCTION_TYPE_ALIASES_ERRORS =
-    new ResultDescriptor<List<AnalysisError>>(
-        'BUILD_FUNCTION_TYPE_ALIASES_ERRORS', AnalysisError.NO_ERRORS,
-        contributesTo: DART_ERRORS);
+final ListResultDescriptor<AnalysisError> BUILD_FUNCTION_TYPE_ALIASES_ERRORS =
+    new ListResultDescriptor<AnalysisError>(
+        'BUILD_FUNCTION_TYPE_ALIASES_ERRORS', AnalysisError.NO_ERRORS);
 
 /**
  * The errors produced while building a library element.
  *
  * The list will be empty if there were no errors, but will not be `null`.
  *
- * The result is only available for targets representing a Dart library.
+ * The result is only available for [Source]s representing a library.
  */
-final ResultDescriptor<List<AnalysisError>> BUILD_LIBRARY_ERRORS =
-    new ResultDescriptor<List<AnalysisError>>(
-        'BUILD_LIBRARY_ERRORS', AnalysisError.NO_ERRORS,
-        contributesTo: DART_ERRORS);
+final ListResultDescriptor<AnalysisError> BUILD_LIBRARY_ERRORS =
+    new ListResultDescriptor<AnalysisError>(
+        'BUILD_LIBRARY_ERRORS', AnalysisError.NO_ERRORS);
 
 /**
- * The [ClassElement]s of a [LibrarySpecificUnit].
+ * The [ClassElement]s of a [Source] representing a Dart library.
+ *
+ * The list contains the elements for all of the classes defined in the library,
+ * not just those in the defining compilation unit. The list will be empty if
+ * there are no classes, but will not be `null`.
  */
 final ListResultDescriptor<ClassElement> CLASS_ELEMENTS =
-    new ListResultDescriptor<ClassElement>('CLASS_ELEMENTS', null);
+    new ListResultDescriptor<ClassElement>('CLASS_ELEMENTS', null,
+        cachingPolicy: ELEMENT_CACHING_POLICY);
+
+/**
+ * A list of the [ConstantEvaluationTarget]s defined in a unit.  This includes
+ * constants defined at top level, statically inside classes, and local to
+ * functions, as well as constant constructors, annotations, and default values
+ * of parameters to constant constructors.
+ */
+final ListResultDescriptor<ConstantEvaluationTarget> COMPILATION_UNIT_CONSTANTS =
+    new ListResultDescriptor<ConstantEvaluationTarget>(
+        'COMPILATION_UNIT_CONSTANTS', null,
+        cachingPolicy: ELEMENT_CACHING_POLICY);
 
 /**
  * The element model associated with a single compilation unit.
  *
- * The result is only available for targets representing a Dart compilation unit.
+ * The result is only available for [LibrarySpecificUnit]s.
  */
 final ResultDescriptor<CompilationUnitElement> COMPILATION_UNIT_ELEMENT =
     new ResultDescriptor<CompilationUnitElement>(
-        'COMPILATION_UNIT_ELEMENT', null);
+        'COMPILATION_UNIT_ELEMENT', null,
+        cachingPolicy: ELEMENT_CACHING_POLICY);
+
+/**
+ * The list of [ConstantEvaluationTarget]s on which the target constant element
+ * depends.
+ *
+ * The result is only available for targets representing a
+ * [ConstantEvaluationTarget] (i.e. a constant variable declaration, a constant
+ * constructor, or a parameter element with a default value).
+ */
+final ListResultDescriptor<ConstantEvaluationTarget> CONSTANT_DEPENDENCIES =
+    new ListResultDescriptor<ConstantEvaluationTarget>(
+        'CONSTANT_DEPENDENCIES', const <ConstantEvaluationTarget>[]);
+
+/**
+ * A [ConstantEvaluationTarget] that has been successfully constant-evaluated.
+ *
+ * TODO(paulberry): is ELEMENT_CACHING_POLICY the correct caching policy?
+ */
+final ResultDescriptor<ConstantEvaluationTarget> CONSTANT_VALUE =
+    new ResultDescriptor<ConstantEvaluationTarget>('CONSTANT_VALUE', null,
+        cachingPolicy: ELEMENT_CACHING_POLICY);
 
 /**
  * The [ConstructorElement]s of a [ClassElement].
  */
-final ResultDescriptor<List<ConstructorElement>> CONSTRUCTORS =
-    new ResultDescriptor<List<ConstructorElement>>('CONSTRUCTORS', null);
+final ListResultDescriptor<ConstructorElement> CONSTRUCTORS =
+    new ListResultDescriptor<ConstructorElement>('CONSTRUCTORS', null);
 
 /**
  * The errors produced while building a [ClassElement] constructors.
@@ -87,15 +130,29 @@
  *
  * The result is only available for targets representing a [ClassElement].
  */
-final ResultDescriptor<List<AnalysisError>> CONSTRUCTORS_ERRORS =
-    new ResultDescriptor<List<AnalysisError>>(
+final ListResultDescriptor<AnalysisError> CONSTRUCTORS_ERRORS =
+    new ListResultDescriptor<AnalysisError>(
         'CONSTRUCTORS_ERRORS', AnalysisError.NO_ERRORS);
 
 /**
+ * The sources representing the libraries that include a given source as a part.
+ *
+ * The result is only available for [Source]s representing a compilation unit.
+ */
+final ListResultDescriptor<Source> CONTAINING_LIBRARIES =
+    new ListResultDescriptor<Source>('CONTAINING_LIBRARIES', Source.EMPTY_LIST);
+
+/**
+ * The [ResultCachingPolicy] for [Element]s.
+ */
+const ResultCachingPolicy ELEMENT_CACHING_POLICY =
+    const SimpleResultCachingPolicy(-1, -1);
+
+/**
  * The sources representing the export closure of a library.
  * The [Source]s include only library sources, not their units.
  *
- * The result is only available for targets representing a Dart library.
+ * The result is only available for [Source]s representing a library.
  */
 final ListResultDescriptor<Source> EXPORT_SOURCE_CLOSURE =
     new ListResultDescriptor<Source>('EXPORT_SOURCE_CLOSURE', null);
@@ -105,17 +162,17 @@
  *
  * The list will be empty if there were no errors, but will not be `null`.
  *
- * The result is only available for targets representing a Dart compilation unit.
+ * The result is only available for [LibrarySpecificUnit]s.
  */
-final ResultDescriptor<List<AnalysisError>> HINTS =
-    new ResultDescriptor<List<AnalysisError>>(
-        'HINT_ERRORS', AnalysisError.NO_ERRORS, contributesTo: DART_ERRORS);
+final ListResultDescriptor<AnalysisError> HINTS =
+    new ListResultDescriptor<AnalysisError>(
+        'HINT_ERRORS', AnalysisError.NO_ERRORS);
 
 /**
  * The sources representing the import closure of a library.
  * The [Source]s include only library sources, not their units.
  *
- * The result is only available for targets representing a Dart library.
+ * The result is only available for [Source]s representing a library.
  */
 final ListResultDescriptor<Source> IMPORT_SOURCE_CLOSURE =
     new ListResultDescriptor<Source>('IMPORT_SOURCE_CLOSURE', null);
@@ -126,10 +183,11 @@
  * The [LibraryElement] and its [CompilationUnitElement]s are attached to each
  * other. Directives 'library', 'part' and 'part of' are resolved.
  *
- * The result is only available for targets representing a Dart library.
+ * The result is only available for [Source]s representing a library.
  */
 final ResultDescriptor<LibraryElement> LIBRARY_ELEMENT1 =
-    new ResultDescriptor<LibraryElement>('LIBRARY_ELEMENT1', null);
+    new ResultDescriptor<LibraryElement>('LIBRARY_ELEMENT1', null,
+        cachingPolicy: ELEMENT_CACHING_POLICY);
 
 /**
  * The partial [LibraryElement] associated with a library.
@@ -137,20 +195,22 @@
  * In addition to [LIBRARY_ELEMENT1] [LibraryElement.imports] and
  * [LibraryElement.exports] are set.
  *
- * The result is only available for targets representing a Dart library.
+ * The result is only available for [Source]s representing a library.
  */
 final ResultDescriptor<LibraryElement> LIBRARY_ELEMENT2 =
-    new ResultDescriptor<LibraryElement>('LIBRARY_ELEMENT2', null);
+    new ResultDescriptor<LibraryElement>('LIBRARY_ELEMENT2', null,
+        cachingPolicy: ELEMENT_CACHING_POLICY);
 
 /**
  * The partial [LibraryElement] associated with a library.
  *
  * In addition to [LIBRARY_ELEMENT2] the [LibraryElement.publicNamespace] is set.
  *
- * The result is only available for targets representing a Dart library.
+ * The result is only available for [Source]s representing a library.
  */
 final ResultDescriptor<LibraryElement> LIBRARY_ELEMENT3 =
-    new ResultDescriptor<LibraryElement>('LIBRARY_ELEMENT3', null);
+    new ResultDescriptor<LibraryElement>('LIBRARY_ELEMENT3', null,
+        cachingPolicy: ELEMENT_CACHING_POLICY);
 
 /**
  * The partial [LibraryElement] associated with a library.
@@ -161,119 +221,148 @@
  *
  * Also [LibraryElement.exportNamespace] is set.
  *
- * The result is only available for targets representing a Dart library.
+ * The result is only available for [Source]s representing a library.
  */
 final ResultDescriptor<LibraryElement> LIBRARY_ELEMENT4 =
-    new ResultDescriptor<LibraryElement>('LIBRARY_ELEMENT4', null);
+    new ResultDescriptor<LibraryElement>('LIBRARY_ELEMENT4', null,
+        cachingPolicy: ELEMENT_CACHING_POLICY);
 
 /**
  * The partial [LibraryElement] associated with a library.
  *
  * [LIBRARY_ELEMENT4] plus [RESOLVED_UNIT4] for every unit.
  *
- * The result is only available for targets representing a Dart library.
+ * The result is only available for [Source]s representing a library.
  */
 final ResultDescriptor<LibraryElement> LIBRARY_ELEMENT5 =
-    new ResultDescriptor<LibraryElement>('LIBRARY_ELEMENT5', null);
+    new ResultDescriptor<LibraryElement>('LIBRARY_ELEMENT5', null,
+        cachingPolicy: ELEMENT_CACHING_POLICY);
+
+/**
+ * The flag specifying whether all analysis errors are computed in a specific
+ * library.
+ *
+ * The result is only available for [Source]s representing a library.
+ */
+final ResultDescriptor<bool> LIBRARY_ERRORS_READY =
+    new ResultDescriptor<bool>('LIBRARY_ERRORS_READY', false);
+
+/**
+ * The analysis errors associated with a compilation unit in a specific library.
+ *
+ * The result is only available for [LibrarySpecificUnit]s.
+ */
+final ListResultDescriptor<AnalysisError> LIBRARY_UNIT_ERRORS =
+    new ListResultDescriptor<AnalysisError>(
+        'LIBRARY_UNIT_ERRORS', AnalysisError.NO_ERRORS);
 
 /**
  * The errors produced while parsing a compilation unit.
  *
  * The list will be empty if there were no errors, but will not be `null`.
  *
- * The result is only available for targets representing a Dart compilation unit.
+ * The result is only available for [Source]s representing a compilation unit.
  */
-final ResultDescriptor<List<AnalysisError>> PARSE_ERRORS =
-    new ResultDescriptor<List<AnalysisError>>(
-        'PARSE_ERRORS', AnalysisError.NO_ERRORS, contributesTo: DART_ERRORS);
+final ListResultDescriptor<AnalysisError> PARSE_ERRORS =
+    new ListResultDescriptor<AnalysisError>(
+        'PARSE_ERRORS', AnalysisError.NO_ERRORS);
 
 /**
  * The errors produced while resolving references.
  *
  * The list will be empty if there were no errors, but will not be `null`.
  *
- * The result is only available for targets representing a unit.
+ * The result is only available for [LibrarySpecificUnit]s.
  */
-final ResultDescriptor<List<AnalysisError>> RESOLVE_REFERENCES_ERRORS =
-    new ResultDescriptor<List<AnalysisError>>(
-        'RESOLVE_REFERENCES_ERRORS', AnalysisError.NO_ERRORS,
-        contributesTo: DART_ERRORS);
+final ListResultDescriptor<AnalysisError> RESOLVE_REFERENCES_ERRORS =
+    new ListResultDescriptor<AnalysisError>(
+        'RESOLVE_REFERENCES_ERRORS', AnalysisError.NO_ERRORS);
 
 /**
  * The errors produced while resolving type names.
  *
  * The list will be empty if there were no errors, but will not be `null`.
  *
- * The result is only available for targets representing a Dart library.
+ * The result is only available for [LibrarySpecificUnit]s.
  */
-final ResultDescriptor<List<AnalysisError>> RESOLVE_TYPE_NAMES_ERRORS =
-    new ResultDescriptor<List<AnalysisError>>(
-        'RESOLVE_TYPE_NAMES_ERRORS', AnalysisError.NO_ERRORS,
-        contributesTo: DART_ERRORS);
+final ListResultDescriptor<AnalysisError> RESOLVE_TYPE_NAMES_ERRORS =
+    new ListResultDescriptor<AnalysisError>(
+        'RESOLVE_TYPE_NAMES_ERRORS', AnalysisError.NO_ERRORS);
 
 /**
  * The partially resolved [CompilationUnit] associated with a unit.
  *
  * All declarations bound to the element defined by the declaration.
  *
- * The result is only available for targets representing a unit.
+ * The result is only available for [LibrarySpecificUnit]s.
  */
 final ResultDescriptor<CompilationUnit> RESOLVED_UNIT1 =
-    new ResultDescriptor<CompilationUnit>('RESOLVED_UNIT1', null);
+    new ResultDescriptor<CompilationUnit>('RESOLVED_UNIT1', null,
+        cachingPolicy: AST_CACHING_POLICY);
 
 /**
  * The partially resolved [CompilationUnit] associated with a unit.
  *
  * All the enum member elements are built.
  *
- * The result is only available for targets representing a unit.
+ * The result is only available for [LibrarySpecificUnit]s.
  */
 final ResultDescriptor<CompilationUnit> RESOLVED_UNIT2 =
-    new ResultDescriptor<CompilationUnit>('RESOLVED_UNIT2', null);
+    new ResultDescriptor<CompilationUnit>('RESOLVED_UNIT2', null,
+        cachingPolicy: AST_CACHING_POLICY);
 
 /**
  * The partially resolved [CompilationUnit] associated with a unit.
  *
  * All the function type aliases are resolved.
  *
- * The result is only available for targets representing a unit.
+ * The result is only available for [LibrarySpecificUnit]s.
  */
 final ResultDescriptor<CompilationUnit> RESOLVED_UNIT3 =
-    new ResultDescriptor<CompilationUnit>('RESOLVED_UNIT3', null);
+    new ResultDescriptor<CompilationUnit>('RESOLVED_UNIT3', null,
+        cachingPolicy: AST_CACHING_POLICY);
 
 /**
  * The partially resolved [CompilationUnit] associated with a unit.
  *
  * [RESOLVED_UNIT3] with resolved type names.
  *
- * The result is only available for targets representing a unit.
+ * The result is only available for [LibrarySpecificUnit]s.
  */
 final ResultDescriptor<CompilationUnit> RESOLVED_UNIT4 =
-    new ResultDescriptor<CompilationUnit>('RESOLVED_UNIT4', null);
+    new ResultDescriptor<CompilationUnit>('RESOLVED_UNIT4', null,
+        cachingPolicy: AST_CACHING_POLICY);
 
 /**
  * The partially resolved [CompilationUnit] associated with a unit.
  *
  * [RESOLVED_UNIT4] plus resolved local variables and formal parameters.
  *
- * The result is only available for targets representing a unit.
+ * The result is only available for [LibrarySpecificUnit]s.
  */
 final ResultDescriptor<CompilationUnit> RESOLVED_UNIT5 =
-    new ResultDescriptor<CompilationUnit>('RESOLVED_UNIT5', null);
+    new ResultDescriptor<CompilationUnit>('RESOLVED_UNIT5', null,
+        cachingPolicy: AST_CACHING_POLICY);
 
 /**
  * The errors produced while scanning a compilation unit.
  *
  * The list will be empty if there were no errors, but will not be `null`.
  *
- * The result is only available for targets representing a Dart compilation unit.
+ * The result is only available for [Source]s representing a compilation unit.
  */
-final ResultDescriptor<List<AnalysisError>> SCAN_ERRORS =
-    new ResultDescriptor<List<AnalysisError>>(
-        'SCAN_ERRORS', AnalysisError.NO_ERRORS, contributesTo: DART_ERRORS);
+final ListResultDescriptor<AnalysisError> SCAN_ERRORS =
+    new ListResultDescriptor<AnalysisError>(
+        'SCAN_ERRORS', AnalysisError.NO_ERRORS);
 
 /**
- * The [TypeProvider] of the context.
+ * The [ResultCachingPolicy] for [TOKEN_STREAM].
+ */
+const ResultCachingPolicy TOKEN_STREAM_CACHING_POLICY =
+    const SimpleResultCachingPolicy(1, 1);
+
+/**
+ * The [TypeProvider] of the [AnalysisContext].
  */
 final ResultDescriptor<TypeProvider> TYPE_PROVIDER =
     new ResultDescriptor<TypeProvider>('TYPE_PROVIDER', null);
@@ -282,24 +371,26 @@
  * The [UsedImportedElements] of a [LibrarySpecificUnit].
  */
 final ResultDescriptor<UsedImportedElements> USED_IMPORTED_ELEMENTS =
-    new ResultDescriptor<UsedImportedElements>('USED_IMPORTED_ELEMENTS', null);
+    new ResultDescriptor<UsedImportedElements>('USED_IMPORTED_ELEMENTS', null,
+        cachingPolicy: ELEMENT_CACHING_POLICY);
 
 /**
  * The [UsedLocalElements] of a [LibrarySpecificUnit].
  */
 final ResultDescriptor<UsedLocalElements> USED_LOCAL_ELEMENTS =
-    new ResultDescriptor<UsedLocalElements>('USED_LOCAL_ELEMENTS', null);
+    new ResultDescriptor<UsedLocalElements>('USED_LOCAL_ELEMENTS', null,
+        cachingPolicy: ELEMENT_CACHING_POLICY);
 
 /**
  * The errors produced while verifying a compilation unit.
  *
  * The list will be empty if there were no errors, but will not be `null`.
  *
- * The result is only available for targets representing a Dart compilation unit.
+ * The result is only available for [LibrarySpecificUnit]s.
  */
-final ResultDescriptor<List<AnalysisError>> VERIFY_ERRORS =
-    new ResultDescriptor<List<AnalysisError>>(
-        'VERIFY_ERRORS', AnalysisError.NO_ERRORS, contributesTo: DART_ERRORS);
+final ListResultDescriptor<AnalysisError> VERIFY_ERRORS =
+    new ListResultDescriptor<AnalysisError>(
+        'VERIFY_ERRORS', AnalysisError.NO_ERRORS);
 
 /**
  * A task that builds implicit constructors for a [ClassElement], or keeps
@@ -358,7 +449,7 @@
       }
       if (_findForwardedConstructors(classElement, superType, callback)) {
         if (implicitConstructors.isEmpty) {
-          errors.add(new AnalysisError.con2(classElement.source,
+          errors.add(new AnalysisError(classElement.source,
               classElement.nameOffset, classElement.name.length,
               CompileTimeErrorCode.MIXIN_HAS_NO_CONSTRUCTORS,
               [superType.element.name]));
@@ -381,7 +472,7 @@
       if (_findForwardedConstructors(classElement, superType, callback) &&
           !constructorFound) {
         SourceRange withRange = classElement.withClauseRange;
-        errors.add(new AnalysisError.con2(classElement.source, withRange.offset,
+        errors.add(new AnalysisError(classElement.source, withRange.offset,
             withRange.length, CompileTimeErrorCode.MIXIN_HAS_NO_CONSTRUCTORS,
             [superType.element.name]));
         classElement.mixinErrorsReported = true;
@@ -460,7 +551,7 @@
       }
       implicitConstructor.parameters = implicitParameters;
     }
-    FunctionTypeImpl type = new FunctionTypeImpl.con1(implicitConstructor);
+    FunctionTypeImpl type = new FunctionTypeImpl(implicitConstructor);
     type.typeArguments = classType.typeArguments;
     implicitConstructor.type = type;
     return implicitConstructor;
@@ -531,12 +622,6 @@
  */
 class BuildCompilationUnitElementTask extends SourceBasedAnalysisTask {
   /**
-   * The name of the input whose value is the line information for the
-   * compilation unit.
-   */
-  static const String LINE_INFO_INPUT_NAME = 'LINE_INFO_INPUT_NAME';
-
-  /**
    * The name of the input whose value is the AST for the compilation unit.
    */
   static const String PARSED_UNIT_INPUT_NAME = 'PARSED_UNIT_INPUT_NAME';
@@ -547,9 +632,9 @@
   static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
       'BuildCompilationUnitElementTask', createTask, buildInputs,
       <ResultDescriptor>[
-    CLASS_ELEMENTS,
     COMPILATION_UNIT_ELEMENT,
-    RESOLVED_UNIT1
+    RESOLVED_UNIT1,
+    COMPILATION_UNIT_CONSTANTS
   ]);
 
   /**
@@ -568,6 +653,7 @@
     //
     // Prepare inputs.
     //
+    LibrarySpecificUnit librarySpecificUnit = target;
     Source source = getRequiredSource();
     CompilationUnit unit = getRequiredInput(PARSED_UNIT_INPUT_NAME);
     //
@@ -575,13 +661,20 @@
     //
     unit = AstCloner.clone(unit);
     CompilationUnitBuilder builder = new CompilationUnitBuilder();
-    CompilationUnitElement element = builder.buildCompilationUnit(source, unit);
+    CompilationUnitElement element =
+        builder.buildCompilationUnit(source, unit, librarySpecificUnit.library);
+    ConstantFinder constantFinder =
+        new ConstantFinder(context, source, librarySpecificUnit.library);
+    unit.accept(constantFinder);
+    List<ConstantEvaluationTarget> constants =
+        new List<ConstantEvaluationTarget>.from(
+            constantFinder.constantsToCompute);
     //
     // Record outputs.
     //
-    outputs[CLASS_ELEMENTS] = element.types;
     outputs[COMPILATION_UNIT_ELEMENT] = element;
     outputs[RESOLVED_UNIT1] = unit;
+    outputs[COMPILATION_UNIT_CONSTANTS] = constants;
   }
 
   /**
@@ -724,9 +817,8 @@
               ErrorCode errorCode = (importElement.isDeferred
                   ? StaticWarningCode.IMPORT_OF_NON_LIBRARY
                   : CompileTimeErrorCode.IMPORT_OF_NON_LIBRARY);
-              errors.add(new AnalysisError.con2(importedSource,
-                  uriLiteral.offset, uriLiteral.length, errorCode,
-                  [uriLiteral.toSource()]));
+              errors.add(new AnalysisError(importedSource, uriLiteral.offset,
+                  uriLiteral.length, errorCode, [uriLiteral.toSource()]));
             }
           }
         }
@@ -751,9 +843,8 @@
             directive.element = exportElement;
             exports.add(exportElement);
             if (exportSourceKindMap[exportedSource] != SourceKind.LIBRARY) {
-              errors.add(new AnalysisError.con2(exportedSource,
-                  uriLiteral.offset, uriLiteral.length,
-                  CompileTimeErrorCode.EXPORT_OF_NON_LIBRARY,
+              errors.add(new AnalysisError(exportedSource, uriLiteral.offset,
+                  uriLiteral.length, CompileTimeErrorCode.EXPORT_OF_NON_LIBRARY,
                   [uriLiteral.toSource()]));
             }
           }
@@ -1215,7 +1306,7 @@
           String partLibraryName =
               _getPartLibraryName(partSource, partUnit, directivesToResolve);
           if (partLibraryName == null) {
-            errors.add(new AnalysisError.con2(librarySource, partUri.offset,
+            errors.add(new AnalysisError(librarySource, partUri.offset,
                 partUri.length, CompileTimeErrorCode.PART_OF_NON_PART,
                 [partUri.toSource()]));
           } else if (libraryNameNode == null) {
@@ -1225,7 +1316,7 @@
               partsLibraryName = null;
             }
           } else if (libraryNameNode.name != partLibraryName) {
-            errors.add(new AnalysisError.con2(librarySource, partUri.offset,
+            errors.add(new AnalysisError(librarySource, partUri.offset,
                 partUri.length, StaticWarningCode.PART_OF_DIFFERENT_LIBRARY, [
               libraryNameNode.name,
               partLibraryName
@@ -1243,11 +1334,11 @@
       AnalysisError error;
       if (partsLibraryName != _UNKNOWN_LIBRARY_NAME &&
           partsLibraryName != null) {
-        error = new AnalysisErrorWithProperties.con1(librarySource,
+        error = new AnalysisErrorWithProperties(librarySource, 0, 0,
             ResolverErrorCode.MISSING_LIBRARY_DIRECTIVE_WITH_PART)
           ..setProperty(ErrorProperty.PARTS_LIBRARY_NAME, partsLibraryName);
       } else {
-        error = new AnalysisError.con1(librarySource,
+        error = new AnalysisError(librarySource, 0, 0,
             ResolverErrorCode.MISSING_LIBRARY_DIRECTIVE_WITH_PART);
       }
       errors.add(error);
@@ -1571,6 +1662,381 @@
 }
 
 /**
+ * A task that computes [CONSTANT_DEPENDENCIES] for a constant.
+ */
+class ComputeConstantDependenciesTask extends ConstantEvaluationAnalysisTask {
+  /**
+   * The name of the [RESOLVED_UNIT] input.
+   */
+  static const String UNIT_INPUT = 'UNIT_INPUT';
+
+  static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
+      'ComputeConstantDependenciesTask', createTask, buildInputs,
+      <ResultDescriptor>[CONSTANT_DEPENDENCIES]);
+
+  ComputeConstantDependenciesTask(
+      InternalAnalysisContext context, ConstantEvaluationTarget constant)
+      : super(context, constant);
+
+  @override
+  TaskDescriptor get descriptor => DESCRIPTOR;
+
+  @override
+  void internalPerform() {
+    //
+    // Prepare inputs.
+    //
+    // Note: UNIT_INPUT is not needed.  It is merely a bookkeeping dependency
+    // to ensure that resolution has occurred before we attempt to determine
+    // constant dependencies.
+    //
+    ConstantEvaluationTarget constant = target;
+    AnalysisContext context = constant.context;
+    TypeProvider typeProvider = context.typeProvider;
+    //
+    // Compute dependencies.
+    //
+    List<ConstantEvaluationTarget> dependencies = <ConstantEvaluationTarget>[];
+    new ConstantEvaluationEngine(typeProvider, context.declaredVariables)
+        .computeDependencies(constant, dependencies.add);
+    //
+    // Record outputs.
+    //
+    outputs[CONSTANT_DEPENDENCIES] = dependencies;
+  }
+
+  /**
+   * Return a map from the names of the inputs of this kind of task to the task
+   * input descriptors describing those inputs for a task with the
+   * given [target].
+   */
+  static Map<String, TaskInput> buildInputs(ConstantEvaluationTarget target) {
+    if (target is Element) {
+      CompilationUnitElementImpl unit = (target as Element)
+          .getAncestor((Element element) => element is CompilationUnitElement);
+      return <String, TaskInput>{
+        UNIT_INPUT: RESOLVED_UNIT
+            .of(new LibrarySpecificUnit(unit.librarySource, target.source))
+      };
+    } else if (target is ConstantEvaluationTarget_Annotation) {
+      return <String, TaskInput>{
+        UNIT_INPUT: RESOLVED_UNIT
+            .of(new LibrarySpecificUnit(target.librarySource, target.source))
+      };
+    } else {
+      // Should never happen.
+      assert(false);
+      return <String, TaskInput>{};
+    }
+  }
+
+  /**
+   * Create a [ResolveReferencesTask] based on the given [target] in
+   * the given [context].
+   */
+  static ComputeConstantDependenciesTask createTask(
+      AnalysisContext context, AnalysisTarget target) {
+    return new ComputeConstantDependenciesTask(context, target);
+  }
+}
+
+/**
+ * A task that computes the value of a constant ([CONSTANT_VALUE]) and
+ * stores it in the element model.
+ */
+class ComputeConstantValueTask extends ConstantEvaluationAnalysisTask {
+  /**
+   * The name of the input which ensures that dependent constants are evaluated
+   * before the target.
+   */
+  static const String DEPENDENCIES_INPUT = 'DEPENDENCIES_INPUT';
+
+  static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
+      'ComputeConstantValueTask', createTask, buildInputs,
+      <ResultDescriptor>[CONSTANT_VALUE]);
+
+  ComputeConstantValueTask(
+      InternalAnalysisContext context, ConstantEvaluationTarget constant)
+      : super(context, constant);
+
+  @override
+  TaskDescriptor get descriptor => DESCRIPTOR;
+
+  @override
+  void internalPerform() {
+    //
+    // Prepare inputs.
+    //
+    // Note: DEPENDENCIES_INPUT is not needed.  It is merely a bookkeeping
+    // dependency to ensure that the constants that this constant depends on
+    // are computed first.
+    ConstantEvaluationTarget constant = target;
+    AnalysisContext context = constant.context;
+    TypeProvider typeProvider = context.typeProvider;
+    //
+    // Compute the value of the constant.
+    //
+    new ConstantEvaluationEngine(typeProvider, context.declaredVariables)
+        .computeConstantValue(constant);
+    //
+    // Record outputs.
+    //
+    outputs[CONSTANT_VALUE] = constant;
+  }
+
+  /**
+   * Return a map from the names of the inputs of this kind of task to the task
+   * input descriptors describing those inputs for a task with the given
+   * [target].
+   */
+  static Map<String, TaskInput> buildInputs(ConstantEvaluationTarget target) {
+    return <String, TaskInput>{
+      DEPENDENCIES_INPUT:
+          CONSTANT_DEPENDENCIES.of(target).toListOf(CONSTANT_VALUE)
+    };
+  }
+
+  /**
+   * Create a [ComputeConstantValueTask] based on the given [target] in the
+   * given [context].
+   */
+  static ComputeConstantValueTask createTask(
+      AnalysisContext context, AnalysisTarget target) {
+    return new ComputeConstantValueTask(context, target);
+  }
+}
+
+/**
+ * A base class for analysis tasks whose target is expected to be a
+ * [ConstantEvaluationTarget].
+ */
+abstract class ConstantEvaluationAnalysisTask extends AnalysisTask {
+  /**
+   * Initialize a newly created task to perform analysis within the given
+   * [context] in order to produce results for the given [constant].
+   */
+  ConstantEvaluationAnalysisTask(
+      AnalysisContext context, ConstantEvaluationTarget constant)
+      : super(context, constant);
+
+  @override
+  String get description {
+    Source source = target.source;
+    String sourceName = source == null ? '<unknown source>' : source.fullName;
+    return '${descriptor.name} for element $target in source $sourceName';
+  }
+}
+
+/**
+ * Interface for [AnalysisTarget]s for which constant evaluation can be
+ * performed.
+ */
+abstract class ConstantEvaluationTarget extends AnalysisTarget {
+  /**
+   * Return the [AnalysisContext] which should be used to evaluate this
+   * constant.
+   */
+  AnalysisContext get context;
+}
+
+/**
+ * A task that computes a list of the libraries containing the target source.
+ */
+class ContainingLibrariesTask extends SourceBasedAnalysisTask {
+  /**
+   * The task descriptor describing this kind of task.
+   */
+  static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
+      'ContainingLibrariesTask', createTask, buildInputs,
+      <ResultDescriptor>[CONTAINING_LIBRARIES]);
+
+  ContainingLibrariesTask(
+      InternalAnalysisContext context, AnalysisTarget target)
+      : super(context, target);
+
+  @override
+  TaskDescriptor get descriptor => DESCRIPTOR;
+
+  @override
+  void internalPerform() {
+    // TODO(brianwilkerson) This value can change as new libraries are analyzed
+    // so we need some way of making sure that this result is removed from the
+    // cache appropriately.
+    Source source = getRequiredSource();
+    outputs[CONTAINING_LIBRARIES] = context.getLibrariesContaining(source);
+  }
+
+  /**
+   * Return a map from the names of the inputs of this kind of task to the task
+   * input descriptors describing those inputs for a task with the
+   * given [target].
+   */
+  static Map<String, TaskInput> buildInputs(Source target) {
+    return <String, TaskInput>{};
+  }
+
+  /**
+   * Create a [ContainingLibrariesTask] based on the given [target] in the given
+   * [context].
+   */
+  static ContainingLibrariesTask createTask(
+      AnalysisContext context, AnalysisTarget target) {
+    return new ContainingLibrariesTask(context, target);
+  }
+}
+
+/**
+ * A task that merges all of the errors for a single source into a single list
+ * of errors.
+ */
+class DartErrorsTask extends SourceBasedAnalysisTask {
+  /**
+   * The name of the [BUILD_DIRECTIVES_ERRORS] input.
+   */
+  static const String BUILD_DIRECTIVES_ERRORS_INPUT = 'BUILD_DIRECTIVES_ERRORS';
+
+  /**
+   * The name of the [BUILD_LIBRARY_ERRORS] input.
+   */
+  static const String BUILD_LIBRARY_ERRORS_INPUT = 'BUILD_LIBRARY_ERRORS';
+
+  /**
+   * The name of the [LIBRARY_UNIT_ERRORS] input.
+   */
+  static const String LIBRARY_UNIT_ERRORS_INPUT = 'LIBRARY_UNIT_ERRORS';
+
+  /**
+   * The name of the [PARSE_ERRORS] input.
+   */
+  static const String PARSE_ERRORS_INPUT = 'PARSE_ERRORS';
+
+  /**
+   * The name of the [SCAN_ERRORS] input.
+   */
+  static const String SCAN_ERRORS_INPUT = 'SCAN_ERRORS';
+
+  /**
+   * The task descriptor describing this kind of task.
+   */
+  static final TaskDescriptor DESCRIPTOR = new TaskDescriptor('DartErrorsTask',
+      createTask, buildInputs, <ResultDescriptor>[DART_ERRORS]);
+
+  DartErrorsTask(InternalAnalysisContext context, AnalysisTarget target)
+      : super(context, target);
+
+  @override
+  TaskDescriptor get descriptor => DESCRIPTOR;
+
+  @override
+  void internalPerform() {
+    //
+    // Prepare inputs.
+    //
+    List<List<AnalysisError>> errorLists = <List<AnalysisError>>[];
+    errorLists.add(getRequiredInput(BUILD_DIRECTIVES_ERRORS_INPUT));
+    errorLists.add(getRequiredInput(BUILD_LIBRARY_ERRORS_INPUT));
+    errorLists.add(getRequiredInput(PARSE_ERRORS_INPUT));
+    errorLists.add(getRequiredInput(SCAN_ERRORS_INPUT));
+    Map<Source, List<AnalysisError>> unitErrors =
+        getRequiredInput(LIBRARY_UNIT_ERRORS_INPUT);
+    for (List<AnalysisError> errors in unitErrors.values) {
+      errorLists.add(errors);
+    }
+    //
+    // Record outputs.
+    //
+    outputs[DART_ERRORS] = AnalysisError.mergeLists(errorLists);
+  }
+
+  /**
+   * Return a map from the names of the inputs of this kind of task to the task
+   * input descriptors describing those inputs for a task with the
+   * given [target].
+   */
+  static Map<String, TaskInput> buildInputs(Source target) {
+    return <String, TaskInput>{
+      BUILD_DIRECTIVES_ERRORS_INPUT: BUILD_DIRECTIVES_ERRORS.of(target),
+      BUILD_LIBRARY_ERRORS_INPUT: BUILD_LIBRARY_ERRORS.of(target),
+      PARSE_ERRORS_INPUT: PARSE_ERRORS.of(target),
+      SCAN_ERRORS_INPUT: SCAN_ERRORS.of(target),
+      LIBRARY_UNIT_ERRORS_INPUT: CONTAINING_LIBRARIES
+          .of(target)
+          .toMap((Source library) {
+        LibrarySpecificUnit unit = new LibrarySpecificUnit(library, target);
+        return LIBRARY_UNIT_ERRORS.of(unit);
+      })
+    };
+  }
+
+  /**
+   * Create a [DartErrorsTask] based on the given [target] in the given
+   * [context].
+   */
+  static DartErrorsTask createTask(
+      AnalysisContext context, AnalysisTarget target) {
+    return new DartErrorsTask(context, target);
+  }
+}
+
+/**
+ * A task that builds [CONSTANT_RESOLVED_UNIT] for a unit.
+ */
+class EvaluateUnitConstantsTask extends SourceBasedAnalysisTask {
+  /**
+   * The name of the [RESOLVED_UNIT] input.
+   */
+  static const String UNIT_INPUT = 'UNIT_INPUT';
+
+  /**
+   * The name of the [CONSTANT_VALUE] input.
+   */
+  static const String CONSTANT_VALUES = 'CONSTANT_VALUES';
+
+  /**
+   * The task descriptor describing this kind of task.
+   */
+  static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
+      'EvaluateUnitConstantsTask', createTask, buildInputs,
+      <ResultDescriptor>[CONSTANT_RESOLVED_UNIT]);
+
+  EvaluateUnitConstantsTask(AnalysisContext context, LibrarySpecificUnit target)
+      : super(context, target);
+
+  @override
+  TaskDescriptor get descriptor => DESCRIPTOR;
+
+  @override
+  void internalPerform() {
+    // No actual work needs to be performed; the task manager will ensure that
+    // all constants are evaluated before this method is called.
+    CompilationUnit unit = getRequiredInput(UNIT_INPUT);
+    outputs[CONSTANT_RESOLVED_UNIT] = unit;
+  }
+
+  /**
+   * Return a map from the names of the inputs of this kind of task to the task
+   * input descriptors describing those inputs for a task with the
+   * given [target].
+   */
+  static Map<String, TaskInput> buildInputs(LibrarySpecificUnit target) {
+    return <String, TaskInput>{
+      UNIT_INPUT: RESOLVED_UNIT.of(target),
+      CONSTANT_VALUES:
+          COMPILATION_UNIT_CONSTANTS.of(target).toListOf(CONSTANT_VALUE)
+    };
+  }
+
+  /**
+   * Create an [EvaluateUnitConstantsTask] based on the given [target] in
+   * the given [context].
+   */
+  static EvaluateUnitConstantsTask createTask(
+      AnalysisContext context, LibrarySpecificUnit target) {
+    return new EvaluateUnitConstantsTask(context, target);
+  }
+}
+
+/**
  * The helper for building the export [Namespace] of a [LibraryElement].
  */
 class ExportNamespaceBuilder {
@@ -1798,7 +2264,7 @@
   /**
    * The name of the [RESOLVED_UNIT] input.
    */
-  static const String UNIT_INPUT = 'UNIT_INPUT';
+  static const String RESOLVED_UNIT_INPUT = 'RESOLVED_UNIT';
 
   /**
    * The name of a list of [USED_LOCAL_ELEMENTS] for each library unit input.
@@ -1830,7 +2296,7 @@
     //
     // Prepare inputs.
     //
-    CompilationUnit unit = getRequiredInput(UNIT_INPUT);
+    CompilationUnit unit = getRequiredInput(RESOLVED_UNIT_INPUT);
     List<UsedImportedElements> usedImportedElementsList =
         getRequiredInput(USED_IMPORTED_ELEMENTS_INPUT);
     List<UsedLocalElements> usedLocalElementsList =
@@ -1883,7 +2349,7 @@
   static Map<String, TaskInput> buildInputs(LibrarySpecificUnit target) {
     Source libSource = target.library;
     return <String, TaskInput>{
-      UNIT_INPUT: RESOLVED_UNIT.of(target),
+      RESOLVED_UNIT_INPUT: RESOLVED_UNIT.of(target),
       USED_LOCAL_ELEMENTS_INPUT: UNITS.of(libSource).toList((unit) {
         LibrarySpecificUnit target = new LibrarySpecificUnit(libSource, unit);
         return USED_LOCAL_ELEMENTS.of(target);
@@ -1906,20 +2372,136 @@
 }
 
 /**
- * The memento for [ParseDartTask].
+ * A task computes all of the errors of all of the units for a single
+ * library source and sets the [LIBRARY_ERRORS_READY] flag.
  */
-class ParseDartMemento {
-  final Token inputTokenStream;
-  final List<Source> exportedLibraries;
-  final List<Source> importedLibraries;
-  final List<Source> includedParts;
-  final List<AnalysisError> parseErrors;
-  final CompilationUnit parsedUnit;
-  final SourceKind sourceKind;
-  final List<Source> units;
-  ParseDartMemento(this.inputTokenStream, this.exportedLibraries,
-      this.importedLibraries, this.includedParts, this.parseErrors,
-      this.parsedUnit, this.sourceKind, this.units);
+class LibraryErrorsReadyTask extends SourceBasedAnalysisTask {
+  /**
+   * The task descriptor describing this kind of task.
+   */
+  static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
+      'LibraryErrorsReadyTask', createTask, buildInputs,
+      <ResultDescriptor>[LIBRARY_ERRORS_READY]);
+
+  LibraryErrorsReadyTask(InternalAnalysisContext context, AnalysisTarget target)
+      : super(context, target);
+
+  @override
+  TaskDescriptor get descriptor => DESCRIPTOR;
+
+  @override
+  void internalPerform() {
+    outputs[LIBRARY_ERRORS_READY] = true;
+  }
+
+  /**
+   * Return a map from the names of the inputs of this kind of task to the task
+   * input descriptors describing those inputs for a task with the
+   * given [library].
+   */
+  static Map<String, TaskInput> buildInputs(Source library) {
+    return <String, TaskInput>{
+      'allErrors': UNITS.of(library).toListOf(DART_ERRORS)
+    };
+  }
+
+  /**
+   * Create a [LibraryErrorsReadyTask] based on the given [target] in the given
+   * [context].
+   */
+  static LibraryErrorsReadyTask createTask(
+      AnalysisContext context, AnalysisTarget target) {
+    return new LibraryErrorsReadyTask(context, target);
+  }
+}
+
+/**
+ * A task that merges all of the errors for a single source into a single list
+ * of errors.
+ */
+class LibraryUnitErrorsTask extends SourceBasedAnalysisTask {
+  /**
+   * The name of the [BUILD_FUNCTION_TYPE_ALIASES_ERRORS] input.
+   */
+  static const String BUILD_FUNCTION_TYPE_ALIASES_ERRORS_INPUT =
+      'BUILD_FUNCTION_TYPE_ALIASES_ERRORS';
+
+  /**
+   * The name of the [HINTS] input.
+   */
+  static const String HINTS_INPUT = 'HINTS';
+
+  /**
+   * The name of the [RESOLVE_REFERENCES_ERRORS] input.
+   */
+  static const String RESOLVE_REFERENCES_ERRORS_INPUT =
+      'RESOLVE_REFERENCES_ERRORS';
+
+  /**
+   * The name of the [RESOLVE_TYPE_NAMES_ERRORS] input.
+   */
+  static const String RESOLVE_TYPE_NAMES_ERRORS_INPUT =
+      'RESOLVE_TYPE_NAMES_ERRORS';
+
+  /**
+   * The name of the [VERIFY_ERRORS] input.
+   */
+  static const String VERIFY_ERRORS_INPUT = 'VERIFY_ERRORS';
+
+  /**
+   * The task descriptor describing this kind of task.
+   */
+  static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
+      'LibraryUnitErrorsTask', createTask, buildInputs,
+      <ResultDescriptor>[LIBRARY_UNIT_ERRORS]);
+
+  LibraryUnitErrorsTask(InternalAnalysisContext context, AnalysisTarget target)
+      : super(context, target);
+
+  @override
+  TaskDescriptor get descriptor => DESCRIPTOR;
+
+  @override
+  void internalPerform() {
+    //
+    // Prepare inputs.
+    //
+    List<List<AnalysisError>> errorLists = <List<AnalysisError>>[];
+    errorLists.add(getRequiredInput(BUILD_FUNCTION_TYPE_ALIASES_ERRORS_INPUT));
+    errorLists.add(getRequiredInput(HINTS_INPUT));
+    errorLists.add(getRequiredInput(RESOLVE_REFERENCES_ERRORS_INPUT));
+    errorLists.add(getRequiredInput(RESOLVE_TYPE_NAMES_ERRORS_INPUT));
+    errorLists.add(getRequiredInput(VERIFY_ERRORS_INPUT));
+    //
+    // Record outputs.
+    //
+    outputs[LIBRARY_UNIT_ERRORS] = AnalysisError.mergeLists(errorLists);
+  }
+
+  /**
+   * Return a map from the names of the inputs of this kind of task to the task
+   * input descriptors describing those inputs for a task with the
+   * given [unit].
+   */
+  static Map<String, TaskInput> buildInputs(LibrarySpecificUnit unit) {
+    return <String, TaskInput>{
+      BUILD_FUNCTION_TYPE_ALIASES_ERRORS_INPUT:
+          BUILD_FUNCTION_TYPE_ALIASES_ERRORS.of(unit),
+      HINTS_INPUT: HINTS.of(unit),
+      RESOLVE_REFERENCES_ERRORS_INPUT: RESOLVE_REFERENCES_ERRORS.of(unit),
+      RESOLVE_TYPE_NAMES_ERRORS_INPUT: RESOLVE_TYPE_NAMES_ERRORS.of(unit),
+      VERIFY_ERRORS_INPUT: VERIFY_ERRORS.of(unit)
+    };
+  }
+
+  /**
+   * Create a [LibraryUnitErrorsTask] based on the given [target] in the given
+   * [context].
+   */
+  static LibraryUnitErrorsTask createTask(
+      AnalysisContext context, AnalysisTarget target) {
+    return new LibraryUnitErrorsTask(context, target);
+  }
 }
 
 /**
@@ -1942,6 +2524,7 @@
    */
   static final TaskDescriptor DESCRIPTOR = new TaskDescriptor('ParseDartTask',
       createTask, buildInputs, <ResultDescriptor>[
+    EXPLICITLY_IMPORTED_LIBRARIES,
     EXPORTED_LIBRARIES,
     IMPORTED_LIBRARIES,
     INCLUDED_PARTS,
@@ -1967,21 +2550,6 @@
     LineInfo lineInfo = getRequiredInput(LINE_INFO_INPUT_NAME);
     Token tokenStream = getRequiredInput(TOKEN_STREAM_INPUT_NAME);
 
-    if (inputMemento is ParseDartMemento) {
-      ParseDartMemento memento = inputMemento;
-      if (identical(memento.inputTokenStream, tokenStream)) {
-        outputMemento = memento;
-        outputs[EXPORTED_LIBRARIES] = memento.exportedLibraries;
-        outputs[IMPORTED_LIBRARIES] = memento.importedLibraries;
-        outputs[INCLUDED_PARTS] = memento.includedParts;
-        outputs[PARSE_ERRORS] = memento.parseErrors;
-        outputs[PARSED_UNIT] = memento.parsedUnit;
-        outputs[SOURCE_KIND] = memento.sourceKind;
-        outputs[UNITS] = memento.units;
-        return;
-      }
-    }
-
     RecordingErrorListener errorListener = new RecordingErrorListener();
     Parser parser = new Parser(source, errorListener);
     AnalysisOptions options = context.analysisOptions;
@@ -1991,8 +2559,8 @@
 
     bool hasNonPartOfDirective = false;
     bool hasPartOfDirective = false;
+    HashSet<Source> explicitlyImportedSourceSet = new HashSet<Source>();
     HashSet<Source> exportedSourceSet = new HashSet<Source>();
-    HashSet<Source> importedSourceSet = new HashSet<Source>();
     HashSet<Source> includedSourceSet = new HashSet<Source>();
     for (Directive directive in unit.directives) {
       if (directive is PartOfDirective) {
@@ -2006,7 +2574,7 @@
             if (directive is ExportDirective) {
               exportedSourceSet.add(referencedSource);
             } else if (directive is ImportDirective) {
-              importedSourceSet.add(referencedSource);
+              explicitlyImportedSourceSet.add(referencedSource);
             } else if (directive is PartDirective) {
               if (referencedSource != source) {
                 includedSourceSet.add(referencedSource);
@@ -2022,6 +2590,8 @@
     //
     // Always include "dart:core" source.
     //
+    HashSet<Source> importedSourceSet =
+        new HashSet.from(explicitlyImportedSourceSet);
     Source coreLibrarySource = context.sourceFactory.forUri(DartSdk.DART_CORE);
     importedSourceSet.add(coreLibrarySource);
     //
@@ -2034,11 +2604,14 @@
     //
     // Record outputs.
     //
+    List<Source> explicitlyImportedSources =
+        explicitlyImportedSourceSet.toList();
     List<Source> exportedSources = exportedSourceSet.toList();
     List<Source> importedSources = importedSourceSet.toList();
     List<Source> includedSources = includedSourceSet.toList();
     List<AnalysisError> parseErrors = errorListener.errors;
     List<Source> unitSources = <Source>[source]..addAll(includedSourceSet);
+    outputs[EXPLICITLY_IMPORTED_LIBRARIES] = explicitlyImportedSources;
     outputs[EXPORTED_LIBRARIES] = exportedSources;
     outputs[IMPORTED_LIBRARIES] = importedSources;
     outputs[INCLUDED_PARTS] = includedSources;
@@ -2046,9 +2619,6 @@
     outputs[PARSED_UNIT] = unit;
     outputs[SOURCE_KIND] = sourceKind;
     outputs[UNITS] = unitSources;
-    outputMemento = new ParseDartMemento(tokenStream, exportedSources,
-        importedSources, includedSources, parseErrors, unit, sourceKind,
-        unitSources);
   }
 
   /**
@@ -2099,15 +2669,13 @@
       return null;
     }
     if (code == UriValidationCode.URI_WITH_INTERPOLATION) {
-      errorListener.onError(new AnalysisError.con2(librarySource,
-          uriLiteral.offset, uriLiteral.length,
-          CompileTimeErrorCode.URI_WITH_INTERPOLATION));
+      errorListener.onError(new AnalysisError(librarySource, uriLiteral.offset,
+          uriLiteral.length, CompileTimeErrorCode.URI_WITH_INTERPOLATION));
       return null;
     }
     if (code == UriValidationCode.INVALID_URI) {
-      errorListener.onError(new AnalysisError.con2(librarySource,
-          uriLiteral.offset, uriLiteral.length,
-          CompileTimeErrorCode.INVALID_URI, [uriContent]));
+      errorListener.onError(new AnalysisError(librarySource, uriLiteral.offset,
+          uriLiteral.length, CompileTimeErrorCode.INVALID_URI, [uriContent]));
       return null;
     }
     throw new AnalysisException('Failed to handle validation code: $code');
@@ -2227,8 +2795,10 @@
    * The task descriptor describing this kind of task.
    */
   static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
-      'ResolveReferencesTask', createTask, buildInputs,
-      <ResultDescriptor>[RESOLVED_UNIT]);
+      'ResolveReferencesTask', createTask, buildInputs, <ResultDescriptor>[
+    RESOLVE_REFERENCES_ERRORS,
+    RESOLVED_UNIT
+  ]);
 
   ResolveReferencesTask(InternalAnalysisContext context, AnalysisTarget target)
       : super(context, target);
@@ -2423,17 +2993,6 @@
 }
 
 /**
- * The memento for [ScanDartTask].
- */
-class ScanDartMemento {
-  final String content;
-  final Token tokenStream;
-  final LineInfo lineInfo;
-  final List<AnalysisError> errors;
-  ScanDartMemento(this.content, this.tokenStream, this.lineInfo, this.errors);
-}
-
-/**
  * A task that scans the content of a file, producing a set of Dart tokens.
  */
 class ScanDartTask extends SourceBasedAnalysisTask {
@@ -2467,17 +3026,6 @@
     Source source = getRequiredSource();
     String content = getRequiredInput(CONTENT_INPUT_NAME);
 
-    if (inputMemento is ScanDartMemento) {
-      ScanDartMemento memento = inputMemento;
-      if (memento.content == content) {
-        outputMemento = memento;
-        outputs[TOKEN_STREAM] = memento.tokenStream;
-        outputs[LINE_INFO] = memento.lineInfo;
-        outputs[SCAN_ERRORS] = memento.errors;
-        return;
-      }
-    }
-
     RecordingErrorListener errorListener = new RecordingErrorListener();
     Scanner scanner =
         new Scanner(source, new CharSequenceReader(content), errorListener);
@@ -2491,7 +3039,6 @@
     outputs[TOKEN_STREAM] = tokenStream;
     outputs[LINE_INFO] = lineInfo;
     outputs[SCAN_ERRORS] = errors;
-    outputMemento = new ScanDartMemento(content, tokenStream, lineInfo, errors);
   }
 
   /**
diff --git a/pkg/analyzer/lib/src/task/dart_work_manager.dart b/pkg/analyzer/lib/src/task/dart_work_manager.dart
new file mode 100644
index 0000000..500422f
--- /dev/null
+++ b/pkg/analyzer/lib/src/task/dart_work_manager.dart
@@ -0,0 +1,194 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library analyzer.src.task.dart_work_manager;
+
+import 'dart:collection';
+
+import 'package:analyzer/src/context/cache.dart';
+import 'package:analyzer/src/generated/engine.dart'
+    show AnalysisEngine, CacheState, InternalAnalysisContext;
+import 'package:analyzer/src/generated/source.dart';
+import 'package:analyzer/src/generated/utilities_collection.dart';
+import 'package:analyzer/src/task/dart.dart';
+import 'package:analyzer/src/task/driver.dart';
+import 'package:analyzer/task/dart.dart';
+import 'package:analyzer/task/model.dart';
+
+/**
+ * The manager for Dart specific analysis.
+ */
+class DartWorkManager implements WorkManager {
+  final InternalAnalysisContext context;
+
+  /**
+   * The [TargetedResult]s that should be computed with priority.
+   */
+  final LinkedHashSet<TargetedResult> priorityResultQueue =
+      new LinkedHashSet<TargetedResult>();
+
+  /**
+   * The sources whose kind we don't know yet.
+   */
+  final LinkedHashSet<Source> unknownSourceQueue = new LinkedHashSet<Source>();
+
+  /**
+   * The queue of library sources to process.
+   */
+  final LinkedHashSet<Source> librarySourceQueue = new LinkedHashSet<Source>();
+
+  /**
+   * Initialize a newly created manager.
+   */
+  DartWorkManager(this.context);
+
+  /**
+   * Returns the correctly typed result of `context.analysisCache`.
+   */
+  AnalysisCache get analysisCache => context.analysisCache;
+
+  /**
+   * Specifies that the client want the given [result] of the given [target]
+   * to be computed with priority.
+   */
+  void addPriorityResult(AnalysisTarget target, ResultDescriptor result) {
+    priorityResultQueue.add(new TargetedResult(target, result));
+  }
+
+  /**
+   * Notifies the manager about changes in the explicit source list.
+   */
+  void applyChange(List<Source> addedSources, List<Source> changedSources,
+      List<Source> removedSources) {
+    addedSources = addedSources.where(_isDartSource).toList();
+    changedSources = changedSources.where(_isDartSource).toList();
+    removedSources = removedSources.where(_isDartSource).toList();
+    // unknown queue
+    unknownSourceQueue.addAll(addedSources);
+    unknownSourceQueue.addAll(changedSources);
+    unknownSourceQueue.removeAll(removedSources);
+    // library queue
+    librarySourceQueue.removeAll(changedSources);
+    librarySourceQueue.removeAll(removedSources);
+    // Some of the libraries might have been invalidated, reschedule them.
+    {
+      MapIterator<AnalysisTarget, CacheEntry> iterator =
+          analysisCache.iterator();
+      while (iterator.moveNext()) {
+        AnalysisTarget target = iterator.key;
+        if (_isDartSource(target)) {
+          CacheEntry entry = iterator.value;
+          if (entry.getValue(SOURCE_KIND) == SourceKind.LIBRARY &&
+              entry.getValue(LIBRARY_ERRORS_READY) != true) {
+            librarySourceQueue.add(target);
+          }
+        }
+      }
+    }
+  }
+
+  @override
+  void applyPriorityTargets(List<AnalysisTarget> targets) {
+    // Unschedule the old targets.
+    List<TargetedResult> resultsToUnschedule = <TargetedResult>[];
+    for (TargetedResult result in priorityResultQueue) {
+      if (result.result == LIBRARY_ERRORS_READY) {
+        resultsToUnschedule.add(result);
+      }
+    }
+    priorityResultQueue.removeAll(resultsToUnschedule);
+    // Schedule new targets.
+    for (AnalysisTarget target in targets) {
+      if (_isDartSource(target)) {
+        SourceKind sourceKind = analysisCache.getValue(target, SOURCE_KIND);
+        if (sourceKind == SourceKind.LIBRARY) {
+          addPriorityResult(target, LIBRARY_ERRORS_READY);
+        } else if (sourceKind == SourceKind.PART) {
+          List<Source> libraries = context.getLibrariesContaining(target);
+          for (Source library in libraries) {
+            addPriorityResult(library, LIBRARY_ERRORS_READY);
+          }
+        }
+      }
+    }
+  }
+
+  @override
+  TargetedResult getNextResult() {
+    // Try to find a priority result to compute.
+    while (priorityResultQueue.isNotEmpty) {
+      TargetedResult result = priorityResultQueue.first;
+      if (!_needsComputing(result.target, result.result)) {
+        priorityResultQueue.remove(result);
+        continue;
+      }
+      return result;
+    }
+    // Try to find a new library to analyze.
+    while (librarySourceQueue.isNotEmpty) {
+      Source librarySource = librarySourceQueue.first;
+      // Maybe done with this library.
+      if (!_needsComputing(librarySource, LIBRARY_ERRORS_READY)) {
+        librarySourceQueue.remove(librarySource);
+        continue;
+      }
+      // Analyze this library.
+      return new TargetedResult(librarySource, LIBRARY_ERRORS_READY);
+    }
+    // No libraries in the queue, check whether there are sources to organize.
+    while (unknownSourceQueue.isNotEmpty) {
+      Source source = unknownSourceQueue.first;
+      // Maybe done with this source.
+      if (!_needsComputing(source, SOURCE_KIND)) {
+        unknownSourceQueue.remove(source);
+        continue;
+      }
+      // Compute the kind of this source.
+      return new TargetedResult(source, SOURCE_KIND);
+    }
+    // TODO(scheglov) Report errors for parts that remained in the queue after
+    // all libraries had been processed.
+    // No results to compute.
+    return null;
+  }
+
+  @override
+  WorkOrderPriority getNextResultPriority() {
+    if (priorityResultQueue.isNotEmpty) {
+      return WorkOrderPriority.PRIORITY;
+    }
+    if (unknownSourceQueue.isNotEmpty || librarySourceQueue.isNotEmpty) {
+      return WorkOrderPriority.NORMAL;
+    }
+    return WorkOrderPriority.NONE;
+  }
+
+  @override
+  void resultsComputed(
+      AnalysisTarget target, Map<ResultDescriptor, dynamic> outputs) {
+    // Organize sources.
+    if (_isDartSource(target)) {
+      SourceKind kind = outputs[SOURCE_KIND];
+      if (kind != null) {
+        unknownSourceQueue.remove(target);
+        if (kind == SourceKind.LIBRARY) {
+          librarySourceQueue.add(target);
+        }
+      }
+    }
+  }
+
+  bool _isDartSource(AnalysisTarget target) {
+    return target is Source && AnalysisEngine.isDartFileName(target.fullName);
+  }
+
+  /**
+   * Returns `true` if the given [result] of the given [target] needs
+   * computing, i.e. it is not in the valid and not in the error state.
+   */
+  bool _needsComputing(AnalysisTarget target, ResultDescriptor result) {
+    CacheState state = analysisCache.getState(target, result);
+    return state != CacheState.VALID && state != CacheState.ERROR;
+  }
+}
diff --git a/pkg/analyzer/lib/src/task/driver.dart b/pkg/analyzer/lib/src/task/driver.dart
index af608ad..ab8ab9d 100644
--- a/pkg/analyzer/lib/src/task/driver.dart
+++ b/pkg/analyzer/lib/src/task/driver.dart
@@ -26,6 +26,12 @@
   final TaskManager taskManager;
 
   /**
+   * The list of [WorkManager] used to figure out which analysis results to
+   * compute.
+   */
+  final List<WorkManager> workManagers;
+
+  /**
    * The context in which analysis is to be performed.
    */
   final InternalAnalysisContext context;
@@ -50,7 +56,7 @@
    * Initialize a newly created driver to use the tasks know to the given
    * [taskManager] to perform analysis in the given [context].
    */
-  AnalysisDriver(this.taskManager, this.context) {
+  AnalysisDriver(this.taskManager, this.workManagers, this.context) {
     _onTaskStartedController = new StreamController.broadcast();
     _onTaskCompletedController = new StreamController.broadcast();
   }
@@ -85,28 +91,31 @@
    * or `null` if there is currently no work to be done.
    */
   WorkOrder createNextWorkOrder() {
-    //
-    // TODO(brianwilkerson) This is an inefficient implementation. We need to
-    // port over the concept of the WorkManager to manage the list of sources
-    // for which some work needs to be performed so that we do not waste time
-    // repeatedly looking at the same completed sources to see whether there is
-    // work that needs to be done.
-    //
-    for (AnalysisTarget target in context.priorityTargets) {
-      WorkOrder workOrder = createWorkOrderForTarget(target, true);
-      if (workOrder != null) {
-        return workOrder;
+    while (true) {
+      // Find the WorkManager with the highest priority.
+      WorkOrderPriority highestPriority = null;
+      WorkManager highestManager = null;
+      for (WorkManager manager in workManagers) {
+        WorkOrderPriority priority = manager.getNextResultPriority();
+        if (highestPriority == null || highestPriority.index > priority.index) {
+          highestPriority = priority;
+          highestManager = manager;
+        }
+      }
+      // Nothing to do.
+      if (highestPriority == WorkOrderPriority.NONE) {
+        return null;
+      }
+      // Create a new WorkOrder.
+      TargetedResult request = highestManager.getNextResult();
+      if (request != null) {
+        WorkOrder workOrder =
+            createWorkOrderForResult(request.target, request.result);
+        if (workOrder != null) {
+          return workOrder;
+        }
       }
     }
-    // TODO(brianwilkerson) Add a third priority, corresponding to
-    // AnalysisContextImpl._pendingFutureSources to support code completion.
-    for (AnalysisTarget target in context.explicitTargets) {
-      WorkOrder workOrder = createWorkOrderForTarget(target, false);
-      if (workOrder != null) {
-        return workOrder;
-      }
-    }
-    return null;
   }
 
   /**
@@ -125,9 +134,7 @@
     }
     try {
       TaskDescriptor taskDescriptor = taskManager.findTask(target, result);
-      Object memento = entry.getMemento(result);
-      WorkItem workItem =
-          new WorkItem(context, target, taskDescriptor, memento);
+      WorkItem workItem = new WorkItem(context, target, taskDescriptor);
       return new WorkOrder(taskManager, workItem);
     } catch (exception, stackTrace) {
       throw new AnalysisException(
@@ -218,7 +225,10 @@
       for (ResultDescriptor result in task.descriptor.results) {
         // TODO(brianwilkerson) We could check here that a value was produced
         // and throw an exception if not (unless we want to allow null values).
-        entry.setValue(result, outputs[result], dependedOn, task.outputMemento);
+        entry.setValue(result, outputs[result], dependedOn);
+      }
+      for (WorkManager manager in workManagers) {
+        manager.resultsComputed(task.target, outputs);
       }
     } else {
       entry.setErrorState(task.caughtException, item.descriptor.results);
@@ -283,12 +293,6 @@
   final TaskDescriptor descriptor;
 
   /**
-   * The optional data that the task associated with [target] last time.
-   * This data may help to compute outputs more efficiently.
-   */
-  final Object inputMemento;
-
-  /**
    * An iterator used to iterate over the descriptors of the inputs to the task,
    * or `null` if all of the inputs have been collected and the task can be
    * created.
@@ -318,7 +322,7 @@
    * Initialize a newly created work item to compute the inputs for the task
    * described by the given descriptor.
    */
-  WorkItem(this.context, this.target, this.descriptor, this.inputMemento) {
+  WorkItem(this.context, this.target, this.descriptor) {
     AnalysisTarget actualTarget = identical(
             target, AnalysisContextTarget.request)
         ? new AnalysisContextTarget(context)
@@ -339,7 +343,7 @@
     if (builder != null) {
       throw new StateError("some inputs have not been computed");
     }
-    return descriptor.createTask(context, target, inputs, inputMemento);
+    return descriptor.createTask(context, target, inputs);
   }
 
   /**
@@ -384,8 +388,7 @@
         try {
           TaskDescriptor descriptor =
               taskManager.findTask(inputTarget, inputResult);
-          Object memento = inputEntry.getMemento(inputResult);
-          return new WorkItem(context, inputTarget, descriptor, memento);
+          return new WorkItem(context, inputTarget, descriptor);
         } on AnalysisException catch (exception, stackTrace) {
           this.exception = new CaughtException(exception, stackTrace);
           return null;
@@ -405,6 +408,67 @@
 }
 
 /**
+ * [AnalysisDriver] uses [WorkManager]s to select results to compute.
+ *
+ * They know specific of the targets and results they care about,
+ * so they can request analysis results in optimal order.
+ */
+abstract class WorkManager {
+  /**
+   * Notifies the managers that the given set of priority [targets] was set.
+   */
+  void applyPriorityTargets(List<AnalysisTarget> targets);
+
+  /**
+   * Return the next [TargetedResult] that this work manager wants to be
+   * computed, or `null` if this manager doesn't need any new results.
+   */
+  TargetedResult getNextResult();
+
+  /**
+   * Return the priority if the next work order this work manager want to be
+   * computed. The [AnalysisDriver] will perform the work order with
+   * the highest priority.
+   *
+   * Even if the returned value is [WorkOrderPriority.NONE], it still does not
+   * guarantee that [getNextResult] will return not `null`.
+   */
+  WorkOrderPriority getNextResultPriority();
+
+  /**
+   * Notifies the manager that the given [outputs] were produced for
+   * the given [target].
+   */
+  void resultsComputed(
+      AnalysisTarget target, Map<ResultDescriptor, dynamic> outputs);
+}
+
+/**
+ * The priorities of work orders returned by [WorkManager]s.
+ */
+enum WorkOrderPriority {
+  /**
+   * Responding to an user's action.
+   */
+  INTERACTIVE,
+
+  /**
+   * Computing information for priority sources.
+   */
+  PRIORITY,
+
+  /**
+   * A work should be done, but without any special urgency.
+   */
+  NORMAL,
+
+  /**
+   * Nothing to do.
+   */
+  NONE
+}
+
+/**
  * A description of the work to be done to compute a desired analysis result.
  * The class implements a lazy depth-first traversal of the work item's input.
  */
diff --git a/pkg/analyzer/lib/src/task/incremental_element_builder.dart b/pkg/analyzer/lib/src/task/incremental_element_builder.dart
new file mode 100644
index 0000000..a01122d
--- /dev/null
+++ b/pkg/analyzer/lib/src/task/incremental_element_builder.dart
@@ -0,0 +1,295 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library analyzer.src.task.incremental_element_builder;
+
+import 'dart:collection';
+
+import 'package:analyzer/src/generated/ast.dart';
+import 'package:analyzer/src/generated/element.dart';
+import 'package:analyzer/src/generated/resolver.dart';
+import 'package:analyzer/src/generated/scanner.dart';
+import 'package:analyzer/src/generated/source.dart';
+
+/**
+ * Incrementally updates the existing [unitElement] and builds elements for
+ * the [newUnit].
+ */
+class IncrementalCompilationUnitElementBuilder {
+  final Source source;
+  final Source librarySource;
+  final CompilationUnit oldUnit;
+  final CompilationUnitElementImpl unitElement;
+  final CompilationUnit newUnit;
+  final ElementHolder holder = new ElementHolder();
+
+  IncrementalCompilationUnitElementBuilder(
+      CompilationUnit oldUnit, this.newUnit)
+      : oldUnit = oldUnit,
+        unitElement = oldUnit.element,
+        source = oldUnit.element.source,
+        librarySource = (oldUnit.element as CompilationUnitElementImpl).librarySource;
+
+  void build() {
+    new CompilationUnitBuilder().buildCompilationUnit(
+        source, newUnit, librarySource);
+    _processDirectives();
+    _processUnitMembers();
+    newUnit.element = unitElement;
+  }
+
+  void _addElementsToHolder(CompilationUnitMember node) {
+    List<Element> elements = _getElements(node);
+    elements.forEach(_addElementToHolder);
+  }
+
+  void _addElementToHolder(Element element) {
+    if (element is PropertyAccessorElement) {
+      holder.addAccessor(element);
+    } else if (element is ClassElement) {
+      if (element.isEnum) {
+        holder.addEnum(element);
+      } else {
+        holder.addType(element);
+      }
+    } else if (element is FunctionElement) {
+      holder.addFunction(element);
+    } else if (element is FunctionTypeAliasElement) {
+      holder.addTypeAlias(element);
+    } else if (element is TopLevelVariableElement) {
+      holder.addTopLevelVariable(element);
+    }
+  }
+
+  void _processDirectives() {
+    Map<String, Directive> oldDirectiveMap = new HashMap<String, Directive>();
+    for (Directive oldDirective in oldUnit.directives) {
+      String code = TokenUtils.getFullCode(oldDirective);
+      oldDirectiveMap[code] = oldDirective;
+    }
+    // Replace new nodes with the identical old nodes.
+    for (Directive newDirective in newUnit.directives) {
+      String code = TokenUtils.getFullCode(newDirective);
+      // Prepare an old directive.
+      Directive oldDirective = oldDirectiveMap[code];
+      if (oldDirective == null) {
+        continue;
+      }
+      // URI's must be resolved to the same sources.
+      if (newDirective is UriBasedDirective &&
+          oldDirective is UriBasedDirective) {
+        if (oldDirective.source != newDirective.source) {
+          continue;
+        }
+      }
+      // Do replacement.
+      _replaceNode(newDirective, oldDirective);
+    }
+  }
+
+  void _processUnitMembers() {
+    Map<String, CompilationUnitMember> oldNodeMap =
+        new HashMap<String, CompilationUnitMember>();
+    for (CompilationUnitMember oldNode in oldUnit.declarations) {
+      String code = TokenUtils.getFullCode(oldNode);
+      oldNodeMap[code] = oldNode;
+    }
+    // Replace new nodes with the identical old nodes.
+    for (CompilationUnitMember newNode in newUnit.declarations) {
+      String code = TokenUtils.getFullCode(newNode);
+      // Prepare an old node.
+      CompilationUnitMember oldNode = oldNodeMap[code];
+      if (oldNode == null) {
+        _addElementsToHolder(newNode);
+        continue;
+      }
+      // Do replacement.
+      _replaceNode(newNode, oldNode);
+      _addElementsToHolder(oldNode);
+    }
+    // Update CompilationUnitElement.
+    unitElement.accessors = holder.accessors;
+    unitElement.enums = holder.enums;
+    unitElement.functions = holder.functions;
+    unitElement.typeAliases = holder.typeAliases;
+    unitElement.types = holder.types;
+    unitElement.topLevelVariables = holder.topLevelVariables;
+    holder.validate();
+  }
+
+  /**
+   * Replaces [newNode] with [oldNode], updates tokens and elements.
+   * The nodes must have the same tokens, but offsets may be different.
+   */
+  void _replaceNode(AstNode newNode, AstNode oldNode) {
+    // Replace node.
+    NodeReplacer.replace(newNode, oldNode);
+    // Replace tokens.
+    {
+      Token oldBeginToken = TokenUtils.getBeginTokenNotComment(newNode);
+      Token newBeginToken = TokenUtils.getBeginTokenNotComment(oldNode);
+      oldBeginToken.previous.setNext(newBeginToken);
+      oldNode.endToken.setNext(newNode.endToken.next);
+    }
+    // Change tokens offsets.
+    Map<int, int> offsetMap = new HashMap<int, int>();
+    TokenUtils.copyTokenOffsets(offsetMap, oldNode.beginToken,
+        newNode.beginToken, oldNode.endToken, newNode.endToken, true);
+    // Change elements offsets.
+    {
+      var visitor = new _UpdateElementOffsetsVisitor(offsetMap);
+      List<Element> elements = _getElements(oldNode);
+      for (Element element in elements) {
+        element.accept(visitor);
+      }
+    }
+  }
+
+  /**
+   * Returns [Element]s that are declared directly by the given [node].
+   * This does not include any child elements - parameters, local variables.
+   *
+   * Usually just one [Element] is returned, but [VariableDeclarationList]
+   * nodes may declare more than one.
+   */
+  static List<Element> _getElements(AstNode node) {
+    List<Element> elements = <Element>[];
+    if (node is TopLevelVariableDeclaration) {
+      VariableDeclarationList variableList = node.variables;
+      if (variableList != null) {
+        for (VariableDeclaration variable in variableList.variables) {
+          TopLevelVariableElement element = variable.element;
+          elements.add(element);
+          elements.add(element.getter);
+          elements.add(element.setter);
+        }
+      }
+    } else if (node is PartDirective || node is PartOfDirective) {
+    } else if (node is Directive && node.element != null) {
+      elements.add(node.element);
+    } else if (node is Declaration && node.element != null) {
+      Element element = node.element;
+      elements.add(element);
+      if (element is PropertyAccessorElement) {
+        elements.add(element.variable);
+      }
+    }
+    return elements;
+  }
+}
+
+/**
+ * Utilities for [Token] manipulations.
+ */
+class TokenUtils {
+  static const String _SEPARATOR = "\uFFFF";
+
+  /**
+   * Copy offsets from [newToken]s to [oldToken]s.
+   */
+  static void copyTokenOffsets(Map<int, int> offsetMap, Token oldToken,
+      Token newToken, Token oldEndToken, Token newEndToken,
+      [bool goUpComment = false]) {
+    if (oldToken is CommentToken && newToken is CommentToken) {
+      if (goUpComment) {
+        copyTokenOffsets(offsetMap, (oldToken as CommentToken).parent,
+            (newToken as CommentToken).parent, oldEndToken, newEndToken);
+      }
+      while (oldToken != null) {
+        offsetMap[oldToken.offset] = newToken.offset;
+        oldToken.offset = newToken.offset;
+        oldToken = oldToken.next;
+        newToken = newToken.next;
+      }
+      assert(oldToken == null);
+      assert(newToken == null);
+      return;
+    }
+    while (true) {
+      if (oldToken.precedingComments != null) {
+        assert(newToken.precedingComments != null);
+        copyTokenOffsets(offsetMap, oldToken.precedingComments,
+            newToken.precedingComments, oldEndToken, newEndToken);
+      }
+      offsetMap[oldToken.offset] = newToken.offset;
+      oldToken.offset = newToken.offset;
+      if (oldToken == oldEndToken) {
+        assert(newToken == newEndToken);
+        break;
+      }
+      oldToken = oldToken.next;
+      newToken = newToken.next;
+    }
+  }
+
+  static Token getBeginTokenNotComment(AstNode node) {
+    Token oldBeginToken = node.beginToken;
+    if (oldBeginToken is CommentToken) {
+      oldBeginToken = (oldBeginToken as CommentToken).parent;
+    }
+    return oldBeginToken;
+  }
+
+  /**
+   * Return the token string of all the [node] tokens.
+   */
+  static String getFullCode(AstNode node) {
+    List<Token> tokens = getTokens(node);
+    return joinTokens(tokens);
+  }
+
+  /**
+   * Returns all tokends (including comments) of the given [node].
+   */
+  static List<Token> getTokens(AstNode node) {
+    List<Token> tokens = <Token>[];
+    Token token = getBeginTokenNotComment(node);
+    Token endToken = node.endToken;
+    while (true) {
+      // append comment tokens
+      for (Token commentToken = token.precedingComments;
+          commentToken != null;
+          commentToken = commentToken.next) {
+        tokens.add(commentToken);
+      }
+      // append token
+      tokens.add(token);
+      // next token
+      if (token == endToken) {
+        break;
+      }
+      token = token.next;
+    }
+    return tokens;
+  }
+
+  static String joinTokens(List<Token> tokens) {
+    return tokens.map((token) => token.lexeme).join(_SEPARATOR);
+  }
+}
+
+/**
+ * Updates name offsets of [Element]s according to the [map].
+ */
+class _UpdateElementOffsetsVisitor extends GeneralizingElementVisitor {
+  final Map<int, int> map;
+
+  _UpdateElementOffsetsVisitor(this.map);
+
+  void visitElement(Element element) {
+    if (element is CompilationUnitElement) {
+      return;
+    }
+    if (element.isSynthetic) {
+      return;
+    }
+    int oldOffset = element.nameOffset;
+    int newOffset = map[oldOffset];
+    assert(newOffset != null);
+    (element as ElementImpl).nameOffset = newOffset;
+    if (element is! LibraryElement) {
+      super.visitElement(element);
+    }
+  }
+}
diff --git a/pkg/analyzer/lib/src/task/model.dart b/pkg/analyzer/lib/src/task/model.dart
index b8671bc..a48f85a 100644
--- a/pkg/analyzer/lib/src/task/model.dart
+++ b/pkg/analyzer/lib/src/task/model.dart
@@ -9,27 +9,10 @@
 import 'package:analyzer/task/model.dart';
 
 /**
- * A concrete implementation of a [CompositeResultDescriptor].
+ * The default [ResultCachingPolicy], results are never flushed.
  */
-class CompositeResultDescriptorImpl<V> extends ResultDescriptorImpl<V>
-    implements CompositeResultDescriptor<V> {
-  /**
-   * The results that contribute to this result.
-   */
-  final List<ResultDescriptor<V>> contributors = <ResultDescriptor<V>>[];
-
-  /**
-   * Initialize a newly created composite result to have the given [name].
-   */
-  CompositeResultDescriptorImpl(String name) : super(name, null);
-
-  /**
-   * Record that the given analysis [result] contibutes to this result.
-   */
-  void recordContributor(ResultDescriptor<V> result) {
-    contributors.add(result);
-  }
-}
+const ResultCachingPolicy DEFAULT_CACHING_POLICY =
+    const SimpleResultCachingPolicy(-1, -1);
 
 /**
  * A concrete implementation of a [ListResultDescriptor].
@@ -38,12 +21,12 @@
     implements ListResultDescriptor<E> {
   /**
    * Initialize a newly created analysis result to have the given [name] and
-   * [defaultValue]. If a composite result is specified, then this result will
-   * contribute to it.
+   * [defaultValue]. If a [cachingPolicy] is provided, it will control how long
+   * values associated with this result will remain in the cache.
    */
   ListResultDescriptorImpl(String name, List<E> defaultValue,
-      {CompositeResultDescriptor contributesTo})
-      : super(name, defaultValue, contributesTo: contributesTo);
+      {ResultCachingPolicy<List<E>> cachingPolicy: DEFAULT_CACHING_POLICY})
+      : super(name, defaultValue, cachingPolicy: cachingPolicy);
 
   @override
   ListTaskInput<E> of(AnalysisTarget target) =>
@@ -65,16 +48,17 @@
   final V defaultValue;
 
   /**
+   * The caching policy for results described by this descriptor.
+   */
+  final ResultCachingPolicy<V> cachingPolicy;
+
+  /**
    * Initialize a newly created analysis result to have the given [name] and
-   * [defaultValue]. If a composite result is specified, then this result will
-   * contribute to it.
+   * [defaultValue]. If a [cachingPolicy] is provided, it will control how long
+   * values associated with this result will remain in the cache.
    */
   ResultDescriptorImpl(this.name, this.defaultValue,
-      {CompositeResultDescriptor contributesTo}) {
-    if (contributesTo is CompositeResultDescriptorImpl) {
-      contributesTo.recordContributor(this);
-    }
-  }
+      {this.cachingPolicy: DEFAULT_CACHING_POLICY});
 
   @override
   TaskInput<V> of(AnalysisTarget target) =>
@@ -85,6 +69,23 @@
 }
 
 /**
+ * A simple [ResultCachingPolicy] implementation that consider all the objects
+ * to be of the size `1`.
+ */
+class SimpleResultCachingPolicy<T> implements ResultCachingPolicy<T> {
+  @override
+  final int maxActiveSize;
+
+  @override
+  final int maxIdleSize;
+
+  const SimpleResultCachingPolicy(this.maxActiveSize, this.maxIdleSize);
+
+  @override
+  int measure(T object) => 1;
+}
+
+/**
  * A concrete implementation of a [TaskDescriptor].
  */
 class TaskDescriptorImpl implements TaskDescriptor {
@@ -121,10 +122,9 @@
 
   @override
   AnalysisTask createTask(AnalysisContext context, AnalysisTarget target,
-      Map<String, dynamic> inputs, Object inputMemento) {
+      Map<String, dynamic> inputs) {
     AnalysisTask task = buildTask(context, target);
     task.inputs = inputs;
-    task.inputMemento = inputMemento;
     return task;
   }
 
diff --git a/pkg/analyzer/lib/src/task/task_dart.dart b/pkg/analyzer/lib/src/task/task_dart.dart
index 5a3491b..9192970 100644
--- a/pkg/analyzer/lib/src/task/task_dart.dart
+++ b/pkg/analyzer/lib/src/task/task_dart.dart
@@ -82,6 +82,6 @@
   @override
   void internalPerform() {
     CompilationUnitBuilder builder = new CompilationUnitBuilder();
-    unitElement = builder.buildCompilationUnit(source, unit);
+    unitElement = builder.buildCompilationUnit(source, unit, library);
   }
 }
diff --git a/pkg/analyzer/lib/task/dart.dart b/pkg/analyzer/lib/task/dart.dart
index a4ac9ee1..0a3915b 100644
--- a/pkg/analyzer/lib/task/dart.dart
+++ b/pkg/analyzer/lib/task/dart.dart
@@ -10,18 +10,38 @@
 import 'package:analyzer/src/generated/scanner.dart';
 import 'package:analyzer/src/generated/source.dart';
 import 'package:analyzer/src/generated/utilities_general.dart';
+import 'package:analyzer/src/task/dart.dart';
 import 'package:analyzer/task/model.dart';
 
 /**
- * The analysis errors associated with a target.
+ * The resolved [CompilationUnit] associated with a compilation unit, with
+ * constants resolved.
  *
- * The value combines errors represented by multiple other results.
+ * The result is only available for [LibrarySpecificUnit]s.
  */
-// TODO(brianwilkerson) If we want to associate errors with targets smaller than
-// a file, we will need other contribution points to collect them. In which case
-// we might want to rename this and/or document that it applies to files.
-final CompositeResultDescriptor<List<AnalysisError>> DART_ERRORS =
-    new CompositeResultDescriptor<List<AnalysisError>>('DART_ERRORS');
+final ResultDescriptor<CompilationUnit> CONSTANT_RESOLVED_UNIT =
+    new ResultDescriptor<CompilationUnit>('CONSTANT_RESOLVED_UNIT', null,
+        cachingPolicy: AST_CACHING_POLICY);
+
+/**
+ * The analysis errors associated with a [Source] representing a compilation
+ * unit.
+ */
+final ListResultDescriptor<AnalysisError> DART_ERRORS =
+    new ListResultDescriptor<AnalysisError>(
+        'DART_ERRORS', AnalysisError.NO_ERRORS);
+
+/**
+ * The sources of the libraries that are explicitly imported into a library.
+ *
+ * The list will be empty if there are no explicit imports, but will not be
+ * `null`.
+ *
+ * The result is only available for [Source]s representing a library.
+ */
+final ListResultDescriptor<Source> EXPLICITLY_IMPORTED_LIBRARIES =
+    new ListResultDescriptor<Source>(
+        'EXPLICITLY_IMPORTED_LIBRARIES', Source.EMPTY_LIST);
 
 /**
  * The sources of the libraries that are exported from a library.
@@ -29,22 +49,22 @@
  * The list will be empty if there are no exported libraries, but will not be
  * `null`.
  *
- * The result is only available for targets representing a Dart library.
+ * The result is only available for [Source]s representing a library.
  */
 final ListResultDescriptor<Source> EXPORTED_LIBRARIES =
-    new ListResultDescriptor<Source>('EXPORTED_LIBRARIES', Source.EMPTY_ARRAY);
+    new ListResultDescriptor<Source>('EXPORTED_LIBRARIES', Source.EMPTY_LIST);
 
 /**
- * The sources of the libraries that are imported into a library.
+ * The sources of the libraries that are implicitly or explicitly imported into
+ * a library.
  *
- * Not `null`.
- * The default value is empty.
- * When computed, this list will always contain at least `dart:core` source.
+ * The list will minimally contain the source for `dart:core` because it is
+ * implicitly imported into every library, and therefore will never be `null`.
  *
- * The result is only available for targets representing a Dart library.
+ * The result is only available for [Source]s representing a library.
  */
 final ListResultDescriptor<Source> IMPORTED_LIBRARIES =
-    new ListResultDescriptor<Source>('IMPORTED_LIBRARIES', Source.EMPTY_ARRAY);
+    new ListResultDescriptor<Source>('IMPORTED_LIBRARIES', Source.EMPTY_LIST);
 
 /**
  * The sources of the parts that are included in a library.
@@ -52,16 +72,16 @@
  * The list will be empty if there are no parts, but will not be `null`. The
  * list does *not* include the source for the defining compilation unit.
  *
- * The result is only available for targets representing a Dart library.
+ * The result is only available for [Source]s representing a library.
  */
 final ListResultDescriptor<Source> INCLUDED_PARTS =
-    new ListResultDescriptor<Source>('INCLUDED_PARTS', Source.EMPTY_ARRAY);
+    new ListResultDescriptor<Source>('INCLUDED_PARTS', Source.EMPTY_LIST);
 
 /**
  * A flag specifying whether a library is dependent on code that is only
  * available in a client.
  *
- * The result is only available for targets representing a Dart library.
+ * The result is only available for [Source]s representing a library.
  */
 final ResultDescriptor<bool> IS_CLIENT =
     new ResultDescriptor<bool>('IS_CLIENT', false);
@@ -69,7 +89,7 @@
 /**
  * A flag specifying whether a library is launchable.
  *
- * The result is only available for targets representing a Dart library.
+ * The result is only available for [Source]s representing a library.
  */
 final ResultDescriptor<bool> IS_LAUNCHABLE =
     new ResultDescriptor<bool>('IS_LAUNCHABLE', false);
@@ -77,7 +97,7 @@
 /**
  * The fully built [LibraryElement] associated with a library.
  *
- * The result is only available for targets representing a Dart library.
+ * The result is only available for [Source]s representing a library.
  */
 final ResultDescriptor<LibraryElement> LIBRARY_ELEMENT =
     new ResultDescriptor<LibraryElement>('LIBRARY_ELEMENT', null);
@@ -87,18 +107,27 @@
  *
  * The AST structure will not have resolution information associated with it.
  *
- * The result is only available for targets representing a Dart compilation unit.
+ * The result is only available for [Source]s representing a compilation unit.
  */
 final ResultDescriptor<CompilationUnit> PARSED_UNIT =
-    new ResultDescriptor<CompilationUnit>('PARSED_UNIT', null);
+    new ResultDescriptor<CompilationUnit>('PARSED_UNIT', null,
+        cachingPolicy: AST_CACHING_POLICY);
 
 /**
- * The resolved [CompilationUnit] associated with a unit.
+ * The resolved [CompilationUnit] associated with a compilation unit, with
+ * constants not yet resolved.
  *
- * The result is only available for targets representing a unit.
+ * The result is only available for [LibrarySpecificUnit]s.
  */
 final ResultDescriptor<CompilationUnit> RESOLVED_UNIT =
-    new ResultDescriptor<CompilationUnit>('RESOLVED_UNIT', null);
+    new ResultDescriptor<CompilationUnit>('RESOLVED_UNIT', null,
+        cachingPolicy: AST_CACHING_POLICY);
+
+/**
+ * The kind of a [Source].
+ */
+final ResultDescriptor<SourceKind> SOURCE_KIND =
+    new ResultDescriptor<SourceKind>('SOURCE_KIND', SourceKind.UNKNOWN);
 
 /**
  * The token stream produced while scanning a compilation unit.
@@ -106,10 +135,10 @@
  * The value is the first token in the file, or the special end-of-file marker
  * at the end of the stream if the file does not contain any tokens.
  *
- * The result is only available for targets representing a Dart compilation unit.
+ * The result is only available for [Source]s representing a compilation unit.
  */
-final ResultDescriptor<Token> TOKEN_STREAM =
-    new ResultDescriptor<Token>('TOKEN_STREAM', null);
+final ResultDescriptor<Token> TOKEN_STREAM = new ResultDescriptor<Token>(
+    'TOKEN_STREAM', null, cachingPolicy: TOKEN_STREAM_CACHING_POLICY);
 
 /**
  * The sources of the Dart files that a library consists of.
@@ -117,10 +146,10 @@
  * The list will include the source of the defining unit and [INCLUDED_PARTS].
  * So, it is never empty or `null`.
  *
- * The result is only available for targets representing a Dart library.
+ * The result is only available for [Source]s representing a library.
  */
 final ListResultDescriptor<Source> UNITS =
-    new ListResultDescriptor<Source>('UNITS', Source.EMPTY_ARRAY);
+    new ListResultDescriptor<Source>('UNITS', Source.EMPTY_LIST);
 
 /**
  * A specific compilation unit in a specific library.
diff --git a/pkg/analyzer/lib/task/general.dart b/pkg/analyzer/lib/task/general.dart
index 7cf1b97..c40ff4c 100644
--- a/pkg/analyzer/lib/task/general.dart
+++ b/pkg/analyzer/lib/task/general.dart
@@ -8,25 +8,19 @@
 import 'package:analyzer/task/model.dart';
 
 /**
- * The contents of a single file.
+ * The content of a [Source].
  */
 final ResultDescriptor<String> CONTENT =
     new ResultDescriptor<String>('CONTENT', null);
 
 /**
- * The line information for a single file.
+ * The line information for a [Source].
  */
 final ResultDescriptor<LineInfo> LINE_INFO =
     new ResultDescriptor<LineInfo>('LINE_INFO', null);
 
 /**
- * The modification time of a file.
+ * The modification time of a [Source].
  */
 final ResultDescriptor<int> MODIFICATION_TIME =
     new ResultDescriptor<int>('MODIFICATION_TIME', -1);
-
-/**
- * The kind of a [Source].
- */
-final ResultDescriptor<SourceKind> SOURCE_KIND =
-    new ResultDescriptor<SourceKind>('SOURCE_KIND', SourceKind.UNKNOWN);
diff --git a/pkg/analyzer/lib/task/model.dart b/pkg/analyzer/lib/task/model.dart
index a648ced..8f65f8b 100644
--- a/pkg/analyzer/lib/task/model.dart
+++ b/pkg/analyzer/lib/task/model.dart
@@ -103,12 +103,6 @@
   Map<String, dynamic> inputs;
 
   /**
-   * The optional data that the task associated with [target] last time.
-   * This data may help to compute outputs more efficiently.
-   */
-  Object inputMemento;
-
-  /**
    * A table mapping result descriptors whose values are produced by this task
    * to the values that were produced.
    */
@@ -116,12 +110,6 @@
       new HashMap<ResultDescriptor, dynamic>();
 
   /**
-   * An optional data that the task wants to associate with [target].
-   * This data may help later to compute outputs more efficiently.
-   */
-  Object outputMemento;
-
-  /**
    * The exception that was thrown while performing this task, or `null` if the
    * task completed successfully.
    */
@@ -246,28 +234,6 @@
 }
 
 /**
- * A [ResultDescriptor] that denotes an analysis result that is a union of
- * one or more other results.
- *
- * Clients are not expected to subtype this class.
- */
-abstract class CompositeResultDescriptor<V> extends ResultDescriptor<V> {
-  /**
-   * Initialize a newly created composite result to have the given [name].
-   */
-  factory CompositeResultDescriptor(
-      String name) = CompositeResultDescriptorImpl;
-
-  /**
-   * Return a list containing the descriptors of the results that are unioned
-   * together to compose the value of this result.
-   *
-   * Clients must not modify the returned list.
-   */
-  List<ResultDescriptor<V>> get contributors;
-}
-
-/**
  * A description of a [List]-based analysis result that can be computed by an
  * [AnalysisTask].
  *
@@ -275,11 +241,12 @@
  */
 abstract class ListResultDescriptor<E> implements ResultDescriptor<List<E>> {
   /**
-   * Initialize a newly created analysis result to have the given [name]. If a
-   * composite result is specified, then this result will contribute to it.
+   * Initialize a newly created analysis result to have the given [name] and
+   * [defaultValue]. If a [cachingPolicy] is provided, it will control how long
+   * values associated with this result will remain in the cache.
    */
   factory ListResultDescriptor(String name, List<E> defaultValue,
-      {CompositeResultDescriptor<List<E>> contributesTo}) = ListResultDescriptorImpl<E>;
+      {ResultCachingPolicy<List<E>> cachingPolicy}) = ListResultDescriptorImpl<E>;
 
   @override
   ListTaskInput<E> of(AnalysisTarget target);
@@ -338,17 +305,52 @@
 }
 
 /**
+ * A policy object that can compute sizes of results and provide the maximum
+ * active and idle sizes that can be kept in the cache.
+ *
+ * All the [ResultDescriptor]s with the same [ResultCachingPolicy] instance
+ * share the same total size in a cache.
+ */
+abstract class ResultCachingPolicy<T> {
+  /**
+   * Return the maximum total size of results that can be kept in the cache
+   * while analysis is in progress.
+   */
+  int get maxActiveSize;
+
+  /**
+   * Return the maximum total size of results that can be kept in the cache
+   * while analysis is idle.
+   */
+  int get maxIdleSize;
+
+  /**
+   * Return the size of the given [object].
+   */
+  int measure(T object);
+}
+
+/**
  * A description of an analysis result that can be computed by an [AnalysisTask].
  *
  * Clients are not expected to subtype this class.
  */
 abstract class ResultDescriptor<V> {
   /**
-   * Initialize a newly created analysis result to have the given [name]. If a
-   * composite result is specified, then this result will contribute to it.
+   * Initialize a newly created analysis result to have the given [name] and
+   * [defaultValue].
+   *
+   * The given [cachingPolicy] is used to limit the total size of results
+   * described by this descriptor. If no policy is specified, the results are
+   * never evicted from the cache, and removed only when they are invalidated.
    */
   factory ResultDescriptor(String name, V defaultValue,
-      {CompositeResultDescriptor<V> contributesTo}) = ResultDescriptorImpl;
+      {ResultCachingPolicy<V> cachingPolicy}) = ResultDescriptorImpl;
+
+  /**
+   * Return the caching policy for results described by this descriptor.
+   */
+  ResultCachingPolicy<V> get cachingPolicy;
 
   /**
    * Return the default value for results described by this descriptor.
@@ -401,7 +403,7 @@
    * used to compute results based on the given [inputs].
    */
   AnalysisTask createTask(AnalysisContext context, AnalysisTarget target,
-      Map<String, dynamic> inputs, Object inputMemento);
+      Map<String, dynamic> inputs);
 }
 
 /**
diff --git a/pkg/analyzer/test/generated/all_the_rest_test.dart b/pkg/analyzer/test/generated/all_the_rest_test.dart
index e16bff6..d56a925 100644
--- a/pkg/analyzer/test/generated/all_the_rest_test.dart
+++ b/pkg/analyzer/test/generated/all_the_rest_test.dart
@@ -7,8 +7,6 @@
 
 library engine.all_the_rest_test;
 
-import 'dart:collection';
-
 import 'package:analyzer/file_system/file_system.dart';
 import 'package:analyzer/file_system/memory_file_system.dart';
 import 'package:analyzer/file_system/physical_file_system.dart';
@@ -35,10 +33,12 @@
 import 'package:analyzer/src/generated/testing/test_type_provider.dart';
 import 'package:analyzer/src/generated/utilities_collection.dart';
 import 'package:analyzer/src/generated/utilities_dart.dart';
+import 'package:analyzer/src/task/dart.dart';
 import 'package:path/src/context.dart';
 import 'package:unittest/unittest.dart';
 
 import '../reflective_tests.dart';
+import 'engine_test.dart';
 import 'parser_test.dart';
 import 'resolver_test.dart';
 import 'test_support.dart';
@@ -466,6 +466,52 @@
   }
 }
 
+/**
+ * Implementation of [ConstantEvaluationValidator] used during unit tests;
+ * verifies that any nodes referenced during constant evaluation are present in
+ * the dependency graph.
+ */
+class ConstantEvaluationValidator_ForTest
+    implements ConstantEvaluationValidator {
+  ConstantValueComputer computer;
+
+  ConstantEvaluationTarget _nodeBeingEvaluated;
+
+  @override
+  void beforeComputeValue(ConstantEvaluationTarget constant) {
+    _nodeBeingEvaluated = constant;
+  }
+
+  @override
+  void beforeGetConstantInitializers(ConstructorElement constructor) {
+    // Make sure we properly recorded the dependency.
+    expect(
+        computer.referenceGraph.containsPath(_nodeBeingEvaluated, constructor),
+        isTrue);
+  }
+
+  @override
+  void beforeGetEvaluationResult(ConstantEvaluationTarget constant) {
+    // Make sure we properly recorded the dependency.
+    expect(computer.referenceGraph.containsPath(_nodeBeingEvaluated, constant),
+        isTrue);
+  }
+
+  @override
+  void beforeGetFieldEvaluationResult(FieldElementImpl field) {
+    // Make sure we properly recorded the dependency.
+    expect(computer.referenceGraph.containsPath(_nodeBeingEvaluated, field),
+        isTrue);
+  }
+
+  @override
+  void beforeGetParameterDefault(ParameterElement parameter) {
+    // Make sure we properly recorded the dependency.
+    expect(computer.referenceGraph.containsPath(_nodeBeingEvaluated, parameter),
+        isTrue);
+  }
+}
+
 @reflectiveTest
 class ConstantEvaluatorTest extends ResolverTestCase {
   void fail_constructor() {
@@ -850,12 +896,15 @@
 @reflectiveTest
 class ConstantFinderTest extends EngineTestCase {
   AstNode _node;
-
   TypeProvider _typeProvider;
+  AnalysisContext _context;
+  Source _source;
 
   void setUp() {
     super.setUp();
     _typeProvider = new TestTypeProvider();
+    _context = new TestAnalysisContext();
+    _source = new TestSource();
   }
 
   /**
@@ -879,118 +928,93 @@
 
   void test_visitConstructorDeclaration_const() {
     ConstructorElement element = _setupConstructorDeclaration("A", true);
-    expect(_findConstantDeclarations()[element], same(_node));
+    expect(_findConstants(), contains(element));
   }
 
   void test_visitConstructorDeclaration_nonConst() {
     _setupConstructorDeclaration("A", false);
-    expect(_findConstantDeclarations().isEmpty, isTrue);
-  }
-
-  void test_visitInstanceCreationExpression_const() {
-    _setupInstanceCreationExpression("A", true);
-    expect(_findConstructorInvocations().contains(_node), isTrue);
-  }
-
-  void test_visitInstanceCreationExpression_nonConst() {
-    _setupInstanceCreationExpression("A", false);
-    expect(_findConstructorInvocations().isEmpty, isTrue);
+    expect(_findConstants(), isEmpty);
   }
 
   void test_visitVariableDeclaration_const() {
     VariableElement element = _setupVariableDeclaration("v", true, true);
-    expect(_findVariableDeclarations()[element], same(_node));
+    expect(_findConstants(), contains(element));
   }
 
   void test_visitVariableDeclaration_final_inClass() {
     _setupFieldDeclaration('C', 'f', Keyword.FINAL);
-    expect(_findVariableDeclarations(), isEmpty);
+    expect(_findConstants(), isEmpty);
   }
 
   void test_visitVariableDeclaration_final_inClassWithConstConstructor() {
     VariableDeclaration field = _setupFieldDeclaration('C', 'f', Keyword.FINAL,
         hasConstConstructor: true);
-    expect(_findVariableDeclarations()[field.element], same(field));
+    expect(_findConstants(), contains(field.element));
   }
 
   void test_visitVariableDeclaration_final_outsideClass() {
     _setupVariableDeclaration('v', false, true, isFinal: true);
-    expect(_findVariableDeclarations(), isEmpty);
+    expect(_findConstants(), isEmpty);
   }
 
   void test_visitVariableDeclaration_noInitializer() {
     _setupVariableDeclaration("v", true, false);
-    expect(_findVariableDeclarations().isEmpty, isTrue);
+    expect(_findConstants(), isEmpty);
   }
 
   void test_visitVariableDeclaration_nonConst() {
     _setupVariableDeclaration("v", false, true);
-    expect(_findVariableDeclarations().isEmpty, isTrue);
+    expect(_findConstants(), isEmpty);
   }
 
   void test_visitVariableDeclaration_static_const_inClass() {
     VariableDeclaration field =
         _setupFieldDeclaration('C', 'f', Keyword.CONST, isStatic: true);
-    expect(_findVariableDeclarations()[field.element], same(field));
+    expect(_findConstants(), contains(field.element));
   }
 
   void test_visitVariableDeclaration_static_const_inClassWithConstConstructor() {
     VariableDeclaration field = _setupFieldDeclaration('C', 'f', Keyword.CONST,
         isStatic: true, hasConstConstructor: true);
-    expect(_findVariableDeclarations()[field.element], same(field));
+    expect(_findConstants(), contains(field.element));
   }
 
   void test_visitVariableDeclaration_static_final_inClassWithConstConstructor() {
-    _setupFieldDeclaration('C', 'f', Keyword.FINAL,
+    VariableDeclaration field = _setupFieldDeclaration('C', 'f', Keyword.FINAL,
         isStatic: true, hasConstConstructor: true);
-    expect(_findVariableDeclarations(), isEmpty);
+    expect(_findConstants(), isNot(contains(field.element)));
   }
 
   void test_visitVariableDeclaration_uninitialized_final_inClassWithConstConstructor() {
-    _setupFieldDeclaration('C', 'f', Keyword.FINAL,
+    VariableDeclaration field = _setupFieldDeclaration('C', 'f', Keyword.FINAL,
         isInitialized: false, hasConstConstructor: true);
-    expect(_findVariableDeclarations(), isEmpty);
+    expect(_findConstants(), isNot(contains(field.element)));
   }
 
   void test_visitVariableDeclaration_uninitialized_static_const_inClass() {
     _setupFieldDeclaration('C', 'f', Keyword.CONST,
         isStatic: true, isInitialized: false);
-    expect(_findVariableDeclarations(), isEmpty);
+    expect(_findConstants(), isEmpty);
   }
 
   List<Annotation> _findAnnotations() {
-    ConstantFinder finder = new ConstantFinder();
-    _node.accept(finder);
-    List<Annotation> annotations = finder.annotations;
-    expect(annotations, isNotNull);
-    return annotations;
+    Set<Annotation> annotations = new Set<Annotation>();
+    for (ConstantEvaluationTarget target in _findConstants()) {
+      if (target is ConstantEvaluationTarget_Annotation) {
+        expect(target.context, same(_context));
+        expect(target.source, same(_source));
+        annotations.add(target.annotation);
+      }
+    }
+    return new List<Annotation>.from(annotations);
   }
 
-  Map<ConstructorElement, ConstructorDeclaration> _findConstantDeclarations() {
-    ConstantFinder finder = new ConstantFinder();
+  Set<ConstantEvaluationTarget> _findConstants() {
+    ConstantFinder finder = new ConstantFinder(_context, _source, _source);
     _node.accept(finder);
-    Map<ConstructorElement, ConstructorDeclaration> constructorMap =
-        finder.constructorMap;
-    expect(constructorMap, isNotNull);
-    return constructorMap;
-  }
-
-  List<InstanceCreationExpression> _findConstructorInvocations() {
-    ConstantFinder finder = new ConstantFinder();
-    _node.accept(finder);
-    List<InstanceCreationExpression> constructorInvocations =
-        finder.constructorInvocations;
-    expect(constructorInvocations, isNotNull);
-    return constructorInvocations;
-  }
-
-  Map<PotentiallyConstVariableElement, VariableDeclaration> _findVariableDeclarations() {
-    ConstantFinder finder = new ConstantFinder();
-    _node.accept(finder);
-    Map<PotentiallyConstVariableElement, VariableDeclaration> variableMap =
-        finder.variableMap;
-    expect(variableMap, isNotNull);
-    return variableMap;
+    Set<ConstantEvaluationTarget> constants = finder.constantsToCompute;
+    expect(constants, isNotNull);
+    return constants;
   }
 
   ConstructorElement _setupConstructorDeclaration(String name, bool isConst) {
@@ -1042,12 +1066,6 @@
     return variableDeclaration;
   }
 
-  void _setupInstanceCreationExpression(String name, bool isConst) {
-    _node = AstFactory.instanceCreationExpression2(
-        isConst ? Keyword.CONST : null,
-        AstFactory.typeName3(AstFactory.identifier3(name)));
-  }
-
   VariableElement _setupVariableDeclaration(
       String name, bool isConst, bool isInitialized, {isFinal: false}) {
     VariableDeclaration variableDeclaration = isInitialized
@@ -1251,7 +1269,7 @@
     analysisContext.computeErrors(librarySource);
     expect(unit, isNotNull);
     ConstantValueComputer computer = _makeConstantValueComputer();
-    computer.add(unit);
+    computer.add(unit, librarySource, librarySource);
     computer.computeValues();
     NodeList<CompilationUnitMember> members = unit.declarations;
     expect(members, hasLength(3));
@@ -1269,7 +1287,7 @@
         analysisContext.resolveCompilationUnit(librarySource, libraryElement);
     expect(unit, isNotNull);
     ConstantValueComputer computer = _makeConstantValueComputer();
-    computer.add(unit);
+    computer.add(unit, librarySource, librarySource);
     computer.computeValues();
     NodeList<CompilationUnitMember> members = unit.declarations;
     expect(members, hasLength(2));
@@ -1300,8 +1318,8 @@
         analysisContext.resolveCompilationUnit(partSource, libraryElement);
     expect(partUnit, isNotNull);
     ConstantValueComputer computer = _makeConstantValueComputer();
-    computer.add(libraryUnit);
-    computer.add(partUnit);
+    computer.add(libraryUnit, librarySource, librarySource);
+    computer.add(partUnit, partSource, librarySource);
     computer.computeValues();
     NodeList<CompilationUnitMember> libraryMembers = libraryUnit.declarations;
     expect(libraryMembers, hasLength(2));
@@ -1322,13 +1340,30 @@
         analysisContext.resolveCompilationUnit(librarySource, libraryElement);
     expect(unit, isNotNull);
     ConstantValueComputer computer = _makeConstantValueComputer();
-    computer.add(unit);
+    computer.add(unit, librarySource, librarySource);
     computer.computeValues();
     NodeList<CompilationUnitMember> members = unit.declarations;
     expect(members, hasLength(1));
     _validate(true, (members[0] as TopLevelVariableDeclaration).variables);
   }
 
+  void test_computeValues_value_depends_on_enum() {
+    Source librarySource = addSource('''
+enum E { id0, id1 }
+const E e = E.id0;
+''');
+    LibraryElement libraryElement = resolve(librarySource);
+    CompilationUnit unit =
+        analysisContext.resolveCompilationUnit(librarySource, libraryElement);
+    expect(unit, isNotNull);
+    ConstantValueComputer computer = _makeConstantValueComputer();
+    computer.add(unit, librarySource, librarySource);
+    computer.computeValues();
+    TopLevelVariableDeclaration declaration = unit.declarations
+        .firstWhere((member) => member is TopLevelVariableDeclaration);
+    _validate(true, declaration.variables);
+  }
+
   void test_dependencyOnConstructor() {
     // x depends on "const A()"
     _assertProperDependencies(r'''
@@ -1433,6 +1468,17 @@
 const B b = const B();''');
   }
 
+  void test_dependencyOnInitializedFinal() {
+    // a depends on A() depends on A.x
+    _assertProperDependencies('''
+class A {
+  const A();
+  final int x = 1;
+}
+const A a = const A();
+''');
+  }
+
   void test_dependencyOnInitializedNonStaticConst() {
     // Even though non-static consts are not allowed by the language, we need
     // to handle them for error recovery purposes.
@@ -1446,17 +1492,6 @@
 ''', [CompileTimeErrorCode.CONST_INSTANCE_FIELD]);
   }
 
-  void test_dependencyOnInitializedFinal() {
-    // a depends on A() depends on A.x
-    _assertProperDependencies('''
-class A {
-  const A();
-  final int x = 1;
-}
-const A a = const A();
-''');
-  }
-
   void test_dependencyOnNonFactoryRedirect() {
     // a depends on A.foo() depends on A.bar()
     _assertProperDependencies(r'''
@@ -1552,25 +1587,7 @@
 const A a = const A();
 ''');
     EvaluationResultImpl result =
-        _evaluateInstanceCreationExpression(compilationUnit, 'a');
-    Map<String, DartObjectImpl> fields = _assertType(result, "A");
-    expect(fields, hasLength(1));
-    _assertIntField(fields, "i", 123);
-  }
-
-  void test_non_static_const_initialized_at_declaration() {
-    // Even though non-static consts are not allowed by the language, we need
-    // to handle them for error recovery purposes.
-    CompilationUnit compilationUnit = resolveSource('''
-class A {
-  const int i = 123;
-  const A();
-}
-
-const A a = const A();
-''');
-    EvaluationResultImpl result =
-        _evaluateInstanceCreationExpression(compilationUnit, 'a');
+        _evaluateTopLevelVariable(compilationUnit, 'a');
     Map<String, DartObjectImpl> fields = _assertType(result, "A");
     expect(fields, hasLength(1));
     _assertIntField(fields, "i", 123);
@@ -1679,7 +1696,7 @@
   final int k;
 }''');
     EvaluationResultImpl result =
-        _evaluateInstanceCreationExpression(compilationUnit, "foo");
+        _evaluateTopLevelVariable(compilationUnit, "foo");
     Map<String, DartObjectImpl> fields = _assertType(result, "A");
     expect(fields, hasLength(1));
     _assertIntField(fields, "k", 13);
@@ -1713,7 +1730,7 @@
   final int k;
 }''');
     EvaluationResultImpl result =
-        _evaluateInstanceCreationExpression(compilationUnit, "foo");
+        _evaluateTopLevelVariable(compilationUnit, "foo");
     Map<String, DartObjectImpl> fieldsOfA = _assertType(result, "A");
     expect(fieldsOfA, hasLength(1));
     Map<String, DartObjectImpl> fieldsOfB =
@@ -1733,7 +1750,7 @@
   static const bar = 4;
 }''');
     EvaluationResultImpl result =
-        _evaluateInstanceCreationExpression(compilationUnit, "foo");
+        _evaluateTopLevelVariable(compilationUnit, "foo");
     Map<String, DartObjectImpl> fields = _assertType(result, "A");
     expect(fields, hasLength(1));
     _assertIntField(fields, "k", 7);
@@ -1748,7 +1765,7 @@
   final int k;
 }''');
     EvaluationResultImpl result =
-        _evaluateInstanceCreationExpression(compilationUnit, "foo");
+        _evaluateTopLevelVariable(compilationUnit, "foo");
     Map<String, DartObjectImpl> fields = _assertType(result, "A");
     expect(fields, hasLength(1));
     _assertIntField(fields, "k", 7);
@@ -1766,7 +1783,7 @@
   final int y;
 }''');
     EvaluationResultImpl result =
-        _evaluateInstanceCreationExpression(compilationUnit, "foo");
+        _evaluateTopLevelVariable(compilationUnit, "foo");
     Map<String, DartObjectImpl> fields = _assertType(result, "B");
     expect(fields, hasLength(2));
     _assertIntField(fields, "y", 5);
@@ -1784,7 +1801,7 @@
   const A(this.x)
 }''');
     EvaluationResultImpl result =
-        _evaluateInstanceCreationExpression(compilationUnit, "foo");
+        _evaluateTopLevelVariable(compilationUnit, "foo");
     Map<String, DartObjectImpl> fields = _assertType(result, "A");
     expect(fields, hasLength(1));
     _assertIntField(fields, "x", 42);
@@ -1818,7 +1835,7 @@
   final int y;
 }''');
     EvaluationResultImpl result =
-        _evaluateInstanceCreationExpression(compilationUnit, "foo");
+        _evaluateTopLevelVariable(compilationUnit, "foo");
     Map<String, DartObjectImpl> fields = _assertType(result, "B");
     expect(fields, hasLength(2));
     _assertIntField(fields, "y", 4);
@@ -1836,8 +1853,8 @@
   const A.a2() : x = 5;
   final int x;
 }''');
-    Map<String, DartObjectImpl> aFields = _assertType(
-        _evaluateInstanceCreationExpression(compilationUnit, "foo"), "A");
+    Map<String, DartObjectImpl> aFields =
+        _assertType(_evaluateTopLevelVariable(compilationUnit, "foo"), "A");
     _assertIntField(aFields, 'x', 5);
   }
 
@@ -1849,8 +1866,8 @@
   const A.a2(x) : y = x + 10;
   final int y;
 }''');
-    Map<String, DartObjectImpl> aFields = _assertType(
-        _evaluateInstanceCreationExpression(compilationUnit, "foo"), "A");
+    Map<String, DartObjectImpl> aFields =
+        _assertType(_evaluateTopLevelVariable(compilationUnit, "foo"), "A");
     _assertIntField(aFields, 'y', 111);
   }
 
@@ -1864,8 +1881,7 @@
   const A() : this.b();
   const A.b() : this();
 }''');
-    _assertValidUnknown(
-        _evaluateInstanceCreationExpression(compilationUnit, "foo"));
+    _assertValidUnknown(_evaluateTopLevelVariable(compilationUnit, "foo"));
   }
 
   void test_instanceCreationExpression_nonFactoryRedirect_defaultArg() {
@@ -1876,8 +1892,8 @@
   const A.a2([x = 100]) : y = x + 10;
   final int y;
 }''');
-    Map<String, DartObjectImpl> aFields = _assertType(
-        _evaluateInstanceCreationExpression(compilationUnit, "foo"), "A");
+    Map<String, DartObjectImpl> aFields =
+        _assertType(_evaluateTopLevelVariable(compilationUnit, "foo"), "A");
     _assertIntField(aFields, 'y', 110);
   }
 
@@ -1890,8 +1906,7 @@
     // We don't care what value foo evaluates to (since there is a compile
     // error), but we shouldn't crash, and we should figure
     // out that it evaluates to an instance of class A.
-    _assertType(
-        _evaluateInstanceCreationExpression(compilationUnit, "foo"), "A");
+    _assertType(_evaluateTopLevelVariable(compilationUnit, "foo"), "A");
   }
 
   void test_instanceCreationExpression_nonFactoryRedirect_toNonConst() {
@@ -1904,8 +1919,7 @@
     // We don't care what value foo evaluates to (since there is a compile
     // error), but we shouldn't crash, and we should figure
     // out that it evaluates to an instance of class A.
-    _assertType(
-        _evaluateInstanceCreationExpression(compilationUnit, "foo"), "A");
+    _assertType(_evaluateTopLevelVariable(compilationUnit, "foo"), "A");
   }
 
   void test_instanceCreationExpression_nonFactoryRedirect_unnamed() {
@@ -1916,8 +1930,8 @@
   const A() : x = 5;
   final int x;
 }''');
-    Map<String, DartObjectImpl> aFields = _assertType(
-        _evaluateInstanceCreationExpression(compilationUnit, "foo"), "A");
+    Map<String, DartObjectImpl> aFields =
+        _assertType(_evaluateTopLevelVariable(compilationUnit, "foo"), "A");
     _assertIntField(aFields, 'x', 5);
   }
 
@@ -1930,8 +1944,7 @@
 class B implements A {
   const B();
 }''');
-    _assertType(
-        _evaluateInstanceCreationExpression(compilationUnit, "foo"), "B");
+    _assertType(_evaluateTopLevelVariable(compilationUnit, "foo"), "B");
   }
 
   void test_instanceCreationExpression_redirect_cycle() {
@@ -1944,8 +1957,7 @@
   const factory A() = A.b;
   const factory A.b() = A;
 }''');
-    _assertValidUnknown(
-        _evaluateInstanceCreationExpression(compilationUnit, "foo"));
+    _assertValidUnknown(_evaluateTopLevelVariable(compilationUnit, "foo"));
   }
 
   void test_instanceCreationExpression_redirect_extern() {
@@ -1954,8 +1966,7 @@
 class A {
   external const factory A();
 }''');
-    _assertValidUnknown(
-        _evaluateInstanceCreationExpression(compilationUnit, "foo"));
+    _assertValidUnknown(_evaluateTopLevelVariable(compilationUnit, "foo"));
   }
 
   void test_instanceCreationExpression_redirect_nonConst() {
@@ -1968,8 +1979,7 @@
   const factory A() = A.b;
   A.b();
 }''');
-    _assertValidUnknown(
-        _evaluateInstanceCreationExpression(compilationUnit, "foo"));
+    _assertValidUnknown(_evaluateTopLevelVariable(compilationUnit, "foo"));
   }
 
   void test_instanceCreationExpression_redirectWithTypeParams() {
@@ -1985,7 +1995,7 @@
 
 const A a = const A(10);''');
     EvaluationResultImpl result =
-        _evaluateInstanceCreationExpression(compilationUnit, "a");
+        _evaluateTopLevelVariable(compilationUnit, "a");
     Map<String, DartObjectImpl> fields = _assertType(result, "B<int>");
     expect(fields, hasLength(1));
     _assertIntField(fields, "x", 10);
@@ -2007,7 +2017,7 @@
 
 const A<int> a = const A<int>(10);''');
     EvaluationResultImpl result =
-        _evaluateInstanceCreationExpression(compilationUnit, "a");
+        _evaluateTopLevelVariable(compilationUnit, "a");
     Map<String, DartObjectImpl> fields = _assertType(result, "B<int>");
     expect(fields, hasLength(1));
     _assertIntField(fields, "x", 10);
@@ -2017,7 +2027,7 @@
     CompilationUnit compilationUnit =
         resolveSource("const foo = const Symbol('a');");
     EvaluationResultImpl evaluationResult =
-        _evaluateInstanceCreationExpression(compilationUnit, "foo");
+        _evaluateTopLevelVariable(compilationUnit, "foo");
     expect(evaluationResult.value, isNotNull);
     DartObjectImpl value = evaluationResult.value;
     expect(value.type, typeProvider.symbolType);
@@ -2040,41 +2050,87 @@
 const c_int = const C<int>();
 const c_num = const C<num>();''');
     EvaluationResultImpl c_int =
-        _evaluateInstanceCreationExpression(compilationUnit, "c_int");
+        _evaluateTopLevelVariable(compilationUnit, "c_int");
     _assertType(c_int, "C<int>");
     DartObjectImpl c_int_value = c_int.value;
     EvaluationResultImpl c_num =
-        _evaluateInstanceCreationExpression(compilationUnit, "c_num");
+        _evaluateTopLevelVariable(compilationUnit, "c_num");
     _assertType(c_num, "C<num>");
     DartObjectImpl c_num_value = c_num.value;
     expect(c_int_value == c_num_value, isFalse);
   }
 
   void test_isValidSymbol() {
-    expect(ConstantValueComputer.isValidPublicSymbol(""), isTrue);
-    expect(ConstantValueComputer.isValidPublicSymbol("foo"), isTrue);
-    expect(ConstantValueComputer.isValidPublicSymbol("foo.bar"), isTrue);
-    expect(ConstantValueComputer.isValidPublicSymbol("foo\$"), isTrue);
-    expect(ConstantValueComputer.isValidPublicSymbol("foo\$bar"), isTrue);
-    expect(ConstantValueComputer.isValidPublicSymbol("iff"), isTrue);
-    expect(ConstantValueComputer.isValidPublicSymbol("gif"), isTrue);
-    expect(ConstantValueComputer.isValidPublicSymbol("if\$"), isTrue);
-    expect(ConstantValueComputer.isValidPublicSymbol("\$if"), isTrue);
-    expect(ConstantValueComputer.isValidPublicSymbol("foo="), isTrue);
-    expect(ConstantValueComputer.isValidPublicSymbol("foo.bar="), isTrue);
-    expect(ConstantValueComputer.isValidPublicSymbol("foo.+"), isTrue);
-    expect(ConstantValueComputer.isValidPublicSymbol("void"), isTrue);
-    expect(ConstantValueComputer.isValidPublicSymbol("_foo"), isFalse);
-    expect(ConstantValueComputer.isValidPublicSymbol("_foo.bar"), isFalse);
-    expect(ConstantValueComputer.isValidPublicSymbol("foo._bar"), isFalse);
-    expect(ConstantValueComputer.isValidPublicSymbol("if"), isFalse);
-    expect(ConstantValueComputer.isValidPublicSymbol("if.foo"), isFalse);
-    expect(ConstantValueComputer.isValidPublicSymbol("foo.if"), isFalse);
-    expect(ConstantValueComputer.isValidPublicSymbol("foo=.bar"), isFalse);
-    expect(ConstantValueComputer.isValidPublicSymbol("foo."), isFalse);
-    expect(ConstantValueComputer.isValidPublicSymbol("+.foo"), isFalse);
-    expect(ConstantValueComputer.isValidPublicSymbol("void.foo"), isFalse);
-    expect(ConstantValueComputer.isValidPublicSymbol("foo.void"), isFalse);
+    expect(ConstantEvaluationEngine.isValidPublicSymbol(""), isTrue);
+    expect(ConstantEvaluationEngine.isValidPublicSymbol("foo"), isTrue);
+    expect(ConstantEvaluationEngine.isValidPublicSymbol("foo.bar"), isTrue);
+    expect(ConstantEvaluationEngine.isValidPublicSymbol("foo\$"), isTrue);
+    expect(ConstantEvaluationEngine.isValidPublicSymbol("foo\$bar"), isTrue);
+    expect(ConstantEvaluationEngine.isValidPublicSymbol("iff"), isTrue);
+    expect(ConstantEvaluationEngine.isValidPublicSymbol("gif"), isTrue);
+    expect(ConstantEvaluationEngine.isValidPublicSymbol("if\$"), isTrue);
+    expect(ConstantEvaluationEngine.isValidPublicSymbol("\$if"), isTrue);
+    expect(ConstantEvaluationEngine.isValidPublicSymbol("foo="), isTrue);
+    expect(ConstantEvaluationEngine.isValidPublicSymbol("foo.bar="), isTrue);
+    expect(ConstantEvaluationEngine.isValidPublicSymbol("foo.+"), isTrue);
+    expect(ConstantEvaluationEngine.isValidPublicSymbol("void"), isTrue);
+    expect(ConstantEvaluationEngine.isValidPublicSymbol("_foo"), isFalse);
+    expect(ConstantEvaluationEngine.isValidPublicSymbol("_foo.bar"), isFalse);
+    expect(ConstantEvaluationEngine.isValidPublicSymbol("foo._bar"), isFalse);
+    expect(ConstantEvaluationEngine.isValidPublicSymbol("if"), isFalse);
+    expect(ConstantEvaluationEngine.isValidPublicSymbol("if.foo"), isFalse);
+    expect(ConstantEvaluationEngine.isValidPublicSymbol("foo.if"), isFalse);
+    expect(ConstantEvaluationEngine.isValidPublicSymbol("foo=.bar"), isFalse);
+    expect(ConstantEvaluationEngine.isValidPublicSymbol("foo."), isFalse);
+    expect(ConstantEvaluationEngine.isValidPublicSymbol("+.foo"), isFalse);
+    expect(ConstantEvaluationEngine.isValidPublicSymbol("void.foo"), isFalse);
+    expect(ConstantEvaluationEngine.isValidPublicSymbol("foo.void"), isFalse);
+  }
+
+  void test_length_of_improperly_typed_string_expression() {
+    // Since type annotations are ignored in unchecked mode, the improper
+    // types on s1 and s2 shouldn't prevent us from evaluating i to
+    // 'alpha'.length.
+    CompilationUnit compilationUnit = resolveSource('''
+const int s1 = 'alpha';
+const int s2 = 'beta';
+const int i = (true ? s1 : s2).length;
+''');
+    ConstTopLevelVariableElementImpl element =
+        findTopLevelDeclaration(compilationUnit, 'i').element;
+    EvaluationResultImpl result = element.evaluationResult;
+    expect(_assertValidInt(result), 5);
+  }
+
+  void test_length_of_improperly_typed_string_identifier() {
+    // Since type annotations are ignored in unchecked mode, the improper type
+    // on s shouldn't prevent us from evaluating i to 'alpha'.length.
+    CompilationUnit compilationUnit = resolveSource('''
+const int s = 'alpha';
+const int i = s.length;
+''');
+    ConstTopLevelVariableElementImpl element =
+        findTopLevelDeclaration(compilationUnit, 'i').element;
+    EvaluationResultImpl result = element.evaluationResult;
+    expect(_assertValidInt(result), 5);
+  }
+
+  void test_non_static_const_initialized_at_declaration() {
+    // Even though non-static consts are not allowed by the language, we need
+    // to handle them for error recovery purposes.
+    CompilationUnit compilationUnit = resolveSource('''
+class A {
+  const int i = 123;
+  const A();
+}
+
+const A a = const A();
+''');
+    EvaluationResultImpl result =
+        _evaluateTopLevelVariable(compilationUnit, 'a');
+    Map<String, DartObjectImpl> fields = _assertType(result, "A");
+    expect(fields, hasLength(1));
+    _assertIntField(fields, "i", 123);
   }
 
   void test_symbolLiteral_void() {
@@ -2117,7 +2173,7 @@
         analysisContext.resolveCompilationUnit(source, element);
     expect(unit, isNotNull);
     ConstantValueComputer computer = _makeConstantValueComputer();
-    computer.add(unit);
+    computer.add(unit, source, source);
     computer.computeValues();
     assertErrors(source, expectedErrorCodes);
   }
@@ -2176,7 +2232,7 @@
         defaultExpr == null ? "" : ", defaultValue: $defaultExpr";
     CompilationUnit compilationUnit = resolveSource(
         "const $varName = const bool.fromEnvironment('$envVarName'$defaultArg);");
-    return _evaluateInstanceCreationExpression(compilationUnit, varName);
+    return _evaluateTopLevelVariable(compilationUnit, varName);
   }
 
   EvaluationResultImpl _check_fromEnvironment_int(
@@ -2190,7 +2246,7 @@
         defaultExpr == null ? "" : ", defaultValue: $defaultExpr";
     CompilationUnit compilationUnit = resolveSource(
         "const $varName = const int.fromEnvironment('$envVarName'$defaultArg);");
-    return _evaluateInstanceCreationExpression(compilationUnit, varName);
+    return _evaluateTopLevelVariable(compilationUnit, varName);
   }
 
   EvaluationResultImpl _check_fromEnvironment_string(
@@ -2204,7 +2260,7 @@
         defaultExpr == null ? "" : ", defaultValue: $defaultExpr";
     CompilationUnit compilationUnit = resolveSource(
         "const $varName = const String.fromEnvironment('$envVarName'$defaultArg);");
-    return _evaluateInstanceCreationExpression(compilationUnit, varName);
+    return _evaluateTopLevelVariable(compilationUnit, varName);
   }
 
   void _checkInstanceCreation_withSupertypeParams(bool isExplicit) {
@@ -2222,12 +2278,12 @@
 const b_int_num = const B<int, num>();
 const c_int_num = const C<int, num>();""");
     EvaluationResultImpl b_int_num =
-        _evaluateInstanceCreationExpression(compilationUnit, "b_int_num");
+        _evaluateTopLevelVariable(compilationUnit, "b_int_num");
     Map<String, DartObjectImpl> b_int_num_fields =
         _assertType(b_int_num, "B<int, num>");
     _assertFieldType(b_int_num_fields, GenericState.SUPERCLASS_FIELD, "A<int>");
     EvaluationResultImpl c_int_num =
-        _evaluateInstanceCreationExpression(compilationUnit, "c_int_num");
+        _evaluateTopLevelVariable(compilationUnit, "c_int_num");
     Map<String, DartObjectImpl> c_int_num_fields =
         _assertType(c_int_num, "C<int, num>");
     _assertFieldType(c_int_num_fields, GenericState.SUPERCLASS_FIELD, "A<num>");
@@ -2246,8 +2302,7 @@
   const A(${isNamed ? "{$formalParam}" : "[$formalParam]"})${isFieldFormal ? "" : " : $fieldName = $paramName"};
   final int $fieldName;
 }""");
-    EvaluationResultImpl x =
-        _evaluateInstanceCreationExpression(compilationUnit, "x");
+    EvaluationResultImpl x = _evaluateTopLevelVariable(compilationUnit, "x");
     Map<String, DartObjectImpl> fieldsOfX = _assertType(x, "A");
     expect(fieldsOfX, hasLength(1));
     if (hasDefault) {
@@ -2255,8 +2310,7 @@
     } else {
       _assertNullField(fieldsOfX, fieldName);
     }
-    EvaluationResultImpl y =
-        _evaluateInstanceCreationExpression(compilationUnit, "y");
+    EvaluationResultImpl y = _evaluateTopLevelVariable(compilationUnit, "y");
     Map<String, DartObjectImpl> fieldsOfY = _assertType(y, "A");
     expect(fieldsOfY, hasLength(1));
     _assertIntField(fieldsOfY, fieldName, 10);
@@ -2286,16 +2340,21 @@
     return null;
   }
 
-  EvaluationResultImpl _evaluateInstanceCreationExpression(
+  EvaluationResultImpl _evaluateTopLevelVariable(
       CompilationUnit compilationUnit, String name) {
-    Expression expression =
-        findTopLevelConstantExpression(compilationUnit, name);
-    return (expression as InstanceCreationExpression).evaluationResult;
+    VariableDeclaration varDecl =
+        findTopLevelDeclaration(compilationUnit, name);
+    ConstTopLevelVariableElementImpl varElement = varDecl.element;
+    return varElement.evaluationResult;
   }
 
   ConstantValueComputer _makeConstantValueComputer() {
-    return new ValidatingConstantValueComputer(
-        analysisContext2.typeProvider, analysisContext2.declaredVariables);
+    ConstantEvaluationValidator_ForTest validator =
+        new ConstantEvaluationValidator_ForTest();
+    validator.computer = new ConstantValueComputer(analysisContext2,
+        analysisContext2.typeProvider, analysisContext2.declaredVariables,
+        validator);
+    return validator.computer;
   }
 
   void _validate(bool shouldBeValid, VariableDeclarationList declarationList) {
@@ -2312,27 +2371,6 @@
   }
 }
 
-class ConstantValueComputerTest_ValidatingConstantVisitor
-    extends ConstantVisitor {
-  final DirectedGraph<AstNode> _referenceGraph;
-  final AstNode _nodeBeingEvaluated;
-
-  ConstantValueComputerTest_ValidatingConstantVisitor(TypeProvider typeProvider,
-      this._referenceGraph, this._nodeBeingEvaluated,
-      ErrorReporter errorReporter)
-      : super.con1(typeProvider, errorReporter);
-
-  @override
-  void beforeGetEvaluationResult(AstNode node) {
-    super.beforeGetEvaluationResult(node);
-    // If we are getting the evaluation result for a node in the graph,
-    // make sure we properly recorded the dependency.
-    if (_referenceGraph.nodes.contains(node)) {
-      expect(_referenceGraph.containsPath(_nodeBeingEvaluated, node), isTrue);
-    }
-  }
-}
-
 @reflectiveTest
 class ConstantVisitorTest extends ResolverTestCase {
   void test_visitConditionalExpression_false() {
@@ -2343,34 +2381,12 @@
     GatheringErrorListener errorListener = new GatheringErrorListener();
     ErrorReporter errorReporter =
         new ErrorReporter(errorListener, _dummySource());
-    _assertValue(0, expression.accept(
-        new ConstantVisitor.con1(new TestTypeProvider(), errorReporter)));
+    _assertValue(0, expression.accept(new ConstantVisitor(
+        new ConstantEvaluationEngine(
+            new TestTypeProvider(), new DeclaredVariables()), errorReporter)));
     errorListener.assertNoErrors();
   }
 
-  void test_visitConditionalExpression_instanceCreation_invalidFieldInitializer() {
-    TestTypeProvider typeProvider = new TestTypeProvider();
-    LibraryElementImpl libraryElement = ElementFactory.library(null, "lib");
-    String className = "C";
-    ClassElementImpl classElement = ElementFactory.classElement2(className);
-    (libraryElement.definingCompilationUnit as CompilationUnitElementImpl).types =
-        <ClassElement>[classElement];
-    ConstructorElementImpl constructorElement = ElementFactory
-        .constructorElement(classElement, null, true, [typeProvider.intType]);
-    constructorElement.parameters[0] =
-        new FieldFormalParameterElementImpl(AstFactory.identifier3("x"));
-    InstanceCreationExpression expression = AstFactory
-        .instanceCreationExpression2(Keyword.CONST,
-            AstFactory.typeName4(className), [AstFactory.integer(0)]);
-    expression.staticElement = constructorElement;
-    GatheringErrorListener errorListener = new GatheringErrorListener();
-    ErrorReporter errorReporter =
-        new ErrorReporter(errorListener, _dummySource());
-    expression.accept(new ConstantVisitor.con1(typeProvider, errorReporter));
-    errorListener
-        .assertErrorsWithCodes([CompileTimeErrorCode.INVALID_CONSTANT]);
-  }
-
   void test_visitConditionalExpression_nonBooleanCondition() {
     Expression thenExpression = AstFactory.integer(1);
     Expression elseExpression = AstFactory.integer(0);
@@ -2380,8 +2396,9 @@
     GatheringErrorListener errorListener = new GatheringErrorListener();
     ErrorReporter errorReporter =
         new ErrorReporter(errorListener, _dummySource());
-    DartObjectImpl result = expression.accept(
-        new ConstantVisitor.con1(new TestTypeProvider(), errorReporter));
+    DartObjectImpl result = expression.accept(new ConstantVisitor(
+        new ConstantEvaluationEngine(
+            new TestTypeProvider(), new DeclaredVariables()), errorReporter));
     expect(result, isNull);
     errorListener
         .assertErrorsWithCodes([CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL]);
@@ -2395,8 +2412,9 @@
     GatheringErrorListener errorListener = new GatheringErrorListener();
     ErrorReporter errorReporter =
         new ErrorReporter(errorListener, _dummySource());
-    DartObjectImpl result = expression.accept(
-        new ConstantVisitor.con1(new TestTypeProvider(), errorReporter));
+    DartObjectImpl result = expression.accept(new ConstantVisitor(
+        new ConstantEvaluationEngine(
+            new TestTypeProvider(), new DeclaredVariables()), errorReporter));
     expect(result, isNull);
     errorListener
         .assertErrorsWithCodes([CompileTimeErrorCode.INVALID_CONSTANT]);
@@ -2410,8 +2428,9 @@
     GatheringErrorListener errorListener = new GatheringErrorListener();
     ErrorReporter errorReporter =
         new ErrorReporter(errorListener, _dummySource());
-    DartObjectImpl result = expression.accept(
-        new ConstantVisitor.con1(new TestTypeProvider(), errorReporter));
+    DartObjectImpl result = expression.accept(new ConstantVisitor(
+        new ConstantEvaluationEngine(
+            new TestTypeProvider(), new DeclaredVariables()), errorReporter));
     expect(result, isNull);
     errorListener
         .assertErrorsWithCodes([CompileTimeErrorCode.INVALID_CONSTANT]);
@@ -2425,8 +2444,9 @@
     GatheringErrorListener errorListener = new GatheringErrorListener();
     ErrorReporter errorReporter =
         new ErrorReporter(errorListener, _dummySource());
-    _assertValue(1, expression.accept(
-        new ConstantVisitor.con1(new TestTypeProvider(), errorReporter)));
+    _assertValue(1, expression.accept(new ConstantVisitor(
+        new ConstantEvaluationEngine(
+            new TestTypeProvider(), new DeclaredVariables()), errorReporter)));
     errorListener.assertNoErrors();
   }
 
@@ -2496,8 +2516,9 @@
         findTopLevelConstantExpression(compilationUnit, name);
     GatheringErrorListener errorListener = new GatheringErrorListener();
     ErrorReporter errorReporter = new ErrorReporter(errorListener, source);
-    DartObjectImpl result = expression.accept(new ConstantVisitor.con2(
-        typeProvider, lexicalEnvironment, errorReporter));
+    DartObjectImpl result = expression.accept(new ConstantVisitor(
+        new ConstantEvaluationEngine(typeProvider, new DeclaredVariables()),
+        errorReporter, lexicalEnvironment: lexicalEnvironment));
     errorListener.assertNoErrors();
     return result;
   }
@@ -4909,9 +4930,9 @@
     JavaFile file2 =
         FileUtilities2.createFile("/does/not/exist/folder/some2.dart");
     JavaFile file3 = FileUtilities2.createFile("/does/not/exist3/some3.dart");
-    FileBasedSource source1 = new FileBasedSource.con1(file1);
-    FileBasedSource source2 = new FileBasedSource.con1(file2);
-    FileBasedSource source3 = new FileBasedSource.con1(file3);
+    FileBasedSource source1 = new FileBasedSource(file1);
+    FileBasedSource source2 = new FileBasedSource(file2);
+    FileBasedSource source3 = new FileBasedSource(file3);
     DirectoryBasedSourceContainer container =
         new DirectoryBasedSourceContainer.con1(dir);
     expect(container.contains(source1), isTrue);
@@ -6334,7 +6355,7 @@
 }''';
     CompilationUnit cu = _resolveContents(code);
     int offset = code.indexOf('foo(0)');
-    AstNode node = new NodeLocator.con1(offset).searchWithin(cu);
+    AstNode node = new NodeLocator(offset).searchWithin(cu);
     MethodInvocation invocation =
         node.getAncestor((n) => n is MethodInvocation);
     Element element = ElementLocator.locate(invocation);
@@ -6444,7 +6465,7 @@
     CompilationUnit cu = _resolveContents(code);
     int start = _getOffsetOfMatch(code, nodePattern, index);
     int end = start + nodePattern.length;
-    return new NodeLocator.con2(start, end).searchWithin(cu);
+    return new NodeLocator(start, end).searchWithin(cu);
   }
 
   int _getOffsetOfMatch(String contents, String pattern, int matchIndex) {
@@ -7291,22 +7312,22 @@
   void test_equals_false_differentFiles() {
     JavaFile file1 = FileUtilities2.createFile("/does/not/exist1.dart");
     JavaFile file2 = FileUtilities2.createFile("/does/not/exist2.dart");
-    FileBasedSource source1 = new FileBasedSource.con1(file1);
-    FileBasedSource source2 = new FileBasedSource.con1(file2);
+    FileBasedSource source1 = new FileBasedSource(file1);
+    FileBasedSource source2 = new FileBasedSource(file2);
     expect(source1 == source2, isFalse);
   }
 
   void test_equals_false_null() {
     JavaFile file = FileUtilities2.createFile("/does/not/exist1.dart");
-    FileBasedSource source1 = new FileBasedSource.con1(file);
+    FileBasedSource source1 = new FileBasedSource(file);
     expect(source1 == null, isFalse);
   }
 
   void test_equals_true() {
     JavaFile file1 = FileUtilities2.createFile("/does/not/exist.dart");
     JavaFile file2 = FileUtilities2.createFile("/does/not/exist.dart");
-    FileBasedSource source1 = new FileBasedSource.con1(file1);
-    FileBasedSource source2 = new FileBasedSource.con1(file2);
+    FileBasedSource source1 = new FileBasedSource(file1);
+    FileBasedSource source2 = new FileBasedSource(file2);
     expect(source1 == source2, isTrue);
   }
 
@@ -7356,28 +7377,28 @@
     SourceFactory factory = new SourceFactory([new FileUriResolver()]);
     String fullPath = "/does/not/exist.dart";
     JavaFile file = FileUtilities2.createFile(fullPath);
-    FileBasedSource source = new FileBasedSource.con1(file);
+    FileBasedSource source = new FileBasedSource(file);
     expect(factory.fromEncoding(source.encoding), source);
   }
 
   void test_getFullName() {
     String fullPath = "/does/not/exist.dart";
     JavaFile file = FileUtilities2.createFile(fullPath);
-    FileBasedSource source = new FileBasedSource.con1(file);
+    FileBasedSource source = new FileBasedSource(file);
     expect(source.fullName, file.getAbsolutePath());
   }
 
   void test_getShortName() {
     JavaFile file = FileUtilities2.createFile("/does/not/exist.dart");
-    FileBasedSource source = new FileBasedSource.con1(file);
+    FileBasedSource source = new FileBasedSource(file);
     expect(source.shortName, "exist.dart");
   }
 
   void test_hashCode() {
     JavaFile file1 = FileUtilities2.createFile("/does/not/exist.dart");
     JavaFile file2 = FileUtilities2.createFile("/does/not/exist.dart");
-    FileBasedSource source1 = new FileBasedSource.con1(file1);
-    FileBasedSource source2 = new FileBasedSource.con1(file2);
+    FileBasedSource source1 = new FileBasedSource(file1);
+    FileBasedSource source2 = new FileBasedSource(file2);
     expect(source2.hashCode, source1.hashCode);
   }
 
@@ -7400,7 +7421,7 @@
 
   void test_isInSystemLibrary_false() {
     JavaFile file = FileUtilities2.createFile("/does/not/exist.dart");
-    FileBasedSource source = new FileBasedSource.con1(file);
+    FileBasedSource source = new FileBasedSource(file);
     expect(source, isNotNull);
     expect(source.fullName, file.getAbsolutePath());
     expect(source.isInSystemLibrary, isFalse);
@@ -7408,7 +7429,7 @@
 
   void test_issue14500() {
     // see https://code.google.com/p/dart/issues/detail?id=14500
-    FileBasedSource source = new FileBasedSource.con1(
+    FileBasedSource source = new FileBasedSource(
         FileUtilities2.createFile("/some/packages/foo:bar.dart"));
     expect(source, isNotNull);
     expect(source.exists(), isFalse);
@@ -7417,7 +7438,7 @@
   void test_resolveRelative_dart_fileName() {
     JavaFile file = FileUtilities2.createFile("/a/b/test.dart");
     FileBasedSource source =
-        new FileBasedSource.con2(parseUriWithException("dart:test"), file);
+        new FileBasedSource(file, parseUriWithException("dart:test"));
     expect(source, isNotNull);
     Uri relative = source.resolveRelativeUri(parseUriWithException("lib.dart"));
     expect(relative, isNotNull);
@@ -7427,7 +7448,7 @@
   void test_resolveRelative_dart_filePath() {
     JavaFile file = FileUtilities2.createFile("/a/b/test.dart");
     FileBasedSource source =
-        new FileBasedSource.con2(parseUriWithException("dart:test"), file);
+        new FileBasedSource(file, parseUriWithException("dart:test"));
     expect(source, isNotNull);
     Uri relative =
         source.resolveRelativeUri(parseUriWithException("c/lib.dart"));
@@ -7437,8 +7458,8 @@
 
   void test_resolveRelative_dart_filePathWithParent() {
     JavaFile file = FileUtilities2.createFile("/a/b/test.dart");
-    FileBasedSource source = new FileBasedSource.con2(
-        parseUriWithException("dart:test/b/test.dart"), file);
+    FileBasedSource source = new FileBasedSource(
+        file, parseUriWithException("dart:test/b/test.dart"));
     expect(source, isNotNull);
     Uri relative =
         source.resolveRelativeUri(parseUriWithException("../c/lib.dart"));
@@ -7454,7 +7475,7 @@
       return;
     }
     JavaFile file = FileUtilities2.createFile("/a/b/test.dart");
-    FileBasedSource source = new FileBasedSource.con1(file);
+    FileBasedSource source = new FileBasedSource(file);
     expect(source, isNotNull);
     Uri relative = source.resolveRelativeUri(parseUriWithException("lib.dart"));
     expect(relative, isNotNull);
@@ -7469,7 +7490,7 @@
       return;
     }
     JavaFile file = FileUtilities2.createFile("/a/b/test.dart");
-    FileBasedSource source = new FileBasedSource.con1(file);
+    FileBasedSource source = new FileBasedSource(file);
     expect(source, isNotNull);
     Uri relative =
         source.resolveRelativeUri(parseUriWithException("c/lib.dart"));
@@ -7484,7 +7505,7 @@
       return;
     }
     JavaFile file = FileUtilities2.createFile("/a/b/test.dart");
-    FileBasedSource source = new FileBasedSource.con1(file);
+    FileBasedSource source = new FileBasedSource(file);
     expect(source, isNotNull);
     Uri relative =
         source.resolveRelativeUri(parseUriWithException("../c/lib.dart"));
@@ -7494,8 +7515,8 @@
 
   void test_resolveRelative_package_fileName() {
     JavaFile file = FileUtilities2.createFile("/a/b/test.dart");
-    FileBasedSource source = new FileBasedSource.con2(
-        parseUriWithException("package:b/test.dart"), file);
+    FileBasedSource source =
+        new FileBasedSource(file, parseUriWithException("package:b/test.dart"));
     expect(source, isNotNull);
     Uri relative = source.resolveRelativeUri(parseUriWithException("lib.dart"));
     expect(relative, isNotNull);
@@ -7504,8 +7525,8 @@
 
   void test_resolveRelative_package_fileNameWithoutPackageName() {
     JavaFile file = FileUtilities2.createFile("/a/b/test.dart");
-    FileBasedSource source = new FileBasedSource.con2(
-        parseUriWithException("package:test.dart"), file);
+    FileBasedSource source =
+        new FileBasedSource(file, parseUriWithException("package:test.dart"));
     expect(source, isNotNull);
     Uri relative = source.resolveRelativeUri(parseUriWithException("lib.dart"));
     expect(relative, isNotNull);
@@ -7514,8 +7535,8 @@
 
   void test_resolveRelative_package_filePath() {
     JavaFile file = FileUtilities2.createFile("/a/b/test.dart");
-    FileBasedSource source = new FileBasedSource.con2(
-        parseUriWithException("package:b/test.dart"), file);
+    FileBasedSource source =
+        new FileBasedSource(file, parseUriWithException("package:b/test.dart"));
     expect(source, isNotNull);
     Uri relative =
         source.resolveRelativeUri(parseUriWithException("c/lib.dart"));
@@ -7525,8 +7546,8 @@
 
   void test_resolveRelative_package_filePathWithParent() {
     JavaFile file = FileUtilities2.createFile("/a/b/test.dart");
-    FileBasedSource source = new FileBasedSource.con2(
-        parseUriWithException("package:a/b/test.dart"), file);
+    FileBasedSource source = new FileBasedSource(
+        file, parseUriWithException("package:a/b/test.dart"));
     expect(source, isNotNull);
     Uri relative =
         source.resolveRelativeUri(parseUriWithException("../c/lib.dart"));
@@ -7537,7 +7558,7 @@
   void test_system() {
     JavaFile file = FileUtilities2.createFile("/does/not/exist.dart");
     FileBasedSource source =
-        new FileBasedSource.con2(parseUriWithException("dart:core"), file);
+        new FileBasedSource(file, parseUriWithException("dart:core"));
     expect(source, isNotNull);
     expect(source.fullName, file.getAbsolutePath());
     expect(source.isInSystemLibrary, isTrue);
@@ -8000,120 +8021,56 @@
 
 @reflectiveTest
 class ReferenceFinderTest extends EngineTestCase {
-  DirectedGraph<AstNode> _referenceGraph;
-  Map<PotentiallyConstVariableElement, VariableDeclaration> _variableDeclarationMap;
-  Map<ConstructorElement, ConstructorDeclaration> _constructorDeclarationMap;
-  VariableDeclaration _head;
-  AstNode _tail;
+  DirectedGraph<ConstantEvaluationTarget> _referenceGraph;
+  VariableElement _head;
+  Element _tail;
   @override
   void setUp() {
-    _referenceGraph = new DirectedGraph<AstNode>();
-    _variableDeclarationMap =
-        new HashMap<PotentiallyConstVariableElement, VariableDeclaration>();
-    _constructorDeclarationMap =
-        new HashMap<ConstructorElement, ConstructorDeclaration>();
-    _head = AstFactory.variableDeclaration("v1");
-  }
-  void test_visitInstanceCreationExpression_const() {
-    _visitNode(_makeTailConstructor("A", true, true, true));
-    _assertOneArc(_tail);
-  }
-  void test_visitInstanceCreationExpression_nonConstDeclaration() {
-    // In the source:
-    //   const x = const A();
-    // x depends on "const A()" even if the A constructor
-    // isn't declared as const.
-    _visitNode(_makeTailConstructor("A", false, true, true));
-    _assertOneArc(_tail);
-  }
-  void test_visitInstanceCreationExpression_nonConstUsage() {
-    _visitNode(_makeTailConstructor("A", true, false, true));
-    _assertNoArcs();
-  }
-  void test_visitInstanceCreationExpression_notInMap() {
-    // In the source:
-    //   const x = const A();
-    // x depends on "const A()" even if the AST for the A constructor
-    // isn't available.
-    _visitNode(_makeTailConstructor("A", true, true, false));
-    _assertOneArc(_tail);
+    _referenceGraph = new DirectedGraph<ConstantEvaluationTarget>();
+    _head = ElementFactory.topLevelVariableElement2("v1");
   }
   void test_visitSimpleIdentifier_const() {
-    _visitNode(_makeTailVariable("v2", true, true));
+    _visitNode(_makeTailVariable("v2", true));
     _assertOneArc(_tail);
   }
   void test_visitSimpleIdentifier_nonConst() {
-    _visitNode(_makeTailVariable("v2", false, true));
-    _assertNoArcs();
-  }
-  void test_visitSimpleIdentifier_notInMap() {
-    _visitNode(_makeTailVariable("v2", true, false));
+    _visitNode(_makeTailVariable("v2", false));
     _assertNoArcs();
   }
   void test_visitSuperConstructorInvocation_const() {
-    _visitNode(_makeTailSuperConstructorInvocation("A", true, true));
+    _visitNode(_makeTailSuperConstructorInvocation("A", true));
     _assertOneArc(_tail);
   }
   void test_visitSuperConstructorInvocation_nonConst() {
-    _visitNode(_makeTailSuperConstructorInvocation("A", false, true));
-    _assertNoArcs();
-  }
-  void test_visitSuperConstructorInvocation_notInMap() {
-    _visitNode(_makeTailSuperConstructorInvocation("A", true, false));
+    _visitNode(_makeTailSuperConstructorInvocation("A", false));
     _assertNoArcs();
   }
   void test_visitSuperConstructorInvocation_unresolved() {
     SuperConstructorInvocation superConstructorInvocation =
         AstFactory.superConstructorInvocation();
-    _tail = superConstructorInvocation;
     _visitNode(superConstructorInvocation);
     _assertNoArcs();
   }
   void _assertNoArcs() {
-    Set<AstNode> tails = _referenceGraph.getTails(_head);
+    Set<ConstantEvaluationTarget> tails = _referenceGraph.getTails(_head);
     expect(tails, hasLength(0));
   }
-  void _assertOneArc(AstNode tail) {
-    Set<AstNode> tails = _referenceGraph.getTails(_head);
+  void _assertOneArc(Element tail) {
+    Set<ConstantEvaluationTarget> tails = _referenceGraph.getTails(_head);
     expect(tails, hasLength(1));
     expect(tails.first, same(tail));
   }
-  ReferenceFinder _createReferenceFinder(AstNode source) => new ReferenceFinder(
-      source, _referenceGraph, _variableDeclarationMap,
-      _constructorDeclarationMap);
-  InstanceCreationExpression _makeTailConstructor(
-      String name, bool isConstDeclaration, bool isConstUsage, bool inMap) {
-    List<ConstructorInitializer> initializers =
-        new List<ConstructorInitializer>();
-    ConstructorDeclaration constructorDeclaration = AstFactory
-        .constructorDeclaration(AstFactory.identifier3(name), null,
-            AstFactory.formalParameterList(), initializers);
-    if (isConstDeclaration) {
-      constructorDeclaration.constKeyword = new KeywordToken(Keyword.CONST, 0);
-    }
-    ClassElementImpl classElement = ElementFactory.classElement2(name);
-    SimpleIdentifier identifier = AstFactory.identifier3(name);
-    TypeName type = AstFactory.typeName3(identifier);
-    InstanceCreationExpression instanceCreationExpression = AstFactory
-        .instanceCreationExpression2(
-            isConstUsage ? Keyword.CONST : Keyword.NEW, type);
-    _tail = instanceCreationExpression;
-    ConstructorElementImpl constructorElement = ElementFactory
-        .constructorElement(classElement, name, isConstDeclaration);
-    if (inMap) {
-      _constructorDeclarationMap[constructorElement] = constructorDeclaration;
-    }
-    instanceCreationExpression.staticElement = constructorElement;
-    return instanceCreationExpression;
-  }
+  ReferenceFinder _createReferenceFinder(ConstantEvaluationTarget source) =>
+      new ReferenceFinder((ConstantEvaluationTarget dependency) {
+    _referenceGraph.addEdge(source, dependency);
+  });
   SuperConstructorInvocation _makeTailSuperConstructorInvocation(
-      String name, bool isConst, bool inMap) {
+      String name, bool isConst) {
     List<ConstructorInitializer> initializers =
         new List<ConstructorInitializer>();
     ConstructorDeclaration constructorDeclaration = AstFactory
         .constructorDeclaration(AstFactory.identifier3(name), null,
             AstFactory.formalParameterList(), initializers);
-    _tail = constructorDeclaration;
     if (isConst) {
       constructorDeclaration.constKeyword = new KeywordToken(Keyword.CONST, 0);
     }
@@ -8122,24 +8079,19 @@
         AstFactory.superConstructorInvocation();
     ConstructorElementImpl constructorElement =
         ElementFactory.constructorElement(classElement, name, isConst);
-    if (inMap) {
-      _constructorDeclarationMap[constructorElement] = constructorDeclaration;
-    }
+    _tail = constructorElement;
     superConstructorInvocation.staticElement = constructorElement;
     return superConstructorInvocation;
   }
-  SimpleIdentifier _makeTailVariable(String name, bool isConst, bool inMap) {
+  SimpleIdentifier _makeTailVariable(String name, bool isConst) {
     VariableDeclaration variableDeclaration =
         AstFactory.variableDeclaration(name);
-    _tail = variableDeclaration;
     ConstLocalVariableElementImpl variableElement =
         ElementFactory.constLocalVariableElement(name);
+    _tail = variableElement;
     variableElement.const3 = isConst;
     AstFactory.variableDeclarationList2(
         isConst ? Keyword.CONST : Keyword.VAR, [variableDeclaration]);
-    if (inMap) {
-      _variableDeclarationMap[variableElement] = variableDeclaration;
-    }
     SimpleIdentifier identifier = AstFactory.identifier3(name);
     identifier.staticElement = variableElement;
     return identifier;
@@ -8255,8 +8207,8 @@
     SourceFactory factory =
         new SourceFactory([new UriResolver_nonAbsolute_absolute()]);
     String absolutePath = "/does/not/matter.dart";
-    Source containingSource = new FileBasedSource.con1(
-        FileUtilities2.createFile("/does/not/exist.dart"));
+    Source containingSource =
+        new FileBasedSource(FileUtilities2.createFile("/does/not/exist.dart"));
     Source result = factory.resolveUri(containingSource, absolutePath);
     expect(result.fullName,
         FileUtilities2.createFile(absolutePath).getAbsolutePath());
@@ -8264,8 +8216,8 @@
   void test_resolveUri_nonAbsolute_relative() {
     SourceFactory factory =
         new SourceFactory([new UriResolver_nonAbsolute_relative()]);
-    Source containingSource = new FileBasedSource.con1(
-        FileUtilities2.createFile("/does/not/have.dart"));
+    Source containingSource =
+        new FileBasedSource(FileUtilities2.createFile("/does/not/have.dart"));
     Source result = factory.resolveUri(containingSource, "exist.dart");
     expect(result.fullName,
         FileUtilities2.createFile("/does/not/exist.dart").getAbsolutePath());
@@ -8302,8 +8254,8 @@
   void test_restoreUri() {
     JavaFile file1 = FileUtilities2.createFile("/some/file1.dart");
     JavaFile file2 = FileUtilities2.createFile("/some/file2.dart");
-    Source source1 = new FileBasedSource.con1(file1);
-    Source source2 = new FileBasedSource.con1(file2);
+    Source source1 = new FileBasedSource(file1);
+    Source source2 = new FileBasedSource(file2);
     Uri expected1 = parseUriWithException("file:///my_file.dart");
     SourceFactory factory =
         new SourceFactory([new UriResolver_restoreUri(source1, expected1)]);
@@ -8403,14 +8355,14 @@
 class UriResolver_nonAbsolute_absolute extends UriResolver {
   @override
   Source resolveAbsolute(Uri uri) {
-    return new FileBasedSource.con2(uri, new JavaFile.fromUri(uri));
+    return new FileBasedSource(new JavaFile.fromUri(uri), uri);
   }
 }
 
 class UriResolver_nonAbsolute_relative extends UriResolver {
   @override
   Source resolveAbsolute(Uri uri) {
-    return new FileBasedSource.con2(uri, new JavaFile.fromUri(uri));
+    return new FileBasedSource(new JavaFile.fromUri(uri), uri);
   }
 }
 
@@ -8448,76 +8400,6 @@
   }
 }
 
-class ValidatingConstantValueComputer extends ConstantValueComputer {
-  AstNode _nodeBeingEvaluated;
-  ValidatingConstantValueComputer(
-      TypeProvider typeProvider, DeclaredVariables declaredVariables)
-      : super(typeProvider, declaredVariables);
-
-  @override
-  void beforeComputeValue(AstNode constNode) {
-    super.beforeComputeValue(constNode);
-    _nodeBeingEvaluated = constNode;
-  }
-
-  @override
-  void beforeGetFieldEvaluationResult(FieldElementImpl field) {
-    super.beforeGetFieldEvaluationResult(field);
-    // If we are getting the constant value for a node in the graph, make sure
-    // we properly recorded the dependency.
-    VariableDeclaration node = findVariableDeclaration(field);
-    if (node != null && referenceGraph.nodes.contains(node)) {
-      expect(referenceGraph.containsPath(_nodeBeingEvaluated, node), isTrue);
-    }
-  }
-
-  @override
-  void beforeGetConstantInitializers(ConstructorElement constructor) {
-    super.beforeGetConstantInitializers(constructor);
-    // If we are getting the constant initializers for a node in the graph,
-    // make sure we properly recorded the dependency.
-    ConstructorDeclaration node = findConstructorDeclaration(constructor);
-    if (node != null && referenceGraph.nodes.contains(node)) {
-      expect(referenceGraph.containsPath(_nodeBeingEvaluated, node), isTrue);
-    }
-  }
-
-  @override
-  void beforeGetParameterDefault(ParameterElement parameter) {
-    super.beforeGetParameterDefault(parameter);
-    // Find the ConstructorElement and figure out which
-    // parameter we're talking about.
-    ConstructorElement constructor =
-        parameter.getAncestor((element) => element is ConstructorElement);
-    int parameterIndex;
-    List<ParameterElement> parameters = constructor.parameters;
-    int numParameters = parameters.length;
-    for (parameterIndex = 0; parameterIndex < numParameters; parameterIndex++) {
-      if (identical(parameters[parameterIndex], parameter)) {
-        break;
-      }
-    }
-    expect(parameterIndex < numParameters, isTrue);
-    // If we are getting the default parameter for a constructor in the graph,
-    // make sure we properly recorded the dependency on the parameter.
-    ConstructorDeclaration constructorNode =
-        constructorDeclarationMap[constructor];
-    if (constructorNode != null) {
-      FormalParameter parameterNode =
-          constructorNode.parameters.parameters[parameterIndex];
-      expect(referenceGraph.nodes.contains(parameterNode), isTrue);
-      expect(referenceGraph.containsPath(_nodeBeingEvaluated, parameterNode),
-          isTrue);
-    }
-  }
-
-  @override
-  ConstantVisitor createConstantVisitor(ErrorReporter errorReporter) {
-    return new ConstantValueComputerTest_ValidatingConstantVisitor(
-        typeProvider, referenceGraph, _nodeBeingEvaluated, errorReporter);
-  }
-}
-
 /**
  * Instances of `XmlValidator` traverse an [XmlNode] structure and validate the node
  * hierarchy.
diff --git a/pkg/analyzer/test/generated/ast_test.dart b/pkg/analyzer/test/generated/ast_test.dart
index 64ead75..e285058 100644
--- a/pkg/analyzer/test/generated/ast_test.dart
+++ b/pkg/analyzer/test/generated/ast_test.dart
@@ -922,7 +922,7 @@
   }
 
   void test_searchWithin_null() {
-    NodeLocator locator = new NodeLocator.con2(0, 0);
+    NodeLocator locator = new NodeLocator(0, 0);
     expect(locator.searchWithin(null), isNull);
   }
 
@@ -937,7 +937,7 @@
     CompilationUnit unit = ParserTestCase.parseCompilationUnit(r'''
 class A {}
 class B {}''');
-    NodeLocator locator = new NodeLocator.con2(1024, 1024);
+    NodeLocator locator = new NodeLocator(1024, 1024);
     AstNode node = locator.searchWithin(unit.declarations[0]);
     expect(node, isNull);
   }
@@ -946,14 +946,14 @@
     CompilationUnit unit = ParserTestCase.parseCompilationUnit(r'''
 class A {}
 class B {}''');
-    NodeLocator locator = new NodeLocator.con2(0, 0);
+    NodeLocator locator = new NodeLocator(0, 0);
     AstNode node = locator.searchWithin(unit.declarations[1]);
     expect(node, isNull);
   }
 
   void _assertLocate(CompilationUnit unit, int start, int end,
       Predicate<AstNode> predicate, Type expectedClass) {
-    NodeLocator locator = new NodeLocator.con2(start, end);
+    NodeLocator locator = new NodeLocator(start, end);
     AstNode node = locator.searchWithin(unit);
     expect(node, isNotNull);
     expect(locator.foundNode, same(node));
@@ -2154,7 +2154,7 @@
   }
 
   void test_visitForEachStatement_variable() {
-    _assertSource("for (a in b) {}", new ForEachStatement.con2(null,
+    _assertSource("for (a in b) {}", new ForEachStatement.withReference(null,
         TokenFactory.tokenFromKeyword(Keyword.FOR),
         TokenFactory.tokenFromType(TokenType.OPEN_PAREN),
         AstFactory.identifier3("a"), TokenFactory.tokenFromKeyword(Keyword.IN),
@@ -2163,7 +2163,7 @@
   }
 
   void test_visitForEachStatement_variable_await() {
-    _assertSource("await for (a in b) {}", new ForEachStatement.con2(
+    _assertSource("await for (a in b) {}", new ForEachStatement.withReference(
         TokenFactory.tokenFromString("await"),
         TokenFactory.tokenFromKeyword(Keyword.FOR),
         TokenFactory.tokenFromType(TokenType.OPEN_PAREN),
diff --git a/pkg/analyzer/test/generated/compile_time_error_code_test.dart b/pkg/analyzer/test/generated/compile_time_error_code_test.dart
index da69804..3f6b77c 100644
--- a/pkg/analyzer/test/generated/compile_time_error_code_test.dart
+++ b/pkg/analyzer/test/generated/compile_time_error_code_test.dart
@@ -135,28 +135,6 @@
     verify([source]);
   }
 
-  void fail_recursiveCompileTimeConstant() {
-    Source source = addSource(r'''
-class A {
-  const A();
-  final m = const A();
-}''');
-    resolve(source);
-    assertErrors(
-        source, [CompileTimeErrorCode.RECURSIVE_COMPILE_TIME_CONSTANT]);
-    verify([source]);
-  }
-
-  void fail_recursiveCompileTimeConstant_cycle() {
-    Source source = addSource(r'''
-const x = y + 1;
-const y = x + 1;''');
-    resolve(source);
-    assertErrors(
-        source, [CompileTimeErrorCode.RECURSIVE_COMPILE_TIME_CONSTANT]);
-    verify([source]);
-  }
-
   void fail_superInitializerInObject() {
     Source source = addSource(r'''
 ''');
@@ -857,8 +835,11 @@
   return 3;
 }''');
     resolve(source);
+    // TODO(paulberry): the error CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE is
+    // redundant and ought to be suppressed.
     assertErrors(source, [
-      CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_FIELD_INITIALIZED_BY_NON_CONST
+      CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_FIELD_INITIALIZED_BY_NON_CONST,
+      CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE
     ]);
     verify([source]);
   }
@@ -1368,8 +1349,12 @@
 }
 f(p) { return const A(p); }''');
     resolve(source);
-    assertErrors(
-        source, [CompileTimeErrorCode.CONST_WITH_NON_CONSTANT_ARGUMENT]);
+    // TODO(paulberry): the error INVALID_CONSTAT is redundant and ought to be
+    // suppressed.
+    assertErrors(source, [
+      CompileTimeErrorCode.CONST_WITH_NON_CONSTANT_ARGUMENT,
+      CompileTimeErrorCode.INVALID_CONSTANT
+    ]);
     verify([source]);
   }
 
@@ -3251,6 +3236,19 @@
     // We cannot verify resolution with undefined labels
   }
 
+  void test_length_of_erroneous_constant() {
+    // Attempting to compute the length of constant that couldn't be evaluated
+    // (due to an error) should not crash the analyzer (see dartbug.com/23383)
+    Source source = addSource("const int i = (1 ? 'alpha' : 'beta').length;");
+    resolve(source);
+    assertErrors(source, [
+      CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE,
+      CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL,
+      StaticTypeWarningCode.NON_BOOL_CONDITION
+    ]);
+    verify([source]);
+  }
+
   void test_memberWithClassName_field() {
     Source source = addSource(r'''
 class A {
@@ -4367,8 +4365,12 @@
 }
 var b = const B();''');
     resolve(source);
-    assertErrors(
-        source, [CompileTimeErrorCode.NON_CONSTANT_VALUE_IN_INITIALIZER]);
+    // TODO(paulberry): the error INVALID_CONSTAT is redundant and ought to be
+    // suppressed.
+    assertErrors(source, [
+      CompileTimeErrorCode.NON_CONSTANT_VALUE_IN_INITIALIZER,
+      CompileTimeErrorCode.INVALID_CONSTANT
+    ]);
     verify([source]);
   }
 
@@ -4645,6 +4647,44 @@
     verify([source]);
   }
 
+  void test_recursiveCompileTimeConstant() {
+    Source source = addSource(r'''
+class A {
+  const A();
+  final m = const A();
+}''');
+    resolve(source);
+    assertErrors(
+        source, [CompileTimeErrorCode.RECURSIVE_COMPILE_TIME_CONSTANT]);
+    verify([source]);
+  }
+
+  void test_recursiveCompileTimeConstant_cycle() {
+    Source source = addSource(r'''
+const x = y + 1;
+const y = x + 1;''');
+    resolve(source);
+    assertErrors(source, [
+      CompileTimeErrorCode.RECURSIVE_COMPILE_TIME_CONSTANT,
+      CompileTimeErrorCode.RECURSIVE_COMPILE_TIME_CONSTANT
+    ]);
+    verify([source]);
+  }
+
+  void test_recursiveCompileTimeConstant_initializer_after_toplevel_var() {
+    Source source = addSource('''
+const y = const C();
+class C {
+  const C() : x = y;
+  final x;
+}
+''');
+    resolve(source);
+    assertErrors(
+        source, [CompileTimeErrorCode.RECURSIVE_COMPILE_TIME_CONSTANT]);
+    verify([source]);
+  }
+
   void test_recursiveConstructorRedirect() {
     Source source = addSource(r'''
 class A {
diff --git a/pkg/analyzer/test/generated/element_test.dart b/pkg/analyzer/test/generated/element_test.dart
index 4e8041d..7c03148 100644
--- a/pkg/analyzer/test/generated/element_test.dart
+++ b/pkg/analyzer/test/generated/element_test.dart
@@ -1253,7 +1253,7 @@
 @reflectiveTest
 class FunctionTypeImplTest extends EngineTestCase {
   void test_creation() {
-    expect(new FunctionTypeImpl.con1(
+    expect(new FunctionTypeImpl(
             new FunctionElementImpl.forNode(AstFactory.identifier3("f"))),
         isNotNull);
   }
@@ -1261,19 +1261,19 @@
   void test_getElement() {
     FunctionElementImpl typeElement =
         new FunctionElementImpl.forNode(AstFactory.identifier3("f"));
-    FunctionTypeImpl type = new FunctionTypeImpl.con1(typeElement);
+    FunctionTypeImpl type = new FunctionTypeImpl(typeElement);
     expect(type.element, typeElement);
   }
 
   void test_getNamedParameterTypes() {
-    FunctionTypeImpl type = new FunctionTypeImpl.con1(
+    FunctionTypeImpl type = new FunctionTypeImpl(
         new FunctionElementImpl.forNode(AstFactory.identifier3("f")));
     Map<String, DartType> types = type.namedParameterTypes;
     expect(types, hasLength(0));
   }
 
   void test_getNormalParameterTypes() {
-    FunctionTypeImpl type = new FunctionTypeImpl.con1(
+    FunctionTypeImpl type = new FunctionTypeImpl(
         new FunctionElementImpl.forNode(AstFactory.identifier3("f")));
     List<DartType> types = type.normalParameterTypes;
     expect(types, hasLength(0));
@@ -1284,26 +1284,26 @@
     FunctionElementImpl functionElement =
         new FunctionElementImpl.forNode(AstFactory.identifier3("f"));
     functionElement.returnType = expectedReturnType;
-    FunctionTypeImpl type = new FunctionTypeImpl.con1(functionElement);
+    FunctionTypeImpl type = new FunctionTypeImpl(functionElement);
     DartType returnType = type.returnType;
     expect(returnType, expectedReturnType);
   }
 
   void test_getTypeArguments() {
-    FunctionTypeImpl type = new FunctionTypeImpl.con1(
+    FunctionTypeImpl type = new FunctionTypeImpl(
         new FunctionElementImpl.forNode(AstFactory.identifier3("f")));
     List<DartType> types = type.typeArguments;
     expect(types, hasLength(0));
   }
 
   void test_hashCode_element() {
-    FunctionTypeImpl type = new FunctionTypeImpl.con1(
+    FunctionTypeImpl type = new FunctionTypeImpl(
         new FunctionElementImpl.forNode(AstFactory.identifier3("f")));
     type.hashCode;
   }
 
   void test_hashCode_noElement() {
-    FunctionTypeImpl type = new FunctionTypeImpl.con1(null);
+    FunctionTypeImpl type = new FunctionTypeImpl(null);
     type.hashCode;
   }
 
@@ -1653,7 +1653,7 @@
     ];
     functionAliasElement.returnType = stringType;
     FunctionTypeImpl functionAliasType =
-        new FunctionTypeImpl.con1(functionAliasElement);
+        new FunctionTypeImpl(functionAliasElement);
     functionAliasElement.type = functionAliasType;
     FunctionElementImpl functionElement =
         new FunctionElementImpl.forNode(AstFactory.identifier3("f"));
@@ -1662,7 +1662,7 @@
       ElementFactory.positionalParameter2("d", stringType)
     ];
     functionElement.returnType = provider.dynamicType;
-    FunctionTypeImpl functionType = new FunctionTypeImpl.con1(functionElement);
+    FunctionTypeImpl functionType = new FunctionTypeImpl(functionElement);
     functionElement.type = functionType;
     expect(functionType.isAssignableTo(functionAliasType), isTrue);
   }
@@ -1696,7 +1696,7 @@
     MethodElementImpl methodElement =
         new MethodElementImpl.forNode(AstFactory.identifier3("m"));
     enclosingClass.methods = <MethodElement>[methodElement];
-    FunctionTypeImpl type = new FunctionTypeImpl.con1(methodElement);
+    FunctionTypeImpl type = new FunctionTypeImpl(methodElement);
     DartType expectedType = enclosingClass.typeParameters[0].type;
     type.typeArguments = <DartType>[expectedType];
     List<DartType> arguments = type.typeArguments;
@@ -1717,9 +1717,9 @@
     ];
     functionElement.returnType = parameterType;
     definingClass.methods = <MethodElement>[functionElement];
-    FunctionTypeImpl functionType = new FunctionTypeImpl.con1(functionElement);
+    FunctionTypeImpl functionType = new FunctionTypeImpl(functionElement);
     functionType.typeArguments = <DartType>[parameterType];
-    InterfaceTypeImpl argumentType = new InterfaceTypeImpl.con1(
+    InterfaceTypeImpl argumentType = new InterfaceTypeImpl(
         new ClassElementImpl.forNode(AstFactory.identifier3("D")));
     FunctionType result = functionType.substitute2(
         <DartType>[argumentType], <DartType>[parameterType]);
@@ -1736,13 +1736,13 @@
   }
 
   void test_substitute2_notEqual() {
-    DartType returnType = new InterfaceTypeImpl.con1(
+    DartType returnType = new InterfaceTypeImpl(
         new ClassElementImpl.forNode(AstFactory.identifier3("R")));
-    DartType normalParameterType = new InterfaceTypeImpl.con1(
+    DartType normalParameterType = new InterfaceTypeImpl(
         new ClassElementImpl.forNode(AstFactory.identifier3("A")));
-    DartType optionalParameterType = new InterfaceTypeImpl.con1(
+    DartType optionalParameterType = new InterfaceTypeImpl(
         new ClassElementImpl.forNode(AstFactory.identifier3("B")));
-    DartType namedParameterType = new InterfaceTypeImpl.con1(
+    DartType namedParameterType = new InterfaceTypeImpl(
         new ClassElementImpl.forNode(AstFactory.identifier3("C")));
     FunctionElementImpl functionElement =
         new FunctionElementImpl.forNode(AstFactory.identifier3("f"));
@@ -1753,8 +1753,8 @@
       ElementFactory.namedParameter2(namedParameterName, namedParameterType)
     ];
     functionElement.returnType = returnType;
-    FunctionTypeImpl functionType = new FunctionTypeImpl.con1(functionElement);
-    InterfaceTypeImpl argumentType = new InterfaceTypeImpl.con1(
+    FunctionTypeImpl functionType = new FunctionTypeImpl(functionElement);
+    InterfaceTypeImpl argumentType = new InterfaceTypeImpl(
         new ClassElementImpl.forNode(AstFactory.identifier3("D")));
     TypeParameterTypeImpl parameterType = new TypeParameterTypeImpl(
         new TypeParameterElementImpl.forNode(AstFactory.identifier3("E")));
@@ -1958,7 +1958,7 @@
     ClassElement classD = ElementFactory.classElement2("D");
     InterfaceType typeA = classA.type;
     classB.interfaces = <InterfaceType>[typeA];
-    InterfaceTypeImpl typeBT = new InterfaceTypeImpl.con1(classB);
+    InterfaceTypeImpl typeBT = new InterfaceTypeImpl(classB);
     DartType typeT = classC.type.typeArguments[0];
     typeBT.typeArguments = <DartType>[typeT];
     classC.interfaces = <InterfaceType>[typeBT];
@@ -1969,7 +1969,7 @@
     InterfaceType typeObject = ElementFactory.object.type;
     expect(superinterfacesOfA.contains(typeObject), isTrue);
     // B<D>
-    InterfaceTypeImpl typeBD = new InterfaceTypeImpl.con1(classB);
+    InterfaceTypeImpl typeBD = new InterfaceTypeImpl(classB);
     typeBD.typeArguments = <DartType>[classD.type];
     Set<InterfaceType> superinterfacesOfBD =
         InterfaceTypeImpl.computeSuperinterfaceSet(typeBD);
@@ -1977,7 +1977,7 @@
     expect(superinterfacesOfBD.contains(typeObject), isTrue);
     expect(superinterfacesOfBD.contains(typeA), isTrue);
     // C<D>
-    InterfaceTypeImpl typeCD = new InterfaceTypeImpl.con1(classC);
+    InterfaceTypeImpl typeCD = new InterfaceTypeImpl(classC);
     typeCD.typeArguments = <DartType>[classD.type];
     Set<InterfaceType> superinterfacesOfCD =
         InterfaceTypeImpl.computeSuperinterfaceSet(typeCD);
@@ -2001,7 +2001,7 @@
     InterfaceType typeA = classA.type;
     ClassElement classB = ElementFactory.classElement("B", typeA, ["T"]);
     ClassElementImpl classC = ElementFactory.classElement2("C", ["T"]);
-    InterfaceTypeImpl typeBT = new InterfaceTypeImpl.con1(classB);
+    InterfaceTypeImpl typeBT = new InterfaceTypeImpl(classB);
     DartType typeT = classC.type.typeArguments[0];
     typeBT.typeArguments = <DartType>[typeT];
     classC.supertype = typeBT;
@@ -2013,7 +2013,7 @@
     InterfaceType typeObject = ElementFactory.object.type;
     expect(superinterfacesOfA.contains(typeObject), isTrue);
     // B<D>
-    InterfaceTypeImpl typeBD = new InterfaceTypeImpl.con1(classB);
+    InterfaceTypeImpl typeBD = new InterfaceTypeImpl(classB);
     typeBD.typeArguments = <DartType>[classD.type];
     Set<InterfaceType> superinterfacesOfBD =
         InterfaceTypeImpl.computeSuperinterfaceSet(typeBD);
@@ -2021,7 +2021,7 @@
     expect(superinterfacesOfBD.contains(typeObject), isTrue);
     expect(superinterfacesOfBD.contains(typeA), isTrue);
     // C<D>
-    InterfaceTypeImpl typeCD = new InterfaceTypeImpl.con1(classC);
+    InterfaceTypeImpl typeCD = new InterfaceTypeImpl(classC);
     typeCD.typeArguments = <DartType>[classD.type];
     Set<InterfaceType> superinterfacesOfCD =
         InterfaceTypeImpl.computeSuperinterfaceSet(typeCD);
@@ -2151,8 +2151,7 @@
   }
 
   void test_creation() {
-    expect(new InterfaceTypeImpl.con1(ElementFactory.classElement2("A")),
-        isNotNull);
+    expect(new InterfaceTypeImpl(ElementFactory.classElement2("A")), isNotNull);
   }
 
   void test_getAccessors() {
@@ -2162,19 +2161,19 @@
     PropertyAccessorElement getterH =
         ElementFactory.getterElement("h", false, null);
     typeElement.accessors = <PropertyAccessorElement>[getterG, getterH];
-    InterfaceTypeImpl type = new InterfaceTypeImpl.con1(typeElement);
+    InterfaceTypeImpl type = new InterfaceTypeImpl(typeElement);
     expect(type.accessors.length, 2);
   }
 
   void test_getAccessors_empty() {
     ClassElementImpl typeElement = ElementFactory.classElement2("A");
-    InterfaceTypeImpl type = new InterfaceTypeImpl.con1(typeElement);
+    InterfaceTypeImpl type = new InterfaceTypeImpl(typeElement);
     expect(type.accessors.length, 0);
   }
 
   void test_getElement() {
     ClassElementImpl typeElement = ElementFactory.classElement2("A");
-    InterfaceTypeImpl type = new InterfaceTypeImpl.con1(typeElement);
+    InterfaceTypeImpl type = new InterfaceTypeImpl(typeElement);
     expect(type.element, typeElement);
   }
 
@@ -2207,7 +2206,7 @@
     // A<I>
     //
     InterfaceType typeI = ElementFactory.classElement2("I").type;
-    InterfaceTypeImpl typeAI = new InterfaceTypeImpl.con1(classA);
+    InterfaceTypeImpl typeAI = new InterfaceTypeImpl(classA);
     typeAI.typeArguments = <DartType>[typeI];
     PropertyAccessorElement getter = typeAI.getGetter(getterName);
     expect(getter, isNotNull);
@@ -2252,14 +2251,14 @@
     ClassElementImpl classA = ElementFactory.classElement2("A", ["E"]);
     ClassElementImpl classB = ElementFactory.classElement2("B", ["F"]);
     InterfaceType typeB = classB.type;
-    InterfaceTypeImpl typeAF = new InterfaceTypeImpl.con1(classA);
+    InterfaceTypeImpl typeAF = new InterfaceTypeImpl(classA);
     typeAF.typeArguments = <DartType>[typeB.typeArguments[0]];
     classB.interfaces = <InterfaceType>[typeAF];
     //
     // B<I>
     //
     InterfaceType typeI = ElementFactory.classElement2("I").type;
-    InterfaceTypeImpl typeBI = new InterfaceTypeImpl.con1(classB);
+    InterfaceTypeImpl typeBI = new InterfaceTypeImpl(classB);
     typeBI.typeArguments = <DartType>[typeI];
     List<InterfaceType> interfaces = typeBI.interfaces;
     expect(interfaces, hasLength(1));
@@ -2303,7 +2302,7 @@
 
   void test_getLeastUpperBound_functionType() {
     DartType interfaceType = ElementFactory.classElement2("A").type;
-    FunctionTypeImpl functionType = new FunctionTypeImpl.con1(
+    FunctionTypeImpl functionType = new FunctionTypeImpl(
         new FunctionElementImpl.forNode(AstFactory.identifier3("f")));
     expect(interfaceType.getLeastUpperBound(functionType), isNull);
   }
@@ -2531,7 +2530,7 @@
     // A<I>
     //
     InterfaceType typeI = ElementFactory.classElement2("I").type;
-    InterfaceTypeImpl typeAI = new InterfaceTypeImpl.con1(classA);
+    InterfaceTypeImpl typeAI = new InterfaceTypeImpl(classA);
     typeAI.typeArguments = <DartType>[typeI];
     MethodElement method = typeAI.getMethod(methodName);
     expect(method, isNotNull);
@@ -2556,13 +2555,13 @@
     MethodElementImpl methodOne = ElementFactory.methodElement("one", null);
     MethodElementImpl methodTwo = ElementFactory.methodElement("two", null);
     typeElement.methods = <MethodElement>[methodOne, methodTwo];
-    InterfaceTypeImpl type = new InterfaceTypeImpl.con1(typeElement);
+    InterfaceTypeImpl type = new InterfaceTypeImpl(typeElement);
     expect(type.methods.length, 2);
   }
 
   void test_getMethods_empty() {
     ClassElementImpl typeElement = ElementFactory.classElement2("A");
-    InterfaceTypeImpl type = new InterfaceTypeImpl.con1(typeElement);
+    InterfaceTypeImpl type = new InterfaceTypeImpl(typeElement);
     expect(type.methods.length, 0);
   }
 
@@ -2594,14 +2593,14 @@
     ClassElementImpl classA = ElementFactory.classElement2("A", ["E"]);
     ClassElementImpl classB = ElementFactory.classElement2("B", ["F"]);
     InterfaceType typeB = classB.type;
-    InterfaceTypeImpl typeAF = new InterfaceTypeImpl.con1(classA);
+    InterfaceTypeImpl typeAF = new InterfaceTypeImpl(classA);
     typeAF.typeArguments = <DartType>[typeB.typeArguments[0]];
     classB.mixins = <InterfaceType>[typeAF];
     //
     // B<I>
     //
     InterfaceType typeI = ElementFactory.classElement2("I").type;
-    InterfaceTypeImpl typeBI = new InterfaceTypeImpl.con1(classB);
+    InterfaceTypeImpl typeBI = new InterfaceTypeImpl(classB);
     typeBI.typeArguments = <DartType>[typeI];
     List<InterfaceType> interfaces = typeBI.mixins;
     expect(interfaces, hasLength(1));
@@ -2639,7 +2638,7 @@
     // A<I>
     //
     InterfaceType typeI = ElementFactory.classElement2("I").type;
-    InterfaceTypeImpl typeAI = new InterfaceTypeImpl.con1(classA);
+    InterfaceTypeImpl typeAI = new InterfaceTypeImpl(classA);
     typeAI.typeArguments = <DartType>[typeI];
     PropertyAccessorElement setter = typeAI.getSetter(setterName);
     expect(setter, isNotNull);
@@ -2677,14 +2676,14 @@
     ClassElementImpl classA = ElementFactory.classElement2("A", ["E"]);
     ClassElementImpl classB = ElementFactory.classElement2("B", ["F"]);
     InterfaceType typeB = classB.type;
-    InterfaceTypeImpl typeAF = new InterfaceTypeImpl.con1(classA);
+    InterfaceTypeImpl typeAF = new InterfaceTypeImpl(classA);
     typeAF.typeArguments = <DartType>[typeB.typeArguments[0]];
     classB.supertype = typeAF;
     //
     // B<I>
     //
     InterfaceType typeI = ElementFactory.classElement2("I").type;
-    InterfaceTypeImpl typeBI = new InterfaceTypeImpl.con1(classB);
+    InterfaceTypeImpl typeBI = new InterfaceTypeImpl(classB);
     typeBI.typeArguments = <DartType>[typeI];
     InterfaceType superclass = typeBI.superclass;
     expect(superclass.element, same(classA));
@@ -2714,9 +2713,9 @@
     //
     ClassElement classA = ElementFactory.classElement2("A", ["E"]);
     ClassElement classB = ElementFactory.classElement2("B", ["F", "G"]);
-    InterfaceTypeImpl typeAF = new InterfaceTypeImpl.con1(classA);
+    InterfaceTypeImpl typeAF = new InterfaceTypeImpl(classA);
     typeAF.typeArguments = <DartType>[classB.typeParameters[0].type];
-    InterfaceTypeImpl typeAG = new InterfaceTypeImpl.con1(classA);
+    InterfaceTypeImpl typeAG = new InterfaceTypeImpl(classA);
     typeAG.typeArguments = <DartType>[classB.typeParameters[1].type];
     expect(typeAG.isAssignableTo(typeAF), isFalse);
   }
@@ -2770,8 +2769,8 @@
     ClassElement classA = ElementFactory.classElement2("A", ["E"]);
     ClassElement classI = ElementFactory.classElement2("I");
     ClassElement classJ = ElementFactory.classElement("J", classI.type);
-    InterfaceTypeImpl typeAI = new InterfaceTypeImpl.con1(classA);
-    InterfaceTypeImpl typeAJ = new InterfaceTypeImpl.con1(classA);
+    InterfaceTypeImpl typeAI = new InterfaceTypeImpl(classA);
+    InterfaceTypeImpl typeAJ = new InterfaceTypeImpl(classA);
     typeAI.typeArguments = <DartType>[classI.type];
     typeAJ.typeArguments = <DartType>[classJ.type];
     expect(typeAJ.isMoreSpecificThan(typeAI), isTrue);
@@ -3024,9 +3023,9 @@
     ClassElement classK = ElementFactory.classElement2("K");
     InterfaceType typeA = classA.type;
     InterfaceType typeA_dynamic = typeA.substitute4(<DartType>[dynamicType]);
-    InterfaceTypeImpl typeAI = new InterfaceTypeImpl.con1(classA);
-    InterfaceTypeImpl typeAJ = new InterfaceTypeImpl.con1(classA);
-    InterfaceTypeImpl typeAK = new InterfaceTypeImpl.con1(classA);
+    InterfaceTypeImpl typeAI = new InterfaceTypeImpl(classA);
+    InterfaceTypeImpl typeAJ = new InterfaceTypeImpl(classA);
+    InterfaceTypeImpl typeAK = new InterfaceTypeImpl(classA);
     typeAI.typeArguments = <DartType>[classI.type];
     typeAJ.typeArguments = <DartType>[classJ.type];
     typeAK.typeArguments = <DartType>[classK.type];
@@ -3299,7 +3298,7 @@
         classA.type.typeArguments;
     ClassElementImpl classB = ElementFactory.classElement2("B", ["F"]);
     InterfaceType typeB = classB.type;
-    InterfaceTypeImpl typeAF = new InterfaceTypeImpl.con1(classA);
+    InterfaceTypeImpl typeAF = new InterfaceTypeImpl(classA);
     typeAF.typeArguments = <DartType>[typeB.typeArguments[0]];
     classB.supertype = typeAF;
     LibraryElementImpl library =
@@ -3310,7 +3309,7 @@
     // B<I>
     //
     InterfaceType typeI = ElementFactory.classElement2("I").type;
-    InterfaceTypeImpl typeBI = new InterfaceTypeImpl.con1(classB);
+    InterfaceTypeImpl typeBI = new InterfaceTypeImpl(classB);
     typeBI.typeArguments = <DartType>[typeI];
     MethodElement method = typeBI.lookUpMethod(methodName, library);
     expect(method, isNotNull);
@@ -3469,7 +3468,7 @@
   void test_substitute_exception() {
     try {
       ClassElementImpl classA = ElementFactory.classElement2("A");
-      InterfaceTypeImpl type = new InterfaceTypeImpl.con1(classA);
+      InterfaceTypeImpl type = new InterfaceTypeImpl(classA);
       InterfaceType argumentType = ElementFactory.classElement2("B").type;
       type.substitute2(<DartType>[argumentType], <DartType>[]);
       fail(
@@ -3485,7 +3484,7 @@
     ClassElementImpl classA = ElementFactory.classElement2("A");
     TypeParameterElementImpl parameterElement =
         new TypeParameterElementImpl.forNode(AstFactory.identifier3("E"));
-    InterfaceTypeImpl type = new InterfaceTypeImpl.con1(classA);
+    InterfaceTypeImpl type = new InterfaceTypeImpl(classA);
     TypeParameterTypeImpl parameter =
         new TypeParameterTypeImpl(parameterElement);
     type.typeArguments = <DartType>[parameter];
@@ -3563,9 +3562,9 @@
     LibraryElementImpl library = ElementFactory.library(context, "test");
     CompilationUnitElement unitLib = library.definingCompilationUnit;
     CompilationUnitElementImpl unitA =
-        ElementFactory.compilationUnit("unit_a.dart");
+        ElementFactory.compilationUnit("unit_a.dart", unitLib.source);
     CompilationUnitElementImpl unitB =
-        ElementFactory.compilationUnit("unit_b.dart");
+        ElementFactory.compilationUnit("unit_b.dart", unitLib.source);
     library.parts = <CompilationUnitElement>[unitA, unitB];
     expect(library.units,
         unorderedEquals(<CompilationUnitElement>[unitLib, unitA, unitB]));
@@ -3902,7 +3901,7 @@
     TypeParameterElementImpl element =
         new TypeParameterElementImpl.forNode(AstFactory.identifier3("E"));
     TypeParameterTypeImpl type = new TypeParameterTypeImpl(element);
-    InterfaceTypeImpl argument = new InterfaceTypeImpl.con1(
+    InterfaceTypeImpl argument = new InterfaceTypeImpl(
         new ClassElementImpl.forNode(AstFactory.identifier3("A")));
     TypeParameterTypeImpl parameter = new TypeParameterTypeImpl(element);
     expect(type.substitute2(<DartType>[argument], <DartType>[parameter]),
@@ -3912,7 +3911,7 @@
   void test_substitute_notEqual() {
     TypeParameterTypeImpl type = new TypeParameterTypeImpl(
         new TypeParameterElementImpl.forNode(AstFactory.identifier3("E")));
-    InterfaceTypeImpl argument = new InterfaceTypeImpl.con1(
+    InterfaceTypeImpl argument = new InterfaceTypeImpl(
         new ClassElementImpl.forNode(AstFactory.identifier3("A")));
     TypeParameterTypeImpl parameter = new TypeParameterTypeImpl(
         new TypeParameterElementImpl.forNode(AstFactory.identifier3("F")));
@@ -3962,7 +3961,7 @@
 class _FunctionTypeImplTest_isSubtypeOf_baseCase_classFunction
     extends InterfaceTypeImpl {
   _FunctionTypeImplTest_isSubtypeOf_baseCase_classFunction(ClassElement arg0)
-      : super.con1(arg0);
+      : super(arg0);
 
   @override
   bool get isDartCoreFunction => true;
diff --git a/pkg/analyzer/test/generated/engine_test.dart b/pkg/analyzer/test/generated/engine_test.dart
index 06cafa0..7809218 100644
--- a/pkg/analyzer/test/generated/engine_test.dart
+++ b/pkg/analyzer/test/generated/engine_test.dart
@@ -107,11 +107,11 @@
         new UniversalCachePartition(null, 8, new DefaultRetentionPolicy());
     AnalysisCache cache = new AnalysisCache(<CachePartition>[partition]);
     JavaFile file = new JavaFile('baz.dart');
-    Source source1 = new FileBasedSource.con1(file);
+    Source source1 = new FileBasedSource(file);
     Source source2 =
-        new FileBasedSource.con2(Uri.parse('package:foo/baz.dart'), file);
+        new FileBasedSource(file, Uri.parse('package:foo/baz.dart'));
     Source source3 =
-        new FileBasedSource.con2(Uri.parse('package:bar/baz.dart'), file);
+        new FileBasedSource(file, Uri.parse('package:bar/baz.dart'));
     DartEntry entry1 = new DartEntry();
     DartEntry entry2 = new DartEntry();
     DartEntry entry3 = new DartEntry();
@@ -235,7 +235,7 @@
     ]);
     _context.sourceFactory = _sourceFactory;
     AnalysisOptionsImpl options =
-        new AnalysisOptionsImpl.con1(_context.analysisOptions);
+        new AnalysisOptionsImpl.from(_context.analysisOptions);
     options.cacheSize = 256;
     _context.analysisOptions = options;
   }
@@ -252,7 +252,7 @@
     _context.onSourcesChanged.listen(listener.onData);
     expect(_context.sourcesNeedingProcessing.isEmpty, isTrue);
     Source source =
-        new FileBasedSource.con1(FileUtilities2.createFile("/test.dart"));
+        new FileBasedSource(FileUtilities2.createFile("/test.dart"));
     ChangeSet changeSet = new ChangeSet();
     changeSet.addedSource(source);
     _context.applyChanges(changeSet);
@@ -268,13 +268,13 @@
     _context.onSourcesChanged.listen(listener.onData);
     expect(_context.sourcesNeedingProcessing.isEmpty, isTrue);
     Source source =
-        new FileBasedSource.con1(FileUtilities2.createFile("/test.dart"));
+        new FileBasedSource(FileUtilities2.createFile("/test.dart"));
     ChangeSet changeSet1 = new ChangeSet();
     changeSet1.addedSource(source);
     _context.applyChanges(changeSet1);
     expect(_context.sourcesNeedingProcessing.contains(source), isTrue);
     Source source2 =
-        new FileBasedSource.con1(FileUtilities2.createFile("/test2.dart"));
+        new FileBasedSource(FileUtilities2.createFile("/test2.dart"));
     ChangeSet changeSet2 = new ChangeSet();
     changeSet2.addedSource(source2);
     changeSet2.changedSource(source);
@@ -291,13 +291,13 @@
     _context.onSourcesChanged.listen(listener.onData);
     expect(_context.sourcesNeedingProcessing.isEmpty, isTrue);
     Source source =
-        new FileBasedSource.con1(FileUtilities2.createFile("/test.dart"));
+        new FileBasedSource(FileUtilities2.createFile("/test.dart"));
     ChangeSet changeSet1 = new ChangeSet();
     changeSet1.addedSource(source);
     _context.applyChanges(changeSet1);
     expect(_context.sourcesNeedingProcessing.contains(source), isTrue);
     Source source2 =
-        new FileBasedSource.con1(FileUtilities2.createFile("/test2.dart"));
+        new FileBasedSource(FileUtilities2.createFile("/test2.dart"));
     ChangeSet changeSet2 = new ChangeSet();
     changeSet2.addedSource(source2);
     changeSet2.changedContent(source, 'library test;');
@@ -376,13 +376,13 @@
     _context.onSourcesChanged.listen(listener.onData);
     expect(_context.sourcesNeedingProcessing.isEmpty, isTrue);
     Source source =
-        new FileBasedSource.con1(FileUtilities2.createFile("/test.dart"));
+        new FileBasedSource(FileUtilities2.createFile("/test.dart"));
     ChangeSet changeSet1 = new ChangeSet();
     changeSet1.addedSource(source);
     _context.applyChanges(changeSet1);
     expect(_context.sourcesNeedingProcessing.contains(source), isTrue);
     Source source2 =
-        new FileBasedSource.con1(FileUtilities2.createFile("/test2.dart"));
+        new FileBasedSource(FileUtilities2.createFile("/test2.dart"));
     ChangeSet changeSet2 = new ChangeSet();
     changeSet2.addedSource(source2);
     changeSet2.changedRange(source, 'library test;', 0, 0, 13);
@@ -1370,7 +1370,7 @@
 
   void test_parseCompilationUnit_nonExistentSource() {
     Source source =
-        new FileBasedSource.con1(FileUtilities2.createFile("/test.dart"));
+        new FileBasedSource(FileUtilities2.createFile("/test.dart"));
     try {
       _context.parseCompilationUnit(source);
       fail("Expected AnalysisException because file does not exist");
@@ -1828,7 +1828,7 @@
 
   void test_setAnalysisOptions_reduceAnalysisPriorityOrder() {
     AnalysisOptionsImpl options =
-        new AnalysisOptionsImpl.con1(_context.analysisOptions);
+        new AnalysisOptionsImpl.from(_context.analysisOptions);
     List<Source> sources = new List<Source>();
     for (int index = 0; index < options.cacheSize; index++) {
       sources.add(_addSource("/lib.dart$index", ""));
@@ -1908,7 +1908,7 @@
   void test_setChangedContents_notResolved() {
     _context = AnalysisContextFactory.contextWithCore();
     AnalysisOptionsImpl options =
-        new AnalysisOptionsImpl.con1(_context.analysisOptions);
+        new AnalysisOptionsImpl.from(_context.analysisOptions);
     options.incremental = true;
     _context.analysisOptions = options;
     _sourceFactory = _context.sourceFactory;
@@ -2025,7 +2025,7 @@
   void test_updateAnalysis() {
     expect(_context.sourcesNeedingProcessing.isEmpty, isTrue);
     Source source =
-        new FileBasedSource.con1(FileUtilities2.createFile("/test.dart"));
+        new FileBasedSource(FileUtilities2.createFile("/test.dart"));
     AnalysisDelta delta = new AnalysisDelta();
     delta.setAnalysisLevel(source, AnalysisLevel.ALL);
     _context.applyAnalysisDelta(delta);
@@ -2039,7 +2039,7 @@
   void xtest_performAnalysisTask_stress() {
     int maxCacheSize = 4;
     AnalysisOptionsImpl options =
-        new AnalysisOptionsImpl.con1(_context.analysisOptions);
+        new AnalysisOptionsImpl.from(_context.analysisOptions);
     options.cacheSize = maxCacheSize;
     _context.analysisOptions = options;
     int sourceCount = maxCacheSize + 2;
@@ -2067,8 +2067,7 @@
   }
 
   Source _addSource(String fileName, String contents) {
-    Source source =
-        new FileBasedSource.con1(FileUtilities2.createFile(fileName));
+    Source source = new FileBasedSource(FileUtilities2.createFile(fileName));
     ChangeSet changeSet = new ChangeSet();
     changeSet.addedSource(source);
     _context.applyChanges(changeSet);
@@ -2215,7 +2214,7 @@
       options.hint = booleanValue;
       options.incremental = booleanValue;
       options.preserveComments = booleanValue;
-      AnalysisOptionsImpl copy = new AnalysisOptionsImpl.con1(options);
+      AnalysisOptionsImpl copy = new AnalysisOptionsImpl.from(options);
       expect(copy.analyzeFunctionBodies, options.analyzeFunctionBodies);
       expect(copy.cacheSize, options.cacheSize);
       expect(copy.dart2jsHint, options.dart2jsHint);
@@ -2324,28 +2323,28 @@
     DartEntry entry = new DartEntry();
     expect(entry.allErrors, hasLength(0));
     entry.setValue(SourceEntry.CONTENT_ERRORS, <AnalysisError>[
-      new AnalysisError.con1(
-          source, ScannerErrorCode.UNABLE_GET_CONTENT, ['exception details'])
+      new AnalysisError(source, 0, 0, ScannerErrorCode.UNABLE_GET_CONTENT,
+          ['exception details'])
     ]);
     entry.setValue(DartEntry.SCAN_ERRORS, <AnalysisError>[
-      new AnalysisError.con1(
-          source, ScannerErrorCode.UNTERMINATED_STRING_LITERAL)
+      new AnalysisError(
+          source, 0, 0, ScannerErrorCode.UNTERMINATED_STRING_LITERAL)
     ]);
     entry.setValue(DartEntry.PARSE_ERRORS, <AnalysisError>[
-      new AnalysisError.con1(source, ParserErrorCode.ABSTRACT_CLASS_MEMBER)
+      new AnalysisError(source, 0, 0, ParserErrorCode.ABSTRACT_CLASS_MEMBER)
     ]);
     entry.setValueInLibrary(DartEntry.RESOLUTION_ERRORS, source,
         <AnalysisError>[
-      new AnalysisError.con1(
-          source, CompileTimeErrorCode.CONST_CONSTRUCTOR_THROWS_EXCEPTION)
+      new AnalysisError(
+          source, 0, 0, CompileTimeErrorCode.CONST_CONSTRUCTOR_THROWS_EXCEPTION)
     ]);
     entry.setValueInLibrary(DartEntry.VERIFICATION_ERRORS, source,
         <AnalysisError>[
-      new AnalysisError.con1(
-          source, StaticWarningCode.CASE_BLOCK_NOT_TERMINATED)
+      new AnalysisError(
+          source, 0, 0, StaticWarningCode.CASE_BLOCK_NOT_TERMINATED)
     ]);
     entry.setValueInLibrary(DartEntry.HINTS, source,
-        <AnalysisError>[new AnalysisError.con1(source, HintCode.DEAD_CODE)]);
+        <AnalysisError>[new AnalysisError(source, 0, 0, HintCode.DEAD_CODE)]);
     expect(entry.allErrors, hasLength(6));
   }
 
@@ -3386,7 +3385,7 @@
 
   void test_setValue_hints() {
     _setValueInLibrary(DartEntry.HINTS,
-        <AnalysisError>[new AnalysisError.con1(null, HintCode.DEAD_CODE)]);
+        <AnalysisError>[new AnalysisError(null, 0, 0, HintCode.DEAD_CODE)]);
   }
 
   void test_setValue_importedLibraries() {
@@ -3415,7 +3414,7 @@
 
   void test_setValue_parseErrors() {
     _setValue(DartEntry.PARSE_ERRORS, <AnalysisError>[
-      new AnalysisError.con1(null, ParserErrorCode.ABSTRACT_CLASS_MEMBER)
+      new AnalysisError(null, 0, 0, ParserErrorCode.ABSTRACT_CLASS_MEMBER)
     ]);
   }
 
@@ -3426,8 +3425,8 @@
 
   void test_setValue_resolutionErrors() {
     _setValueInLibrary(DartEntry.RESOLUTION_ERRORS, <AnalysisError>[
-      new AnalysisError.con1(
-          null, CompileTimeErrorCode.CONST_CONSTRUCTOR_THROWS_EXCEPTION)
+      new AnalysisError(
+          null, 0, 0, CompileTimeErrorCode.CONST_CONSTRUCTOR_THROWS_EXCEPTION)
     ]);
   }
 
@@ -3437,8 +3436,8 @@
 
   void test_setValue_scanErrors() {
     _setValue(DartEntry.SCAN_ERRORS, <AnalysisError>[
-      new AnalysisError.con1(
-          null, ScannerErrorCode.UNTERMINATED_MULTI_LINE_COMMENT)
+      new AnalysisError(
+          null, 0, 0, ScannerErrorCode.UNTERMINATED_MULTI_LINE_COMMENT)
     ]);
   }
 
@@ -3452,7 +3451,7 @@
 
   void test_setValue_verificationErrors() {
     _setValueInLibrary(DartEntry.VERIFICATION_ERRORS, <AnalysisError>[
-      new AnalysisError.con1(null, StaticWarningCode.CASE_BLOCK_NOT_TERMINATED)
+      new AnalysisError(null, 0, 0, StaticWarningCode.CASE_BLOCK_NOT_TERMINATED)
     ]);
   }
 
@@ -3609,7 +3608,7 @@
 
   void test_getSource() {
     Source source =
-        new FileBasedSource.con1(FileUtilities2.createFile("/test.dart"));
+        new FileBasedSource(FileUtilities2.createFile("/test.dart"));
     GenerateDartErrorsTask task =
         new GenerateDartErrorsTask(null, source, null, null);
     expect(task.source, same(source));
@@ -3618,7 +3617,7 @@
   void test_perform() {
     InternalAnalysisContext context = AnalysisContextFactory.contextWithCore();
     Source source =
-        new FileBasedSource.con1(FileUtilities2.createFile("/test.dart"));
+        new FileBasedSource(FileUtilities2.createFile("/test.dart"));
     ChangeSet changeSet = new ChangeSet();
     changeSet.addedSource(source);
     context.applyChanges(changeSet);
@@ -3639,7 +3638,7 @@
   void test_perform_validateDirectives() {
     InternalAnalysisContext context = AnalysisContextFactory.contextWithCore();
     Source source =
-        new FileBasedSource.con1(FileUtilities2.createFile("/test.dart"));
+        new FileBasedSource(FileUtilities2.createFile("/test.dart"));
     ChangeSet changeSet = new ChangeSet();
     changeSet.addedSource(source);
     context.applyChanges(changeSet);
@@ -3733,13 +3732,13 @@
     InternalAnalysisContext context = AnalysisContextFactory.contextWithCore();
     ChangeSet changeSet = new ChangeSet();
     Source librarySource =
-        new FileBasedSource.con1(FileUtilities2.createFile("/test.dart"));
+        new FileBasedSource(FileUtilities2.createFile("/test.dart"));
     changeSet.addedSource(librarySource);
     Source unusedSource =
-        new FileBasedSource.con1(FileUtilities2.createFile("/unused.dart"));
+        new FileBasedSource(FileUtilities2.createFile("/unused.dart"));
     changeSet.addedSource(unusedSource);
     Source partSource =
-        new FileBasedSource.con1(FileUtilities2.createFile("/part.dart"));
+        new FileBasedSource(FileUtilities2.createFile("/part.dart"));
     changeSet.addedSource(partSource);
     context.applyChanges(changeSet);
     context.setContents(librarySource, r'''
@@ -3812,7 +3811,7 @@
     InternalAnalysisContext context = AnalysisContextFactory.contextWithCore();
     ChangeSet changeSet = new ChangeSet();
     Source librarySource =
-        new FileBasedSource.con1(FileUtilities2.createFile("/test.dart"));
+        new FileBasedSource(FileUtilities2.createFile("/test.dart"));
     changeSet.addedSource(librarySource);
     context.applyChanges(changeSet);
     context.setContents(librarySource, r'''
@@ -3939,13 +3938,13 @@
     HtmlEntry entry = new HtmlEntry();
     expect(entry.allErrors, hasLength(0));
     entry.setValue(HtmlEntry.PARSE_ERRORS, <AnalysisError>[
-      new AnalysisError.con1(source, ParserErrorCode.EXPECTED_TOKEN, [";"])
+      new AnalysisError(source, 0, 0, ParserErrorCode.EXPECTED_TOKEN, [";"])
     ]);
     entry.setValue(HtmlEntry.RESOLUTION_ERRORS, <AnalysisError>[
-      new AnalysisError.con1(source, HtmlWarningCode.INVALID_URI, ["-"])
+      new AnalysisError(source, 0, 0, HtmlWarningCode.INVALID_URI, ["-"])
     ]);
     entry.setValue(HtmlEntry.HINTS,
-        <AnalysisError>[new AnalysisError.con1(source, HintCode.DEAD_CODE)]);
+        <AnalysisError>[new AnalysisError(source, 0, 0, HintCode.DEAD_CODE)]);
     expect(entry.allErrors, hasLength(3));
   }
 
@@ -4011,7 +4010,7 @@
 
   void test_setValue_hints() {
     _setValue(HtmlEntry.HINTS,
-        <AnalysisError>[new AnalysisError.con1(null, HintCode.DEAD_CODE)]);
+        <AnalysisError>[new AnalysisError(null, 0, 0, HintCode.DEAD_CODE)]);
   }
 
   void test_setValue_illegal() {
@@ -4032,7 +4031,7 @@
 
   void test_setValue_parseErrors() {
     _setValue(HtmlEntry.PARSE_ERRORS, <AnalysisError>[
-      new AnalysisError.con1(null, HtmlWarningCode.INVALID_URI, ["-"])
+      new AnalysisError(null, 0, 0, HtmlWarningCode.INVALID_URI, ["-"])
     ]);
   }
 
@@ -4042,7 +4041,7 @@
 
   void test_setValue_resolutionErrors() {
     _setValue(HtmlEntry.RESOLUTION_ERRORS, <AnalysisError>[
-      new AnalysisError.con1(null, HtmlWarningCode.INVALID_URI, ["-"])
+      new AnalysisError(null, 0, 0, HtmlWarningCode.INVALID_URI, ["-"])
     ]);
   }
 
@@ -4453,7 +4452,7 @@
     InternalAnalysisContext context = AnalysisContextFactory.contextWithCore();
     ChangeSet changeSet = new ChangeSet();
     Source librarySource =
-        new FileBasedSource.con1(FileUtilities2.createFile("/test.dart"));
+        new FileBasedSource(FileUtilities2.createFile("/test.dart"));
     changeSet.addedSource(librarySource);
     context.applyChanges(changeSet);
     context.setContents(librarySource, r'''
@@ -4480,7 +4479,7 @@
     InternalAnalysisContext context = AnalysisContextFactory.contextWithCore();
     ChangeSet changeSet = new ChangeSet();
     Source librarySource =
-        new FileBasedSource.con1(FileUtilities2.createFile("/test.dart"));
+        new FileBasedSource(FileUtilities2.createFile("/test.dart"));
     changeSet.addedSource(librarySource);
     context.applyChanges(changeSet);
     context.setContents(librarySource, r'''
@@ -5371,7 +5370,7 @@
 
   static void assertEvent(SourcesChangedEvent event,
       {bool wereSourcesAdded: false,
-      List<Source> changedSources: Source.EMPTY_ARRAY,
+      List<Source> changedSources: Source.EMPTY_LIST,
       bool wereSourcesRemovedOrDeleted: false}) {
     expect(event.wereSourcesAdded, wereSourcesAdded);
     expect(event.changedSources, changedSources);
@@ -5383,7 +5382,7 @@
   List<SourcesChangedEvent> actualEvents = [];
 
   void assertEvent({bool wereSourcesAdded: false,
-      List<Source> changedSources: Source.EMPTY_ARRAY,
+      List<Source> changedSources: Source.EMPTY_LIST,
       bool wereSourcesRemovedOrDeleted: false}) {
     if (actualEvents.isEmpty) {
       fail('Expected event but found none');
@@ -5410,6 +5409,11 @@
  */
 class TestAnalysisContext implements InternalAnalysisContext {
   @override
+  AnalysisCache get analysisCache {
+    fail("Unexpected invocation of analysisCache");
+    return null;
+  }
+  @override
   AnalysisOptions get analysisOptions {
     fail("Unexpected invocation of getAnalysisOptions");
     return null;
@@ -5485,6 +5489,7 @@
     fail("Unexpected invocation of getPrioritySources");
     return null;
   }
+
   @override
   List<AnalysisTarget> get priorityTargets {
     fail("Unexpected invocation of visitCacheItems");
@@ -5502,7 +5507,6 @@
     fail("Unexpected invocation of getSourceFactory");
     return null;
   }
-
   @override
   void set sourceFactory(SourceFactory factory) {
     fail("Unexpected invocation of setSourceFactory");
@@ -5536,10 +5540,6 @@
     fail("Unexpected invocation of addListener");
   }
   @override
-  void addSourceInfo(Source source, SourceEntry info) {
-    fail("Unexpected invocation of addSourceInfo");
-  }
-  @override
   void applyAnalysisDelta(AnalysisDelta delta) {
     fail("Unexpected invocation of applyAnalysisDelta");
   }
@@ -5750,6 +5750,7 @@
   void recordLibraryElements(Map<Source, LibraryElement> elementMap) {
     fail("Unexpected invocation of recordLibraryElements");
   }
+
   @override
   void removeListener(AnalysisListener listener) {
     fail("Unexpected invocation of removeListener");
@@ -5793,15 +5794,6 @@
   }
 }
 
-class TestAnalysisContext_test_addSourceInfo extends TestAnalysisContext {
-  bool invoked = false;
-  TestAnalysisContext_test_addSourceInfo();
-  @override
-  void addSourceInfo(Source source, SourceEntry info) {
-    invoked = true;
-  }
-}
-
 class TestAnalysisContext_test_applyChanges extends TestAnalysisContext {
   bool invoked = false;
   TestAnalysisContext_test_applyChanges();
@@ -5994,7 +5986,7 @@
   @override
   List<Source> getHtmlFilesReferencing(Source source) {
     invoked = true;
-    return Source.EMPTY_ARRAY;
+    return Source.EMPTY_LIST;
   }
 }
 
@@ -6004,7 +5996,7 @@
   @override
   List<Source> get htmlSources {
     invoked = true;
-    return Source.EMPTY_ARRAY;
+    return Source.EMPTY_LIST;
   }
 }
 
@@ -6025,7 +6017,7 @@
   @override
   List<Source> get launchableClientLibrarySources {
     invoked = true;
-    return Source.EMPTY_ARRAY;
+    return Source.EMPTY_LIST;
   }
 }
 
@@ -6036,7 +6028,7 @@
   @override
   List<Source> get launchableServerLibrarySources {
     invoked = true;
-    return Source.EMPTY_ARRAY;
+    return Source.EMPTY_LIST;
   }
 }
 
@@ -6047,7 +6039,7 @@
   @override
   List<Source> getLibrariesContaining(Source source) {
     invoked = true;
-    return Source.EMPTY_ARRAY;
+    return Source.EMPTY_LIST;
   }
 }
 
@@ -6058,7 +6050,7 @@
   @override
   List<Source> getLibrariesDependingOn(Source librarySource) {
     invoked = true;
-    return Source.EMPTY_ARRAY;
+    return Source.EMPTY_LIST;
   }
 }
 
@@ -6089,7 +6081,7 @@
   @override
   List<Source> get librarySources {
     invoked = true;
-    return Source.EMPTY_ARRAY;
+    return Source.EMPTY_LIST;
   }
 }
 
diff --git a/pkg/analyzer/test/generated/incremental_resolver_test.dart b/pkg/analyzer/test/generated/incremental_resolver_test.dart
index 0d4c7ee..9d8ccce 100644
--- a/pkg/analyzer/test/generated/incremental_resolver_test.dart
+++ b/pkg/analyzer/test/generated/incremental_resolver_test.dart
@@ -2800,7 +2800,7 @@
 
   static AstNode _findNodeAt(
       CompilationUnit oldUnit, int offset, Predicate<AstNode> predicate) {
-    NodeLocator locator = new NodeLocator.con1(offset);
+    NodeLocator locator = new NodeLocator(offset);
     AstNode node = locator.searchWithin(oldUnit);
     return node.getAncestor(predicate);
   }
diff --git a/pkg/analyzer/test/generated/parser_test.dart b/pkg/analyzer/test/generated/parser_test.dart
index 023c9fa..89de72c 100644
--- a/pkg/analyzer/test/generated/parser_test.dart
+++ b/pkg/analyzer/test/generated/parser_test.dart
@@ -953,9 +953,8 @@
 
   void test_expectedExecutable_topLevel_eof() {
     parse2("parseCompilationUnitMember", <Object>[emptyCommentAndMetadata()],
-        "x", [
-      new AnalysisError.con2(null, 0, 1, ParserErrorCode.EXPECTED_EXECUTABLE)
-    ]);
+        "x",
+        [new AnalysisError(null, 0, 1, ParserErrorCode.EXPECTED_EXECUTABLE)]);
   }
 
   void test_expectedInterpolationIdentifier() {
@@ -967,9 +966,8 @@
     // The scanner inserts an empty string token between the two $'s; we need to
     // make sure that the MISSING_IDENTIFIER error that is generated has a
     // nonzero width so that it will show up in the editor UI.
-    parse2("parseStringLiteral", <Object>[], "'\$\$foo'", [
-      new AnalysisError.con2(null, 2, 1, ParserErrorCode.MISSING_IDENTIFIER)
-    ]);
+    parse2("parseStringLiteral", <Object>[], "'\$\$foo'",
+        [new AnalysisError(null, 2, 1, ParserErrorCode.MISSING_IDENTIFIER)]);
   }
 
   void test_expectedStringLiteral() {
diff --git a/pkg/analyzer/test/generated/resolver_test.dart b/pkg/analyzer/test/generated/resolver_test.dart
index 7382916..8a43d18 100644
--- a/pkg/analyzer/test/generated/resolver_test.dart
+++ b/pkg/analyzer/test/generated/resolver_test.dart
@@ -118,7 +118,7 @@
         new CompilationUnitElementImpl("core.dart");
     Source coreSource = sourceFactory.forUri(DartSdk.DART_CORE);
     coreContext.setContents(coreSource, "");
-    coreUnit.source = coreSource;
+    coreUnit.librarySource = coreUnit.source = coreSource;
     ClassElementImpl proxyClassElement = ElementFactory.classElement2("_Proxy");
     coreUnit.types = <ClassElement>[
       provider.boolType.element,
@@ -171,7 +171,7 @@
         new CompilationUnitElementImpl("async.dart");
     Source asyncSource = sourceFactory.forUri(DartSdk.DART_ASYNC);
     coreContext.setContents(asyncSource, "");
-    asyncUnit.source = asyncSource;
+    asyncUnit.librarySource = asyncUnit.source = asyncSource;
     // Future
     ClassElementImpl futureElement =
         ElementFactory.classElement2("Future", ["T"]);
@@ -197,7 +197,7 @@
     aliasElement.parameters = parameters;
     aliasElement.returnType = provider.dynamicType;
     aliasElement.enclosingElement = asyncUnit;
-    FunctionTypeImpl aliasType = new FunctionTypeImpl.con2(aliasElement);
+    FunctionTypeImpl aliasType = new FunctionTypeImpl.forTypedef(aliasElement);
     aliasElement.shareTypeParameters(futureElement.typeParameters);
     aliasType.typeArguments = futureElement.type.typeArguments;
     MethodElement thenMethod = ElementFactory.methodElementWithParameters(
@@ -229,7 +229,7 @@
         new CompilationUnitElementImpl("html_dartium.dart");
     Source htmlSource = sourceFactory.forUri(DartSdk.DART_HTML);
     coreContext.setContents(htmlSource, "");
-    htmlUnit.source = htmlSource;
+    htmlUnit.librarySource = htmlUnit.source = htmlSource;
     ClassElementImpl elementElement = ElementFactory.classElement2("Element");
     InterfaceType elementType = elementElement.type;
     ClassElementImpl canvasElement =
@@ -290,7 +290,7 @@
         new CompilationUnitElementImpl("math.dart");
     Source mathSource = sourceFactory.forUri(_DART_MATH);
     coreContext.setContents(mathSource, "");
-    mathUnit.source = mathSource;
+    mathUnit.librarySource = mathUnit.source = mathSource;
     FunctionElement cosElement = ElementFactory.functionElement3("cos",
         provider.doubleType.element, <ClassElement>[provider.numType.element],
         ClassElement.EMPTY_LIST);
@@ -417,13 +417,13 @@
   AnalysisContextHelper() {
     context = AnalysisContextFactory.contextWithCore();
     AnalysisOptionsImpl options =
-        new AnalysisOptionsImpl.con1(context.analysisOptions);
+        new AnalysisOptionsImpl.from(context.analysisOptions);
     options.cacheSize = 256;
     context.analysisOptions = options;
   }
 
   Source addSource(String path, String code) {
-    Source source = new FileBasedSource.con1(FileUtilities2.createFile(path));
+    Source source = new FileBasedSource(FileUtilities2.createFile(path));
     if (path.endsWith(".dart") || path.endsWith(".html")) {
       ChangeSet changeSet = new ChangeSet();
       changeSet.addedSource(source);
@@ -1893,10 +1893,11 @@
         [new DartUriResolver(DirectoryBasedDartSdk.defaultSdk)]);
     context.sourceFactory = sourceFactory;
     FileBasedSource source =
-        new FileBasedSource.con1(FileUtilities2.createFile("/test.dart"));
+        new FileBasedSource(FileUtilities2.createFile("/test.dart"));
     CompilationUnitElementImpl definingCompilationUnit =
         new CompilationUnitElementImpl("test.dart");
-    definingCompilationUnit.source = source;
+    definingCompilationUnit.librarySource =
+        definingCompilationUnit.source = source;
     _definingLibrary = ElementFactory.library(context, "test");
     _definingLibrary.definingCompilationUnit = definingCompilationUnit;
     Library library = new Library(context, _listener, source);
@@ -5710,10 +5711,11 @@
   InheritanceManager _createInheritanceManager() {
     AnalysisContextImpl context = AnalysisContextFactory.contextWithCore();
     FileBasedSource source =
-        new FileBasedSource.con1(FileUtilities2.createFile("/test.dart"));
+        new FileBasedSource(FileUtilities2.createFile("/test.dart"));
     CompilationUnitElementImpl definingCompilationUnit =
         new CompilationUnitElementImpl("test.dart");
-    definingCompilationUnit.source = source;
+    definingCompilationUnit.librarySource =
+        definingCompilationUnit.source = source;
     _definingLibrary = ElementFactory.library(context, "test");
     _definingLibrary.definingCompilationUnit = definingCompilationUnit;
     return new InheritanceManager(_definingLibrary);
@@ -5735,8 +5737,7 @@
    * @return the source object representing the added file
    */
   Source addSource(String filePath, String contents) {
-    Source source =
-        new FileBasedSource.con1(FileUtilities2.createFile(filePath));
+    Source source = new FileBasedSource(FileUtilities2.createFile(filePath));
     _context.setContents(source, contents);
     return source;
   }
@@ -6330,7 +6331,7 @@
   }
 
   Library _createLibrary(String definingCompilationUnitPath) => new Library(
-      _analysisContext, _errorListener, new FileBasedSource.con1(
+      _analysisContext, _errorListener, new FileBasedSource(
           FileUtilities2.createFile(definingCompilationUnitPath)));
 }
 
@@ -6353,7 +6354,7 @@
     map.put(m1.name, m1);
     map.put(m2.name, m2);
     map.put(m3.name, m3);
-    MemberMap copy = new MemberMap.con2(map);
+    MemberMap copy = new MemberMap.from(map);
     expect(copy.size, map.size);
     expect(copy.get(m1.name), m1);
     expect(copy.get(m2.name), m2);
@@ -7379,13 +7380,13 @@
 }
 
 /**
- * Instances of the class `ResolutionVerifier` verify that all of the nodes in an AST
- * structure that should have been resolved were resolved.
+ * An AST visitor used to verify that all of the nodes in an AST structure that
+ * should have been resolved were resolved.
  */
 class ResolutionVerifier extends RecursiveAstVisitor<Object> {
   /**
-   * A set containing nodes that are known to not be resolvable and should therefore not cause the
-   * test to fail.
+   * A set containing nodes that are known to not be resolvable and should
+   * therefore not cause the test to fail.
    */
   final Set<AstNode> _knownExceptions;
 
@@ -7395,26 +7396,19 @@
   List<AstNode> _unresolvedNodes = new List<AstNode>();
 
   /**
-   * A list containing all of the AST nodes that were resolved to an element of the wrong type.
+   * A list containing all of the AST nodes that were resolved to an element of
+   * the wrong type.
    */
   List<AstNode> _wrongTypedNodes = new List<AstNode>();
 
   /**
-   * Initialize a newly created verifier to verify that all of the nodes in the visited AST
-   * structures that are expected to have been resolved have an element associated with them.
+   * Initialize a newly created verifier to verify that all of the identifiers
+   * in the visited AST structures that are expected to have been resolved have
+   * an element associated with them. Nodes in the set of [_knownExceptions] are
+   * not expected to have been resolved, even if they normally would have been
+   * expected to have been resolved.
    */
-  ResolutionVerifier() : this.con1(null);
-
-  /**
-   * Initialize a newly created verifier to verify that all of the identifiers in the visited AST
-   * structures that are expected to have been resolved have an element associated with them. Nodes
-   * in the set of known exceptions are not expected to have been resolved, even if they normally
-   * would have been expected to have been resolved.
-   *
-   * @param knownExceptions a set containing nodes that are known to not be resolvable and should
-   *          therefore not cause the test to fail
-   **/
-  ResolutionVerifier.con1(this._knownExceptions);
+  ResolutionVerifier([this._knownExceptions]);
 
   /**
    * Assert that all of the visited identifiers were resolved.
@@ -7755,8 +7749,7 @@
    * @return the source object representing the cached file
    */
   Source cacheSource(String filePath, String contents) {
-    Source source =
-        new FileBasedSource.con1(FileUtilities2.createFile(filePath));
+    Source source = new FileBasedSource(FileUtilities2.createFile(filePath));
     analysisContext2.setContents(source, contents);
     return source;
   }
@@ -7779,6 +7772,9 @@
    */
   LibraryElementImpl createTestLibrary(
       AnalysisContext context, String libraryName, [List<String> typeNames]) {
+    String fileName = "$libraryName.dart";
+    FileBasedSource definingCompilationUnitSource =
+        _createNamedSource(fileName);
     List<CompilationUnitElement> sourcedCompilationUnits;
     if (typeNames == null) {
       sourcedCompilationUnits = CompilationUnitElement.EMPTY_LIST;
@@ -7793,14 +7789,15 @@
         CompilationUnitElementImpl compilationUnit =
             new CompilationUnitElementImpl(fileName);
         compilationUnit.source = _createNamedSource(fileName);
+        compilationUnit.librarySource = definingCompilationUnitSource;
         compilationUnit.types = <ClassElement>[type];
         sourcedCompilationUnits[i] = compilationUnit;
       }
     }
-    String fileName = "$libraryName.dart";
     CompilationUnitElementImpl compilationUnit =
         new CompilationUnitElementImpl(fileName);
-    compilationUnit.source = _createNamedSource(fileName);
+    compilationUnit.librarySource =
+        compilationUnit.source = definingCompilationUnitSource;
     LibraryElementImpl library = new LibraryElementImpl.forNode(
         context, AstFactory.libraryIdentifier2([libraryName]));
     library.definingCompilationUnit = compilationUnit;
@@ -7952,7 +7949,7 @@
    */
   FileBasedSource _createNamedSource(String fileName) {
     FileBasedSource source =
-        new FileBasedSource.con1(FileUtilities2.createFile(fileName));
+        new FileBasedSource(FileUtilities2.createFile(fileName));
     analysisContext2.setContents(source, "");
     return source;
   }
@@ -10488,7 +10485,7 @@
     ConstructorElementImpl constructor =
         ElementFactory.constructorElement2(classElement, constructorName);
     constructor.returnType = classElement.type;
-    FunctionTypeImpl constructorType = new FunctionTypeImpl.con1(constructor);
+    FunctionTypeImpl constructorType = new FunctionTypeImpl(constructor);
     constructor.type = constructorType;
     classElement.constructors = <ConstructorElement>[constructor];
     InstanceCreationExpression node = AstFactory.instanceCreationExpression2(
@@ -10507,7 +10504,7 @@
         ElementFactory.constructorElement2(elementC, null);
     elementC.constructors = <ConstructorElement>[constructor];
     constructor.returnType = elementC.type;
-    FunctionTypeImpl constructorType = new FunctionTypeImpl.con1(constructor);
+    FunctionTypeImpl constructorType = new FunctionTypeImpl(constructor);
     constructor.type = constructorType;
     TypeName typeName =
         AstFactory.typeName(elementC, [AstFactory.typeName(elementI)]);
@@ -10528,7 +10525,7 @@
     ConstructorElementImpl constructor =
         ElementFactory.constructorElement2(classElement, null);
     constructor.returnType = classElement.type;
-    FunctionTypeImpl constructorType = new FunctionTypeImpl.con1(constructor);
+    FunctionTypeImpl constructorType = new FunctionTypeImpl(constructor);
     constructor.type = constructorType;
     classElement.constructors = <ConstructorElement>[constructor];
     InstanceCreationExpression node = AstFactory.instanceCreationExpression2(
@@ -10992,10 +10989,11 @@
         [new DartUriResolver(DirectoryBasedDartSdk.defaultSdk)]);
     context.sourceFactory = sourceFactory;
     FileBasedSource source =
-        new FileBasedSource.con1(FileUtilities2.createFile("/lib.dart"));
+        new FileBasedSource(FileUtilities2.createFile("/lib.dart"));
     CompilationUnitElementImpl definingCompilationUnit =
         new CompilationUnitElementImpl("lib.dart");
-    definingCompilationUnit.source = source;
+    definingCompilationUnit.librarySource =
+        definingCompilationUnit.source = source;
     LibraryElementImpl definingLibrary =
         new LibraryElementImpl.forNode(context, null);
     definingLibrary.definingCompilationUnit = definingCompilationUnit;
@@ -11050,7 +11048,7 @@
     FunctionExpression node = AstFactory.functionExpression2(parameters, body);
     FunctionElementImpl element = new FunctionElementImpl.forNode(null);
     element.parameters = parameterElements;
-    element.type = new FunctionTypeImpl.con1(element);
+    element.type = new FunctionTypeImpl(element);
     node.element = element;
     return node;
   }
@@ -11496,9 +11494,10 @@
     super.setUp();
     AnalysisContextImpl context = AnalysisContextFactory.contextWithCore();
     FileBasedSource source =
-        new FileBasedSource.con1(FileUtilities2.createFile("/test.dart"));
+        new FileBasedSource(FileUtilities2.createFile("/test.dart"));
     _definingCompilationUnit = new CompilationUnitElementImpl("test.dart");
-    _definingCompilationUnit.source = source;
+    _definingCompilationUnit.librarySource =
+        _definingCompilationUnit.source = source;
     LibraryElementImpl definingLibrary =
         ElementFactory.library(context, "test");
     definingLibrary.definingCompilationUnit = _definingCompilationUnit;
@@ -13219,7 +13218,7 @@
     ClassElementImpl element =
         new ClassElementImpl.forNode(AstFactory.identifier3(typeName));
     element.supertype = superclassType;
-    InterfaceTypeImpl type = new InterfaceTypeImpl.con1(element);
+    InterfaceTypeImpl type = new InterfaceTypeImpl(element);
     element.type = type;
     if (parameterNames != null) {
       int count = parameterNames.length;
@@ -13314,7 +13313,7 @@
     AnalysisContextImpl context = new AnalysisContextImpl();
     context.sourceFactory = factory;
     Source librarySource =
-        new FileBasedSource.con1(FileUtilities2.createFile("/lib.dart"));
+        new FileBasedSource(FileUtilities2.createFile("/lib.dart"));
     _library = new Library(context, _listener, librarySource);
     LibraryElementImpl element = new LibraryElementImpl.forNode(
         context, AstFactory.libraryIdentifier2(["lib"]));
diff --git a/pkg/analyzer/test/generated/scanner_test.dart b/pkg/analyzer/test/generated/scanner_test.dart
index 3531847..24ca20e 100644
--- a/pkg/analyzer/test/generated/scanner_test.dart
+++ b/pkg/analyzer/test/generated/scanner_test.dart
@@ -1074,7 +1074,7 @@
     GatheringErrorListener listener = new GatheringErrorListener();
     _scanWithListener(source, listener);
     listener.assertErrors([
-      new AnalysisError.con2(null, expectedOffset, 1, expectedError,
+      new AnalysisError(null, expectedOffset, 1, expectedError,
           [source.codeUnitAt(expectedOffset)])
     ]);
   }
@@ -1093,7 +1093,7 @@
     GatheringErrorListener listener = new GatheringErrorListener();
     Token token = _scanWithListener(source, listener);
     listener.assertErrors([
-      new AnalysisError.con2(null, expectedOffset, 1, expectedError,
+      new AnalysisError(null, expectedOffset, 1, expectedError,
           [source.codeUnitAt(expectedOffset)])
     ]);
     _checkTokens(token, expectedTokens);
diff --git a/pkg/analyzer/test/generated/test_support.dart b/pkg/analyzer/test/generated/test_support.dart
index e5a05d0..7d83198 100644
--- a/pkg/analyzer/test/generated/test_support.dart
+++ b/pkg/analyzer/test/generated/test_support.dart
@@ -124,7 +124,7 @@
     if (offset == -1) {
       throw new IllegalArgumentException("Not found '$prefix'.");
     }
-    AstNode node = new NodeLocator.con1(offset).searchWithin(root);
+    AstNode node = new NodeLocator(offset).searchWithin(root);
     return node.getAncestor(predicate);
   }
 }
@@ -594,6 +594,8 @@
   UriKind get uriKind {
     throw new UnsupportedOperationException();
   }
+  @override
+  String toString() => '$_name';
   bool operator ==(Object other) {
     if (other is TestSource) {
       return other._name == _name;
diff --git a/pkg/analyzer/test/generated/utilities_test.dart b/pkg/analyzer/test/generated/utilities_test.dart
index a95a6d7..24d1d96 100644
--- a/pkg/analyzer/test/generated/utilities_test.dart
+++ b/pkg/analyzer/test/generated/utilities_test.dart
@@ -611,7 +611,7 @@
   }
 
   void test_visitForEachStatement_variable() {
-    _assertClone(new ForEachStatement.con2(null,
+    _assertClone(new ForEachStatement.withReference(null,
         TokenFactory.tokenFromKeyword(Keyword.FOR),
         TokenFactory.tokenFromType(TokenType.OPEN_PAREN),
         AstFactory.identifier3("a"), TokenFactory.tokenFromKeyword(Keyword.IN),
@@ -620,7 +620,7 @@
   }
 
   void test_visitForEachStatement_variable_await() {
-    _assertClone(new ForEachStatement.con2(
+    _assertClone(new ForEachStatement.withReference(
         TokenFactory.tokenFromString("await"),
         TokenFactory.tokenFromKeyword(Keyword.FOR),
         TokenFactory.tokenFromType(TokenType.OPEN_PAREN),
diff --git a/pkg/analyzer/test/src/context/abstract_context.dart b/pkg/analyzer/test/src/context/abstract_context.dart
index 45925cd..ed198ff 100644
--- a/pkg/analyzer/test/src/context/abstract_context.dart
+++ b/pkg/analyzer/test/src/context/abstract_context.dart
@@ -13,12 +13,11 @@
 import 'package:analyzer/src/generated/sdk.dart';
 import 'package:analyzer/src/generated/source.dart';
 import 'package:analyzer/src/plugin/engine_plugin.dart';
-import 'package:analyzer/src/task/driver.dart';
-import 'package:analyzer/src/task/manager.dart';
 import 'package:plugin/manager.dart';
 import 'package:unittest/unittest.dart';
 
 import 'mock_sdk.dart';
+import 'package:analyzer/src/task/driver.dart';
 
 class AbstractContextTest {
   MemoryResourceProvider resourceProvider = new MemoryResourceProvider();
@@ -26,11 +25,19 @@
   ExtensionManager extensionManager = new ExtensionManager();
 
   DartSdk sdk = new MockSdk();
+  SourceFactory sourceFactory;
   AnalysisContextImpl context;
-
-  TaskManager taskManager = new TaskManager();
   AnalysisDriver analysisDriver;
 
+  Source addSource(String path, String contents) {
+    Source source = newSource(path, contents);
+    ChangeSet changeSet = new ChangeSet();
+    changeSet.addedSource(source);
+    context.applyChanges(changeSet);
+    context.setContents(source, contents);
+    return source;
+  }
+
   /**
    * Assert that the given [elements] has the same number of items as the number
    * of specified [names], and that for each specified name, a corresponding
@@ -82,17 +89,18 @@
     // configure TaskManager
     {
       EnginePlugin plugin = AnalysisEngine.instance.enginePlugin;
-      extensionManager.processPlugins([plugin]);
-      taskManager.addTaskDescriptors(plugin.taskDescriptors);
+      if (plugin.taskExtensionPoint == null) {
+        extensionManager.processPlugins([plugin]);
+      }
     }
     // prepare AnalysisContext
-    context = createAnalysisContext();
-    context.sourceFactory = new SourceFactory(<UriResolver>[
+    sourceFactory = new SourceFactory(<UriResolver>[
       new DartUriResolver(sdk),
       new ResourceUriResolver(resourceProvider)
     ]);
-    // prepare AnalysisDriver
-    analysisDriver = new AnalysisDriver(taskManager, context);
+    context = createAnalysisContext();
+    context.sourceFactory = sourceFactory;
+    analysisDriver = context.driver;
   }
 
   void tearDown() {}
diff --git a/pkg/analyzer/test/src/context/cache_test.dart b/pkg/analyzer/test/src/context/cache_test.dart
index b417269..57eca5c 100644
--- a/pkg/analyzer/test/src/context/cache_test.dart
+++ b/pkg/analyzer/test/src/context/cache_test.dart
@@ -5,17 +5,21 @@
 library test.src.task.driver_test;
 
 import 'package:analyzer/src/context/cache.dart';
-import 'package:analyzer/src/generated/ast.dart';
 import 'package:analyzer/src/generated/engine.dart'
-    show AnalysisContext, CacheState, RetentionPriority;
+    show
+        AnalysisContext,
+        CacheState,
+        InternalAnalysisContext,
+        RetentionPriority;
 import 'package:analyzer/src/generated/java_engine.dart';
 import 'package:analyzer/src/generated/sdk_io.dart';
 import 'package:analyzer/src/generated/source.dart';
 import 'package:analyzer/src/generated/utilities_collection.dart';
+import 'package:analyzer/src/task/model.dart';
 import 'package:analyzer/task/model.dart';
+import 'package:typed_mock/typed_mock.dart';
 import 'package:unittest/unittest.dart';
 
-import '../../generated/engine_test.dart';
 import '../../generated/test_support.dart';
 import '../../reflective_tests.dart';
 
@@ -23,6 +27,7 @@
   groupSep = ' | ';
   runReflectiveTests(AnalysisCacheTest);
   runReflectiveTests(CacheEntryTest);
+  runReflectiveTests(CacheFlushManagerTest);
   runReflectiveTests(SdkCachePartitionTest);
   runReflectiveTests(UniversalCachePartitionTest);
   runReflectiveTests(ResultDataTest);
@@ -30,57 +35,81 @@
 
 AnalysisCache createCache({AnalysisContext context,
     RetentionPriority policy: RetentionPriority.LOW}) {
-  CachePartition partition = new UniversalCachePartition(
-      context, 8, new TestCacheRetentionPolicy(policy));
+  CachePartition partition = new UniversalCachePartition(context);
   return new AnalysisCache(<CachePartition>[partition]);
 }
 
+class AbstractCacheTest {
+  InternalAnalysisContext context;
+  AnalysisCache cache;
+
+  void setUp() {
+    context = new _InternalAnalysisContextMock();
+    when(context.priorityTargets).thenReturn([]);
+    cache = createCache(context: context);
+    when(context.analysisCache).thenReturn(cache);
+  }
+}
+
 @reflectiveTest
-class AnalysisCacheTest extends EngineTestCase {
-  void test_astSize_empty() {
-    AnalysisCache cache = createCache();
-    expect(cache.astSize, 0);
-  }
-
-  void test_astSize_nonEmpty() {
-    ResultDescriptor result = new ResultDescriptor('test', null);
-    AstNode node = new NullLiteral(null);
-    AnalysisCache cache = createCache();
-    AnalysisTarget target1 = new TestSource('/test1.dart');
-    CacheEntry entry1 = new CacheEntry();
-    entry1.setValue(result, node, TargetedResult.EMPTY_LIST, null);
-    AnalysisTarget target2 = new TestSource('/test2.dart');
-    CacheEntry entry2 = new CacheEntry();
-    entry2.setValue(result, node, TargetedResult.EMPTY_LIST, null);
-    cache.put(target1, entry1);
-    cache.accessedAst(target1);
-    cache.put(target2, entry2);
-    cache.accessedAst(target2);
-    expect(cache.astSize, 2);
-  }
-
+class AnalysisCacheTest extends AbstractCacheTest {
   void test_creation() {
-    expect(createCache(), isNotNull);
+    expect(cache, isNotNull);
   }
 
   void test_get() {
-    AnalysisCache cache = createCache();
     AnalysisTarget target = new TestSource();
     expect(cache.get(target), isNull);
   }
 
   void test_getContextFor() {
-    AnalysisContext context = new TestAnalysisContext();
-    AnalysisCache cache = createCache(context: context);
     AnalysisTarget target = new TestSource();
     expect(cache.getContextFor(target), context);
   }
 
-  void test_iterator() {
-    AnalysisCache cache = createCache();
+  void test_getState_hasEntry_flushed() {
+    ResultDescriptor result = new ResultDescriptor('result', -1);
     AnalysisTarget target = new TestSource();
-    CacheEntry entry = new CacheEntry();
-    cache.put(target, entry);
+    CacheEntry entry = new CacheEntry(target);
+    cache.put(entry);
+    entry.setState(result, CacheState.FLUSHED);
+    expect(cache.getState(target, result), CacheState.FLUSHED);
+  }
+
+  void test_getState_hasEntry_valid() {
+    ResultDescriptor result = new ResultDescriptor('result', -1);
+    AnalysisTarget target = new TestSource();
+    CacheEntry entry = new CacheEntry(target);
+    cache.put(entry);
+    entry.setValue(result, '', []);
+    expect(cache.getState(target, result), CacheState.VALID);
+  }
+
+  void test_getState_noEntry() {
+    ResultDescriptor result = new ResultDescriptor('result', -1);
+    AnalysisTarget target = new TestSource();
+    expect(cache.getState(target, result), CacheState.INVALID);
+  }
+
+  void test_getValue_hasEntry_valid() {
+    ResultDescriptor result = new ResultDescriptor('result', -1);
+    AnalysisTarget target = new TestSource();
+    CacheEntry entry = new CacheEntry(target);
+    cache.put(entry);
+    entry.setValue(result, 111, []);
+    expect(cache.getValue(target, result), 111);
+  }
+
+  void test_getValue_noEntry() {
+    ResultDescriptor result = new ResultDescriptor('result', -1);
+    AnalysisTarget target = new TestSource();
+    expect(cache.getValue(target, result), -1);
+  }
+
+  void test_iterator() {
+    AnalysisTarget target = new TestSource();
+    CacheEntry entry = new CacheEntry(target);
+    cache.put(entry);
     MapIterator<AnalysisTarget, CacheEntry> iterator = cache.iterator();
     expect(iterator.moveNext(), isTrue);
     expect(iterator.key, same(target));
@@ -89,76 +118,69 @@
   }
 
   void test_put() {
-    AnalysisCache cache = createCache();
     AnalysisTarget target = new TestSource();
-    CacheEntry entry = new CacheEntry();
+    CacheEntry entry = new CacheEntry(target);
     expect(cache.get(target), isNull);
-    cache.put(target, entry);
+    cache.put(entry);
     expect(cache.get(target), entry);
   }
 
   void test_remove() {
-    AnalysisCache cache = createCache();
-    AnalysisTarget target = new TestSource();
-    cache.remove(target);
-  }
-
-  void test_setMaxCacheSize() {
-    CachePartition partition = new UniversalCachePartition(
-        null, 8, new TestCacheRetentionPolicy(RetentionPriority.MEDIUM));
-    AnalysisCache cache = new AnalysisCache(<CachePartition>[partition]);
-    ResultDescriptor result = new ResultDescriptor('test', null);
-    AstNode node = new NullLiteral(null);
-    int size = 6;
-    for (int i = 0; i < size; i++) {
-      AnalysisTarget target = new TestSource("/test$i.dart");
-      CacheEntry entry = new CacheEntry();
-      entry.setValue(result, node, TargetedResult.EMPTY_LIST, null);
-      cache.put(target, entry);
-      cache.accessedAst(target);
-    }
-
-    void _assertNonFlushedCount(int expectedCount, AnalysisCache cache) {
-      int nonFlushedCount = 0;
-      MapIterator<AnalysisTarget, CacheEntry> iterator = cache.iterator();
-      while (iterator.moveNext()) {
-        if (iterator.value.getState(result) != CacheState.FLUSHED) {
-          nonFlushedCount++;
-        }
-      }
-      expect(nonFlushedCount, expectedCount);
-    }
-
-    _assertNonFlushedCount(size, cache);
-    int newSize = size - 2;
-    partition.maxCacheSize = newSize;
-    _assertNonFlushedCount(newSize, cache);
+    AnalysisTarget target1 = new TestSource('/a.dart');
+    AnalysisTarget target2 = new TestSource('/b.dart');
+    AnalysisTarget target3 = new TestSource('/c.dart');
+    CacheEntry entry1 = new CacheEntry(target1);
+    CacheEntry entry2 = new CacheEntry(target2);
+    CacheEntry entry3 = new CacheEntry(target3);
+    cache.put(entry1);
+    cache.put(entry2);
+    cache.put(entry3);
+    ResultDescriptor result1 = new ResultDescriptor('result1', -1);
+    ResultDescriptor result2 = new ResultDescriptor('result2', -2);
+    ResultDescriptor result3 = new ResultDescriptor('result3', -3);
+    // set results, all of them are VALID
+    entry1.setValue(result1, 111, TargetedResult.EMPTY_LIST);
+    entry2.setValue(result2, 222, [new TargetedResult(target1, result1)]);
+    entry3.setValue(result3, 333, []);
+    expect(entry1.getState(result1), CacheState.VALID);
+    expect(entry2.getState(result2), CacheState.VALID);
+    expect(entry3.getState(result3), CacheState.VALID);
+    expect(entry1.getValue(result1), 111);
+    expect(entry2.getValue(result2), 222);
+    expect(entry3.getValue(result3), 333);
+    // remove entry1, invalidate result2 and remove empty entry2
+    cache.remove(target1);
+    expect(cache.get(target1), isNull);
+    expect(cache.get(target2), isNull);
+    expect(cache.get(target3), entry3);
+    expect(entry3.getState(result3), CacheState.VALID);
   }
 
   void test_size() {
-    AnalysisCache cache = createCache();
     int size = 4;
     for (int i = 0; i < size; i++) {
       AnalysisTarget target = new TestSource("/test$i.dart");
-      cache.put(target, new CacheEntry());
+      cache.put(new CacheEntry(target));
     }
     expect(cache.size(), size);
   }
 }
 
 @reflectiveTest
-class CacheEntryTest extends EngineTestCase {
+class CacheEntryTest extends AbstractCacheTest {
   test_explicitlyAdded() {
-    CacheEntry entry = new CacheEntry();
+    AnalysisTarget target = new TestSource();
+    CacheEntry entry = new CacheEntry(target);
     expect(entry.explicitlyAdded, false);
     entry.explicitlyAdded = true;
     expect(entry.explicitlyAdded, true);
   }
 
   test_fixExceptionState_error_exception() {
+    AnalysisTarget target = new TestSource();
     ResultDescriptor result = new ResultDescriptor('test', null);
     CaughtException exception = new CaughtException(null, null);
-    CacheEntry entry = new CacheEntry();
+    CacheEntry entry = new CacheEntry(target);
     entry.setErrorState(exception, <ResultDescriptor>[result]);
     entry.fixExceptionState();
     expect(entry.getState(result), CacheState.ERROR);
@@ -166,100 +188,109 @@
   }
 
   test_fixExceptionState_noError_exception() {
+    AnalysisTarget target = new TestSource();
     ResultDescriptor result = new ResultDescriptor('test', null);
-    CacheEntry entry = new CacheEntry();
+    CacheEntry entry = new CacheEntry(target);
+    cache.put(entry);
     // set one result to ERROR
     CaughtException exception = new CaughtException(null, null);
     entry.setErrorState(exception, <ResultDescriptor>[result]);
     // set the same result to VALID
-    entry.setValue(result, 1, TargetedResult.EMPTY_LIST, null);
+    entry.setValue(result, 1, TargetedResult.EMPTY_LIST);
     // fix the exception state
     entry.fixExceptionState();
     expect(entry.exception, isNull);
   }
 
   test_fixExceptionState_noError_noException() {
+    AnalysisTarget target = new TestSource();
     ResultDescriptor result = new ResultDescriptor('test', null);
-    CacheEntry entry = new CacheEntry();
+    CacheEntry entry = new CacheEntry(target);
     entry.fixExceptionState();
     expect(entry.getState(result), CacheState.INVALID);
     expect(entry.exception, isNull);
   }
 
-  test_flushAstStructures() {
-    ResultDescriptor result = new ResultDescriptor('test', null);
-    CacheEntry entry = new CacheEntry();
-    entry.setValue(
-        result, new NullLiteral(null), TargetedResult.EMPTY_LIST, null);
-    expect(entry.hasAstStructure, true);
-    entry.flushAstStructures();
-    expect(entry.hasAstStructure, false);
-  }
-
   test_getState() {
+    AnalysisTarget target = new TestSource();
     ResultDescriptor result = new ResultDescriptor('test', null);
-    CacheEntry entry = new CacheEntry();
+    CacheEntry entry = new CacheEntry(target);
     expect(entry.getState(result), CacheState.INVALID);
   }
 
-  test_getValue() {
+  test_getValue_default() {
+    AnalysisTarget target = new TestSource();
     String defaultValue = 'value';
     ResultDescriptor result = new ResultDescriptor('test', defaultValue);
-    CacheEntry entry = new CacheEntry();
+    CacheEntry entry = new CacheEntry(target);
     expect(entry.getValue(result), defaultValue);
   }
 
-  test_getMemento_noResult() {
-    String defaultValue = 'value';
-    ResultDescriptor result = new ResultDescriptor('test', defaultValue);
-    CacheEntry entry = new CacheEntry();
-    expect(entry.getMemento(result), null);
-  }
-
-  test_hasAstStructure_false() {
-    CacheEntry entry = new CacheEntry();
-    expect(entry.hasAstStructure, false);
-  }
-
-  test_hasAstStructure_true() {
-    ResultDescriptor result = new ResultDescriptor('test', null);
-    CacheEntry entry = new CacheEntry();
-    entry.setValue(
-        result, new NullLiteral(null), TargetedResult.EMPTY_LIST, null);
-    expect(entry.hasAstStructure, true);
+  test_getValue_flushResults() {
+    ResultCachingPolicy cachingPolicy = new SimpleResultCachingPolicy(2, 2);
+    ResultDescriptor descriptor1 =
+        new ResultDescriptor('result1', null, cachingPolicy: cachingPolicy);
+    ResultDescriptor descriptor2 =
+        new ResultDescriptor('result2', null, cachingPolicy: cachingPolicy);
+    ResultDescriptor descriptor3 =
+        new ResultDescriptor('result3', null, cachingPolicy: cachingPolicy);
+    AnalysisTarget target = new TestSource();
+    CacheEntry entry = new CacheEntry(target);
+    cache.put(entry);
+    {
+      entry.setValue(descriptor1, 1, TargetedResult.EMPTY_LIST);
+      expect(entry.getState(descriptor1), CacheState.VALID);
+    }
+    {
+      entry.setValue(descriptor2, 2, TargetedResult.EMPTY_LIST);
+      expect(entry.getState(descriptor1), CacheState.VALID);
+      expect(entry.getState(descriptor2), CacheState.VALID);
+    }
+    // get descriptor1, so that descriptor2 will be flushed
+    entry.getValue(descriptor1);
+    {
+      entry.setValue(descriptor3, 3, TargetedResult.EMPTY_LIST);
+      expect(entry.getState(descriptor1), CacheState.VALID);
+      expect(entry.getState(descriptor2), CacheState.FLUSHED);
+      expect(entry.getState(descriptor3), CacheState.VALID);
+    }
   }
 
   test_hasErrorState_false() {
-    CacheEntry entry = new CacheEntry();
+    AnalysisTarget target = new TestSource();
+    CacheEntry entry = new CacheEntry(target);
     expect(entry.hasErrorState(), false);
   }
 
   test_hasErrorState_true() {
+    AnalysisTarget target = new TestSource();
     ResultDescriptor result = new ResultDescriptor('test', null);
     CaughtException exception = new CaughtException(null, null);
-    CacheEntry entry = new CacheEntry();
+    CacheEntry entry = new CacheEntry(target);
     entry.setErrorState(exception, <ResultDescriptor>[result]);
     expect(entry.hasErrorState(), true);
   }
 
   test_invalidateAllInformation() {
+    AnalysisTarget target = new TestSource();
     ResultDescriptor result = new ResultDescriptor('test', null);
-    CacheEntry entry = new CacheEntry();
-    entry.setValue(result, 'value', TargetedResult.EMPTY_LIST, null);
+    CacheEntry entry = new CacheEntry(target);
+    entry.setValue(result, 'value', TargetedResult.EMPTY_LIST);
     entry.invalidateAllInformation();
     expect(entry.getState(result), CacheState.INVALID);
     expect(entry.getValue(result), isNull);
   }
 
   test_setErrorState() {
+    AnalysisTarget target = new TestSource();
     ResultDescriptor result1 = new ResultDescriptor('res1', 1);
     ResultDescriptor result2 = new ResultDescriptor('res2', 2);
     ResultDescriptor result3 = new ResultDescriptor('res3', 3);
     // prepare some good state
-    CacheEntry entry = new CacheEntry();
-    entry.setValue(result1, 10, TargetedResult.EMPTY_LIST, null);
-    entry.setValue(result2, 20, TargetedResult.EMPTY_LIST, null);
-    entry.setValue(result3, 30, TargetedResult.EMPTY_LIST, null);
+    CacheEntry entry = new CacheEntry(target);
+    entry.setValue(result1, 10, TargetedResult.EMPTY_LIST);
+    entry.setValue(result2, 20, TargetedResult.EMPTY_LIST);
+    entry.setValue(result3, 30, TargetedResult.EMPTY_LIST);
     // set error state
     CaughtException exception = new CaughtException(null, null);
     entry.setErrorState(exception, <ResultDescriptor>[result1, result2]);
@@ -274,69 +305,77 @@
   }
 
   test_setErrorState_invalidateDependent() {
-    AnalysisCache cache = createCache();
-    AnalysisTarget target = new TestSource();
-    CacheEntry entry = new CacheEntry();
-    cache.put(target, entry);
+    AnalysisTarget target1 = new TestSource('/a.dart');
+    AnalysisTarget target2 = new TestSource('/b.dart');
+    CacheEntry entry1 = new CacheEntry(target1);
+    CacheEntry entry2 = new CacheEntry(target2);
+    cache.put(entry1);
+    cache.put(entry2);
     ResultDescriptor result1 = new ResultDescriptor('result1', -1);
     ResultDescriptor result2 = new ResultDescriptor('result2', -2);
     ResultDescriptor result3 = new ResultDescriptor('result3', -3);
     ResultDescriptor result4 = new ResultDescriptor('result4', -4);
     // set results, all of them are VALID
-    entry.setValue(result1, 111, TargetedResult.EMPTY_LIST, null);
-    entry.setValue(result2, 222, [new TargetedResult(target, result1)], null);
-    entry.setValue(result3, 333, [new TargetedResult(target, result2)], null);
-    entry.setValue(result4, 444, [], null);
-    expect(entry.getState(result1), CacheState.VALID);
-    expect(entry.getState(result2), CacheState.VALID);
-    expect(entry.getState(result3), CacheState.VALID);
-    expect(entry.getState(result4), CacheState.VALID);
-    expect(entry.getValue(result1), 111);
-    expect(entry.getValue(result2), 222);
-    expect(entry.getValue(result3), 333);
-    expect(entry.getValue(result4), 444);
+    entry1.setValue(result1, 111, TargetedResult.EMPTY_LIST);
+    entry2.setValue(result2, 222, [new TargetedResult(target1, result1)]);
+    entry2.setValue(result3, 333, [new TargetedResult(target2, result2)]);
+    entry2.setValue(result4, 444, []);
+    expect(entry1.getState(result1), CacheState.VALID);
+    expect(entry2.getState(result2), CacheState.VALID);
+    expect(entry2.getState(result3), CacheState.VALID);
+    expect(entry2.getState(result4), CacheState.VALID);
+    expect(entry1.getValue(result1), 111);
+    expect(entry2.getValue(result2), 222);
+    expect(entry2.getValue(result3), 333);
+    expect(entry2.getValue(result4), 444);
     // set error state
     CaughtException exception = new CaughtException(null, null);
-    entry.setErrorState(exception, <ResultDescriptor>[result1]);
+    entry1.setErrorState(exception, <ResultDescriptor>[result1]);
     // result2 and result3 are invalidated, result4 is intact
-    expect(entry.getState(result1), CacheState.ERROR);
-    expect(entry.getState(result2), CacheState.ERROR);
-    expect(entry.getState(result3), CacheState.ERROR);
-    expect(entry.getState(result4), CacheState.VALID);
-    expect(entry.getValue(result1), -1);
-    expect(entry.getValue(result2), -2);
-    expect(entry.getValue(result3), -3);
-    expect(entry.getValue(result4), 444);
+    expect(entry1.getState(result1), CacheState.ERROR);
+    expect(entry2.getState(result2), CacheState.ERROR);
+    expect(entry2.getState(result3), CacheState.ERROR);
+    expect(entry2.getState(result4), CacheState.VALID);
+    expect(entry1.getValue(result1), -1);
+    expect(entry2.getValue(result2), -2);
+    expect(entry2.getValue(result3), -3);
+    expect(entry2.getValue(result4), 444);
+    expect(entry1.exception, exception);
+    expect(entry2.exception, exception);
   }
 
   test_setErrorState_noDescriptors() {
+    AnalysisTarget target = new TestSource();
     CaughtException exception = new CaughtException(null, null);
-    CacheEntry entry = new CacheEntry();
+    CacheEntry entry = new CacheEntry(target);
     expect(() {
       entry.setErrorState(exception, <ResultDescriptor>[]);
     }, throwsArgumentError);
   }
 
   test_setErrorState_noException() {
+    AnalysisTarget target = new TestSource();
     ResultDescriptor result = new ResultDescriptor('test', null);
-    CacheEntry entry = new CacheEntry();
+    CacheEntry entry = new CacheEntry(target);
     expect(() {
       entry.setErrorState(null, <ResultDescriptor>[result]);
     }, throwsArgumentError);
   }
 
   test_setErrorState_nullDescriptors() {
+    AnalysisTarget target = new TestSource();
     CaughtException exception = new CaughtException(null, null);
-    CacheEntry entry = new CacheEntry();
+    CacheEntry entry = new CacheEntry(target);
     expect(() {
       entry.setErrorState(exception, null);
     }, throwsArgumentError);
   }
 
   test_setState_error() {
+    AnalysisTarget target = new TestSource();
     ResultDescriptor result = new ResultDescriptor('test', null);
-    CacheEntry entry = new CacheEntry();
-    entry.setValue(result, 42, TargetedResult.EMPTY_LIST, null);
+    CacheEntry entry = new CacheEntry(target);
+    entry.setValue(result, 42, TargetedResult.EMPTY_LIST);
     // an invalid state change
     expect(() {
       entry.setState(result, CacheState.ERROR);
@@ -347,10 +386,11 @@
   }
 
   test_setState_flushed() {
+    AnalysisTarget target = new TestSource();
     ResultDescriptor result = new ResultDescriptor('test', 1);
-    CacheEntry entry = new CacheEntry();
+    CacheEntry entry = new CacheEntry(target);
     // set VALID
-    entry.setValue(result, 10, TargetedResult.EMPTY_LIST, null);
+    entry.setValue(result, 10, TargetedResult.EMPTY_LIST);
     expect(entry.getState(result), CacheState.VALID);
     expect(entry.getValue(result), 10);
     // set FLUSHED
@@ -360,10 +400,11 @@
   }
 
   test_setState_inProcess() {
+    AnalysisTarget target = new TestSource();
     ResultDescriptor result = new ResultDescriptor('test', 1);
-    CacheEntry entry = new CacheEntry();
+    CacheEntry entry = new CacheEntry(target);
     // set VALID
-    entry.setValue(result, 10, TargetedResult.EMPTY_LIST, null);
+    entry.setValue(result, 10, TargetedResult.EMPTY_LIST);
     expect(entry.getState(result), CacheState.VALID);
     expect(entry.getValue(result), 10);
     // set IN_PROCESS
@@ -373,34 +414,33 @@
   }
 
   test_setState_invalid() {
+    AnalysisTarget target = new TestSource();
     ResultDescriptor result = new ResultDescriptor('test', 1);
-    CacheEntry entry = new CacheEntry();
+    CacheEntry entry = new CacheEntry(target);
+    cache.put(entry);
     // set VALID
-    String memento = 'main() {}';
-    entry.setValue(result, 10, TargetedResult.EMPTY_LIST, memento);
+    entry.setValue(result, 10, TargetedResult.EMPTY_LIST);
     expect(entry.getState(result), CacheState.VALID);
     expect(entry.getValue(result), 10);
     // set INVALID
     entry.setState(result, CacheState.INVALID);
     expect(entry.getState(result), CacheState.INVALID);
     expect(entry.getValue(result), 1);
-    expect(entry.getMemento(result), memento);
   }
 
   test_setState_invalid_invalidateDependent() {
-    AnalysisCache cache = createCache();
     AnalysisTarget target = new TestSource();
-    CacheEntry entry = new CacheEntry();
-    cache.put(target, entry);
+    CacheEntry entry = new CacheEntry(target);
+    cache.put(entry);
     ResultDescriptor result1 = new ResultDescriptor('result1', -1);
     ResultDescriptor result2 = new ResultDescriptor('result2', -2);
     ResultDescriptor result3 = new ResultDescriptor('result3', -3);
     ResultDescriptor result4 = new ResultDescriptor('result4', -4);
     // set results, all of them are VALID
-    entry.setValue(result1, 111, TargetedResult.EMPTY_LIST, null);
-    entry.setValue(result2, 222, [new TargetedResult(target, result1)], null);
-    entry.setValue(result3, 333, [new TargetedResult(target, result2)], null);
-    entry.setValue(result4, 444, [], null);
+    entry.setValue(result1, 111, TargetedResult.EMPTY_LIST);
+    entry.setValue(result2, 222, [new TargetedResult(target, result1)]);
+    entry.setValue(result3, 333, [new TargetedResult(target, result2)]);
+    entry.setValue(result4, 444, []);
     expect(entry.getState(result1), CacheState.VALID);
     expect(entry.getState(result2), CacheState.VALID);
     expect(entry.getState(result3), CacheState.VALID);
@@ -419,39 +459,94 @@
     expect(entry.getValue(result2), -2);
     expect(entry.getValue(result3), -3);
     expect(entry.getValue(result4), 444);
+    // result4 is still valid, so the entry is still in the cache
+    expect(cache.get(target), entry);
+  }
+
+  test_setState_invalid_removeEmptyEntry() {
+    AnalysisTarget target1 = new TestSource('/a.dart');
+    AnalysisTarget target2 = new TestSource('/b.dart');
+    CacheEntry entry1 = new CacheEntry(target1);
+    CacheEntry entry2 = new CacheEntry(target2);
+    cache.put(entry1);
+    cache.put(entry2);
+    ResultDescriptor result1 = new ResultDescriptor('result1', -1);
+    ResultDescriptor result2 = new ResultDescriptor('result2', -2);
+    ResultDescriptor result3 = new ResultDescriptor('result3', -3);
+    // set results, all of them are VALID
+    entry1.setValue(result1, 111, TargetedResult.EMPTY_LIST);
+    entry2.setValue(result2, 222, [new TargetedResult(target1, result1)]);
+    entry2.setValue(result3, 333, [new TargetedResult(target2, result2)]);
+    expect(entry1.getState(result1), CacheState.VALID);
+    expect(entry2.getState(result2), CacheState.VALID);
+    expect(entry2.getState(result3), CacheState.VALID);
+    expect(entry1.getValue(result1), 111);
+    expect(entry2.getValue(result2), 222);
+    expect(entry2.getValue(result3), 333);
+    // invalidate result1, remove entry1 & entry2
+    entry1.setState(result1, CacheState.INVALID);
+    expect(cache.get(target1), isNull);
+    expect(cache.get(target2), isNull);
   }
 
   test_setState_valid() {
+    AnalysisTarget target = new TestSource();
     ResultDescriptor result = new ResultDescriptor('test', null);
-    CacheEntry entry = new CacheEntry();
+    CacheEntry entry = new CacheEntry(target);
     expect(() => entry.setState(result, CacheState.VALID), throwsArgumentError);
   }
 
   test_setValue() {
+    AnalysisTarget target = new TestSource();
     ResultDescriptor result = new ResultDescriptor('test', null);
     String value = 'value';
-    String memento = 'main() {}';
-    CacheEntry entry = new CacheEntry();
-    entry.setValue(result, value, TargetedResult.EMPTY_LIST, memento);
+    CacheEntry entry = new CacheEntry(target);
+    entry.setValue(result, value, TargetedResult.EMPTY_LIST);
     expect(entry.getState(result), CacheState.VALID);
     expect(entry.getValue(result), value);
-    expect(entry.getMemento(result), memento);
+  }
+
+  test_setValue_flushResults() {
+    ResultCachingPolicy cachingPolicy = new SimpleResultCachingPolicy(2, 2);
+    ResultDescriptor descriptor1 =
+        new ResultDescriptor('result1', null, cachingPolicy: cachingPolicy);
+    ResultDescriptor descriptor2 =
+        new ResultDescriptor('result2', null, cachingPolicy: cachingPolicy);
+    ResultDescriptor descriptor3 =
+        new ResultDescriptor('result3', null, cachingPolicy: cachingPolicy);
+    AnalysisTarget target = new TestSource();
+    CacheEntry entry = new CacheEntry(target);
+    cache.put(entry);
+    {
+      entry.setValue(descriptor1, 1, TargetedResult.EMPTY_LIST);
+      expect(entry.getState(descriptor1), CacheState.VALID);
+    }
+    {
+      entry.setValue(descriptor2, 2, TargetedResult.EMPTY_LIST);
+      expect(entry.getState(descriptor1), CacheState.VALID);
+      expect(entry.getState(descriptor2), CacheState.VALID);
+    }
+    {
+      entry.setValue(descriptor3, 3, TargetedResult.EMPTY_LIST);
+      expect(entry.getState(descriptor1), CacheState.FLUSHED);
+      expect(entry.getState(descriptor2), CacheState.VALID);
+      expect(entry.getState(descriptor3), CacheState.VALID);
+    }
   }
 
   test_setValue_invalidateDependent() {
-    AnalysisCache cache = createCache();
     AnalysisTarget target = new TestSource();
-    CacheEntry entry = new CacheEntry();
-    cache.put(target, entry);
+    CacheEntry entry = new CacheEntry(target);
+    cache.put(entry);
     ResultDescriptor result1 = new ResultDescriptor('result1', -1);
     ResultDescriptor result2 = new ResultDescriptor('result2', -2);
     ResultDescriptor result3 = new ResultDescriptor('result3', -3);
     ResultDescriptor result4 = new ResultDescriptor('result4', -4);
     // set results, all of them are VALID
-    entry.setValue(result1, 111, TargetedResult.EMPTY_LIST, null);
-    entry.setValue(result2, 222, [new TargetedResult(target, result1)], null);
-    entry.setValue(result3, 333, [new TargetedResult(target, result2)], null);
-    entry.setValue(result4, 444, [], null);
+    entry.setValue(result1, 111, TargetedResult.EMPTY_LIST);
+    entry.setValue(result2, 222, [new TargetedResult(target, result1)]);
+    entry.setValue(result3, 333, [new TargetedResult(target, result2)]);
+    entry.setValue(result4, 444, []);
     expect(entry.getState(result1), CacheState.VALID);
     expect(entry.getState(result2), CacheState.VALID);
     expect(entry.getState(result3), CacheState.VALID);
@@ -461,7 +556,7 @@
     expect(entry.getValue(result3), 333);
     expect(entry.getValue(result4), 444);
     // set result1, invalidates result2 and result3, result4 is intact
-    entry.setValue(result1, 1111, TargetedResult.EMPTY_LIST, null);
+    entry.setValue(result1, 1111, TargetedResult.EMPTY_LIST);
     expect(entry.getState(result1), CacheState.VALID);
     expect(entry.getState(result2), CacheState.INVALID);
     expect(entry.getState(result3), CacheState.INVALID);
@@ -473,20 +568,19 @@
   }
 
   test_setValue_invalidateDependent2() {
-    AnalysisCache cache = createCache();
     AnalysisTarget target1 = new TestSource('a');
     AnalysisTarget target2 = new TestSource('b');
-    CacheEntry entry1 = new CacheEntry();
-    CacheEntry entry2 = new CacheEntry();
-    cache.put(target1, entry1);
-    cache.put(target2, entry2);
+    CacheEntry entry1 = new CacheEntry(target1);
+    CacheEntry entry2 = new CacheEntry(target2);
+    cache.put(entry1);
+    cache.put(entry2);
     ResultDescriptor result1 = new ResultDescriptor('result1', -1);
     ResultDescriptor result2 = new ResultDescriptor('result2', -2);
     ResultDescriptor result3 = new ResultDescriptor('result3', -3);
     // set results, all of them are VALID
-    entry1.setValue(result1, 111, TargetedResult.EMPTY_LIST, null);
-    entry1.setValue(result2, 222, [new TargetedResult(target1, result1)], null);
-    entry2.setValue(result3, 333, [new TargetedResult(target1, result2)], null);
+    entry1.setValue(result1, 111, TargetedResult.EMPTY_LIST);
+    entry1.setValue(result2, 222, [new TargetedResult(target1, result1)]);
+    entry2.setValue(result3, 333, [new TargetedResult(target1, result2)]);
     expect(entry1.getState(result1), CacheState.VALID);
     expect(entry1.getState(result2), CacheState.VALID);
     expect(entry2.getState(result3), CacheState.VALID);
@@ -494,7 +588,7 @@
     expect(entry1.getValue(result2), 222);
     expect(entry2.getValue(result3), 333);
     // set result1, invalidates result2 and result3
-    entry1.setValue(result1, 1111, TargetedResult.EMPTY_LIST, null);
+    entry1.setValue(result1, 1111, TargetedResult.EMPTY_LIST);
     expect(entry1.getState(result1), CacheState.VALID);
     expect(entry1.getState(result2), CacheState.INVALID);
     expect(entry2.getState(result3), CacheState.INVALID);
@@ -503,22 +597,186 @@
     expect(entry2.getValue(result3), -3);
   }
 
+  test_setValue_keepEntry() {
+    AnalysisTarget target1 = new TestSource('/a.dart');
+    AnalysisTarget target2 = new TestSource('/b.dart');
+    CacheEntry entry1 = new CacheEntry(target1);
+    CacheEntry entry2 = new CacheEntry(target2);
+    cache.put(entry1);
+    cache.put(entry2);
+    ResultDescriptor result1 = new ResultDescriptor('result1', -1);
+    ResultDescriptor result2 = new ResultDescriptor('result2', -2);
+    // set results, all of them are VALID
+    entry1.setValue(result1, 111, TargetedResult.EMPTY_LIST);
+    entry2.setValue(result2, 222, [new TargetedResult(target1, result1)]);
+    expect(entry1.getState(result1), CacheState.VALID);
+    expect(entry2.getState(result2), CacheState.VALID);
+    expect(entry1.getValue(result1), 111);
+    expect(entry2.getValue(result2), 222);
+    // set result2, entry2 is still in the cache
+    entry2.setValue(result2, 2222, []);
+    expect(cache.get(target1), entry1);
+    expect(cache.get(target2), entry2);
+  }
+
   test_toString_empty() {
-    CacheEntry entry = new CacheEntry();
+    AnalysisTarget target = new TestSource();
+    CacheEntry entry = new CacheEntry(target);
     expect(entry.toString(), isNotNull);
   }
 
   test_toString_nonEmpty() {
-    String value = 'value';
+    AnalysisTarget target = new TestSource();
     ResultDescriptor result = new ResultDescriptor('test', null);
-    CacheEntry entry = new CacheEntry();
-    entry.setValue(result, value, TargetedResult.EMPTY_LIST, null);
+    CacheEntry entry = new CacheEntry(target);
+    entry.setValue(result, 42, TargetedResult.EMPTY_LIST);
     expect(entry.toString(), isNotNull);
   }
 }
 
+@reflectiveTest
+class CacheFlushManagerTest {
+  CacheFlushManager manager = new CacheFlushManager(
+      new SimpleResultCachingPolicy(15, 3), (AnalysisTarget target) => false);
+
+  test_madeActive() {
+    manager.madeActive();
+    expect(manager.maxSize, 15);
+  }
+
+  test_madeIdle() {
+    manager.madeActive();
+    AnalysisTarget target = new TestSource();
+    // prepare TargetedResult(s)
+    List<TargetedResult> results = <TargetedResult>[];
+    for (int i = 0; i < 15; i++) {
+      ResultDescriptor descriptor = new ResultDescriptor('result$i', null);
+      results.add(new TargetedResult(target, descriptor));
+    }
+    // notify about storing TargetedResult(s)
+    for (TargetedResult result in results) {
+      manager.resultStored(result, null);
+    }
+    expect(manager.recentlyUsed, results);
+    expect(manager.currentSize, 15);
+    // make idle
+    List<TargetedResult> resultsToFlush = manager.madeIdle();
+    expect(manager.maxSize, 3);
+    expect(manager.recentlyUsed, results.skip(15 - 3));
+    expect(resultsToFlush, results.take(15 - 3));
+  }
+
+  test_new() {
+    expect(manager.maxActiveSize, 15);
+    expect(manager.maxIdleSize, 3);
+    expect(manager.maxSize, 3);
+    expect(manager.currentSize, 0);
+    expect(manager.recentlyUsed, isEmpty);
+  }
+
+  test_resultAccessed() {
+    ResultDescriptor descriptor1 = new ResultDescriptor('result1', null);
+    ResultDescriptor descriptor2 = new ResultDescriptor('result2', null);
+    ResultDescriptor descriptor3 = new ResultDescriptor('result3', null);
+    AnalysisTarget target = new TestSource();
+    TargetedResult result1 = new TargetedResult(target, descriptor1);
+    TargetedResult result2 = new TargetedResult(target, descriptor2);
+    TargetedResult result3 = new TargetedResult(target, descriptor3);
+    manager.resultStored(result1, null);
+    manager.resultStored(result2, null);
+    manager.resultStored(result3, null);
+    expect(manager.currentSize, 3);
+    expect(manager.recentlyUsed, orderedEquals([result1, result2, result3]));
+    // access result2
+    manager.resultAccessed(result2);
+    expect(manager.currentSize, 3);
+    expect(manager.recentlyUsed, orderedEquals([result1, result3, result2]));
+  }
+
+  test_resultAccessed_noSuchResult() {
+    ResultDescriptor descriptor1 = new ResultDescriptor('result1', null);
+    ResultDescriptor descriptor2 = new ResultDescriptor('result2', null);
+    ResultDescriptor descriptor3 = new ResultDescriptor('result3', null);
+    AnalysisTarget target = new TestSource();
+    TargetedResult result1 = new TargetedResult(target, descriptor1);
+    TargetedResult result2 = new TargetedResult(target, descriptor2);
+    TargetedResult result3 = new TargetedResult(target, descriptor3);
+    manager.resultStored(result1, null);
+    manager.resultStored(result2, null);
+    expect(manager.currentSize, 2);
+    expect(manager.recentlyUsed, orderedEquals([result1, result2]));
+    // access result3, no-op
+    manager.resultAccessed(result3);
+    expect(manager.currentSize, 2);
+    expect(manager.recentlyUsed, orderedEquals([result1, result2]));
+  }
+
+  test_resultStored() {
+    ResultDescriptor descriptor1 = new ResultDescriptor('result1', null);
+    ResultDescriptor descriptor2 = new ResultDescriptor('result2', null);
+    ResultDescriptor descriptor3 = new ResultDescriptor('result3', null);
+    ResultDescriptor descriptor4 = new ResultDescriptor('result4', null);
+    AnalysisTarget target = new TestSource();
+    TargetedResult result1 = new TargetedResult(target, descriptor1);
+    TargetedResult result2 = new TargetedResult(target, descriptor2);
+    TargetedResult result3 = new TargetedResult(target, descriptor3);
+    TargetedResult result4 = new TargetedResult(target, descriptor4);
+    manager.resultStored(result1, null);
+    manager.resultStored(result2, null);
+    manager.resultStored(result3, null);
+    expect(manager.currentSize, 3);
+    expect(manager.recentlyUsed, orderedEquals([result1, result2, result3]));
+    // store result2 again
+    {
+      List<TargetedResult> resultsToFlush = manager.resultStored(result2, null);
+      expect(resultsToFlush, isEmpty);
+      expect(manager.currentSize, 3);
+      expect(manager.recentlyUsed, orderedEquals([result1, result3, result2]));
+    }
+    // store result4
+    {
+      List<TargetedResult> resultsToFlush = manager.resultStored(result4, null);
+      expect(resultsToFlush, [result1]);
+      expect(manager.currentSize, 3);
+      expect(manager.recentlyUsed, orderedEquals([result3, result2, result4]));
+      expect(manager.resultSizeMap, {result3: 1, result2: 1, result4: 1});
+    }
+  }
+
+  test_targetRemoved() {
+    ResultDescriptor descriptor1 = new ResultDescriptor('result1', null);
+    ResultDescriptor descriptor2 = new ResultDescriptor('result2', null);
+    ResultDescriptor descriptor3 = new ResultDescriptor('result3', null);
+    AnalysisTarget target1 = new TestSource('a.dart');
+    AnalysisTarget target2 = new TestSource('b.dart');
+    TargetedResult result1 = new TargetedResult(target1, descriptor1);
+    TargetedResult result2 = new TargetedResult(target2, descriptor2);
+    TargetedResult result3 = new TargetedResult(target1, descriptor3);
+    manager.resultStored(result1, null);
+    manager.resultStored(result2, null);
+    manager.resultStored(result3, null);
+    expect(manager.currentSize, 3);
+    expect(manager.recentlyUsed, orderedEquals([result1, result2, result3]));
+    expect(manager.resultSizeMap, {result1: 1, result2: 1, result3: 1});
+    // remove target1
+    {
+      manager.targetRemoved(target1);
+      expect(manager.currentSize, 1);
+      expect(manager.recentlyUsed, orderedEquals([result2]));
+      expect(manager.resultSizeMap, {result2: 1});
+    }
+    // remove target2
+    {
+      manager.targetRemoved(target2);
+      expect(manager.currentSize, 0);
+      expect(manager.recentlyUsed, isEmpty);
+      expect(manager.resultSizeMap, isEmpty);
+    }
+  }
+}
+
 abstract class CachePartitionTest extends EngineTestCase {
-  CachePartition createPartition([CacheRetentionPolicy policy = null]);
+  CachePartition createPartition();
 
   void test_creation() {
     expect(createPartition(), isNotNull);
@@ -527,8 +785,8 @@
   void test_entrySet() {
     CachePartition partition = createPartition();
     AnalysisTarget target = new TestSource();
-    CacheEntry entry = new CacheEntry();
-    partition.put(target, entry);
+    CacheEntry entry = new CacheEntry(target);
+    partition.put(entry);
     Map<AnalysisTarget, CacheEntry> entryMap = partition.map;
     expect(entryMap, hasLength(1));
     AnalysisTarget entryKey = entryMap.keys.first;
@@ -542,65 +800,32 @@
     expect(partition.get(target), isNull);
   }
 
+  void test_put_alreadyInPartition() {
+    CachePartition partition1 = createPartition();
+    CachePartition partition2 = createPartition();
+    AnalysisTarget target = new TestSource();
+    CacheEntry entry = new CacheEntry(target);
+    partition1.put(entry);
+    expect(() => partition2.put(entry), throwsStateError);
+  }
+
   void test_put_noFlush() {
     CachePartition partition = createPartition();
     AnalysisTarget target = new TestSource();
-    CacheEntry entry = new CacheEntry();
-    partition.put(target, entry);
+    CacheEntry entry = new CacheEntry(target);
+    partition.put(entry);
     expect(partition.get(target), entry);
   }
 
   void test_remove() {
     CachePartition partition = createPartition();
     AnalysisTarget target = new TestSource();
-    CacheEntry entry = new CacheEntry();
-    partition.put(target, entry);
+    CacheEntry entry = new CacheEntry(target);
+    partition.put(entry);
     expect(partition.get(target), entry);
     partition.remove(target);
     expect(partition.get(target), isNull);
   }
-
-  void test_setMaxCacheSize() {
-    CachePartition partition =
-        createPartition(new TestCacheRetentionPolicy(RetentionPriority.LOW));
-    ResultDescriptor result = new ResultDescriptor('result', null);
-    NullLiteral node = new NullLiteral(null);
-    int size = 6; // Must be <= partition.maxCacheSize
-    for (int i = 0; i < size; i++) {
-      AnalysisTarget target = new TestSource("/test$i.dart");
-      CacheEntry entry = new CacheEntry();
-      entry.setValue(result, node, TargetedResult.EMPTY_LIST, null);
-      partition.put(target, entry);
-      partition.accessedAst(target);
-    }
-
-    void assertNonFlushedCount(int expectedCount, CachePartition partition) {
-      int nonFlushedCount = 0;
-      Map<AnalysisTarget, CacheEntry> entryMap = partition.map;
-      entryMap.values.forEach((CacheEntry entry) {
-        if (entry.getState(result) != CacheState.FLUSHED) {
-          nonFlushedCount++;
-        }
-      });
-      expect(nonFlushedCount, expectedCount);
-    }
-
-    assertNonFlushedCount(size, partition);
-    int newSize = size - 2;
-    partition.maxCacheSize = newSize;
-    assertNonFlushedCount(newSize, partition);
-  }
-
-  void test_size() {
-    CachePartition partition = createPartition();
-    int size = 4;
-    for (int i = 0; i < size; i++) {
-      AnalysisTarget target = new TestSource("/test$i.dart");
-      partition.put(target, new CacheEntry());
-      partition.accessedAst(target);
-    }
-    expect(partition.size(), size);
-  }
 }
 
 @reflectiveTest
@@ -612,50 +837,53 @@
     expect(data.state, CacheState.INVALID);
     expect(data.value, value);
   }
+
+  test_flush() {
+    ResultDescriptor result = new ResultDescriptor('test', -1);
+    ResultData data = new ResultData(result);
+    data.state = CacheState.VALID;
+    data.value = 123;
+    data.flush();
+    expect(data.state, CacheState.FLUSHED);
+    expect(data.value, -1);
+  }
 }
 
 @reflectiveTest
 class SdkCachePartitionTest extends CachePartitionTest {
-  CachePartition createPartition([CacheRetentionPolicy policy = null]) {
-    return new SdkCachePartition(null, 8);
+  CachePartition createPartition() {
+    return new SdkCachePartition(null);
   }
 
   void test_contains_false() {
     CachePartition partition = createPartition();
     AnalysisTarget target = new TestSource();
-    expect(partition.contains(target), isFalse);
+    expect(partition.isResponsibleFor(target), isFalse);
   }
 
   void test_contains_true() {
-    SdkCachePartition partition = new SdkCachePartition(null, 8);
+    SdkCachePartition partition = new SdkCachePartition(null);
     SourceFactory factory = new SourceFactory(
         [new DartUriResolver(DirectoryBasedDartSdk.defaultSdk)]);
     AnalysisTarget target = factory.forUri("dart:core");
-    expect(partition.contains(target), isTrue);
+    expect(partition.isResponsibleFor(target), isTrue);
   }
 }
 
 @reflectiveTest
-class TestCacheRetentionPolicy extends CacheRetentionPolicy {
-  final RetentionPriority policy;
-
-  TestCacheRetentionPolicy([this.policy = RetentionPriority.MEDIUM]);
-
-  @override
-  RetentionPriority getAstPriority(AnalysisTarget target, CacheEntry entry) =>
-      policy;
-}
-
-@reflectiveTest
 class UniversalCachePartitionTest extends CachePartitionTest {
-  CachePartition createPartition([CacheRetentionPolicy policy = null]) {
-    return new UniversalCachePartition(null, 8, policy);
+  CachePartition createPartition() {
+    return new UniversalCachePartition(null);
   }
 
   void test_contains() {
-    UniversalCachePartition partition =
-        new UniversalCachePartition(null, 8, null);
+    UniversalCachePartition partition = new UniversalCachePartition(null);
     TestSource source = new TestSource();
-    expect(partition.contains(source), isTrue);
+    expect(partition.isResponsibleFor(source), isTrue);
   }
 }
+
+class _InternalAnalysisContextMock extends TypedMock
+    implements InternalAnalysisContext {
+  noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
+}
diff --git a/pkg/analyzer/test/src/context/context_test.dart b/pkg/analyzer/test/src/context/context_test.dart
index 92d552f..2489922 100644
--- a/pkg/analyzer/test/src/context/context_test.dart
+++ b/pkg/analyzer/test/src/context/context_test.dart
@@ -5,7 +5,6 @@
 library test.src.context.context_test;
 
 import 'dart:async';
-import 'dart:collection';
 
 import 'package:analyzer/src/cancelable_future.dart';
 import 'package:analyzer/src/context/cache.dart';
@@ -24,6 +23,7 @@
         AnalysisOptions,
         AnalysisOptionsImpl,
         AnalysisResult,
+        CacheState,
         ChangeNotice,
         ChangeSet,
         IncrementalAnalysisCache,
@@ -31,416 +31,71 @@
 import 'package:analyzer/src/generated/error.dart';
 import 'package:analyzer/src/generated/html.dart' as ht;
 import 'package:analyzer/src/generated/java_engine.dart';
-import 'package:analyzer/src/generated/java_engine_io.dart';
 import 'package:analyzer/src/generated/resolver.dart';
 import 'package:analyzer/src/generated/scanner.dart';
-import 'package:analyzer/src/generated/sdk.dart';
-import 'package:analyzer/src/generated/sdk_io.dart';
 import 'package:analyzer/src/generated/source.dart';
-import 'package:analyzer/src/generated/source_io.dart';
-import 'package:analyzer/src/generated/testing/ast_factory.dart';
-import 'package:analyzer/src/generated/testing/element_factory.dart';
-import 'package:analyzer/src/generated/testing/test_type_provider.dart';
-import 'package:analyzer/src/generated/utilities_dart.dart';
-import 'package:analyzer/src/plugin/engine_plugin.dart';
 import 'package:analyzer/task/dart.dart';
-import 'package:plugin/manager.dart';
 import 'package:unittest/unittest.dart';
 import 'package:watcher/src/utils.dart';
 
 import '../../generated/engine_test.dart';
 import '../../generated/test_support.dart';
 import '../../reflective_tests.dart';
-import '../mock_sdk.dart';
+import 'abstract_context.dart';
 
 main() {
   groupSep = ' | ';
   runReflectiveTests(AnalysisContextImplTest);
 }
 
-contextWithCore() {
-  return new AnalysisContextForTests();
-}
-
-/**
- * An analysis context that has a fake SDK that is much smaller and faster for
- * testing purposes.
- */
-class AnalysisContextForTests extends AnalysisContextImpl {
-  AnalysisContextForTests() {
-    DartSdk sdk = new MockSdk();
-    SourceFactory sourceFactory =
-        new SourceFactory([new DartUriResolver(sdk), new FileUriResolver()]);
-    this.sourceFactory = sourceFactory;
-//    initWithCore();
-  }
-
-  @override
-  void set analysisOptions(AnalysisOptions options) {
-    AnalysisOptions currentOptions = analysisOptions;
-    bool needsRecompute = currentOptions.analyzeFunctionBodiesPredicate !=
-            options.analyzeFunctionBodiesPredicate ||
-        currentOptions.generateImplicitErrors !=
-            options.generateImplicitErrors ||
-        currentOptions.generateSdkErrors != options.generateSdkErrors ||
-        currentOptions.dart2jsHint != options.dart2jsHint ||
-        (currentOptions.hint && !options.hint) ||
-        currentOptions.preserveComments != options.preserveComments ||
-        currentOptions.enableNullAwareOperators !=
-            options.enableNullAwareOperators ||
-        currentOptions.enableStrictCallChecks != options.enableStrictCallChecks;
-    if (needsRecompute) {
-      fail(
-          "Cannot set options that cause the sources to be reanalyzed in a test context");
-    }
-    super.analysisOptions = options;
-  }
-
-  @override
-  LibraryResolverFactory get libraryResolverFactory => null;
-
-  @override
-  bool exists(Source source) =>
-      super.exists(source) || sourceFactory.dartSdk.context.exists(source);
-
-  @override
-  TimestampedData<String> getContents(Source source) {
-    if (source.isInSystemLibrary) {
-      return sourceFactory.dartSdk.context.getContents(source);
-    }
-    return super.getContents(source);
-  }
-
-  @override
-  int getModificationStamp(Source source) {
-    if (source.isInSystemLibrary) {
-      return sourceFactory.dartSdk.context.getModificationStamp(source);
-    }
-    return super.getModificationStamp(source);
-  }
-
-  /**
-   * Initialize the given analysis context with a fake core library already resolved.
-   *
-   * @param context the context to be initialized (not `null`)
-   * @return the analysis context that was created
-   */
-  void initWithCore() {
-    AnalysisContext coreContext = sourceFactory.dartSdk.context;
-    //
-    // dart:core
-    //
-    TestTypeProvider provider = new TestTypeProvider();
-    typeProvider = provider;
-    CompilationUnitElementImpl coreUnit =
-        new CompilationUnitElementImpl("core.dart");
-    Source coreSource = sourceFactory.forUri(DartSdk.DART_CORE);
-    coreContext.setContents(coreSource, "");
-    coreUnit.source = coreSource;
-    ClassElementImpl proxyClassElement = ElementFactory.classElement2("_Proxy");
-    coreUnit.types = <ClassElement>[
-      provider.boolType.element,
-      provider.deprecatedType.element,
-      provider.doubleType.element,
-      provider.functionType.element,
-      provider.intType.element,
-      provider.iterableType.element,
-      provider.iteratorType.element,
-      provider.listType.element,
-      provider.mapType.element,
-      provider.nullType.element,
-      provider.numType.element,
-      provider.objectType.element,
-      proxyClassElement,
-      provider.stackTraceType.element,
-      provider.stringType.element,
-      provider.symbolType.element,
-      provider.typeType.element
-    ];
-    coreUnit.functions = <FunctionElement>[
-      ElementFactory.functionElement3("identical", provider.boolType.element,
-          <ClassElement>[
-        provider.objectType.element,
-        provider.objectType.element
-      ], null),
-      ElementFactory.functionElement3("print", VoidTypeImpl.instance.element,
-          <ClassElement>[provider.objectType.element], null)
-    ];
-    TopLevelVariableElement proxyTopLevelVariableElt = ElementFactory
-        .topLevelVariableElement3("proxy", true, false, proxyClassElement.type);
-    TopLevelVariableElement deprecatedTopLevelVariableElt = ElementFactory
-        .topLevelVariableElement3(
-            "deprecated", true, false, provider.deprecatedType);
-    coreUnit.accessors = <PropertyAccessorElement>[
-      proxyTopLevelVariableElt.getter,
-      deprecatedTopLevelVariableElt.getter
-    ];
-    coreUnit.topLevelVariables = <TopLevelVariableElement>[
-      proxyTopLevelVariableElt,
-      deprecatedTopLevelVariableElt
-    ];
-    LibraryElementImpl coreLibrary = new LibraryElementImpl.forNode(
-        coreContext, AstFactory.libraryIdentifier2(["dart", "core"]));
-    coreLibrary.definingCompilationUnit = coreUnit;
-    //
-    // dart:async
-    //
-    CompilationUnitElementImpl asyncUnit =
-        new CompilationUnitElementImpl("async.dart");
-    Source asyncSource = sourceFactory.forUri(DartSdk.DART_ASYNC);
-    coreContext.setContents(asyncSource, "");
-    asyncUnit.source = asyncSource;
-    // Future
-    ClassElementImpl futureElement =
-        ElementFactory.classElement2("Future", ["T"]);
-    InterfaceType futureType = futureElement.type;
-    //   factory Future.value([value])
-    ConstructorElementImpl futureConstructor =
-        ElementFactory.constructorElement2(futureElement, "value");
-    futureConstructor.parameters = <ParameterElement>[
-      ElementFactory.positionalParameter2("value", provider.dynamicType)
-    ];
-    futureConstructor.factory = true;
-    (futureConstructor.type as FunctionTypeImpl).typeArguments =
-        futureElement.type.typeArguments;
-    futureElement.constructors = <ConstructorElement>[futureConstructor];
-    //   Future then(onValue(T value), { Function onError });
-    List<ParameterElement> parameters = <ParameterElement>[
-      ElementFactory.requiredParameter2(
-          "value", futureElement.typeParameters[0].type)
-    ];
-    FunctionTypeAliasElementImpl aliasElement =
-        new FunctionTypeAliasElementImpl.forNode(null);
-    aliasElement.synthetic = true;
-    aliasElement.parameters = parameters;
-    aliasElement.returnType = provider.dynamicType;
-    aliasElement.enclosingElement = asyncUnit;
-    FunctionTypeImpl aliasType = new FunctionTypeImpl.con2(aliasElement);
-    aliasElement.shareTypeParameters(futureElement.typeParameters);
-    aliasType.typeArguments = futureElement.type.typeArguments;
-    MethodElement thenMethod = ElementFactory.methodElementWithParameters(
-        "then", futureElement.type.typeArguments, futureType, [
-      ElementFactory.requiredParameter2("onValue", aliasType),
-      ElementFactory.namedParameter2("onError", provider.functionType)
-    ]);
-    futureElement.methods = <MethodElement>[thenMethod];
-    // Completer
-    ClassElementImpl completerElement =
-        ElementFactory.classElement2("Completer", ["T"]);
-    ConstructorElementImpl completerConstructor =
-        ElementFactory.constructorElement2(completerElement, null);
-    (completerConstructor.type as FunctionTypeImpl).typeArguments =
-        completerElement.type.typeArguments;
-    completerElement.constructors = <ConstructorElement>[completerConstructor];
-    asyncUnit.types = <ClassElement>[
-      completerElement,
-      futureElement,
-      ElementFactory.classElement2("Stream", ["T"])
-    ];
-    LibraryElementImpl asyncLibrary = new LibraryElementImpl.forNode(
-        coreContext, AstFactory.libraryIdentifier2(["dart", "async"]));
-    asyncLibrary.definingCompilationUnit = asyncUnit;
-    //
-    // dart:html
-    //
-    CompilationUnitElementImpl htmlUnit =
-        new CompilationUnitElementImpl("html_dartium.dart");
-    Source htmlSource = sourceFactory.forUri(DartSdk.DART_HTML);
-    coreContext.setContents(htmlSource, "");
-    htmlUnit.source = htmlSource;
-    ClassElementImpl elementElement = ElementFactory.classElement2("Element");
-    InterfaceType elementType = elementElement.type;
-    ClassElementImpl canvasElement =
-        ElementFactory.classElement("CanvasElement", elementType);
-    ClassElementImpl contextElement =
-        ElementFactory.classElement2("CanvasRenderingContext");
-    InterfaceType contextElementType = contextElement.type;
-    ClassElementImpl context2dElement = ElementFactory.classElement(
-        "CanvasRenderingContext2D", contextElementType);
-    canvasElement.methods = <MethodElement>[
-      ElementFactory.methodElement(
-          "getContext", contextElementType, [provider.stringType])
-    ];
-    canvasElement.accessors = <PropertyAccessorElement>[
-      ElementFactory.getterElement("context2D", false, context2dElement.type)
-    ];
-    canvasElement.fields = canvasElement.accessors
-        .map((PropertyAccessorElement accessor) => accessor.variable)
-        .toList();
-    ClassElementImpl documentElement =
-        ElementFactory.classElement("Document", elementType);
-    ClassElementImpl htmlDocumentElement =
-        ElementFactory.classElement("HtmlDocument", documentElement.type);
-    htmlDocumentElement.methods = <MethodElement>[
-      ElementFactory.methodElement(
-          "query", elementType, <DartType>[provider.stringType])
-    ];
-    htmlUnit.types = <ClassElement>[
-      ElementFactory.classElement("AnchorElement", elementType),
-      ElementFactory.classElement("BodyElement", elementType),
-      ElementFactory.classElement("ButtonElement", elementType),
-      canvasElement,
-      contextElement,
-      context2dElement,
-      ElementFactory.classElement("DivElement", elementType),
-      documentElement,
-      elementElement,
-      htmlDocumentElement,
-      ElementFactory.classElement("InputElement", elementType),
-      ElementFactory.classElement("SelectElement", elementType)
-    ];
-    htmlUnit.functions = <FunctionElement>[
-      ElementFactory.functionElement3("query", elementElement,
-          <ClassElement>[provider.stringType.element], ClassElement.EMPTY_LIST)
-    ];
-    TopLevelVariableElementImpl document = ElementFactory
-        .topLevelVariableElement3(
-            "document", false, true, htmlDocumentElement.type);
-    htmlUnit.topLevelVariables = <TopLevelVariableElement>[document];
-    htmlUnit.accessors = <PropertyAccessorElement>[document.getter];
-    LibraryElementImpl htmlLibrary = new LibraryElementImpl.forNode(
-        coreContext, AstFactory.libraryIdentifier2(["dart", "dom", "html"]));
-    htmlLibrary.definingCompilationUnit = htmlUnit;
-    //
-    // dart:math
-    //
-    CompilationUnitElementImpl mathUnit =
-        new CompilationUnitElementImpl("math.dart");
-    Source mathSource = sourceFactory.forUri("dart:math");
-    coreContext.setContents(mathSource, "");
-    mathUnit.source = mathSource;
-    FunctionElement cosElement = ElementFactory.functionElement3("cos",
-        provider.doubleType.element, <ClassElement>[provider.numType.element],
-        ClassElement.EMPTY_LIST);
-    TopLevelVariableElement ln10Element = ElementFactory
-        .topLevelVariableElement3("LN10", true, false, provider.doubleType);
-    TopLevelVariableElement piElement = ElementFactory.topLevelVariableElement3(
-        "PI", true, false, provider.doubleType);
-    ClassElementImpl randomElement = ElementFactory.classElement2("Random");
-    randomElement.abstract = true;
-    ConstructorElementImpl randomConstructor =
-        ElementFactory.constructorElement2(randomElement, null);
-    randomConstructor.factory = true;
-    ParameterElementImpl seedParam = new ParameterElementImpl("seed", 0);
-    seedParam.parameterKind = ParameterKind.POSITIONAL;
-    seedParam.type = provider.intType;
-    randomConstructor.parameters = <ParameterElement>[seedParam];
-    randomElement.constructors = <ConstructorElement>[randomConstructor];
-    FunctionElement sinElement = ElementFactory.functionElement3("sin",
-        provider.doubleType.element, <ClassElement>[provider.numType.element],
-        ClassElement.EMPTY_LIST);
-    FunctionElement sqrtElement = ElementFactory.functionElement3("sqrt",
-        provider.doubleType.element, <ClassElement>[provider.numType.element],
-        ClassElement.EMPTY_LIST);
-    mathUnit.accessors = <PropertyAccessorElement>[
-      ln10Element.getter,
-      piElement.getter
-    ];
-    mathUnit.functions = <FunctionElement>[cosElement, sinElement, sqrtElement];
-    mathUnit.topLevelVariables = <TopLevelVariableElement>[
-      ln10Element,
-      piElement
-    ];
-    mathUnit.types = <ClassElement>[randomElement];
-    LibraryElementImpl mathLibrary = new LibraryElementImpl.forNode(
-        coreContext, AstFactory.libraryIdentifier2(["dart", "math"]));
-    mathLibrary.definingCompilationUnit = mathUnit;
-    //
-    // Set empty sources for the rest of the libraries.
-    //
-    Source source = sourceFactory.forUri("dart:_interceptors");
-    coreContext.setContents(source, "");
-    source = sourceFactory.forUri("dart:_js_helper");
-    coreContext.setContents(source, "");
-    //
-    // Record the elements.
-    //
-    HashMap<Source, LibraryElement> elementMap =
-        new HashMap<Source, LibraryElement>();
-    elementMap[coreSource] = coreLibrary;
-    elementMap[asyncSource] = asyncLibrary;
-    elementMap[htmlSource] = htmlLibrary;
-    elementMap[mathSource] = mathLibrary;
-    recordLibraryElements(elementMap);
-    elementMap.forEach((Source librarySource, LibraryElement library) {
-      CompilationUnit unit = new CompilationUnit(null, null, null, null, null);
-      unit.element = library.definingCompilationUnit;
-      CacheEntry entry = getCacheEntry(librarySource);
-      entry.setValue(PARSED_UNIT, unit, TargetedResult.EMPTY_LIST, null);
-    });
-  }
-
-  /**
-   * Set the analysis options, even if they would force re-analysis. This method should only be
-   * invoked before the fake SDK is initialized.
-   *
-   * @param options the analysis options to be set
-   */
-  void _internalSetAnalysisOptions(AnalysisOptions options) {
-    super.analysisOptions = options;
-  }
-}
-
 @reflectiveTest
-class AnalysisContextImplTest extends EngineTestCase {
-  /**
-   * An analysis context whose source factory is [sourceFactory].
-   */
-  AnalysisContextImpl _context;
-
-  /**
-   * The source factory associated with the analysis [context].
-   */
-  SourceFactory _sourceFactory;
-
+class AnalysisContextImplTest extends AbstractContextTest {
   void fail_applyChanges_empty() {
-    _context.applyChanges(new ChangeSet());
-    expect(_context.performAnalysisTask().changeNotices, isNull);
+    context.applyChanges(new ChangeSet());
+    expect(context.performAnalysisTask().changeNotices, isNull);
     // This test appears to be flaky. If it is named "test_" it fails, if it's
-    // named "fail_" it doesn't fail. I'm guessing that it's dependent on some
-    // other test being run (or not).
+    // named "fail_" it doesn't fail. I'm guessing that it's dependent on
+    // whether some other test is run.
     fail('Should have failed');
   }
 
-  void fail_applyChanges_overriddenSource() {
+  void test_applyChanges_overriddenSource() {
     // Note: addSource adds the source to the contentCache.
-    Source source = _addSource("/test.dart", "library test;");
-    _context.computeErrors(source);
-    while (!_context.sourcesNeedingProcessing.isEmpty) {
-      _context.performAnalysisTask();
+    Source source = addSource("/test.dart", "library test;");
+    context.computeErrors(source);
+    while (!context.sourcesNeedingProcessing.isEmpty) {
+      context.performAnalysisTask();
     }
     // Adding the source as a changedSource should have no effect since
     // it is already overridden in the content cache.
     ChangeSet changeSet = new ChangeSet();
     changeSet.changedSource(source);
-    _context.applyChanges(changeSet);
-    expect(_context.sourcesNeedingProcessing, hasLength(0));
+    context.applyChanges(changeSet);
+    expect(context.sourcesNeedingProcessing, hasLength(0));
   }
 
   Future fail_applyChanges_remove() {
-    _context = contextWithCore();
     SourcesChangedListener listener = new SourcesChangedListener();
-    _context.onSourcesChanged.listen(listener.onData);
-    _sourceFactory = _context.sourceFactory;
+    context.onSourcesChanged.listen(listener.onData);
     String libAContents = r'''
 library libA;
 import 'libB.dart';''';
-    Source libA = _addSource("/libA.dart", libAContents);
+    Source libA = addSource("/libA.dart", libAContents);
     String libBContents = "library libB;";
-    Source libB = _addSource("/libB.dart", libBContents);
-    LibraryElement libAElement = _context.computeLibraryElement(libA);
+    Source libB = addSource("/libB.dart", libBContents);
+    LibraryElement libAElement = context.computeLibraryElement(libA);
     expect(libAElement, isNotNull);
     List<LibraryElement> importedLibraries = libAElement.importedLibraries;
     expect(importedLibraries, hasLength(2));
-    _context.computeErrors(libA);
-    _context.computeErrors(libB);
-    expect(_context.sourcesNeedingProcessing, hasLength(0));
-    _context.setContents(libB, null);
+    context.computeErrors(libA);
+    context.computeErrors(libB);
+    expect(context.sourcesNeedingProcessing, hasLength(0));
+    context.setContents(libB, null);
     _removeSource(libB);
-    List<Source> sources = _context.sourcesNeedingProcessing;
+    List<Source> sources = context.sourcesNeedingProcessing;
     expect(sources, hasLength(1));
     expect(sources[0], same(libA));
-    libAElement = _context.computeLibraryElement(libA);
+    libAElement = context.computeLibraryElement(libA);
     importedLibraries = libAElement.importedLibraries;
     expect(importedLibraries, hasLength(1));
     return pumpEventQueue().then((_) {
@@ -455,26 +110,24 @@
   }
 
   Future fail_applyChanges_removeContainer() {
-    _context = contextWithCore();
     SourcesChangedListener listener = new SourcesChangedListener();
-    _context.onSourcesChanged.listen(listener.onData);
-    _sourceFactory = _context.sourceFactory;
+    context.onSourcesChanged.listen(listener.onData);
     String libAContents = r'''
 library libA;
 import 'libB.dart';''';
-    Source libA = _addSource("/libA.dart", libAContents);
+    Source libA = addSource("/libA.dart", libAContents);
     String libBContents = "library libB;";
-    Source libB = _addSource("/libB.dart", libBContents);
-    _context.computeLibraryElement(libA);
-    _context.computeErrors(libA);
-    _context.computeErrors(libB);
-    expect(_context.sourcesNeedingProcessing, hasLength(0));
+    Source libB = addSource("/libB.dart", libBContents);
+    context.computeLibraryElement(libA);
+    context.computeErrors(libA);
+    context.computeErrors(libB);
+    expect(context.sourcesNeedingProcessing, hasLength(0));
     ChangeSet changeSet = new ChangeSet();
     SourceContainer removedContainer =
         new _AnalysisContextImplTest_test_applyChanges_removeContainer(libB);
     changeSet.removedContainer(removedContainer);
-    _context.applyChanges(changeSet);
-    List<Source> sources = _context.sourcesNeedingProcessing;
+    context.applyChanges(changeSet);
+    List<Source> sources = context.sourcesNeedingProcessing;
     expect(sources, hasLength(1));
     expect(sources[0], same(libA));
     return pumpEventQueue().then((_) {
@@ -487,64 +140,57 @@
     });
   }
 
-  void fail_computeErrors_dart_none() {
-    Source source = _addSource("/lib.dart", "library lib;");
-    List<AnalysisError> errors = _context.computeErrors(source);
+  void test_computeErrors_dart_none() {
+    Source source = addSource("/lib.dart", "library lib;");
+    List<AnalysisError> errors = context.computeErrors(source);
     expect(errors, hasLength(0));
   }
 
-  void fail_computeErrors_dart_part() {
+  void test_computeErrors_dart_part() {
     Source librarySource =
-        _addSource("/lib.dart", "library lib; part 'part.dart';");
-    Source partSource = _addSource("/part.dart", "part of 'lib';");
-    _context.parseCompilationUnit(librarySource);
-    List<AnalysisError> errors = _context.computeErrors(partSource);
+        addSource("/lib.dart", "library lib; part 'part.dart';");
+    Source partSource = addSource("/part.dart", "part of 'lib';");
+    context.parseCompilationUnit(librarySource);
+    List<AnalysisError> errors = context.computeErrors(partSource);
     expect(errors, isNotNull);
     expect(errors.length > 0, isTrue);
   }
 
-  void fail_computeErrors_dart_some() {
-    Source source = _addSource("/lib.dart", "library 'lib';");
-    List<AnalysisError> errors = _context.computeErrors(source);
+  void test_computeErrors_dart_some() {
+    Source source = addSource("/lib.dart", "library 'lib';");
+    List<AnalysisError> errors = context.computeErrors(source);
     expect(errors, isNotNull);
     expect(errors.length > 0, isTrue);
   }
 
   void fail_computeErrors_html_none() {
-    Source source = _addSource("/test.html", "<html></html>");
-    List<AnalysisError> errors = _context.computeErrors(source);
+    Source source = addSource("/test.html", "<html></html>");
+    List<AnalysisError> errors = context.computeErrors(source);
     expect(errors, hasLength(0));
   }
 
   void fail_computeHtmlElement_valid() {
-    Source source = _addSource("/test.html", "<html></html>");
-    HtmlElement element = _context.computeHtmlElement(source);
+    Source source = addSource("/test.html", "<html></html>");
+    HtmlElement element = context.computeHtmlElement(source);
     expect(element, isNotNull);
-    expect(_context.computeHtmlElement(source), same(element));
+    expect(context.computeHtmlElement(source), same(element));
   }
 
-  void fail_computeImportedLibraries_none() {
-    Source source = _addSource("/test.dart", "library test;");
-    expect(_context.computeImportedLibraries(source), hasLength(0));
+  void test_computeImportedLibraries_none() {
+    Source source = addSource("/test.dart", "library test;");
+    expect(context.computeImportedLibraries(source), hasLength(0));
   }
 
-  void fail_computeImportedLibraries_some() {
-    //    addSource("/lib1.dart", "library lib1;");
-    //    addSource("/lib2.dart", "library lib2;");
-    Source source = _addSource(
+  void test_computeImportedLibraries_some() {
+    Source source = addSource(
         "/test.dart", "library test; import 'lib1.dart'; import 'lib2.dart';");
-    expect(_context.computeImportedLibraries(source), hasLength(2));
-  }
-
-  void fail_computeKindOf_html() {
-    Source source = _addSource("/test.html", "");
-    expect(_context.computeKindOf(source), same(SourceKind.HTML));
+    expect(context.computeImportedLibraries(source), hasLength(2));
   }
 
   void fail_computeResolvableCompilationUnit_dart_exception() {
     TestSource source = _addSourceWithException("/test.dart");
     try {
-      _context.computeResolvableCompilationUnit(source);
+      context.computeResolvableCompilationUnit(source);
       fail("Expected AnalysisException");
     } on AnalysisException {
       // Expected
@@ -552,9 +198,9 @@
   }
 
   void fail_computeResolvableCompilationUnit_html_exception() {
-    Source source = _addSource("/lib.html", "<html></html>");
+    Source source = addSource("/lib.html", "<html></html>");
     try {
-      _context.computeResolvableCompilationUnit(source);
+      context.computeResolvableCompilationUnit(source);
       fail("Expected AnalysisException");
     } on AnalysisException {
       // Expected
@@ -562,27 +208,24 @@
   }
 
   void fail_computeResolvableCompilationUnit_valid() {
-    Source source = _addSource("/lib.dart", "library lib;");
-    CompilationUnit parsedUnit = _context.parseCompilationUnit(source);
+    Source source = addSource("/lib.dart", "library lib;");
+    CompilationUnit parsedUnit = context.parseCompilationUnit(source);
     expect(parsedUnit, isNotNull);
     CompilationUnit resolvedUnit =
-        _context.computeResolvableCompilationUnit(source);
+        context.computeResolvableCompilationUnit(source);
     expect(resolvedUnit, isNotNull);
     expect(resolvedUnit, same(parsedUnit));
   }
 
-  Future fail_computeResolvedCompilationUnitAsync_dispose() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source source = _addSource("/lib.dart", "library lib;");
+  Future test_computeResolvedCompilationUnitAsync_dispose() {
+    Source source = addSource("/lib.dart", "library lib;");
     // Complete all pending analysis tasks and flush the AST so that it won't
     // be available immediately.
     _performPendingAnalysisTasks();
-    CacheEntry entry = _context.getReadableSourceEntryOrNull(source);
-    entry.flushAstStructures();
-    CancelableFuture<CompilationUnit> future =
-        _context.computeResolvedCompilationUnitAsync(source, source);
+    _flushAst(source);
     bool completed = false;
+    CancelableFuture<CompilationUnit> future =
+        context.computeResolvedCompilationUnitAsync(source, source);
     future.then((CompilationUnit unit) {
       fail('Future should have completed with error');
     }, onError: (error) {
@@ -590,29 +233,25 @@
       completed = true;
     });
     expect(completed, isFalse);
-    expect(_context.pendingFutureSources_forTesting, isNotEmpty);
+    expect(context.pendingFutureSources_forTesting, isNotEmpty);
     // Disposing of the context should cause all pending futures to complete
     // with AnalysisNotScheduled, so that no clients are left hanging.
-    _context.dispose();
-    expect(_context.pendingFutureSources_forTesting, isEmpty);
+    context.dispose();
+    expect(context.pendingFutureSources_forTesting, isEmpty);
     return pumpEventQueue().then((_) {
       expect(completed, isTrue);
-      expect(_context.pendingFutureSources_forTesting, isEmpty);
+      expect(context.pendingFutureSources_forTesting, isEmpty);
     });
   }
 
   Future fail_computeResolvedCompilationUnitAsync_unrelatedLibrary() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source librarySource = _addSource("/lib.dart", "library lib;");
-    Source partSource = _addSource("/part.dart", "part of foo;");
+    Source librarySource = addSource("/lib.dart", "library lib;");
+    Source partSource = addSource("/part.dart", "part of foo;");
     bool completed = false;
-    _context
+    context
         .computeResolvedCompilationUnitAsync(partSource, librarySource)
         .then((_) {
-      // TODO(brianwilkerson) Uncomment the line below (and figure out why
-      // invoking 'fail' directly causes a failing test to fail.
-      //fail('Expected resolution to fail');
+      fail('Expected resolution to fail');
     }, onError: (e) {
       expect(e, new isInstanceOf<AnalysisNotScheduledError>());
       completed = true;
@@ -629,199 +268,170 @@
     fail("Implement this");
   }
 
-  void fail_getElement_constructor_named() {
-    Source source = _addSource("/lib.dart", r'''
+  void test_getElement_constructor_named() {
+    Source source = addSource("/lib.dart", r'''
 class A {
   A.named() {}
 }''');
     _analyzeAll_assertFinished();
-    LibraryElement library = _context.computeLibraryElement(source);
+    LibraryElement library = context.computeLibraryElement(source);
     ClassElement classA = _findClass(library.definingCompilationUnit, "A");
     ConstructorElement constructor = classA.constructors[0];
     ElementLocation location = constructor.location;
-    Element element = _context.getElement(location);
+    Element element = context.getElement(location);
     expect(element, same(constructor));
   }
 
-  void fail_getElement_constructor_unnamed() {
-    Source source = _addSource("/lib.dart", r'''
+  void test_getElement_constructor_unnamed() {
+    Source source = addSource("/lib.dart", r'''
 class A {
   A() {}
 }''');
     _analyzeAll_assertFinished();
-    LibraryElement library = _context.computeLibraryElement(source);
+    LibraryElement library = context.computeLibraryElement(source);
     ClassElement classA = _findClass(library.definingCompilationUnit, "A");
     ConstructorElement constructor = classA.constructors[0];
     ElementLocation location = constructor.location;
-    Element element = _context.getElement(location);
+    Element element = context.getElement(location);
     expect(element, same(constructor));
   }
 
-  void fail_getElement_enum() {
-    Source source = _addSource('/test.dart', 'enum MyEnum {A, B, C}');
+  void test_getElement_enum() {
+    Source source = addSource('/test.dart', 'enum MyEnum {A, B, C}');
     _analyzeAll_assertFinished();
-    LibraryElement library = _context.computeLibraryElement(source);
+    LibraryElement library = context.computeLibraryElement(source);
     ClassElement myEnum = library.definingCompilationUnit.getEnum('MyEnum');
     ElementLocation location = myEnum.location;
-    Element element = _context.getElement(location);
+    Element element = context.getElement(location);
     expect(element, same(myEnum));
   }
 
-  void fail_getErrors_dart_none() {
-    Source source = _addSource("/lib.dart", "library lib;");
-    var errorInfo = _context.getErrors(source);
+  void test_getErrors_dart_none() {
+    Source source = addSource("/lib.dart", "library lib;");
+    var errorInfo = context.getErrors(source);
     expect(errorInfo, isNotNull);
     List<AnalysisError> errors = errorInfo.errors;
     expect(errors, hasLength(0));
-    _context.computeErrors(source);
+    context.computeErrors(source);
     errors = errorInfo.errors;
     expect(errors, hasLength(0));
   }
 
-  void fail_getErrors_dart_some() {
-    Source source = _addSource("/lib.dart", "library 'lib';");
-    var errorInfo = _context.getErrors(source);
+  void test_getErrors_dart_some() {
+    Source source = addSource("/lib.dart", "library 'lib';");
+    var errorInfo = context.getErrors(source);
     expect(errorInfo, isNotNull);
     List<AnalysisError> errors = errorInfo.errors;
     expect(errors, hasLength(0));
-    _context.computeErrors(source);
-    errors = errorInfo.errors;
+    errors = context.computeErrors(source);
     expect(errors, hasLength(1));
   }
 
-  void fail_getErrors_html_none() {
-    Source source = _addSource("/test.html", "<html></html>");
-    AnalysisErrorInfo errorInfo = _context.getErrors(source);
+  void test_getErrors_html_none() {
+    Source source = addSource("/test.html", "<html></html>");
+    AnalysisErrorInfo errorInfo = context.getErrors(source);
     expect(errorInfo, isNotNull);
     List<AnalysisError> errors = errorInfo.errors;
     expect(errors, hasLength(0));
-    _context.computeErrors(source);
+    context.computeErrors(source);
     errors = errorInfo.errors;
     expect(errors, hasLength(0));
   }
 
   void fail_getErrors_html_some() {
-    Source source = _addSource("/test.html", r'''
+    Source source = addSource("/test.html", r'''
 <html><head>
 <script type='application/dart' src='test.dart'/>
 </head></html>''');
-    AnalysisErrorInfo errorInfo = _context.getErrors(source);
+    AnalysisErrorInfo errorInfo = context.getErrors(source);
     expect(errorInfo, isNotNull);
     List<AnalysisError> errors = errorInfo.errors;
     expect(errors, hasLength(0));
-    _context.computeErrors(source);
+    context.computeErrors(source);
     errors = errorInfo.errors;
     expect(errors, hasLength(1));
   }
 
   void fail_getHtmlElement_html() {
-    Source source = _addSource("/test.html", "<html></html>");
-    HtmlElement element = _context.getHtmlElement(source);
+    Source source = addSource("/test.html", "<html></html>");
+    HtmlElement element = context.getHtmlElement(source);
     expect(element, isNull);
-    _context.computeHtmlElement(source);
-    element = _context.getHtmlElement(source);
+    context.computeHtmlElement(source);
+    element = context.getHtmlElement(source);
     expect(element, isNotNull);
   }
 
   void fail_getHtmlFilesReferencing_library() {
-    Source htmlSource = _addSource("/test.html", r'''
+    Source htmlSource = addSource("/test.html", r'''
 <html><head>
 <script type='application/dart' src='test.dart'/>
 <script type='application/dart' src='test.js'/>
 </head></html>''');
-    Source librarySource = _addSource("/test.dart", "library lib;");
-    List<Source> result = _context.getHtmlFilesReferencing(librarySource);
+    Source librarySource = addSource("/test.dart", "library lib;");
+    List<Source> result = context.getHtmlFilesReferencing(librarySource);
     expect(result, hasLength(0));
-    _context.parseHtmlUnit(htmlSource);
-    result = _context.getHtmlFilesReferencing(librarySource);
+    context.parseHtmlUnit(htmlSource);
+    result = context.getHtmlFilesReferencing(librarySource);
     expect(result, hasLength(1));
     expect(result[0], htmlSource);
   }
 
   void fail_getHtmlFilesReferencing_part() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source htmlSource = _addSource("/test.html", r'''
+    Source htmlSource = addSource("/test.html", r'''
 <html><head>
 <script type='application/dart' src='test.dart'/>
 <script type='application/dart' src='test.js'/>
 </head></html>''');
     Source librarySource =
-        _addSource("/test.dart", "library lib; part 'part.dart';");
-    Source partSource = _addSource("/part.dart", "part of lib;");
-    _context.computeLibraryElement(librarySource);
-    List<Source> result = _context.getHtmlFilesReferencing(partSource);
+        addSource("/test.dart", "library lib; part 'part.dart';");
+    Source partSource = addSource("/part.dart", "part of lib;");
+    context.computeLibraryElement(librarySource);
+    List<Source> result = context.getHtmlFilesReferencing(partSource);
     expect(result, hasLength(0));
-    _context.parseHtmlUnit(htmlSource);
-    result = _context.getHtmlFilesReferencing(partSource);
+    context.parseHtmlUnit(htmlSource);
+    result = context.getHtmlFilesReferencing(partSource);
     expect(result, hasLength(1));
     expect(result[0], htmlSource);
   }
 
   void fail_getHtmlSources() {
-    List<Source> sources = _context.htmlSources;
+    List<Source> sources = context.htmlSources;
     expect(sources, hasLength(0));
-    Source source = _addSource("/test.html", "");
-    _context.computeKindOf(source);
-    sources = _context.htmlSources;
+    Source source = addSource("/test.html", "");
+    context.computeKindOf(source);
+    sources = context.htmlSources;
     expect(sources, hasLength(1));
     expect(sources[0], source);
   }
 
-  void fail_getKindOf_html() {
-    Source source = _addSource("/test.html", "");
-    expect(_context.getKindOf(source), same(SourceKind.HTML));
-  }
-
-  void fail_getLibrariesContaining() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source librarySource = _addSource("/lib.dart", r'''
-library lib;
-part 'part.dart';''');
-    Source partSource = _addSource("/part.dart", "part of lib;");
-    _context.computeLibraryElement(librarySource);
-    List<Source> result = _context.getLibrariesContaining(librarySource);
-    expect(result, hasLength(1));
-    expect(result[0], librarySource);
-    result = _context.getLibrariesContaining(partSource);
-    expect(result, hasLength(1));
-    expect(result[0], librarySource);
-  }
-
   void fail_getLibrariesReferencedFromHtml() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source htmlSource = _addSource("/test.html", r'''
+    Source htmlSource = addSource("/test.html", r'''
 <html><head>
 <script type='application/dart' src='test.dart'/>
 <script type='application/dart' src='test.js'/>
 </head></html>''');
-    Source librarySource = _addSource("/test.dart", "library lib;");
-    _context.computeLibraryElement(librarySource);
-    _context.parseHtmlUnit(htmlSource);
-    List<Source> result = _context.getLibrariesReferencedFromHtml(htmlSource);
+    Source librarySource = addSource("/test.dart", "library lib;");
+    context.computeLibraryElement(librarySource);
+    context.parseHtmlUnit(htmlSource);
+    List<Source> result = context.getLibrariesReferencedFromHtml(htmlSource);
     expect(result, hasLength(1));
     expect(result[0], librarySource);
   }
 
-  void fail_getResolvedCompilationUnit_library() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source source = _addSource("/lib.dart", "library libb;");
-    LibraryElement library = _context.computeLibraryElement(source);
-    expect(_context.getResolvedCompilationUnit(source, library), isNotNull);
-    _context.setContents(source, "library lib;");
-    expect(_context.getResolvedCompilationUnit(source, library), isNull);
+  void test_getResolvedCompilationUnit_library() {
+    Source source = addSource("/lib.dart", "library libb;");
+    LibraryElement library = context.computeLibraryElement(source);
+    context.computeErrors(source); // Force the resolved unit to be built.
+    expect(context.getResolvedCompilationUnit(source, library), isNotNull);
+    context.setContents(source, "library lib;");
+    expect(context.getResolvedCompilationUnit(source, library), isNull);
   }
 
   void fail_getResolvedHtmlUnit() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source source = _addSource("/test.html", "<html></html>");
-    expect(_context.getResolvedHtmlUnit(source), isNull);
-    _context.resolveHtmlUnit(source);
-    expect(_context.getResolvedHtmlUnit(source), isNotNull);
+    Source source = addSource("/test.html", "<html></html>");
+    expect(context.getResolvedHtmlUnit(source), isNull);
+    context.resolveHtmlUnit(source);
+    expect(context.getResolvedHtmlUnit(source), isNotNull);
   }
 
   void fail_mergeContext() {
@@ -829,16 +439,16 @@
   }
 
   void fail_parseHtmlUnit_noErrors() {
-    Source source = _addSource("/lib.html", "<html></html>");
-    ht.HtmlUnit unit = _context.parseHtmlUnit(source);
+    Source source = addSource("/lib.html", "<html></html>");
+    ht.HtmlUnit unit = context.parseHtmlUnit(source);
     expect(unit, isNotNull);
   }
 
   void fail_parseHtmlUnit_resolveDirectives() {
-    Source libSource = _addSource("/lib.dart", r'''
+    Source libSource = addSource("/lib.dart", r'''
 library lib;
 class ClassA {}''');
-    Source source = _addSource("/lib.html", r'''
+    Source source = addSource("/lib.html", r'''
 <html>
 <head>
   <script type='application/dart'>
@@ -849,7 +459,7 @@
 <body>
 </body>
 </html>''');
-    ht.HtmlUnit unit = _context.parseHtmlUnit(source);
+    ht.HtmlUnit unit = context.parseHtmlUnit(source);
     expect(unit, isNotNull);
     // import directive should be resolved
     ht.XmlTagNode htmlNode = unit.tagNodes[0];
@@ -861,191 +471,178 @@
     expect(importNode.source, libSource);
   }
 
-  void fail_performAnalysisTask_addPart() {
-    Source libSource = _addSource("/lib.dart", r'''
+  void test_performAnalysisTask_addPart() {
+    Source libSource = addSource("/lib.dart", r'''
 library lib;
 part 'part.dart';''');
     // run all tasks without part
     _analyzeAll_assertFinished();
     // add part and run all tasks
-    Source partSource = _addSource("/part.dart", r'''
+    Source partSource = addSource("/part.dart", r'''
 part of lib;
 ''');
     _analyzeAll_assertFinished();
     // "libSource" should be here
-    List<Source> librariesWithPart =
-        _context.getLibrariesContaining(partSource);
+    List<Source> librariesWithPart = context.getLibrariesContaining(partSource);
     expect(librariesWithPart, unorderedEquals([libSource]));
   }
 
-  void fail_performAnalysisTask_changeLibraryContents() {
+  void test_performAnalysisTask_changeLibraryContents() {
     Source libSource =
-        _addSource("/test.dart", "library lib; part 'test-part.dart';");
-    Source partSource = _addSource("/test-part.dart", "part of lib;");
+        addSource("/test.dart", "library lib; part 'test-part.dart';");
+    Source partSource = addSource("/test-part.dart", "part of lib;");
     _analyzeAll_assertFinished();
-    expect(
-        _context.getResolvedCompilationUnit2(libSource, libSource), isNotNull,
+    expect(context.getResolvedCompilationUnit2(libSource, libSource), isNotNull,
         reason: "library resolved 1");
     expect(
-        _context.getResolvedCompilationUnit2(partSource, libSource), isNotNull,
+        context.getResolvedCompilationUnit2(partSource, libSource), isNotNull,
         reason: "part resolved 1");
     // update and analyze #1
-    _context.setContents(libSource, "library lib;");
-    expect(_context.getResolvedCompilationUnit2(libSource, libSource), isNull,
+    context.setContents(libSource, "library lib;");
+    expect(context.getResolvedCompilationUnit2(libSource, libSource), isNull,
         reason: "library changed 2");
-    expect(_context.getResolvedCompilationUnit2(partSource, libSource), isNull,
+    expect(context.getResolvedCompilationUnit2(partSource, libSource), isNull,
         reason: "part changed 2");
     _analyzeAll_assertFinished();
-    expect(
-        _context.getResolvedCompilationUnit2(libSource, libSource), isNotNull,
+    expect(context.getResolvedCompilationUnit2(libSource, libSource), isNotNull,
         reason: "library resolved 2");
-    expect(_context.getResolvedCompilationUnit2(partSource, libSource), isNull,
+    expect(context.getResolvedCompilationUnit2(partSource, libSource), isNull,
         reason: "part resolved 2");
     // update and analyze #2
-    _context.setContents(libSource, "library lib; part 'test-part.dart';");
-    expect(_context.getResolvedCompilationUnit2(libSource, libSource), isNull,
+    context.setContents(libSource, "library lib; part 'test-part.dart';");
+    expect(context.getResolvedCompilationUnit2(libSource, libSource), isNull,
         reason: "library changed 3");
-    expect(_context.getResolvedCompilationUnit2(partSource, libSource), isNull,
+    expect(context.getResolvedCompilationUnit2(partSource, libSource), isNull,
         reason: "part changed 3");
     _analyzeAll_assertFinished();
-    expect(
-        _context.getResolvedCompilationUnit2(libSource, libSource), isNotNull,
+    expect(context.getResolvedCompilationUnit2(libSource, libSource), isNotNull,
         reason: "library resolved 2");
     expect(
-        _context.getResolvedCompilationUnit2(partSource, libSource), isNotNull,
+        context.getResolvedCompilationUnit2(partSource, libSource), isNotNull,
         reason: "part resolved 3");
   }
 
-  void fail_performAnalysisTask_changeLibraryThenPartContents() {
+  void test_performAnalysisTask_changeLibraryThenPartContents() {
     Source libSource =
-        _addSource("/test.dart", "library lib; part 'test-part.dart';");
-    Source partSource = _addSource("/test-part.dart", "part of lib;");
+        addSource("/test.dart", "library lib; part 'test-part.dart';");
+    Source partSource = addSource("/test-part.dart", "part of lib;");
     _analyzeAll_assertFinished();
-    expect(
-        _context.getResolvedCompilationUnit2(libSource, libSource), isNotNull,
+    expect(context.getResolvedCompilationUnit2(libSource, libSource), isNotNull,
         reason: "library resolved 1");
     expect(
-        _context.getResolvedCompilationUnit2(partSource, libSource), isNotNull,
+        context.getResolvedCompilationUnit2(partSource, libSource), isNotNull,
         reason: "part resolved 1");
     // update and analyze #1
-    _context.setContents(libSource, "library lib;");
-    expect(_context.getResolvedCompilationUnit2(libSource, libSource), isNull,
+    context.setContents(libSource, "library lib;");
+    expect(context.getResolvedCompilationUnit2(libSource, libSource), isNull,
         reason: "library changed 2");
-    expect(_context.getResolvedCompilationUnit2(partSource, libSource), isNull,
+    expect(context.getResolvedCompilationUnit2(partSource, libSource), isNull,
         reason: "part changed 2");
     _analyzeAll_assertFinished();
-    expect(
-        _context.getResolvedCompilationUnit2(libSource, libSource), isNotNull,
+    expect(context.getResolvedCompilationUnit2(libSource, libSource), isNotNull,
         reason: "library resolved 2");
-    expect(_context.getResolvedCompilationUnit2(partSource, libSource), isNull,
+    expect(context.getResolvedCompilationUnit2(partSource, libSource), isNull,
         reason: "part resolved 2");
     // update and analyze #2
-    _context.setContents(partSource, "part of lib; // 1");
+    context.setContents(partSource, "part of lib; // 1");
     // Assert that changing the part's content does not effect the library
     // now that it is no longer part of that library
-    expect(
-        _context.getResolvedCompilationUnit2(libSource, libSource), isNotNull,
+    expect(context.getResolvedCompilationUnit2(libSource, libSource), isNotNull,
         reason: "library changed 3");
-    expect(_context.getResolvedCompilationUnit2(partSource, libSource), isNull,
+    expect(context.getResolvedCompilationUnit2(partSource, libSource), isNull,
         reason: "part changed 3");
     _analyzeAll_assertFinished();
-    expect(
-        _context.getResolvedCompilationUnit2(libSource, libSource), isNotNull,
+    expect(context.getResolvedCompilationUnit2(libSource, libSource), isNotNull,
         reason: "library resolved 3");
-    expect(_context.getResolvedCompilationUnit2(partSource, libSource), isNull,
+    expect(context.getResolvedCompilationUnit2(partSource, libSource), isNull,
         reason: "part resolved 3");
   }
 
-  void fail_performAnalysisTask_changePartContents_makeItAPart() {
-    Source libSource = _addSource("/lib.dart", r'''
+  void test_performAnalysisTask_changePartContents_makeItAPart() {
+    Source libSource = addSource("/lib.dart", r'''
 library lib;
 part 'part.dart';
 void f(x) {}''');
-    Source partSource = _addSource("/part.dart", "void g() { f(null); }");
+    Source partSource = addSource("/part.dart", "void g() { f(null); }");
     _analyzeAll_assertFinished();
-    expect(
-        _context.getResolvedCompilationUnit2(libSource, libSource), isNotNull,
+    expect(context.getResolvedCompilationUnit2(libSource, libSource), isNotNull,
         reason: "library resolved 1");
     expect(
-        _context.getResolvedCompilationUnit2(partSource, libSource), isNotNull,
+        context.getResolvedCompilationUnit2(partSource, libSource), isNotNull,
         reason: "part resolved 1");
     // update and analyze
-    _context.setContents(partSource, r'''
+    context.setContents(partSource, r'''
 part of lib;
 void g() { f(null); }''');
-    expect(_context.getResolvedCompilationUnit2(libSource, libSource), isNull,
+    expect(context.getResolvedCompilationUnit2(libSource, libSource), isNull,
         reason: "library changed 2");
-    expect(_context.getResolvedCompilationUnit2(partSource, libSource), isNull,
+    expect(context.getResolvedCompilationUnit2(partSource, libSource), isNull,
         reason: "part changed 2");
     _analyzeAll_assertFinished();
-    expect(
-        _context.getResolvedCompilationUnit2(libSource, libSource), isNotNull,
+    expect(context.getResolvedCompilationUnit2(libSource, libSource), isNotNull,
         reason: "library resolved 2");
     expect(
-        _context.getResolvedCompilationUnit2(partSource, libSource), isNotNull,
+        context.getResolvedCompilationUnit2(partSource, libSource), isNotNull,
         reason: "part resolved 2");
-    expect(_context.getErrors(libSource).errors, hasLength(0));
-    expect(_context.getErrors(partSource).errors, hasLength(0));
+    expect(context.getErrors(libSource).errors, hasLength(0));
+    expect(context.getErrors(partSource).errors, hasLength(0));
   }
 
   /**
    * https://code.google.com/p/dart/issues/detail?id=12424
    */
-  void fail_performAnalysisTask_changePartContents_makeItNotPart() {
-    Source libSource = _addSource("/lib.dart", r'''
+  void test_performAnalysisTask_changePartContents_makeItNotPart() {
+    Source libSource = addSource("/lib.dart", r'''
 library lib;
 part 'part.dart';
 void f(x) {}''');
-    Source partSource = _addSource("/part.dart", r'''
+    Source partSource = addSource("/part.dart", r'''
 part of lib;
 void g() { f(null); }''');
     _analyzeAll_assertFinished();
-    expect(_context.getErrors(libSource).errors, hasLength(0));
-    expect(_context.getErrors(partSource).errors, hasLength(0));
+    expect(context.getErrors(libSource).errors, hasLength(0));
+    expect(context.getErrors(partSource).errors, hasLength(0));
     // Remove 'part' directive, which should make "f(null)" an error.
-    _context.setContents(partSource, r'''
+    context.setContents(partSource, r'''
 //part of lib;
 void g() { f(null); }''');
     _analyzeAll_assertFinished();
-    expect(_context.getErrors(libSource).errors.length != 0, isTrue);
+    expect(context.getErrors(libSource).errors.length != 0, isTrue);
   }
 
-  void fail_performAnalysisTask_changePartContents_noSemanticChanges() {
+  void test_performAnalysisTask_changePartContents_noSemanticChanges() {
     Source libSource =
-        _addSource("/test.dart", "library lib; part 'test-part.dart';");
-    Source partSource = _addSource("/test-part.dart", "part of lib;");
+        addSource("/test.dart", "library lib; part 'test-part.dart';");
+    Source partSource = addSource("/test-part.dart", "part of lib;");
     _analyzeAll_assertFinished();
-    expect(
-        _context.getResolvedCompilationUnit2(libSource, libSource), isNotNull,
+    expect(context.getResolvedCompilationUnit2(libSource, libSource), isNotNull,
         reason: "library resolved 1");
     expect(
-        _context.getResolvedCompilationUnit2(partSource, libSource), isNotNull,
+        context.getResolvedCompilationUnit2(partSource, libSource), isNotNull,
         reason: "part resolved 1");
     // update and analyze #1
-    _context.setContents(partSource, "part of lib; // 1");
-    expect(_context.getResolvedCompilationUnit2(libSource, libSource), isNull,
+    context.setContents(partSource, "part of lib; // 1");
+    expect(context.getResolvedCompilationUnit2(libSource, libSource), isNull,
         reason: "library changed 2");
-    expect(_context.getResolvedCompilationUnit2(partSource, libSource), isNull,
+    expect(context.getResolvedCompilationUnit2(partSource, libSource), isNull,
         reason: "part changed 2");
     _analyzeAll_assertFinished();
-    expect(
-        _context.getResolvedCompilationUnit2(libSource, libSource), isNotNull,
+    expect(context.getResolvedCompilationUnit2(libSource, libSource), isNotNull,
         reason: "library resolved 2");
     expect(
-        _context.getResolvedCompilationUnit2(partSource, libSource), isNotNull,
+        context.getResolvedCompilationUnit2(partSource, libSource), isNotNull,
         reason: "part resolved 2");
     // update and analyze #2
-    _context.setContents(partSource, "part of lib; // 12");
-    expect(_context.getResolvedCompilationUnit2(libSource, libSource), isNull,
+    context.setContents(partSource, "part of lib; // 12");
+    expect(context.getResolvedCompilationUnit2(libSource, libSource), isNull,
         reason: "library changed 3");
-    expect(_context.getResolvedCompilationUnit2(partSource, libSource), isNull,
+    expect(context.getResolvedCompilationUnit2(partSource, libSource), isNull,
         reason: "part changed 3");
     _analyzeAll_assertFinished();
-    expect(
-        _context.getResolvedCompilationUnit2(libSource, libSource), isNotNull,
+    expect(context.getResolvedCompilationUnit2(libSource, libSource), isNotNull,
         reason: "library resolved 3");
     expect(
-        _context.getResolvedCompilationUnit2(partSource, libSource), isNotNull,
+        context.getResolvedCompilationUnit2(partSource, libSource), isNotNull,
         reason: "part resolved 3");
   }
 
@@ -1055,11 +652,11 @@
     {
       ChangeSet changeSet = new ChangeSet();
       changeSet.addedSource(source);
-      _context.applyChanges(changeSet);
+      context.applyChanges(changeSet);
     }
     // prepare errors
     _analyzeAll_assertFinished();
-    List<AnalysisError> errors = _context.getErrors(source).errors;
+    List<AnalysisError> errors = context.getErrors(source).errors;
     // validate errors
     expect(errors, hasLength(1));
     AnalysisError error = errors[0];
@@ -1073,11 +670,11 @@
     {
       ChangeSet changeSet = new ChangeSet();
       changeSet.addedSource(source);
-      _context.applyChanges(changeSet);
+      context.applyChanges(changeSet);
     }
     // prepare errors
     _analyzeAll_assertFinished();
-    List<AnalysisError> errors = _context.getErrors(source).errors;
+    List<AnalysisError> errors = context.getErrors(source).errors;
     // validate errors
     expect(errors, hasLength(1));
     AnalysisError error = errors[0];
@@ -1087,44 +684,44 @@
 
   void fail_performAnalysisTask_importedLibraryAdd() {
     Source libASource =
-        _addSource("/libA.dart", "library libA; import 'libB.dart';");
+        addSource("/libA.dart", "library libA; import 'libB.dart';");
     _analyzeAll_assertFinished();
     expect(
-        _context.getResolvedCompilationUnit2(libASource, libASource), isNotNull,
+        context.getResolvedCompilationUnit2(libASource, libASource), isNotNull,
         reason: "libA resolved 1");
-    expect(_hasAnalysisErrorWithErrorSeverity(_context.getErrors(libASource)),
+    expect(_hasAnalysisErrorWithErrorSeverity(context.getErrors(libASource)),
         isTrue, reason: "libA has an error");
     // add libB.dart and analyze
-    Source libBSource = _addSource("/libB.dart", "library libB;");
+    Source libBSource = addSource("/libB.dart", "library libB;");
     _analyzeAll_assertFinished();
     expect(
-        _context.getResolvedCompilationUnit2(libASource, libASource), isNotNull,
+        context.getResolvedCompilationUnit2(libASource, libASource), isNotNull,
         reason: "libA resolved 2");
     expect(
-        _context.getResolvedCompilationUnit2(libBSource, libBSource), isNotNull,
+        context.getResolvedCompilationUnit2(libBSource, libBSource), isNotNull,
         reason: "libB resolved 2");
-    expect(!_hasAnalysisErrorWithErrorSeverity(_context.getErrors(libASource)),
+    expect(!_hasAnalysisErrorWithErrorSeverity(context.getErrors(libASource)),
         isTrue, reason: "libA doesn't have errors");
   }
 
   void fail_performAnalysisTask_importedLibraryAdd_html() {
-    Source htmlSource = _addSource("/page.html", r'''
+    Source htmlSource = addSource("/page.html", r'''
 <html><body><script type="application/dart">
   import '/libB.dart';
   main() {print('hello dart');}
 </script></body></html>''');
     _analyzeAll_assertFinished();
-    expect(_context.getResolvedHtmlUnit(htmlSource), isNotNull,
+    expect(context.getResolvedHtmlUnit(htmlSource), isNotNull,
         reason: "htmlUnit resolved 1");
-    expect(_hasAnalysisErrorWithErrorSeverity(_context.getErrors(htmlSource)),
+    expect(_hasAnalysisErrorWithErrorSeverity(context.getErrors(htmlSource)),
         isTrue, reason: "htmlSource has an error");
     // add libB.dart and analyze
-    Source libBSource = _addSource("/libB.dart", "library libB;");
+    Source libBSource = addSource("/libB.dart", "library libB;");
     _analyzeAll_assertFinished();
-    expect(_context.getResolvedHtmlUnit(htmlSource), isNotNull,
+    expect(context.getResolvedHtmlUnit(htmlSource), isNotNull,
         reason: "htmlUnit resolved 1");
     expect(
-        _context.getResolvedCompilationUnit2(libBSource, libBSource), isNotNull,
+        context.getResolvedCompilationUnit2(libBSource, libBSource), isNotNull,
         reason: "libB resolved 2");
     // TODO (danrubel) commented out to fix red bots
 //    AnalysisErrorInfo errors = _context.getErrors(htmlSource);
@@ -1136,56 +733,56 @@
 
   void fail_performAnalysisTask_importedLibraryDelete() {
     Source libASource =
-        _addSource("/libA.dart", "library libA; import 'libB.dart';");
-    Source libBSource = _addSource("/libB.dart", "library libB;");
+        addSource("/libA.dart", "library libA; import 'libB.dart';");
+    Source libBSource = addSource("/libB.dart", "library libB;");
     _analyzeAll_assertFinished();
     expect(
-        _context.getResolvedCompilationUnit2(libASource, libASource), isNotNull,
+        context.getResolvedCompilationUnit2(libASource, libASource), isNotNull,
         reason: "libA resolved 1");
     expect(
-        _context.getResolvedCompilationUnit2(libBSource, libBSource), isNotNull,
+        context.getResolvedCompilationUnit2(libBSource, libBSource), isNotNull,
         reason: "libB resolved 1");
-    expect(!_hasAnalysisErrorWithErrorSeverity(_context.getErrors(libASource)),
+    expect(!_hasAnalysisErrorWithErrorSeverity(context.getErrors(libASource)),
         isTrue, reason: "libA doesn't have errors");
     // remove libB.dart content and analyze
-    _context.setContents(libBSource, null);
+    context.setContents(libBSource, null);
     _analyzeAll_assertFinished();
     expect(
-        _context.getResolvedCompilationUnit2(libASource, libASource), isNotNull,
+        context.getResolvedCompilationUnit2(libASource, libASource), isNotNull,
         reason: "libA resolved 2");
-    expect(_hasAnalysisErrorWithErrorSeverity(_context.getErrors(libASource)),
+    expect(_hasAnalysisErrorWithErrorSeverity(context.getErrors(libASource)),
         isTrue, reason: "libA has an error");
   }
 
   void fail_performAnalysisTask_importedLibraryDelete_html() {
     // NOTE: This was failing before converting to the new task model.
-    Source htmlSource = _addSource("/page.html", r'''
+    Source htmlSource = addSource("/page.html", r'''
 <html><body><script type="application/dart">
   import 'libB.dart';
   main() {print('hello dart');}
 </script></body></html>''');
-    Source libBSource = _addSource("/libB.dart", "library libB;");
+    Source libBSource = addSource("/libB.dart", "library libB;");
     _analyzeAll_assertFinished();
-    expect(_context.getResolvedHtmlUnit(htmlSource), isNotNull,
+    expect(context.getResolvedHtmlUnit(htmlSource), isNotNull,
         reason: "htmlUnit resolved 1");
     expect(
-        _context.getResolvedCompilationUnit2(libBSource, libBSource), isNotNull,
+        context.getResolvedCompilationUnit2(libBSource, libBSource), isNotNull,
         reason: "libB resolved 1");
-    expect(!_hasAnalysisErrorWithErrorSeverity(_context.getErrors(htmlSource)),
+    expect(!_hasAnalysisErrorWithErrorSeverity(context.getErrors(htmlSource)),
         isTrue, reason: "htmlSource doesn't have errors");
     // remove libB.dart content and analyze
-    _context.setContents(libBSource, null);
+    context.setContents(libBSource, null);
     _analyzeAll_assertFinished();
-    expect(_context.getResolvedHtmlUnit(htmlSource), isNotNull,
+    expect(context.getResolvedHtmlUnit(htmlSource), isNotNull,
         reason: "htmlUnit resolved 1");
-    AnalysisErrorInfo errors = _context.getErrors(htmlSource);
+    AnalysisErrorInfo errors = context.getErrors(htmlSource);
     expect(_hasAnalysisErrorWithErrorSeverity(errors), isTrue,
         reason: "htmlSource has an error");
   }
 
   void fail_performAnalysisTask_IOException() {
     TestSource source = _addSourceWithException2("/test.dart", "library test;");
-    int oldTimestamp = _context.getModificationStamp(source);
+    int oldTimestamp = context.getModificationStamp(source);
     source.generateExceptionOnRead = false;
     _analyzeAll_assertFinished();
     expect(source.readCount, 1);
@@ -1194,16 +791,16 @@
       _changeSource(source, "");
       // Ensure that the timestamp differs,
       // so that analysis engine notices the change
-    } while (oldTimestamp == _context.getModificationStamp(source));
+    } while (oldTimestamp == context.getModificationStamp(source));
     _analyzeAll_assertFinished();
     expect(source.readCount, 2);
   }
 
   void fail_performAnalysisTask_missingPart() {
     Source source =
-        _addSource("/test.dart", "library lib; part 'no-such-file.dart';");
+        addSource("/test.dart", "library lib; part 'no-such-file.dart';");
     _analyzeAll_assertFinished();
-    expect(_context.getLibraryElement(source), isNotNull,
+    expect(context.getLibraryElement(source), isNotNull,
         reason: "performAnalysisTask failed to compute an element model");
   }
 
@@ -1212,12 +809,11 @@
   }
 
   void fail_resolveCompilationUnit_import_relative() {
-    _context = contextWithCore();
     Source sourceA =
-        _addSource("/libA.dart", "library libA; import 'libB.dart'; class A{}");
-    _addSource("/libB.dart", "library libB; class B{}");
+        addSource("/libA.dart", "library libA; import 'libB.dart'; class A{}");
+    addSource("/libB.dart", "library libB; class B{}");
     CompilationUnit compilationUnit =
-        _context.resolveCompilationUnit2(sourceA, sourceA);
+        context.resolveCompilationUnit2(sourceA, sourceA);
     expect(compilationUnit, isNotNull);
     LibraryElement library = compilationUnit.element.library;
     List<LibraryElement> importedLibraries = library.importedLibraries;
@@ -1227,12 +823,11 @@
   }
 
   void fail_resolveCompilationUnit_import_relative_cyclic() {
-    _context = contextWithCore();
     Source sourceA =
-        _addSource("/libA.dart", "library libA; import 'libB.dart'; class A{}");
-    _addSource("/libB.dart", "library libB; import 'libA.dart'; class B{}");
+        addSource("/libA.dart", "library libA; import 'libB.dart'; class A{}");
+    addSource("/libB.dart", "library libB; import 'libA.dart'; class B{}");
     CompilationUnit compilationUnit =
-        _context.resolveCompilationUnit2(sourceA, sourceA);
+        context.resolveCompilationUnit2(sourceA, sourceA);
     expect(compilationUnit, isNotNull);
     LibraryElement library = compilationUnit.element.library;
     List<LibraryElement> importedLibraries = library.importedLibraries;
@@ -1242,70 +837,68 @@
   }
 
   void fail_resolveHtmlUnit() {
-    Source source = _addSource("/lib.html", "<html></html>");
-    ht.HtmlUnit unit = _context.resolveHtmlUnit(source);
+    Source source = addSource("/lib.html", "<html></html>");
+    ht.HtmlUnit unit = context.resolveHtmlUnit(source);
     expect(unit, isNotNull);
   }
 
   void fail_setAnalysisOptions_reduceAnalysisPriorityOrder() {
     AnalysisOptionsImpl options =
-        new AnalysisOptionsImpl.con1(_context.analysisOptions);
+        new AnalysisOptionsImpl.from(context.analysisOptions);
     List<Source> sources = new List<Source>();
     for (int index = 0; index < options.cacheSize; index++) {
-      sources.add(_addSource("/lib.dart$index", ""));
+      sources.add(addSource("/lib.dart$index", ""));
     }
-    _context.analysisPriorityOrder = sources;
-    int oldPriorityOrderSize = _getPriorityOrder(_context).length;
+    context.analysisPriorityOrder = sources;
+    int oldPriorityOrderSize = _getPriorityOrder(context).length;
     options.cacheSize = options.cacheSize - 10;
-    _context.analysisOptions = options;
-    expect(oldPriorityOrderSize > _getPriorityOrder(_context).length, isTrue);
+    context.analysisOptions = options;
+    expect(oldPriorityOrderSize > _getPriorityOrder(context).length, isTrue);
   }
 
   void fail_setAnalysisPriorityOrder_lessThanCacheSize() {
-    AnalysisOptions options = _context.analysisOptions;
+    AnalysisOptions options = context.analysisOptions;
     List<Source> sources = new List<Source>();
     for (int index = 0; index < options.cacheSize; index++) {
-      sources.add(_addSource("/lib.dart$index", ""));
+      sources.add(addSource("/lib.dart$index", ""));
     }
-    _context.analysisPriorityOrder = sources;
-    expect(options.cacheSize > _getPriorityOrder(_context).length, isTrue);
+    context.analysisPriorityOrder = sources;
+    expect(options.cacheSize > _getPriorityOrder(context).length, isTrue);
   }
 
   Future fail_setChangedContents_libraryWithPart() {
     AnalysisOptionsImpl options = new AnalysisOptionsImpl();
     options.incremental = true;
-    _context = new AnalysisContextForTests();
-    _context.analysisOptions = options;
+    context.analysisOptions = options;
     SourcesChangedListener listener = new SourcesChangedListener();
-    _context.onSourcesChanged.listen(listener.onData);
-    _sourceFactory = _context.sourceFactory;
+    context.onSourcesChanged.listen(listener.onData);
     String oldCode = r'''
 library lib;
 part 'part.dart';
 int a = 0;''';
-    Source librarySource = _addSource("/lib.dart", oldCode);
+    Source librarySource = addSource("/lib.dart", oldCode);
     String partContents = r'''
 part of lib;
 int b = a;''';
-    Source partSource = _addSource("/part.dart", partContents);
-    LibraryElement element = _context.computeLibraryElement(librarySource);
+    Source partSource = addSource("/part.dart", partContents);
+    LibraryElement element = context.computeLibraryElement(librarySource);
     CompilationUnit unit =
-        _context.getResolvedCompilationUnit(librarySource, element);
+        context.getResolvedCompilationUnit(librarySource, element);
     expect(unit, isNotNull);
     int offset = oldCode.indexOf("int a") + 4;
     String newCode = r'''
 library lib;
 part 'part.dart';
 int ya = 0;''';
-    expect(_getIncrementalAnalysisCache(_context), isNull);
-    _context.setChangedContents(librarySource, newCode, offset, 0, 1);
-    expect(_context.getContents(librarySource).data, newCode);
+    expect(_getIncrementalAnalysisCache(context), isNull);
+    context.setChangedContents(librarySource, newCode, offset, 0, 1);
+    expect(context.getContents(librarySource).data, newCode);
     IncrementalAnalysisCache incrementalCache =
-        _getIncrementalAnalysisCache(_context);
+        _getIncrementalAnalysisCache(context);
     expect(incrementalCache.librarySource, librarySource);
     expect(incrementalCache.resolvedUnit, same(unit));
-    expect(_context.getResolvedCompilationUnit2(partSource, librarySource),
-        isNull);
+    expect(
+        context.getResolvedCompilationUnit2(partSource, librarySource), isNull);
     expect(incrementalCache.newContents, newCode);
     return pumpEventQueue().then((_) {
       listener.assertEvent(wereSourcesAdded: true);
@@ -1317,30 +910,28 @@
     });
   }
 
-  void fail_setContents_unchanged_consistentModificationTime() {
+  void test_setContents_unchanged_consistentModificationTime() {
     String contents = "// foo";
-    Source source = _addSource("/test.dart", contents);
+    Source source = addSource("/test.dart", contents);
     // do all, no tasks
     _analyzeAll_assertFinished();
     {
-      AnalysisResult result = _context.performAnalysisTask();
+      AnalysisResult result = context.performAnalysisTask();
       expect(result.changeNotices, isNull);
     }
     // set the same contents, still no tasks
-    _context.setContents(source, contents);
+    context.setContents(source, contents);
     {
-      AnalysisResult result = _context.performAnalysisTask();
+      AnalysisResult result = context.performAnalysisTask();
       expect(result.changeNotices, isNull);
     }
   }
 
   void fail_unreadableSource() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source test1 = _addSource("/test1.dart", r'''
+    Source test1 = addSource("/test1.dart", r'''
 import 'test2.dart';
 library test1;''');
-    Source test2 = _addSource("/test2.dart", r'''
+    Source test2 = addSource("/test2.dart", r'''
 import 'test1.dart';
 import 'test3.dart';
 library test2;''');
@@ -1348,48 +939,27 @@
     _analyzeAll_assertFinished();
     // test1 and test2 should have been successfully analyzed
     // despite the fact that test3 couldn't be read.
-    expect(_context.computeLibraryElement(test1), isNotNull);
-    expect(_context.computeLibraryElement(test2), isNotNull);
-    expect(_context.computeLibraryElement(test3), isNull);
-  }
-
-  @override
-  void setUp() {
-    EnginePlugin enginePlugin = AnalysisEngine.instance.enginePlugin;
-    if (enginePlugin.taskExtensionPoint == null) {
-      ExtensionManager manager = new ExtensionManager();
-      manager.processPlugins([enginePlugin]);
-    }
-
-    _context = new AnalysisContextImpl();
-    _sourceFactory = new SourceFactory([
-      new DartUriResolver(DirectoryBasedDartSdk.defaultSdk),
-      new FileUriResolver()
-    ]);
-    _context.sourceFactory = _sourceFactory;
-    AnalysisOptionsImpl options =
-        new AnalysisOptionsImpl.con1(_context.analysisOptions);
-    options.cacheSize = 256;
-    _context.analysisOptions = options;
+    expect(context.computeLibraryElement(test1), isNotNull);
+    expect(context.computeLibraryElement(test2), isNotNull);
+    expect(context.computeLibraryElement(test3), isNull);
   }
 
   @override
   void tearDown() {
-    _context = null;
-    _sourceFactory = null;
+    context = null;
+    sourceFactory = null;
     super.tearDown();
   }
 
   Future test_applyChanges_add() {
     SourcesChangedListener listener = new SourcesChangedListener();
-    _context.onSourcesChanged.listen(listener.onData);
-    expect(_context.sourcesNeedingProcessing.isEmpty, isTrue);
-    Source source =
-        new FileBasedSource.con1(FileUtilities2.createFile("/test.dart"));
+    context.onSourcesChanged.listen(listener.onData);
+    expect(context.sourcesNeedingProcessing, isEmpty);
+    Source source = newSource('/test.dart');
     ChangeSet changeSet = new ChangeSet();
     changeSet.addedSource(source);
-    _context.applyChanges(changeSet);
-    expect(_context.sourcesNeedingProcessing.contains(source), isTrue);
+    context.applyChanges(changeSet);
+    expect(context.sourcesNeedingProcessing, contains(source));
     return pumpEventQueue().then((_) {
       listener.assertEvent(wereSourcesAdded: true);
       listener.assertNoMoreEvents();
@@ -1398,20 +968,18 @@
 
   Future test_applyChanges_change() {
     SourcesChangedListener listener = new SourcesChangedListener();
-    _context.onSourcesChanged.listen(listener.onData);
-    expect(_context.sourcesNeedingProcessing.isEmpty, isTrue);
-    Source source =
-        new FileBasedSource.con1(FileUtilities2.createFile("/test.dart"));
+    context.onSourcesChanged.listen(listener.onData);
+    expect(context.sourcesNeedingProcessing, isEmpty);
+    Source source = newSource('/test.dart');
     ChangeSet changeSet1 = new ChangeSet();
     changeSet1.addedSource(source);
-    _context.applyChanges(changeSet1);
-    expect(_context.sourcesNeedingProcessing.contains(source), isTrue);
-    Source source2 =
-        new FileBasedSource.con1(FileUtilities2.createFile("/test2.dart"));
+    context.applyChanges(changeSet1);
+    expect(context.sourcesNeedingProcessing, contains(source));
+    Source source2 = newSource('/test2.dart');
     ChangeSet changeSet2 = new ChangeSet();
     changeSet2.addedSource(source2);
     changeSet2.changedSource(source);
-    _context.applyChanges(changeSet2);
+    context.applyChanges(changeSet2);
     return pumpEventQueue().then((_) {
       listener.assertEvent(wereSourcesAdded: true);
       listener.assertEvent(wereSourcesAdded: true, changedSources: [source]);
@@ -1421,20 +989,18 @@
 
   Future test_applyChanges_change_content() {
     SourcesChangedListener listener = new SourcesChangedListener();
-    _context.onSourcesChanged.listen(listener.onData);
-    expect(_context.sourcesNeedingProcessing.isEmpty, isTrue);
-    Source source =
-        new FileBasedSource.con1(FileUtilities2.createFile("/test.dart"));
+    context.onSourcesChanged.listen(listener.onData);
+    expect(context.sourcesNeedingProcessing, isEmpty);
+    Source source = newSource('/test.dart');
     ChangeSet changeSet1 = new ChangeSet();
     changeSet1.addedSource(source);
-    _context.applyChanges(changeSet1);
-    expect(_context.sourcesNeedingProcessing.contains(source), isTrue);
-    Source source2 =
-        new FileBasedSource.con1(FileUtilities2.createFile("/test2.dart"));
+    context.applyChanges(changeSet1);
+    expect(context.sourcesNeedingProcessing, contains(source));
+    Source source2 = newSource('/test2.dart');
     ChangeSet changeSet2 = new ChangeSet();
     changeSet2.addedSource(source2);
     changeSet2.changedContent(source, 'library test;');
-    _context.applyChanges(changeSet2);
+    context.applyChanges(changeSet2);
     return pumpEventQueue().then((_) {
       listener.assertEvent(wereSourcesAdded: true);
       listener.assertEvent(wereSourcesAdded: true, changedSources: [source]);
@@ -1443,48 +1009,44 @@
   }
 
   void test_applyChanges_change_flush_element() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source librarySource = _addSource("/lib.dart", r'''
+    Source librarySource = addSource("/lib.dart", r'''
 library lib;
 int a = 0;''');
-    expect(_context.computeLibraryElement(librarySource), isNotNull);
-    _context.setContents(librarySource, r'''
+    expect(context.computeLibraryElement(librarySource), isNotNull);
+    context.setContents(librarySource, r'''
 library lib;
 int aa = 0;''');
-    expect(_context.getLibraryElement(librarySource), isNull);
+    expect(context.getLibraryElement(librarySource), isNull);
   }
 
   Future test_applyChanges_change_multiple() {
-    _context = contextWithCore();
     SourcesChangedListener listener = new SourcesChangedListener();
-    _context.onSourcesChanged.listen(listener.onData);
-    _sourceFactory = _context.sourceFactory;
+    context.onSourcesChanged.listen(listener.onData);
     String libraryContents1 = r'''
 library lib;
 part 'part.dart';
 int a = 0;''';
-    Source librarySource = _addSource("/lib.dart", libraryContents1);
+    Source librarySource = addSource("/lib.dart", libraryContents1);
     String partContents1 = r'''
 part of lib;
 int b = a;''';
-    Source partSource = _addSource("/part.dart", partContents1);
-    _context.computeLibraryElement(librarySource);
+    Source partSource = addSource("/part.dart", partContents1);
+    context.computeLibraryElement(librarySource);
     String libraryContents2 = r'''
 library lib;
 part 'part.dart';
 int aa = 0;''';
-    _context.setContents(librarySource, libraryContents2);
+    context.setContents(librarySource, libraryContents2);
     String partContents2 = r'''
 part of lib;
 int b = aa;''';
-    _context.setContents(partSource, partContents2);
-    _context.computeLibraryElement(librarySource);
+    context.setContents(partSource, partContents2);
+    context.computeLibraryElement(librarySource);
     CompilationUnit libraryUnit =
-        _context.resolveCompilationUnit2(librarySource, librarySource);
+        context.resolveCompilationUnit2(librarySource, librarySource);
     expect(libraryUnit, isNotNull);
     CompilationUnit partUnit =
-        _context.resolveCompilationUnit2(partSource, librarySource);
+        context.resolveCompilationUnit2(partSource, librarySource);
     expect(partUnit, isNotNull);
     TopLevelVariableDeclaration declaration =
         libraryUnit.declarations[0] as TopLevelVariableDeclaration;
@@ -1508,20 +1070,18 @@
 
   Future test_applyChanges_change_range() {
     SourcesChangedListener listener = new SourcesChangedListener();
-    _context.onSourcesChanged.listen(listener.onData);
-    expect(_context.sourcesNeedingProcessing.isEmpty, isTrue);
-    Source source =
-        new FileBasedSource.con1(FileUtilities2.createFile("/test.dart"));
+    context.onSourcesChanged.listen(listener.onData);
+    expect(context.sourcesNeedingProcessing, isEmpty);
+    Source source = newSource('/test.dart');
     ChangeSet changeSet1 = new ChangeSet();
     changeSet1.addedSource(source);
-    _context.applyChanges(changeSet1);
-    expect(_context.sourcesNeedingProcessing.contains(source), isTrue);
-    Source source2 =
-        new FileBasedSource.con1(FileUtilities2.createFile("/test2.dart"));
+    context.applyChanges(changeSet1);
+    expect(context.sourcesNeedingProcessing, contains(source));
+    Source source2 = newSource('/test2.dart');
     ChangeSet changeSet2 = new ChangeSet();
     changeSet2.addedSource(source2);
     changeSet2.changedRange(source, 'library test;', 0, 0, 13);
-    _context.applyChanges(changeSet2);
+    context.applyChanges(changeSet2);
     return pumpEventQueue().then((_) {
       listener.assertEvent(wereSourcesAdded: true);
       listener.assertEvent(wereSourcesAdded: true, changedSources: [source]);
@@ -1530,136 +1090,128 @@
   }
 
   void test_computeDocumentationComment_block() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
     String comment = "/** Comment */";
-    Source source = _addSource("/test.dart", """
+    Source source = addSource("/test.dart", """
 $comment
 class A {}""");
-    LibraryElement libraryElement = _context.computeLibraryElement(source);
+    LibraryElement libraryElement = context.computeLibraryElement(source);
     expect(libraryElement, isNotNull);
     ClassElement classElement = libraryElement.definingCompilationUnit.types[0];
     expect(libraryElement, isNotNull);
-    expect(_context.computeDocumentationComment(classElement), comment);
+    expect(context.computeDocumentationComment(classElement), comment);
   }
 
   void test_computeDocumentationComment_none() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source source = _addSource("/test.dart", "class A {}");
-    LibraryElement libraryElement = _context.computeLibraryElement(source);
+    Source source = addSource("/test.dart", "class A {}");
+    LibraryElement libraryElement = context.computeLibraryElement(source);
     expect(libraryElement, isNotNull);
     ClassElement classElement = libraryElement.definingCompilationUnit.types[0];
     expect(libraryElement, isNotNull);
-    expect(_context.computeDocumentationComment(classElement), isNull);
+    expect(context.computeDocumentationComment(classElement), isNull);
   }
 
   void test_computeDocumentationComment_null() {
-    expect(_context.computeDocumentationComment(null), isNull);
+    expect(context.computeDocumentationComment(null), isNull);
   }
 
   void test_computeDocumentationComment_singleLine_multiple_EOL_n() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
     String comment = "/// line 1\n/// line 2\n/// line 3\n";
-    Source source = _addSource("/test.dart", "${comment}class A {}");
-    LibraryElement libraryElement = _context.computeLibraryElement(source);
+    Source source = addSource("/test.dart", "${comment}class A {}");
+    LibraryElement libraryElement = context.computeLibraryElement(source);
     expect(libraryElement, isNotNull);
     ClassElement classElement = libraryElement.definingCompilationUnit.types[0];
     expect(libraryElement, isNotNull);
-    String actual = _context.computeDocumentationComment(classElement);
+    String actual = context.computeDocumentationComment(classElement);
     expect(actual, "/// line 1\n/// line 2\n/// line 3");
   }
 
   void test_computeDocumentationComment_singleLine_multiple_EOL_rn() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
     String comment = "/// line 1\r\n/// line 2\r\n/// line 3\r\n";
-    Source source = _addSource("/test.dart", "${comment}class A {}");
-    LibraryElement libraryElement = _context.computeLibraryElement(source);
+    Source source = addSource("/test.dart", "${comment}class A {}");
+    LibraryElement libraryElement = context.computeLibraryElement(source);
     expect(libraryElement, isNotNull);
     ClassElement classElement = libraryElement.definingCompilationUnit.types[0];
     expect(libraryElement, isNotNull);
-    String actual = _context.computeDocumentationComment(classElement);
+    String actual = context.computeDocumentationComment(classElement);
     expect(actual, "/// line 1\n/// line 2\n/// line 3");
   }
 
   void test_computeExportedLibraries_none() {
-    Source source = _addSource("/test.dart", "library test;");
-    expect(_context.computeExportedLibraries(source), hasLength(0));
+    Source source = addSource("/test.dart", "library test;");
+    expect(context.computeExportedLibraries(source), hasLength(0));
   }
 
   void test_computeExportedLibraries_some() {
     //    addSource("/lib1.dart", "library lib1;");
     //    addSource("/lib2.dart", "library lib2;");
-    Source source = _addSource(
+    Source source = addSource(
         "/test.dart", "library test; export 'lib1.dart'; export 'lib2.dart';");
-    expect(_context.computeExportedLibraries(source), hasLength(2));
+    expect(context.computeExportedLibraries(source), hasLength(2));
   }
 
   void test_computeHtmlElement_nonHtml() {
-    Source source = _addSource("/test.dart", "library test;");
-    expect(_context.computeHtmlElement(source), isNull);
+    Source source = addSource("/test.dart", "library test;");
+    expect(context.computeHtmlElement(source), isNull);
+  }
+
+  void test_computeKindOf_html() {
+    Source source = addSource("/test.html", "");
+    expect(context.computeKindOf(source), same(SourceKind.HTML));
   }
 
   void test_computeKindOf_library() {
-    Source source = _addSource("/test.dart", "library lib;");
-    expect(_context.computeKindOf(source), same(SourceKind.LIBRARY));
+    Source source = addSource("/test.dart", "library lib;");
+    expect(context.computeKindOf(source), same(SourceKind.LIBRARY));
   }
 
   void test_computeKindOf_libraryAndPart() {
-    Source source = _addSource("/test.dart", "library lib; part of lib;");
-    expect(_context.computeKindOf(source), same(SourceKind.LIBRARY));
+    Source source = addSource("/test.dart", "library lib; part of lib;");
+    expect(context.computeKindOf(source), same(SourceKind.LIBRARY));
   }
 
   void test_computeKindOf_part() {
-    Source source = _addSource("/test.dart", "part of lib;");
-    expect(_context.computeKindOf(source), same(SourceKind.PART));
+    Source source = addSource("/test.dart", "part of lib;");
+    expect(context.computeKindOf(source), same(SourceKind.PART));
   }
 
   void test_computeLibraryElement() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source source = _addSource("/test.dart", "library lib;");
-    LibraryElement element = _context.computeLibraryElement(source);
+    Source source = addSource("/test.dart", "library lib;");
+    LibraryElement element = context.computeLibraryElement(source);
     expect(element, isNotNull);
   }
 
   void test_computeLineInfo_dart() {
-    Source source = _addSource("/test.dart", r'''
+    Source source = addSource("/test.dart", r'''
 library lib;
 
 main() {}''');
-    LineInfo info = _context.computeLineInfo(source);
+    LineInfo info = context.computeLineInfo(source);
     expect(info, isNotNull);
   }
 
   void test_computeLineInfo_html() {
-    Source source = _addSource("/test.html", r'''
+    Source source = addSource("/test.html", r'''
 <html>
   <body>
     <h1>A</h1>
   </body>
 </html>''');
-    LineInfo info = _context.computeLineInfo(source);
+    LineInfo info = context.computeLineInfo(source);
     expect(info, isNotNull);
   }
 
   Future test_computeResolvedCompilationUnitAsync_afterDispose() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source source = _addSource("/lib.dart", "library lib;");
+    Source source = addSource("/lib.dart", "library lib;");
     // Complete all pending analysis tasks and flush the AST so that it won't
     // be available immediately.
     _performPendingAnalysisTasks();
-    CacheEntry entry = _context.getReadableSourceEntryOrNull(source);
-    entry.flushAstStructures();
+    _flushAst(source);
     // Dispose of the context.
-    _context.dispose();
+    context.dispose();
     // Any attempt to start an asynchronous computation should return a future
     // which completes with error.
     CancelableFuture<CompilationUnit> future =
-        _context.computeResolvedCompilationUnitAsync(source, source);
+        context.computeResolvedCompilationUnitAsync(source, source);
     bool completed = false;
     future.then((CompilationUnit unit) {
       fail('Future should have completed with error');
@@ -1673,268 +1225,344 @@
   }
 
   void test_dispose() {
-    expect(_context.isDisposed, isFalse);
-    _context.dispose();
-    expect(_context.isDisposed, isTrue);
+    expect(context.isDisposed, isFalse);
+    context.dispose();
+    expect(context.isDisposed, isTrue);
+  }
+
+  void test_ensureResolvedDartUnits_definingUnit_hasResolved() {
+    Source source = addSource('/test.dart', '');
+    LibrarySpecificUnit libTarget = new LibrarySpecificUnit(source, source);
+    analysisDriver.computeResult(libTarget, RESOLVED_UNIT);
+    CompilationUnit unit =
+        context.getCacheEntry(libTarget).getValue(RESOLVED_UNIT);
+    List<CompilationUnit> units = context.ensureResolvedDartUnits(source);
+    expect(units, unorderedEquals([unit]));
+  }
+
+  void test_ensureResolvedDartUnits_definingUnit_notResolved() {
+    Source source = addSource('/test.dart', '');
+    LibrarySpecificUnit libTarget = new LibrarySpecificUnit(source, source);
+    analysisDriver.computeResult(libTarget, RESOLVED_UNIT);
+    // flush
+    context.getCacheEntry(libTarget).setState(
+        RESOLVED_UNIT, CacheState.FLUSHED);
+    // schedule recomputing
+    List<CompilationUnit> units = context.ensureResolvedDartUnits(source);
+    expect(units, isNull);
+    // should be the next result to compute
+    TargetedResult nextResult = context.dartWorkManager.getNextResult();
+    expect(nextResult.target, libTarget);
+    expect(nextResult.result, RESOLVED_UNIT);
+  }
+
+  void test_ensureResolvedDartUnits_partUnit_notResolved() {
+    Source libSource1 = addSource('/lib1.dart', r'''
+library lib;
+part 'part.dart';
+''');
+    Source libSource2 = addSource('/lib2.dart', r'''
+library lib;
+part 'part.dart';
+''');
+    Source partSource = addSource('/part.dart', r'''
+part of lib;
+''');
+    LibrarySpecificUnit partTarget1 =
+        new LibrarySpecificUnit(libSource1, partSource);
+    LibrarySpecificUnit partTarget2 =
+        new LibrarySpecificUnit(libSource2, partSource);
+    analysisDriver.computeResult(partTarget1, RESOLVED_UNIT);
+    analysisDriver.computeResult(partTarget2, RESOLVED_UNIT);
+    // flush
+    context.getCacheEntry(partTarget1).setState(
+        RESOLVED_UNIT, CacheState.FLUSHED);
+    context.getCacheEntry(partTarget2).setState(
+        RESOLVED_UNIT, CacheState.FLUSHED);
+    // schedule recomputing
+    List<CompilationUnit> units = context.ensureResolvedDartUnits(partSource);
+    expect(units, isNull);
+    // should be the next result to compute
+    TargetedResult nextResult = context.dartWorkManager.getNextResult();
+    expect(nextResult.target, anyOf(partTarget1, partTarget2));
+    expect(nextResult.result, RESOLVED_UNIT);
+  }
+
+  void test_ensureResolvedDartUnits_partUnit_hasResolved() {
+    Source libSource1 = addSource('/lib1.dart', r'''
+library lib;
+part 'part.dart';
+''');
+    Source libSource2 = addSource('/lib2.dart', r'''
+library lib;
+part 'part.dart';
+''');
+    Source partSource = addSource('/part.dart', r'''
+part of lib;
+''');
+    LibrarySpecificUnit partTarget1 =
+        new LibrarySpecificUnit(libSource1, partSource);
+    LibrarySpecificUnit partTarget2 =
+        new LibrarySpecificUnit(libSource2, partSource);
+    analysisDriver.computeResult(partTarget1, RESOLVED_UNIT);
+    analysisDriver.computeResult(partTarget2, RESOLVED_UNIT);
+    CompilationUnit unit1 =
+        context.getCacheEntry(partTarget1).getValue(RESOLVED_UNIT);
+    CompilationUnit unit2 =
+        context.getCacheEntry(partTarget2).getValue(RESOLVED_UNIT);
+    List<CompilationUnit> units = context.ensureResolvedDartUnits(partSource);
+    expect(units, unorderedEquals([unit1, unit2]));
   }
 
   void test_exists_false() {
     TestSource source = new TestSource();
     source.exists2 = false;
-    expect(_context.exists(source), isFalse);
+    expect(context.exists(source), isFalse);
   }
 
   void test_exists_null() {
-    expect(_context.exists(null), isFalse);
+    expect(context.exists(null), isFalse);
   }
 
   void test_exists_overridden() {
     Source source = new TestSource();
-    _context.setContents(source, "");
-    expect(_context.exists(source), isTrue);
+    context.setContents(source, "");
+    expect(context.exists(source), isTrue);
   }
 
   void test_exists_true() {
-    expect(_context.exists(new AnalysisContextImplTest_Source_exists_true()),
+    expect(context.exists(new AnalysisContextImplTest_Source_exists_true()),
         isTrue);
   }
 
   void test_getAnalysisOptions() {
-    expect(_context.analysisOptions, isNotNull);
+    expect(context.analysisOptions, isNotNull);
   }
 
   void test_getContents_fromSource() {
     String content = "library lib;";
     TimestampedData<String> contents =
-        _context.getContents(new TestSource('/test.dart', content));
+        context.getContents(new TestSource('/test.dart', content));
     expect(contents.data.toString(), content);
   }
 
   void test_getContents_overridden() {
     String content = "library lib;";
     Source source = new TestSource();
-    _context.setContents(source, content);
-    TimestampedData<String> contents = _context.getContents(source);
+    context.setContents(source, content);
+    TimestampedData<String> contents = context.getContents(source);
     expect(contents.data.toString(), content);
   }
 
   void test_getContents_unoverridden() {
     String content = "library lib;";
     Source source = new TestSource('/test.dart', content);
-    _context.setContents(source, "part of lib;");
-    _context.setContents(source, null);
-    TimestampedData<String> contents = _context.getContents(source);
+    context.setContents(source, "part of lib;");
+    context.setContents(source, null);
+    TimestampedData<String> contents = context.getContents(source);
     expect(contents.data.toString(), content);
   }
 
   void test_getDeclaredVariables() {
-    _context = contextWithCore();
-    expect(_context.declaredVariables, isNotNull);
+    expect(context.declaredVariables, isNotNull);
   }
 
   void test_getElement() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
     LibraryElement core =
-        _context.computeLibraryElement(_sourceFactory.forUri("dart:core"));
+        context.computeLibraryElement(sourceFactory.forUri("dart:core"));
     expect(core, isNotNull);
     ClassElement classObject =
         _findClass(core.definingCompilationUnit, "Object");
     expect(classObject, isNotNull);
     ElementLocation location = classObject.location;
-    Element element = _context.getElement(location);
+    Element element = context.getElement(location);
     expect(element, same(classObject));
   }
 
   void test_getHtmlElement_dart() {
-    Source source = _addSource("/test.dart", "");
-    expect(_context.getHtmlElement(source), isNull);
-    expect(_context.computeHtmlElement(source), isNull);
-    expect(_context.getHtmlElement(source), isNull);
+    Source source = addSource("/test.dart", "");
+    expect(context.getHtmlElement(source), isNull);
+    expect(context.computeHtmlElement(source), isNull);
+    expect(context.getHtmlElement(source), isNull);
   }
 
   void test_getHtmlFilesReferencing_html() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source htmlSource = _addSource("/test.html", r'''
+    Source htmlSource = addSource("/test.html", r'''
 <html><head>
 <script type='application/dart' src='test.dart'/>
 <script type='application/dart' src='test.js'/>
 </head></html>''');
-    Source librarySource = _addSource("/test.dart", "library lib;");
-    Source secondHtmlSource = _addSource("/test.html", "<html></html>");
-    _context.computeLibraryElement(librarySource);
-    List<Source> result = _context.getHtmlFilesReferencing(secondHtmlSource);
+    Source librarySource = addSource("/test.dart", "library lib;");
+    Source secondHtmlSource = addSource("/test.html", "<html></html>");
+    context.computeLibraryElement(librarySource);
+    List<Source> result = context.getHtmlFilesReferencing(secondHtmlSource);
     expect(result, hasLength(0));
-    _context.parseHtmlUnit(htmlSource);
-    result = _context.getHtmlFilesReferencing(secondHtmlSource);
+    context.parseHtmlUnit(htmlSource);
+    result = context.getHtmlFilesReferencing(secondHtmlSource);
     expect(result, hasLength(0));
   }
 
+  void test_getKindOf_html() {
+    Source source = addSource("/test.html", "");
+    expect(context.getKindOf(source), same(SourceKind.HTML));
+  }
+
   void test_getKindOf_library() {
-    Source source = _addSource("/test.dart", "library lib;");
-    expect(_context.getKindOf(source), same(SourceKind.UNKNOWN));
-    _context.computeKindOf(source);
-    expect(_context.getKindOf(source), same(SourceKind.LIBRARY));
+    Source source = addSource("/test.dart", "library lib;");
+    expect(context.getKindOf(source), same(SourceKind.UNKNOWN));
+    context.computeKindOf(source);
+    expect(context.getKindOf(source), same(SourceKind.LIBRARY));
   }
 
   void test_getKindOf_part() {
-    Source source = _addSource("/test.dart", "part of lib;");
-    expect(_context.getKindOf(source), same(SourceKind.UNKNOWN));
-    _context.computeKindOf(source);
-    expect(_context.getKindOf(source), same(SourceKind.PART));
+    Source source = addSource("/test.dart", "part of lib;");
+    expect(context.getKindOf(source), same(SourceKind.UNKNOWN));
+    context.computeKindOf(source);
+    expect(context.getKindOf(source), same(SourceKind.PART));
   }
 
   void test_getKindOf_unknown() {
-    Source source = _addSource("/test.css", "");
-    expect(_context.getKindOf(source), same(SourceKind.UNKNOWN));
+    Source source = addSource("/test.css", "");
+    expect(context.getKindOf(source), same(SourceKind.UNKNOWN));
   }
 
   void test_getLaunchableClientLibrarySources_doesNotImportHtml() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source source = _addSource("/test.dart", r'''
+    Source source = addSource("/test.dart", r'''
 main() {}''');
-    _context.computeLibraryElement(source);
-    List<Source> sources = _context.launchableClientLibrarySources;
+    context.computeLibraryElement(source);
+    List<Source> sources = context.launchableClientLibrarySources;
     expect(sources, isEmpty);
   }
 
   void test_getLaunchableClientLibrarySources_importsHtml_explicitly() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    List<Source> sources = _context.launchableClientLibrarySources;
+    List<Source> sources = context.launchableClientLibrarySources;
     expect(sources, isEmpty);
-    Source source = _addSource("/test.dart", r'''
+    Source source = addSource("/test.dart", r'''
 import 'dart:html';
 main() {}''');
-    _context.computeLibraryElement(source);
-    sources = _context.launchableClientLibrarySources;
+    context.computeLibraryElement(source);
+    sources = context.launchableClientLibrarySources;
     expect(sources, unorderedEquals([source]));
   }
 
   void test_getLaunchableClientLibrarySources_importsHtml_implicitly() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    List<Source> sources = _context.launchableClientLibrarySources;
+    List<Source> sources = context.launchableClientLibrarySources;
     expect(sources, isEmpty);
-    _addSource("/a.dart", r'''
+    addSource("/a.dart", r'''
 import 'dart:html';
 ''');
-    Source source = _addSource("/test.dart", r'''
+    Source source = addSource("/test.dart", r'''
 import 'a.dart';
 main() {}''');
-    _context.computeLibraryElement(source);
-    sources = _context.launchableClientLibrarySources;
+    context.computeLibraryElement(source);
+    sources = context.launchableClientLibrarySources;
     expect(sources, unorderedEquals([source]));
   }
 
   void test_getLaunchableClientLibrarySources_importsHtml_implicitly2() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    List<Source> sources = _context.launchableClientLibrarySources;
+    List<Source> sources = context.launchableClientLibrarySources;
     expect(sources, isEmpty);
-    _addSource("/a.dart", r'''
+    addSource("/a.dart", r'''
 export 'dart:html';
 ''');
-    Source source = _addSource("/test.dart", r'''
+    Source source = addSource("/test.dart", r'''
 import 'a.dart';
 main() {}''');
-    _context.computeLibraryElement(source);
-    sources = _context.launchableClientLibrarySources;
+    context.computeLibraryElement(source);
+    sources = context.launchableClientLibrarySources;
     expect(sources, unorderedEquals([source]));
   }
 
   void test_getLaunchableServerLibrarySources() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    expect(_context.launchableServerLibrarySources, isEmpty);
-    Source source = _addSource("/test.dart", "main() {}");
-    _context.computeLibraryElement(source);
-    expect(_context.launchableServerLibrarySources, unorderedEquals([source]));
+    expect(context.launchableServerLibrarySources, isEmpty);
+    Source source = addSource("/test.dart", "main() {}");
+    context.computeLibraryElement(source);
+    expect(context.launchableServerLibrarySources, unorderedEquals([source]));
   }
 
   void test_getLaunchableServerLibrarySources_importsHtml_explicitly() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source source = _addSource("/test.dart", r'''
+    Source source = addSource("/test.dart", r'''
 import 'dart:html';
 main() {}
 ''');
-    _context.computeLibraryElement(source);
-    expect(_context.launchableServerLibrarySources, isEmpty);
+    context.computeLibraryElement(source);
+    expect(context.launchableServerLibrarySources, isEmpty);
   }
 
   void test_getLaunchableServerLibrarySources_importsHtml_implicitly() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    _addSource("/imports_html.dart", r'''
+    addSource("/imports_html.dart", r'''
 import 'dart:html';
 ''');
-    Source source = _addSource("/test.dart", r'''
+    Source source = addSource("/test.dart", r'''
 import 'imports_html.dart';
 main() {}''');
-    _context.computeLibraryElement(source);
-    expect(_context.launchableServerLibrarySources, isEmpty);
+    context.computeLibraryElement(source);
+    expect(context.launchableServerLibrarySources, isEmpty);
   }
 
   void test_getLaunchableServerLibrarySources_noMain() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source source = _addSource("/test.dart", '');
-    _context.computeLibraryElement(source);
-    expect(_context.launchableServerLibrarySources, isEmpty);
+    Source source = addSource("/test.dart", '');
+    context.computeLibraryElement(source);
+    expect(context.launchableServerLibrarySources, isEmpty);
+  }
+
+  void test_getLibrariesContaining() {
+    Source librarySource = addSource("/lib.dart", r'''
+library lib;
+part 'part.dart';''');
+    Source partSource = addSource("/part.dart", "part of lib;");
+    context.computeLibraryElement(librarySource);
+    List<Source> result = context.getLibrariesContaining(librarySource);
+    expect(result, hasLength(1));
+    expect(result[0], librarySource);
+    result = context.getLibrariesContaining(partSource);
+    expect(result, hasLength(1));
+    expect(result[0], librarySource);
   }
 
   void test_getLibrariesDependingOn() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source libASource = _addSource("/libA.dart", "library libA;");
-    _addSource("/libB.dart", "library libB;");
-    Source lib1Source = _addSource("/lib1.dart", r'''
+    Source libASource = addSource("/libA.dart", "library libA;");
+    addSource("/libB.dart", "library libB;");
+    Source lib1Source = addSource("/lib1.dart", r'''
 library lib1;
 import 'libA.dart';
 export 'libB.dart';''');
-    Source lib2Source = _addSource("/lib2.dart", r'''
+    Source lib2Source = addSource("/lib2.dart", r'''
 library lib2;
 import 'libB.dart';
 export 'libA.dart';''');
-    _context.computeLibraryElement(lib1Source);
-    _context.computeLibraryElement(lib2Source);
-    List<Source> result = _context.getLibrariesDependingOn(libASource);
+    context.computeLibraryElement(lib1Source);
+    context.computeLibraryElement(lib2Source);
+    List<Source> result = context.getLibrariesDependingOn(libASource);
     expect(result, unorderedEquals([lib1Source, lib2Source]));
   }
 
   void test_getLibrariesReferencedFromHtml_no() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source htmlSource = _addSource("/test.html", r'''
+    Source htmlSource = addSource("/test.html", r'''
 <html><head>
 <script type='application/dart' src='test.js'/>
 </head></html>''');
-    _addSource("/test.dart", "library lib;");
-    _context.parseHtmlUnit(htmlSource);
-    List<Source> result = _context.getLibrariesReferencedFromHtml(htmlSource);
+    addSource("/test.dart", "library lib;");
+    context.parseHtmlUnit(htmlSource);
+    List<Source> result = context.getLibrariesReferencedFromHtml(htmlSource);
     expect(result, hasLength(0));
   }
 
   void test_getLibraryElement() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source source = _addSource("/test.dart", "library lib;");
-    LibraryElement element = _context.getLibraryElement(source);
+    Source source = addSource("/test.dart", "library lib;");
+    LibraryElement element = context.getLibraryElement(source);
     expect(element, isNull);
-    _context.computeLibraryElement(source);
-    element = _context.getLibraryElement(source);
+    context.computeLibraryElement(source);
+    element = context.getLibraryElement(source);
     expect(element, isNotNull);
   }
 
   void test_getLibrarySources() {
-    List<Source> sources = _context.librarySources;
+    List<Source> sources = context.librarySources;
     int originalLength = sources.length;
-    Source source = _addSource("/test.dart", "library lib;");
-    _context.computeKindOf(source);
-    sources = _context.librarySources;
+    Source source = addSource("/test.dart", "library lib;");
+    context.computeKindOf(source);
+    sources = context.librarySources;
     expect(sources, hasLength(originalLength + 1));
     for (Source returnedSource in sources) {
       if (returnedSource == source) {
@@ -1945,20 +1573,20 @@
   }
 
   void test_getLineInfo() {
-    Source source = _addSource("/test.dart", r'''
+    Source source = addSource("/test.dart", r'''
 library lib;
 
 main() {}''');
-    LineInfo info = _context.getLineInfo(source);
+    LineInfo info = context.getLineInfo(source);
     expect(info, isNull);
-    _context.parseCompilationUnit(source);
-    info = _context.getLineInfo(source);
+    context.parseCompilationUnit(source);
+    info = context.getLineInfo(source);
     expect(info, isNotNull);
   }
 
   void test_getModificationStamp_fromSource() {
     int stamp = 42;
-    expect(_context.getModificationStamp(
+    expect(context.getModificationStamp(
         new AnalysisContextImplTest_Source_getModificationStamp_fromSource(
             stamp)), stamp);
   }
@@ -1968,49 +1596,41 @@
     Source source =
         new AnalysisContextImplTest_Source_getModificationStamp_overridden(
             stamp);
-    _context.setContents(source, "");
-    expect(stamp != _context.getModificationStamp(source), isTrue);
+    context.setContents(source, "");
+    expect(stamp != context.getModificationStamp(source), isTrue);
   }
 
   void test_getPublicNamespace_element() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source source = _addSource("/test.dart", "class A {}");
-    LibraryElement library = _context.computeLibraryElement(source);
+    Source source = addSource("/test.dart", "class A {}");
+    LibraryElement library = context.computeLibraryElement(source);
     expect(library, isNotNull);
-    Namespace namespace = _context.getPublicNamespace(library);
+    Namespace namespace = context.getPublicNamespace(library);
     expect(namespace, isNotNull);
     EngineTestCase.assertInstanceOf(
         (obj) => obj is ClassElement, ClassElement, namespace.get("A"));
   }
 
   void test_getResolvedCompilationUnit_library_null() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source source = _addSource("/lib.dart", "library lib;");
-    expect(_context.getResolvedCompilationUnit(source, null), isNull);
+    Source source = addSource("/lib.dart", "library lib;");
+    expect(context.getResolvedCompilationUnit(source, null), isNull);
   }
 
   void test_getResolvedCompilationUnit_source_dart() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source source = _addSource("/lib.dart", "library lib;");
-    expect(_context.getResolvedCompilationUnit2(source, source), isNull);
-    _context.resolveCompilationUnit2(source, source);
-    expect(_context.getResolvedCompilationUnit2(source, source), isNotNull);
+    Source source = addSource("/lib.dart", "library lib;");
+    expect(context.getResolvedCompilationUnit2(source, source), isNull);
+    context.resolveCompilationUnit2(source, source);
+    expect(context.getResolvedCompilationUnit2(source, source), isNotNull);
   }
 
   void test_getResolvedCompilationUnit_source_html() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source source = _addSource("/test.html", "<html></html>");
-    expect(_context.getResolvedCompilationUnit2(source, source), isNull);
-    expect(_context.resolveCompilationUnit2(source, source), isNull);
-    expect(_context.getResolvedCompilationUnit2(source, source), isNull);
+    Source source = addSource("/test.html", "<html></html>");
+    expect(context.getResolvedCompilationUnit2(source, source), isNull);
+    expect(context.resolveCompilationUnit2(source, source), isNull);
+    expect(context.getResolvedCompilationUnit2(source, source), isNull);
   }
 
   void test_getSourceFactory() {
-    expect(_context.sourceFactory, same(_sourceFactory));
+    expect(context.sourceFactory, same(sourceFactory));
   }
 
   void test_getSourcesWithFullName() {
@@ -2028,13 +1648,12 @@
     expected.add(source2);
     changeSet.addedSource(source2);
 
-    _context.applyChanges(changeSet);
-    expect(
-        _context.getSourcesWithFullName(filePath), unorderedEquals(expected));
+    context.applyChanges(changeSet);
+    expect(context.getSourcesWithFullName(filePath), unorderedEquals(expected));
   }
 
   void test_getStatistics() {
-    AnalysisContextStatistics statistics = _context.statistics;
+    AnalysisContextStatistics statistics = context.statistics;
     expect(statistics, isNotNull);
     // The following lines are fragile.
     // The values depend on the number of libraries in the SDK.
@@ -2044,48 +1663,44 @@
   }
 
   void test_isClientLibrary_dart() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source source = _addSource("/test.dart", r'''
+    Source source = addSource("/test.dart", r'''
 import 'dart:html';
 
 main() {}''');
-    expect(_context.isClientLibrary(source), isFalse);
-    expect(_context.isServerLibrary(source), isFalse);
-    _context.computeLibraryElement(source);
-    expect(_context.isClientLibrary(source), isTrue);
-    expect(_context.isServerLibrary(source), isFalse);
+    expect(context.isClientLibrary(source), isFalse);
+    expect(context.isServerLibrary(source), isFalse);
+    context.computeLibraryElement(source);
+    expect(context.isClientLibrary(source), isTrue);
+    expect(context.isServerLibrary(source), isFalse);
   }
 
   void test_isClientLibrary_html() {
-    Source source = _addSource("/test.html", "<html></html>");
-    expect(_context.isClientLibrary(source), isFalse);
+    Source source = addSource("/test.html", "<html></html>");
+    expect(context.isClientLibrary(source), isFalse);
   }
 
   void test_isServerLibrary_dart() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source source = _addSource("/test.dart", r'''
+    Source source = addSource("/test.dart", r'''
 library lib;
 
 main() {}''');
-    expect(_context.isClientLibrary(source), isFalse);
-    expect(_context.isServerLibrary(source), isFalse);
-    _context.computeLibraryElement(source);
-    expect(_context.isClientLibrary(source), isFalse);
-    expect(_context.isServerLibrary(source), isTrue);
+    expect(context.isClientLibrary(source), isFalse);
+    expect(context.isServerLibrary(source), isFalse);
+    context.computeLibraryElement(source);
+    expect(context.isClientLibrary(source), isFalse);
+    expect(context.isServerLibrary(source), isTrue);
   }
 
   void test_isServerLibrary_html() {
-    Source source = _addSource("/test.html", "<html></html>");
-    expect(_context.isServerLibrary(source), isFalse);
+    Source source = addSource("/test.html", "<html></html>");
+    expect(context.isServerLibrary(source), isFalse);
   }
 
   void test_parseCompilationUnit_errors() {
-    Source source = _addSource("/lib.dart", "library {");
-    CompilationUnit compilationUnit = _context.parseCompilationUnit(source);
+    Source source = addSource("/lib.dart", "library {");
+    CompilationUnit compilationUnit = context.parseCompilationUnit(source);
     expect(compilationUnit, isNotNull);
-    var errorInfo = _context.getErrors(source);
+    var errorInfo = context.getErrors(source);
     expect(errorInfo, isNotNull);
     List<AnalysisError> errors = errorInfo.errors;
     expect(errors, isNotNull);
@@ -2095,7 +1710,7 @@
   void test_parseCompilationUnit_exception() {
     Source source = _addSourceWithException("/test.dart");
     try {
-      _context.parseCompilationUnit(source);
+      context.parseCompilationUnit(source);
       fail("Expected AnalysisException");
     } on AnalysisException {
       // Expected
@@ -2103,19 +1718,30 @@
   }
 
   void test_parseCompilationUnit_html() {
-    Source source = _addSource("/test.html", "<html></html>");
-    expect(_context.parseCompilationUnit(source), isNull);
+    Source source = addSource("/test.html", "<html></html>");
+    expect(context.parseCompilationUnit(source), isNull);
   }
 
   void test_parseCompilationUnit_noErrors() {
-    Source source = _addSource("/lib.dart", "library lib;");
-    CompilationUnit compilationUnit = _context.parseCompilationUnit(source);
+    Source source = addSource("/lib.dart", "library lib;");
+    CompilationUnit compilationUnit = context.parseCompilationUnit(source);
     expect(compilationUnit, isNotNull);
-    AnalysisErrorInfo errorInfo = _context.getErrors(source);
+    AnalysisErrorInfo errorInfo = context.getErrors(source);
     expect(errorInfo, isNotNull);
     expect(errorInfo.errors, hasLength(0));
   }
 
+  void test_parseCompilationUnit_nonExistentSource() {
+    Source source = newSource('/test.dart');
+    resourceProvider.deleteFile('/test.dart');
+    try {
+      context.parseCompilationUnit(source);
+      fail("Expected AnalysisException because file does not exist");
+    } on AnalysisException {
+      // Expected result
+    }
+  }
+
 //  void test_resolveCompilationUnit_sourceChangeDuringResolution() {
 //    _context = new _AnalysisContext_sourceChangeDuringResolution();
 //    AnalysisContextFactory.initContextWithCore(_context);
@@ -2127,17 +1753,6 @@
 //    expect(_context.getLineInfo(source), isNotNull);
 //  }
 
-  void test_parseCompilationUnit_nonExistentSource() {
-    Source source =
-        new FileBasedSource.con1(FileUtilities2.createFile("/test.dart"));
-    try {
-      _context.parseCompilationUnit(source);
-      fail("Expected AnalysisException because file does not exist");
-    } on AnalysisException {
-      // Expected result
-    }
-  }
-
   void test_performAnalysisTask_modifiedAfterParse() {
     // TODO(scheglov) no threads in Dart
 //    Source source = _addSource("/test.dart", "library lib;");
@@ -2157,22 +1772,18 @@
   }
 
   void test_resolveCompilationUnit_library() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source source = _addSource("/lib.dart", "library lib;");
-    LibraryElement library = _context.computeLibraryElement(source);
+    Source source = addSource("/lib.dart", "library lib;");
+    LibraryElement library = context.computeLibraryElement(source);
     CompilationUnit compilationUnit =
-        _context.resolveCompilationUnit(source, library);
+        context.resolveCompilationUnit(source, library);
     expect(compilationUnit, isNotNull);
     expect(compilationUnit.element, isNotNull);
   }
 
   void test_resolveCompilationUnit_source() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source source = _addSource("/lib.dart", "library lib;");
+    Source source = addSource("/lib.dart", "library lib;");
     CompilationUnit compilationUnit =
-        _context.resolveCompilationUnit2(source, source);
+        context.resolveCompilationUnit2(source, source);
     expect(compilationUnit, isNotNull);
   }
 
@@ -2181,70 +1792,66 @@
     options.cacheSize = 42;
     options.dart2jsHint = false;
     options.hint = false;
-    _context.analysisOptions = options;
-    AnalysisOptions result = _context.analysisOptions;
+    context.analysisOptions = options;
+    AnalysisOptions result = context.analysisOptions;
     expect(result.cacheSize, options.cacheSize);
     expect(result.dart2jsHint, options.dart2jsHint);
     expect(result.hint, options.hint);
   }
 
   void test_setAnalysisPriorityOrder_empty() {
-    _context.analysisPriorityOrder = new List<Source>();
+    context.analysisPriorityOrder = new List<Source>();
   }
 
   void test_setAnalysisPriorityOrder_nonEmpty() {
     List<Source> sources = new List<Source>();
-    sources.add(_addSource("/lib.dart", "library lib;"));
-    _context.analysisPriorityOrder = sources;
+    sources.add(addSource("/lib.dart", "library lib;"));
+    context.analysisPriorityOrder = sources;
   }
 
   void test_setChangedContents_notResolved() {
-    _context = contextWithCore();
     AnalysisOptionsImpl options =
-        new AnalysisOptionsImpl.con1(_context.analysisOptions);
+        new AnalysisOptionsImpl.from(context.analysisOptions);
     options.incremental = true;
-    _context.analysisOptions = options;
-    _sourceFactory = _context.sourceFactory;
+    context.analysisOptions = options;
     String oldCode = r'''
 library lib;
 int a = 0;''';
-    Source librarySource = _addSource("/lib.dart", oldCode);
+    Source librarySource = addSource("/lib.dart", oldCode);
     int offset = oldCode.indexOf("int a") + 4;
     String newCode = r'''
 library lib;
 int ya = 0;''';
-    _context.setChangedContents(librarySource, newCode, offset, 0, 1);
-    expect(_context.getContents(librarySource).data, newCode);
-    expect(_getIncrementalAnalysisCache(_context), isNull);
+    context.setChangedContents(librarySource, newCode, offset, 0, 1);
+    expect(context.getContents(librarySource).data, newCode);
+    expect(_getIncrementalAnalysisCache(context), isNull);
   }
 
   Future test_setContents_libraryWithPart() {
-    _context = contextWithCore();
     SourcesChangedListener listener = new SourcesChangedListener();
-    _context.onSourcesChanged.listen(listener.onData);
-    _sourceFactory = _context.sourceFactory;
+    context.onSourcesChanged.listen(listener.onData);
     String libraryContents1 = r'''
 library lib;
 part 'part.dart';
 int a = 0;''';
-    Source librarySource = _addSource("/lib.dart", libraryContents1);
+    Source librarySource = addSource("/lib.dart", libraryContents1);
     String partContents1 = r'''
 part of lib;
 int b = a;''';
-    Source partSource = _addSource("/part.dart", partContents1);
-    _context.computeLibraryElement(librarySource);
+    Source partSource = addSource("/part.dart", partContents1);
+    context.computeLibraryElement(librarySource);
     IncrementalAnalysisCache incrementalCache = new IncrementalAnalysisCache(
         librarySource, librarySource, null, null, null, 0, 0, 0);
-    _setIncrementalAnalysisCache(_context, incrementalCache);
-    expect(_getIncrementalAnalysisCache(_context), same(incrementalCache));
+    _setIncrementalAnalysisCache(context, incrementalCache);
+    expect(_getIncrementalAnalysisCache(context), same(incrementalCache));
     String libraryContents2 = r'''
 library lib;
 part 'part.dart';
 int aa = 0;''';
-    _context.setContents(librarySource, libraryContents2);
-    expect(_context.getResolvedCompilationUnit2(partSource, librarySource),
-        isNull);
-    expect(_getIncrementalAnalysisCache(_context), isNull);
+    context.setContents(librarySource, libraryContents2);
+    expect(
+        context.getResolvedCompilationUnit2(partSource, librarySource), isNull);
+    expect(_getIncrementalAnalysisCache(context), isNull);
     return pumpEventQueue().then((_) {
       listener.assertEvent(wereSourcesAdded: true);
       listener.assertEvent(changedSources: [librarySource]);
@@ -2256,54 +1863,48 @@
   }
 
   void test_setContents_null() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source librarySource = _addSource("/lib.dart", r'''
+    Source librarySource = addSource("/lib.dart", r'''
 library lib;
 int a = 0;''');
-    _context.computeLibraryElement(librarySource);
+    context.computeLibraryElement(librarySource);
     IncrementalAnalysisCache incrementalCache = new IncrementalAnalysisCache(
         librarySource, librarySource, null, null, null, 0, 0, 0);
-    _setIncrementalAnalysisCache(_context, incrementalCache);
-    expect(_getIncrementalAnalysisCache(_context), same(incrementalCache));
-    _context.setContents(librarySource, null);
-    expect(_context.getResolvedCompilationUnit2(librarySource, librarySource),
+    _setIncrementalAnalysisCache(context, incrementalCache);
+    expect(_getIncrementalAnalysisCache(context), same(incrementalCache));
+    context.setContents(librarySource, null);
+    expect(context.getResolvedCompilationUnit2(librarySource, librarySource),
         isNull);
-    expect(_getIncrementalAnalysisCache(_context), isNull);
+    expect(_getIncrementalAnalysisCache(context), isNull);
   }
 
   void test_setSourceFactory() {
-    expect(_context.sourceFactory, _sourceFactory);
+    expect(context.sourceFactory, sourceFactory);
     SourceFactory factory = new SourceFactory([]);
-    _context.sourceFactory = factory;
-    expect(_context.sourceFactory, factory);
+    context.sourceFactory = factory;
+    expect(context.sourceFactory, factory);
   }
 
   void test_updateAnalysis() {
-    expect(_context.sourcesNeedingProcessing.isEmpty, isTrue);
-    Source source =
-        new FileBasedSource.con1(FileUtilities2.createFile("/test.dart"));
+    expect(context.sourcesNeedingProcessing, isEmpty);
+    Source source = newSource('/test.dart');
     AnalysisDelta delta = new AnalysisDelta();
     delta.setAnalysisLevel(source, AnalysisLevel.ALL);
-    _context.applyAnalysisDelta(delta);
-    expect(_context.sourcesNeedingProcessing.contains(source), isTrue);
+    context.applyAnalysisDelta(delta);
+    expect(context.sourcesNeedingProcessing, contains(source));
     delta = new AnalysisDelta();
     delta.setAnalysisLevel(source, AnalysisLevel.NONE);
-    _context.applyAnalysisDelta(delta);
-    expect(_context.sourcesNeedingProcessing.contains(source), isFalse);
+    context.applyAnalysisDelta(delta);
+    expect(context.sourcesNeedingProcessing.contains(source), isFalse);
   }
 
   Future xtest_computeResolvedCompilationUnitAsync() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source source = _addSource("/lib.dart", "library lib;");
+    Source source = addSource("/lib.dart", "library lib;");
     // Complete all pending analysis tasks and flush the AST so that it won't
     // be available immediately.
     _performPendingAnalysisTasks();
-    CacheEntry entry = _context.getReadableSourceEntryOrNull(source);
-    entry.flushAstStructures();
+    _flushAst(source);
     bool completed = false;
-    _context
+    context
         .computeResolvedCompilationUnitAsync(source, source)
         .then((CompilationUnit unit) {
       expect(unit, isNotNull);
@@ -2318,16 +1919,13 @@
   }
 
   Future xtest_computeResolvedCompilationUnitAsync_cancel() {
-    _context = contextWithCore();
-    _sourceFactory = _context.sourceFactory;
-    Source source = _addSource("/lib.dart", "library lib;");
+    Source source = addSource("/lib.dart", "library lib;");
     // Complete all pending analysis tasks and flush the AST so that it won't
     // be available immediately.
     _performPendingAnalysisTasks();
-    CacheEntry entry = _context.getReadableSourceEntryOrNull(source);
-    entry.flushAstStructures();
+    _flushAst(source);
     CancelableFuture<CompilationUnit> future =
-        _context.computeResolvedCompilationUnitAsync(source, source);
+        context.computeResolvedCompilationUnitAsync(source, source);
     bool completed = false;
     future.then((CompilationUnit unit) {
       fail('Future should have been canceled');
@@ -2336,55 +1934,45 @@
       completed = true;
     });
     expect(completed, isFalse);
-    expect(_context.pendingFutureSources_forTesting, isNotEmpty);
+    expect(context.pendingFutureSources_forTesting, isNotEmpty);
     future.cancel();
-    expect(_context.pendingFutureSources_forTesting, isEmpty);
+    expect(context.pendingFutureSources_forTesting, isEmpty);
     return pumpEventQueue().then((_) {
       expect(completed, isTrue);
-      expect(_context.pendingFutureSources_forTesting, isEmpty);
+      expect(context.pendingFutureSources_forTesting, isEmpty);
     });
   }
 
   void xtest_performAnalysisTask_stress() {
     int maxCacheSize = 4;
     AnalysisOptionsImpl options =
-        new AnalysisOptionsImpl.con1(_context.analysisOptions);
+        new AnalysisOptionsImpl.from(context.analysisOptions);
     options.cacheSize = maxCacheSize;
-    _context.analysisOptions = options;
+    context.analysisOptions = options;
     int sourceCount = maxCacheSize + 2;
     List<Source> sources = new List<Source>();
     ChangeSet changeSet = new ChangeSet();
     for (int i = 0; i < sourceCount; i++) {
-      Source source = _addSource("/lib$i.dart", "library lib$i;");
+      Source source = addSource("/lib$i.dart", "library lib$i;");
       sources.add(source);
       changeSet.addedSource(source);
     }
-    _context.applyChanges(changeSet);
-    _context.analysisPriorityOrder = sources;
+    context.applyChanges(changeSet);
+    context.analysisPriorityOrder = sources;
     for (int i = 0; i < 1000; i++) {
-      List<ChangeNotice> notice = _context.performAnalysisTask().changeNotices;
+      List<ChangeNotice> notice = context.performAnalysisTask().changeNotices;
       if (notice == null) {
         //System.out.println("test_performAnalysisTask_stress: " + i);
         break;
       }
     }
-    List<ChangeNotice> notice = _context.performAnalysisTask().changeNotices;
+    List<ChangeNotice> notice = context.performAnalysisTask().changeNotices;
     if (notice != null) {
       fail(
           "performAnalysisTask failed to terminate after analyzing all sources");
     }
   }
 
-  Source _addSource(String fileName, String contents) {
-    Source source =
-        new FileBasedSource.con1(FileUtilities2.createFile(fileName));
-    ChangeSet changeSet = new ChangeSet();
-    changeSet.addedSource(source);
-    _context.applyChanges(changeSet);
-    _context.setContents(source, contents);
-    return source;
-  }
-
   TestSource _addSourceWithException(String fileName) {
     return _addSourceWithException2(fileName, "");
   }
@@ -2394,25 +1982,16 @@
     source.generateExceptionOnRead = true;
     ChangeSet changeSet = new ChangeSet();
     changeSet.addedSource(source);
-    _context.applyChanges(changeSet);
+    context.applyChanges(changeSet);
     return source;
   }
 
   /**
-   * Perform analysis tasks up to 512 times and asserts that that was enough.
+   * Perform analysis tasks up to 512 times and assert that it was enough.
    */
-  void _analyzeAll_assertFinished() {
-    _analyzeAll_assertFinished2(512);
-  }
-
-  /**
-   * Perform analysis tasks up to the given number of times and asserts that that was enough.
-   *
-   * @param maxIterations the maximum number of tasks to perform
-   */
-  void _analyzeAll_assertFinished2(int maxIterations) {
+  void _analyzeAll_assertFinished([int maxIterations = 512]) {
     for (int i = 0; i < maxIterations; i++) {
-      List<ChangeNotice> notice = _context.performAnalysisTask().changeNotices;
+      List<ChangeNotice> notice = context.performAnalysisTask().changeNotices;
       if (notice == null) {
         return;
       }
@@ -2424,7 +2003,7 @@
     source.setContents(contents);
     ChangeSet changeSet = new ChangeSet();
     changeSet.changedSource(source);
-    _context.applyChanges(changeSet);
+    context.applyChanges(changeSet);
   }
 
   /**
@@ -2444,6 +2023,12 @@
     return null;
   }
 
+  void _flushAst(Source source) {
+    CacheEntry entry = context
+        .getReadableSourceEntryOrNull(new LibrarySpecificUnit(source, source));
+    entry.setState(RESOLVED_UNIT, CacheState.FLUSHED);
+  }
+
   IncrementalAnalysisCache _getIncrementalAnalysisCache(
       AnalysisContextImpl context2) {
     return context2.test_incrementalAnalysisCache;
@@ -2453,8 +2038,8 @@
     return context2.test_priorityOrder;
   }
 
-  void _performPendingAnalysisTasks([int maxTasks = 20]) {
-    for (int i = 0; _context.performAnalysisTask().hasMoreWork; i++) {
+  void _performPendingAnalysisTasks([int maxTasks = 512]) {
+    for (int i = 0; context.performAnalysisTask().hasMoreWork; i++) {
       if (i > maxTasks) {
         fail('Analysis did not terminate.');
       }
@@ -2464,7 +2049,7 @@
   void _removeSource(Source source) {
     ChangeSet changeSet = new ChangeSet();
     changeSet.removedSource(source);
-    _context.applyChanges(changeSet);
+    context.applyChanges(changeSet);
   }
 
   void _setIncrementalAnalysisCache(
diff --git a/pkg/analyzer/test/src/task/dart_test.dart b/pkg/analyzer/test/src/task/dart_test.dart
index c2a5ea5..a2628ce 100644
--- a/pkg/analyzer/test/src/task/dart_test.dart
+++ b/pkg/analyzer/test/src/task/dart_test.dart
@@ -6,6 +6,7 @@
 
 import 'package:analyzer/src/context/cache.dart';
 import 'package:analyzer/src/generated/ast.dart';
+import 'package:analyzer/src/generated/constant.dart';
 import 'package:analyzer/src/generated/element.dart';
 import 'package:analyzer/src/generated/error.dart';
 import 'package:analyzer/src/generated/resolver.dart';
@@ -33,9 +34,16 @@
   runReflectiveTests(BuildLibraryElementTaskTest);
   runReflectiveTests(BuildPublicNamespaceTaskTest);
   runReflectiveTests(BuildTypeProviderTaskTest);
+  runReflectiveTests(ComputeConstantDependenciesTaskTest);
+  runReflectiveTests(ComputeConstantValueTaskTest);
+  runReflectiveTests(ContainingLibrariesTaskTest);
+  runReflectiveTests(DartErrorsTaskTest);
+  runReflectiveTests(EvaluateUnitConstantsTaskTest);
   runReflectiveTests(GatherUsedImportedElementsTaskTest);
   runReflectiveTests(GatherUsedLocalElementsTaskTest);
   runReflectiveTests(GenerateHintsTaskTest);
+  runReflectiveTests(LibraryErrorsReadyTaskTest);
+  runReflectiveTests(LibraryUnitErrorsTaskTest);
   runReflectiveTests(ParseDartTaskTest);
   runReflectiveTests(ResolveUnitTypeNamesTaskTest);
   runReflectiveTests(ResolveLibraryTypeNamesTaskTest);
@@ -153,6 +161,8 @@
 
 @reflectiveTest
 class BuildCompilationUnitElementTaskTest extends _AbstractDartTaskTest {
+  Source source;
+
   test_buildInputs() {
     LibrarySpecificUnit target =
         new LibrarySpecificUnit(emptySource, emptySource);
@@ -190,6 +200,35 @@
     expect(descriptor, isNotNull);
   }
 
+  test_perform_find_constants() {
+    _performBuildTask('''
+const x = 1;
+class C {
+  static const y = 1;
+  const C([p = 1]);
+}
+@x
+f() {
+  const z = 1;
+}
+''');
+    CompilationUnit unit = outputs[RESOLVED_UNIT1];
+    CompilationUnitElement unitElement = outputs[COMPILATION_UNIT_ELEMENT];
+    Annotation annotation = unit.declarations
+        .firstWhere((m) => m is FunctionDeclaration).metadata[0];
+    List<ConstantEvaluationTarget> expectedConstants = [
+      unitElement.accessors.firstWhere((e) => e.isGetter).variable,
+      unitElement.types[0].fields[0],
+      unitElement.functions[0].localVariables[0],
+      unitElement.types[0].constructors[0],
+      new ConstantEvaluationTarget_Annotation(
+          context, source, source, annotation),
+      unitElement.types[0].constructors[0].parameters[0]
+    ];
+    expect(
+        outputs[COMPILATION_UNIT_CONSTANTS].toSet(), expectedConstants.toSet());
+  }
+
   test_perform_library() {
     _performBuildTask(r'''
 library lib;
@@ -200,13 +239,13 @@
 class B = Object with A;
 ''');
     expect(outputs, hasLength(3));
-    expect(outputs[CLASS_ELEMENTS], hasLength(2));
     expect(outputs[COMPILATION_UNIT_ELEMENT], isNotNull);
     expect(outputs[RESOLVED_UNIT1], isNotNull);
+    expect(outputs[COMPILATION_UNIT_CONSTANTS], isNotNull);
   }
 
   void _performBuildTask(String content) {
-    Source source = newSource('/test.dart', content);
+    source = newSource('/test.dart', content);
     AnalysisTarget target = new LibrarySpecificUnit(source, source);
     _computeResult(target, RESOLVED_UNIT1);
     expect(task, new isInstanceOf<BuildCompilationUnitElementTask>());
@@ -1156,6 +1195,385 @@
 }
 
 @reflectiveTest
+class ComputeConstantDependenciesTaskTest extends _AbstractDartTaskTest {
+  Annotation findClassAnnotation(CompilationUnit unit, String className) {
+    for (CompilationUnitMember member in unit.declarations) {
+      if (member is ClassDeclaration && member.name.name == className) {
+        expect(member.metadata, hasLength(1));
+        return member.metadata[0];
+      }
+    }
+    fail('Annotation not found');
+    return null;
+  }
+
+  test_annotation_with_args() {
+    Source source = newSource('/test.dart', '''
+const x = 1;
+@D(x) class C {}
+class D { const D(value); }
+''');
+    // First compute the resolved unit for the source.
+    LibrarySpecificUnit librarySpecificUnit =
+        new LibrarySpecificUnit(source, source);
+    _computeResult(librarySpecificUnit, RESOLVED_UNIT1);
+    CompilationUnit unit = outputs[RESOLVED_UNIT1];
+    // Find the elements for x and D's constructor, and the annotation on C.
+    List<PropertyAccessorElement> accessors = unit.element.accessors;
+    Element x = accessors.firstWhere((PropertyAccessorElement accessor) =>
+        accessor.isGetter && accessor.name == 'x').variable;
+    List<ClassElement> types = unit.element.types;
+    Element constructorForD =
+        types.firstWhere((ClassElement cls) => cls.name == 'D').constructors[0];
+    Annotation annotation = findClassAnnotation(unit, 'C');
+    // Now compute the dependencies for the annotation, and check that it is
+    // the set [x, constructorForD].
+    // TODO(paulberry): test librarySource != source
+    _computeResult(new ConstantEvaluationTarget_Annotation(
+        context, source, source, annotation), CONSTANT_DEPENDENCIES);
+    expect(
+        outputs[CONSTANT_DEPENDENCIES].toSet(), [x, constructorForD].toSet());
+  }
+
+  test_annotation_without_args() {
+    Source source = newSource('/test.dart', '''
+const x = 1;
+@x class C {}
+''');
+    // First compute the resolved unit for the source.
+    LibrarySpecificUnit librarySpecificUnit =
+        new LibrarySpecificUnit(source, source);
+    _computeResult(librarySpecificUnit, RESOLVED_UNIT1);
+    CompilationUnit unit = outputs[RESOLVED_UNIT1];
+    // Find the element for x and the annotation on C.
+    List<PropertyAccessorElement> accessors = unit.element.accessors;
+    Element x = accessors.firstWhere((PropertyAccessorElement accessor) =>
+        accessor.isGetter && accessor.name == 'x').variable;
+    Annotation annotation = findClassAnnotation(unit, 'C');
+    // Now compute the dependencies for the annotation, and check that it is
+    // the list [x].
+    _computeResult(new ConstantEvaluationTarget_Annotation(
+        context, source, source, annotation), CONSTANT_DEPENDENCIES);
+    expect(outputs[CONSTANT_DEPENDENCIES], [x]);
+  }
+
+  test_perform() {
+    Source source = newSource('/test.dart', '''
+const x = y;
+const y = 1;
+''');
+    // First compute the resolved unit for the source.
+    LibrarySpecificUnit librarySpecificUnit =
+        new LibrarySpecificUnit(source, source);
+    _computeResult(librarySpecificUnit, RESOLVED_UNIT1);
+    CompilationUnit unit = outputs[RESOLVED_UNIT1];
+    // Find the elements for the constants x and y.
+    List<PropertyAccessorElement> accessors = unit.element.accessors;
+    Element x = accessors.firstWhere((PropertyAccessorElement accessor) =>
+        accessor.isGetter && accessor.name == 'x').variable;
+    Element y = accessors.firstWhere((PropertyAccessorElement accessor) =>
+        accessor.isGetter && accessor.name == 'y').variable;
+    // Now compute the dependencies for x, and check that it is the list [y].
+    _computeResult(x, CONSTANT_DEPENDENCIES);
+    expect(outputs[CONSTANT_DEPENDENCIES], [y]);
+  }
+}
+
+@reflectiveTest
+class ComputeConstantValueTaskTest extends _AbstractDartTaskTest {
+  EvaluationResultImpl computeClassAnnotation(
+      Source source, CompilationUnit unit, String className) {
+    for (CompilationUnitMember member in unit.declarations) {
+      if (member is ClassDeclaration && member.name.name == className) {
+        expect(member.metadata, hasLength(1));
+        Annotation annotation = member.metadata[0];
+        ConstantEvaluationTarget_Annotation target =
+            new ConstantEvaluationTarget_Annotation(
+                context, source, source, annotation);
+        _computeResult(target, CONSTANT_VALUE);
+        expect(outputs[CONSTANT_VALUE], same(target));
+        EvaluationResultImpl evaluationResult =
+            (annotation.elementAnnotation as ElementAnnotationImpl).evaluationResult;
+        return evaluationResult;
+      }
+    }
+    fail('Annotation not found');
+    return null;
+  }
+
+  fail_circular_reference() {
+    // TODO(paulberry): get this to work.
+    EvaluationResultImpl evaluationResult = _computeTopLevelVariableConstValue(
+        'x', '''
+const x = y + 1;
+const y = x + 1;
+''');
+    expect(evaluationResult, isNotNull);
+    expect(evaluationResult.value, isNull);
+    expect(evaluationResult.errors, hasLength(1));
+    expect(evaluationResult.errors[0].errorCode,
+        CompileTimeErrorCode.RECURSIVE_COMPILE_TIME_CONSTANT);
+  }
+
+  test_annotation_with_args() {
+    Source source = newSource('/test.dart', '''
+const x = 1;
+@D(x) class C {}
+class D {
+  const D(this.value);
+  final value;
+}
+''');
+    // First compute the resolved unit for the source.
+    LibrarySpecificUnit librarySpecificUnit =
+        new LibrarySpecificUnit(source, source);
+    _computeResult(librarySpecificUnit, RESOLVED_UNIT1);
+    CompilationUnit unit = outputs[RESOLVED_UNIT1];
+    // Compute the constant value of the annotation on C.
+    EvaluationResultImpl evaluationResult =
+        computeClassAnnotation(source, unit, 'C');
+    // And check that it has the expected value.
+    expect(evaluationResult, isNotNull);
+    expect(evaluationResult.value, isNotNull);
+    expect(evaluationResult.value.type, isNotNull);
+    expect(evaluationResult.value.type.name, 'D');
+    expect(evaluationResult.value.fields, contains('value'));
+    expect(evaluationResult.value.fields['value'].intValue, 1);
+  }
+
+  test_annotation_without_args() {
+    Source source = newSource('/test.dart', '''
+const x = 1;
+@x class C {}
+''');
+    // First compute the resolved unit for the source.
+    LibrarySpecificUnit librarySpecificUnit =
+        new LibrarySpecificUnit(source, source);
+    _computeResult(librarySpecificUnit, RESOLVED_UNIT1);
+    CompilationUnit unit = outputs[RESOLVED_UNIT1];
+    // Compute the constant value of the annotation on C.
+    EvaluationResultImpl evaluationResult =
+        computeClassAnnotation(source, unit, 'C');
+    // And check that it has the expected value.
+    expect(evaluationResult, isNotNull);
+    expect(evaluationResult.value, isNotNull);
+    expect(evaluationResult.value.intValue, 1);
+  }
+
+  test_dependency() {
+    EvaluationResultImpl evaluationResult = _computeTopLevelVariableConstValue(
+        'x', '''
+const x = y + 1;
+const y = 1;
+''');
+    expect(evaluationResult, isNotNull);
+    expect(evaluationResult.value, isNotNull);
+    expect(evaluationResult.value.intValue, 2);
+  }
+
+  test_simple_constant() {
+    EvaluationResultImpl evaluationResult = _computeTopLevelVariableConstValue(
+        'x', '''
+const x = 1;
+''');
+    expect(evaluationResult, isNotNull);
+    expect(evaluationResult.value, isNotNull);
+    expect(evaluationResult.value.intValue, 1);
+  }
+
+  EvaluationResultImpl _computeTopLevelVariableConstValue(
+      String variableName, String content) {
+    Source source = newSource('/test.dart', content);
+    // First compute the resolved unit for the source.
+    LibrarySpecificUnit librarySpecificUnit =
+        new LibrarySpecificUnit(source, source);
+    _computeResult(librarySpecificUnit, RESOLVED_UNIT1);
+    CompilationUnit unit = outputs[RESOLVED_UNIT1];
+    // Find the element for the given constant.
+    List<PropertyAccessorElement> accessors = unit.element.accessors;
+    Element variableElement = accessors
+        .firstWhere((PropertyAccessorElement accessor) {
+      return accessor.isGetter && accessor.name == variableName;
+    }).variable;
+    // Now compute the value of the constant.
+    _computeResult(variableElement, CONSTANT_VALUE);
+    expect(outputs[CONSTANT_VALUE], same(variableElement));
+    EvaluationResultImpl evaluationResult =
+        (variableElement as TopLevelVariableElementImpl).evaluationResult;
+    return evaluationResult;
+  }
+}
+
+@reflectiveTest
+class ContainingLibrariesTaskTest extends _AbstractDartTaskTest {
+  test_buildInputs() {
+    Map<String, TaskInput> inputs =
+        ContainingLibrariesTask.buildInputs(emptySource);
+    expect(inputs, isNotNull);
+    expect(inputs, isEmpty);
+  }
+
+  test_constructor() {
+    ContainingLibrariesTask task =
+        new ContainingLibrariesTask(context, emptySource);
+    expect(task, isNotNull);
+    expect(task.context, context);
+    expect(task.target, emptySource);
+  }
+
+  test_createTask() {
+    ContainingLibrariesTask task =
+        ContainingLibrariesTask.createTask(context, emptySource);
+    expect(task, isNotNull);
+    expect(task.context, context);
+    expect(task.target, emptySource);
+  }
+
+  test_description() {
+    ContainingLibrariesTask task =
+        new ContainingLibrariesTask(null, emptySource);
+    expect(task.description, isNotNull);
+  }
+
+  test_descriptor() {
+    TaskDescriptor descriptor = ContainingLibrariesTask.DESCRIPTOR;
+    expect(descriptor, isNotNull);
+  }
+
+  test_perform_definingCompilationUnit() {
+    AnalysisTarget library = newSource('/test.dart', 'library test;');
+    _computeResult(library, INCLUDED_PARTS);
+    _computeResult(library, CONTAINING_LIBRARIES);
+    expect(task, new isInstanceOf<ContainingLibrariesTask>());
+    expect(outputs, hasLength(1));
+    List<Source> containingLibraries = outputs[CONTAINING_LIBRARIES];
+    expect(containingLibraries, unorderedEquals([library]));
+  }
+
+  test_perform_partInMultipleLibraries() {
+    AnalysisTarget library1 =
+        newSource('/lib1.dart', 'library test; part "part.dart";');
+    AnalysisTarget library2 =
+        newSource('/lib2.dart', 'library test; part "part.dart";');
+    AnalysisTarget part = newSource('/part.dart', 'part of test;');
+    _computeResult(library1, INCLUDED_PARTS);
+    _computeResult(library2, INCLUDED_PARTS);
+    _computeResult(part, SOURCE_KIND);
+    _computeResult(part, CONTAINING_LIBRARIES);
+    expect(task, new isInstanceOf<ContainingLibrariesTask>());
+    expect(outputs, hasLength(1));
+    List<Source> containingLibraries = outputs[CONTAINING_LIBRARIES];
+    expect(containingLibraries, unorderedEquals([library1, library2]));
+  }
+
+  test_perform_partInSingleLibrary() {
+    AnalysisTarget library =
+        newSource('/lib.dart', 'library test; part "part.dart";');
+    AnalysisTarget part = newSource('/part.dart', 'part of test;');
+    _computeResult(library, INCLUDED_PARTS);
+    _computeResult(part, SOURCE_KIND);
+    _computeResult(part, CONTAINING_LIBRARIES);
+    expect(task, new isInstanceOf<ContainingLibrariesTask>());
+    expect(outputs, hasLength(1));
+    List<Source> containingLibraries = outputs[CONTAINING_LIBRARIES];
+    expect(containingLibraries, unorderedEquals([library]));
+  }
+}
+
+@reflectiveTest
+class DartErrorsTaskTest extends _AbstractDartTaskTest {
+  test_buildInputs() {
+    Map<String, TaskInput> inputs = DartErrorsTask.buildInputs(emptySource);
+    expect(inputs, isNotNull);
+    expect(inputs.keys, unorderedEquals([
+      DartErrorsTask.BUILD_DIRECTIVES_ERRORS_INPUT,
+      DartErrorsTask.BUILD_LIBRARY_ERRORS_INPUT,
+      DartErrorsTask.PARSE_ERRORS_INPUT,
+      DartErrorsTask.SCAN_ERRORS_INPUT,
+      DartErrorsTask.LIBRARY_UNIT_ERRORS_INPUT
+    ]));
+  }
+
+  test_constructor() {
+    DartErrorsTask task = new DartErrorsTask(context, emptySource);
+    expect(task, isNotNull);
+    expect(task.context, context);
+    expect(task.target, emptySource);
+  }
+
+  test_createTask() {
+    DartErrorsTask task = DartErrorsTask.createTask(context, emptySource);
+    expect(task, isNotNull);
+    expect(task.context, context);
+    expect(task.target, emptySource);
+  }
+
+  test_description() {
+    DartErrorsTask task = new DartErrorsTask(null, emptySource);
+    expect(task.description, isNotNull);
+  }
+
+  test_descriptor() {
+    TaskDescriptor descriptor = DartErrorsTask.DESCRIPTOR;
+    expect(descriptor, isNotNull);
+  }
+
+  test_perform_definingCompilationUnit() {
+    AnalysisTarget library =
+        newSource('/test.dart', 'library test; import "dart:math";');
+    _computeResult(library, INCLUDED_PARTS);
+    _computeResult(library, DART_ERRORS);
+    expect(task, new isInstanceOf<DartErrorsTask>());
+    expect(outputs, hasLength(1));
+    List<AnalysisError> errors = outputs[DART_ERRORS];
+    expect(errors, hasLength(1));
+  }
+
+  test_perform_partInSingleLibrary() {
+    AnalysisTarget library = newSource(
+        '/lib.dart', 'library test; import "dart:math"; part "part.dart";');
+    AnalysisTarget part =
+        newSource('/part.dart', 'part of test; class A extends A {}');
+    _computeResult(library, INCLUDED_PARTS);
+    _computeResult(library, DART_ERRORS);
+    _computeResult(part, DART_ERRORS);
+    expect(task, new isInstanceOf<DartErrorsTask>());
+    expect(outputs, hasLength(1));
+    List<AnalysisError> errors = outputs[DART_ERRORS];
+    // This should contain only the errors in the part file, not the ones in the
+    // library.
+    expect(errors, hasLength(1));
+  }
+}
+
+@reflectiveTest
+class EvaluateUnitConstantsTaskTest extends _AbstractDartTaskTest {
+  test_perform() {
+    Source source = newSource('/test.dart', '''
+class C {
+  const C();
+}
+
+@x
+f() {}
+
+const x = const C();
+''');
+    LibrarySpecificUnit target = new LibrarySpecificUnit(source, source);
+    _computeResult(target, CONSTANT_RESOLVED_UNIT);
+    expect(task, new isInstanceOf<EvaluateUnitConstantsTask>());
+    CompilationUnit unit = outputs[CONSTANT_RESOLVED_UNIT];
+    CompilationUnitElement unitElement = unit.element;
+    expect((unitElement.types[0].constructors[
+        0] as ConstructorElementImpl).isCycleFree, isTrue);
+    expect((unitElement.functions[0].metadata[
+        0] as ElementAnnotationImpl).evaluationResult, isNotNull);
+    expect((unitElement.topLevelVariables[
+        0] as TopLevelVariableElementImpl).evaluationResult, isNotNull);
+  }
+}
+
+@reflectiveTest
 class GatherUsedImportedElementsTaskTest extends _AbstractDartTaskTest {
   UsedImportedElements usedElements;
   Set<String> usedElementNames;
@@ -1431,6 +1849,98 @@
 }
 
 @reflectiveTest
+class LibraryErrorsReadyTaskTest extends _AbstractDartTaskTest {
+  test_perform() {
+    Source library = newSource('/lib.dart', r'''
+library lib;
+part 'part1.dart';
+part 'part2.dart';
+X v1;
+''');
+    Source part1 = newSource('/part1.dart', r'''
+part of lib;
+X v2;
+''');
+    Source part2 = newSource('/part2.dart', r'''
+part of lib;
+X v3;
+''');
+    _computeResult(library, LIBRARY_ERRORS_READY);
+    expect(task, new isInstanceOf<LibraryErrorsReadyTask>());
+    expect(outputs, hasLength(1));
+    bool ready = outputs[LIBRARY_ERRORS_READY];
+    expect(ready, isTrue);
+    expect(context.getErrors(library).errors, hasLength(1));
+    expect(context.getErrors(part1).errors, hasLength(1));
+    expect(context.getErrors(part2).errors, hasLength(1));
+  }
+}
+
+@reflectiveTest
+class LibraryUnitErrorsTaskTest extends _AbstractDartTaskTest {
+  test_buildInputs() {
+    Map<String, TaskInput> inputs = LibraryUnitErrorsTask
+        .buildInputs(new LibrarySpecificUnit(emptySource, emptySource));
+    expect(inputs, isNotNull);
+    expect(inputs.keys, unorderedEquals([
+      LibraryUnitErrorsTask.BUILD_FUNCTION_TYPE_ALIASES_ERRORS_INPUT,
+      LibraryUnitErrorsTask.HINTS_INPUT,
+      LibraryUnitErrorsTask.RESOLVE_REFERENCES_ERRORS_INPUT,
+      LibraryUnitErrorsTask.RESOLVE_TYPE_NAMES_ERRORS_INPUT,
+      LibraryUnitErrorsTask.VERIFY_ERRORS_INPUT
+    ]));
+  }
+
+  test_constructor() {
+    LibraryUnitErrorsTask task =
+        new LibraryUnitErrorsTask(context, emptySource);
+    expect(task, isNotNull);
+    expect(task.context, context);
+    expect(task.target, emptySource);
+  }
+
+  test_createTask() {
+    LibraryUnitErrorsTask task =
+        LibraryUnitErrorsTask.createTask(context, emptySource);
+    expect(task, isNotNull);
+    expect(task.context, context);
+    expect(task.target, emptySource);
+  }
+
+  test_description() {
+    LibraryUnitErrorsTask task = new LibraryUnitErrorsTask(null, emptySource);
+    expect(task.description, isNotNull);
+  }
+
+  test_descriptor() {
+    TaskDescriptor descriptor = LibraryUnitErrorsTask.DESCRIPTOR;
+    expect(descriptor, isNotNull);
+  }
+
+  test_perform_definingCompilationUnit() {
+    AnalysisTarget library =
+        newSource('/test.dart', 'library test; import "dart:math";');
+    _computeResult(
+        new LibrarySpecificUnit(library, library), LIBRARY_UNIT_ERRORS);
+    expect(task, new isInstanceOf<LibraryUnitErrorsTask>());
+    expect(outputs, hasLength(1));
+    List<AnalysisError> errors = outputs[LIBRARY_UNIT_ERRORS];
+    expect(errors, hasLength(1));
+  }
+
+  test_perform_partInSingleLibrary() {
+    AnalysisTarget library =
+        newSource('/lib.dart', 'library test; part "part.dart";');
+    AnalysisTarget part = newSource('/part.dart', 'part of test;');
+    _computeResult(new LibrarySpecificUnit(library, part), LIBRARY_UNIT_ERRORS);
+    expect(task, new isInstanceOf<LibraryUnitErrorsTask>());
+    expect(outputs, hasLength(1));
+    List<AnalysisError> errors = outputs[LIBRARY_UNIT_ERRORS];
+    expect(errors, hasLength(0));
+  }
+}
+
+@reflectiveTest
 class ParseDartTaskTest extends _AbstractDartTaskTest {
   test_buildInputs() {
     Map<String, TaskInput> inputs = ParseDartTask.buildInputs(emptySource);
@@ -1469,7 +1979,8 @@
     _performParseTask(r'''
 part of lib;
 class B {}''');
-    expect(outputs, hasLength(7));
+    expect(outputs, hasLength(8));
+    expect(outputs[EXPLICITLY_IMPORTED_LIBRARIES], hasLength(0));
     expect(outputs[EXPORTED_LIBRARIES], hasLength(0));
     _assertHasCore(outputs[IMPORTED_LIBRARIES], 1);
     expect(outputs[INCLUDED_PARTS], hasLength(0));
@@ -1487,7 +1998,8 @@
 export '${a}lib3.dart';
 part 'part.dart';
 class A {}''');
-    expect(outputs, hasLength(7));
+    expect(outputs, hasLength(8));
+    expect(outputs[EXPLICITLY_IMPORTED_LIBRARIES], hasLength(1));
     expect(outputs[EXPORTED_LIBRARIES], hasLength(0));
     _assertHasCore(outputs[IMPORTED_LIBRARIES], 2);
     expect(outputs[INCLUDED_PARTS], hasLength(1));
@@ -1504,7 +2016,8 @@
 export 'lib3.dart';
 part 'part.dart';
 class A {''');
-    expect(outputs, hasLength(7));
+    expect(outputs, hasLength(8));
+    expect(outputs[EXPLICITLY_IMPORTED_LIBRARIES], hasLength(1));
     expect(outputs[EXPORTED_LIBRARIES], hasLength(1));
     _assertHasCore(outputs[IMPORTED_LIBRARIES], 2);
     expect(outputs[INCLUDED_PARTS], hasLength(1));
@@ -1514,25 +2027,6 @@
     expect(outputs[UNITS], hasLength(2));
   }
 
-  test_perform_useMemento() {
-    String content = r'''
-library lib;
-import 'lib2.dart';
-export 'lib3.dart';
-part 'part.dart';
-class A {''';
-    AnalysisTarget target = newSource('/test.dart', content);
-    _computeResult(target, PARSED_UNIT);
-    // update content
-    context.setContents(target, content);
-    assertIsInvalid(target, PARSED_UNIT);
-    // recompute
-    _computeResult(target, PARSED_UNIT);
-    assertIsValid(target, PARSED_UNIT);
-    // values from the memento are returned
-    assertSameResults(ParseDartTask.DESCRIPTOR.results);
-  }
-
   void _performParseTask(String content) {
     AnalysisTarget target = newSource('/test.dart', content);
     _computeResult(target, PARSED_UNIT);
@@ -1627,27 +2121,17 @@
 ''');
     LibrarySpecificUnit target = new LibrarySpecificUnit(source, source);
     // prepare unit and "a.m()" invocation
-    CompilationUnit unit;
-    MethodInvocation invocation;
-    {
-      _computeResult(target, RESOLVED_UNIT1);
-      unit = outputs[RESOLVED_UNIT1];
-      // walk the AST
-      FunctionDeclaration function = unit.declarations[1];
-      BlockFunctionBody body = function.functionExpression.body;
-      ExpressionStatement statement = body.block.statements[0];
-      invocation = statement.expression;
-      // not resolved yet
-      expect(invocation.methodName.staticElement, isNull);
-    }
-    // fully resolve
-    {
-      _computeResult(target, RESOLVED_UNIT);
-      expect(task, new isInstanceOf<ResolveReferencesTask>());
-      expect(outputs[RESOLVED_UNIT], same(outputs[RESOLVED_UNIT]));
-      // a.m() is resolved now
-      expect(invocation.methodName.staticElement, isNotNull);
-    }
+    _computeResult(target, RESOLVED_UNIT);
+    CompilationUnit unit = outputs[RESOLVED_UNIT];
+    // walk the AST
+    FunctionDeclaration function = unit.declarations[1];
+    BlockFunctionBody body = function.functionExpression.body;
+    ExpressionStatement statement = body.block.statements[0];
+    MethodInvocation invocation = statement.expression;
+    expect(task, new isInstanceOf<ResolveReferencesTask>());
+    expect(unit, same(outputs[RESOLVED_UNIT]));
+    // a.m() is resolved now
+    expect(invocation.methodName.staticElement, isNotNull);
   }
 
   test_perform_errors() {
@@ -1822,19 +2306,6 @@
     expect(outputs[TOKEN_STREAM], isNotNull);
   }
 
-  test_perform_useMemento() {
-    AnalysisTarget target = newSource('/test.dart', 'main() {}');
-    _computeResult(target, TOKEN_STREAM);
-    // update content
-    context.setContents(target, 'main() {}');
-    assertIsInvalid(target, TOKEN_STREAM);
-    // recompute
-    _computeResult(target, TOKEN_STREAM);
-    assertIsValid(target, TOKEN_STREAM);
-    // values from the memento are returned
-    assertSameResults(ScanDartTask.DESCRIPTOR.results);
-  }
-
   void _performScanTask(String content) {
     AnalysisTarget target = newSource('/test.dart', content);
     _computeResult(target, TOKEN_STREAM);
diff --git a/pkg/analyzer/test/src/task/dart_work_manager_test.dart b/pkg/analyzer/test/src/task/dart_work_manager_test.dart
new file mode 100644
index 0000000..ad3d337
--- /dev/null
+++ b/pkg/analyzer/test/src/task/dart_work_manager_test.dart
@@ -0,0 +1,333 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library test.src.task.dart_work_manager_test;
+
+import 'package:analyzer/src/context/cache.dart';
+import 'package:analyzer/src/generated/engine.dart'
+    show CacheState, InternalAnalysisContext;
+import 'package:analyzer/src/generated/java_engine.dart' show CaughtException;
+import 'package:analyzer/src/generated/source.dart';
+import 'package:analyzer/src/task/dart.dart';
+import 'package:analyzer/src/task/dart_work_manager.dart';
+import 'package:analyzer/src/task/driver.dart';
+import 'package:analyzer/task/dart.dart';
+import 'package:analyzer/task/model.dart';
+import 'package:typed_mock/typed_mock.dart';
+import 'package:unittest/unittest.dart';
+
+import '../../generated/test_support.dart';
+import '../../reflective_tests.dart';
+
+main() {
+  groupSep = ' | ';
+  runReflectiveTests(DartWorkManagerTest);
+}
+
+@reflectiveTest
+class DartWorkManagerTest {
+  InternalAnalysisContext context = new _InternalAnalysisContextMock();
+  DartWorkManager manager;
+
+  CaughtException caughtException = new CaughtException(null, null);
+
+  Source source1 = new TestSource('1.dart');
+  Source source2 = new TestSource('2.dart');
+  Source source3 = new TestSource('3.dart');
+  Source source4 = new TestSource('4.dart');
+  CacheEntry entry1;
+  CacheEntry entry2;
+  CacheEntry entry3;
+  CacheEntry entry4;
+
+  void expect_librarySourceQueue(List<Source> sources) {
+    expect(manager.librarySourceQueue, unorderedEquals(sources));
+  }
+
+  void expect_unknownSourceQueue(List<Source> sources) {
+    expect(manager.unknownSourceQueue, unorderedEquals(sources));
+  }
+
+  void setUp() {
+    manager = new DartWorkManager(context);
+    entry1 = context.getCacheEntry(source1);
+    entry2 = context.getCacheEntry(source2);
+    entry3 = context.getCacheEntry(source3);
+    entry4 = context.getCacheEntry(source4);
+  }
+
+  void test_applyChange_add() {
+    // add source1
+    manager.applyChange([source1], [], []);
+    expect_unknownSourceQueue([source1]);
+    expect_librarySourceQueue([]);
+    // add source2
+    manager.applyChange([source2], [], []);
+    expect_librarySourceQueue([]);
+    expect_unknownSourceQueue([source1, source2]);
+  }
+
+  void test_applyChange_add_duplicate() {
+    // add source1
+    manager.applyChange([source1], [], []);
+    expect_unknownSourceQueue([source1]);
+    expect_librarySourceQueue([]);
+    // add source2
+    manager.applyChange([source1], [], []);
+    expect_librarySourceQueue([]);
+    expect_unknownSourceQueue([source1]);
+  }
+
+  void test_applyChange_addRemove() {
+    manager.applyChange([source1, source2], [], [source2, source3]);
+    expect_unknownSourceQueue([source1]);
+    expect_librarySourceQueue([]);
+  }
+
+  void test_applyChange_change() {
+    manager.librarySourceQueue.addAll([source1, source3]);
+    manager.unknownSourceQueue.addAll([source4]);
+    // change source1
+    manager.applyChange([], [source1], []);
+    expect_librarySourceQueue([source3]);
+    expect_unknownSourceQueue([source4, source1]);
+  }
+
+  void test_applyChange_remove() {
+    manager.librarySourceQueue.addAll([source1, source3]);
+    manager.unknownSourceQueue.addAll([source4]);
+    // remove source1
+    manager.applyChange([], [], [source1]);
+    expect_librarySourceQueue([source3]);
+    expect_unknownSourceQueue([source4]);
+    // remove source3
+    manager.applyChange([], [], [source3]);
+    expect_librarySourceQueue([]);
+    expect_unknownSourceQueue([source4]);
+    // remove source4
+    manager.applyChange([], [], [source4]);
+    expect_librarySourceQueue([]);
+    expect_unknownSourceQueue([]);
+  }
+
+  void test_applyChange_scheduleInvalidatedLibraries() {
+    // libraries source1 and source3 are invalid
+    entry1.setValue(SOURCE_KIND, SourceKind.LIBRARY, []);
+    entry2.setValue(SOURCE_KIND, SourceKind.PART, []);
+    entry3.setValue(SOURCE_KIND, SourceKind.LIBRARY, []);
+    entry1.setValue(LIBRARY_ERRORS_READY, false, []);
+    entry3.setValue(LIBRARY_ERRORS_READY, false, []);
+    // change source2, schedule source1 and source3
+    manager.applyChange([], [source2], []);
+    expect_librarySourceQueue([source1, source3]);
+  }
+
+  void test_applyPriorityTargets_library() {
+    entry1.setValue(SOURCE_KIND, SourceKind.LIBRARY, []);
+    entry2.setValue(SOURCE_KIND, SourceKind.LIBRARY, []);
+    entry3.setValue(SOURCE_KIND, SourceKind.LIBRARY, []);
+    manager.priorityResultQueue
+        .add(new TargetedResult(source1, LIBRARY_ERRORS_READY));
+    manager.priorityResultQueue
+        .add(new TargetedResult(source2, LIBRARY_ERRORS_READY));
+    // -source1 +source3
+    manager.applyPriorityTargets([source2, source3]);
+    expect(manager.priorityResultQueue, unorderedEquals([
+      new TargetedResult(source2, LIBRARY_ERRORS_READY),
+      new TargetedResult(source3, LIBRARY_ERRORS_READY)
+    ]));
+    // get next request
+    TargetedResult request = manager.getNextResult();
+    expect(request.target, source2);
+    expect(request.result, LIBRARY_ERRORS_READY);
+  }
+
+  void test_applyPriorityTargets_part() {
+    entry1.setValue(SOURCE_KIND, SourceKind.PART, []);
+    entry2.setValue(SOURCE_KIND, SourceKind.LIBRARY, []);
+    entry3.setValue(SOURCE_KIND, SourceKind.LIBRARY, []);
+    // +source2 +source3
+    when(context.getLibrariesContaining(source1))
+        .thenReturn([source2, source3]);
+    manager.applyPriorityTargets([source1]);
+    expect(manager.priorityResultQueue, unorderedEquals([
+      new TargetedResult(source2, LIBRARY_ERRORS_READY),
+      new TargetedResult(source3, LIBRARY_ERRORS_READY)
+    ]));
+    // get next request
+    TargetedResult request = manager.getNextResult();
+    expect(request.target, source2);
+    expect(request.result, LIBRARY_ERRORS_READY);
+  }
+
+  void test_getNextResult_hasLibraries_firstIsError() {
+    entry1.setErrorState(caughtException, [LIBRARY_ERRORS_READY]);
+    manager.librarySourceQueue.addAll([source1, source2]);
+    TargetedResult request = manager.getNextResult();
+    expect(request.target, source2);
+    expect(request.result, LIBRARY_ERRORS_READY);
+    // source1 is out, source2 is waiting
+    expect_librarySourceQueue([source2]);
+  }
+
+  void test_getNextResult_hasLibraries_firstIsInvalid() {
+    entry1.setState(LIBRARY_ERRORS_READY, CacheState.INVALID);
+    manager.librarySourceQueue.addAll([source1, source2]);
+    TargetedResult request = manager.getNextResult();
+    expect(request.target, source1);
+    expect(request.result, LIBRARY_ERRORS_READY);
+    // no changes until computed
+    expect_librarySourceQueue([source1, source2]);
+  }
+
+  void test_getNextResult_hasLibraries_firstIsValid() {
+    entry1.setValue(LIBRARY_ERRORS_READY, true, []);
+    manager.librarySourceQueue.addAll([source1, source2]);
+    TargetedResult request = manager.getNextResult();
+    expect(request.target, source2);
+    expect(request.result, LIBRARY_ERRORS_READY);
+    // source1 is out, source2 is waiting
+    expect_librarySourceQueue([source2]);
+  }
+
+  void test_getNextResult_hasPriority_firstIsError() {
+    manager.addPriorityResult(source1, SOURCE_KIND);
+    manager.addPriorityResult(source2, SOURCE_KIND);
+    expect(manager.priorityResultQueue, unorderedEquals([
+      new TargetedResult(source1, SOURCE_KIND),
+      new TargetedResult(source2, SOURCE_KIND)
+    ]));
+    // configure state and get next result
+    entry1.setErrorState(caughtException, [SOURCE_KIND]);
+    TargetedResult request = manager.getNextResult();
+    expect(request.target, source2);
+    expect(request.result, SOURCE_KIND);
+    // source1 is out, source2 is waiting
+    expect(manager.priorityResultQueue,
+        unorderedEquals([new TargetedResult(source2, SOURCE_KIND)]));
+  }
+
+  void test_getNextResult_hasPriority_firstIsValid() {
+    manager.addPriorityResult(source1, SOURCE_KIND);
+    manager.addPriorityResult(source2, SOURCE_KIND);
+    expect(manager.priorityResultQueue, unorderedEquals([
+      new TargetedResult(source1, SOURCE_KIND),
+      new TargetedResult(source2, SOURCE_KIND)
+    ]));
+    // configure state and get next result
+    entry1.setValue(SOURCE_KIND, SourceKind.LIBRARY, []);
+    TargetedResult request = manager.getNextResult();
+    expect(request.target, source2);
+    expect(request.result, SOURCE_KIND);
+    // source1 is out, source2 is waiting
+    expect(manager.priorityResultQueue,
+        unorderedEquals([new TargetedResult(source2, SOURCE_KIND)]));
+  }
+
+  void test_getNextResult_hasUnknown_firstIsError() {
+    entry1.setErrorState(caughtException, [SOURCE_KIND]);
+    manager.unknownSourceQueue.addAll([source1, source2]);
+    TargetedResult request = manager.getNextResult();
+    expect(request.target, source2);
+    expect(request.result, SOURCE_KIND);
+    // source1 is out, source2 is waiting
+    expect_librarySourceQueue([]);
+    expect_unknownSourceQueue([source2]);
+  }
+
+  void test_getNextResult_hasUnknown_firstIsInvalid() {
+    manager.unknownSourceQueue.addAll([source1, source2]);
+    TargetedResult request = manager.getNextResult();
+    expect(request.target, source1);
+    expect(request.result, SOURCE_KIND);
+    // no changes until computed
+    expect_librarySourceQueue([]);
+    expect_unknownSourceQueue([source1, source2]);
+  }
+
+  void test_getNextResult_hasUnknown_firstIsValid() {
+    entry1.setValue(SOURCE_KIND, SourceKind.LIBRARY, []);
+    manager.unknownSourceQueue.addAll([source1, source2]);
+    TargetedResult request = manager.getNextResult();
+    expect(request.target, source2);
+    expect(request.result, SOURCE_KIND);
+    // source1 is out, source2 is waiting
+    expect_librarySourceQueue([]);
+    expect_unknownSourceQueue([source2]);
+  }
+
+  void test_getNextResult_nothingToDo() {
+    TargetedResult request = manager.getNextResult();
+    expect(request, isNull);
+  }
+
+  void test_getNextResultPriority_hasLibrary() {
+    manager.librarySourceQueue.addAll([source1]);
+    expect(manager.getNextResultPriority(), WorkOrderPriority.NORMAL);
+  }
+
+  void test_getNextResultPriority_hasPriority() {
+    manager.addPriorityResult(source1, SOURCE_KIND);
+    expect(manager.getNextResultPriority(), WorkOrderPriority.PRIORITY);
+  }
+
+  void test_getNextResultPriority_hasUnknown() {
+    manager.unknownSourceQueue.addAll([source1]);
+    expect(manager.getNextResultPriority(), WorkOrderPriority.NORMAL);
+  }
+
+  void test_getNextResultPriority_nothingToDo() {
+    expect(manager.getNextResultPriority(), WorkOrderPriority.NONE);
+  }
+
+  void test_resultsComputed_isLibrary() {
+    manager.unknownSourceQueue.addAll([source1, source2, source3]);
+    manager.resultsComputed(source2, {SOURCE_KIND: SourceKind.LIBRARY});
+    expect_librarySourceQueue([source2]);
+    expect_unknownSourceQueue([source1, source3]);
+  }
+
+  void test_resultsComputed_isPart() {
+    manager.unknownSourceQueue.addAll([source1, source2, source3]);
+    manager.resultsComputed(source2, {SOURCE_KIND: SourceKind.PART});
+    expect_librarySourceQueue([]);
+    expect_unknownSourceQueue([source1, source3]);
+  }
+
+  void test_resultsComputed_noSourceKind() {
+    manager.unknownSourceQueue.addAll([source1, source2]);
+    manager.resultsComputed(source1, {});
+    expect_librarySourceQueue([]);
+    expect_unknownSourceQueue([source1, source2]);
+  }
+
+  void test_resultsComputed_notDart() {
+    manager.unknownSourceQueue.addAll([source1, source2]);
+    manager.resultsComputed(new TestSource('test.html'), {});
+    expect_librarySourceQueue([]);
+    expect_unknownSourceQueue([source1, source2]);
+  }
+}
+
+class _InternalAnalysisContextMock extends TypedMock
+    implements InternalAnalysisContext {
+  @override
+  AnalysisCache analysisCache;
+
+  _InternalAnalysisContextMock() {
+    analysisCache = new AnalysisCache([new UniversalCachePartition(this)]);
+  }
+
+  @override
+  CacheEntry getCacheEntry(AnalysisTarget target) {
+    CacheEntry entry = analysisCache.get(target);
+    if (entry == null) {
+      entry = new CacheEntry(target);
+      analysisCache.put(entry);
+    }
+    return entry;
+  }
+
+  noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
+}
diff --git a/pkg/analyzer/test/src/task/driver_test.dart b/pkg/analyzer/test/src/task/driver_test.dart
index d69dbe4..d7005bd3 100644
--- a/pkg/analyzer/test/src/task/driver_test.dart
+++ b/pkg/analyzer/test/src/task/driver_test.dart
@@ -5,19 +5,23 @@
 library test.src.task.driver_test;
 
 import 'package:analyzer/src/context/cache.dart';
-import 'package:analyzer/src/context/context.dart';
 import 'package:analyzer/src/generated/engine.dart'
-    hide AnalysisContextImpl, AnalysisTask;
+    hide
+        AnalysisCache,
+        AnalysisContextImpl,
+        AnalysisTask,
+        UniversalCachePartition,
+        WorkManager;
 import 'package:analyzer/src/generated/java_engine.dart';
 import 'package:analyzer/src/task/driver.dart';
 import 'package:analyzer/src/task/inputs.dart';
 import 'package:analyzer/src/task/manager.dart';
 import 'package:analyzer/task/model.dart';
+import 'package:typed_mock/typed_mock.dart';
 import 'package:unittest/unittest.dart';
 
 import '../../generated/test_support.dart';
 import '../../reflective_tests.dart';
-import '../context/abstract_context.dart';
 import 'test_support.dart';
 
 main() {
@@ -27,10 +31,41 @@
   runReflectiveTests(WorkItemTest);
 }
 
+class AbstractDriverTest {
+  TaskManager taskManager = new TaskManager();
+  List<WorkManager> workManagers = <WorkManager>[];
+  InternalAnalysisContext context = new _InternalAnalysisContextMock();
+  AnalysisDriver analysisDriver;
+
+  void setUp() {
+    context = new _InternalAnalysisContextMock();
+    analysisDriver = new AnalysisDriver(taskManager, workManagers, context);
+  }
+}
+
 @reflectiveTest
-class AnalysisDriverTest extends AbstractContextTest {
-  AnalysisContextImpl createAnalysisContext() {
-    return new _TestContext();
+class AnalysisDriverTest extends AbstractDriverTest {
+  WorkManager workManager1 = new _WorkManagerMock();
+  WorkManager workManager2 = new _WorkManagerMock();
+
+  AnalysisTarget target1 = new TestSource('/1.dart');
+  AnalysisTarget target2 = new TestSource('/2.dart');
+
+  ResultDescriptor result1 = new ResultDescriptor('result1', -1);
+  ResultDescriptor result2 = new ResultDescriptor('result2', -2);
+
+  TaskDescriptor descriptor1;
+  TaskDescriptor descriptor2;
+
+  void setUp() {
+    super.setUp();
+    when(workManager1.getNextResultPriority())
+        .thenReturn(WorkOrderPriority.NONE);
+    when(workManager2.getNextResultPriority())
+        .thenReturn(WorkOrderPriority.NONE);
+
+    workManagers.add(workManager1);
+    workManagers.add(workManager2);
   }
 
   test_computeResult() {
@@ -53,75 +88,43 @@
     expect(analysisDriver.taskManager, taskManager);
   }
 
-  test_createNextWorkOrder_complete() {
-    AnalysisTarget priorityTarget = new TestSource();
-    AnalysisTarget normalTarget = new TestSource();
-    ResultDescriptor result = new ResultDescriptor('result', null);
-    TaskDescriptor descriptor = new TaskDescriptor('task',
-        (context, target) => new TestAnalysisTask(context, target),
-        (target) => {}, [result]);
-    taskManager.addGeneralResult(result);
-    taskManager.addTaskDescriptor(descriptor);
-    context.priorityTargets.add(priorityTarget);
-    context.getCacheEntry(priorityTarget).setValue(
-        result, '', TargetedResult.EMPTY_LIST, null);
-    context.explicitTargets.add(normalTarget);
-    context.getCacheEntry(priorityTarget).setValue(
-        result, '', TargetedResult.EMPTY_LIST, null);
-
-    expect(analysisDriver.createNextWorkOrder(), isNull);
-  }
-
-  test_createNextWorkOrder_normalTarget() {
-    AnalysisTarget priorityTarget = new TestSource();
-    AnalysisTarget normalTarget = new TestSource();
-    ResultDescriptor result = new ResultDescriptor('result', null);
-    TaskDescriptor descriptor = new TaskDescriptor('task',
-        (context, target) => new TestAnalysisTask(context, target),
-        (target) => {}, [result]);
-    taskManager.addGeneralResult(result);
-    taskManager.addTaskDescriptor(descriptor);
-    context.priorityTargets.add(priorityTarget);
-    context.getCacheEntry(priorityTarget).setValue(
-        result, '', TargetedResult.EMPTY_LIST, null);
-    context.explicitTargets.add(normalTarget);
-    context.getCacheEntry(normalTarget).setState(result, CacheState.INVALID);
-
+  test_createNextWorkOrder_highLow() {
+    _configureDescriptors12();
+    when(workManager1.getNextResultPriority())
+        .thenReturn(WorkOrderPriority.PRIORITY);
+    when(workManager2.getNextResultPriority())
+        .thenReturn(WorkOrderPriority.NORMAL);
+    when(workManager1.getNextResult())
+        .thenReturn(new TargetedResult(target1, result1));
     WorkOrder workOrder = analysisDriver.createNextWorkOrder();
     expect(workOrder, isNotNull);
     expect(workOrder.moveNext(), true);
-    expect(workOrder.currentItem.target, normalTarget);
+    expect(workOrder.currentItem.target, target1);
+    expect(workOrder.currentItem.descriptor, descriptor1);
   }
 
-  test_createNextWorkOrder_noTargets() {
-    ResultDescriptor result = new ResultDescriptor('result', null);
-    TaskDescriptor descriptor = new TaskDescriptor('task',
-        (context, target) => new TestAnalysisTask(context, target),
-        (target) => {}, [result]);
-    taskManager.addGeneralResult(result);
-    taskManager.addTaskDescriptor(descriptor);
-
-    expect(analysisDriver.createNextWorkOrder(), isNull);
-  }
-
-  test_createNextWorkOrder_priorityTarget() {
-    AnalysisTarget priorityTarget = new TestSource();
-    AnalysisTarget normalTarget = new TestSource();
-    ResultDescriptor result = new ResultDescriptor('result', null);
-    TaskDescriptor descriptor = new TaskDescriptor('task',
-        (context, target) => new TestAnalysisTask(context, target),
-        (target) => {}, [result]);
-    taskManager.addGeneralResult(result);
-    taskManager.addTaskDescriptor(descriptor);
-    context.priorityTargets.add(priorityTarget);
-    context.getCacheEntry(priorityTarget).setState(result, CacheState.INVALID);
-    context.explicitTargets.add(normalTarget);
-    context.getCacheEntry(normalTarget).setState(result, CacheState.INVALID);
-
+  test_createNextWorkOrder_lowHigh() {
+    _configureDescriptors12();
+    when(workManager1.getNextResultPriority())
+        .thenReturn(WorkOrderPriority.NORMAL);
+    when(workManager2.getNextResultPriority())
+        .thenReturn(WorkOrderPriority.PRIORITY);
+    when(workManager2.getNextResult())
+        .thenReturn(new TargetedResult(target1, result1));
     WorkOrder workOrder = analysisDriver.createNextWorkOrder();
     expect(workOrder, isNotNull);
     expect(workOrder.moveNext(), true);
-    expect(workOrder.currentItem.target, priorityTarget);
+    expect(workOrder.currentItem.target, target1);
+    expect(workOrder.currentItem.descriptor, descriptor1);
+  }
+
+  test_createNextWorkOrder_none() {
+    _configureDescriptors12();
+    when(workManager1.getNextResultPriority())
+        .thenReturn(WorkOrderPriority.NONE);
+    when(workManager2.getNextResultPriority())
+        .thenReturn(WorkOrderPriority.NONE);
+    expect(analysisDriver.createNextWorkOrder(), isNull);
   }
 
   test_createWorkOrderForResult_error() {
@@ -160,7 +163,7 @@
     AnalysisTarget target = new TestSource();
     ResultDescriptor result = new ResultDescriptor('result', null);
     context.getCacheEntry(target).setValue(
-        result, '', TargetedResult.EMPTY_LIST, null);
+        result, '', TargetedResult.EMPTY_LIST);
 
     expect(analysisDriver.createWorkOrderForResult(target, result), isNull);
   }
@@ -198,15 +201,11 @@
   }
 
   test_performAnalysisTask() {
-    AnalysisTarget target = new TestSource();
-    ResultDescriptor result = new ResultDescriptor('result', null);
-    TestAnalysisTask task;
-    TaskDescriptor descriptor = new TaskDescriptor(
-        'task', (context, target) => task, (target) => {}, [result]);
-    task = new TestAnalysisTask(context, target, descriptor: descriptor);
-    taskManager.addTaskDescriptor(descriptor);
-    taskManager.addGeneralResult(result);
-    context.priorityTargets.add(target);
+    _configureDescriptors12();
+    when(workManager1.getNextResultPriority()).thenReturnList(
+        <WorkOrderPriority>[WorkOrderPriority.NORMAL, WorkOrderPriority.NONE]);
+    when(workManager1.getNextResult())
+        .thenReturn(new TargetedResult(target1, result1));
 
     expect(analysisDriver.performAnalysisTask(), true);
     expect(analysisDriver.performAnalysisTask(), true);
@@ -232,8 +231,11 @@
     task2 = new TestAnalysisTask(context, target, descriptor: descriptor2);
     taskManager.addTaskDescriptor(descriptor1);
     taskManager.addTaskDescriptor(descriptor2);
-    context.explicitTargets.add(target);
-    taskManager.addGeneralResult(resultB);
+    // configure WorkManager
+    when(workManager1.getNextResultPriority()).thenReturnList(
+        <WorkOrderPriority>[WorkOrderPriority.NORMAL, WorkOrderPriority.NONE]);
+    when(workManager1.getNextResult())
+        .thenReturn(new TargetedResult(target, resultB));
     // prepare work order
     expect(analysisDriver.performAnalysisTask(), true);
     expect(analysisDriver.performAnalysisTask(), true);
@@ -261,8 +263,11 @@
         descriptor: descriptor2, value: 20);
     taskManager.addTaskDescriptor(descriptor1);
     taskManager.addTaskDescriptor(descriptor2);
-    context.explicitTargets.add(target);
-    taskManager.addGeneralResult(resultB);
+    // configure WorkManager
+    when(workManager1.getNextResultPriority()).thenReturnList(
+        <WorkOrderPriority>[WorkOrderPriority.NORMAL, WorkOrderPriority.NONE]);
+    when(workManager1.getNextResult())
+        .thenReturn(new TargetedResult(target, resultB));
     // prepare work order
     expect(analysisDriver.performAnalysisTask(), true);
     expect(context.getCacheEntry(target).getValue(resultA), -1);
@@ -279,32 +284,6 @@
     expect(analysisDriver.performAnalysisTask(), false);
   }
 
-  test_performAnalysisTask_recordMemento() {
-    AnalysisTarget target = new TestSource();
-    ResultDescriptor result = new ResultDescriptor('result', -1);
-    // configure tasks
-    TestAnalysisTask task;
-    TaskDescriptor descriptor = new TaskDescriptor(
-        'task', (context, target) => task, (target) => {}, [result]);
-    task = new TestAnalysisTask(context, target,
-        descriptor: descriptor,
-        memento: 'my mem',
-        results: [result],
-        value: 10);
-    taskManager.addTaskDescriptor(descriptor);
-    context.explicitTargets.add(target);
-    taskManager.addGeneralResult(result);
-    // prepare work order
-    expect(analysisDriver.performAnalysisTask(), true);
-    expect(context.getCacheEntry(target).getValue(result), -1);
-    // compute result
-    expect(analysisDriver.performAnalysisTask(), true);
-    expect(context.getCacheEntry(target).getValue(result), 10);
-    expect(context.getCacheEntry(target).getMemento(result), 'my mem');
-    // done
-    expect(analysisDriver.performAnalysisTask(), false);
-  }
-
   test_performWorkItem_exceptionInTask() {
     AnalysisTarget target = new TestSource();
     ResultDescriptor result = new ResultDescriptor('result', null);
@@ -315,7 +294,7 @@
         'task', (context, target) => task, (target) => {}, [result]);
     task = new TestAnalysisTask(context, target,
         descriptor: descriptor, exception: exception);
-    WorkItem item = new WorkItem(context, target, descriptor, null);
+    WorkItem item = new WorkItem(context, target, descriptor);
 
     analysisDriver.performWorkItem(item);
     CacheEntry targetEntry = context.getCacheEntry(item.target);
@@ -330,7 +309,7 @@
     TaskDescriptor descriptor = new TaskDescriptor(
         'task', (context, target) => task, (target) => {}, [result]);
     task = new TestAnalysisTask(context, target, descriptor: descriptor);
-    WorkItem item = new WorkItem(context, target, descriptor, null);
+    WorkItem item = new WorkItem(context, target, descriptor);
 
     analysisDriver.performWorkItem(item);
     CacheEntry targetEntry = context.getCacheEntry(item.target);
@@ -346,7 +325,7 @@
         (target) => {}, [result]);
     CaughtException exception =
         new CaughtException(new AnalysisException(), null);
-    WorkItem item = new WorkItem(context, target, descriptor, null);
+    WorkItem item = new WorkItem(context, target, descriptor);
     item.exception = exception;
 
     analysisDriver.performWorkItem(item);
@@ -362,12 +341,24 @@
         (target) => {'one': inputResult.of(target)},
         [new ResultDescriptor('output', null)]);
     analysisDriver.currentWorkOrder =
-        new WorkOrder(taskManager, new WorkItem(null, null, descriptor, null));
+        new WorkOrder(taskManager, new WorkItem(null, null, descriptor));
 
     analysisDriver.reset();
     expect(analysisDriver.currentWorkOrder, isNull);
   }
 
+  void _configureDescriptors12() {
+    descriptor1 = new TaskDescriptor('task1', (context, target) =>
+            new TestAnalysisTask(context, target, descriptor: descriptor1),
+        (target) => {}, [result1]);
+    taskManager.addTaskDescriptor(descriptor1);
+
+    descriptor2 = new TaskDescriptor('task2', (context, target) =>
+            new TestAnalysisTask(context, target, descriptor: descriptor1),
+        (target) => {}, [result2]);
+    taskManager.addTaskDescriptor(descriptor2);
+  }
+
   /**
    * [complete] is `true` if the value of the result has already been computed.
    * [priorityTarget] is `true` if the target is in the list of priority
@@ -395,7 +386,7 @@
     }
     if (complete) {
       context.getCacheEntry(target).setValue(
-          result, '', TargetedResult.EMPTY_LIST, null);
+          result, '', TargetedResult.EMPTY_LIST);
     } else {
       context.getCacheEntry(target).setState(result, CacheState.INVALID);
     }
@@ -413,22 +404,18 @@
 }
 
 @reflectiveTest
-class WorkItemTest extends EngineTestCase {
+class WorkItemTest extends AbstractDriverTest {
   test_buildTask_complete() {
-    AnalysisContext context = new AnalysisContextImpl();
     AnalysisTarget target = new TestSource();
     TaskDescriptor descriptor = new TaskDescriptor('task',
         (context, target) => new TestAnalysisTask(context, target),
         (target) => {}, [new ResultDescriptor('output', null)]);
-    Object memento = new Object();
-    WorkItem item = new WorkItem(context, target, descriptor, memento);
+    WorkItem item = new WorkItem(context, target, descriptor);
     AnalysisTask task = item.buildTask();
     expect(task, isNotNull);
-    expect(task.inputMemento, memento);
   }
 
   test_buildTask_incomplete() {
-    AnalysisContext context = new AnalysisContextImpl();
     AnalysisTarget target = new TestSource();
     ResultDescriptor inputResult = new ResultDescriptor('input', null);
     List<ResultDescriptor> outputResults =
@@ -436,40 +423,33 @@
     TaskDescriptor descriptor = new TaskDescriptor('task', (context, target) =>
             new TestAnalysisTask(context, target, results: outputResults),
         (target) => {'one': inputResult.of(target)}, outputResults);
-    WorkItem item = new WorkItem(context, target, descriptor, null);
+    WorkItem item = new WorkItem(context, target, descriptor);
     expect(() => item.buildTask(), throwsStateError);
   }
 
   test_create() {
-    AnalysisContext context = new AnalysisContextImpl();
     AnalysisTarget target = new TestSource();
-    Object memento = new Object();
     TaskDescriptor descriptor = new TaskDescriptor(
         'task', null, (target) => {}, [new ResultDescriptor('result', null)]);
-    WorkItem item = new WorkItem(context, target, descriptor, memento);
+    WorkItem item = new WorkItem(context, target, descriptor);
     expect(item, isNotNull);
     expect(item.context, context);
     expect(item.descriptor, descriptor);
-    expect(item.inputMemento, memento);
     expect(item.target, target);
   }
 
   test_gatherInputs_complete() {
-    TaskManager manager = new TaskManager();
-    AnalysisContext context = new AnalysisContextImpl();
     AnalysisTarget target = new TestSource();
     TaskDescriptor descriptor = new TaskDescriptor('task',
         (context, target) => new TestAnalysisTask(context, target),
         (target) => {}, [new ResultDescriptor('output', null)]);
-    WorkItem item = new WorkItem(context, target, descriptor, null);
-    WorkItem result = item.gatherInputs(manager);
+    WorkItem item = new WorkItem(context, target, descriptor);
+    WorkItem result = item.gatherInputs(taskManager);
     expect(result, isNull);
     expect(item.exception, isNull);
   }
 
   test_gatherInputs_incomplete() {
-    TaskManager manager = new TaskManager();
-    AnalysisContextImpl context = new AnalysisContextImpl();
     AnalysisTarget target = new TestSource();
     ResultDescriptor resultA = new ResultDescriptor('resultA', null);
     ResultDescriptor resultB = new ResultDescriptor('resultB', null);
@@ -480,33 +460,23 @@
     TaskDescriptor task2 = new TaskDescriptor('task',
         (context, target) => new TestAnalysisTask(context, target),
         (target) => {'one': resultA.of(target)}, [resultB]);
-    manager.addTaskDescriptor(task1);
-    manager.addTaskDescriptor(task2);
-    // configure memento for "resultA"
-    dynamic memento = 'main() {}';
-    {
-      CacheEntry cacheEntry = context.getCacheEntry(target);
-      cacheEntry.setValue(resultA, null, TargetedResult.EMPTY_LIST, memento);
-      cacheEntry.setState(resultA, CacheState.INVALID);
-    }
+    taskManager.addTaskDescriptor(task1);
+    taskManager.addTaskDescriptor(task2);
     // gather inputs
-    WorkItem item = new WorkItem(context, target, task2, null);
-    WorkItem inputItem = item.gatherInputs(manager);
+    WorkItem item = new WorkItem(context, target, task2);
+    WorkItem inputItem = item.gatherInputs(taskManager);
     expect(inputItem, isNotNull);
-    expect(inputItem.inputMemento, memento);
   }
 
   test_gatherInputs_invalid() {
-    TaskManager manager = new TaskManager();
-    AnalysisContext context = new AnalysisContextImpl();
     AnalysisTarget target = new TestSource();
     ResultDescriptor inputResult = new ResultDescriptor('input', null);
     TaskDescriptor descriptor = new TaskDescriptor('task',
         (context, target) => new TestAnalysisTask(context, target),
         (target) => {'one': inputResult.of(target)},
         [new ResultDescriptor('output', null)]);
-    WorkItem item = new WorkItem(context, target, descriptor, null);
-    WorkItem result = item.gatherInputs(manager);
+    WorkItem item = new WorkItem(context, target, descriptor);
+    WorkItem result = item.gatherInputs(taskManager);
     expect(result, isNull);
     expect(item.exception, isNotNull);
   }
@@ -519,7 +489,7 @@
     TaskDescriptor descriptor = new TaskDescriptor(
         'task', null, (_) => {}, [new ResultDescriptor('result', null)]);
     WorkOrder order =
-        new WorkOrder(manager, new WorkItem(null, null, descriptor, null));
+        new WorkOrder(manager, new WorkItem(null, null, descriptor));
     expect(order, isNotNull);
     expect(order.currentItem, isNull);
     expect(order.pendingItems, hasLength(1));
@@ -530,7 +500,7 @@
     TaskManager manager = new TaskManager();
     TaskDescriptor descriptor = new TaskDescriptor(
         'task', null, (_) => {}, [new ResultDescriptor('result', null)]);
-    WorkItem workItem = new WorkItem(null, null, descriptor, null);
+    WorkItem workItem = new WorkItem(null, null, descriptor);
     WorkOrder order = new WorkOrder(manager, workItem);
     // "item" has no child items
     expect(order.moveNext(), isTrue);
@@ -542,13 +512,36 @@
 }
 
 /**
- * An [AnalysisContextImpl] which allows to set explicit and implicit targets
- * directly.
+ * A dummy [InternalAnalysisContext] that does not use [AnalysisDriver] itself,
+ * but provides enough implementation for it to function.
  */
-class _TestContext extends AnalysisContextImpl {
+class _InternalAnalysisContextMock extends TypedMock
+    implements InternalAnalysisContext {
+  AnalysisCache analysisCache;
+
   @override
   List<AnalysisTarget> explicitTargets = <AnalysisTarget>[];
 
   @override
   List<AnalysisTarget> priorityTargets = <AnalysisTarget>[];
+
+  _InternalAnalysisContextMock() {
+    analysisCache = new AnalysisCache([new UniversalCachePartition(this)]);
+  }
+
+  @override
+  CacheEntry getCacheEntry(AnalysisTarget target) {
+    CacheEntry entry = analysisCache.get(target);
+    if (entry == null) {
+      entry = new CacheEntry(target);
+      analysisCache.put(entry);
+    }
+    return entry;
+  }
+
+  noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
+}
+
+class _WorkManagerMock extends TypedMock implements WorkManager {
+  noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
 }
diff --git a/pkg/analyzer/test/src/task/incremental_element_builder_test.dart b/pkg/analyzer/test/src/task/incremental_element_builder_test.dart
new file mode 100644
index 0000000..dd05bcb
--- /dev/null
+++ b/pkg/analyzer/test/src/task/incremental_element_builder_test.dart
@@ -0,0 +1,597 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library test.src.task.incremental_element_builder_test;
+
+import 'package:analyzer/src/generated/ast.dart';
+import 'package:analyzer/src/generated/element.dart';
+import 'package:analyzer/src/generated/source.dart';
+import 'package:analyzer/src/task/incremental_element_builder.dart';
+import 'package:unittest/unittest.dart';
+
+import '../../reflective_tests.dart';
+import '../context/abstract_context.dart';
+
+main() {
+  groupSep = ' | ';
+  runReflectiveTests(IncrementalCompilationUnitElementBuilderTest);
+}
+
+@reflectiveTest
+class IncrementalCompilationUnitElementBuilderTest extends AbstractContextTest {
+  Source source;
+  String oldCode;
+  CompilationUnit oldUnit;
+  CompilationUnitElement unitElement;
+
+  String newCode;
+  CompilationUnit newUnit;
+
+  String getNodeText(AstNode node) {
+    return newCode.substring(node.offset, node.end);
+  }
+
+  test_directives_add() {
+    _buildOldUnit(r'''
+library test;
+import 'dart:math';
+''');
+    _buildNewUnit(r'''
+library test;
+import 'dart:async';
+import 'dart:math';
+''');
+    var oldDirectives = oldUnit.directives;
+    var newDirectives = newUnit.directives;
+    {
+      Directive newNode = newDirectives[0];
+      expect(newNode, same(oldDirectives[0]));
+      expect(getNodeText(newNode), "library test;");
+      LibraryElement element = newNode.element;
+      expect(element, isNotNull);
+      expect(element.nameOffset, newCode.indexOf('test;'));
+    }
+    {
+      Directive newNode = newDirectives[1];
+      expect(getNodeText(newNode), "import 'dart:async';");
+      ImportElement element = newNode.element;
+      expect(element, isNull);
+    }
+    {
+      Directive newNode = newDirectives[2];
+      expect(newNode, same(oldDirectives[1]));
+      expect(getNodeText(newNode), "import 'dart:math';");
+      ImportElement element = newNode.element;
+      expect(element, isNotNull);
+      expect(element.nameOffset, newCode.indexOf("import 'dart:math';"));
+    }
+  }
+
+  test_directives_keepOffset_partOf() {
+    String libCode = '''
+// comment to shift tokens
+library my_lib;
+part 'test.dart';
+''';
+    Source libSource = newSource('/lib.dart', libCode);
+    _buildOldUnit(r'''
+part of my_lib;
+class A {}
+''', libSource);
+    _buildNewUnit(r'''
+part of my_lib;
+class A {}
+''');
+    var oldDirectives = oldUnit.directives;
+    var newDirectives = newUnit.directives;
+    {
+      Directive newNode = newDirectives[0];
+      expect(newNode, same(oldDirectives[0]));
+      expect(getNodeText(newNode), 'part of my_lib;');
+      LibraryElement element = newNode.element;
+      expect(element, isNotNull);
+      expect(element.nameOffset, libCode.indexOf('my_lib;'));
+    }
+  }
+
+  test_directives_remove() {
+    _buildOldUnit(r'''
+library test;
+import 'dart:async';
+import 'dart:math';
+''');
+    _buildNewUnit(r'''
+library test;
+import 'dart:math';
+''');
+    var oldDirectives = oldUnit.directives;
+    var newDirectives = newUnit.directives;
+    {
+      Directive newNode = newDirectives[0];
+      expect(newNode, same(oldDirectives[0]));
+      expect(getNodeText(newNode), "library test;");
+      LibraryElement element = newNode.element;
+      expect(element, isNotNull);
+      expect(element.nameOffset, newCode.indexOf('test;'));
+    }
+    {
+      Directive newNode = newDirectives[1];
+      expect(newNode, same(oldDirectives[2]));
+      expect(getNodeText(newNode), "import 'dart:math';");
+      ImportElement element = newNode.element;
+      expect(element, isNotNull);
+      expect(element.nameOffset, newCode.indexOf("import 'dart:math';"));
+    }
+  }
+
+  test_directives_reorder() {
+    _buildOldUnit(r'''
+library test;
+import  'dart:math' as m;
+import 'dart:async';
+''');
+    _buildNewUnit(r'''
+library test;
+import 'dart:async';
+import 'dart:math' as m;
+''');
+    var oldDirectives = oldUnit.directives;
+    var newDirectives = newUnit.directives;
+    {
+      Directive newNode = newDirectives[0];
+      expect(newNode, same(oldDirectives[0]));
+      expect(getNodeText(newNode), "library test;");
+      LibraryElement element = newNode.element;
+      expect(element, isNotNull);
+      expect(element.nameOffset, newCode.indexOf('test;'));
+    }
+    {
+      Directive newNode = newDirectives[1];
+      expect(newNode, same(oldDirectives[2]));
+      expect(getNodeText(newNode), "import 'dart:async';");
+      ImportElement element = newNode.element;
+      expect(element, isNotNull);
+      expect(element.nameOffset, newCode.indexOf("import 'dart:async';"));
+    }
+    {
+      Directive newNode = newDirectives[2];
+      expect(newNode, same(oldDirectives[1]));
+      expect(getNodeText(newNode), "import 'dart:math' as m;");
+      ImportElement element = newNode.element;
+      expect(element, isNotNull);
+      expect(element.nameOffset, newCode.indexOf("import 'dart:math' as m;"));
+      expect(element.prefix.nameOffset, newCode.indexOf("m;"));
+    }
+  }
+
+  test_directives_sameOrder_insertSpaces() {
+    _buildOldUnit(r'''
+library test;
+import 'dart:async';
+import 'dart:math';
+''');
+    _buildNewUnit(r'''
+library test;
+
+import 'dart:async' ;
+import  'dart:math';
+''');
+    var oldDirectives = oldUnit.directives;
+    var newDirectives = newUnit.directives;
+    {
+      Directive newNode = newDirectives[0];
+      expect(newNode, same(oldDirectives[0]));
+      expect(getNodeText(newNode), "library test;");
+      LibraryElement element = newNode.element;
+      expect(element, isNotNull);
+      expect(element.nameOffset, newCode.indexOf('test;'));
+    }
+    {
+      Directive newNode = newDirectives[1];
+      expect(newNode, same(oldDirectives[1]));
+      expect(getNodeText(newNode), "import 'dart:async' ;");
+      ImportElement element = newNode.element;
+      expect(element, isNotNull);
+      expect(element.nameOffset, newCode.indexOf("import 'dart:async' ;"));
+    }
+    {
+      Directive newNode = newDirectives[2];
+      expect(newNode, same(oldDirectives[2]));
+      expect(getNodeText(newNode), "import  'dart:math';");
+      ImportElement element = newNode.element;
+      expect(element, isNotNull);
+      expect(element.nameOffset, newCode.indexOf("import  'dart:math';"));
+    }
+  }
+
+  test_directives_sameOrder_removeSpaces() {
+    _buildOldUnit(r'''
+library test;
+
+import 'dart:async' ;
+import  'dart:math';
+''');
+    _buildNewUnit(r'''
+library test;
+import 'dart:async';
+import 'dart:math';
+''');
+    var oldDirectives = oldUnit.directives;
+    var newDirectives = newUnit.directives;
+    {
+      Directive newNode = newDirectives[0];
+      expect(newNode, same(oldDirectives[0]));
+      expect(getNodeText(newNode), "library test;");
+      LibraryElement element = newNode.element;
+      expect(element, isNotNull);
+      expect(element.nameOffset, newCode.indexOf('test;'));
+    }
+    {
+      Directive newNode = newDirectives[1];
+      expect(newNode, same(oldDirectives[1]));
+      expect(getNodeText(newNode), "import 'dart:async';");
+      ImportElement element = newNode.element;
+      expect(element, isNotNull);
+      expect(element.nameOffset, newCode.indexOf("import 'dart:async';"));
+    }
+    {
+      Directive newNode = newDirectives[2];
+      expect(newNode, same(oldDirectives[2]));
+      expect(getNodeText(newNode), "import 'dart:math';");
+      ImportElement element = newNode.element;
+      expect(element, isNotNull);
+      expect(element.nameOffset, newCode.indexOf("import 'dart:math';"));
+    }
+  }
+
+  test_unitMembers_accessor_add() {
+    _buildOldUnit(r'''
+get a => 1;
+''');
+    _buildNewUnit(r'''
+get a => 1;
+get b => 2;
+''');
+    List<CompilationUnitMember> oldNodes = oldUnit.declarations;
+    List<CompilationUnitMember> newNodes = newUnit.declarations;
+    // nodes
+    FunctionDeclaration node1 = newNodes[0];
+    FunctionDeclaration node2 = newNodes[1];
+    expect(node1, same(oldNodes[0]));
+    // elements
+    PropertyAccessorElement elementA = node1.element;
+    PropertyAccessorElement elementB = node2.element;
+    expect(elementA, isNotNull);
+    expect(elementB, isNotNull);
+    expect(elementA.name, 'a');
+    expect(elementB.name, 'b');
+    // unit.types
+    expect(unitElement.topLevelVariables,
+        unorderedEquals([elementA.variable, elementB.variable]));
+    expect(unitElement.accessors, unorderedEquals([elementA, elementB]));
+  }
+
+  test_unitMembers_class_add() {
+    _buildOldUnit(r'''
+class A {}
+''');
+    _buildNewUnit(r'''
+class A {}
+class B {}
+''');
+    List<CompilationUnitMember> oldNodes = oldUnit.declarations;
+    List<CompilationUnitMember> newNodes = newUnit.declarations;
+    // nodes
+    CompilationUnitMember nodeA = newNodes[0];
+    CompilationUnitMember nodeB = newNodes[1];
+    expect(nodeA, same(oldNodes[0]));
+    // elements
+    ClassElement elementA = nodeA.element;
+    ClassElement elementB = nodeB.element;
+    expect(elementA, isNotNull);
+    expect(elementB, isNotNull);
+    expect(elementA.name, 'A');
+    expect(elementB.name, 'B');
+    // unit.types
+    expect(unitElement.types, unorderedEquals([elementA, elementB]));
+  }
+
+  test_unitMembers_class_comments() {
+    _buildOldUnit(r'''
+/// reference [bool] type.
+class A {}
+/// reference [int] type.
+class B {}
+/// reference [double] and [B] types.
+class C {}
+''');
+    _buildNewUnit(r'''
+/// reference [double] and [B] types.
+class C {}
+/// reference [bool] type.
+class A {}
+/// reference [int] type.
+class B {}
+''');
+    List<CompilationUnitMember> oldNodes = oldUnit.declarations;
+    List<CompilationUnitMember> newNodes = newUnit.declarations;
+    {
+      CompilationUnitMember newNode = newNodes[0];
+      expect(newNode, same(oldNodes[2]));
+      expect(getNodeText(newNode), r'''
+/// reference [double] and [B] types.
+class C {}''');
+      ClassElement element = newNode.element;
+      expect(element, isNotNull);
+      expect(element.name, 'C');
+      expect(element.nameOffset, newCode.indexOf('C {}'));
+      // [double] and [B] are still resolved
+      {
+        var docReferences = newNode.documentationComment.references;
+        expect(docReferences, hasLength(2));
+        expect(docReferences[0].identifier.staticElement.name, 'double');
+        expect(docReferences[1].identifier.staticElement,
+            same(newNodes[2].element));
+      }
+    }
+    {
+      CompilationUnitMember newNode = newNodes[1];
+      expect(newNode, same(oldNodes[0]));
+      expect(getNodeText(newNode), r'''
+/// reference [bool] type.
+class A {}''');
+      ClassElement element = newNode.element;
+      expect(element, isNotNull);
+      expect(element.name, 'A');
+      expect(element.nameOffset, newCode.indexOf('A {}'));
+      // [bool] is still resolved
+      {
+        var docReferences = newNode.documentationComment.references;
+        expect(docReferences, hasLength(1));
+        expect(docReferences[0].identifier.staticElement.name, 'bool');
+      }
+    }
+    {
+      CompilationUnitMember newNode = newNodes[2];
+      expect(newNode, same(oldNodes[1]));
+      expect(getNodeText(newNode), r'''
+/// reference [int] type.
+class B {}''');
+      ClassElement element = newNode.element;
+      expect(element, isNotNull);
+      expect(element.name, 'B');
+      expect(element.nameOffset, newCode.indexOf('B {}'));
+      // [int] is still resolved
+      {
+        var docReferences = newNode.documentationComment.references;
+        expect(docReferences, hasLength(1));
+        expect(docReferences[0].identifier.staticElement.name, 'int');
+      }
+    }
+  }
+
+  test_unitMembers_class_reorder() {
+    _buildOldUnit(r'''
+class A {}
+class B {}
+class C {}
+''');
+    _buildNewUnit(r'''
+class C {}
+class A {}
+class B {}
+''');
+    List<CompilationUnitMember> oldNodes = oldUnit.declarations;
+    List<CompilationUnitMember> newNodes = newUnit.declarations;
+    {
+      CompilationUnitMember newNode = newNodes[0];
+      expect(newNode, same(oldNodes[2]));
+      expect(getNodeText(newNode), 'class C {}');
+      ClassElement element = newNode.element;
+      expect(element, isNotNull);
+      expect(element.name, 'C');
+      expect(element.nameOffset, newCode.indexOf('C {}'));
+    }
+    {
+      CompilationUnitMember newNode = newNodes[1];
+      expect(newNode, same(oldNodes[0]));
+      expect(getNodeText(newNode), 'class A {}');
+      ClassElement element = newNode.element;
+      expect(element, isNotNull);
+      expect(element.name, 'A');
+      expect(element.nameOffset, newCode.indexOf('A {}'));
+    }
+    {
+      CompilationUnitMember newNode = newNodes[2];
+      expect(newNode, same(oldNodes[1]));
+      expect(getNodeText(newNode), 'class B {}');
+      ClassElement element = newNode.element;
+      expect(element, isNotNull);
+      expect(element.name, 'B');
+      expect(element.nameOffset, newCode.indexOf('B {}'));
+    }
+  }
+
+  test_unitMembers_enum_add() {
+    _buildOldUnit(r'''
+enum A {A1, A2}
+''');
+    _buildNewUnit(r'''
+enum A {A1, A2}
+enum B {B1, B2}
+''');
+    List<CompilationUnitMember> oldNodes = oldUnit.declarations;
+    List<CompilationUnitMember> newNodes = newUnit.declarations;
+    // nodes
+    CompilationUnitMember nodeA = newNodes[0];
+    CompilationUnitMember nodeB = newNodes[1];
+    expect(nodeA, same(oldNodes[0]));
+    // elements
+    ClassElement elementA = nodeA.element;
+    ClassElement elementB = nodeB.element;
+    expect(elementA, isNotNull);
+    expect(elementB, isNotNull);
+    expect(elementA.name, 'A');
+    expect(elementB.name, 'B');
+    // unit.types
+    expect(unitElement.enums, unorderedEquals([elementA, elementB]));
+  }
+
+  test_unitMembers_function_add() {
+    _buildOldUnit(r'''
+a() {}
+''');
+    _buildNewUnit(r'''
+a() {}
+b() {}
+''');
+    List<CompilationUnitMember> oldNodes = oldUnit.declarations;
+    List<CompilationUnitMember> newNodes = newUnit.declarations;
+    // nodes
+    CompilationUnitMember nodeA = newNodes[0];
+    CompilationUnitMember nodeB = newNodes[1];
+    expect(nodeA, same(oldNodes[0]));
+    // elements
+    FunctionElement elementA = nodeA.element;
+    FunctionElement elementB = nodeB.element;
+    expect(elementA, isNotNull);
+    expect(elementB, isNotNull);
+    expect(elementA.name, 'a');
+    expect(elementB.name, 'b');
+    // unit.types
+    expect(unitElement.functions, unorderedEquals([elementA, elementB]));
+  }
+
+  test_unitMembers_functionTypeAlias_add() {
+    _buildOldUnit(r'''
+typedef A();
+''');
+    _buildNewUnit(r'''
+typedef A();
+typedef B();
+''');
+    List<CompilationUnitMember> oldNodes = oldUnit.declarations;
+    List<CompilationUnitMember> newNodes = newUnit.declarations;
+    // nodes
+    CompilationUnitMember nodeA = newNodes[0];
+    CompilationUnitMember nodeB = newNodes[1];
+    expect(nodeA, same(oldNodes[0]));
+    // elements
+    FunctionTypeAliasElement elementA = nodeA.element;
+    FunctionTypeAliasElement elementB = nodeB.element;
+    expect(elementA, isNotNull);
+    expect(elementB, isNotNull);
+    expect(elementA.name, 'A');
+    expect(elementB.name, 'B');
+    // unit.types
+    expect(
+        unitElement.functionTypeAliases, unorderedEquals([elementA, elementB]));
+  }
+
+  test_unitMembers_topLevelVariable_add() {
+    _buildOldUnit(r'''
+int a, b;
+''');
+    _buildNewUnit(r'''
+int a, b;
+int c, d;
+''');
+    List<CompilationUnitMember> oldNodes = oldUnit.declarations;
+    List<CompilationUnitMember> newNodes = newUnit.declarations;
+    // nodes
+    TopLevelVariableDeclaration node1 = newNodes[0];
+    TopLevelVariableDeclaration node2 = newNodes[1];
+    expect(node1, same(oldNodes[0]));
+    // elements
+    TopLevelVariableElement elementA = node1.variables.variables[0].element;
+    TopLevelVariableElement elementB = node1.variables.variables[1].element;
+    TopLevelVariableElement elementC = node2.variables.variables[0].element;
+    TopLevelVariableElement elementD = node2.variables.variables[1].element;
+    expect(elementA, isNotNull);
+    expect(elementB, isNotNull);
+    expect(elementC, isNotNull);
+    expect(elementD, isNotNull);
+    expect(elementA.name, 'a');
+    expect(elementB.name, 'b');
+    expect(elementC.name, 'c');
+    expect(elementD.name, 'd');
+    // unit.types
+    expect(unitElement.topLevelVariables,
+        unorderedEquals([elementA, elementB, elementC, elementD]));
+    expect(unitElement.accessors, unorderedEquals([
+      elementA.getter,
+      elementA.setter,
+      elementB.getter,
+      elementB.setter,
+      elementC.getter,
+      elementC.setter,
+      elementD.getter,
+      elementD.setter
+    ]));
+  }
+
+  test_unitMembers_topLevelVariableDeclaration() {
+    _buildOldUnit(r'''
+bool a = 1, b = 2;
+int c = 3;
+''');
+    _buildNewUnit(r'''
+int c = 3;
+
+bool a =1, b = 2;
+''');
+    List<CompilationUnitMember> oldNodes = oldUnit.declarations;
+    List<CompilationUnitMember> newNodes = newUnit.declarations;
+    {
+      TopLevelVariableDeclaration newNode = newNodes[0];
+      expect(newNode, same(oldNodes[1]));
+      expect(getNodeText(newNode), 'int c = 3;');
+      {
+        TopLevelVariableElement element =
+            newNode.variables.variables[0].element;
+        expect(element, isNotNull);
+        expect(element.name, 'c');
+        expect(element.nameOffset, newCode.indexOf('c = 3'));
+      }
+    }
+    {
+      TopLevelVariableDeclaration newNode = newNodes[1];
+      expect(newNode, same(oldNodes[0]));
+      expect(getNodeText(newNode), 'bool a =1, b = 2;');
+      {
+        TopLevelVariableElement element =
+            newNode.variables.variables[0].element;
+        expect(element, isNotNull);
+        expect(element.name, 'a');
+        expect(element.nameOffset, newCode.indexOf('a =1'));
+      }
+      {
+        TopLevelVariableElement element =
+            newNode.variables.variables[1].element;
+        expect(element, isNotNull);
+        expect(element.name, 'b');
+        expect(element.nameOffset, newCode.indexOf('b = 2'));
+      }
+    }
+  }
+
+  void _buildNewUnit(String newCode) {
+    this.newCode = newCode;
+    context.setContents(source, newCode);
+    newUnit = context.parseCompilationUnit(source);
+    new IncrementalCompilationUnitElementBuilder(oldUnit, newUnit).build();
+    expect(newUnit.element, unitElement);
+  }
+
+  void _buildOldUnit(String oldCode, [Source libSource]) {
+    this.oldCode = oldCode;
+    source = newSource('/test.dart', oldCode);
+    if (libSource == null) {
+      libSource = source;
+    }
+    oldUnit = context.resolveCompilationUnit2(source, libSource);
+    unitElement = oldUnit.element;
+    expect(unitElement, isNotNull);
+  }
+}
diff --git a/pkg/analyzer/test/src/task/model_test.dart b/pkg/analyzer/test/src/task/model_test.dart
index 5fd31ec7..b75afd6 100644
--- a/pkg/analyzer/test/src/task/model_test.dart
+++ b/pkg/analyzer/test/src/task/model_test.dart
@@ -17,8 +17,8 @@
 main() {
   groupSep = ' | ';
   runReflectiveTests(AnalysisTaskTest);
-  runReflectiveTests(ContributionPointImplTest);
   runReflectiveTests(ResultDescriptorImplTest);
+  runReflectiveTests(SimpleResultCachingPolicyTest);
   runReflectiveTests(TaskDescriptorImplTest);
 }
 
@@ -56,52 +56,20 @@
 }
 
 @reflectiveTest
-class ContributionPointImplTest extends EngineTestCase {
-  test_contributors_empty() {
-    CompositeResultDescriptorImpl point =
-        new CompositeResultDescriptorImpl('point');
-    List<ResultDescriptor> contributors = point.contributors;
-    expect(contributors, isEmpty);
-  }
-
-  test_contributors_nonEmpty() {
-    ResultDescriptorImpl result1 = new ResultDescriptorImpl('result1', null);
-    ResultDescriptorImpl result2 = new ResultDescriptorImpl('result2', null);
-    CompositeResultDescriptorImpl point =
-        new CompositeResultDescriptorImpl('point');
-    point.recordContributor(result1);
-    point.recordContributor(result2);
-    List<ResultDescriptor> contributors = point.contributors;
-    expect(contributors, isNotNull);
-    expect(contributors, hasLength(2));
-    if (!(contributors[0] == result1 && contributors[1] == result2) ||
-        (contributors[0] == result2 && contributors[1] == result1)) {
-      fail("Invalid contributors: $contributors");
-    }
-  }
-
-  test_create() {
-    expect(new CompositeResultDescriptorImpl('name'), isNotNull);
-  }
-
-  test_name() {
-    String name = 'point';
-    CompositeResultDescriptorImpl point =
-        new CompositeResultDescriptorImpl(name);
-    expect(point.name, name);
-  }
-}
-
-@reflectiveTest
 class ResultDescriptorImplTest extends EngineTestCase {
-  test_create_withContribution() {
-    CompositeResultDescriptorImpl point =
-        new CompositeResultDescriptorImpl('point');
+  test_create_withCachingPolicy() {
+    ResultCachingPolicy policy = new SimpleResultCachingPolicy(128, 16);
     ResultDescriptorImpl result =
-        new ResultDescriptorImpl('result', null, contributesTo: point);
-    expect(result, isNotNull);
-    List<ResultDescriptor> contributors = point.contributors;
-    expect(contributors, unorderedEquals([result]));
+        new ResultDescriptorImpl('result', null, cachingPolicy: policy);
+    expect(result.cachingPolicy, same(policy));
+  }
+
+  test_create_withoutCachingPolicy() {
+    ResultDescriptorImpl result = new ResultDescriptorImpl('result', null);
+    ResultCachingPolicy cachingPolicy = result.cachingPolicy;
+    expect(cachingPolicy, isNotNull);
+    expect(cachingPolicy.maxActiveSize, -1);
+    expect(cachingPolicy.maxIdleSize, -1);
   }
 
   test_create_withoutContribution() {
@@ -123,6 +91,16 @@
 }
 
 @reflectiveTest
+class SimpleResultCachingPolicyTest extends EngineTestCase {
+  test_create() {
+    ResultCachingPolicy policy = new SimpleResultCachingPolicy(256, 32);
+    expect(policy.maxActiveSize, 256);
+    expect(policy.maxIdleSize, 32);
+    expect(policy.measure(null), 1);
+  }
+}
+
+@reflectiveTest
 class TaskDescriptorImplTest extends EngineTestCase {
   test_create() {
     String name = 'name';
@@ -148,13 +126,10 @@
     AnalysisContext context = null;
     AnalysisTarget target = new TestSource();
     Map<String, dynamic> inputs = {};
-    String inputMemento = 'main() {}';
-    AnalysisTask createTask =
-        descriptor.createTask(context, target, inputs, inputMemento);
+    AnalysisTask createTask = descriptor.createTask(context, target, inputs);
     expect(createTask, isNotNull);
     expect(createTask.context, context);
     expect(createTask.inputs, inputs);
-    expect(createTask.inputMemento, inputMemento);
     expect(createTask.target, target);
   }
 }
diff --git a/pkg/analyzer/test/src/task/test_all.dart b/pkg/analyzer/test/src/task/test_all.dart
index bee52dc..2b6de23 100644
--- a/pkg/analyzer/test/src/task/test_all.dart
+++ b/pkg/analyzer/test/src/task/test_all.dart
@@ -7,8 +7,11 @@
 import 'package:unittest/unittest.dart';
 
 import 'dart_test.dart' as dart_test;
+import 'dart_work_manager_test.dart' as dart_work_manager_test;
 import 'driver_test.dart' as driver_test;
 import 'general_test.dart' as general_test;
+import 'incremental_element_builder_test.dart'
+    as incremental_element_builder_test;
 import 'inputs_test.dart' as inputs_test;
 import 'manager_test.dart' as manager_test;
 import 'model_test.dart' as model_test;
@@ -18,8 +21,10 @@
   groupSep = ' | ';
   group('task tests', () {
     dart_test.main();
+    dart_work_manager_test.main();
     driver_test.main();
     general_test.main();
+    incremental_element_builder_test.main();
     inputs_test.main();
     manager_test.main();
     model_test.main();
diff --git a/pkg/analyzer/test/src/task/test_support.dart b/pkg/analyzer/test/src/task/test_support.dart
index 7ac0d82..80cd7c3 100644
--- a/pkg/analyzer/test/src/task/test_support.dart
+++ b/pkg/analyzer/test/src/task/test_support.dart
@@ -23,11 +23,6 @@
   CaughtException exception;
 
   /**
-   * The memento to associate with the result.
-   */
-  dynamic memento;
-
-  /**
    * The results whose values are to be provided as outputs from this task.
    */
   List<ResultDescriptor> results;
@@ -38,8 +33,7 @@
   int value;
 
   TestAnalysisTask(AnalysisContext context, AnalysisTarget target,
-      {this.descriptor, this.exception, this.memento, this.results,
-      this.value: 1})
+      {this.descriptor, this.exception, this.results, this.value: 1})
       : super(context, target);
 
   @override
@@ -53,12 +47,10 @@
       for (ResultDescriptor result in results) {
         outputs[result] = value++;
       }
-      outputMemento = memento;
     } else if (descriptor != null) {
       for (ResultDescriptor result in descriptor.results) {
         outputs[result] = value++;
       }
-      outputMemento = memento;
     }
   }
 }
diff --git a/pkg/analyzer2dart/lib/src/modely.dart b/pkg/analyzer2dart/lib/src/modely.dart
index 640680f..b386d5a 100644
--- a/pkg/analyzer2dart/lib/src/modely.dart
+++ b/pkg/analyzer2dart/lib/src/modely.dart
@@ -420,7 +420,7 @@
 }
 
 class ParameterElementY extends ElementY
-    with AnalyzableElementY, AstElementY
+    with AnalyzableElementY, AstElementY, VariableElementMixin
     implements dart2js.ParameterElement {
 
   analyzer.ParameterElement get element => super.element;
@@ -459,12 +459,6 @@
   get functionDeclaration => unsupported('functionDeclaration');
 
   @override
-  get initializer => unsupported('initializer');
-
-  @override
-  get memberContext => unsupported('memberContext');
-
-  @override
   get functionSignature => unsupported('functionSignature');
 }
 
@@ -718,6 +712,9 @@
 
   @override
   get memberContext => unsupported('memberContext');
+
+  @override
+  get constant => unsupported('constant');
 }
 
 class TopLevelVariableElementY extends ElementY
@@ -861,6 +858,21 @@
 
   @override
   get nestedClosures => unsupported('nestedClosures');
+
+  @override
+  get constantConstructor => unsupported('constantConstructor');
+
+  @override
+  get isFromEnvironmentConstructor {
+    unsupported('isFromEnvironmentConstructor');
+  }
+
+  @override
+  bool get isCyclicRedirection => effectiveTarget.isRedirectingFactory;
+
+  // TODO(johnniwinther): implement redirectionDeferredPrefix
+  @override
+  dart2js.PrefixElement get redirectionDeferredPrefix => null;
 }
 
 class InstanceMethodElementY extends ElementY
diff --git a/pkg/compiler/lib/src/closure.dart b/pkg/compiler/lib/src/closure.dart
index 242fb82..355e526 100644
--- a/pkg/compiler/lib/src/closure.dart
+++ b/pkg/compiler/lib/src/closure.dart
@@ -4,20 +4,20 @@
 
 library closureToClassMapper;
 
-import "elements/elements.dart";
-import "dart2jslib.dart";
-import "dart_types.dart";
-import "js_backend/js_backend.dart" show JavaScriptBackend;
-import "scanner/scannerlib.dart" show Token;
-import "tree/tree.dart";
-import "util/util.dart";
-import "elements/modelx.dart"
+import 'constants/expressions.dart';
+import 'dart2jslib.dart';
+import 'dart_types.dart';
+import 'elements/elements.dart';
+import 'elements/modelx.dart'
     show BaseFunctionElementX,
          ClassElementX,
          ElementX,
          LocalFunctionElementX;
-import "elements/visitor.dart" show ElementVisitor;
-
+import 'elements/visitor.dart' show ElementVisitor;
+import 'js_backend/js_backend.dart' show JavaScriptBackend;
+import 'scanner/scannerlib.dart' show Token;
+import 'tree/tree.dart';
+import 'util/util.dart';
 import 'universe/universe.dart' show
     Universe;
 
@@ -151,6 +151,9 @@
 
   @override
   List<FunctionElement> get nestedClosures => const <FunctionElement>[];
+
+  @override
+  ConstantExpression get constant => null;
 }
 
 // TODO(ahe): These classes continuously cause problems.  We need to find
@@ -276,6 +279,9 @@
   ResolvedAst get resolvedAst {
     throw new UnsupportedError("BoxFieldElement.resolvedAst");
   }
+
+  @override
+  ConstantExpression get constant => null;
 }
 
 /// A local variable used encode the direct (uncaptured) references to [this].
@@ -298,7 +304,7 @@
                                 LocalFunctionElementX other,
                                 ClosureClassElement enclosing)
       : expression = other,
-        super(name, other.kind, other.modifiers, enclosing, false) {
+        super(name, other.kind, other.modifiers, enclosing) {
     asyncMarker = other.asyncMarker;
     functionSignatureCache = other.functionSignature;
   }
diff --git a/pkg/compiler/lib/src/compile_time_constants.dart b/pkg/compiler/lib/src/compile_time_constants.dart
index 83e1307..6273efa 100644
--- a/pkg/compiler/lib/src/compile_time_constants.dart
+++ b/pkg/compiler/lib/src/compile_time_constants.dart
@@ -348,7 +348,7 @@
     DartType type = elements.getType(node);
     return new AstConstant(
         context, node, new ListConstantExpression(
-            new ListConstantValue(type, argumentValues),
+            constantSystem.createList(type, argumentValues),
             type,
             argumentExpressions));
   }
@@ -479,10 +479,8 @@
   }
 
   ConstantExpression makeTypeConstant(DartType elementType) {
-    DartType constantType =
-        compiler.backend.typeImplementation.computeType(compiler);
     return new TypeConstantExpression(
-        new TypeConstantValue(elementType, constantType), elementType);
+        constantSystem.createType(compiler, elementType), elementType);
   }
 
   /// Returns true if the prefix of the send resolves to a deferred import
@@ -827,15 +825,6 @@
       CallStructure callStructure,
       List<AstConstant> normalizedArguments,
       List<AstConstant> concreteArguments) {
-    AstConstant createEvaluatedConstant(ConstantValue value) {
-      return new AstConstant(
-          context, node, new ConstructedConstantExpression(
-              value,
-              type,
-              constructor,
-              callStructure,
-              concreteArguments.map((e) => e.expression).toList()));
-    }
 
     var firstArgument = normalizedArguments[0].value;
     ConstantValue defaultValue = normalizedArguments[1].value;
@@ -881,8 +870,26 @@
       return null;
     }
 
+    String name =
+        firstArgument.primitiveValue.slowToString();
     String value =
-        compiler.fromEnvironment(firstArgument.primitiveValue.slowToString());
+        compiler.fromEnvironment(name);
+
+    AstConstant createEvaluatedConstant(ConstantValue value) {
+
+      ConstantExpression expression;
+      if (constructor == compiler.intEnvironment) {
+        expression = new IntFromEnvironmentConstantExpression(
+            value, name, normalizedArguments[1].expression);
+      } else if (constructor == compiler.boolEnvironment) {
+        expression = new BoolFromEnvironmentConstantExpression(
+            value, name, normalizedArguments[1].expression);
+      } else if (constructor == compiler.stringEnvironment) {
+        expression = new StringFromEnvironmentConstantExpression(
+            value, name, normalizedArguments[1].expression);
+      }
+      return new AstConstant(context, node, expression);
+    }
 
     if (value == null) {
       return createEvaluatedConstant(defaultValue);
diff --git a/pkg/compiler/lib/src/compiler.dart b/pkg/compiler/lib/src/compiler.dart
index 4671212..6d8b6d0 100644
--- a/pkg/compiler/lib/src/compiler.dart
+++ b/pkg/compiler/lib/src/compiler.dart
@@ -25,6 +25,7 @@
    * Invariant: [element] must be a declaration element.
    */
   final AstElement element;
+
   TreeElements get resolutionTree;
 
   WorkItem(this.element, this.compilationContext) {
@@ -186,16 +187,30 @@
 /// [WorkItem] used exclusively by the [CodegenEnqueuer].
 class CodegenWorkItem extends WorkItem {
   Registry registry;
-  final TreeElements resolutionTree;
 
-  CodegenWorkItem(AstElement element,
-                  ItemCompilationContext compilationContext)
-      : this.resolutionTree = element.resolvedAst.elements,
-        super(element, compilationContext) {
-    assert(invariant(element, resolutionTree != null,
+  factory CodegenWorkItem(
+      Compiler compiler,
+      AstElement element,
+      ItemCompilationContext compilationContext) {
+    // If this assertion fails, the resolution callbacks of the backend may be
+    // missing call of form registry.registerXXX. Alternatively, the code
+    // generation could spuriously be adding dependencies on things we know we
+    // don't need.
+    assert(invariant(element,
+        compiler.enqueuer.resolution.hasBeenResolved(element),
+        message: "$element has not been resolved."));
+    assert(invariant(element, element.resolvedAst.elements != null,
         message: 'Resolution tree is null for $element in codegen work item'));
+    return new CodegenWorkItem.internal(element, compilationContext);
   }
 
+  CodegenWorkItem.internal(
+      AstElement element,
+      ItemCompilationContext compilationContext)
+      : super(element, compilationContext);
+
+  TreeElements get resolutionTree => element.resolvedAst.elements;
+
   void run(Compiler compiler, CodegenEnqueuer world) {
     if (world.isProcessed(element)) return;
 
@@ -418,7 +433,7 @@
   /// have special treatment, such as being allowed to extends blacklisted
   /// classes or member being eagerly resolved.
   bool isBackendLibrary(LibraryElement library) {
-    // TODO(johnnwinther): Remove this when patching is only done by the
+    // TODO(johnniwinther): Remove this when patching is only done by the
     // JavaScript backend.
     Uri canonicalUri = library.canonicalUri;
     if (canonicalUri == js_backend.JavaScriptBackend.DART_JS_HELPER ||
@@ -654,7 +669,7 @@
   final CacheStrategy cacheStrategy;
 
   /**
-   * Map from token to the first preceeding comment token.
+   * Map from token to the first preceding comment token.
    */
   final TokenMap commentMap = new TokenMap();
 
@@ -852,9 +867,15 @@
   Element identicalFunction;
   Element loadLibraryFunction;
   Element functionApplyMethod;
-  Element intEnvironment;
-  Element boolEnvironment;
-  Element stringEnvironment;
+
+  /// The [int.fromEnvironment] constructor.
+  ConstructorElement intEnvironment;
+
+  /// The [bool.fromEnvironment] constructor.
+  ConstructorElement boolEnvironment;
+
+  /// The [String.fromEnvironment] constructor.
+  ConstructorElement stringEnvironment;
 
   /// Tracks elements with compile-time errors.
   final Set<Element> elementsWithCompileTimeErrors = new Set<Element>();
@@ -1053,7 +1074,7 @@
       progress = new Stopwatch()..start();
     }
 
-    // TODO(johnniwinther): Separate the dependency tracking from the enqueueing
+    // TODO(johnniwinther): Separate the dependency tracking from the enqueuing
     // for global dependencies.
     globalDependencies =
         new CodegenRegistry(this, new TreeElementMapping(null));
@@ -2420,7 +2441,10 @@
   InterfaceType get numType => numClass.computeType(compiler);
 
   @override
-  InterfaceType get stringType =>  stringClass.computeType(compiler);
+  InterfaceType get stringType => stringClass.computeType(compiler);
+
+  @override
+  InterfaceType get typeType => typeClass.computeType(compiler);
 
   @override
   InterfaceType iterableType([DartType elementType = const DynamicType()]) {
diff --git a/pkg/compiler/lib/src/constant_system_dart.dart b/pkg/compiler/lib/src/constant_system_dart.dart
index a827d59..f140cf5 100644
--- a/pkg/compiler/lib/src/constant_system_dart.dart
+++ b/pkg/compiler/lib/src/constant_system_dart.dart
@@ -394,13 +394,31 @@
 
   const DartConstantSystem();
 
+
+  @override
   IntConstantValue createInt(int i) => new IntConstantValue(i);
+
+  @override
   DoubleConstantValue createDouble(double d) => new DoubleConstantValue(d);
+
+  @override
   StringConstantValue createString(DartString string) {
     return new StringConstantValue(string);
   }
+
+  @override
   BoolConstantValue createBool(bool value) => new BoolConstantValue(value);
+
+  @override
   NullConstantValue createNull() => new NullConstantValue();
+
+  @override
+  ListConstantValue createList(InterfaceType type,
+                               List<ConstantValue> values) {
+    return new ListConstantValue(type, values);
+  }
+
+  @override
   MapConstantValue createMap(Compiler compiler,
                              InterfaceType type,
                              List<ConstantValue> keys,
@@ -408,6 +426,15 @@
     return new MapConstantValue(type, keys, values);
   }
 
+  @override
+  ConstantValue createType(Compiler compiler, DartType type) {
+    // TODO(johnniwinther): Change the `Type` type to
+    // `compiler.coreTypes.typeType` and check the backend specific value in
+    // [checkConstMapKeysDontOverrideEquals] in 'members.dart'.
+    return new TypeConstantValue(type,
+        compiler.backend.typeImplementation.computeType(compiler));
+  }
+
   bool isInt(ConstantValue constant) => constant.isInt;
   bool isDouble(ConstantValue constant) => constant.isDouble;
   bool isString(ConstantValue constant) => constant.isString;
diff --git a/pkg/compiler/lib/src/constants/constant_system.dart b/pkg/compiler/lib/src/constants/constant_system.dart
index e8260b9..085fe29 100644
--- a/pkg/compiler/lib/src/constants/constant_system.dart
+++ b/pkg/compiler/lib/src/constants/constant_system.dart
@@ -61,10 +61,16 @@
   ConstantValue createString(DartString string);
   ConstantValue createBool(bool value);
   ConstantValue createNull();
+  ConstantValue createList(InterfaceType type,
+                           List<ConstantValue> values);
+  // TODO(johnniwinther): Remove the need for [compiler].
   ConstantValue createMap(Compiler compiler,
                           InterfaceType type,
                           List<ConstantValue> keys,
                           List<ConstantValue> values);
+  // TODO(johnniwinther): Remove the need for [compiler].
+  ConstantValue createType(Compiler compiler,
+                           DartType type);
 
   // We need to special case the subtype check for JavaScript constant
   // system because an int is a double at runtime.
diff --git a/pkg/compiler/lib/src/constants/constructors.dart b/pkg/compiler/lib/src/constants/constructors.dart
new file mode 100644
index 0000000..3c09a94
--- /dev/null
+++ b/pkg/compiler/lib/src/constants/constructors.dart
@@ -0,0 +1,376 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library dart2js.constants.constructors;
+
+import '../elements/elements.dart';
+import 'expressions.dart';
+import 'values.dart';
+import '../dart_types.dart';
+import '../resolution/resolution.dart';
+import '../resolution/operators.dart';
+import '../resolution/semantic_visitor.dart';
+import '../resolution/send_structure.dart';
+import '../dart2jslib.dart';
+import '../tree/tree.dart';
+
+ConstantConstructor computeConstantConstructor(ResolvedAst resolvedAst) {
+  ConstantConstructorComputer visitor =
+      new ConstantConstructorComputer(resolvedAst.elements);
+  return resolvedAst.node.accept(visitor);
+}
+
+class ConstantConstructorComputer extends SemanticVisitor
+    with SemanticDeclarationResolvedMixin,
+         DeclarationResolverMixin,
+         GetBulkMixin,
+         SetBulkMixin,
+         ErrorBulkMixin,
+         InvokeBulkMixin,
+         IndexSetBulkMixin,
+         CompoundBulkMixin,
+         UnaryBulkMixin,
+         BaseBulkMixin,
+         BinaryBulkMixin,
+         PrefixBulkMixin,
+         PostfixBulkMixin,
+         NewBulkMixin,
+         InitializerBulkMixin,
+         FunctionBulkMixin,
+         VariableBulkMixin
+    implements SemanticDeclarationVisitor, SemanticSendVisitor {
+  final Map<FieldElement, ConstantExpression> fieldMap =
+      <FieldElement, ConstantExpression>{};
+  final Map<dynamic/*int|String*/, ConstantExpression> defaultValues =
+      <dynamic/*int|String*/, ConstantExpression>{};
+
+  ConstantConstructorComputer(TreeElements elements)
+      : super(elements);
+
+  SemanticDeclarationVisitor get declVisitor => this;
+
+  SemanticSendVisitor get sendVisitor => this;
+
+  ClassElement get currentClass => currentConstructor.enclosingClass;
+
+  ConstructorElement get currentConstructor => elements.analyzedElement;
+
+  apply(Node node, [_]) => node.accept(this);
+
+  visitNode(Node node) {
+    internalError(node, 'Unhandled node $node: ${node.toDebugString()}');
+  }
+
+  @override
+  bulkHandleNode(Node node, String template, _) {
+    internalError(node, template.replaceFirst('#' , '$node'));
+  }
+
+  internalError(Node node, String message) {
+    throw new UnsupportedError(message);
+  }
+
+  ConstantConstructor visitGenerativeConstructorDeclaration(
+        FunctionExpression node,
+        ConstructorElement constructor,
+        NodeList parameters,
+        NodeList initializers,
+        Node body,
+        _) {
+    applyParameters(parameters, _);
+    ConstructedConstantExpression constructorInvocation =
+        applyInitializers(initializers, _);
+    return new GenerativeConstantConstructor(
+        currentClass.thisType, defaultValues, fieldMap, constructorInvocation);
+  }
+
+  ConstantConstructor visitRedirectingGenerativeConstructorDeclaration(
+      FunctionExpression node,
+      ConstructorElement constructor,
+      NodeList parameters,
+      NodeList initializers,
+      _) {
+    applyParameters(parameters, _);
+    ConstructedConstantExpression constructorInvocation =
+        applyInitializers(initializers, _);
+    return new RedirectingGenerativeConstantConstructor(
+        defaultValues, constructorInvocation);
+  }
+
+  ConstantConstructor visitRedirectingFactoryConstructorDeclaration(
+      FunctionExpression node,
+      ConstructorElement constructor,
+      NodeList parameters,
+      InterfaceType redirectionType,
+      ConstructorElement redirectionTarget,
+      _) {
+    List<String> argumentNames = [];
+    List<ConstantExpression> arguments = [];
+    int index = 0;
+    for (ParameterElement parameter in constructor.parameters) {
+      if (parameter.isNamed) {
+        String name = parameter.name;
+        argumentNames.add(name);
+        arguments.add(new NamedArgumentReference(name));
+      } else {
+        arguments.add(new PositionalArgumentReference(index));
+      }
+      index++;
+    }
+    CallStructure callStructure = new CallStructure(index, argumentNames);
+
+    return new RedirectingFactoryConstantConstructor(
+        new ConstructedConstantExpression(null,
+            redirectionType,
+            redirectionTarget,
+            callStructure,
+            arguments));
+  }
+
+  @override
+  visitFactoryConstructorDeclaration(
+      FunctionExpression node,
+      ConstructorElement constructor,
+      NodeList parameters,
+      Node body, _) {
+    // TODO(johnniwinther): Handle constant constructors with errors.
+    internalError(node, "Factory constructor cannot be constant.");
+  }
+
+  applyParameters(NodeList parameters, _) {
+    computeParameterStructures(parameters).forEach((s) => s.dispatch(this, _));
+  }
+
+  visitParameterDeclaration(
+      VariableDefinitions node,
+      Node definition,
+      ParameterElement parameter,
+      int index,
+      _) {
+    // Do nothing.
+  }
+
+  visitOptionalParameterDeclaration(
+      VariableDefinitions node,
+      Node definition,
+      ParameterElement parameter,
+      ConstantExpression defaultValue,
+      int index,
+      _) {
+    assert(invariant(node, defaultValue != null));
+    defaultValues[index] = defaultValue;
+  }
+
+  visitNamedParameterDeclaration(
+      VariableDefinitions node,
+      Node definition,
+      ParameterElement parameter,
+      ConstantExpression defaultValue,
+      _) {
+    assert(invariant(node, defaultValue != null));
+    String name = parameter.name;
+    defaultValues[name] = defaultValue;
+  }
+
+  visitInitializingFormalDeclaration(
+      VariableDefinitions node,
+      Node definition,
+      InitializingFormalElement parameter,
+      int index,
+      _) {
+    fieldMap[parameter.fieldElement] = new PositionalArgumentReference(index);
+  }
+
+  visitOptionalInitializingFormalDeclaration(
+      VariableDefinitions node,
+      Node definition,
+      InitializingFormalElement parameter,
+      ConstantExpression defaultValue,
+      int index,
+      _) {
+    assert(invariant(node, defaultValue != null));
+    defaultValues[index] = defaultValue;
+    fieldMap[parameter.fieldElement] = new PositionalArgumentReference(index);
+  }
+
+  visitNamedInitializingFormalDeclaration(
+      VariableDefinitions node,
+      Node definition,
+      InitializingFormalElement parameter,
+      ConstantExpression defaultValue,
+      _) {
+    assert(invariant(node, defaultValue != null));
+    String name = parameter.name;
+    defaultValues[name] = defaultValue;
+    fieldMap[parameter.fieldElement] = new NamedArgumentReference(name);
+  }
+
+  /// Apply this visitor to the constructor [initializers].
+  ConstructedConstantExpression applyInitializers(NodeList initializers, _) {
+    ConstructedConstantExpression constructorInvocation;
+    if (initializers != null) {
+      for (Node initializer in initializers) {
+        InitializerStructure structure =
+            computeInitializerStructure(initializer);
+        if (structure is SuperConstructorInvokeStructure ||
+            structure is ThisConstructorInvokeStructure) {
+          constructorInvocation = structure.dispatch(this, initializer, _);
+        } else {
+          structure.dispatch(this, initializer, _);
+        }
+      }
+    }
+    if (constructorInvocation == null && !currentClass.isObject) {
+      constructorInvocation =
+          new ConstructedConstantExpression(null,
+              currentClass.supertype,
+              currentClass.superclass.lookupDefaultConstructor(),
+              CallStructure.NO_ARGS,
+              const <ConstantExpression>[]);
+    }
+    return constructorInvocation;
+  }
+
+  visitFieldInitializer(
+      SendSet node,
+      FieldElement field,
+      Node initializer,
+      _) {
+    fieldMap[field] = apply(initializer);
+  }
+
+  visitParameterGet(
+      Send node,
+      ParameterElement parameter,
+      _) {
+    if (parameter.isNamed) {
+      return new NamedArgumentReference(parameter.name);
+    } else {
+      return new PositionalArgumentReference(
+          parameter.functionDeclaration.parameters.indexOf(parameter));
+    }
+  }
+
+  ConstructedConstantExpression visitSuperConstructorInvoke(
+      Send node,
+      ConstructorElement superConstructor,
+      InterfaceType type,
+      NodeList arguments,
+      Selector selector,
+      _) {
+    List<ConstantExpression> argumentExpression =
+        arguments.nodes.map((a) => apply(a)).toList();
+    return new ConstructedConstantExpression(null,
+        type,
+        superConstructor,
+        selector.callStructure,
+        argumentExpression);
+  }
+
+  ConstructedConstantExpression visitThisConstructorInvoke(
+      Send node,
+      ConstructorElement thisConstructor,
+      NodeList arguments,
+      Selector selector,
+      _) {
+    List<ConstantExpression> argumentExpression =
+        arguments.nodes.map((a) => apply(a)).toList();
+    return new ConstructedConstantExpression(null,
+        currentClass.thisType,
+        thisConstructor,
+        selector.callStructure,
+        argumentExpression);
+  }
+
+  @override
+  ConstantExpression visitBinary(
+      Send node,
+      Node left,
+      BinaryOperator operator,
+      Node right,
+      _) {
+    return new BinaryConstantExpression(null,
+        apply(left), operator, apply(right));
+  }
+
+
+  @override
+  ConstantExpression visitUnary(
+      Send node,
+      UnaryOperator operator,
+      Node expression,
+      _) {
+    return new UnaryConstantExpression(null,
+        operator, apply(expression));
+  }
+
+  @override
+  ConstantExpression visitStaticFieldGet(
+      Send node,
+      FieldElement field,
+      _) {
+    return new VariableConstantExpression(null, field);
+  }
+
+  @override
+  ConstantExpression visitTopLevelFieldGet(
+      Send node,
+      FieldElement field,
+      _) {
+    return new VariableConstantExpression(null, field);
+  }
+
+  @override
+  ConstantExpression visitLiteralInt(LiteralInt node) {
+    return new IntConstantExpression(
+        node.value, new IntConstantValue(node.value));
+  }
+
+  @override
+  ConstantExpression visitLiteralBool(LiteralBool node) {
+    return new BoolConstantExpression(node.value, null);
+  }
+
+  @override
+  ConstantExpression visitLiteralNull(LiteralNull node) {
+    return new NullConstantExpression(new NullConstantValue());
+  }
+
+  @override
+  ConstantExpression visitLiteralString(LiteralString node) {
+    return new StringConstantExpression(node.dartString.slowToString(), null);
+  }
+
+  @override
+  ConstantExpression visitConditional(Conditional node) {
+    return new ConditionalConstantExpression(null,
+        apply(node.condition),
+        apply(node.thenExpression),
+        apply(node.elseExpression));
+  }
+
+  @override
+  ConstantExpression visitParenthesizedExpression(ParenthesizedExpression node) {
+    return apply(node.expression);
+  }
+
+  @override
+  ConstantExpression visitTopLevelFunctionInvoke(
+      Send node,
+      MethodElement function,
+      NodeList arguments,
+      CallStructure callStructure,
+      _) {
+    if (function.name != 'identical' || !function.library.isDartCore) {
+      throw new UnsupportedError("Unexpected function call: $function");
+    }
+    return new IdenticalConstantExpression(
+        null, apply(arguments.nodes.head), apply(arguments.nodes.tail.head));
+  }
+
+  @override
+  ConstantExpression visitNamedArgument(NamedArgument node) {
+    return apply(node.expression);
+  }
+}
\ No newline at end of file
diff --git a/pkg/compiler/lib/src/constants/expressions.dart b/pkg/compiler/lib/src/constants/expressions.dart
index c454975..0c6a6ac 100644
--- a/pkg/compiler/lib/src/constants/expressions.dart
+++ b/pkg/compiler/lib/src/constants/expressions.dart
@@ -4,21 +4,25 @@
 
 library dart2js.constants.expressions;
 
-import '../dart2jslib.dart' show assertDebugMode;
+import '../constants/constant_system.dart';
+import '../dart2jslib.dart' show assertDebugMode, Compiler;
 import '../dart_types.dart';
 import '../elements/elements.dart' show
     ConstructorElement,
     Element,
+    FieldElement,
     FunctionElement,
     PrefixElement,
     VariableElement;
 import '../resolution/operators.dart';
+import '../tree/tree.dart' show DartString;
 import '../universe/universe.dart' show CallStructure;
 import 'values.dart';
 
 enum ConstantExpressionKind {
   BINARY,
   BOOL,
+  BOOL_FROM_ENVIRONMENT,
   CONCATENATE,
   CONDITIONAL,
   CONSTRUCTED,
@@ -28,14 +32,218 @@
   FUNCTION,
   IDENTICAL,
   INT,
+  INT_FROM_ENVIRONMENT,
   LIST,
   MAP,
   NULL,
   STRING,
+  STRING_FROM_ENVIRONMENT,
   SYMBOL,
   TYPE,
   UNARY,
   VARIABLE,
+
+  POSITIONAL_REFERENCE,
+  NAMED_REFERENCE,
+}
+
+/// Environment used for evaluating constant expressions.
+abstract class Environment {
+  // TODO(johnniwinther): Replace this with [CoreTypes] and maybe [Backend].
+  Compiler get compiler;
+
+  /// Read environments string passed in using the '-Dname=value' option.
+  String readFromEnvironment(String name);
+}
+
+/// The normalized arguments passed to a const constructor computed from the
+/// actual [arguments] and the [defaultValues] of the called construrctor.
+class NormalizedArguments {
+  final Map<dynamic/*int|String*/, ConstantExpression> defaultValues;
+  final CallStructure callStructure;
+  final List<ConstantExpression> arguments;
+
+  NormalizedArguments(this.defaultValues, this.callStructure, this.arguments);
+
+  /// Returns the normalized named argument [name].
+  ConstantExpression getNamedArgument(String name) {
+    int index = callStructure.namedArguments.indexOf(name);
+    if (index == -1) {
+      // The named argument is not provided.
+      return defaultValues[name];
+    }
+    return arguments[index + callStructure.positionalArgumentCount];
+  }
+
+  /// Returns the normalized [index]th positional argument.
+  ConstantExpression getPositionalArgument(int index) {
+    if (index >= callStructure.positionalArgumentCount) {
+      // The positional argument is not provided.
+      return defaultValues[index];
+    }
+    return arguments[index];
+  }
+}
+
+enum ConstantConstructorKind {
+  GENERATIVE,
+  REDIRECTING_GENERATIVE,
+  REDIRECTING_FACTORY,
+}
+
+/// Definition of a constant constructor.
+abstract class ConstantConstructor {
+  ConstantConstructorKind get kind;
+
+  /// Computes the type of the instance created in a const constructor
+  /// invocation with type [newType].
+  InterfaceType computeInstanceType(InterfaceType newType);
+
+  /// Computes the constant expressions of the fields of the created instance
+  /// in a const constructor invocation with [arguments].
+  Map<FieldElement, ConstantExpression> computeInstanceFields(
+      List<ConstantExpression> arguments,
+      CallStructure callStructure);
+}
+
+/// A generative constant constructor.
+class GenerativeConstantConstructor implements ConstantConstructor{
+  final InterfaceType type;
+  final Map<dynamic/*int|String*/, ConstantExpression> defaultValues;
+  final Map<FieldElement, ConstantExpression> fieldMap;
+  final ConstructedConstantExpression superConstructorInvocation;
+
+  GenerativeConstantConstructor(
+      this.type,
+      this.defaultValues,
+      this.fieldMap,
+      this.superConstructorInvocation);
+
+  ConstantConstructorKind get kind => ConstantConstructorKind.GENERATIVE;
+
+  InterfaceType computeInstanceType(InterfaceType newType) {
+    return type.substByContext(newType);
+  }
+
+  Map<FieldElement, ConstantExpression> computeInstanceFields(
+      List<ConstantExpression> arguments,
+      CallStructure callStructure) {
+    NormalizedArguments args = new NormalizedArguments(
+        defaultValues, callStructure, arguments);
+    Map<FieldElement, ConstantExpression> appliedFieldMap =
+        applyFields(args, superConstructorInvocation);
+    fieldMap.forEach((FieldElement field, ConstantExpression constant) {
+     appliedFieldMap[field] = constant.apply(args);
+    });
+    return appliedFieldMap;
+  }
+
+  String toString() {
+    StringBuffer sb = new StringBuffer();
+    sb.write("{'type': $type");
+    defaultValues.forEach((key, ConstantExpression expression) {
+      sb.write(",\n 'default:${key}': ${expression.getText()}");
+    });
+    fieldMap.forEach((FieldElement field, ConstantExpression expression) {
+      sb.write(",\n 'field:${field}': ${expression.getText()}");
+    });
+    if (superConstructorInvocation != null) {
+      sb.write(",\n 'constructor: ${superConstructorInvocation.getText()}");
+    }
+    sb.write("}");
+    return sb.toString();
+  }
+
+  /// Creates the field-to-constant map from applying [args] to
+  /// [constructorInvocation]. If [constructorInvocation] is `null`, an empty
+  /// map is created.
+  static Map<FieldElement, ConstantExpression> applyFields(
+      NormalizedArguments args,
+      ConstructedConstantExpression constructorInvocation) {
+    Map<FieldElement, ConstantExpression> appliedFieldMap =
+        <FieldElement, ConstantExpression>{};
+    if (constructorInvocation != null) {
+      Map<FieldElement, ConstantExpression> fieldMap =
+          constructorInvocation.computeInstanceFields();
+      fieldMap.forEach((FieldElement field, ConstantExpression constant) {
+        appliedFieldMap[field] = constant.apply(args);
+      });
+    }
+    return appliedFieldMap;
+  }
+}
+
+/// A redirecting generative constant constructor.
+class RedirectingGenerativeConstantConstructor implements ConstantConstructor {
+  final Map<dynamic/*int|String*/, ConstantExpression> defaultValues;
+  final ConstructedConstantExpression thisConstructorInvocation;
+
+  RedirectingGenerativeConstantConstructor(
+      this.defaultValues,
+      this.thisConstructorInvocation);
+
+  ConstantConstructorKind get kind {
+    return ConstantConstructorKind.REDIRECTING_GENERATIVE;
+  }
+
+  InterfaceType computeInstanceType(InterfaceType newType) {
+    return thisConstructorInvocation.computeInstanceType()
+        .substByContext(newType);
+  }
+
+  Map<FieldElement, ConstantExpression> computeInstanceFields(
+      List<ConstantExpression> arguments,
+      CallStructure callStructure) {
+    NormalizedArguments args =
+        new NormalizedArguments(defaultValues, callStructure, arguments);
+    Map<FieldElement, ConstantExpression> appliedFieldMap =
+        GenerativeConstantConstructor.applyFields(
+            args, thisConstructorInvocation);
+    return appliedFieldMap;
+  }
+
+  String toString() {
+    StringBuffer sb = new StringBuffer();
+    sb.write("{'type': ${thisConstructorInvocation.type}");
+    defaultValues.forEach((key, ConstantExpression expression) {
+      sb.write(",\n 'default:${key}': ${expression.getText()}");
+    });
+    sb.write(",\n 'constructor': ${thisConstructorInvocation.getText()}");
+    sb.write("}");
+    return sb.toString();
+  }
+}
+
+/// A redirecting factory constant constructor.
+class RedirectingFactoryConstantConstructor implements ConstantConstructor {
+  final ConstructedConstantExpression targetConstructorInvocation;
+
+  RedirectingFactoryConstantConstructor(this.targetConstructorInvocation);
+
+  ConstantConstructorKind get kind {
+    return ConstantConstructorKind.REDIRECTING_FACTORY;
+  }
+
+  InterfaceType computeInstanceType(InterfaceType newType) {
+    return targetConstructorInvocation.computeInstanceType()
+        .substByContext(newType);
+  }
+
+  Map<FieldElement, ConstantExpression> computeInstanceFields(
+      List<ConstantExpression> arguments,
+      CallStructure callStructure) {
+    ConstantConstructor constantConstructor =
+        targetConstructorInvocation.target.constantConstructor;
+    return constantConstructor.computeInstanceFields(arguments, callStructure);
+  }
+
+  String toString() {
+    StringBuffer sb = new StringBuffer();
+    sb.write("{");
+    sb.write("'constructor': ${targetConstructorInvocation.getText()}");
+    sb.write("}");
+    return sb.toString();
+  }
 }
 
 /// An expression that is a compile-time constant.
@@ -53,6 +261,8 @@
   ConstantExpressionKind get kind;
 
   /// Returns the value of this constant expression.
+  // TODO(johnniwinther): Replace this with an evaluation method that takes
+  // a constant system and an environment.
   ConstantValue get value;
 
   // TODO(johnniwinther): Unify precedence handled between constants, front-end
@@ -61,6 +271,14 @@
 
   accept(ConstantExpressionVisitor visitor, [context]);
 
+  /// Substitute free variables using arguments.
+  ConstantExpression apply(NormalizedArguments arguments) => this;
+
+  /// Compute the [ConstantValue] for this expression using the [environment]
+  /// and the [constantSystem].
+  ConstantValue evaluate(Environment environment,
+                         ConstantSystem constantSystem);
+
   String getText() {
     ConstExpPrinter printer = new ConstExpPrinter();
     accept(printer);
@@ -104,6 +322,13 @@
   }
 
   @override
+  ConstantValue evaluate(Environment environment,
+                         ConstantSystem constantSystem) {
+    // TODO(johnniwinther): Use non-constant values for errors.
+    return value;
+  }
+
+  @override
   int _computeHashCode() => 13;
 
   @override
@@ -118,10 +343,6 @@
 
   /// The primitive value of this contant expression.
   get primitiveValue;
-
-  accept(ConstantExpressionVisitor visitor, [context]) {
-    return visitor.visitPrimitive(this, context);
-  }
 }
 
 /// Boolean literal constant.
@@ -133,6 +354,16 @@
 
   ConstantExpressionKind get kind => ConstantExpressionKind.BOOL;
 
+  accept(ConstantExpressionVisitor visitor, [context]) {
+    return visitor.visitBool(this, context);
+  }
+
+  @override
+  ConstantValue evaluate(Environment environment,
+                         ConstantSystem constantSystem) {
+    return constantSystem.createBool(primitiveValue);
+  }
+
   @override
   int _computeHashCode() => 13 * primitiveValue.hashCode;
 
@@ -151,6 +382,16 @@
 
   ConstantExpressionKind get kind => ConstantExpressionKind.INT;
 
+  accept(ConstantExpressionVisitor visitor, [context]) {
+    return visitor.visitInt(this, context);
+  }
+
+  @override
+  ConstantValue evaluate(Environment environment,
+                         ConstantSystem constantSystem) {
+    return constantSystem.createInt(primitiveValue);
+  }
+
   @override
   int _computeHashCode() => 17 * primitiveValue.hashCode;
 
@@ -169,6 +410,16 @@
 
   ConstantExpressionKind get kind => ConstantExpressionKind.DOUBLE;
 
+  accept(ConstantExpressionVisitor visitor, [context]) {
+    return visitor.visitDouble(this, context);
+  }
+
+  @override
+  ConstantValue evaluate(Environment environment,
+                         ConstantSystem constantSystem) {
+    return constantSystem.createDouble(primitiveValue);
+  }
+
   @override
   int _computeHashCode() => 19 * primitiveValue.hashCode;
 
@@ -187,6 +438,16 @@
 
   ConstantExpressionKind get kind => ConstantExpressionKind.STRING;
 
+  accept(ConstantExpressionVisitor visitor, [context]) {
+    return visitor.visitString(this, context);
+  }
+
+  @override
+  ConstantValue evaluate(Environment environment,
+                         ConstantSystem constantSystem) {
+    return constantSystem.createString(new DartString.literal(primitiveValue));
+  }
+
   @override
   int _computeHashCode() => 23 * primitiveValue.hashCode;
 
@@ -202,6 +463,16 @@
 
   ConstantExpressionKind get kind => ConstantExpressionKind.NULL;
 
+  accept(ConstantExpressionVisitor visitor, [context]) {
+    return visitor.visitNull(this, context);
+  }
+
+  @override
+  ConstantValue evaluate(Environment environment,
+                         ConstantSystem constantSystem) {
+    return constantSystem.createNull();
+  }
+
   get primitiveValue => null;
 
   @override
@@ -226,6 +497,18 @@
   }
 
   @override
+  ConstantValue evaluate(Environment environment,
+                         ConstantSystem constantSystem) {
+    return constantSystem.createList(type,
+        values.map((v) => v.evaluate(environment, constantSystem)).toList());
+  }
+
+  ConstantExpression apply(NormalizedArguments arguments) {
+    return new ListConstantExpression(null, type,
+        values.map((v) => v.apply(arguments)).toList());
+  }
+
+  @override
   int _computeHashCode() {
     int hashCode = 13 * type.hashCode + 17 * values.length;
     for (ConstantExpression value in values) {
@@ -261,6 +544,21 @@
   }
 
   @override
+  ConstantValue evaluate(Environment environment,
+                         ConstantSystem constantSystem) {
+    return constantSystem.createMap(environment.compiler,
+        type,
+        keys.map((k) => k.evaluate(environment, constantSystem)).toList(),
+        values.map((v) => v.evaluate(environment, constantSystem)).toList());
+  }
+
+  ConstantExpression apply(NormalizedArguments arguments) {
+    return new MapConstantExpression(null, type,
+        keys.map((k) => k.apply(arguments)).toList(),
+        values.map((v) => v.apply(arguments)).toList());
+  }
+
+  @override
   int _computeHashCode() {
     int hashCode = 13 * type.hashCode + 17 * values.length;
     for (ConstantExpression value in values) {
@@ -296,6 +594,7 @@
       this.callStructure,
       this.arguments) {
     assert(type.element == target.enclosingClass);
+    assert(!arguments.contains(null));
   }
 
   ConstantExpressionKind get kind => ConstantExpressionKind.CONSTRUCTED;
@@ -304,6 +603,33 @@
     return visitor.visitConstructed(this, context);
   }
 
+  Map<FieldElement, ConstantExpression> computeInstanceFields() {
+    return target.constantConstructor.computeInstanceFields(
+        arguments, callStructure);
+  }
+
+  InterfaceType computeInstanceType() {
+    return target.constantConstructor.computeInstanceType(type);
+  }
+
+  ConstructedConstantExpression apply(NormalizedArguments arguments) {
+    return new ConstructedConstantExpression(null,
+        type, target, callStructure,
+        this.arguments.map((a) => a.apply(arguments)).toList());
+  }
+
+  @override
+  ConstantValue evaluate(Environment environment,
+                         ConstantSystem constantSystem) {
+    Map<FieldElement, ConstantValue> fieldValues =
+        <FieldElement, ConstantValue>{};
+    computeInstanceFields().forEach(
+        (FieldElement field, ConstantExpression constant) {
+      fieldValues[field] = constant.evaluate(environment, constantSystem);
+    });
+    return new ConstructedConstantValue(computeInstanceType(), fieldValues);
+  }
+
   @override
   int _computeHashCode() {
     int hashCode =
@@ -331,9 +657,9 @@
 /// String literal with juxtaposition and/or interpolations.
 class ConcatenateConstantExpression extends ConstantExpression {
   final StringConstantValue value;
-  final List<ConstantExpression> arguments;
+  final List<ConstantExpression> expressions;
 
-  ConcatenateConstantExpression(this.value, this.arguments);
+  ConcatenateConstantExpression(this.value, this.expressions);
 
   ConstantExpressionKind get kind => ConstantExpressionKind.CONCATENATE;
 
@@ -341,10 +667,43 @@
     return visitor.visitConcatenate(this, context);
   }
 
+  ConstantExpression apply(NormalizedArguments arguments) {
+    return new ConcatenateConstantExpression(null,
+        expressions.map((a) => a.apply(arguments)).toList());
+  }
+
+  @override
+  ConstantValue evaluate(Environment environment,
+                         ConstantSystem constantSystem) {
+    DartString accumulator;
+    for (ConstantExpression expression in expressions) {
+      ConstantValue value = expression.evaluate(environment, constantSystem);
+      DartString valueString;
+      if (value.isNum || value.isBool) {
+        PrimitiveConstantValue primitive = value;
+        valueString =
+            new DartString.literal(primitive.primitiveValue.toString());
+      } else if (value.isString) {
+        PrimitiveConstantValue primitive = value;
+        valueString = primitive.primitiveValue;
+      } else {
+        // TODO(johnniwinther): Specialize message to indicated that the problem
+        // is not constness but the types of the const expressions.
+        return new NonConstantValue();
+      }
+      if (accumulator == null) {
+        accumulator = valueString;
+      } else {
+        accumulator = new DartString.concat(accumulator, valueString);
+      }
+    }
+    return constantSystem.createString(accumulator);
+  }
+
   @override
   int _computeHashCode() {
-    int hashCode = 17 * arguments.length;
-    for (ConstantExpression value in arguments) {
+    int hashCode = 17 * expressions.length;
+    for (ConstantExpression value in expressions) {
       hashCode ^= 19 * value.hashCode;
     }
     return hashCode;
@@ -352,9 +711,9 @@
 
   @override
   bool _equals(ConcatenateConstantExpression other) {
-    if (arguments.length != other.arguments.length) return false;
-    for (int i = 0; i < arguments.length; i++) {
-      if (arguments[i] != other.arguments[i]) return false;
+    if (expressions.length != other.expressions.length) return false;
+    for (int i = 0; i < expressions.length; i++) {
+      if (expressions[i] != other.expressions[i]) return false;
     }
     return true;
   }
@@ -380,6 +739,13 @@
   bool _equals(SymbolConstantExpression other) {
     return name == other.name;
   }
+
+  @override
+  ConstantValue evaluate(Environment environment,
+                         ConstantSystem constantSystem) {
+    // TODO(johnniwinther): Implement this.
+    throw new UnsupportedError('SymbolConstantExpression.evaluate');
+  }
 }
 
 /// Type literal.
@@ -399,6 +765,12 @@
   }
 
   @override
+  ConstantValue evaluate(Environment environment,
+                         ConstantSystem constantSystem) {
+    return constantSystem.createType(environment.compiler, type);
+  }
+
+  @override
   int _computeHashCode() => 13 * type.hashCode;
 
   @override
@@ -421,6 +793,12 @@
   }
 
   @override
+  ConstantValue evaluate(Environment environment,
+                         ConstantSystem constantSystem) {
+    return element.constant.evaluate(environment, constantSystem);
+  }
+
+  @override
   int _computeHashCode() => 13 * element.hashCode;
 
   @override
@@ -443,6 +821,12 @@
   }
 
   @override
+  ConstantValue evaluate(Environment environment,
+                         ConstantSystem constantSystem) {
+    return new FunctionConstantValue(element);
+  }
+
+  @override
   int _computeHashCode() => 13 * element.hashCode;
 
   @override
@@ -468,6 +852,22 @@
     return visitor.visitBinary(this, context);
   }
 
+  @override
+  ConstantValue evaluate(Environment environment,
+                         ConstantSystem constantSystem) {
+    return constantSystem.lookupBinary(operator).fold(
+        left.evaluate(environment, constantSystem),
+        right.evaluate(environment, constantSystem));
+  }
+
+  ConstantExpression apply(NormalizedArguments arguments) {
+    return new BinaryConstantExpression(
+        value,
+        left.apply(arguments),
+        operator,
+        right.apply(arguments));
+  }
+
   int get precedence => PRECEDENCE_MAP[operator.kind];
 
   @override
@@ -521,6 +921,21 @@
     return visitor.visitIdentical(this, context);
   }
 
+  @override
+  ConstantValue evaluate(Environment environment,
+                         ConstantSystem constantSystem) {
+    return constantSystem.identity.fold(
+        left.evaluate(environment, constantSystem),
+        right.evaluate(environment, constantSystem));
+  }
+
+  ConstantExpression apply(NormalizedArguments arguments) {
+    return new IdenticalConstantExpression(
+        value,
+        left.apply(arguments),
+        right.apply(arguments));
+  }
+
   int get precedence => 15;
 
   @override
@@ -552,6 +967,20 @@
     return visitor.visitUnary(this, context);
   }
 
+  @override
+  ConstantValue evaluate(Environment environment,
+                         ConstantSystem constantSystem) {
+    return constantSystem.lookupUnary(operator).fold(
+        expression.evaluate(environment, constantSystem));
+  }
+
+  ConstantExpression apply(NormalizedArguments arguments) {
+    return new UnaryConstantExpression(
+        value,
+        operator,
+        expression.apply(arguments));
+  }
+
   int get precedence => PRECEDENCE_MAP[operator.kind];
 
   @override
@@ -591,6 +1020,14 @@
     return visitor.visitConditional(this, context);
   }
 
+  ConstantExpression apply(NormalizedArguments arguments) {
+    return new ConditionalConstantExpression(
+        value,
+        condition.apply(arguments),
+        trueExp.apply(arguments),
+        falseExp.apply(arguments));
+  }
+
   int get precedence => 3;
 
   @override
@@ -606,6 +1043,225 @@
            trueExp == other.trueExp &&
            falseExp == other.falseExp;
   }
+
+  @override
+  ConstantValue evaluate(Environment environment,
+                         ConstantSystem constantSystem) {
+    ConstantValue conditionValue =
+        condition.evaluate(environment, constantSystem);
+    ConstantValue trueValue =
+        trueExp.evaluate(environment, constantSystem);
+    ConstantValue falseValue =
+        falseExp.evaluate(environment, constantSystem);
+    if (conditionValue.isTrue) {
+      return trueValue;
+    } else if (conditionValue.isFalse) {
+      return falseValue;
+    } else {
+      return new NonConstantValue();
+    }
+  }
+}
+
+/// A reference to a position parameter.
+class PositionalArgumentReference extends ConstantExpression {
+  final int index;
+
+  PositionalArgumentReference(this.index);
+
+  ConstantExpressionKind get kind {
+    return ConstantExpressionKind.POSITIONAL_REFERENCE;
+  }
+
+  accept(ConstantExpressionVisitor visitor, [context]) {
+    return visitor.visitPositional(this, context);
+  }
+
+  ConstantValue get value {
+    throw new UnsupportedError('PositionalArgumentReference.value');
+  }
+
+  ConstantExpression apply(NormalizedArguments arguments) {
+    return arguments.getPositionalArgument(index);
+  }
+
+  @override
+  int _computeHashCode() => 13 * index.hashCode;
+
+  @override
+  bool _equals(PositionalArgumentReference other) => index == other.index;
+
+  @override
+  ConstantValue evaluate(Environment environment,
+                         ConstantSystem constantSystem) {
+    throw new UnsupportedError('PositionalArgumentReference.evaluate');
+  }
+}
+
+/// A reference to a named parameter.
+class NamedArgumentReference extends ConstantExpression {
+  final String name;
+
+  NamedArgumentReference(this.name);
+
+  ConstantExpressionKind get kind {
+    return ConstantExpressionKind.NAMED_REFERENCE;
+  }
+
+  accept(ConstantExpressionVisitor visitor, [context]) {
+    return visitor.visitNamed(this, context);
+  }
+
+  ConstantValue get value {
+    throw new UnsupportedError('NamedArgumentReference.value');
+  }
+
+  ConstantExpression apply(NormalizedArguments arguments) {
+    return arguments.getNamedArgument(name);
+  }
+
+  @override
+  int _computeHashCode() => 13 * name.hashCode;
+
+  @override
+  bool _equals(NamedArgumentReference other) => name == other.name;
+
+  @override
+  ConstantValue evaluate(Environment environment,
+                         ConstantSystem constantSystem) {
+    throw new UnsupportedError('NamedArgumentReference.evaluate');
+  }
+}
+
+abstract class FromEnvironmentConstantExpression extends ConstantExpression {
+  final ConstantValue value;
+  final String name;
+  final ConstantExpression defaultValue;
+
+  FromEnvironmentConstantExpression(this.value, this.name, this.defaultValue);
+
+  @override
+  int _computeHashCode() {
+    return 13 * name.hashCode +
+           17 * defaultValue.hashCode;
+  }
+
+  @override
+  bool _equals(FromEnvironmentConstantExpression other) {
+    return name == other.name &&
+           defaultValue == other.defaultValue;
+  }
+}
+
+/// A `const bool.fromEnvironment` constant.
+class BoolFromEnvironmentConstantExpression
+    extends FromEnvironmentConstantExpression {
+
+  BoolFromEnvironmentConstantExpression(
+      ConstantValue value,
+      String name,
+      ConstantExpression defaultValue)
+      : super(value, name, defaultValue);
+
+  ConstantExpressionKind get kind {
+    return ConstantExpressionKind.BOOL_FROM_ENVIRONMENT;
+  }
+
+  accept(ConstantExpressionVisitor visitor, [context]) {
+    return visitor.visitBoolFromEnvironment(this, context);
+  }
+
+  @override
+  ConstantValue evaluate(Environment environment,
+                         ConstantSystem constantSystem) {
+    String text = environment.readFromEnvironment(name);
+    if (text == 'true') {
+      return constantSystem.createBool(true);
+    } else if (text == 'false') {
+      return constantSystem.createBool(false);
+    } else {
+      return defaultValue.evaluate(environment, constantSystem);
+    }
+  }
+
+  ConstantExpression apply(NormalizedArguments arguments) {
+    return new BoolFromEnvironmentConstantExpression(
+        null, name, defaultValue.apply(arguments));
+  }
+}
+
+/// A `const int.fromEnvironment` constant.
+class IntFromEnvironmentConstantExpression
+    extends FromEnvironmentConstantExpression {
+
+  IntFromEnvironmentConstantExpression(
+      ConstantValue value,
+      String name,
+      ConstantExpression defaultValue)
+      : super(value, name, defaultValue);
+
+  ConstantExpressionKind get kind {
+    return ConstantExpressionKind.INT_FROM_ENVIRONMENT;
+  }
+
+  accept(ConstantExpressionVisitor visitor, [context]) {
+    return visitor.visitIntFromEnvironment(this, context);
+  }
+
+  @override
+  ConstantValue evaluate(Environment environment,
+                         ConstantSystem constantSystem) {
+    int value;
+    String text = environment.readFromEnvironment(name);
+    if (text != null) {
+      value = int.parse(text, onError: (_) => null);
+    }
+    if (value == null) {
+      return defaultValue.evaluate(environment, constantSystem);
+    } else {
+      return constantSystem.createInt(value);
+    }
+  }
+
+  ConstantExpression apply(NormalizedArguments arguments) {
+    return new IntFromEnvironmentConstantExpression(
+        null, name, defaultValue.apply(arguments));
+  }
+}
+
+/// A `const String.fromEnvironment` constant.
+class StringFromEnvironmentConstantExpression
+    extends FromEnvironmentConstantExpression {
+
+  StringFromEnvironmentConstantExpression(
+      ConstantValue value,
+      String name,
+      ConstantExpression defaultValue)
+      : super(value, name, defaultValue);
+
+  ConstantExpressionKind get kind {
+    return ConstantExpressionKind.STRING_FROM_ENVIRONMENT;
+  }
+
+  accept(ConstantExpressionVisitor visitor, [context]) {
+    return visitor.visitStringFromEnvironment(this, context);
+  }
+
+  @override
+  ConstantValue evaluate(Environment environment,
+                         ConstantSystem constantSystem) {
+    String text = environment.readFromEnvironment(name);
+    if (text == null) {
+      return defaultValue.evaluate(environment, constantSystem);
+    } else {
+      return constantSystem.createString(new DartString.literal(text));
+    }
+  }
+
+  ConstantExpression apply(NormalizedArguments arguments) {
+    return new StringFromEnvironmentConstantExpression(
+        null, name, defaultValue.apply(arguments));
+  }
 }
 
 /// A constant expression referenced with a deferred prefix.
@@ -620,6 +1276,12 @@
   ConstantExpressionKind get kind => ConstantExpressionKind.DEFERRED;
 
   @override
+  ConstantValue evaluate(Environment environment,
+                         ConstantSystem constantSystem) {
+    return expression.evaluate(environment, constantSystem);
+  }
+
+  @override
   int _computeHashCode() {
     return 13 * expression.hashCode;
   }
@@ -635,27 +1297,40 @@
   }
 }
 
-abstract class ConstantExpressionVisitor<C, R> {
+abstract class ConstantExpressionVisitor<R, A> {
   const ConstantExpressionVisitor();
 
-  R visit(ConstantExpression constant, C context) {
+  R visit(ConstantExpression constant, A context) {
     return constant.accept(this, context);
   }
 
-  R visitPrimitive(PrimitiveConstantExpression exp, C context);
-  R visitList(ListConstantExpression exp, C context);
-  R visitMap(MapConstantExpression exp, C context);
-  R visitConstructed(ConstructedConstantExpression exp, C context);
-  R visitConcatenate(ConcatenateConstantExpression exp, C context);
-  R visitSymbol(SymbolConstantExpression exp, C context);
-  R visitType(TypeConstantExpression exp, C context);
-  R visitVariable(VariableConstantExpression exp, C context);
-  R visitFunction(FunctionConstantExpression exp, C context);
-  R visitBinary(BinaryConstantExpression exp, C context);
-  R visitIdentical(IdenticalConstantExpression exp, C context);
-  R visitUnary(UnaryConstantExpression exp, C context);
-  R visitConditional(ConditionalConstantExpression exp, C context);
-  R visitDeferred(DeferredConstantExpression exp, C context);
+  R visitBool(BoolConstantExpression exp, A context);
+  R visitInt(IntConstantExpression exp, A context);
+  R visitDouble(DoubleConstantExpression exp, A context);
+  R visitString(StringConstantExpression exp, A context);
+  R visitNull(NullConstantExpression exp, A context);
+  R visitList(ListConstantExpression exp, A context);
+  R visitMap(MapConstantExpression exp, A context);
+  R visitConstructed(ConstructedConstantExpression exp, A context);
+  R visitConcatenate(ConcatenateConstantExpression exp, A context);
+  R visitSymbol(SymbolConstantExpression exp, A context);
+  R visitType(TypeConstantExpression exp, A context);
+  R visitVariable(VariableConstantExpression exp, A context);
+  R visitFunction(FunctionConstantExpression exp, A context);
+  R visitBinary(BinaryConstantExpression exp, A context);
+  R visitIdentical(IdenticalConstantExpression exp, A context);
+  R visitUnary(UnaryConstantExpression exp, A context);
+  R visitConditional(ConditionalConstantExpression exp, A context);
+  R visitBoolFromEnvironment(BoolFromEnvironmentConstantExpression exp,
+                             A context);
+  R visitIntFromEnvironment(IntFromEnvironmentConstantExpression exp,
+                            A context);
+  R visitStringFromEnvironment(StringFromEnvironmentConstantExpression exp,
+                               A context);
+  R visitDeferred(DeferredConstantExpression exp, A context);
+
+  R visitPositional(PositionalArgumentReference exp, A context);
+  R visitNamed(NamedArgumentReference exp, A context);
 }
 
 /// Represents the declaration of a constant [element] with value [expression].
@@ -702,9 +1377,34 @@
     return constant.accept(this, null);
   }
 
+  void visitPrimitive(PrimitiveConstantExpression exp) {
+    sb.write(exp.primitiveValue);
+  }
+
   @override
-  void visitPrimitive(PrimitiveConstantExpression exp, [_]) {
-    sb.write(exp.value.unparse());
+  void visitBool(BoolConstantExpression exp, [_]) {
+    visitPrimitive(exp);
+  }
+
+  @override
+  void visitDouble(DoubleConstantExpression exp, [_]) {
+    visitPrimitive(exp);
+  }
+
+  @override
+  void visitInt(IntConstantExpression exp, [_]) {
+    visitPrimitive(exp);
+  }
+
+  @override
+  void visitNull(NullConstantExpression exp, [_]) {
+    visitPrimitive(exp);
+  }
+
+  @override
+  void visitString(StringConstantExpression exp, [_]) {
+    // TODO(johnniwinther): Ensure correct escaping.
+    sb.write('"${exp.primitiveValue}"');
   }
 
   @override
@@ -839,11 +1539,46 @@
   }
 
   @override
-  visitDeferred(DeferredConstantExpression exp, context) {
+  void visitPositional(PositionalArgumentReference exp, [_]) {
+    // TODO(johnniwinther): Maybe this should throw.
+    sb.write('args[${exp.index}]');
+  }
+
+  @override
+  void visitNamed(NamedArgumentReference exp, [_]) {
+    // TODO(johnniwinther): Maybe this should throw.
+    sb.write('args[${exp.name}]');
+  }
+
+  @override
+  void visitDeferred(DeferredConstantExpression exp, context) {
     sb.write(exp.prefix.deferredImport.prefix.source);
     sb.write('.');
     write(exp, exp.expression);
   }
 
+  @override
+  void visitBoolFromEnvironment(BoolFromEnvironmentConstantExpression exp,
+                                [_]) {
+    sb.write('const bool.fromEnvironment("${exp.name}", defaultValue: ');
+    visit(exp.defaultValue);
+    sb.write(')');
+  }
+
+  @override
+  void visitIntFromEnvironment(IntFromEnvironmentConstantExpression exp, [_]) {
+    sb.write('const int.fromEnvironment("${exp.name}", defaultValue: ');
+    visit(exp.defaultValue);
+    sb.write(')');
+  }
+
+  @override
+  void visitStringFromEnvironment(StringFromEnvironmentConstantExpression exp,
+                                  [_]) {
+    sb.write('const String.fromEnvironment("${exp.name}", defaultValue: ');
+    visit(exp.defaultValue);
+    sb.write(')');
+  }
+
   String toString() => sb.toString();
 }
\ No newline at end of file
diff --git a/pkg/compiler/lib/src/constants/values.dart b/pkg/compiler/lib/src/constants/values.dart
index 45f47ea..e40a6b8 100644
--- a/pkg/compiler/lib/src/constants/values.dart
+++ b/pkg/compiler/lib/src/constants/values.dart
@@ -39,6 +39,9 @@
 abstract class ConstantValue {
   const ConstantValue();
 
+  /// `true` if this is a valid constant value.
+  bool get isConstant => true;
+
   bool get isNull => false;
   bool get isBool => false;
   bool get isTrue => false;
@@ -482,9 +485,11 @@
 
   String toStructuredString() {
     StringBuffer sb = new StringBuffer();
-    sb.write('ListConstant([');
+    sb.write('ListConstant(');
+    _unparseTypeArguments(sb);
+    sb.write('[');
     for (int i = 0 ; i < length ; i++) {
-      if (i > 0) sb.write(',');
+      if (i > 0) sb.write(', ');
       sb.write(entries[i].toStructuredString());
     }
     sb.write('])');
@@ -551,11 +556,13 @@
 
   String toStructuredString() {
     StringBuffer sb = new StringBuffer();
-    sb.write('MapConstant({');
+    sb.write('MapConstant(');
+    _unparseTypeArguments(sb);
+    sb.write('{');
     for (int i = 0; i < length; i++) {
-      if (i > 0) sb.write(',');
+      if (i > 0) sb.write(', ');
       sb.write(keys[i].toStructuredString());
-      sb.write(':');
+      sb.write(': ');
       sb.write(values[i].toStructuredString());
     }
     sb.write('})');
@@ -717,3 +724,27 @@
 
   String toStructuredString() => 'DeferredConstant($referenced)';
 }
+
+/// A constant value resulting from a non constant or erroneous constant
+/// expression.
+// TODO(johnniwinther): Expand this to contain the error kind.
+class NonConstantValue extends ConstantValue {
+  bool get isConstant => false;
+
+  @override
+  accept(ConstantValueVisitor visitor, arg) {
+    // TODO(johnniwinther): Should this be part of the visiting?
+  }
+
+  @override
+  List<ConstantValue> getDependencies() => const <ConstantValue>[];
+
+  @override
+  DartType getType(CoreTypes types) => const DynamicType();
+
+  @override
+  String toStructuredString() => 'NonConstant';
+
+  @override
+  String unparse() => '>>non-constant<<';
+}
\ No newline at end of file
diff --git a/pkg/compiler/lib/src/core_types.dart b/pkg/compiler/lib/src/core_types.dart
index a1ec975..c2e66c6 100644
--- a/pkg/compiler/lib/src/core_types.dart
+++ b/pkg/compiler/lib/src/core_types.dart
@@ -33,6 +33,9 @@
   /// The `Null` type defined in 'dart:core'.
   InterfaceType get nullType;
 
+  /// The `Type` type defined in 'dart:core'.
+  InterfaceType get typeType;
+
   /// Returns an instance of the `List` type defined in 'dart:core' with
   /// [elementType] as its type argument.
   InterfaceType listType([DartType elementType = const DynamicType()]);
diff --git a/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart b/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart
index d511047..3297497 100644
--- a/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart
+++ b/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart
@@ -457,6 +457,9 @@
   void _createFunctionParameter(Local parameterElement);
   void _createThisParameter();
 
+  /// Reifies the value of [variable] on the current receiver object.
+  ir.Primitive buildReifyTypeVariable(TypeVariableType variable);
+
   /// Creates an access to the receiver from the current (or enclosing) method.
   ///
   /// If inside a closure class, [buildThis] will redirect access through
@@ -488,9 +491,15 @@
   }
 
   /// Creates a [ir.MutableVariable] for the given local.
-  void makeMutableVariable(Local local) {
-    mutableVariables[local] =
-        new ir.MutableVariable(local.executableContext, local);
+  void makeMutableVariable(Local local, [ClosureClassMap closureMap]) {
+    ExecutableElement owner;
+    if (closureMap == null || closureMap.closureClassElement == null) {
+      owner = local.executableContext;
+    } else {
+      assert(local.executableContext == closureMap.closureElement);
+      owner = closureMap.callElement;
+    }
+    mutableVariables[local] = new ir.MutableVariable(owner, local);
   }
 
   /// Remove an [ir.MutableVariable] for a local.
@@ -1711,7 +1720,8 @@
   void buildTry(
       {TryStatementInfo tryStatementInfo,
        SubbuildFunction buildTryBlock,
-       List<CatchClauseInfo> catchClauseInfos: const <CatchClauseInfo>[]}) {
+       List<CatchClauseInfo> catchClauseInfos: const <CatchClauseInfo>[],
+       ClosureClassMap closureClassMap}) {
     assert(isOpen);
 
     // Catch handlers are in scope for their body.  The CPS translation of
@@ -1753,7 +1763,7 @@
     for (LocalVariableElement variable in tryStatementInfo.boxedOnEntry) {
       assert(!tryCatchBuilder.isInMutableVariable(variable));
       ir.Primitive value = tryCatchBuilder.buildLocalVariableGet(variable);
-      tryCatchBuilder.makeMutableVariable(variable);
+      tryCatchBuilder.makeMutableVariable(variable, closureClassMap);
       tryCatchBuilder.declareLocalVariable(variable, initialValue: value);
     }
 
@@ -1786,39 +1796,78 @@
       catchBuilder.environment.update(variable, value);
     }
 
-    // TODO(kmillikin): Handle multiple catch clauses.
-    assert(catchClauseInfos.length == 1);
-    for (CatchClauseInfo catchClauseInfo in catchClauseInfos) {
-      LocalVariableElement exceptionVariable =
-          catchClauseInfo.exceptionVariable;
-      ir.Parameter exceptionParameter = new ir.Parameter(exceptionVariable);
-      catchBuilder.declareLocalVariable(exceptionVariable,
-                                        initialValue: exceptionParameter);
-      ir.Parameter traceParameter;
-      LocalVariableElement stackTraceVariable =
-          catchClauseInfo.stackTraceVariable;
-      if (stackTraceVariable != null) {
-        traceParameter = new ir.Parameter(stackTraceVariable);
-        catchBuilder.declareLocalVariable(stackTraceVariable,
-                                          initialValue: traceParameter);
-      } else {
-        // Use a dummy continuation parameter for the stack trace parameter.
-        // This will ensure that all handlers have two parameters and so they
-        // can be treated uniformly.
-        traceParameter = new ir.Parameter(null);
+    // Handlers are always translated as having both exception and stack trace
+    // parameters.  Multiple clauses do not have to use the same names for
+    // them.  Choose the first of each as the name hint for the respective
+    // handler parameter.
+    ir.Parameter exceptionParameter =
+        new ir.Parameter(catchClauseInfos.first.exceptionVariable);
+    LocalVariableElement traceVariable;
+    CatchClauseInfo catchAll;
+    for (int i = 0; i < catchClauseInfos.length; ++i) {
+      CatchClauseInfo info = catchClauseInfos[i];
+      if (info.type == null) {
+        catchAll = info;
+        catchClauseInfos.length = i;
+        break;
       }
-      catchClauseInfo.buildCatchBlock(catchBuilder);
-      if (catchBuilder.isOpen) catchBuilder.jumpTo(join);
-      List<ir.Parameter> catchParameters =
-          <ir.Parameter>[exceptionParameter, traceParameter];
-      ir.Continuation catchContinuation = new ir.Continuation(catchParameters);
-      catchContinuation.body = catchBuilder._root;
+      if (traceVariable == null) {
+        traceVariable = info.stackTraceVariable;
+      }
+    }
+    ir.Parameter traceParameter = new ir.Parameter(traceVariable);
+    // Expand multiple catch clauses into an explicit if/then/else.  Iterate
+    // them in reverse so the current block becomes the next else block.
+    ir.Expression catchBody;
+    if (catchAll == null) {
+      catchBody = new ir.Rethrow();
+    } else {
+      IrBuilder clauseBuilder = catchBuilder.makeDelimitedBuilder();
+      clauseBuilder.declareLocalVariable(catchAll.exceptionVariable,
+                                         initialValue: exceptionParameter);
+      if (catchAll.stackTraceVariable != null) {
+        clauseBuilder.declareLocalVariable(catchAll.stackTraceVariable,
+                                           initialValue: traceParameter);
+      }
+      catchAll.buildCatchBlock(clauseBuilder);
+      if (clauseBuilder.isOpen) clauseBuilder.jumpTo(join);
+      catchBody = clauseBuilder._root;
+    }
+    for (CatchClauseInfo clause in catchClauseInfos.reversed) {
+      IrBuilder clauseBuilder = catchBuilder.makeDelimitedBuilder();
+      clauseBuilder.declareLocalVariable(clause.exceptionVariable,
+                                         initialValue: exceptionParameter);
+      if (clause.stackTraceVariable != null) {
+        clauseBuilder.declareLocalVariable(clause.stackTraceVariable,
+                                           initialValue: traceParameter);
+      }
+      clause.buildCatchBlock(clauseBuilder);
+      if (clauseBuilder.isOpen) clauseBuilder.jumpTo(join);
+      ir.Continuation thenContinuation = new ir.Continuation([]);
+      thenContinuation.body = clauseBuilder._root;
+      ir.Continuation elseContinuation = new ir.Continuation([]);
+      elseContinuation.body = catchBody;
 
-      tryCatchBuilder.add(
-          new ir.LetHandler(catchContinuation, tryBuilder._root));
-      tryCatchBuilder._current = null;
+      ir.Parameter typeMatches = new ir.Parameter(null);
+      ir.Continuation checkType = new ir.Continuation([typeMatches]);
+      checkType.body =
+          new ir.LetCont.many([thenContinuation, elseContinuation],
+              new ir.Branch(new ir.IsTrue(typeMatches),
+                            thenContinuation,
+                            elseContinuation));
+      catchBody =
+          new ir.LetCont(checkType,
+              new ir.TypeOperator(exceptionParameter, clause.type, checkType,
+                                  isTypeTest: true));
     }
 
+    List<ir.Parameter> catchParameters =
+        <ir.Parameter>[exceptionParameter, traceParameter];
+    ir.Continuation catchContinuation = new ir.Continuation(catchParameters);
+    catchContinuation.body = catchBody;
+
+    tryCatchBuilder.add(
+        new ir.LetHandler(catchContinuation, tryBuilder._root));
     add(new ir.LetCont(join.continuation, tryCatchBuilder._root));
     environment = join.environment;
   }
@@ -2258,6 +2307,11 @@
         (k) => new ir.InvokeConstructor(type, element, selector,
             arguments, k));
   }
+
+  @override
+  ir.Primitive buildReifyTypeVariable(TypeVariableType variable) {
+    return addPrimitive(new ir.ReifyTypeVar(variable.element));
+  }
 }
 
 /// State shared between JsIrBuilders within the same function.
@@ -2485,6 +2539,7 @@
 
   ir.Primitive buildThis() {
     if (jsState.receiver != null) return jsState.receiver;
+    assert(state.thisParameter != null);
     return state.thisParameter;
   }
 
@@ -2554,11 +2609,11 @@
 
   ir.Primitive buildTypeExpression(DartType type) {
     if (type is TypeVariableType) {
-      return buildTypeVariableAccess(buildThis(), type);
+      return buildTypeVariableAccess(type);
     } else if (type is InterfaceType) {
       List<ir.Primitive> arguments = <ir.Primitive>[];
       type.forEachTypeVariable((TypeVariableType variable) {
-        ir.Primitive value = buildTypeVariableAccess(buildThis(), variable);
+        ir.Primitive value = buildTypeVariableAccess(variable);
         arguments.add(value);
       });
       return addPrimitive(new ir.TypeExpression(type, arguments));
@@ -2568,8 +2623,13 @@
     }
   }
 
-  ir.Primitive buildTypeVariableAccess(ir.Primitive target,
-                                       TypeVariableType variable) {
+  /// Obtains the internal type representation of the type held in [variable].
+  ///
+  /// The value of [variable] is taken from the current receiver object, or
+  /// if we are currently building a constructor field initializer, from the
+  /// corresponding type argument (field initializers are evaluated before the
+  /// receiver object is created).
+  ir.Primitive buildTypeVariableAccess(TypeVariableType variable) {
     ir.Parameter accessTypeArgumentParameter() {
       for (int i = 0; i < environment.length; i++) {
         Local local = environment.index2variable[i];
@@ -2584,9 +2644,21 @@
     if (jsState.inInitializers) {
       return accessTypeArgumentParameter();
     } else {
+      ir.Primitive target = buildThis();
       return addPrimitive(new ir.ReadTypeVariable(variable, target));
     }
   }
+
+  @override
+  ir.Primitive buildReifyTypeVariable(TypeVariableType variable) {
+    ir.Primitive typeArgument = buildTypeVariableAccess(variable);
+    return addPrimitive(new ir.ReifyRuntimeType(typeArgument));
+  }
+
+  ir.Primitive buildInvocationMirror(Selector selector,
+                                     List<ir.Primitive> arguments) {
+    return addPrimitive(new ir.CreateInvocationMirror(selector, arguments));
+  }
 }
 
 
@@ -2648,13 +2720,14 @@
       new Set<LocalVariableElement>();
 }
 
-// TODO(johnniwinther): Support passing of [DartType] for the exception.
 class CatchClauseInfo {
+  final DartType type;
   final LocalVariableElement exceptionVariable;
   final LocalVariableElement stackTraceVariable;
   final SubbuildFunction buildCatchBlock;
 
-  CatchClauseInfo({this.exceptionVariable,
+  CatchClauseInfo({this.type,
+                   this.exceptionVariable,
                    this.stackTraceVariable,
                    this.buildCatchBlock});
 }
diff --git a/pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart b/pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart
index 5252b0f..fbb348b 100644
--- a/pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart
+++ b/pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart
@@ -57,6 +57,10 @@
   }
 
   ir.RootNode buildNode(AstElement element) {
+    return measure(() => _buildNode(element));
+  }
+
+  ir.RootNode _buildNode(AstElement element) {
     bailoutMessage = null;
     if (!canBuild(element)) {
       bailoutMessage = 'unsupported element ${element.name}:${element.kind}';
@@ -140,8 +144,7 @@
          BaseImplementationOfDynamicsMixin<ir.Primitive, dynamic>,
          BaseImplementationOfConstantsMixin<ir.Primitive, dynamic>,
          BaseImplementationOfSuperIncDecsMixin<ir.Primitive, dynamic>,
-         BaseImplementationOfNewMixin<ir.Primitive, dynamic>,
-         ErrorBulkMixin<ir.Primitive, dynamic>
+         BaseImplementationOfNewMixin<ir.Primitive, dynamic>
     implements SemanticSendVisitor<ir.Primitive, dynamic> {
   final TreeElements elements;
   final Compiler compiler;
@@ -178,11 +181,6 @@
                    this.compiler,
                    this.sourceInformationBuilder);
 
-  @override
-  bulkHandleNode(ast.Node node, String message, _) {
-    giveup(node, message.replaceFirst('#', '$node'));
-  }
-
   String bailoutMessage = null;
 
   @override
@@ -198,6 +196,7 @@
    */
   ir.RootNode buildExecutable(ExecutableElement element);
 
+  ClosureClassMap get closureClassMap;
   ClosureScope getClosureScopeForNode(ast.Node node);
   ClosureEnvironment getClosureEnvironment();
 
@@ -223,6 +222,28 @@
       CallStructure callStructure,
       List<ir.Primitive> arguments);
 
+  /// Creates a [TypedSelector] variant of [newSelector] using the type of
+  /// [oldSelector], if available.
+  ///
+  /// This is needed to preserve inferred receiver types when creating new
+  /// selectors.
+  Selector useSelectorType(Selector newSelector, Selector oldSelector) {
+    // TODO(asgerf,johnniwinther): This works but it is brittle.
+    //     We should decouple selectors from inferred receiver type masks.
+    // TODO(asgerf): Use this whenever we create a selector for a dynamic call.
+    if (oldSelector is TypedSelector) {
+      return new TypedSelector(oldSelector.mask, newSelector, compiler.world);
+    } else {
+      return newSelector;
+    }
+  }
+
+  /// Like [useSelectorType], except the original typed selector is obtained
+  /// from the [node].
+  Selector useSelectorTypeOfNode(Selector newSelector, ast.Send node) {
+    return useSelectorType(newSelector, elements.getSelector(node));
+  }
+
   ir.RootNode _makeFunctionBody(FunctionElement element,
                                 ast.FunctionExpression node) {
     FunctionSignature signature = element.functionSignature;
@@ -503,15 +524,6 @@
   }
 
   visitTryStatement(ast.TryStatement node) {
-    // Multiple catch blocks are not yet implemented.
-    if (node.catchBlocks.isEmpty ||
-        !node.catchBlocks.nodes.tail.isEmpty) {
-      return giveup(node, 'not exactly one catch block');
-    }
-    // 'on T' catch blocks are not yet implemented.
-    if ((node.catchBlocks.nodes.head as ast.CatchBlock).onKeyword != null) {
-      return giveup(node, '"on T" catch block');
-    }
     // Finally blocks are not yet implemented.
     if (node.finallyBlock != null) {
       return giveup(node, 'try/finally');
@@ -525,7 +537,12 @@
       if (catchClause.trace != null) {
         stackTraceVariable = elements[catchClause.trace];
       }
+      DartType type;
+      if (catchClause.onKeyword != null) {
+        type = elements.getType(catchClause.type);
+      }
       catchClauseInfos.add(new CatchClauseInfo(
+          type: type,
           exceptionVariable: exceptionVariable,
           stackTraceVariable: stackTraceVariable,
           buildCatchBlock: subbuild(catchClause.block)));
@@ -534,7 +551,8 @@
     irBuilder.buildTry(
         tryStatementInfo: tryStatements[node],
         buildTryBlock: subbuild(node.tryBlock),
-        catchClauseInfos: catchClauseInfos);
+        catchClauseInfos: catchClauseInfos,
+        closureClassMap: closureClassMap);
   }
 
   // ## Expressions ##
@@ -614,12 +632,6 @@
     return translateConstant(node);
   }
 
-  ir.Primitive visitIdentifier(ast.Identifier node) {
-    // "this" is the only identifier that should be met by the visitor.
-    assert(node.isThis());
-    return irBuilder.buildThis();
-  }
-
   ir.Primitive visitParenthesizedExpression(
       ast.ParenthesizedExpression node) {
     assert(irBuilder.isOpen);
@@ -795,28 +807,25 @@
   }
 
   @override
-  ir.Primitive visitUnresolvedGet(
-      ast.Send node,
-      Element element,
-      _) {
-    return giveup(node, 'visitUnresolvedGet');
-  }
-
-  @override
   ir.Primitive visitUnresolvedSuperGet(
       ast.Send node,
-      Element element,
-      _) {
-    return giveup(node, 'visitUnresolvedSuperGet');
+      Element element, _) {
+    return buildInstanceNoSuchMethod(elements.getSelector(node), []);
   }
 
   @override
   ir.Primitive visitThisGet(ast.Identifier node, _) {
+    if (irBuilder.state.thisParameter == null) {
+      // TODO(asgerf,johnniwinther): Should be in a visitInvalidThis method.
+      // 'this' in static context. Just translate to null.
+      assert(compiler.compilationFailed);
+      return irBuilder.buildNullConstant();
+    }
     return irBuilder.buildThis();
   }
 
   ir.Primitive translateTypeVariableTypeLiteral(TypeVariableElement element) {
-    return buildReifyTypeVariable(irBuilder.buildThis(), element.type);
+    return irBuilder.buildReifyTypeVariable(element.type);
   }
 
   @override
@@ -933,16 +942,6 @@
   }
 
   @override
-  ir.Primitive visitUnresolvedSuperBinary(
-      ast.Send node,
-      Element element,
-      op.BinaryOperator operator,
-      ast.Node argument,
-      _) {
-    return giveup(node, 'visitUnresolvedSuperBinary');
-  }
-
-  @override
   ir.Primitive visitSuperIndex(
       ast.Send node,
       FunctionElement function,
@@ -952,15 +951,6 @@
   }
 
   @override
-  ir.Primitive visitUnresolvedSuperIndex(
-      ast.Send node,
-      Element element,
-      ast.Node index,
-      _) {
-    return giveup(node, 'visitUnresolvedSuperIndex');
-  }
-
-  @override
   ir.Primitive visitEquals(
       ast.Send node,
       ast.Node left,
@@ -1028,15 +1018,6 @@
         function, CallStructure.NO_ARGS, const []);
   }
 
-  @override
-  ir.Primitive visitUnresolvedSuperUnary(
-      ast.Send node,
-      op.UnaryOperator operator,
-      Element element,
-      _) {
-    return giveup(node, 'visitUnresolvedSuperUnary');
-  }
-
   // TODO(johnniwinther): Handle this in the [IrBuilder] to ensure the correct
   // semantic correlation between arguments and invocation.
   List<ir.Primitive> translateDynamicArguments(ast.NodeList nodeList,
@@ -1140,9 +1121,10 @@
       ast.Send node,
       MethodElement function,
       ast.NodeList arguments,
-      CallStructure callStructure,
-      _) {
-    return giveup(node, 'handleStaticFunctionIncompatibleInvoke');
+      CallStructure callStructure, _) {
+    return buildStaticNoSuchMethod(
+        elements.getSelector(node),
+        arguments.nodes.mapToList(visit));
   }
 
   @override
@@ -1203,19 +1185,10 @@
       ast.Send node,
       MethodElement method,
       ast.NodeList arguments,
-      CallStructure callStructure,
-      _) {
-    return giveup(node, 'visitSuperMethodIncompatibleInvoke');
-  }
-
-  @override
-  ir.Primitive visitUnresolvedInvoke(
-      ast.Send node,
-      Element element,
-      ast.NodeList arguments,
-      Selector selector,
-      _) {
-    return giveup(node, 'visitUnresolvedInvoke');
+      CallStructure callStructure, _) {
+    return buildInstanceNoSuchMethod(
+        elements.getSelector(node),
+        translateDynamicArguments(arguments, callStructure));
   }
 
   @override
@@ -1223,9 +1196,10 @@
       ast.Send node,
       Element element,
       ast.NodeList arguments,
-      Selector selector,
-      _) {
-    return giveup(node, 'visitUnresolvedSuperInvoke');
+      Selector selector, _) {
+    return buildInstanceNoSuchMethod(
+        elements.getSelector(node),
+        translateDynamicArguments(arguments, selector.callStructure));
   }
 
   @override
@@ -1250,10 +1224,6 @@
         callStructure);
   }
 
-  // TODO(johnniwinther): This should be a method on [IrBuilder].
-  ir.Primitive buildReifyTypeVariable(ir.Primitive target,
-                                      TypeVariableType variable);
-
   @override
   ir.Primitive visitIndexSet(
        ast.SendSet node,
@@ -1711,6 +1681,62 @@
   }
 
   @override
+  ir.Primitive handleUnresolvedSuperGetterIndexPostfixPrefix(
+      ast.Send node,
+      Element element,
+      ast.Node index,
+      op.IncDecOperator operator,
+      arg,
+      {bool isPrefix}) {
+    return giveup(node, 'handleSuperUnresolvedGetterIndexPostfixPrefix');
+  }
+
+  @override
+  ir.Primitive handleUnresolvedSuperSetterIndexPostfixPrefix(
+      ast.Send node,
+      FunctionElement indexFunction,
+      Element element,
+      ast.Node index,
+      op.IncDecOperator operator,
+      arg,
+      {bool isPrefix}) {
+    return giveup(node, 'handleSuperUnresolvedGetterIndexPostfixPrefix');
+  }
+
+  @override
+  ir.Primitive visitUnresolvedSuperGetterCompoundIndexSet(
+      ast.Send node,
+      Element element,
+      ast.Node index,
+      op.AssignmentOperator operator,
+      ast.Node rhs,
+      arg) {
+    return giveup(node, 'visitUnresolvedSuperGetterCompoundIndexSet');
+  }
+
+  @override
+  ir.Primitive visitUnresolvedSuperIndexSet(
+      ast.Send node,
+      Element element,
+      ast.Node index,
+      ast.Node rhs,
+      arg) {
+    return giveup(node, 'visitUnresolvedSuperIndexSet');
+  }
+
+  @override
+  ir.Primitive visitUnresolvedSuperSetterCompoundIndexSet(
+      ast.Send node,
+      MethodElement getter,
+      Element element,
+      ast.Node index,
+      op.AssignmentOperator operator,
+      ast.Node rhs,
+      arg) {
+    return giveup(node, 'visitUnresolvedSuperSetterCompoundIndexSet');
+  }
+
+  @override
   ir.Primitive handleStaticSetterSet(
       ast.SendSet node,
       FunctionElement setter,
@@ -1867,6 +1893,727 @@
     return irBuilder.buildNonTailThrow(visit(node.expression));
   }
 
+  ir.Primitive buildStaticNoSuchMethod(
+      Selector selector,
+      List<ir.Primitive> arguments);
+
+  ir.Primitive buildInstanceNoSuchMethod(
+      Selector selector,
+      List<ir.Primitive> arguments);
+
+  ir.Primitive buildRuntimeError(String message);
+
+  ir.Primitive buildAbstractClassInstantiationError(ClassElement element);
+
+  @override
+  ir.Primitive errorInvalidAssert(
+      ast.Send node,
+      ast.NodeList arguments, _) {
+    if (compiler.enableUserAssertions) {
+      return giveup(node, 'Assert');
+    } else {
+      return irBuilder.buildNullConstant();
+    }
+  }
+
+  @override
+  ir.Primitive errorUnresolvedCompound(
+      ast.Send node,
+      Element element,
+      op.AssignmentOperator operator,
+      ast.Node rhs, _) {
+    // TODO(asgerf): What is unresolved? The getter and/or the setter?
+    //               If it was the setter, we must evaluate the right-hand side.
+    return buildStaticNoSuchMethod(elements.getSelector(node), []);
+  }
+
+  @override
+  ir.Primitive visitUnresolvedClassConstructorInvoke(
+      ast.NewExpression node,
+      Element element,
+      DartType type,
+      ast.NodeList arguments,
+      Selector selector, _) {
+    // If the class is missing it's a runtime error.
+    return buildRuntimeError("Unresolved class: '${element.name}'");
+  }
+
+  @override
+  ir.Primitive visitUnresolvedConstructorInvoke(
+      ast.NewExpression node,
+      Element constructor,
+      DartType type,
+      ast.NodeList arguments,
+      Selector selector, _) {
+    // If the class is there but the constructor is missing, it's an NSM error.
+    return buildStaticNoSuchMethod(selector,
+        translateDynamicArguments(arguments, selector.callStructure));
+  }
+
+  @override
+  ir.Primitive errorNonConstantConstructorInvoke(
+      ast.NewExpression node,
+      Element element,
+      InterfaceType type,
+      ast.NodeList arguments,
+      CallStructure callStructure, _) {
+    assert(compiler.compilationFailed);
+    return irBuilder.buildNullConstant();
+  }
+
+  @override
+  ir.Primitive visitUnresolvedGet(
+      ast.Send node,
+      Element element, _) {
+    return buildStaticNoSuchMethod(elements.getSelector(node), []);
+  }
+
+  @override
+  ir.Primitive visitUnresolvedInvoke(
+      ast.Send node,
+      Element element,
+      ast.NodeList arguments,
+      Selector selector, _) {
+    return buildStaticNoSuchMethod(elements.getSelector(node),
+        arguments.nodes.mapToList(visit));
+  }
+
+  @override
+  ir.Primitive errorUnresolvedPostfix(
+      ast.Send node,
+      Element element,
+      op.IncDecOperator operator, _) {
+    // TODO(asgerf): Which ones are missing? The getter and/or the setter?
+    return buildStaticNoSuchMethod(elements.getSelector(node), []);
+  }
+
+  @override
+  ir.Primitive errorUnresolvedPrefix(
+      ast.Send node,
+      Element element,
+      op.IncDecOperator operator, _) {
+    // TODO(asgerf): Which ones are missing? The getter and/or the setter?
+    return buildStaticNoSuchMethod(elements.getSelector(node), []);
+  }
+
+  @override
+  ir.Primitive visitUnresolvedRedirectingFactoryConstructorInvoke(
+       ast.NewExpression node,
+       ConstructorElement constructor,
+       InterfaceType type,
+       ast.NodeList arguments,
+       CallStructure callStructure, _) {
+    String nameString = Elements.reconstructConstructorName(constructor);
+    Name name = new Name(nameString, constructor.library);
+    return buildStaticNoSuchMethod(
+        new Selector(SelectorKind.CALL, name, callStructure),
+        translateDynamicArguments(arguments, callStructure));
+  }
+
+  @override
+  ir.Primitive errorUnresolvedSet(
+      ast.Send node,
+      Element element,
+      ast.Node rhs, _) {
+    return buildStaticNoSuchMethod(elements.getSelector(node), [visit(rhs)]);
+  }
+
+  @override
+  ir.Primitive errorUnresolvedSuperCompoundIndexSet(
+      ast.SendSet node,
+      Element element,
+      ast.Node index,
+      op.AssignmentOperator operator,
+      ast.Node rhs, _) {
+    // Assume the index getter is missing.
+    Selector selector = useSelectorTypeOfNode(new Selector.index(), node);
+    return buildInstanceNoSuchMethod(selector, [visit(index)]);
+  }
+
+  @override
+  ir.Primitive visitUnresolvedSuperIndex(
+      ast.Send node,
+      Element function,
+      ast.Node index, _) {
+    // Assume the index getter is missing.
+    Selector selector = useSelectorTypeOfNode(new Selector.index(), node);
+    return buildInstanceNoSuchMethod(selector, [visit(index)]);
+  }
+
+  @override
+  ir.Primitive errorUnresolvedSuperIndexPostfix(
+      ast.Send node,
+      Element function,
+      ast.Node index,
+      op.IncDecOperator operator, _) {
+    // Assume the index getter is missing.
+    Selector selector = useSelectorTypeOfNode(new Selector.index(), node);
+    return buildInstanceNoSuchMethod(selector, [visit(index)]);
+  }
+
+  @override
+  ir.Primitive errorUnresolvedSuperIndexPrefix(
+      ast.Send node,
+      Element function,
+      ast.Node index,
+      op.IncDecOperator operator, _) {
+    // Assume the index getter is missing.
+    Selector selector = useSelectorTypeOfNode(new Selector.index(), node);
+    return buildInstanceNoSuchMethod(selector, [visit(index)]);
+  }
+
+  @override
+  ir.Primitive errorUnresolvedSuperIndexSet(
+      ast.SendSet node,
+      Element element,
+      ast.Node index,
+      ast.Node rhs, _) {
+    Selector selector = useSelectorTypeOfNode(new Selector.index(), node);
+    return buildInstanceNoSuchMethod(
+        selector,
+        [visit(index), visit(rhs)]);
+  }
+
+  @override
+  ir.Primitive visitUnresolvedSuperBinary(
+      ast.Send node,
+      Element element,
+      op.BinaryOperator operator,
+      ast.Node argument, _) {
+    return buildInstanceNoSuchMethod(
+        elements.getSelector(node),
+        [visit(argument)]);
+  }
+
+  @override
+  ir.Primitive visitUnresolvedSuperUnary(
+      ast.Send node,
+      op.UnaryOperator operator,
+      Element element, _) {
+    return buildInstanceNoSuchMethod(elements.getSelector(node), []);
+  }
+
+  @override
+  ir.Primitive errorUndefinedBinaryExpression(
+      ast.Send node,
+      ast.Node left,
+      ast.Operator operator,
+      ast.Node right, _) {
+    assert(compiler.compilationFailed);
+    return irBuilder.buildNullConstant();
+  }
+
+  @override
+  ir.Primitive errorUndefinedUnaryExpression(
+      ast.Send node,
+      ast.Operator operator,
+      ast.Node expression, _) {
+    assert(compiler.compilationFailed);
+    return irBuilder.buildNullConstant();
+  }
+
+  @override
+  ir.Primitive errorTopLevelFunctionSet(
+      ast.Send node,
+      MethodElement function,
+      ast.Node rhs, _) {
+    return buildStaticNoSuchMethod(
+        new Selector.setter(function.name, function.library),
+        [visit(rhs)]);
+  }
+
+  @override
+  ir.Primitive errorTopLevelSetterGet(
+      ast.Send node,
+      FunctionElement setter, _) {
+    return buildStaticNoSuchMethod(
+        new Selector.getter(setter.name, setter.library), []);
+  }
+
+  @override
+  ir.Primitive errorTopLevelGetterSet(
+      ast.SendSet node,
+      FunctionElement getter,
+      ast.Node rhs, _) {
+    return buildStaticNoSuchMethod(
+        new Selector.setter(getter.name, getter.library),
+        [visit(rhs)]);
+  }
+
+  @override
+  ir.Primitive errorTopLevelSetterInvoke(
+      ast.Send node,
+      FunctionElement setter,
+      ast.NodeList arguments,
+      CallStructure callStructure, _) {
+    return buildStaticNoSuchMethod(
+        new Selector.getter(setter.name, setter.library), []);
+  }
+
+  @override
+  ir.Primitive errorClassTypeLiteralSet(
+      ast.SendSet node,
+      TypeConstantExpression constant,
+      ast.Node rhs, _) {
+    InterfaceType type = constant.type;
+    ClassElement element = type.element;
+    return buildStaticNoSuchMethod(
+        new Selector.setter(element.name, element.library), [visit(rhs)]);
+  }
+
+  @override
+  ir.Primitive errorTypedefTypeLiteralSet(
+      ast.SendSet node,
+      TypeConstantExpression constant,
+      ast.Node rhs, _) {
+    TypedefType type = constant.type;
+    TypedefElement element = type.element;
+    return buildStaticNoSuchMethod(
+        new Selector.setter(element.name, element.library), [visit(rhs)]);
+  }
+
+  @override
+  ir.Primitive errorTypeVariableTypeLiteralSet(
+      ast.SendSet node,
+      TypeVariableElement element,
+      ast.Node rhs, _) {
+    return buildStaticNoSuchMethod(
+        new Selector.setter(element.name, element.library), [visit(rhs)]);
+  }
+
+  @override
+  ir.Primitive errorDynamicTypeLiteralSet(
+      ast.SendSet node,
+      ConstantExpression constant,
+      ast.Node rhs, _) {
+    return buildStaticNoSuchMethod(
+        new Selector.setter('dynamic', null), [visit(rhs)]);
+  }
+
+  @override
+  ir.Primitive visitAbstractClassConstructorInvoke(
+      ast.NewExpression node,
+      ConstructorElement element,
+      InterfaceType type,
+      ast.NodeList arguments,
+      CallStructure callStructure, _) {
+    return buildAbstractClassInstantiationError(element.enclosingClass);
+  }
+
+  @override
+  ir.Primitive errorClassTypeLiteralCompound(
+      ast.Send node,
+      ConstantExpression constant,
+      op.AssignmentOperator operator,
+      ast.Node rhs, _) {
+    return translateCompound(
+        getValue: () => irBuilder.buildConstant(constant),
+        operator: operator,
+        rhs: rhs,
+        setValue: (value) {}); // The binary operator will throw before this.
+  }
+
+  @override
+  ir.Primitive errorClassTypeLiteralPostfix(
+      ast.Send node,
+      ConstantExpression constant,
+      op.IncDecOperator operator, _) {
+    return translatePrefixPostfix(
+      getValue: () => irBuilder.buildConstant(constant),
+      operator: operator,
+      setValue: (value) {}, // The binary operator will throw before this.
+      isPrefix: false);
+  }
+
+  @override
+  ir.Primitive errorClassTypeLiteralPrefix(
+      ast.Send node,
+      ConstantExpression constant,
+      op.IncDecOperator operator, _) {
+    return translatePrefixPostfix(
+      getValue: () => irBuilder.buildConstant(constant),
+      operator: operator,
+      setValue: (value) {}, // The binary operator will throw before this.
+      isPrefix: true);
+  }
+
+  @override
+  ir.Primitive errorDynamicTypeLiteralCompound(
+      ast.Send node,
+      ConstantExpression constant,
+      op.AssignmentOperator operator,
+      ast.Node rhs, _) {
+    return translateCompound(
+        getValue: () => irBuilder.buildConstant(constant),
+        operator: operator,
+        rhs: rhs,
+        setValue: (value) {}); // The binary operator will throw before this.
+  }
+
+  @override
+  ir.Primitive errorDynamicTypeLiteralPostfix(
+      ast.Send node,
+      ConstantExpression constant,
+      op.IncDecOperator operator, _) {
+    return translatePrefixPostfix(
+        getValue: () => irBuilder.buildConstant(constant),
+        operator: operator,
+        setValue: (value) {}, // The binary operator will throw before this.
+        isPrefix: false);
+  }
+
+  @override
+  ir.Primitive errorDynamicTypeLiteralPrefix(
+      ast.Send node,
+      ConstantExpression constant,
+      op.IncDecOperator operator, _) {
+    return translatePrefixPostfix(
+        getValue: () => irBuilder.buildConstant(constant),
+        operator: operator,
+        setValue: (value) {}, // The binary operator will throw before this.
+        isPrefix: true);
+  }
+
+  @override
+  ir.Primitive errorFinalLocalVariableCompound(
+      ast.Send node,
+      LocalVariableElement variable,
+      op.AssignmentOperator operator,
+      ast.Node rhs, _) {
+    Selector selector = new Selector.setter(variable.name, null);
+    return translateCompound(
+        getValue: () => irBuilder.buildLocalVariableGet(variable),
+        operator: operator,
+        rhs: rhs,
+        setValue: (value) => buildStaticNoSuchMethod(selector, [value]));
+  }
+
+  @override
+  ir.Primitive errorFinalLocalVariableSet(
+      ast.SendSet node,
+      LocalVariableElement variable,
+      ast.Node rhs, _) {
+    Selector selector = new Selector.setter(variable.name, null);
+    return buildStaticNoSuchMethod(selector, [visit(rhs)]);
+  }
+
+  @override
+  ir.Primitive errorFinalParameterCompound(
+      ast.Send node,
+      ParameterElement parameter,
+      op.AssignmentOperator operator,
+      ast.Node rhs, _) {
+    Selector selector = new Selector.setter(parameter.name, null);
+    return translateCompound(
+        getValue: () => irBuilder.buildLocalVariableGet(parameter),
+        operator: operator,
+        rhs: rhs,
+        setValue: (value) => buildStaticNoSuchMethod(selector, [value]));
+  }
+
+  @override
+  ir.Primitive errorFinalParameterSet(
+      ast.SendSet node,
+      ParameterElement parameter,
+      ast.Node rhs, _) {
+    Selector selector = new Selector.setter(parameter.name, null);
+    return buildStaticNoSuchMethod(selector, [visit(rhs)]);
+  }
+
+  @override
+  ir.Primitive errorFinalStaticFieldCompound(
+      ast.Send node,
+      FieldElement field,
+      op.AssignmentOperator operator,
+      ast.Node rhs, _) {
+    return translateCompound(
+        getValue: () => irBuilder.buildStaticFieldGet(field),
+        operator: operator,
+        rhs: rhs,
+        setValue: (value) => buildStaticNoSuchMethod(
+            new Selector.setter(field.name, field.library), [value]));
+  }
+
+  @override
+  ir.Primitive errorFinalStaticFieldSet(
+      ast.SendSet node,
+      FieldElement field,
+      ast.Node rhs, _) {
+    // TODO(asgerf): Include class name somehow?
+    return buildStaticNoSuchMethod(
+        new Selector.setter(field.name, field.library),
+        [visit(rhs)]);
+  }
+
+  @override
+  ir.Primitive errorFinalSuperFieldCompound(
+      ast.Send node,
+      FieldElement field,
+      op.AssignmentOperator operator,
+      ast.Node rhs, _) {
+    Selector selector = useSelectorTypeOfNode(
+        new Selector.setter(field.name, field.library),
+        node);
+    return translateCompound(
+        getValue: () => irBuilder.buildSuperFieldGet(field),
+        operator: operator,
+        rhs: rhs,
+        setValue: (value) => buildInstanceNoSuchMethod(selector, [value]));
+  }
+
+  @override
+  ir.Primitive errorFinalSuperFieldSet(
+      ast.SendSet node,
+      FieldElement field,
+      ast.Node rhs, _) {
+    Selector selector = useSelectorTypeOfNode(
+        new Selector.setter(field.name, field.library),
+        node);
+    return buildInstanceNoSuchMethod(selector, [visit(rhs)]);
+  }
+
+  @override
+  ir.Primitive errorFinalTopLevelFieldCompound(
+      ast.Send node,
+      FieldElement field,
+      op.AssignmentOperator operator,
+      ast.Node rhs, _) {
+    return translateCompound(
+        getValue: () => irBuilder.buildStaticFieldGet(field),
+        operator: operator,
+        rhs: rhs,
+        setValue: (value) => buildStaticNoSuchMethod(
+            new Selector.setter(field.name, field.library), [value]));
+  }
+
+  @override
+  ir.Primitive errorFinalTopLevelFieldSet(
+      ast.SendSet node,
+      FieldElement field,
+      ast.Node rhs, _) {
+    return buildStaticNoSuchMethod(
+        new Selector.setter(field.name, field.library),
+        [visit(rhs)]);
+  }
+
+  @override
+  ir.Primitive errorLocalFunctionCompound(
+      ast.Send node,
+      LocalFunctionElement function,
+      op.AssignmentOperator operator,
+      ast.Node rhs, _) {
+    return translateCompound(
+        getValue: () => irBuilder.buildLocalFunctionGet(function),
+        operator: operator,
+        rhs: rhs,
+        setValue: (value) {}); // Binary operator will throw before this.
+  }
+
+  @override
+  ir.Primitive errorLocalFunctionPostfix(
+      ast.Send node,
+      LocalFunctionElement function,
+      op.IncDecOperator operator,
+      _) {
+    return translatePrefixPostfix(
+        getValue: () => irBuilder.buildLocalFunctionGet(function),
+        operator: operator,
+        setValue: (value) {}, // Binary operator will throw before this.
+        isPrefix: false);
+  }
+
+  @override
+  ir.Primitive errorLocalFunctionPrefix(
+      ast.Send node,
+      LocalFunctionElement function,
+      op.IncDecOperator operator,
+      _) {
+    return translatePrefixPostfix(
+        getValue: () => irBuilder.buildLocalFunctionGet(function),
+        operator: operator,
+        setValue: (value) {}, // Binary operator will throw before this.
+        isPrefix: true);
+  }
+
+  @override
+  ir.Primitive errorLocalFunctionSet(
+      ast.SendSet node,
+      LocalFunctionElement function,
+      ast.Node rhs, _) {
+    return buildStaticNoSuchMethod(
+        new Selector.setter(function.name, null),
+        [visit(rhs)]);
+  }
+
+  @override
+  ir.Primitive errorStaticFunctionSet(
+      ast.Send node,
+      MethodElement function,
+      ast.Node rhs,
+      _) {
+    return buildStaticNoSuchMethod(
+        new Selector.setter(function.name, function.library),
+        [visit(rhs)]);
+  }
+
+  @override
+  ir.Primitive errorStaticGetterSet(
+      ast.SendSet node,
+      FunctionElement getter,
+      ast.Node rhs,
+      _) {
+    return buildStaticNoSuchMethod(
+        new Selector.setter(getter.name, getter.library),
+        [visit(rhs)]);
+  }
+
+  @override
+  ir.Primitive errorStaticSetterGet(
+      ast.Send node,
+      FunctionElement setter,
+      _) {
+    return buildStaticNoSuchMethod(
+        new Selector.getter(setter.name, setter.library),
+        []);
+  }
+
+  @override
+  ir.Primitive errorStaticSetterInvoke(
+      ast.Send node,
+      FunctionElement setter,
+      ast.NodeList arguments,
+      CallStructure callStructure, _) {
+    // Translate as a method call.
+    List<ir.Primitive> args = arguments.nodes.mapToList(visit);
+    Name name = new Name(setter.name, setter.library);
+    return buildStaticNoSuchMethod(
+        new Selector(SelectorKind.CALL, name, callStructure),
+        args);
+  }
+
+  @override
+  ir.Primitive errorSuperGetterSet(
+      ast.SendSet node,
+      FunctionElement getter,
+      ast.Node rhs,
+      _) {
+    Selector selector = useSelectorTypeOfNode(
+        new Selector.setter(getter.name, getter.library),
+        node);
+    return buildInstanceNoSuchMethod(selector, [visit(rhs)]);
+  }
+
+  @override
+  ir.Primitive errorSuperMethodSet(
+      ast.Send node,
+      MethodElement method,
+      ast.Node rhs,
+      _) {
+    Selector selector = useSelectorTypeOfNode(
+        new Selector.setter(method.name, method.library),
+        node);
+    return buildInstanceNoSuchMethod(selector, [visit(rhs)]);
+  }
+
+  @override
+  ir.Primitive errorSuperSetterGet(
+      ast.Send node,
+      FunctionElement setter, _) {
+    Selector selector = useSelectorTypeOfNode(
+        new Selector.setter(setter.name, setter.library),
+        node);
+    return buildInstanceNoSuchMethod(selector, []);
+  }
+
+  @override
+  ir.Primitive errorSuperSetterInvoke(
+      ast.Send node,
+      FunctionElement setter,
+      ast.NodeList arguments,
+      CallStructure callStructure, _) {
+    List<ir.Primitive> args =
+        translateDynamicArguments(arguments, callStructure);
+    Name name = new Name(setter.name, setter.library);
+    Selector selector = useSelectorTypeOfNode(
+        new Selector(SelectorKind.CALL, name, callStructure),
+        node);
+    return buildInstanceNoSuchMethod(selector, args);
+  }
+
+  @override
+  ir.Primitive errorTypeVariableTypeLiteralCompound(
+      ast.Send node,
+      TypeVariableElement element,
+      op.AssignmentOperator operator,
+      ast.Node rhs, _) {
+    return translateCompound(
+        getValue: () => irBuilder.buildReifyTypeVariable(element.type),
+        operator: operator,
+        rhs: rhs,
+        setValue: (value) {}); // The binary operator will throw before this.
+  }
+
+  @override
+  ir.Primitive errorTypeVariableTypeLiteralPostfix(
+      ast.Send node,
+      TypeVariableElement element,
+      op.IncDecOperator operator, _) {
+    return translatePrefixPostfix(
+        getValue: () => irBuilder.buildReifyTypeVariable(element.type),
+        operator: operator,
+        setValue: (value) {}, // The binary operator will throw before this.
+        isPrefix: false);
+  }
+
+  @override
+  ir.Primitive errorTypeVariableTypeLiteralPrefix(
+      ast.Send node,
+      TypeVariableElement element,
+      op.IncDecOperator operator, _) {
+    return translatePrefixPostfix(
+        getValue: () => irBuilder.buildReifyTypeVariable(element.type),
+        operator: operator,
+        setValue: (value) {}, // The binary operator will throw before this.
+        isPrefix: true);
+  }
+
+  @override
+  ir.Primitive errorTypedefTypeLiteralCompound(
+      ast.Send node,
+      ConstantExpression constant,
+      op.AssignmentOperator operator,
+      ast.Node rhs, _) {
+    return translateCompound(
+        getValue: () => irBuilder.buildConstant(constant),
+        operator: operator,
+        rhs: rhs,
+        setValue: (value) {}); // The binary operator will throw before this.
+  }
+
+  @override
+  ir.Primitive errorTypedefTypeLiteralPostfix(
+      ast.Send node,
+      ConstantExpression constant,
+      op.IncDecOperator operator, _) {
+    return translatePrefixPostfix(
+        getValue: () => irBuilder.buildConstant(constant),
+        operator: operator,
+        setValue: (value) {}, // The binary operator will throw before this.
+        isPrefix: false);
+  }
+
+  @override
+  ir.Primitive errorTypedefTypeLiteralPrefix(
+      ast.Send node,
+      TypeConstantExpression constant,
+      op.IncDecOperator operator, _) {
+    return translatePrefixPostfix(
+        getValue: () => irBuilder.buildConstant(constant),
+        operator: operator,
+        setValue: (value) {}, // The binary operator will throw before this.
+        isPrefix: true);
+  }
+
   ir.RootNode nullIfGiveup(ir.RootNode action()) {
     try {
       return action();
@@ -2105,6 +2852,7 @@
     irBuilder.declareLocalFunction(element, inner);
   }
 
+  ClosureClassMap get closureClassMap => null;
   ClosureScope getClosureScopeForNode(ast.Node node) => null;
   ClosureEnvironment getClosureEnvironment() => null;
 
@@ -2190,15 +2938,6 @@
   }
 
   @override
-  ir.Primitive buildReifyTypeVariable(ir.Primitive target,
-                                      TypeVariableType variable) {
-    assert(target == irBuilder.state.enclosingMethodThisParameter);
-    ir.Primitive prim = new ir.ReifyTypeVar(variable.element);
-    irBuilder.add(new ir.LetPrim(prim));
-    return prim;
-  }
-
-  @override
   ir.Primitive handleConstructorInvoke(
       ast.NewExpression node,
       ConstructorElement constructor,
@@ -2213,6 +2952,28 @@
         type,
         arguments);
   }
+
+  @override
+  ir.Primitive buildStaticNoSuchMethod(Selector selector,
+                                       List<ir.Primitive> arguments) {
+    return giveup(null, 'Static noSuchMethod');
+  }
+
+  @override
+  ir.Primitive buildInstanceNoSuchMethod(Selector selector,
+                                         List<ir.Primitive> arguments) {
+    return giveup(null, 'Instance noSuchMethod');
+  }
+
+  @override
+  ir.Primitive buildRuntimeError(String message) {
+    return giveup(null, 'Build runtime error: $message');
+  }
+
+  @override
+  ir.Primitive buildAbstractClassInstantiationError(ClassElement element) {
+    return giveup(null, 'Abstract class instantiation: ${element.name}');
+  }
 }
 
 /// The [IrBuilder]s view on the information about the program that has been
@@ -2235,11 +2996,13 @@
   /// Promote the type of [irBuilder] to [JsIrBuilder].
   JsIrBuilder get irBuilder => super.irBuilder;
 
+  JavaScriptBackend get backend => compiler.backend;
+
   /// Result of closure conversion for the current body of code.
   ///
   /// Will be initialized upon entering the body of a function.
   /// It is computed by the [ClosureTranslator].
-  ClosureClassMap closureMap;
+  ClosureClassMap closureClassMap;
 
   /// During construction of a constructor factory, [fieldValues] maps fields
   /// to the primitive containing their initial value.
@@ -2293,11 +3056,11 @@
   /// captured reference to `this`), returns a [ClosureEnvironment]
   /// indicating how to access these.
   ClosureEnvironment getClosureEnvironment() {
-    if (closureMap.closureElement == null) return null;
+    if (closureClassMap.closureElement == null) return null;
     return new ClosureEnvironment(
-        closureMap.closureElement,
-        closureMap.thisLocal,
-        mapValues(closureMap.freeVariableMap, getLocation));
+        closureClassMap.closureElement,
+        closureClassMap.thisLocal,
+        mapValues(closureClassMap.freeVariableMap, getLocation));
   }
 
   /// If [node] has declarations for variables that should be boxed,
@@ -2306,7 +3069,7 @@
   ///
   /// Also see [ClosureScope].
   ClosureScope getClosureScopeForNode(ast.Node node) {
-    closurelib.ClosureScope scope = closureMap.capturingScopes[node];
+    closurelib.ClosureScope scope = closureClassMap.capturingScopes[node];
     if (scope == null) return null;
     // We translate a ClosureScope from closure.dart into IR builder's variant
     // because the IR builder should not depend on the synthetic elements
@@ -2699,10 +3462,11 @@
   ir.FunctionDefinition buildConstructorBody(ConstructorBodyElement body) {
     ConstructorElement constructor = body.constructor;
     ast.FunctionExpression node = constructor.node;
-    closureMap = compiler.closureToClassMapper.computeClosureToClassMapping(
-        constructor,
-        node,
-        elements);
+    closureClassMap =
+        compiler.closureToClassMapper.computeClosureToClassMapping(
+            constructor,
+            node,
+            elements);
 
     // We compute variables boxed in mutable variables on entry to each try
     // block, not including variables captured by a closure (which are boxed
@@ -2731,10 +3495,11 @@
     assert(node != null);
     assert(elements[node] != null);
 
-    closureMap = compiler.closureToClassMapper.computeClosureToClassMapping(
-        element,
-        node,
-        elements);
+    closureClassMap =
+        compiler.closureToClassMapper.computeClosureToClassMapping(
+            element,
+            node,
+            elements);
     DartCapturedVariables variables = _analyzeCapturedVariables(node);
     tryStatements = variables.tryStatements;
     IrBuilder builder = getBuilderFor(element);
@@ -2815,18 +3580,6 @@
     }
     return result;
   }
-
-  @override
-  ir.Primitive buildReifyTypeVariable(ir.Primitive target,
-                                      TypeVariableType variable) {
-    ir.Primitive typeArgument =
-        irBuilder.buildTypeVariableAccess(target, variable);
-
-    ir.Primitive type = new ir.ReifyRuntimeType(typeArgument);
-    irBuilder.add(new ir.LetPrim(type));
-    return type;
-  }
-
   @override
   ir.Primitive handleConstructorInvoke(
       ast.NewExpression node,
@@ -2845,6 +3598,45 @@
         constructor.computeEffectiveTargetType(type),
         arguments);
   }
+
+  @override
+  ir.Primitive buildStaticNoSuchMethod(Selector selector,
+                                       List<ir.Primitive> arguments) {
+    Element thrower = backend.getThrowNoSuchMethod();
+    ir.Primitive receiver = irBuilder.buildStringConstant('');
+    ir.Primitive name = irBuilder.buildStringConstant(selector.name);
+    ir.Primitive argumentList = irBuilder.buildListLiteral(null, arguments);
+    ir.Primitive expectedArgumentNames = irBuilder.buildNullConstant();
+    return irBuilder.buildStaticFunctionInvocation(
+        thrower,
+        new CallStructure.unnamed(4),
+        [receiver, name, argumentList, expectedArgumentNames]);
+  }
+
+  @override
+  ir.Primitive buildInstanceNoSuchMethod(Selector selector,
+                                         List<ir.Primitive> arguments) {
+    return irBuilder.buildDynamicInvocation(
+        irBuilder.buildThis(),
+        useSelectorType(compiler.noSuchMethodSelector, selector),
+        [irBuilder.buildInvocationMirror(selector, arguments)]);
+  }
+
+  @override
+  ir.Primitive buildRuntimeError(String message) {
+    return irBuilder.buildStaticFunctionInvocation(
+        backend.getThrowRuntimeError(),
+        new CallStructure.unnamed(1),
+        [irBuilder.buildStringConstant(message)]);
+  }
+
+  @override
+  ir.Primitive buildAbstractClassInstantiationError(ClassElement element) {
+    return irBuilder.buildStaticFunctionInvocation(
+        backend.getThrowAbstractClassInstantiationError(),
+        new CallStructure.unnamed(1),
+        [irBuilder.buildStringConstant(element.name)]);
+  }
 }
 
 /// Perform simple post-processing on the initial CPS-translated root term.
diff --git a/pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart b/pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart
index 7577607..9f0b7a0c 100644
--- a/pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart
+++ b/pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart
@@ -329,6 +329,9 @@
 /// invocations to intercepted methods, where the effective receiver is instead
 /// passed as a formal parameter.
 ///
+/// TODO(sra): Review. A direct call to a method that is mixed into a native
+/// class will still require an explicit argument.
+///
 /// When targeting Dart, this instruction is used to represent super calls.
 /// Here, [receiver] must always be a reference to `this`, and [target] must be
 /// a method that is available in the super class.
@@ -667,6 +670,17 @@
   accept(Visitor visitor) => visitor.visitInterceptor(this);
 }
 
+/// Create an instance of [Invocation] for use in a call to `noSuchMethod`.
+class CreateInvocationMirror extends Primitive implements JsSpecificNode {
+  final Selector selector;
+  final List<Reference<Primitive>> arguments;
+
+  CreateInvocationMirror(this.selector, List<Primitive> arguments)
+      : this.arguments = _referenceList(arguments);
+
+  accept(Visitor visitor) => visitor.visitCreateInvocationMirror(this);
+}
+
 class Constant extends Primitive {
   final ConstantExpression expression;
 
@@ -1021,6 +1035,7 @@
   T visitReifyRuntimeType(ReifyRuntimeType node);
   T visitReadTypeVariable(ReadTypeVariable node);
   T visitTypeExpression(TypeExpression node);
+  T visitCreateInvocationMirror(CreateInvocationMirror node);
 }
 
 /// Recursively visits the entire CPS term, and calls abstract `process*`
@@ -1326,4 +1341,10 @@
     processNonTailThrow(node);
     processReference(node.value);
   }
+
+  processCreateInvocationMirror(CreateInvocationMirror node) {}
+  visitCreateInvocationMirror(CreateInvocationMirror node) {
+    processCreateInvocationMirror(node);
+    node.arguments.forEach(processReference);
+  }
 }
diff --git a/pkg/compiler/lib/src/cps_ir/cps_ir_nodes_sexpr.dart b/pkg/compiler/lib/src/cps_ir/cps_ir_nodes_sexpr.dart
index 8a99d443..c330117 100644
--- a/pkg/compiler/lib/src/cps_ir/cps_ir_nodes_sexpr.dart
+++ b/pkg/compiler/lib/src/cps_ir/cps_ir_nodes_sexpr.dart
@@ -373,6 +373,12 @@
     String value = access(node.value);
     return '(NonTailThrow $value)';
   }
+
+  String visitCreateInvocationMirror(CreateInvocationMirror node) {
+    String selector = node.selector.name;
+    String args = node.arguments.map(access).join(', ');
+    return '(CreateInvocationMirror $selector $args)';
+  }
 }
 
 class ConstantStringifier extends ConstantValueVisitor<String, Null> {
diff --git a/pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart b/pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart
index ae35ea7..a807214 100644
--- a/pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart
+++ b/pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart
@@ -369,6 +369,11 @@
     String value = formatReference(node.value);
     return "NonTailThrow($value)";
   }
+
+  visitCreateInvocationMirror(cps_ir.CreateInvocationMirror node) {
+    String args = node.arguments.map(formatReference).join(', ');
+    return "CreateInvocationMirror(${node.selector.name}, $args)";
+  }
 }
 
 /**
@@ -624,4 +629,8 @@
   visitNonTailThrow(cps_ir.NonTailThrow node) {
     unexpectedNode(node);
   }
+
+  visitCreateInvocationMirror(cps_ir.CreateInvocationMirror node) {
+    unexpectedNode(node);
+  }
 }
diff --git a/pkg/compiler/lib/src/cps_ir/shrinking_reductions.dart b/pkg/compiler/lib/src/cps_ir/shrinking_reductions.dart
index edc8121..552e24d 100644
--- a/pkg/compiler/lib/src/cps_ir/shrinking_reductions.dart
+++ b/pkg/compiler/lib/src/cps_ir/shrinking_reductions.dart
@@ -681,6 +681,10 @@
   processTypeExpression(TypeExpression node) {
     node.arguments.forEach((Reference ref) => ref.parent = node);
   }
+
+  processCreateInvocationMirror(CreateInvocationMirror node) {
+    node.arguments.forEach((Reference ref) => ref.parent = node);
+  }
 }
 
 class _ReductionKind {
diff --git a/pkg/compiler/lib/src/cps_ir/type_propagation.dart b/pkg/compiler/lib/src/cps_ir/type_propagation.dart
index f66f370..27e92d7 100644
--- a/pkg/compiler/lib/src/cps_ir/type_propagation.dart
+++ b/pkg/compiler/lib/src/cps_ir/type_propagation.dart
@@ -896,6 +896,10 @@
     // real constants of type [Type].
     setValue(node, nonConstant());
   }
+
+  void visitCreateInvocationMirror(CreateInvocationMirror node) {
+    setValue(node, nonConstant());
+  }
 }
 
 /// Represents the abstract value of a primitive value at some point in the
diff --git a/pkg/compiler/lib/src/dart2jslib.dart b/pkg/compiler/lib/src/dart2jslib.dart
index fc659d3..0221ca9 100644
--- a/pkg/compiler/lib/src/dart2jslib.dart
+++ b/pkg/compiler/lib/src/dart2jslib.dart
@@ -28,7 +28,7 @@
     show ErroneousElementX,
          ClassElementX,
          CompilationUnitElementX,
-         FunctionElementX,
+         MethodElementX,
          LibraryElementX,
          PrefixElementX,
          VoidElementX,
diff --git a/pkg/compiler/lib/src/dart_backend/backend_ast_emitter.dart b/pkg/compiler/lib/src/dart_backend/backend_ast_emitter.dart
index a578d2e..44f0ae9 100644
--- a/pkg/compiler/lib/src/dart_backend/backend_ast_emitter.dart
+++ b/pkg/compiler/lib/src/dart_backend/backend_ast_emitter.dart
@@ -988,6 +988,11 @@
   }
 
   @override
+  visitCreateInvocationMirror(tree.CreateInvocationMirror node, arg) {
+    return errorUnsupportedNode(node);
+  }
+
+  @override
   Expression visitReadTypeVariable(tree.ReadTypeVariable node, arg) {
     return errorUnsupportedNode(node);
   }
@@ -1114,7 +1119,7 @@
 
 
 class ConstantEmitter
-    extends ConstantExpressionVisitor<BuilderContext<Statement>, Expression> {
+    extends ConstantExpressionVisitor<Expression, BuilderContext<Statement>> {
   const ConstantEmitter();
 
   /// Creates the [Expression] for the constant [exp].
@@ -1147,8 +1152,32 @@
   }
 
   @override
-  Expression visitPrimitive(PrimitiveConstantExpression exp,
-                            BuilderContext<Statement> context) {
+  Expression visitBool(BoolConstantExpression exp,
+                       BuilderContext<Statement> context) {
+    return handlePrimitiveConstant(exp.value);
+  }
+
+  @override
+  Expression visitInt(IntConstantExpression exp,
+                      BuilderContext<Statement> context) {
+    return handlePrimitiveConstant(exp.value);
+  }
+
+  @override
+  Expression visitDouble(DoubleConstantExpression exp,
+                         BuilderContext<Statement> context) {
+    return handlePrimitiveConstant(exp.value);
+  }
+
+  @override
+  Expression visitString(StringConstantExpression exp,
+                         BuilderContext<Statement> context) {
+    return handlePrimitiveConstant(exp.value);
+  }
+
+  @override
+  Expression visitNull(NullConstantExpression exp,
+                       BuilderContext<Statement> context) {
     return handlePrimitiveConstant(exp.value);
   }
 
@@ -1216,7 +1245,7 @@
   Expression visitConcatenate(ConcatenateConstantExpression exp,
                               BuilderContext<Statement> context) {
 
-    return new StringConcat(visitExpressions(exp.arguments, context));
+    return new StringConcat(visitExpressions(exp.expressions, context));
   }
 
   @override
@@ -1281,6 +1310,39 @@
   }
 
   @override
+  Expression visitNamed(NamedArgumentReference exp,
+                        BuilderContext<Statement> context) {
+    throw new UnsupportedError("ConstantEmitter.visitNamed");
+  }
+
+  @override
+  Expression visitPositional(PositionalArgumentReference exp,
+                             BuilderContext<Statement> context) {
+    throw new UnsupportedError("ConstantEmitter.visitPositional");
+  }
+
+  @override
+  Expression visitBoolFromEnvironment(
+      BoolFromEnvironmentConstantExpression exp,
+      BuilderContext<Statement> context) {
+    return handlePrimitiveConstant(exp.value);
+  }
+
+  @override
+  Expression visitIntFromEnvironment(
+      IntFromEnvironmentConstantExpression exp,
+      BuilderContext<Statement> context) {
+    return handlePrimitiveConstant(exp.value);
+  }
+
+  @override
+  Expression visitStringFromEnvironment(
+      StringFromEnvironmentConstantExpression exp,
+      BuilderContext<Statement> context) {
+    return handlePrimitiveConstant(exp.value);
+  }
+
+  @override
   Expression visitDeferred(DeferredConstantExpression exp,
                            BuilderContext<Statement> context) {
     return exp.expression.accept(this);
diff --git a/pkg/compiler/lib/src/dart_backend/placeholder_collector.dart b/pkg/compiler/lib/src/dart_backend/placeholder_collector.dart
index 91ed149..04a7b7c 100644
--- a/pkg/compiler/lib/src/dart_backend/placeholder_collector.dart
+++ b/pkg/compiler/lib/src/dart_backend/placeholder_collector.dart
@@ -369,8 +369,8 @@
       return;
     }
 
-    if (element.isGetter || element.isSetter) {
-      element = (element as FunctionElement).abstractField;
+    if (element.isAccessor) {
+      element = (element as AccessorElement).abstractField;
     }
     elementNodes.putIfAbsent(element, () => new Set<Node>()).add(node);
   }
diff --git a/pkg/compiler/lib/src/deferred_load.dart b/pkg/compiler/lib/src/deferred_load.dart
index b4ef154..2b0b7fc 100644
--- a/pkg/compiler/lib/src/deferred_load.dart
+++ b/pkg/compiler/lib/src/deferred_load.dart
@@ -25,6 +25,7 @@
     JavaScriptBackend;
 
 import 'elements/elements.dart' show
+    AccessorElement,
     AstElement,
     ClassElement,
     Element,
@@ -201,9 +202,16 @@
     return outputUnitForElement(element) != mainOutputUnit;
   }
 
-  /// Returns true if e1 and e2 are in the same output unit.
-  bool inSameOutputUnit(Element e1, Element e2) {
-    return outputUnitForElement(e1) == outputUnitForElement(e2);
+  /// Returns `true` if element [to] is reachable from element [from] without
+  /// crossing a deferred import.
+  ///
+  /// For example, if we have two deferred libraries `A` and `B` that both
+  /// import a library `C`, then even though elements from `A` and `C` end up in
+  /// different output units, there is a non-deferred path between `A` and `C`.
+  bool hasOnlyNonDeferredImportPaths(Element from, Element to) {
+    OutputUnit outputUnitFrom = outputUnitForElement(from);
+    OutputUnit outputUnitTo = outputUnitForElement(to);
+    return outputUnitTo.imports.containsAll(outputUnitFrom.imports);
   }
 
   void registerConstantDeferredUse(DeferredConstantValue constant,
@@ -233,7 +241,7 @@
       element = element.enclosingClass;
     }
     if (element.isAccessor) {
-      element = (element as FunctionElement).abstractField;
+      element = (element as AccessorElement).abstractField;
     }
     return library.getImportsFor(element);
   }
diff --git a/pkg/compiler/lib/src/elements/elements.dart b/pkg/compiler/lib/src/elements/elements.dart
index dc86504..5301e0b 100644
--- a/pkg/compiler/lib/src/elements/elements.dart
+++ b/pkg/compiler/lib/src/elements/elements.dart
@@ -411,9 +411,6 @@
   bool get isAbstract;
   bool isForeign(Backend backend);
 
-  void addMetadata(MetadataAnnotation annotation);
-  void setNative(String name);
-
   Scope buildScope();
 
   void diagnose(Element context, DiagnosticListener listener);
@@ -840,12 +837,14 @@
 }
 
 abstract class CompilationUnitElement extends Element {
+  /// Use [library] instead.
+  @deprecated
+  get enclosingElement;
+
   Script get script;
   PartOf get partTag;
 
   void forEachLocalMember(f(Element element));
-  void addMember(Element element, DiagnosticListener listener);
-  void setPartOf(PartOf tag, DiagnosticListener listener);
   bool get hasMembers;
 
   int compareTo(CompilationUnitElement other);
@@ -887,33 +886,15 @@
    * an underscore.
    */
   bool get isInternalLibrary;
+
   bool get canUseNative;
   bool get exportsHandled;
 
-  // TODO(kasperl): We should try to get rid of these.
-  void set libraryTag(LibraryName value);
-
   LibraryElement get implementation;
 
-  void addCompilationUnit(CompilationUnitElement element);
-  void addTag(LibraryTag tag, DiagnosticListener listener);
-  void addImport(Element element, Import import, DiagnosticListener listener);
-
-  /// Record which element an import or export tag resolved to.
-  /// (Belongs on builder object).
-  void recordResolvedTag(LibraryDependency tag, LibraryElement library);
-
   /// Return the library element corresponding to an import or export.
   LibraryElement getLibraryFromTag(LibraryDependency tag);
 
-  void addMember(Element element, DiagnosticListener listener);
-  void addToScope(Element element, DiagnosticListener listener);
-
-  // TODO(kasperl): Get rid of this method.
-  Iterable<Element> getNonPrivateElementsInScope();
-
-  void setExports(Iterable<Element> exportedElements);
-
   Element find(String elementName);
   Element findLocal(String elementName);
   Element findExported(String elementName);
@@ -998,6 +979,10 @@
 /// A top level, static or instance field, a formal parameter or local variable.
 abstract class VariableElement extends ExecutableElement {
   Expression get initializer;
+
+  /// The constant expression defining the value of the variable if `const`,
+  /// `null` otherwise.
+  ConstantExpression get constant;
 }
 
 /// An entity that defines a local entity (memory slot) in generated code.
@@ -1135,10 +1120,6 @@
   FunctionElement get patch;
   FunctionElement get origin;
 
-  /// Used to retrieve a link to the abstract field element representing this
-  /// element.
-  AbstractFieldElement get abstractField;
-
   /// Do not use [computeSignature] outside of the resolver; instead retrieve
   /// the signature through the [functionSignature] field.
   /// Trying to access a function signature that has not been computed in
@@ -1162,6 +1143,25 @@
   bool get isExternal;
 }
 
+/// A getter or setter.
+abstract class AccessorElement extends MethodElement {
+  /// Used to retrieve a link to the abstract field element representing this
+  /// element.
+  AbstractFieldElement get abstractField;
+}
+
+/// A getter.
+abstract class GetterElement extends AccessorElement {
+  /// The setter corresponding to this getter, if any.
+  SetterElement get setter;
+}
+
+/// A setter.
+abstract class SetterElement extends AccessorElement {
+  /// The getter corresponding to this setter, if any.
+  GetterElement get getter;
+}
+
 /// Enum for the synchronous/asynchronous function body modifiers.
 class AsyncMarker {
   /// The default function body marker.
@@ -1232,6 +1232,12 @@
   /// constructor so its immediate redirection target is `null`.
   ConstructorElement get immediateRedirectionTarget;
 
+  bool get isCyclicRedirection;
+
+  /// The prefix of the immediateRedirectionTarget, if it is deferred.
+  /// [null] if it is not deferred.
+  PrefixElement get redirectionDeferredPrefix;
+
   /// Is `true` if this constructor is a redirecting generative constructor.
   bool get isRedirectingGenerative;
 
@@ -1256,6 +1262,13 @@
   /// is `C.c`.
   ConstructorElement get definingConstructor;
 
+  /// The constant constructor defining the binding of fields if `const`,
+  /// `null` otherwise.
+  ConstantConstructor get constantConstructor;
+
+  /// `true` if this constructor is either `bool.fromEnviroment`
+  bool get isFromEnvironmentConstructor;
+
   /// Use [enclosingClass] instead.
   @deprecated
   get enclosingElement;
diff --git a/pkg/compiler/lib/src/elements/modelx.dart b/pkg/compiler/lib/src/elements/modelx.dart
index 7d96a64..e19d722 100644
--- a/pkg/compiler/lib/src/elements/modelx.dart
+++ b/pkg/compiler/lib/src/elements/modelx.dart
@@ -6,6 +6,7 @@
 
 import 'elements.dart';
 import '../constants/expressions.dart';
+import '../constants/constructors.dart';
 import '../helpers/helpers.dart';  // Included for debug helpers.
 import '../tree/tree.dart';
 import '../util/util.dart';
@@ -170,7 +171,7 @@
 
   Name get memberName => new Name(name, library);
 
-  LibraryElement get implementationLibrary {
+  LibraryElementX get implementationLibrary {
     Element element = this;
     while (!identical(element.kind, ElementKind.LIBRARY)) {
       element = element.enclosingElement;
@@ -283,6 +284,10 @@
 
   bool get isSynthesized => true;
 
+  bool get isCyclicRedirection => false;
+
+  PrefixElement get redirectionDeferredPrefix => null;
+
   AbstractFieldElement abstractField;
 
   unsupported() {
@@ -306,6 +311,7 @@
   get memberContext => unsupported();
   get executableContext => unsupported();
   get isExternal => unsupported();
+  get constantConstructor => null;
 
   bool get isRedirectingGenerative => unsupported();
   bool get isRedirectingFactory => unsupported();
@@ -329,11 +335,16 @@
   accept(ElementVisitor visitor, arg) {
     return visitor.visitErroneousElement(this, arg);
   }
+
+  @override
+  bool get isFromEnvironmentConstructor => false;
 }
 
 /// A constructor that was synthesized to recover from a compile-time error.
 class ErroneousConstructorElementX extends ErroneousElementX
-    with PatchMixin<FunctionElement>, AnalyzableElementX
+    with PatchMixin<FunctionElement>,
+         AnalyzableElementX,
+         ConstantConstructorMixin
     implements ConstructorElementX {
   // TODO(ahe): Instead of subclassing [ErroneousElementX], this class should
   // be more like [ErroneousFieldElementX]. In particular, its kind should be
@@ -414,9 +425,9 @@
     throw new UnsupportedError("nestedClosures=");
   }
 
-  bool get hasNoBody => false;
-
-  bool get _hasNoBody => false;
+  set redirectionDeferredPrefix(_) {
+    throw new UnsupportedError("redirectionDeferredPrefix=");
+  }
 
   void set effectiveTarget(_) {
     throw new UnsupportedError("effectiveTarget=");
@@ -608,7 +619,7 @@
    * element, they are enclosed by the class or compilation unit, as is the
    * abstract field.
    */
-  void addAccessor(FunctionElementX accessor,
+  void addAccessor(AccessorElementX accessor,
                    Element existing,
                    DiagnosticListener listener) {
     void reportError(Element other) {
@@ -666,7 +677,7 @@
   PartOf partTag;
   Link<Element> localMembers = const Link<Element>();
 
-  CompilationUnitElementX(Script script, LibraryElement library)
+  CompilationUnitElementX(Script script, LibraryElementX library)
     : this.script = script,
       super(script.name,
             ElementKind.COMPILATION_UNIT,
@@ -674,6 +685,9 @@
     library.addCompilationUnit(this);
   }
 
+  @override
+  LibraryElementX get library => enclosingElement.declaration;
+
   void forEachLocalMember(f(Element element)) {
     localMembers.forEach(f);
   }
@@ -925,6 +939,7 @@
     return tagsCache;
   }
 
+  /// Record which element an import or export tag resolved to.
   void recordResolvedTag(LibraryDependency tag, LibraryElement library) {
     assert(tagMapping[tag] == null);
     tagMapping[tag] = library;
@@ -1255,7 +1270,24 @@
   DartType computeType(Element element, Compiler compiler) => type;
 }
 
-abstract class VariableElementX extends ElementX with AstElementMixin
+abstract class ConstantVariableMixin implements VariableElement {
+  ConstantExpression _constant;
+
+  ConstantExpression get constant {
+    assert(invariant(this, _constant != null,
+        message: "Constant has not been computed for $this."));
+    return _constant;
+  }
+
+  void set constant(ConstantExpression value) {
+    assert(invariant(this, _constant == null || _constant == value,
+        message: "Constant has already been computed for $this."));
+    _constant = value;
+  }
+}
+
+abstract class VariableElementX extends ElementX
+    with AstElementMixin, ConstantVariableMixin
     implements VariableElement {
   final Token token;
   final VariableList variables;
@@ -1414,7 +1446,8 @@
 }
 
 /// A field that was synthesized to recover from a compile-time error.
-class ErroneousFieldElementX extends ElementX implements FieldElementX {
+class ErroneousFieldElementX extends ElementX
+    with ConstantVariableMixin implements FieldElementX {
   final VariableList variables;
 
   ErroneousFieldElementX(Identifier name, Element enclosingElement)
@@ -1559,7 +1592,8 @@
 /// to ensure that default values on parameters are computed once (on the
 /// origin parameter) but can be found through both the origin and the patch.
 abstract class ParameterElementX extends FormalElementX
-  with PatchMixin<ParameterElement> implements ParameterElement {
+    with PatchMixin<ParameterElement>, ConstantVariableMixin
+    implements ParameterElement {
   final Expression initializer;
   final bool isOptional;
   final bool isNamed;
@@ -1652,8 +1686,8 @@
 }
 
 class AbstractFieldElementX extends ElementX implements AbstractFieldElement {
-  FunctionElementX getter;
-  FunctionElementX setter;
+  GetterElementX getter;
+  SetterElementX setter;
 
   AbstractFieldElementX(String name, Element enclosing)
       : super(name, ElementKind.ABSTRACT_FIELD, enclosing);
@@ -1811,26 +1845,18 @@
 
   FunctionSignature functionSignatureCache;
 
-  final bool _hasNoBody;
-
-  AbstractFieldElement abstractField;
-
   AsyncMarker asyncMarker = AsyncMarker.SYNC;
 
   BaseFunctionElementX(String name,
                        ElementKind kind,
                        Modifiers this.modifiers,
-                       Element enclosing,
-                       bool hasNoBody)
-      : super(name, kind, enclosing),
-        _hasNoBody = hasNoBody {
+                       Element enclosing)
+      : super(name, kind, enclosing) {
     assert(modifiers != null);
   }
 
   bool get isExternal => modifiers.isExternal;
 
-  bool get hasNoBody => _hasNoBody;
-
   bool get isInstanceMember {
     return isClassMember
            && !isConstructor
@@ -1885,11 +1911,7 @@
     }
   }
 
-  bool get isAbstract {
-    return !modifiers.isExternal &&
-           (isFunction || isAccessor) &&
-           _hasNoBody;
-  }
+  bool get isAbstract => false;
 
   accept(ElementVisitor visitor, arg) {
     return visitor.visitFunctionElement(this, arg);
@@ -1901,12 +1923,12 @@
 
 abstract class FunctionElementX extends BaseFunctionElementX
     with AnalyzableElementX implements MethodElement {
+
   FunctionElementX(String name,
                    ElementKind kind,
                    Modifiers modifiers,
-                   Element enclosing,
-                   bool hasNoBody)
-      : super(name, kind, modifiers, enclosing, hasNoBody);
+                   Element enclosing)
+      : super(name, kind, modifiers, enclosing);
 
   MemberElement get memberContext => this;
 
@@ -1918,6 +1940,55 @@
   }
 }
 
+abstract class MethodElementX extends FunctionElementX {
+  final bool hasBody;
+
+  MethodElementX(String name,
+                 ElementKind kind,
+                 Modifiers modifiers,
+                 Element enclosing,
+                 // TODO(15101): Make this a named parameter.
+                 this.hasBody)
+      : super(name, kind, modifiers, enclosing);
+
+  @override
+  bool get isAbstract {
+    return !modifiers.isExternal && !hasBody;
+  }
+}
+
+abstract class AccessorElementX extends MethodElementX
+    implements AccessorElement {
+  AbstractFieldElement abstractField;
+
+  AccessorElementX(String name,
+                   ElementKind kind,
+                   Modifiers modifiers,
+                   Element enclosing,
+                   bool hasBody)
+      : super(name, kind, modifiers, enclosing, hasBody);
+}
+
+abstract class GetterElementX extends AccessorElementX
+    implements GetterElement {
+
+  GetterElementX(String name,
+                 Modifiers modifiers,
+                 Element enclosing,
+                 bool hasBody)
+      : super(name, ElementKind.GETTER, modifiers, enclosing, hasBody);
+}
+
+abstract class SetterElementX extends AccessorElementX
+    implements SetterElement {
+
+  SetterElementX(String name,
+                 Modifiers modifiers,
+                 Element enclosing,
+                 bool hasBody)
+      : super(name, ElementKind.SETTER, modifiers, enclosing, hasBody);
+}
+
 class LocalFunctionElementX extends BaseFunctionElementX
     implements LocalFunctionElement {
   final FunctionExpression node;
@@ -1927,7 +1998,7 @@
                         ElementKind kind,
                         Modifiers modifiers,
                         ExecutableElement enclosing)
-      : super(name, kind, modifiers, enclosing, false);
+      : super(name, kind, modifiers, enclosing);
 
   ExecutableElement get executableContext => enclosingElement;
 
@@ -1949,20 +2020,49 @@
   bool get isLocal => true;
 }
 
+abstract class ConstantConstructorMixin implements ConstructorElement {
+  ConstantConstructor _constantConstructor;
+
+  ConstantConstructor get constantConstructor {
+    if (isPatch) {
+      ConstructorElement originConstructor = origin;
+      return originConstructor.constantConstructor;
+    }
+    if (!isConst || isFromEnvironmentConstructor) return null;
+    if (_constantConstructor == null) {
+      _constantConstructor = computeConstantConstructor(resolvedAst);
+    }
+    return _constantConstructor;
+  }
+
+  bool get isFromEnvironmentConstructor {
+    return name == 'fromEnvironment' &&
+           library.isDartCore &&
+           (enclosingClass.name == 'bool' ||
+            enclosingClass.name == 'int' ||
+            enclosingClass.name == 'String');
+  }
+}
+
 abstract class ConstructorElementX extends FunctionElementX
-    implements ConstructorElement {
+    with ConstantConstructorMixin implements ConstructorElement {
   bool isRedirectingGenerative = false;
 
   ConstructorElementX(String name,
                       ElementKind kind,
                       Modifiers modifiers,
                       Element enclosing)
-        : super(name, kind, modifiers, enclosing, false);
+        : super(name, kind, modifiers, enclosing);
 
   FunctionElement immediateRedirectionTarget;
+  PrefixElement redirectionDeferredPrefix;
 
   bool get isRedirectingFactory => immediateRedirectionTarget != null;
 
+  // TODO(johnniwinther): This should also return true for cyclic redirecting
+  // generative constructors.
+  bool get isCyclicRedirection => effectiveTarget.isRedirectingFactory;
+
   /// This field is set by the post process queue when checking for cycles.
   ConstructorElement internalEffectiveTarget;
   DartType effectiveTargetType;
@@ -1988,20 +2088,25 @@
     return effectiveTargetType.substByContext(newType);
   }
 
+  accept(ElementVisitor visitor, arg) {
+    return visitor.visitConstructorElement(this, arg);
+  }
+
   ConstructorElement get definingConstructor => null;
 
   ClassElement get enclosingClass => enclosingElement;
 }
 
-class DeferredLoaderGetterElementX extends FunctionElementX {
+class DeferredLoaderGetterElementX extends GetterElementX
+    implements GetterElement {
   final PrefixElement prefix;
 
   DeferredLoaderGetterElementX(PrefixElement prefix)
       : this.prefix = prefix,
         super("loadLibrary",
-              ElementKind.FUNCTION,
               Modifiers.EMPTY,
-              prefix, true);
+              prefix,
+              false);
 
   FunctionSignature computeSignature(Compiler compiler) {
     if (functionSignatureCache != null) return functionSignature;
@@ -2018,12 +2123,8 @@
 
   bool get isSynthesized => true;
 
-  bool get isFunction => false;
-
   bool get isDeferredLoaderGetter => true;
 
-  bool get isGetter => true;
-
   bool get isTopLevel => true;
   // By having position null, the enclosing elements location is printed in
   // error messages.
@@ -2034,18 +2135,21 @@
   bool get hasNode => false;
 
   FunctionExpression get node => null;
+
+  @override
+  SetterElement get setter => null;
 }
 
 class ConstructorBodyElementX extends BaseFunctionElementX
     implements ConstructorBodyElement {
-  ConstructorElement constructor;
+  ConstructorElementX constructor;
 
-  ConstructorBodyElementX(FunctionElement constructor)
+  ConstructorBodyElementX(ConstructorElementX constructor)
       : this.constructor = constructor,
         super(constructor.name,
               ElementKind.GENERATIVE_CONSTRUCTOR_BODY,
               Modifiers.EMPTY,
-              constructor.enclosingElement, false) {
+              constructor.enclosingElement) {
     functionSignatureCache = constructor.functionSignature;
   }
 
@@ -2783,18 +2887,14 @@
   FunctionExpression parseNode(Compiler compiler) => node;
 }
 
-class EnumMethodElementX extends FunctionElementX {
+class EnumMethodElementX extends MethodElementX {
   final FunctionExpression node;
 
   EnumMethodElementX(String name,
                      EnumClassElementX enumClass,
                      Modifiers modifiers,
                      this.node)
-      : super(name,
-              ElementKind.FUNCTION,
-              modifiers,
-              enumClass,
-              false);
+      : super(name, ElementKind.FUNCTION, modifiers, enumClass, true);
 
   @override
   bool get hasNode => true;
diff --git a/pkg/compiler/lib/src/elements/visitor.dart b/pkg/compiler/lib/src/elements/visitor.dart
index e3e610a..7769226 100644
--- a/pkg/compiler/lib/src/elements/visitor.dart
+++ b/pkg/compiler/lib/src/elements/visitor.dart
@@ -29,6 +29,7 @@
   R visitFieldParameterElement(InitializingFormalElement e, A arg) => null;
   R visitAbstractFieldElement(AbstractFieldElement e, A arg) => null;
   R visitFunctionElement(FunctionElement e, A arg) => null;
+  R visitConstructorElement(ConstructorElement e, A arg) => null;
   R visitConstructorBodyElement(ConstructorBodyElement e, A arg) => null;
   R visitClassElement(ClassElement e, A arg) => null;
   R visitMixinApplicationElement(MixinApplicationElement e, A arg) => null;
@@ -47,7 +48,7 @@
 
   @override
   R visitErroneousElement(ErroneousElement e, A arg) {
-    return visitFunctionElement(e, arg);
+    return visitElement(e, arg);
   }
 
   @override
@@ -120,6 +121,11 @@
   }
 
   @override
+  R visitConstructorElement(ConstructorElement e, A arg) {
+    return visitFunctionElement(e, arg);
+  }
+
+  @override
   R visitConstructorBodyElement(ConstructorBodyElement e, A arg) {
     return visitElement(e, arg);
   }
diff --git a/pkg/compiler/lib/src/enqueue.dart b/pkg/compiler/lib/src/enqueue.dart
index da3afed..056db9f 100644
--- a/pkg/compiler/lib/src/enqueue.dart
+++ b/pkg/compiler/lib/src/enqueue.dart
@@ -853,7 +853,7 @@
           "Codegen work list is closed. Trying to add $element");
     }
     CodegenWorkItem workItem = new CodegenWorkItem(
-        element, itemCompilationContextCreator());
+        compiler, element, itemCompilationContextCreator());
     queue.add(workItem);
     return true;
   }
diff --git a/pkg/compiler/lib/src/inferrer/simple_types_inferrer.dart b/pkg/compiler/lib/src/inferrer/simple_types_inferrer.dart
index e3bdac5..941d64d 100644
--- a/pkg/compiler/lib/src/inferrer/simple_types_inferrer.dart
+++ b/pkg/compiler/lib/src/inferrer/simple_types_inferrer.dart
@@ -835,38 +835,7 @@
     }
 
     if (node.isIndex) {
-      if (op == '=') {
-        // [: foo[0] = 42 :]
-        handleDynamicSend(
-            node,
-            setterSelector,
-            receiverType,
-            new ArgumentsTypes<T>([indexType, rhsType], null));
-        return rhsType;
-      } else {
-        // [: foo[0] += 42 :] or [: foo[0]++ :].
-        T getterType = handleDynamicSend(
-            node,
-            getterSelector,
-            receiverType,
-            new ArgumentsTypes<T>([indexType], null));
-        T returnType = handleDynamicSend(
-            node,
-            operatorSelector,
-            getterType,
-            new ArgumentsTypes<T>([rhsType], null));
-        handleDynamicSend(
-            node,
-            setterSelector,
-            receiverType,
-            new ArgumentsTypes<T>([indexType, returnType], null));
-
-        if (node.isPostfix) {
-          return getterType;
-        } else {
-          return returnType;
-        }
-      }
+      return internalError(node, "Unexpected index operation");
     } else if (op == '=') {
       return handlePlainAssignment(
           node, element, setterSelector, receiverType, rhsType,
@@ -918,6 +887,259 @@
     }
   }
 
+  /// Handle compound index set, like `foo[0] += 42` or `foo[0]++`.
+  T handleCompoundIndexSet(
+      ast.SendSet node,
+      T receiverType,
+      T indexType,
+      T rhsType) {
+    Selector getterSelector =
+         elements.getGetterSelectorInComplexSendSet(node);
+     Selector operatorSelector =
+         elements.getOperatorSelectorInComplexSendSet(node);
+     Selector setterSelector = elements.getSelector(node);
+
+    T getterType = handleDynamicSend(
+        node,
+        getterSelector,
+        receiverType,
+        new ArgumentsTypes<T>([indexType], null));
+    T returnType = handleDynamicSend(
+        node,
+        operatorSelector,
+        getterType,
+        new ArgumentsTypes<T>([rhsType], null));
+    handleDynamicSend(
+        node,
+        setterSelector,
+        receiverType,
+        new ArgumentsTypes<T>([indexType, returnType], null));
+
+    if (node.isPostfix) {
+      return getterType;
+    } else {
+      return returnType;
+    }
+  }
+
+  /// Handle compound prefix/postfix operations, like `a[0]++`.
+  T handleCompoundPrefixPostfix(
+      ast.Send node,
+      T receiverType,
+      T indexType) {
+    return handleCompoundIndexSet(
+        node, receiverType, indexType, types.uint31Type);
+  }
+
+  @override
+  T visitIndexPostfix(
+      ast.Send node,
+      ast.Node receiver,
+      ast.Node index,
+      op.IncDecOperator operator,
+      _) {
+    T receiverType = visit(receiver);
+    T indexType = visit(index);
+    return handleCompoundPrefixPostfix(node, receiverType, indexType);
+  }
+
+  @override
+  T visitIndexPrefix(
+      ast.Send node,
+      ast.Node receiver,
+      ast.Node index,
+      op.IncDecOperator operator,
+      _) {
+    T receiverType = visit(receiver);
+    T indexType = visit(index);
+    return handleCompoundPrefixPostfix(node, receiverType, indexType);
+  }
+
+  @override
+  T visitCompoundIndexSet(
+      ast.SendSet node,
+      ast.Node receiver,
+      ast.Node index,
+      op.AssignmentOperator operator,
+      ast.Node rhs,
+      _) {
+    T receiverType = visit(receiver);
+    T indexType = visit(index);
+    T rhsType = visit(rhs);
+    return handleCompoundIndexSet(node, receiverType, indexType, rhsType);
+  }
+
+  @override
+  T visitSuperIndexPrefix(
+      ast.Send node,
+      MethodElement getter,
+      MethodElement setter,
+      ast.Node index,
+      op.IncDecOperator operator,
+      _) {
+    T indexType = visit(index);
+    return handleCompoundPrefixPostfix(node, superType, indexType);
+  }
+
+  @override
+  T visitSuperIndexPostfix(
+      ast.Send node,
+      MethodElement getter,
+      MethodElement setter,
+      ast.Node index,
+      op.IncDecOperator operator,
+      _) {
+    T indexType = visit(index);
+    return handleCompoundPrefixPostfix(node, superType, indexType);
+  }
+
+  /// Handle compound super index set, like `super[42] =+ 2`.
+  T handleSuperCompoundIndexSet(
+      ast.SendSet node,
+      ast.Node index,
+      ast.Node rhs) {
+    T receiverType = superType;
+    T indexType = visit(index);
+    T rhsType = visit(rhs);
+    return handleCompoundIndexSet(node, receiverType, indexType, rhsType);
+  }
+
+  @override
+  T visitSuperCompoundIndexSet(
+      ast.SendSet node,
+      FunctionElement getter,
+      FunctionElement setter,
+      ast.Node index,
+      op.AssignmentOperator operator,
+      ast.Node rhs,
+      _) {
+    return handleSuperCompoundIndexSet(node, index, rhs);
+  }
+
+  @override
+  T visitUnresolvedSuperGetterCompoundIndexSet(
+      ast.SendSet node,
+      Element element,
+      ast.Node index,
+      op.AssignmentOperator operator,
+      ast.Node rhs,
+      _) {
+    return handleSuperCompoundIndexSet(node, index, rhs);
+  }
+
+  @override
+  T visitUnresolvedSuperSetterCompoundIndexSet(
+      ast.SendSet node,
+      FunctionElement getter,
+      Element element,
+      ast.Node index,
+      op.AssignmentOperator operator,
+      ast.Node rhs,
+      _) {
+    return handleSuperCompoundIndexSet(node, index, rhs);
+  }
+
+  @override
+  T visitUnresolvedSuperGetterIndexPrefix(
+      ast.SendSet node,
+      Element element,
+      ast.Node index,
+      op.IncDecOperator operator,
+      _) {
+    T indexType = visit(index);
+    return handleCompoundPrefixPostfix(node, superType, indexType);
+  }
+
+  @override
+  T visitUnresolvedSuperSetterIndexPrefix(
+      ast.SendSet node,
+      FunctionElement getter,
+      Element element,
+      ast.Node index,
+      op.IncDecOperator operator,
+      _) {
+    T indexType = visit(index);
+    return handleCompoundPrefixPostfix(node, superType, indexType);
+  }
+
+  @override
+  T visitUnresolvedSuperGetterIndexPostfix(
+      ast.SendSet node,
+      Element element,
+      ast.Node index,
+      op.IncDecOperator operator,
+      _) {
+    T indexType = visit(index);
+    return handleCompoundPrefixPostfix(node, superType, indexType);
+  }
+
+  @override
+  T visitUnresolvedSuperSetterIndexPostfix(
+      ast.SendSet node,
+      FunctionElement getter,
+      Element element,
+      ast.Node index,
+      op.IncDecOperator operator,
+      _) {
+    T indexType = visit(index);
+    return handleCompoundPrefixPostfix(node, superType, indexType);
+  }
+
+  /// Handle index set, like `foo[0] = 42`.
+  T handleIndexSet(ast.SendSet node, T receiverType, T indexType, T rhsType) {
+    Selector setterSelector = elements.getSelector(node);
+    handleDynamicSend(
+        node,
+        setterSelector,
+        receiverType,
+        new ArgumentsTypes<T>([indexType, rhsType], null));
+    return rhsType;
+  }
+
+  @override
+  T visitIndexSet(
+      ast.SendSet node,
+      ast.Node receiver,
+      ast.Node index,
+      ast.Node rhs,
+      _) {
+    T receiverType = visit(receiver);
+    T indexType = visit(index);
+    T rhsType = visit(rhs);
+    return handleIndexSet(node, receiverType, indexType, rhsType);
+  }
+
+  /// Handle super index set, like `super[42] = true`.
+  T handleSuperIndexSet(
+      ast.SendSet node,
+      ast.Node index,
+      ast.Node rhs) {
+    T receiverType = superType;
+    T indexType = visit(index);
+    T rhsType = visit(rhs);
+    return handleIndexSet(node, receiverType, indexType, rhsType);
+  }
+
+  @override
+  T visitSuperIndexSet(
+      ast.SendSet node,
+      FunctionElement function,
+      ast.Node index,
+      ast.Node rhs,
+      _) {
+    return handleSuperIndexSet(node, index, rhs);
+  }
+
+  @override
+  T visitUnresolvedSuperIndexSet(
+      ast.SendSet node,
+      Element element,
+      ast.Node index,
+      ast.Node rhs,
+      _) {
+    return handleSuperIndexSet(node, index, rhs);
+  }
+
   T handlePlainAssignment(ast.Node node,
                           Element element,
                           Selector setterSelector,
@@ -1436,7 +1658,6 @@
       return inferrer.typeOfNativeBehavior(nativeBehavior);
     } else if (name == 'JS_NULL_CLASS_NAME'
                || name == 'JS_OBJECT_CLASS_NAME'
-               || name == 'JS_OPERATOR_IS_PREFIX'
                || name == 'JS_OPERATOR_AS_PREFIX'
                || name == 'JS_STRING_CONCAT') {
       return types.stringType;
diff --git a/pkg/compiler/lib/src/js/js.dart b/pkg/compiler/lib/src/js/js.dart
index 378b89e..bfbe96a 100644
--- a/pkg/compiler/lib/src/js/js.dart
+++ b/pkg/compiler/lib/src/js/js.dart
@@ -15,7 +15,6 @@
 import '../util/util.dart' show NO_LOCATION_SPANNABLE;
 import '../dump_info.dart' show DumpInfoTask;
 
-
 CodeBuffer prettyPrint(Node node, leg.Compiler compiler,
                        {DumpInfoTask monitor,
                         bool allowVariableMinification: true}) {
diff --git a/pkg/compiler/lib/src/js_backend/backend.dart b/pkg/compiler/lib/src/js_backend/backend.dart
index aeb4fb8..986a313 100644
--- a/pkg/compiler/lib/src/js_backend/backend.dart
+++ b/pkg/compiler/lib/src/js_backend/backend.dart
@@ -290,6 +290,7 @@
   ClassElement jsMutableArrayClass;
   ClassElement jsFixedArrayClass;
   ClassElement jsExtendableArrayClass;
+  ClassElement jsUnmodifiableArrayClass;
   ClassElement jsPositiveIntClass;
   ClassElement jsUInt32Class;
   ClassElement jsUInt31Class;
@@ -386,6 +387,15 @@
     return _extendableArrayTypeCache;
   }
 
+  TypeMask _unmodifiableArrayTypeCache;
+  TypeMask get unmodifiableArrayType {
+    if (_unmodifiableArrayTypeCache == null) {
+      _unmodifiableArrayTypeCache =
+          new TypeMask.nonNullExact(jsUnmodifiableArrayClass, compiler.world);
+    }
+    return _fixedArrayTypeCache;
+  }
+
   TypeMask _nonNullTypeCache;
   TypeMask get nonNullType {
     if (_nonNullTypeCache == null) {
@@ -1055,11 +1065,13 @@
     } else if (cls == compiler.listClass ||
                cls == jsArrayClass ||
                cls == jsFixedArrayClass ||
-               cls == jsExtendableArrayClass) {
+               cls == jsExtendableArrayClass ||
+               cls == jsUnmodifiableArrayClass) {
       addInterceptors(jsArrayClass, enqueuer, registry);
       addInterceptors(jsMutableArrayClass, enqueuer, registry);
       addInterceptors(jsFixedArrayClass, enqueuer, registry);
       addInterceptors(jsExtendableArrayClass, enqueuer, registry);
+      addInterceptors(jsUnmodifiableArrayClass, enqueuer, registry);
     } else if (cls == compiler.intClass || cls == jsIntClass) {
       addInterceptors(jsIntClass, enqueuer, registry);
       addInterceptors(jsPositiveIntClass, enqueuer, registry);
@@ -1639,7 +1651,8 @@
         element == jsArrayClass ||
         element == jsMutableArrayClass ||
         element == jsExtendableArrayClass ||
-        element == jsFixedArrayClass;
+        element == jsFixedArrayClass ||
+        element == jsUnmodifiableArrayClass;
   }
 
   /// Return [true] if the class is represented by a native JavaSCript type in
@@ -1871,7 +1884,7 @@
   ClassElement get numImplementation => jsNumberClass;
   ClassElement get stringImplementation => jsStringClass;
   ClassElement get listImplementation => jsArrayClass;
-  ClassElement get constListImplementation => jsArrayClass;
+  ClassElement get constListImplementation => jsUnmodifiableArrayClass;
   ClassElement get fixedListImplementation => jsFixedArrayClass;
   ClassElement get growableListImplementation => jsExtendableArrayClass;
   ClassElement get mapImplementation => mapLiteralClass;
@@ -2032,6 +2045,7 @@
           jsMutableArrayClass = findClass('JSMutableArray'),
           jsFixedArrayClass = findClass('JSFixedArray'),
           jsExtendableArrayClass = findClass('JSExtendableArray'),
+          jsUnmodifiableArrayClass = findClass('JSUnmodifiableArray'),
           jsPlainJavaScriptObjectClass = findClass('PlainJavaScriptObject'),
           jsUnknownJavaScriptObjectClass = findClass('UnknownJavaScriptObject'),
         ];
@@ -2115,6 +2129,9 @@
     if (jsExtendableArrayClass != null) {
       jsExtendableArrayClass.ensureResolved(compiler);
     }
+    if (jsUnmodifiableArrayClass != null) {
+      jsUnmodifiableArrayClass.ensureResolved(compiler);
+    }
 
     jsIndexableClass.ensureResolved(compiler);
     jsIndexableLength = compiler.lookupElementIn(
diff --git a/pkg/compiler/lib/src/js_backend/codegen/codegen.dart b/pkg/compiler/lib/src/js_backend/codegen/codegen.dart
index 95b1dee..f101a76 100644
--- a/pkg/compiler/lib/src/js_backend/codegen/codegen.dart
+++ b/pkg/compiler/lib/src/js_backend/codegen/codegen.dart
@@ -589,6 +589,20 @@
   }
 
   @override
+  js.Expression visitCreateInvocationMirror(
+      tree_ir.CreateInvocationMirror node) {
+    js.Expression name = js.string(node.selector.name);
+    js.Expression internalName = js.string(glue.invocationName(node.selector));
+    js.Expression kind = js.number(node.selector.invocationMirrorKind);
+    js.Expression arguments = new js.ArrayInitializer(
+        node.arguments.map(visitExpression).toList());
+    js.Expression argumentNames = new js.ArrayInitializer(
+        node.selector.namedArguments.map(js.string).toList());
+    return buildStaticHelperInvocation(glue.createInvocationMirrorMethod,
+        [name, internalName, kind, arguments, argumentNames]);
+  }
+
+  @override
   js.Expression visitGetField(tree_ir.GetField node) {
     return new js.PropertyAccess.field(
         visitExpression(node.object),
diff --git a/pkg/compiler/lib/src/js_backend/codegen/glue.dart b/pkg/compiler/lib/src/js_backend/codegen/glue.dart
index 47d5b39..d3d3728 100644
--- a/pkg/compiler/lib/src/js_backend/codegen/glue.dart
+++ b/pkg/compiler/lib/src/js_backend/codegen/glue.dart
@@ -76,6 +76,10 @@
     return _namer.invocationName(selector);
   }
 
+  FunctionElement get createInvocationMirrorMethod {
+    return _backend.getCreateInvocationMirror();
+  }
+
   void registerUseInterceptorInCodegen() {
     _backend.registerUseInterceptor(_enqueuer);
   }
@@ -114,7 +118,6 @@
         hasBeenInstantiated: hasBeenInstantiated);
   }
 
-
   String getInterceptorName(Set<ClassElement> interceptedClasses) {
     return _backend.namer.nameForGetInterceptor(interceptedClasses);
   }
@@ -207,4 +210,8 @@
   String getTypeTestTag(DartType type) {
     return _backend.namer.operatorIsType(type);
   }
+
+  bool operatorEqHandlesNullArgument(FunctionElement element) {
+    return _backend.operatorEqHandlesNullArgument(element);
+  }
 }
diff --git a/pkg/compiler/lib/src/js_backend/codegen/js_tree_builder.dart b/pkg/compiler/lib/src/js_backend/codegen/js_tree_builder.dart
index 3499f38..98893f8 100644
--- a/pkg/compiler/lib/src/js_backend/codegen/js_tree_builder.dart
+++ b/pkg/compiler/lib/src/js_backend/codegen/js_tree_builder.dart
@@ -73,4 +73,9 @@
         node.arguments.map(getVariableUse).toList(growable: false),
         node.typeInformation.map(getVariableUse).toList(growable: false));
   }
+
+  Expression visitCreateInvocationMirror(cps_ir.CreateInvocationMirror node) {
+    return new CreateInvocationMirror(node.selector,
+        node.arguments.map(getVariableUse).toList(growable: false));
+  }
 }
diff --git a/pkg/compiler/lib/src/js_backend/codegen/task.dart b/pkg/compiler/lib/src/js_backend/codegen/task.dart
index 89cf74c..3befc85 100644
--- a/pkg/compiler/lib/src/js_backend/codegen/task.dart
+++ b/pkg/compiler/lib/src/js_backend/codegen/task.dart
@@ -117,13 +117,6 @@
         giveUp(irBuilderTask.bailoutMessage);
       }
     }
-    if (element.isInstanceMember && !element.isGenerativeConstructorBody) {
-      Selector selector = new Selector.fromElement(cpsNode.element);
-      if (glue.isInterceptedSelector(selector)) {
-        giveUp('cannot compile methods that need interceptor calling '
-            'convention.');
-      }
-    }
     traceGraph("IR Builder", cpsNode);
     new UnsugarVisitor(glue).rewrite(cpsNode);
     traceGraph("Unsugaring", cpsNode);
diff --git a/pkg/compiler/lib/src/js_backend/codegen/type_test_emitter.dart b/pkg/compiler/lib/src/js_backend/codegen/type_test_emitter.dart
index 49b28e6..4a697a4 100644
--- a/pkg/compiler/lib/src/js_backend/codegen/type_test_emitter.dart
+++ b/pkg/compiler/lib/src/js_backend/codegen/type_test_emitter.dart
@@ -60,4 +60,4 @@
         new js.Prefix("typeof", value),
         js.string(type));
   }
-}
+}
\ No newline at end of file
diff --git a/pkg/compiler/lib/src/js_backend/codegen/unsugar.dart b/pkg/compiler/lib/src/js_backend/codegen/unsugar.dart
index cf1e3ed..fab6a45 100644
--- a/pkg/compiler/lib/src/js_backend/codegen/unsugar.dart
+++ b/pkg/compiler/lib/src/js_backend/codegen/unsugar.dart
@@ -6,21 +6,39 @@
 import '../../cps_ir/optimizers.dart';
 import '../../constants/expressions.dart';
 import '../../constants/values.dart';
-import '../../elements/elements.dart'
-    show ClassElement, FieldElement, FunctionElement, Element;
+import '../../elements/elements.dart' show
+    ClassElement,
+    FieldElement,
+    FunctionElement,
+    Local,
+    ExecutableElement;
 import '../../js_backend/codegen/glue.dart';
 import '../../dart2jslib.dart' show Selector, World;
+import '../../cps_ir/cps_ir_builder.dart' show ThisParameterLocal;
+
+class ExplicitReceiverParameterEntity implements Local {
+  String get name => 'receiver';
+  final ExecutableElement executableContext;
+  ExplicitReceiverParameterEntity(this.executableContext);
+  toString() => 'ExplicitReceiverParameterEntity($executableContext)';
+}
 
 /// Rewrites the initial CPS IR to make Dart semantics explicit and inserts
 /// special nodes that respect JavaScript behavior.
 ///
 /// Performs the following rewrites:
-///  - rewrite [IsTrue] in a [Branch] to do boolean conversion.
-///  - converts two-parameter exception handlers to one-parameter ones.
+///  - Rewrite [IsTrue] in a [Branch] to do boolean conversion.
+///  - Add interceptors at call sites that use interceptor calling convention.
+///  - Add explicit receiver argument for methods that are called in interceptor
+///    calling convention.
+///  - Convert two-parameter exception handlers to one-parameter ones.
 class UnsugarVisitor extends RecursiveVisitor {
   Glue _glue;
   ParentVisitor _parentVisitor = new ParentVisitor();
 
+  Parameter thisParameter;
+  Parameter explicitReceiverParameter;
+
   // In a catch block, rethrow implicitly throws the block's exception
   // parameter.  This is the exception parameter when nested in a catch
   // block and null otherwise.
@@ -29,8 +47,32 @@
   UnsugarVisitor(this._glue);
 
   void rewrite(FunctionDefinition function) {
+    bool inInterceptedMethod = _glue.isInterceptedMethod(function.element);
+
+    if (function.element.name == '==' &&
+        function.parameters.length == 1 &&
+        !_glue.operatorEqHandlesNullArgument(function.element)) {
+      // Insert the null check that the language semantics requires us to
+      // perform before calling operator ==.
+      insertEqNullCheck(function);
+    }
+
+    if (inInterceptedMethod) {
+      thisParameter = function.thisParameter;
+      ThisParameterLocal holder = thisParameter.hint;
+      explicitReceiverParameter = new Parameter(
+          new ExplicitReceiverParameterEntity(
+              holder.executableContext));
+      function.parameters.insert(0, explicitReceiverParameter);
+    }
+
     // Set all parent pointers.
     _parentVisitor.visit(function);
+
+    if (inInterceptedMethod) {
+      explicitReceiverParameter.substituteFor(thisParameter);
+    }
+
     visit(function);
   }
 
@@ -47,6 +89,19 @@
             new TrueConstantValue()));
   }
 
+  Constant get falseConstant {
+    return new Constant(
+        new BoolConstantExpression(
+            false,
+            new FalseConstantValue()));
+  }
+
+  Constant get nullConstant {
+    return new Constant(
+        new NullConstantExpression(
+            new NullConstantValue()));
+  }
+
   void insertLetPrim(Primitive primitive, Expression node) {
     LetPrim let = new LetPrim(primitive);
     InteriorNode parent = node.parent;
@@ -56,6 +111,42 @@
     let.parent = parent;
   }
 
+  void insertEqNullCheck(FunctionDefinition function) {
+    // Replace
+    //
+    //     body;
+    //
+    // with
+    //
+    //     if (identical(arg, null))
+    //       return false;
+    //     else
+    //       body;
+    //
+    Continuation originalBody = new Continuation(<Parameter>[]);
+    originalBody.body = function.body.body;
+
+    Continuation returnFalse = new Continuation(<Parameter>[]);
+    Primitive falsePrimitive = falseConstant;
+    returnFalse.body =
+        new LetPrim(falsePrimitive,
+            new InvokeContinuation(
+                function.body.returnContinuation, <Primitive>[falsePrimitive]));
+
+    Primitive nullPrimitive = nullConstant;
+    Primitive test = new Identical(function.parameters.single, nullPrimitive);
+
+    Expression newBody =
+        new LetCont.many(<Continuation>[returnFalse, originalBody],
+            new LetPrim(nullPrimitive,
+                new LetPrim(test,
+                    new Branch(
+                        new IsTrue(test),
+                        returnFalse,
+                        originalBody))));
+    function.body.body = newBody;
+  }
+
   /// Insert a static call to [function] at the point of [node] with result
   /// [result].
   ///
@@ -145,32 +236,42 @@
 
   processInvokeMethod(InvokeMethod node) {
     Selector selector = node.selector;
-    // TODO(karlklose):  should we rewrite all selectors?
     if (!_glue.isInterceptedSelector(selector)) return;
 
     Primitive receiver = node.receiver.definition;
-    Set<ClassElement> interceptedClasses =
-        _glue.getInterceptedClassesOn(selector);
-    _glue.registerSpecializedGetInterceptor(interceptedClasses);
+    Primitive newReceiver;
 
-    Primitive intercepted = new Interceptor(receiver, interceptedClasses);
-    insertLetPrim(intercepted, node);
+    if (receiver == explicitReceiverParameter) {
+      // If the receiver is the explicit receiver, we are calling a method in
+      // the same interceptor:
+      //  Change 'receiver.foo()'  to  'this.foo(receiver)'.
+      newReceiver = thisParameter;
+    } else {
+      // TODO(sra): Move the computation of interceptedClasses to a much later
+      // phase and take into account the remaining uses of the interceptor.
+      Set<ClassElement> interceptedClasses =
+        _glue.getInterceptedClassesOn(selector);
+      _glue.registerSpecializedGetInterceptor(interceptedClasses);
+      newReceiver = new Interceptor(receiver, interceptedClasses);
+      insertLetPrim(newReceiver, node);
+    }
+
     node.arguments.insert(0, node.receiver);
     node.callingConvention = CallingConvention.JS_INTERCEPTED;
     assert(node.isValid);
-    node.receiver = new Reference<Primitive>(intercepted);
-  }
-
-  Primitive makeNull() {
-    NullConstantValue nullConst = new NullConstantValue();
-    return new Constant(new NullConstantExpression(nullConst));
+    node.receiver = new Reference<Primitive>(newReceiver);
   }
 
   processInvokeMethodDirectly(InvokeMethodDirectly node) {
     if (_glue.isInterceptedMethod(node.target)) {
-      Primitive nullPrim = makeNull();
+      Primitive nullPrim = nullConstant;
       insertLetPrim(nullPrim, node);
       node.arguments.insert(0, node.receiver);
+      // TODO(sra): `null` is not adequate.  Interceptors project the class
+      // hierarchy onto an interceptor hierarchy.  A super call that does a
+      // method call will use the javascript 'this' parameter to avoid calling
+      // getInterceptor again, so the receiver must be the interceptor (likely
+      // `this`), not `null`.
       node.receiver = new Reference<Primitive>(nullPrim);
     }
   }
diff --git a/pkg/compiler/lib/src/js_backend/constant_handler_javascript.dart b/pkg/compiler/lib/src/js_backend/constant_handler_javascript.dart
index 0f66c0d..a9d83e5 100644
--- a/pkg/compiler/lib/src/js_backend/constant_handler_javascript.dart
+++ b/pkg/compiler/lib/src/js_backend/constant_handler_javascript.dart
@@ -207,14 +207,6 @@
     return constant;
   }
 
-  ConstantExpression createTypeConstant(TypeDeclarationElement element) {
-    DartType elementType = element.rawType;
-    DartType constantType =
-        compiler.backend.typeImplementation.computeType(compiler);
-    return new TypeConstantExpression(
-        new TypeConstantValue(elementType, constantType), elementType);
-  }
-
   void forgetElement(Element element) {
     super.forgetElement(element);
     const ForgetConstantElementVisitor().visit(element, this);
diff --git a/pkg/compiler/lib/src/js_backend/constant_system_javascript.dart b/pkg/compiler/lib/src/js_backend/constant_system_javascript.dart
index fc97cad..214c480 100644
--- a/pkg/compiler/lib/src/js_backend/constant_system_javascript.dart
+++ b/pkg/compiler/lib/src/js_backend/constant_system_javascript.dart
@@ -240,8 +240,11 @@
     return constant;
   }
 
-  NumConstantValue createInt(int i)
-      => convertToJavaScriptConstant(new IntConstantValue(i));
+  @override
+  NumConstantValue createInt(int i) {
+    return convertToJavaScriptConstant(new IntConstantValue(i));
+  }
+
   NumConstantValue createInt32(int i) => new IntConstantValue(i & BITS32);
   NumConstantValue createDouble(double d)
       => convertToJavaScriptConstant(new DoubleConstantValue(d));
@@ -251,6 +254,19 @@
   BoolConstantValue createBool(bool value) => new BoolConstantValue(value);
   NullConstantValue createNull() => new NullConstantValue();
 
+
+  @override
+  ListConstantValue createList(InterfaceType type,
+                               List<ConstantValue> values) {
+    return new ListConstantValue(type, values);
+  }
+
+  @override
+  ConstantValue createType(Compiler compiler, DartType type) {
+    return new TypeConstantValue(
+        type, compiler.backend.typeImplementation.computeType(compiler));
+  }
+
   // Integer checks don't verify that the number is not -0.0.
   bool isInt(ConstantValue constant) => constant.isInt || constant.isMinusZero;
   bool isDouble(ConstantValue constant)
diff --git a/pkg/compiler/lib/src/js_backend/custom_elements_analysis.dart b/pkg/compiler/lib/src/js_backend/custom_elements_analysis.dart
index 99c46ca..6afef1b 100644
--- a/pkg/compiler/lib/src/js_backend/custom_elements_analysis.dart
+++ b/pkg/compiler/lib/src/js_backend/custom_elements_analysis.dart
@@ -178,8 +178,7 @@
 
   TypeConstantValue makeTypeConstant(ClassElement element) {
     DartType elementType = element.rawType;
-    DartType constantType = backend.typeImplementation.rawType;
-    return new TypeConstantValue(elementType, constantType);
+    return backend.constantSystem.createType(compiler, elementType);
   }
 
   List<Element> computeEscapingConstructors(ClassElement classElement) {
diff --git a/pkg/compiler/lib/src/js_backend/type_variable_handler.dart b/pkg/compiler/lib/src/js_backend/type_variable_handler.dart
index 6344a1d..52d00c4 100644
--- a/pkg/compiler/lib/src/js_backend/type_variable_handler.dart
+++ b/pkg/compiler/lib/src/js_backend/type_variable_handler.dart
@@ -87,7 +87,11 @@
       ConstantExpression bound = new IntConstantExpression(
           boundIndex,
           _backend.constantSystem.createInt(boundIndex));
-      ConstantExpression type = _backend.constants.createTypeConstant(cls);
+      ConstantExpression type =
+          new TypeConstantExpression(
+              _backend.constantSystem.createType(
+                  _backend.compiler, cls.rawType),
+              cls.rawType);
       List<AstConstant> arguments =
           [wrapConstant(type), wrapConstant(name), wrapConstant(bound)];
 
@@ -124,8 +128,7 @@
    * there, otherwise a new entry for [c] is created.
    */
   int _reifyTypeVariableConstant(ConstantValue c, TypeVariableElement variable) {
-    String name = jsAst.prettyPrint(_task.constantReference(c),
-                                    _compiler).getText();
+    jsAst.Expression name = _task.constantReference(c);
     int index;
     if (_typeVariableConstants.containsKey(variable)) {
       index = _typeVariableConstants[variable];
@@ -153,7 +156,7 @@
     }
 
     // TODO(15613): Remove quotes.
-    _metadataCollector.globalMetadata.add('"Placeholder for ${variable}"');
+    _metadataCollector.globalMetadata.add(js('"Placeholder for ${variable}"'));
     return _typeVariableConstants[variable] =
         _metadataCollector.globalMetadata.length - 1;
   }
diff --git a/pkg/compiler/lib/src/js_emitter/metadata_collector.dart b/pkg/compiler/lib/src/js_emitter/metadata_collector.dart
index bd4ab29..a2501fd 100644
--- a/pkg/compiler/lib/src/js_emitter/metadata_collector.dart
+++ b/pkg/compiler/lib/src/js_emitter/metadata_collector.dart
@@ -10,14 +10,15 @@
 
   /// A list of JS expressions that represent metadata, parameter names and
   /// type variable types.
-  final List<String> globalMetadata = <String>[];
+  final List<jsAst.Expression> globalMetadata = <jsAst.Expression>[];
 
   /// A map used to canonicalize the entries of globalMetadata.
   final Map<String, int> _globalMetadataMap = <String, int>{};
 
   /// A map with lists of JS expressions, one list for each output unit. The
   /// entries represent types including function types and typedefs.
-  final Map<OutputUnit, List<String>> types = <OutputUnit, List<String>>{};
+  final Map<OutputUnit, List<jsAst.Expression>> types =
+      <OutputUnit, List<jsAst.Expression>>{};
 
   /// A map used to canonicalize the entries of types.
   final Map<OutputUnit, Map<String, int>> _typesMap =
@@ -70,11 +71,10 @@
     for (ParameterElement element in signature.optionalParameters) {
       ConstantExpression constant =
           _backend.constants.getConstantForVariable(element);
-      String stringRepresentation = (constant == null)
-          ? "null"
-          : jsAst.prettyPrint(
-              _emitter.constantReference(constant.value), _compiler).getText();
-      defaultValues.add(addGlobalMetadata(stringRepresentation));
+      jsAst.Expression expression = (constant == null)
+          ? null
+          : _emitter.constantReference(constant.value);
+      defaultValues.add(addGlobalMetadata(expression));
     }
     return defaultValues;
   }
@@ -86,9 +86,7 @@
       _compiler.internalError(annotation, 'Annotation value is null.');
       return -1;
     }
-    return addGlobalMetadata(
-        jsAst.prettyPrint(
-            _emitter.constantReference(constant.value), _compiler).getText());
+    return addGlobalMetadata(_emitter.constantReference(constant.value));
   }
 
   int reifyType(DartType type, {bool ignoreTypeVariables: false}) {
@@ -112,31 +110,41 @@
               return _backend.isAccessibleByReflection(typedef.element);
             });
 
-    return addTypeInOutputUnit(
-        jsAst.prettyPrint(representation, _compiler).getText(), outputUnit);
+    if (representation is jsAst.LiteralString) {
+      // We don't want the representation to be a string, since we use
+      // strings as indicator for non-initialized types in the lazy emitter.
+      _compiler.internalError(
+          NO_LOCATION_SPANNABLE, 'reified types should not be strings.');
+    }
+
+    return addTypeInOutputUnit(representation, outputUnit);
   }
 
   int reifyName(String name) {
-    return addGlobalMetadata('"$name"');
+    return addGlobalMetadata(js('"$name"'));
   }
 
-  int addGlobalMetadata(String string) {
+  int addGlobalMetadata(jsAst.Expression expression) {
+    // TODO(sigmund): consider adding an effient way to compare expressions
+    String string = jsAst.prettyPrint(expression, _compiler).getText();
     return _globalMetadataMap.putIfAbsent(string, () {
-      globalMetadata.add(string);
+      globalMetadata.add(expression);
       return globalMetadata.length - 1;
     });
   }
 
-  int addTypeInOutputUnit(String compiledType, OutputUnit outputUnit) {
+  int addTypeInOutputUnit(jsAst.Expression type, OutputUnit outputUnit) {
+    String string = jsAst.prettyPrint(type, _compiler).getText();
     if (_typesMap[outputUnit] == null) {
       _typesMap[outputUnit] = <String, int>{};
     }
-    return _typesMap[outputUnit].putIfAbsent(compiledType, () {
+    return _typesMap[outputUnit].putIfAbsent(string, () {
 
-      if (types[outputUnit] == null)
-        types[outputUnit] = <String>[];
+      if (types[outputUnit] == null) {
+        types[outputUnit] = <jsAst.Expression>[];
+      }
 
-      types[outputUnit].add(compiledType);
+      types[outputUnit].add(type);
       return types[outputUnit].length - 1;
     });
   }
diff --git a/pkg/compiler/lib/src/js_emitter/model.dart b/pkg/compiler/lib/src/js_emitter/model.dart
index 7fa389b..69eb6ae 100644
--- a/pkg/compiler/lib/src/js_emitter/model.dart
+++ b/pkg/compiler/lib/src/js_emitter/model.dart
@@ -43,7 +43,7 @@
     assert(hasIsolateSupport != null);
   }
 
-  /// A list of pretty-printed JavaScript expressions.
+  /// A list of metadata expressions.
   ///
   /// This list must be emitted in the `METADATA` embedded global.
   /// The list references constants and must hence be emitted after constants
@@ -53,9 +53,9 @@
   /// list must not be emitted before all operations on it are done. For
   /// example, the old emitter generates metadata when emitting reflection
   /// data.
-  List<String> get metadata => _metadataCollector.globalMetadata;
+  List<js.Expression> get metadata => _metadataCollector.globalMetadata;
 
-  /// A map with lists of pretty-printed JavaScript expressions.
+  /// A map with lists of type expressions.
   ///
   /// There is one list for each output unit. The list belonging to the main
   /// unit must be emitted in the `TYPES` embedded global. The list references
@@ -65,7 +65,7 @@
   /// list must not be emitted before all operations on it are done. For
   /// example, the old emitter generates metadata when emitting reflection
   /// data.
-  Map<OutputUnit, List<String>> get metadataTypes
+  Map<OutputUnit, List<js.Expression>> get metadataTypes
       => _metadataCollector.types;
 
 
diff --git a/pkg/compiler/lib/src/js_emitter/new_emitter/emitter.dart b/pkg/compiler/lib/src/js_emitter/new_emitter/emitter.dart
index 6a55d08..aeeddc3 100644
--- a/pkg/compiler/lib/src/js_emitter/new_emitter/emitter.dart
+++ b/pkg/compiler/lib/src/js_emitter/new_emitter/emitter.dart
@@ -5,7 +5,9 @@
 library dart2js.new_js_emitter.emitter;
 
 import 'package:_internal/compiler/js_lib/shared/embedded_names.dart' show
-    JsBuiltin;
+    JsBuiltin,
+    METADATA,
+    TYPES;
 
 import '../program_builder.dart' show ProgramBuilder;
 import '../model.dart';
@@ -138,6 +140,10 @@
         return js.js.expressionTemplateYielding(
             typeAccess(_compiler.objectClass));
 
+      case JsBuiltin.classNameFromIsCheckProperty:
+        int isPrefixLength = namer.operatorIsPrefix.length;
+        return js.js.expressionTemplateFor('#.substring($isPrefixLength)');
+
       case JsBuiltin.isFunctionType:
         return _backend.rti.representationGenerator.templateForIsFunctionType;
 
@@ -158,6 +164,18 @@
         return _backend.rti.representationGenerator
             .templateForCreateFunctionType;
 
+      case JsBuiltin.isSubtype:
+        // TODO(floitsch): move this closer to where is-check properties are
+        // built.
+        String isPrefix = namer.operatorIsPrefix;
+        return js.js.expressionTemplateFor("('$isPrefix' + #) in #.prototype");
+
+      case JsBuiltin.getMetadata:
+        return _emitter.templateForReadMetadata;
+
+      case JsBuiltin.getType:
+        return _emitter.templateForReadType;
+
       default:
         _compiler.internalError(NO_LOCATION_SPANNABLE,
                                 "Unhandled Builtin: $builtin");
diff --git a/pkg/compiler/lib/src/js_emitter/new_emitter/model_emitter.dart b/pkg/compiler/lib/src/js_emitter/new_emitter/model_emitter.dart
index 23646b7..ebeb1df 100644
--- a/pkg/compiler/lib/src/js_emitter/new_emitter/model_emitter.dart
+++ b/pkg/compiler/lib/src/js_emitter/new_emitter/model_emitter.dart
@@ -66,8 +66,12 @@
   }
 
   js.Expression generateEmbeddedGlobalAccess(String global) {
-    // TODO(floitsch): We should not use "init" for globals.
-    return js.js("init.$global");
+    return js.js(generateEmbeddedGlobalAccessString(global));
+  }
+
+  String generateEmbeddedGlobalAccessString(String global) {
+    // TODO(floitsch): don't use 'init' as global embedder storage.
+    return 'init.$global';
   }
 
   bool isConstantInlinedOrAlreadyEmitted(ConstantValue constant) {
@@ -134,7 +138,8 @@
     // deferred hash (which depends on the output) when emitting the main
     // fragment.
     fragments.skip(1).forEach((DeferredFragment deferredUnit) {
-      List<String> types = program.metadataTypes[deferredUnit.outputUnit];
+      List<js.Expression> types =
+          program.metadataTypes[deferredUnit.outputUnit];
       js.Expression ast = emitDeferredFragment(types, deferredUnit,
                                                program.holders);
       String code = js.prettyPrint(ast, compiler).getText();
@@ -155,13 +160,21 @@
     return totalSize;
   }
 
-  js.LiteralString unparse(Compiler compiler, js.Node value) {
+  /// Unparses the given [value].
+  ///
+  /// Pretty-prints the given [value] and, if [protectForEval] is
+  /// true, wraps the resulting string in parenthesis. The result is escaped
+  /// and returned.
+  js.LiteralString unparse(Compiler compiler, js.Node value,
+                           {bool protectForEval: true}) {
     String text = js.prettyPrint(value, compiler).getText();
-    if (value is js.Fun) text = '($text)';
-    if (value is js.LiteralExpression &&
-        (value.template.startsWith("function ") ||
-         value.template.startsWith("{"))) {
-      text = '($text)';
+    if (protectForEval) {
+      if (value is js.Fun) text = '($text)';
+      if (value is js.LiteralExpression &&
+      (value.template.startsWith("function ") ||
+      value.template.startsWith("{"))) {
+        text = '($text)';
+      }
     }
     return js.js.escapedString(text);
   }
@@ -196,6 +209,7 @@
            backend.emitter.staticFunctionAccess(backend.getCyclicThrowHelper()),
        'outputContainsConstantList': program.outputContainsConstantList,
        'embeddedGlobals': emitEmbeddedGlobals(program),
+       'readMetadataTypeFunction': readMetadataTypeFunction,
        'staticNonFinals':
             emitStaticNonFinalFields(fragment.staticNonFinalFields),
        'operatorIsPrefix': js.string(namer.operatorIsPrefix),
@@ -416,27 +430,83 @@
     return new js.Property(js.string(GET_TYPE_FROM_NAME), function);
   }
 
+  static final String readMetadataTypeName = "readMetadataType";
+
+  js.Statement get readMetadataTypeFunction {
+    // Types are non-evaluated and must be compiled at first use.
+    // Compiled strings are guaranteed not to be strings, and it's thus safe
+    // to use a type-test to determine if a type has already been compiled.
+    return js.js.statement('''function $readMetadataTypeName(index) {
+      var type = #typesAccess[index];
+      if (typeof type == 'string') {
+        type = expressionCompile(type);
+        #typesAccess[index] = type;
+      }
+      return type;
+    }''', {"typesAccess": generateEmbeddedGlobalAccess(TYPES)});
+  }
+
+  js.Template get templateForReadType {
+    // TODO(floitsch): make sure that no local variable shadows the access to
+    // the readMetadataType function.
+    return js.js.expressionTemplateFor('$readMetadataTypeName(#)');
+  }
+
+  static final String readMetadataName = "readLazyMetadata";
+  static final String lazyMetadataName = "lazy_$METADATA";
+
+  js.Statement get readMetadataFunction {
+    // Types are non-evaluated and must be compiled at first use.
+    // Compiled strings are guaranteed not to be strings, and it's thus safe
+    // to use a type-test to determine if a type has already been compiled.
+    return js.js.statement('''function $readMetadataName(index) {
+      var lazyMetadata = #lazyMetadataAccess[index];
+      if (typeof lazyMetadata == 'string') {
+        #metadataAccess[index] = expressionCompile(lazyMetadata);
+        #lazyMetadataAccess[index] = null;
+      }
+      return #metadataAccess[index];
+    }''', {
+      "lazyMetadataAccess": generateEmbeddedGlobalAccess(lazyMetadataName),
+      "metadataAccess": generateEmbeddedGlobalAccess(METADATA)
+    });
+  }
+
+  js.Template get templateForReadMetadata {
+    // TODO(floitsch): make sure that no local variable shadows the access to
+    // the readMetadata function.
+    return js.js.expressionTemplateFor('$readMetadataName(#)');
+  }
+
   List<js.Property> emitMetadata(Program program) {
+    // Unparses all given js-expressions (suitable for `expressionCompile`) and
+    // returns the result in a js-array.
+    // If the given [expressions] is null returns the empty js-array.
+    js.ArrayInitializer unparseExpressions(List<js.Expression> expressions) {
+      if (expressions == null) expressions = <js.Expression>[];
+      List<js.LiteralString> unparsedExpressions = expressions
+          .map((expr) => unparse(compiler, expr, protectForEval: false))
+          .toList();
+      return new js.ArrayInitializer(unparsedExpressions);
+    }
 
     List<js.Property> metadataGlobals = <js.Property>[];
 
-    js.Property createGlobal(List<String> list, String global) {
-      String listAsString = "[${list.join(",")}]";
-      js.Expression metadata =
-                js.js.uncachedExpressionTemplate(listAsString).instantiate([]);
-      return new js.Property(js.string(global), metadata);
-    }
+    js.ArrayInitializer unparsedMetadata = unparseExpressions(program.metadata);
+    metadataGlobals.add(new js.Property(js.string(lazyMetadataName),
+                                        unparsedMetadata));
+    metadataGlobals.add(new js.Property(js.string(METADATA),
+                                        new js.ArrayInitializer([])));
 
-    metadataGlobals.add(createGlobal(program.metadata, METADATA));
-    List<String> types =
+    List<js.Expression> types =
         program.metadataTypes[program.fragments.first.outputUnit];
-    if (types == null) types = <String>[];
-    metadataGlobals.add(createGlobal(types, TYPES));
+    metadataGlobals.add(new js.Property(js.string(TYPES),
+                                        unparseExpressions(types)));
 
     return metadataGlobals;
   }
 
-  js.Expression emitDeferredFragment(List<String> types,
+  js.Expression emitDeferredFragment(List<js.Expression> types,
                                      DeferredFragment fragment,
                                      List<Holder> holders) {
     // TODO(floitsch): initialize eager classes.
@@ -460,9 +530,9 @@
 
     js.LiteralString immediateString = unparse(compiler, immediateCode);
 
-    js.Expression deferredTypes = types == null
+    js.Expression deferredTypes = (types == null)
         ? js.string("[]")
-        : js.string("[${types.join(",")}]");
+        : unparse(compiler, new js.ArrayInitializer(types));
 
     js.ArrayInitializer hunk =
         new js.ArrayInitializer([deferredArray, immediateString,
@@ -1158,6 +1228,13 @@
   // Initialize globals.
   #embeddedGlobals;
 
+  function expressionCompile(__s__) {
+    'use strict';
+    return eval('(' + __s__ + ')');
+  }
+
+  #readMetadataTypeFunction;
+
   // TODO(floitsch): this order means that native classes may not be
   // referenced from constants. I'm mostly afraid of things like using them as
   // generic arguments (which should be fine, but maybe there are other
diff --git a/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart b/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart
index 240e771..dd2c214 100644
--- a/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart
+++ b/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart
@@ -276,6 +276,10 @@
         return jsAst.js.expressionTemplateYielding(
             typeAccess(compiler.objectClass));
 
+      case JsBuiltin.classNameFromIsCheckProperty:
+        int isPrefixLength = namer.operatorIsPrefix.length;
+        return jsAst.js.expressionTemplateFor('#.substring($isPrefixLength)');
+
       case JsBuiltin.isFunctionType:
         return backend.rti.representationGenerator.templateForIsFunctionType;
 
@@ -295,6 +299,23 @@
         return backend.rti.representationGenerator
             .templateForCreateFunctionType;
 
+      case JsBuiltin.isSubtype:
+        // TODO(floitsch): move this closer to where is-check properties are
+        // built.
+        String isPrefix = namer.operatorIsPrefix;
+        return jsAst.js.expressionTemplateFor(
+            "('$isPrefix' + #) in #.prototype");
+
+      case JsBuiltin.getMetadata:
+        String metadataAccess =
+            generateEmbeddedGlobalAccessString(embeddedNames.METADATA);
+        return jsAst.js.expressionTemplateFor("$metadataAccess[#]");
+
+      case JsBuiltin.getType:
+        String typesAccess =
+            generateEmbeddedGlobalAccessString(embeddedNames.TYPES);
+        return jsAst.js.expressionTemplateFor("$typesAccess[#]");
+
       default:
         compiler.internalError(NO_LOCATION_SPANNABLE,
             "Unhandled Builtin: $builtin");
@@ -654,12 +675,11 @@
 
   void emitMetadata(Program program, CodeOutput output, OutputUnit outputUnit) {
 
-    jsAst.Expression constructList(List<String> list) {
-      String listAsString = list == null ? '[]' : '[${list.join(",")}]';
-      return js.uncachedExpressionTemplate(listAsString).instantiate([]);
+    jsAst.Expression constructList(List<jsAst.Expression> list) {
+      return new jsAst.ArrayInitializer(list == null ? [] : list);
     }
 
-    List<String> types = program.metadataTypes[outputUnit];
+    List<jsAst.Expression> types = program.metadataTypes[outputUnit];
 
     if (outputUnit == compiler.deferredLoadTask.mainOutputUnit) {
       jsAst.Expression metadataAccess =
@@ -989,8 +1009,8 @@
     output.add(N);
   }
 
-  void writeLibraryDescriptor(CodeOutput output, LibraryElement library,
-                              Fragment fragment) {
+  jsAst.Expression generateLibraryDescriptor(LibraryElement library,
+                                             Fragment fragment) {
     var uri = "";
     if (!compiler.enableMinification || backend.mustPreserveUris) {
       uri = library.canonicalUri;
@@ -998,14 +1018,6 @@
         uri = relativize(compiler.outputUri, library.canonicalUri, false);
       }
     }
-    ClassBuilder descriptor = elementDescriptors[fragment][library];
-    if (descriptor == null) {
-      // Nothing of the library was emitted.
-      // TODO(floitsch): this should not happen. We currently have an example
-      // with language/prefix6_negative_test.dart where we have an instance
-      // method without its corresponding class.
-      return;
-    }
 
     String libraryName =
         (!compiler.enableMinification || backend.mustRetainLibraryNames) ?
@@ -1014,27 +1026,33 @@
 
     jsAst.Fun metadata = task.metadataCollector.buildMetadataFunction(library);
 
-    jsAst.ObjectInitializer initializers = descriptor.toObjectInitializer();
+    ClassBuilder descriptor = elementDescriptors[fragment][library];
+
+    jsAst.ObjectInitializer initializer;
+    if (descriptor == null) {
+      // Nothing of the library was emitted.
+      // TODO(floitsch): this should not happen. We currently have an example
+      // with language/prefix6_negative_test.dart where we have an instance
+      // method without its corresponding class.
+      initializer = new jsAst.ObjectInitializer([]);
+    } else {
+      initializer = descriptor.toObjectInitializer();
+    }
 
     compiler.dumpInfoTask.registerElementAst(library, metadata);
-    compiler.dumpInfoTask.registerElementAst(library, initializers);
-    output
-        ..add('["$libraryName",$_')
-        ..add('"${uri}",$_');
-    if (metadata != null) {
-      output.addBuffer(jsAst.prettyPrint(metadata,
-                                         compiler,
-                                         monitor: compiler.dumpInfoTask));
+    compiler.dumpInfoTask.registerElementAst(library, initializer);
+
+    List<jsAst.Expression> parts = <jsAst.Expression>[];
+    parts..add(js.string(libraryName))
+         ..add(js.string(uri.toString()))
+         ..add(metadata == null ? new jsAst.ArrayHole() : metadata)
+         ..add(js.name(namer.globalObjectFor(library)))
+         ..add(initializer);
+    if (library == compiler.mainApp) {
+      parts.add(js.number(1));
     }
-    output
-        ..add(',$_')
-        ..add(namer.globalObjectFor(library))
-        ..add(',$_')
-        ..addBuffer(jsAst.prettyPrint(initializers,
-                                      compiler,
-                                      monitor: compiler.dumpInfoTask))
-        ..add(library == compiler.mainApp ? ',${n}1' : "")
-        ..add('],$n');
+
+    return new jsAst.ArrayInitializer(parts);
   }
 
   void assemblePrecompiledConstructor(OutputUnit outputUnit,
@@ -1308,9 +1326,9 @@
 
     checkEverythingEmitted(descriptors.keys);
 
-    CodeBuffer libraryBuffer = new CodeBuffer();
+    List<jsAst.Expression> parts = <jsAst.Expression>[];
     for (LibraryElement library in Elements.sortedByPosition(libraries)) {
-      writeLibraryDescriptor(libraryBuffer, library, mainFragment);
+      parts.add(generateLibraryDescriptor(library, mainFragment));
       descriptors.remove(library);
     }
 
@@ -1325,11 +1343,12 @@
       for (LibraryElement element in remainingLibraries) {
         assert(element is LibraryElement || compiler.hasIncrementalSupport);
         if (element is LibraryElement) {
-          writeLibraryDescriptor(libraryBuffer, element, mainFragment);
+          parts.add(generateLibraryDescriptor(element, mainFragment));
           descriptors.remove(element);
         }
       }
     }
+    jsAst.ArrayInitializer descriptorsAst = new jsAst.ArrayInitializer(parts);
 
     bool needsNativeSupport = program.needsNativeSupport;
     mainOutput.addBuffer(
@@ -1340,9 +1359,10 @@
     // The argument to reflectionDataParser is assigned to a temporary 'dart'
     // so that 'dart.' will appear as the prefix to dart methods in stack
     // traces and profile entries.
-    mainOutput..add('var dart = [$n')
-              ..addBuffer(libraryBuffer)
-              ..add(']$N');
+    mainOutput..add('var dart =')
+              ..addBuffer(jsAst.prettyPrint(descriptorsAst, compiler,
+                                            monitor: compiler.dumpInfoTask))
+              ..add('$N');
     if (compiler.useContentSecurityPolicy) {
       jsAst.Statement precompiledFunctionAst =
           buildCspPrecompiledFunctionFor(mainOutputUnit);
@@ -1586,8 +1606,8 @@
   Map<OutputUnit, String> emitDeferredOutputUnits(Program program) {
     if (!program.isSplit) return const {};
 
-    Map<OutputUnit, CodeBuffer> outputBuffers =
-        new Map<OutputUnit, CodeBuffer>();
+    Map<OutputUnit, jsAst.Expression> outputs =
+        new Map<OutputUnit, jsAst.Expression>();
 
     for (Fragment fragment in program.deferredFragments) {
       OutputUnit outputUnit = fragment.outputUnit;
@@ -1600,16 +1620,17 @@
         if (libraries == null) libraries = [];
 
         // TODO(johnniwinther): Avoid creating [CodeBuffer]s.
-        CodeBuffer buffer = new CodeBuffer();
-        outputBuffers[outputUnit] = buffer;
+        List<jsAst.Expression> parts = <jsAst.Expression>[];
         for (LibraryElement library in Elements.sortedByPosition(libraries)) {
-          writeLibraryDescriptor(buffer, library, fragment);
+          parts.add(generateLibraryDescriptor(library, fragment));
           descriptors.remove(library);
         }
+
+        outputs[outputUnit] = new jsAst.ArrayInitializer(parts);
       }
     }
 
-    return emitDeferredCode(program, outputBuffers);
+    return emitDeferredCode(program, outputs);
   }
 
   int emitProgram(ProgramBuilder programBuilder) {
@@ -1752,14 +1773,14 @@
   /// can be used for calling the initializer.
   Map<OutputUnit, String> emitDeferredCode(
       Program program,
-      Map<OutputUnit, CodeBuffer> deferredBuffers) {
+      Map<OutputUnit, jsAst.Expression> deferredAsts) {
 
     Map<OutputUnit, String> hunkHashes = new Map<OutputUnit, String>();
 
     for (Fragment fragment in program.deferredFragments) {
       OutputUnit outputUnit = fragment.outputUnit;
 
-      CodeOutput libraryDescriptorBuffer = deferredBuffers[outputUnit];
+      jsAst.Expression libraryDescriptor = deferredAsts[outputUnit];
 
       List<CodeOutputListener> outputListeners = <CodeOutputListener>[];
       Hasher hasher = new Hasher();
@@ -1796,7 +1817,7 @@
                     '${globalsHolder}.${namer.isolateName}$N');
       String typesAccess =
           generateEmbeddedGlobalAccessString(embeddedNames.TYPES);
-      if (libraryDescriptorBuffer != null) {
+      if (libraryDescriptor != null) {
         // TODO(ahe): This defines a lot of properties on the
         // Isolate.prototype object.  We know this will turn it into a
         // slow object in V8, so instead we should do something similar
@@ -1806,9 +1827,10 @@
             // The argument to reflectionDataParser is assigned to a temporary
             // 'dart' so that 'dart.' will appear as the prefix to dart methods
             // in stack traces and profile entries.
-            ..add('var dart = [$n ')
-            ..addBuffer(libraryDescriptorBuffer)
-            ..add(']$N');
+            ..add('var dart = $n ')
+            ..addBuffer(jsAst.prettyPrint(libraryDescriptor, compiler,
+                                          monitor: compiler.dumpInfoTask))
+            ..add('$N');
 
         if (compiler.useContentSecurityPolicy) {
           jsAst.Statement precompiledFunctionAst =
diff --git a/pkg/compiler/lib/src/library_loader.dart b/pkg/compiler/lib/src/library_loader.dart
index 3e5ddde..86d14f7f 100644
--- a/pkg/compiler/lib/src/library_loader.dart
+++ b/pkg/compiler/lib/src/library_loader.dart
@@ -371,7 +371,7 @@
    * the import/export scopes are not set up.
    */
   Future processLibraryTags(LibraryDependencyHandler handler,
-                            LibraryElement library) {
+                            LibraryElementX library) {
     TagState tagState = new TagState();
 
     bool importsDartCore = false;
@@ -499,13 +499,23 @@
   /**
    * Handle an import/export tag by loading the referenced library and
    * registering its dependency in [handler] for the computation of the import/
-   * export scope.
+   * export scope. If the tag does not contain a valid URI, then its dependency
+   * is not registered in [handler].
    */
-  Future registerLibraryFromTag(LibraryDependencyHandler handler,
-                                LibraryElement library,
-                                LibraryDependency tag) {
+  Future<Null> registerLibraryFromTag(LibraryDependencyHandler handler,
+                                      LibraryElement library,
+                                      LibraryDependency tag) {
     Uri base = library.canonicalUri;
-    Uri resolvedUri = base.resolve(tag.uri.dartString.slowToString());
+    String tagUriString = tag.uri.dartString.slowToString();
+    Uri resolvedUri;
+    try {
+      resolvedUri = base.resolve(tagUriString);
+    } on FormatException {
+      compiler.reportError(
+          tag.uri, MessageKind.INVALID_URI, {'uri': tagUriString});
+      // 'reportError' does not stop necessarily stop compilation
+      return new Future.value();
+    }
     return createLibrary(handler, library, resolvedUri, tag.uri)
         .then((LibraryElement loadedLibrary) {
           if (loadedLibrary == null) return;
@@ -649,7 +659,7 @@
   /**
    * Imports the library into the [importingLibrary].
    */
-  void importLibrary(Compiler compiler, LibraryElement importingLibrary) {
+  void importLibrary(Compiler compiler, LibraryElementX importingLibrary) {
     assert(invariant(importingLibrary,
                      importedLibrary.exportsHandled,
                      message: 'Exports not handled on $importedLibrary'));
@@ -722,7 +732,7 @@
  * exports performed in [LibraryDependencyHandler.computeExports].
  */
 class LibraryDependencyNode {
-  final LibraryElement library;
+  final LibraryElementX library;
 
   // TODO(ahe): Remove [hashCodeCounter] and [hashCode] when
   // VM implementation of Object.hashCode is not slow.
@@ -765,7 +775,7 @@
   Map<Element, Link<Export>> pendingExportMap =
       new Map<Element, Link<Export>>();
 
-  LibraryDependencyNode(LibraryElement this.library);
+  LibraryDependencyNode(this.library);
 
   /**
    * Registers that the library of this node imports [importLibrary] through the
@@ -1015,7 +1025,7 @@
   /**
    * Registers that [library] depends on [loadedLibrary] through [tag].
    */
-  void registerDependency(LibraryElement library,
+  void registerDependency(LibraryElementX library,
                           LibraryDependency tag,
                           LibraryElement loadedLibrary) {
     if (tag != null) {
diff --git a/pkg/compiler/lib/src/native/enqueue.dart b/pkg/compiler/lib/src/native/enqueue.dart
index 11968db..1f09444 100644
--- a/pkg/compiler/lib/src/native/enqueue.dart
+++ b/pkg/compiler/lib/src/native/enqueue.dart
@@ -225,7 +225,7 @@
    * Returns the source string of the class named in the extends clause, or
    * `null` if there is no extends clause.
    */
-  String findExtendsNameOfClass(ClassElement classElement) {
+  String findExtendsNameOfClass(BaseClassElementX classElement) {
     //  "class B extends A ... {}"  --> "A"
     //  "class B extends foo.A ... {}"  --> "A"
     //  "class B<T> extends foo.A<T,T> with M1, M2 ... {}"  --> "A"
@@ -360,7 +360,7 @@
     flushing = false;
   }
 
-  processClass(ClassElementX classElement, cause) {
+  processClass(BaseClassElementX classElement, cause) {
     // TODO(ahe): Fix this assertion to work in incremental compilation.
     assert(compiler.hasIncrementalSupport ||
            !registeredClasses.contains(classElement));
@@ -422,7 +422,7 @@
 
   /// Sets the native name of [element], either from an annotation, or
   /// defaulting to the Dart name.
-  void setNativeName(Element element) {
+  void setNativeName(ElementX element) {
     String name = findJsNameFromAnnotation(element);
     if (name == null) name = element.name;
     element.setNative(name);
@@ -436,7 +436,7 @@
   ///    use the declared @JSName as the expression
   /// 3. If [element] does not have a @JSName annotation, qualify the name of
   ///    the method with the @Native name of the enclosing class.
-  void setNativeNameForStaticMethod(Element element) {
+  void setNativeNameForStaticMethod(ElementX element) {
     String name = findJsNameFromAnnotation(element);
     if (name == null) name = element.name;
     if (isIdentifier(name)) {
diff --git a/pkg/compiler/lib/src/native/native.dart b/pkg/compiler/lib/src/native/native.dart
index cf1d062..5783e52 100644
--- a/pkg/compiler/lib/src/native/native.dart
+++ b/pkg/compiler/lib/src/native/native.dart
@@ -11,7 +11,7 @@
 import '../dart_types.dart';
 import '../elements/elements.dart';
 import '../elements/modelx.dart'
-    show ClassElementX, FunctionElementX, LibraryElementX;
+    show ElementX, BaseClassElementX, FunctionElementX, LibraryElementX;
 import '../js/js.dart' as js;
 import '../js_backend/js_backend.dart';
 import '../js_emitter/js_emitter.dart' show CodeEmitterTask, NativeEmitter;
diff --git a/pkg/compiler/lib/src/patch_parser.dart b/pkg/compiler/lib/src/patch_parser.dart
index c6e90d5..8ed2a09 100644
--- a/pkg/compiler/lib/src/patch_parser.dart
+++ b/pkg/compiler/lib/src/patch_parser.dart
@@ -128,7 +128,7 @@
     show LibraryElementX,
          MetadataAnnotationX,
          ClassElementX,
-         FunctionElementX;
+         BaseFunctionElementX;
 import 'helpers/helpers.dart';  // Included for debug helpers.
 import 'library_loader.dart' show LibraryLoader;
 import 'scanner/scannerlib.dart';  // Scanner, Parsers, Listeners
@@ -541,8 +541,8 @@
 }
 
 void patchFunction(DiagnosticListener listener,
-                   FunctionElementX origin,
-                   FunctionElementX patch) {
+                   BaseFunctionElementX origin,
+                   BaseFunctionElementX patch) {
   if (!origin.modifiers.isExternal) {
     listener.reportError(origin, MessageKind.PATCH_NON_EXTERNAL);
     listener.reportInfo(
diff --git a/pkg/compiler/lib/src/resolution/access_semantics.dart b/pkg/compiler/lib/src/resolution/access_semantics.dart
index ecd16c0..a99db1f 100644
--- a/pkg/compiler/lib/src/resolution/access_semantics.dart
+++ b/pkg/compiler/lib/src/resolution/access_semantics.dart
@@ -143,6 +143,11 @@
   SUPER_METHOD_SETTER,
   /// Read from a superclass getter and write to a superclass field.
   SUPER_GETTER_FIELD,
+
+  /// Read from a superclass where the getter (and maybe setter) is unresolved.
+  UNRESOLVED_SUPER_GETTER,
+  /// Read from a superclass getter and write to an unresolved setter.
+  UNRESOLVED_SUPER_SETTER,
 }
 
 /**
@@ -388,17 +393,32 @@
   ///
   ABSTRACT,
 
-  /// An invocation of an unresolved constructor or an unresolved type.
+  /// An invocation of a constructor on an unresolved type.
+  ///
+  /// For instance
+  ///     m() => new Unresolved();
+  ///
+  UNRESOLVED_TYPE,
+
+  /// An invocation of an unresolved constructor.
   ///
   /// For instance
   ///     class C {
   ///       C();
   ///     }
-  ///     m1() => new C.unresolved();
-  ///     m2() => new Unresolved();
+  ///     m() => new C.unresolved();
   ///
-  // TODO(johnniwinther): Differentiate between error types.
-  ERRONEOUS,
+  UNRESOLVED_CONSTRUCTOR,
+
+  /// An const invocation of an non-constant constructor.
+  ///
+  /// For instance
+  ///     class C {
+  ///       C();
+  ///     }
+  ///     m() => const C();
+  ///
+  NON_CONSTANT_CONSTRUCTOR,
 
   /// An invocation of an ill-defined redirecting factory constructor.
   ///
@@ -431,7 +451,9 @@
   /// `true` if this invocation is erroneous.
   bool get isErroneous {
     return kind == ConstructorAccessKind.ABSTRACT ||
-           kind == ConstructorAccessKind.ERRONEOUS ||
+           kind == ConstructorAccessKind.UNRESOLVED_TYPE ||
+           kind == ConstructorAccessKind.UNRESOLVED_CONSTRUCTOR ||
+           kind == ConstructorAccessKind.NON_CONSTANT_CONSTRUCTOR ||
            kind == ConstructorAccessKind.ERRONEOUS_REDIRECTING_FACTORY;
   }
 }
diff --git a/pkg/compiler/lib/src/resolution/members.dart b/pkg/compiler/lib/src/resolution/members.dart
index 986663e..6973a47 100644
--- a/pkg/compiler/lib/src/resolution/members.dart
+++ b/pkg/compiler/lib/src/resolution/members.dart
@@ -714,7 +714,7 @@
     if (Elements.isStaticOrTopLevelField(element)) {
       visitor.addDeferredAction(element, () {
         if (element.modifiers.isConst) {
-          constantCompiler.compileConstant(element);
+          element.constant = constantCompiler.compileConstant(element);
         } else {
           constantCompiler.compileVariable(element);
         }
@@ -1156,9 +1156,9 @@
     }
     AbstractFieldElement field = lookupElement;
 
-    FunctionElementX getter = field.getter;
+    MethodElementX getter = field.getter;
     if (getter == null) return;
-    FunctionElementX setter = field.setter;
+    MethodElementX setter = field.setter;
     if (setter == null) return;
     int getterFlags = getter.modifiers.flags | Modifiers.FLAG_ABSTRACT;
     int setterFlags = setter.modifiers.flags | Modifiers.FLAG_ABSTRACT;
@@ -2427,8 +2427,10 @@
       parameterNodes = parameterNodes.tail;
     });
     addDeferredAction(enclosingElement, () {
-      functionParameters.forEachOptionalParameter((Element parameter) {
-        compiler.resolver.constantCompiler.compileConstant(parameter);
+      functionParameters.forEachOptionalParameter(
+          (ParameterElementX parameter) {
+        parameter.constant =
+            compiler.resolver.constantCompiler.compileConstant(parameter);
       });
     });
     if (inCheckContext) {
@@ -3227,6 +3229,14 @@
     ConstructorElement redirectionTarget = resolveRedirectingFactory(
         node, inConstContext: isConstConstructor);
     constructor.immediateRedirectionTarget = redirectionTarget;
+
+    Node constructorReference = node.constructorReference;
+    if (constructorReference is Send) {
+      constructor.redirectionDeferredPrefix =
+          compiler.deferredLoadTask.deferredPrefixElement(constructorReference,
+                                                          registry.mapping);
+    }
+
     registry.setRedirectingTargetConstructor(node, redirectionTarget);
     if (Elements.isUnresolved(redirectionTarget)) {
       registry.registerThrowNoSuchMethod();
@@ -4869,14 +4879,15 @@
   visitNodeList(NodeList node) {
     for (Link<Node> link = node.nodes; !link.isEmpty; link = link.tail) {
       Identifier name = visit(link.head);
-      LocalVariableElement element = new LocalVariableElementX(
+      LocalVariableElementX element = new LocalVariableElementX(
           name.source, resolver.enclosingElement,
           variables, name.token);
       resolver.defineLocalVariable(link.head, element);
       resolver.addToScope(element);
       if (definitions.modifiers.isConst) {
         compiler.enqueuer.resolution.addDeferredAction(element, () {
-          compiler.resolver.constantCompiler.compileConstant(element);
+          element.constant =
+              compiler.resolver.constantCompiler.compileConstant(element);
         });
       }
     }
diff --git a/pkg/compiler/lib/src/resolution/resolution.dart b/pkg/compiler/lib/src/resolution/resolution.dart
index 19039c8..7b8bf65 100644
--- a/pkg/compiler/lib/src/resolution/resolution.dart
+++ b/pkg/compiler/lib/src/resolution/resolution.dart
@@ -35,6 +35,7 @@
     LocalParameterElementX,
     LocalVariableElementX,
     MetadataAnnotationX,
+    MethodElementX,
     MixinApplicationElementX,
     ParameterElementX,
     ParameterMetadataAnnotation,
diff --git a/pkg/compiler/lib/src/resolution/semantic_visitor.dart b/pkg/compiler/lib/src/resolution/semantic_visitor.dart
index b626bba..b1c1f31 100644
--- a/pkg/compiler/lib/src/resolution/semantic_visitor.dart
+++ b/pkg/compiler/lib/src/resolution/semantic_visitor.dart
@@ -5,7 +5,7 @@
 library dart2js.semantics_visitor;
 
 import '../constants/expressions.dart';
-import '../dart2jslib.dart' show invariant;
+import '../dart2jslib.dart' show invariant, MessageKind;
 import '../dart_types.dart';
 import '../elements/elements.dart';
 import '../helpers/helpers.dart';
@@ -1223,6 +1223,22 @@
       Node argument,
       A arg);
 
+  /// Binary operation on the unresolved super [element].
+  ///
+  /// For instance
+  ///     class B {
+  ///     }
+  ///     class C extends B {
+  ///       m() => super + 42;
+  ///     }
+  ///
+  R visitUnresolvedSuperBinary(
+      Send node,
+      Element element,
+      BinaryOperator operator,
+      Node argument,
+      A arg);
+
   /// Index expression `receiver[index]`.
   ///
   /// For instance:
@@ -1277,6 +1293,20 @@
       Node index,
       A arg);
 
+  /// Index expression `super[index]` where 'operator []' is unresolved.
+  ///
+  /// For instance:
+  ///     class B {}
+  ///     class C extends B {
+  ///       m(a) => super[a];
+  ///     }
+  ///
+  R visitUnresolvedSuperIndex(
+      Send node,
+      Element element,
+      Node index,
+      A arg);
+
   /// Prefix operation on an index expression `operator super[index]` where
   /// 'operator []' is implemented on a superclass by [indexFunction] and
   /// 'operator []=' is implemented on by [indexSetFunction] and the operation
@@ -1293,8 +1323,8 @@
   ///
   R visitSuperIndexPrefix(
       Send node,
-      FunctionElement indexFunction,
-      FunctionElement indexSetFunction,
+      MethodElement indexFunction,
+      MethodElement indexSetFunction,
       Node index,
       IncDecOperator operator,
       A arg);
@@ -1315,29 +1345,15 @@
   ///
   R visitSuperIndexPostfix(
       Send node,
-      FunctionElement indexFunction,
-      FunctionElement indexSetFunction,
+      MethodElement indexFunction,
+      MethodElement indexSetFunction,
       Node index,
       IncDecOperator operator,
       A arg);
 
-  /// Index expression `super[index]` where 'operator []' is unresolved.
-  ///
-  /// For instance:
-  ///     class B {}
-  ///     class C extends B {
-  ///       m(a) => super[a];
-  ///     }
-  ///
-  R visitUnresolvedSuperIndex(
-      Send node,
-      Element element,
-      Node index,
-      A arg);
-
   /// Prefix operation on an index expression `operator super[index]` where
-  /// 'operator []' or 'operator []=' is unresolved and the operation
-  /// is defined by [operator].
+  /// 'operator []' and maybe also 'operator []=' is unresolved and the
+  /// operation is defined by [operator].
   ///
   /// For instance:
   ///     class B {}
@@ -1345,16 +1361,16 @@
   ///       m(a) => --super[a];
   ///     }
   ///
-  R errorUnresolvedSuperIndexPrefix(
+  R visitUnresolvedSuperGetterIndexPrefix(
       Send node,
-      Element function,
+      Element element,
       Node index,
       IncDecOperator operator,
       A arg);
 
   /// Postfix operation on an index expression `super[index] operator` where
-  /// 'operator []' or 'operator []=' is unresolved and the operation
-  /// is defined by [operator].
+  /// 'operator []' and maybe also 'operator []=' is unresolved and the
+  /// operation is defined by [operator].
   ///
   /// For instance:
   ///     class B {}
@@ -1362,9 +1378,45 @@
   ///       m(a) => super[a]++;
   ///     }
   ///
-  R errorUnresolvedSuperIndexPostfix(
+  R visitUnresolvedSuperGetterIndexPostfix(
       Send node,
-      Element function,
+      Element element,
+      Node index,
+      IncDecOperator operator,
+      A arg);
+
+  /// Prefix operation on an index expression `operator super[index]` where
+  /// 'operator []' is implemented on a superclass by [indexFunction] and
+  /// 'operator []=' is unresolved and the operation is defined by [operator].
+  ///
+  /// For instance:
+  ///     class B {}
+  ///     class C extends B {
+  ///       m(a) => --super[a];
+  ///     }
+  ///
+  R visitUnresolvedSuperSetterIndexPrefix(
+      Send node,
+      MethodElement indexFunction,
+      Element element,
+      Node index,
+      IncDecOperator operator,
+      A arg);
+
+  /// Postfix operation on an index expression `super[index] operator` where
+  /// 'operator []' is implemented on a superclass by [indexFunction] and
+  /// 'operator []=' is unresolved and the operation is defined by [operator].
+  ///
+  /// For instance:
+  ///     class B {}
+  ///     class C extends B {
+  ///       m(a) => super[a]++;
+  ///     }
+  ///
+  R visitUnresolvedSuperSetterIndexPostfix(
+      Send node,
+      MethodElement indexFunction,
+      Element element,
       Node index,
       IncDecOperator operator,
       A arg);
@@ -1455,6 +1507,21 @@
       FunctionElement function,
       A arg);
 
+  /// Unary operation on the unresolved super [element].
+  ///
+  /// For instance
+  ///     class B {
+  ///     }
+  ///     class C extends B {
+  ///       m() => -super;
+  ///     }
+  ///
+  R visitUnresolvedSuperUnary(
+      Send node,
+      UnaryOperator operator,
+      Element element,
+      A arg);
+
   /// Unary expression `!expression`.
   ///
   /// For instance:
@@ -1495,6 +1562,23 @@
       Node rhs,
       A arg);
 
+  /// Index set expression `super[index] = rhs` where `operator []=` is
+  /// undefined.
+  ///
+  /// For instance
+  ///     class B {
+  ///     }
+  ///     class C extends B {
+  ///       m() => super[1] = 42;
+  ///     }
+  ///
+  R visitUnresolvedSuperIndexSet(
+      Send node,
+      Element element,
+      Node index,
+      Node rhs,
+      A arg);
+
   /// Logical and, &&, expression with operands [left] and [right].
   ///
   /// For instance
@@ -1970,8 +2054,8 @@
       Node rhs,
       A arg);
 
-  /// Compound assignment expression of [rhs] with [operator] on the index
-  /// operators of [receiver] whose getter and setter are defined by
+  /// Compound index assignment of [rhs] with [operator] to [index] on the
+  /// index operators of [receiver] whose getter and setter are defined by
   /// [getterSelector] and [setterSelector], respectively.
   ///
   /// For instance:
@@ -1985,7 +2069,7 @@
       Node rhs,
       A arg);
 
-  /// Compound assignment expression of [rhs] with [operator] on the index
+  /// Compound index assignment of [rhs] with [operator] to [index] on the index
   /// operators of a super class defined by [getter] and [setter].
   ///
   /// For instance:
@@ -1999,8 +2083,48 @@
   ///
   R visitSuperCompoundIndexSet(
       SendSet node,
-      FunctionElement getter,
-      FunctionElement setter,
+      MethodElement getter,
+      MethodElement setter,
+      Node index,
+      AssignmentOperator operator,
+      Node rhs,
+      A arg);
+
+  /// Compound index assignment of [rhs] with [operator] to [index] on a super
+  /// super class where the index getter is undefined. The index setter might
+  /// also be undefined.
+  ///
+  /// For instance
+  ///     class B {
+  ///     }
+  ///     class C extends B {
+  ///       m() => super[1] += 42;
+  ///     }
+  ///
+  R visitUnresolvedSuperGetterCompoundIndexSet(
+      Send node,
+      Element element,
+      Node index,
+      AssignmentOperator operator,
+      Node rhs,
+      A arg);
+
+  /// Compound index assignment of [rhs] with [operator] to [index] on a super
+  /// super class where the index getter is defined by [getter] but the index
+  /// setter is undefined.
+  ///
+  /// For instance
+  ///     class B {
+  ///       operator [](index) => 42;
+  ///     }
+  ///     class C extends B {
+  ///       m() => super[1] += 42;
+  ///     }
+  ///
+  R visitUnresolvedSuperSetterCompoundIndexSet(
+      Send node,
+      MethodElement getter,
+      Element element,
       Node index,
       AssignmentOperator operator,
       Node rhs,
@@ -2842,71 +2966,6 @@
       IncDecOperator operator,
       A arg);
 
-  /// Index set operation on the unresolved super [element].
-  ///
-  /// For instance
-  ///     class B {
-  ///     }
-  ///     class C extends B {
-  ///       m() => super[1] = 42;
-  ///     }
-  ///
-  R errorUnresolvedSuperIndexSet(
-      Send node,
-      Element element,
-      Node index,
-      Node rhs,
-      A arg);
-
-  /// Compound index set operation on the unresolved super [element].
-  ///
-  /// For instance
-  ///     class B {
-  ///     }
-  ///     class C extends B {
-  ///       m() => super[1] += 42;
-  ///     }
-  ///
-  // TODO(johnniwinther): Split this case into unresolved getter/setter cases.
-  R errorUnresolvedSuperCompoundIndexSet(
-      Send node,
-      Element element,
-      Node index,
-      AssignmentOperator operator,
-      Node rhs,
-      A arg);
-
-  /// Unary operation on the unresolved super [element].
-  ///
-  /// For instance
-  ///     class B {
-  ///     }
-  ///     class C extends B {
-  ///       m() => -super;
-  ///     }
-  ///
-  R visitUnresolvedSuperUnary(
-      Send node,
-      UnaryOperator operator,
-      Element element,
-      A arg);
-
-  /// Binary operation on the unresolved super [element].
-  ///
-  /// For instance
-  ///     class B {
-  ///     }
-  ///     class C extends B {
-  ///       m() => super + 42;
-  ///     }
-  ///
-  R visitUnresolvedSuperBinary(
-      Send node,
-      Element element,
-      BinaryOperator operator,
-      Node argument,
-      A arg);
-
   /// Invocation of an undefined unary [operator] on [expression].
   R errorUndefinedUnaryExpression(
       Send node,
@@ -3028,9 +3087,9 @@
   ///
   /// where [type] is `C<int>`.
   ///
-  // TODO(johnniwinther): Update [type] to be [InterfaceType] when this is no
-  // longer a catch-all clause for the erroneous constructor invocations.
-  R errorUnresolvedConstructorInvoke(
+  // TODO(johnniwinther): Change [type] to [InterfaceType] when is it not
+  // `dynamic`.
+  R visitUnresolvedConstructorInvoke(
       NewExpression node,
       Element constructor,
       DartType type,
@@ -3045,14 +3104,32 @@
   ///
   /// where [type] is the malformed type `Unresolved`.
   ///
-  R errorUnresolvedClassConstructorInvoke(
+  // TODO(johnniwinther): Change [type] to [MalformedType] when is it not
+  // `dynamic`.
+  R visitUnresolvedClassConstructorInvoke(
       NewExpression node,
       Element element,
-      MalformedType type,
+      DartType type,
       NodeList arguments,
       Selector selector,
       A arg);
 
+  /// Constant invocation of a non-constant constructor.
+  ///
+  /// For instance
+  ///   class C {
+  ///     C(a, b);
+  ///   }
+  ///   m() => const C(true, 42);
+  ///
+  R errorNonConstantConstructorInvoke(
+      NewExpression node,
+      Element element,
+      InterfaceType type,
+      NodeList arguments,
+      CallStructure callStructure,
+      A arg);
+
   /// Invocation of a constructor on an abstract [type] with [arguments].
   ///
   /// For instance
@@ -3060,7 +3137,7 @@
   ///
   /// where [type] is the malformed type `Unresolved`.
   ///
-  R errorAbstractClassConstructorInvoke(
+  R visitAbstractClassConstructorInvoke(
       NewExpression node,
       ConstructorElement element,
       InterfaceType type,
@@ -3080,12 +3157,12 @@
   ///   m1() => new C(true, 42);
   ///   m2() => new C.a(true, 42);
   ///
-  R errorUnresolvedRedirectingFactoryConstructorInvoke(
+  R visitUnresolvedRedirectingFactoryConstructorInvoke(
       NewExpression node,
       ConstructorElement constructor,
       InterfaceType type,
       NodeList arguments,
-      Selector selector,
+      CallStructure callStructure,
       A arg);
 }
 
diff --git a/pkg/compiler/lib/src/resolution/semantic_visitor_mixins.dart b/pkg/compiler/lib/src/resolution/semantic_visitor_mixins.dart
index dce195b..7f5b884 100644
--- a/pkg/compiler/lib/src/resolution/semantic_visitor_mixins.dart
+++ b/pkg/compiler/lib/src/resolution/semantic_visitor_mixins.dart
@@ -33,17 +33,6 @@
   }
 
   @override
-  R errorAbstractClassConstructorInvoke(
-      NewExpression node,
-      ConstructorElement element,
-      InterfaceType type,
-      NodeList arguments,
-      CallStructure callStructure,
-      A arg) {
-    return bulkHandleError(node, arg);
-  }
-
-  @override
   R errorClassTypeLiteralCompound(
       Send node,
       ConstantExpression constant,
@@ -251,6 +240,17 @@
   }
 
   @override
+  R errorNonConstantConstructorInvoke(
+      NewExpression node,
+      Element element,
+      InterfaceType type,
+      NodeList arguments,
+      CallStructure callStructure,
+      A arg) {
+    return bulkHandleError(node, arg);
+  }
+
+  @override
   R errorStaticFunctionSet(
       Send node,
       MethodElement function,
@@ -443,28 +443,6 @@
   }
 
   @override
-  R errorUnresolvedClassConstructorInvoke(
-      NewExpression node,
-      Element element,
-      MalformedType type,
-      NodeList arguments,
-      Selector selector,
-      A arg) {
-    return bulkHandleError(node, arg);
-  }
-
-  @override
-  R errorUnresolvedConstructorInvoke(
-      NewExpression node,
-      Element constructor,
-      DartType type,
-      NodeList arguments,
-      Selector selector,
-      A arg) {
-    return bulkHandleError(node, arg);
-  }
-
-  @override
   R errorUnresolvedPostfix(
       Send node,
       Element element,
@@ -483,17 +461,6 @@
   }
 
   @override
-  R errorUnresolvedRedirectingFactoryConstructorInvoke(
-       NewExpression node,
-       ConstructorElement constructor,
-       InterfaceType type,
-       NodeList arguments,
-       Selector selector,
-       A arg) {
-    return bulkHandleError(node, arg);
-  }
-
-  @override
   R errorUnresolvedSet(
       Send node,
       Element element,
@@ -503,47 +470,6 @@
   }
 
   @override
-  R errorUnresolvedSuperCompoundIndexSet(
-      SendSet node,
-      Element element,
-      Node index,
-      AssignmentOperator operator,
-      Node rhs,
-      A arg) {
-    return bulkHandleError(node, arg);
-  }
-
-  @override
-  R errorUnresolvedSuperIndexPostfix(
-      Send node,
-      Element function,
-      Node index,
-      IncDecOperator operator,
-      A arg) {
-    return bulkHandleError(node, arg);
-  }
-
-  @override
-  R errorUnresolvedSuperIndexPrefix(
-      Send node,
-      Element function,
-      Node index,
-      IncDecOperator operator,
-      A arg) {
-    return bulkHandleError(node, arg);
-  }
-
-  @override
-  R errorUnresolvedSuperIndexSet(
-      SendSet node,
-      Element element,
-      Node index,
-      Node rhs,
-      A arg) {
-    return bulkHandleError(node, arg);
-  }
-
-  @override
   R errorUndefinedUnaryExpression(
       Send node,
       Operator operator,
@@ -704,6 +630,27 @@
   }
 
   @override
+  R visitUnresolvedSuperGetterIndexPrefix(
+      Send node,
+      Element element,
+      Node index,
+      IncDecOperator operator,
+      A arg) {
+    return bulkHandlePrefix(node, arg);
+  }
+
+  @override
+  R visitUnresolvedSuperSetterIndexPrefix(
+      Send node,
+      MethodElement getter,
+      Element element,
+      Node index,
+      IncDecOperator operator,
+      A arg) {
+    return bulkHandlePrefix(node, arg);
+  }
+
+  @override
   R visitSuperMethodSetterPrefix(
       Send node,
       FunctionElement method,
@@ -894,6 +841,27 @@
   }
 
   @override
+  R visitUnresolvedSuperGetterIndexPostfix(
+      Send node,
+      Element element,
+      Node index,
+      IncDecOperator operator,
+      A arg) {
+    return bulkHandlePostfix(node, arg);
+  }
+
+  @override
+  R visitUnresolvedSuperSetterIndexPostfix(
+      Send node,
+      MethodElement getter,
+      Element element,
+      Node index,
+      IncDecOperator operator,
+      A arg) {
+    return bulkHandlePostfix(node, arg);
+  }
+
+  @override
   R visitSuperMethodSetterPostfix(
       Send node,
       FunctionElement method,
@@ -1725,6 +1693,29 @@
   }
 
   @override
+  R visitUnresolvedSuperGetterCompoundIndexSet(
+      SendSet node,
+      Element element,
+      Node index,
+      AssignmentOperator operator,
+      Node rhs,
+      A arg) {
+    return bulkHandleIndexSet(node, arg);
+  }
+
+  @override
+  R visitUnresolvedSuperSetterCompoundIndexSet(
+      SendSet node,
+      MethodElement getter,
+      Element element,
+      Node index,
+      AssignmentOperator operator,
+      Node rhs,
+      A arg) {
+    return bulkHandleIndexSet(node, arg);
+  }
+
+  @override
   R visitSuperIndexSet(
       SendSet node,
       FunctionElement function,
@@ -1733,6 +1724,16 @@
       A arg) {
     return bulkHandleIndexSet(node, arg);
   }
+
+  @override
+  R visitUnresolvedSuperIndexSet(
+      SendSet node,
+      Element element,
+      Node index,
+      Node rhs,
+      A arg) {
+    return bulkHandleIndexSet(node, arg);
+  }
 }
 
 /// Mixin that implements all binary visitor methods in [SemanticSendVisitor] by
@@ -2342,6 +2343,17 @@
   }
 
   @override
+  R visitAbstractClassConstructorInvoke(
+      NewExpression node,
+      ConstructorElement element,
+      InterfaceType type,
+      NodeList arguments,
+      CallStructure callStructure,
+      A arg) {
+    return bulkHandleNew(node, arg);
+  }
+
+  @override
   R visitConstConstructorInvoke(
       NewExpression node,
       ConstructedConstantExpression constant,
@@ -2390,6 +2402,39 @@
       A arg) {
     return bulkHandleNew(node, arg);
   }
+
+  @override
+  R visitUnresolvedClassConstructorInvoke(
+      NewExpression node,
+      Element element,
+      DartType type,
+      NodeList arguments,
+      Selector selector,
+      A arg) {
+    return bulkHandleNew(node, arg);
+  }
+
+  @override
+  R visitUnresolvedConstructorInvoke(
+      NewExpression node,
+      Element constructor,
+      DartType type,
+      NodeList arguments,
+      Selector selector,
+      A arg) {
+    return bulkHandleNew(node, arg);
+  }
+
+  @override
+  R visitUnresolvedRedirectingFactoryConstructorInvoke(
+       NewExpression node,
+       ConstructorElement constructor,
+       InterfaceType type,
+       NodeList arguments,
+       CallStructure callStructure,
+       A arg) {
+    return bulkHandleNew(node, arg);
+  }
 }
 
 /// Visitor that implements [SemanticSendVisitor] by the use of `BulkX` mixins.
@@ -4676,7 +4721,7 @@
   }
 
   @override
-  R errorUnresolvedSuperIndexSet(
+  R visitUnresolvedSuperIndexSet(
       Send node,
       Element element,
       Node index,
@@ -4688,7 +4733,7 @@
   }
 
   @override
-  R errorUnresolvedSuperCompoundIndexSet(
+  R visitUnresolvedSuperGetterCompoundIndexSet(
       SendSet node,
       Element element,
       Node index,
@@ -4701,6 +4746,20 @@
   }
 
   @override
+  R visitUnresolvedSuperSetterCompoundIndexSet(
+      SendSet node,
+      MethodElement getter,
+      Element element,
+      Node index,
+      AssignmentOperator operator,
+      Node rhs,
+      A arg) {
+    apply(index, arg);
+    apply(rhs, arg);
+    return null;
+  }
+
+  @override
   R visitUnresolvedSuperBinary(
       Send node,
       Element element,
@@ -4721,9 +4780,9 @@
   }
 
   @override
-  R errorUnresolvedSuperIndexPostfix(
+  R visitUnresolvedSuperGetterIndexPostfix(
       Send node,
-      Element function,
+      Element element,
       Node index,
       IncDecOperator operator,
       A arg) {
@@ -4732,9 +4791,33 @@
   }
 
   @override
-  R errorUnresolvedSuperIndexPrefix(
+  R visitUnresolvedSuperSetterIndexPostfix(
       Send node,
-      Element function,
+      MethodElement getter,
+      Element element,
+      Node index,
+      IncDecOperator operator,
+      A arg) {
+    apply(index, arg);
+    return null;
+  }
+
+  @override
+  R visitUnresolvedSuperGetterIndexPrefix(
+      Send node,
+      Element element,
+      Node index,
+      IncDecOperator operator,
+      A arg) {
+    apply(index, arg);
+    return null;
+  }
+
+  @override
+  R visitUnresolvedSuperSetterIndexPrefix(
+      Send node,
+      MethodElement getter,
+      Element element,
       Node index,
       IncDecOperator operator,
       A arg) {
@@ -4798,10 +4881,10 @@
   }
 
   @override
-  R errorUnresolvedClassConstructorInvoke(
+  R visitUnresolvedClassConstructorInvoke(
       NewExpression node,
       Element constructor,
-      MalformedType type,
+      DartType type,
       NodeList arguments,
       Selector selector,
       A arg) {
@@ -4810,7 +4893,7 @@
   }
 
   @override
-  R errorUnresolvedConstructorInvoke(
+  R visitUnresolvedConstructorInvoke(
       NewExpression node,
       Element constructor,
       DartType type,
@@ -4872,7 +4955,7 @@
   }
 
   @override
-  R errorAbstractClassConstructorInvoke(
+  R visitAbstractClassConstructorInvoke(
       NewExpression node,
       ConstructorElement element,
       InterfaceType type,
@@ -4884,12 +4967,24 @@
   }
 
   @override
-  R errorUnresolvedRedirectingFactoryConstructorInvoke(
+  R visitUnresolvedRedirectingFactoryConstructorInvoke(
       NewExpression node,
       ConstructorElement constructor,
       InterfaceType type,
       NodeList arguments,
-      Selector selector,
+      CallStructure callStructure,
+      A arg) {
+    apply(arguments, arg);
+    return null;
+  }
+
+  @override
+  R errorNonConstantConstructorInvoke(
+      NewExpression node,
+      Element element,
+      InterfaceType type,
+      NodeList arguments,
+      CallStructure callStructure,
       A arg) {
     apply(arguments, arg);
     return null;
@@ -6378,6 +6473,23 @@
       A arg,
       {bool isPrefix});
 
+  R handleUnresolvedSuperGetterIndexPostfixPrefix(
+      Send node,
+      Element element,
+      Node index,
+      IncDecOperator operator,
+      A arg,
+      {bool isPrefix});
+
+  R handleUnresolvedSuperSetterIndexPostfixPrefix(
+      Send node,
+      FunctionElement indexFunction,
+      Element element,
+      Node index,
+      IncDecOperator operator,
+      A arg,
+      {bool isPrefix});
+
   @override
   R visitSuperFieldFieldPostfix(
       Send node,
@@ -6533,6 +6645,52 @@
         node, indexFunction, indexSetFunction,
         index, operator, arg, isPrefix: true);
   }
+
+  @override
+  R visitUnresolvedSuperGetterIndexPostfix(
+      Send node,
+      Element element,
+      Node index,
+      IncDecOperator operator,
+      A arg) {
+    return handleUnresolvedSuperGetterIndexPostfixPrefix(
+        node, element, index, operator, arg, isPrefix: false);
+  }
+
+  @override
+  R visitUnresolvedSuperGetterIndexPrefix(
+      Send node,
+      Element element,
+      Node index,
+      IncDecOperator operator,
+      A arg) {
+    return handleUnresolvedSuperGetterIndexPostfixPrefix(
+        node, element, index, operator, arg, isPrefix: true);
+  }
+
+  @override
+  R visitUnresolvedSuperSetterIndexPostfix(
+      Send node,
+      MethodElement indexFunction,
+      Element element,
+      Node index,
+      IncDecOperator operator,
+      A arg) {
+    return handleUnresolvedSuperSetterIndexPostfixPrefix(
+        node, indexFunction, element, index, operator, arg, isPrefix: false);
+  }
+
+  @override
+  R visitUnresolvedSuperSetterIndexPrefix(
+      Send node,
+      MethodElement indexFunction,
+      Element element,
+      Node index,
+      IncDecOperator operator,
+      A arg) {
+    return handleUnresolvedSuperSetterIndexPostfixPrefix(
+        node, indexFunction, element, index, operator, arg, isPrefix: true);
+  }
 }
 
 /// Mixin that groups the non-constant `visitXConstructorInvoke` methods by
@@ -6596,4 +6754,47 @@
     return handleConstructorInvoke(
         node, constructor, type, arguments, callStructure, arg);
   }
+
+  R visitUnresolvedConstructorInvoke(
+      NewExpression node,
+      Element constructor,
+      DartType type,
+      NodeList arguments,
+      Selector selector,
+      A arg) {
+    return handleConstructorInvoke(
+        node, constructor, type, arguments, selector.callStructure, arg);
+  }
+
+  R visitUnresolvedClassConstructorInvoke(
+      NewExpression node,
+      Element element,
+      DartType type,
+      NodeList arguments,
+      Selector selector,
+      A arg) {
+    return handleConstructorInvoke(
+        node, element, type, arguments, selector.callStructure, arg);
+  }
+
+  R visitAbstractClassConstructorInvoke(
+      NewExpression node,
+      ConstructorElement constructor,
+      InterfaceType type,
+      NodeList arguments,
+      CallStructure callStructure,
+      A arg) {
+    return handleConstructorInvoke(
+        node, constructor, type, arguments, callStructure, arg);
+  }
+  R visitUnresolvedRedirectingFactoryConstructorInvoke(
+      NewExpression node,
+      ConstructorElement constructor,
+      InterfaceType type,
+      NodeList arguments,
+      CallStructure callStructure,
+      A arg) {
+    return handleConstructorInvoke(
+        node, constructor, type, arguments, callStructure, arg);
+  }
 }
diff --git a/pkg/compiler/lib/src/resolution/send_resolver.dart b/pkg/compiler/lib/src/resolution/send_resolver.dart
index b8eeb2fe..f4bbaa5 100644
--- a/pkg/compiler/lib/src/resolution/send_resolver.dart
+++ b/pkg/compiler/lib/src/resolution/send_resolver.dart
@@ -340,11 +340,24 @@
       }
     } else if (node.isSuperCall) {
       if (Elements.isUnresolved(element)) {
-        return new StaticAccess.unresolvedSuper(element);
+        if (isCompound) {
+          if (Elements.isUnresolved(getter)) {
+            // TODO(johnniwinther): Ensure that [getter] is not null. This
+            // happens in the case of missing super getter.
+            return new CompoundAccessSemantics(
+                CompoundAccessKind.UNRESOLVED_SUPER_GETTER, getter, element);
+          } else {
+            return new CompoundAccessSemantics(
+                CompoundAccessKind.UNRESOLVED_SUPER_SETTER, getter, element);
+          }
+        } else {
+          return new StaticAccess.unresolvedSuper(element);
+        }
       } else if (isCompound && Elements.isUnresolved(getter)) {
         // TODO(johnniwinther): Ensure that [getter] is not null. This happens
         // in the case of missing super getter.
-        return new StaticAccess.unresolved(getter);
+        return new CompoundAccessSemantics(
+            CompoundAccessKind.UNRESOLVED_SUPER_GETTER, getter, element);
       } else if (element.isField) {
         if (getter != null && getter != element) {
           CompoundAccessKind accessKind;
@@ -419,8 +432,15 @@
         ConstructorElement constructor,
         DartType type) {
     if (constructor.isErroneous) {
+      if (constructor is ErroneousElement) {
+        ErroneousElement error = constructor;
+        if (error.messageKind == MessageKind.CANNOT_FIND_CONSTRUCTOR) {
+          return new ConstructorAccessSemantics(
+              ConstructorAccessKind.UNRESOLVED_CONSTRUCTOR, constructor, type);
+        }
+      }
       return new ConstructorAccessSemantics(
-          ConstructorAccessKind.ERRONEOUS, constructor, type);
+          ConstructorAccessKind.UNRESOLVED_TYPE, constructor, type);
     } else if (constructor.isRedirectingFactory) {
       ConstructorElement effectiveTarget = constructor.effectiveTarget;
       if (effectiveTarget == constructor ||
@@ -482,7 +502,7 @@
       // This is a non-constant constant constructor invocation, like
       // `const Const(method())`.
       constructorAccessSemantics = new ConstructorAccessSemantics(
-          ConstructorAccessKind.ERRONEOUS, element, type);
+          ConstructorAccessKind.NON_CONSTANT_CONSTRUCTOR, element, type);
     } else {
       constructorAccessSemantics =
           computeConstructorAccessSemantics(element, type);
@@ -753,16 +773,15 @@
       return new RequiredParameterStructure(
           definitions, node, element, index);
     } else {
-      ConstantExpression defaultValue;
-      if (element.initializer != null) {
-        defaultValue = elements.getConstant(element.initializer);
-      }
+      // TODO(johnniwinther): Should we differentiate between implicit (null)
+      // and explicit values? What about optional parameters on redirecting
+      // factories?
       if (isNamed) {
         return new NamedParameterStructure(
-            definitions, node, element, defaultValue);
+            definitions, node, element, element.constant);
       } else {
         return new OptionalParameterStructure(
-            definitions, node, element, defaultValue, index);
+            definitions, node, element, element.constant, index);
       }
     }
   }
diff --git a/pkg/compiler/lib/src/resolution/send_structure.dart b/pkg/compiler/lib/src/resolution/send_structure.dart
index 475451f..318ede8 100644
--- a/pkg/compiler/lib/src/resolution/send_structure.dart
+++ b/pkg/compiler/lib/src/resolution/send_structure.dart
@@ -1019,8 +1019,7 @@
             arg);
       case AccessKind.UNRESOLVED_SUPER:
       case AccessKind.UNRESOLVED:
-        // TODO(johnniwinther): Support these through [AccessKind.COMPOUND].
-        return visitor.errorUnresolvedSuperIndexSet(
+        return visitor.visitUnresolvedSuperIndexSet(
             node,
             semantics.element,
             node.arguments.first,
@@ -1068,15 +1067,6 @@
             node.arguments.single,
             operator,
             arg);
-      case AccessKind.UNRESOLVED_SUPER:
-      case AccessKind.UNRESOLVED:
-        // TODO(johnniwinther): Support these through [AccessKind.COMPOUND].
-        return visitor.errorUnresolvedSuperIndexPrefix(
-            node,
-            semantics.element,
-            node.arguments.single,
-            operator,
-            arg);
       case AccessKind.COMPOUND:
         CompoundAccessSemantics compoundSemantics = semantics;
         switch (compoundSemantics.compoundAccessKind) {
@@ -1088,6 +1078,21 @@
                 node.arguments.single,
                 operator,
                 arg);
+          case CompoundAccessKind.UNRESOLVED_SUPER_GETTER:
+            return visitor.visitUnresolvedSuperGetterIndexPrefix(
+                node,
+                compoundSemantics.getter,
+                node.arguments.single,
+                operator,
+                arg);
+          case CompoundAccessKind.UNRESOLVED_SUPER_SETTER:
+            return visitor.visitUnresolvedSuperSetterIndexPrefix(
+                node,
+                compoundSemantics.getter,
+                compoundSemantics.setter,
+                node.arguments.single,
+                operator,
+                arg);
           default:
             // This is not a valid case.
             break;
@@ -1133,15 +1138,6 @@
             node.arguments.single,
             operator,
             arg);
-      case AccessKind.UNRESOLVED_SUPER:
-      case AccessKind.UNRESOLVED:
-        // TODO(johnniwinther): Support these through [AccessKind.COMPOUND].
-        return visitor.errorUnresolvedSuperIndexPostfix(
-            node,
-            semantics.element,
-            node.arguments.single,
-            operator,
-            arg);
       case AccessKind.COMPOUND:
         CompoundAccessSemantics compoundSemantics = semantics;
         switch (compoundSemantics.compoundAccessKind) {
@@ -1153,6 +1149,21 @@
                 node.arguments.single,
                 operator,
                 arg);
+          case CompoundAccessKind.UNRESOLVED_SUPER_GETTER:
+            return visitor.visitUnresolvedSuperGetterIndexPostfix(
+                node,
+                compoundSemantics.getter,
+                node.arguments.single,
+                operator,
+                arg);
+          case CompoundAccessKind.UNRESOLVED_SUPER_SETTER:
+            return visitor.visitUnresolvedSuperSetterIndexPostfix(
+                node,
+                compoundSemantics.getter,
+                compoundSemantics.setter,
+                node.arguments.single,
+                operator,
+                arg);
           default:
             // This is not a valid case.
             break;
@@ -1391,6 +1402,16 @@
                 operator,
                 node.arguments.single,
                 arg);
+          case CompoundAccessKind.UNRESOLVED_SUPER_GETTER:
+          case CompoundAccessKind.UNRESOLVED_SUPER_SETTER:
+            // TODO(johnniwinther): Handle these separately.
+            return visitor.errorUnresolvedCompound(
+                node,
+                semantics.element,
+                operator,
+                node.arguments.single,
+                arg);
+            break;
         }
         break;
     }
@@ -1430,16 +1451,6 @@
             operator,
             node.arguments.tail.head,
             arg);
-      case AccessKind.UNRESOLVED_SUPER:
-      case AccessKind.UNRESOLVED:
-        // TODO(johnniwinther): Support these through [AccessKind.COMPOUND].
-        return visitor.errorUnresolvedSuperCompoundIndexSet(
-            node,
-            semantics.element,
-            node.arguments.first,
-            operator,
-            node.arguments.tail.head,
-            arg);
       case AccessKind.COMPOUND:
         CompoundAccessSemantics compoundSemantics = semantics;
         switch (compoundSemantics.compoundAccessKind) {
@@ -1452,6 +1463,23 @@
                 operator,
                 node.arguments.tail.head,
                 arg);
+          case CompoundAccessKind.UNRESOLVED_SUPER_GETTER:
+            return visitor.visitUnresolvedSuperGetterCompoundIndexSet(
+                node,
+                compoundSemantics.getter,
+                node.arguments.first,
+                operator,
+                node.arguments.tail.head,
+                arg);
+          case CompoundAccessKind.UNRESOLVED_SUPER_SETTER:
+            return visitor.visitUnresolvedSuperSetterCompoundIndexSet(
+                node,
+                compoundSemantics.getter,
+                compoundSemantics.setter,
+                node.arguments.first,
+                operator,
+                node.arguments.tail.head,
+                arg);
           default:
             // This is not a valid case.
             break;
@@ -1675,6 +1703,14 @@
                 compoundSemantics.setter,
                 operator,
                 arg);
+          case CompoundAccessKind.UNRESOLVED_SUPER_GETTER:
+          case CompoundAccessKind.UNRESOLVED_SUPER_SETTER:
+            // TODO(johnniwinther): Handle these directly.
+            return visitor.errorUnresolvedPrefix(
+                node,
+                semantics.element,
+                operator,
+                arg);
         }
     }
     throw new SpannableAssertionFailure(node,
@@ -1891,6 +1927,14 @@
                 compoundSemantics.setter,
                 operator,
                 arg);
+          case CompoundAccessKind.UNRESOLVED_SUPER_GETTER:
+          case CompoundAccessKind.UNRESOLVED_SUPER_SETTER:
+            // TODO(johnniwinther): Handle these directly.
+            return visitor.errorUnresolvedPostfix(
+                node,
+                semantics.element,
+                operator,
+                arg);
         }
     }
     throw new SpannableAssertionFailure(node,
@@ -1937,17 +1981,25 @@
             semantics.effectiveTargetSemantics.type,
             node.send.argumentsNode, callStructure, arg);
       case ConstructorAccessKind.ABSTRACT:
-        return visitor.errorAbstractClassConstructorInvoke(
+        return visitor.visitAbstractClassConstructorInvoke(
             node, semantics.element, semantics.type,
             node.send.argumentsNode, callStructure, arg);
-      case ConstructorAccessKind.ERRONEOUS:
-        return visitor.errorUnresolvedConstructorInvoke(
+      case ConstructorAccessKind.UNRESOLVED_CONSTRUCTOR:
+        return visitor.visitUnresolvedConstructorInvoke(
             node, semantics.element, semantics.type,
             node.send.argumentsNode, selector, arg);
+      case ConstructorAccessKind.UNRESOLVED_TYPE:
+        return visitor.visitUnresolvedClassConstructorInvoke(
+            node, semantics.element, semantics.type,
+            node.send.argumentsNode, selector, arg);
+      case ConstructorAccessKind.NON_CONSTANT_CONSTRUCTOR:
+        return visitor.errorNonConstantConstructorInvoke(
+            node, semantics.element, semantics.type,
+            node.send.argumentsNode, callStructure, arg);
       case ConstructorAccessKind.ERRONEOUS_REDIRECTING_FACTORY:
-        return visitor.errorUnresolvedRedirectingFactoryConstructorInvoke(
+        return visitor.visitUnresolvedRedirectingFactoryConstructorInvoke(
             node, semantics.element, semantics.type,
-            node.send.argumentsNode, selector, arg);
+            node.send.argumentsNode, callStructure, arg);
     }
     throw new SpannableAssertionFailure(node,
         "Unhandled constructor invocation kind: ${semantics.kind}");
diff --git a/pkg/compiler/lib/src/scanner/class_element_parser.dart b/pkg/compiler/lib/src/scanner/class_element_parser.dart
index 9bf1523..0f49ad2 100644
--- a/pkg/compiler/lib/src/scanner/class_element_parser.dart
+++ b/pkg/compiler/lib/src/scanner/class_element_parser.dart
@@ -166,15 +166,9 @@
           method.modifiers,
           enclosingClass);
     } else {
-      ElementKind kind = ElementKind.FUNCTION;
-      if (getOrSet != null) {
-        kind = (identical(getOrSet.stringValue, 'get'))
-               ? ElementKind.GETTER : ElementKind.SETTER;
-      }
-      memberElement =
-          new PartialFunctionElement(name, beginToken, getOrSet, endToken,
-                                     kind, method.modifiers, enclosingClass,
-                                     !method.hasBody());
+      memberElement = new PartialFunctionElement(
+          name, beginToken, getOrSet, endToken,
+          method.modifiers, enclosingClass, hasBody: method.hasBody());
     }
     addMember(memberElement);
   }
@@ -228,14 +222,14 @@
     pushNode(null);
   }
 
-  void addMetadata(Element memberElement) {
+  void addMetadata(ElementX memberElement) {
     for (Link link = metadata; !link.isEmpty; link = link.tail) {
       memberElement.addMetadata(link.head);
     }
     metadata = const Link<MetadataAnnotation>();
   }
 
-  void addMember(Element memberElement) {
+  void addMember(ElementX memberElement) {
     addMetadata(memberElement);
     enclosingClass.addMember(memberElement, listener);
   }
diff --git a/pkg/compiler/lib/src/scanner/listener.dart b/pkg/compiler/lib/src/scanner/listener.dart
index 568577a..4add7ec 100644
--- a/pkg/compiler/lib/src/scanner/listener.dart
+++ b/pkg/compiler/lib/src/scanner/listener.dart
@@ -786,7 +786,7 @@
 class ElementListener extends Listener {
   final IdGenerator idGenerator;
   final DiagnosticListener listener;
-  final CompilationUnitElement compilationUnitElement;
+  final CompilationUnitElementX compilationUnitElement;
   final StringValidator stringValidator;
   Link<StringQuoting> interpolationScope;
 
@@ -1011,17 +1011,9 @@
     Identifier name = popNode();
     TypeAnnotation type = popNode();
     Modifiers modifiers = popNode();
-    ElementKind kind;
-    if (getOrSet == null) {
-      kind = ElementKind.FUNCTION;
-    } else if (identical(getOrSet.stringValue, 'get')) {
-      kind = ElementKind.GETTER;
-    } else if (identical(getOrSet.stringValue, 'set')) {
-      kind = ElementKind.SETTER;
-    }
     PartialFunctionElement element = new PartialFunctionElement(
-        name.source, beginToken, getOrSet, endToken, kind, modifiers,
-        compilationUnitElement, false);
+        name.source, beginToken, getOrSet, endToken,
+        modifiers, compilationUnitElement);
     element.hasParseError = hasParseError;
     pushElement(element);
   }
@@ -1327,7 +1319,7 @@
     compilationUnitElement.addMember(element, listener);
   }
 
-  Link<MetadataAnnotation> popMetadata(Element element) {
+  Link<MetadataAnnotation> popMetadata(ElementX element) {
     var result = const Link<MetadataAnnotation>();
     for (Link link = metadata; !link.isEmpty; link = link.tail) {
       element.addMetadata(link.head);
@@ -1346,7 +1338,9 @@
     if (!allowLibraryTags()) {
       recoverableError(tag, 'Library tags not allowed here.');
     }
-    compilationUnitElement.implementationLibrary.addTag(tag, listener);
+    LibraryElementX implementationLibrary =
+        compilationUnitElement.implementationLibrary;
+    implementationLibrary.addTag(tag, listener);
   }
 
   void pushNode(Node node) {
@@ -1563,17 +1557,10 @@
     Identifier name = popNode();
     TypeAnnotation type = popNode();
     Modifiers modifiers = popNode();
-    ElementKind kind;
-    if (getOrSet == null) {
-      kind = ElementKind.FUNCTION;
-    } else if (identical(getOrSet.stringValue, 'get')) {
-      kind = ElementKind.GETTER;
-    } else if (identical(getOrSet.stringValue, 'set')) {
-      kind = ElementKind.SETTER;
-    }
-    pushElement(new PartialFunctionElement(name.source, beginToken, getOrSet,
-                                           endToken, kind, modifiers,
-                                           compilationUnitElement, false));
+    PartialFunctionElement element = new PartialFunctionElement(
+        name.source, beginToken, getOrSet, endToken,
+        modifiers, compilationUnitElement);
+    pushElement(element);
   }
 
   void endFormalParameter(Token thisKeyword) {
@@ -2282,7 +2269,7 @@
   DeclarationSite get declarationSite => this;
 }
 
-abstract class PartialFunctionMixin implements FunctionElement {
+abstract class PartialFunctionMixin implements BaseFunctionElementX {
   FunctionExpression cachedNode;
   Modifiers get modifiers;
   Token beginToken;
@@ -2336,18 +2323,48 @@
   DeclarationSite get declarationSite;
 }
 
-class PartialFunctionElement extends FunctionElementX
-    with PartialElement, PartialFunctionMixin {
-  PartialFunctionElement(String name,
-                         Token beginToken,
-                         Token getOrSet,
-                         Token endToken,
-                         ElementKind kind,
-                         Modifiers modifiers,
-                         Element enclosing,
-                         bool hasNoBody)
-      : super(name, kind, modifiers, enclosing, hasNoBody) {
-    init(beginToken, getOrSet, endToken);
+abstract class PartialFunctionElement
+    implements PartialElement, PartialFunctionMixin {
+
+  factory PartialFunctionElement(
+      String name,
+      Token beginToken,
+      Token getOrSet,
+      Token endToken,
+      Modifiers modifiers,
+      Element enclosingElement,
+      {bool hasBody: true}) {
+    if (getOrSet == null) {
+      return new PartialMethodElement(
+          name, beginToken, endToken, modifiers,
+          enclosingElement, hasBody: hasBody);
+    } else if (identical(getOrSet.stringValue, 'get')) {
+      return new PartialGetterElement(
+          name, beginToken, getOrSet, endToken, modifiers,
+          enclosingElement, hasBody: hasBody);
+    } else {
+      assert(identical(getOrSet.stringValue, 'set'));
+      return new PartialSetterElement(
+          name, beginToken, getOrSet, endToken, modifiers,
+          enclosingElement, hasBody: hasBody);
+    }
+  }
+
+  PartialFunctionElement copyWithEnclosing(Element enclosing);
+}
+
+
+class PartialMethodElement extends MethodElementX
+    with PartialElement, PartialFunctionMixin
+    implements PartialFunctionElement {
+  PartialMethodElement(String name,
+                       Token beginToken,
+                       Token endToken,
+                       Modifiers modifiers,
+                       Element enclosing,
+                       {bool hasBody: true})
+      : super(name, ElementKind.FUNCTION, modifiers, enclosing, hasBody) {
+    init(beginToken, null, endToken);
   }
 
   void reuseElement() {
@@ -2355,10 +2372,67 @@
     reusePartialFunctionMixin();
   }
 
-  PartialFunctionElement copyWithEnclosing(Element enclosing) {
-    return new PartialFunctionElement(
-        name, beginToken, getOrSet, endToken, kind, modifiers, enclosing,
-        hasNoBody);
+  PartialMethodElement copyWithEnclosing(Element enclosing) {
+    return new PartialMethodElement(
+        name, beginToken, endToken, modifiers, enclosing, hasBody: hasBody);
+  }
+}
+
+class PartialGetterElement extends GetterElementX
+    with PartialElement, PartialFunctionMixin
+    implements GetterElement, PartialFunctionElement  {
+  PartialGetterElement(String name,
+                       Token beginToken,
+                       Token getToken,
+                       Token endToken,
+                       Modifiers modifiers,
+                       Element enclosing,
+                       {bool hasBody: true})
+      : super(name, modifiers, enclosing, hasBody) {
+    init(beginToken, getToken, endToken);
+  }
+
+  @override
+  SetterElement get setter => abstractField.setter;
+
+  void reuseElement() {
+    super.reuseElement();
+    reusePartialFunctionMixin();
+  }
+
+  PartialGetterElement copyWithEnclosing(Element enclosing) {
+    return new PartialGetterElement(
+        name, beginToken, getOrSet, endToken, modifiers, enclosing,
+        hasBody: hasBody);
+  }
+}
+
+class PartialSetterElement extends SetterElementX
+    with PartialElement, PartialFunctionMixin
+    implements SetterElement, PartialFunctionElement {
+  PartialSetterElement(String name,
+                       Token beginToken,
+                       Token setToken,
+                       Token endToken,
+                       Modifiers modifiers,
+                       Element enclosing,
+                       {bool hasBody: true})
+      : super(name, modifiers, enclosing, hasBody) {
+    init(beginToken, setToken, endToken);
+  }
+
+  @override
+  GetterElement get getter => abstractField.getter;
+
+  void reuseElement() {
+    super.reuseElement();
+    reusePartialFunctionMixin();
+  }
+
+  PartialSetterElement copyWithEnclosing(Element enclosing) {
+    return new PartialSetterElement(
+        name, beginToken, getOrSet, endToken, modifiers, enclosing,
+        hasBody: hasBody);
   }
 }
 
@@ -2506,7 +2580,7 @@
 
 Node parse(
     DiagnosticListener diagnosticListener,
-    Element element,
+    ElementX element,
     PartialElement partial,
     doParse(Parser parser)) {
   CompilationUnitElement unit = element.compilationUnit;
diff --git a/pkg/compiler/lib/src/scanner/scannerlib.dart b/pkg/compiler/lib/src/scanner/scannerlib.dart
index 7543bb5..7b6ebb7 100644
--- a/pkg/compiler/lib/src/scanner/scannerlib.dart
+++ b/pkg/compiler/lib/src/scanner/scannerlib.dart
@@ -10,6 +10,7 @@
 import '../elements/elements.dart';
 
 import '../elements/modelx.dart' show
+    BaseFunctionElementX,
     ClassElementX,
     CompilationUnitElementX,
     ConstructorElementX,
@@ -17,9 +18,12 @@
     ElementX,
     EnumClassElementX,
     FieldElementX,
-    FunctionElementX,
+    GetterElementX,
+    MethodElementX,
+    LibraryElementX,
     MetadataAnnotationX,
     MixinApplicationElementX,
+    SetterElementX,
     TypedefElementX,
     VariableElementX,
     VariableList;
diff --git a/pkg/compiler/lib/src/ssa/builder.dart b/pkg/compiler/lib/src/ssa/builder.dart
index e4b5c8b..2dca503 100644
--- a/pkg/compiler/lib/src/ssa/builder.dart
+++ b/pkg/compiler/lib/src/ssa/builder.dart
@@ -201,11 +201,33 @@
   /// variables are in scope.
   ClassElement get contextClass => executableContext.contextClass;
 
+  /// The type of the current instance, if concrete.
+  ///
+  /// This allows for handling fixed type argument in case of inlining. For
+  /// instance, checking `'foo'` against `String` instead of `T` in `main`:
+  ///
+  ///     class Foo<T> {
+  ///       T field;
+  ///       Foo(this.field);
+  ///     }
+  ///     main() {
+  ///       new Foo<String>('foo');
+  ///     }
+  ///
+  /// [instanceType] is not used if it contains type variables, since these
+  /// might not be in scope or from the current instance.
+  ///
+  final InterfaceType instanceType;
+
   SourceInformationBuilder get sourceInformationBuilder {
     return builder.sourceInformationBuilder;
   }
 
-  LocalsHandler(this.builder, this.executableContext);
+  LocalsHandler(this.builder, this.executableContext,
+                InterfaceType instanceType)
+      : this.instanceType =
+          instanceType == null || instanceType.containsTypeVariables
+              ? null : instanceType;
 
   /// Substituted type variables occurring in [type] into the context of
   /// [contextClass].
@@ -217,6 +239,9 @@
             contextClass.asInstanceOf(typeContext));
       }
     }
+    if (instanceType != null) {
+      type = type.substByContext(instanceType);
+    }
     return type;
   }
 
@@ -231,6 +256,7 @@
       : directLocals = new Map<Local, HInstruction>.from(other.directLocals),
         redirectionMapping = other.redirectionMapping,
         executableContext = other.executableContext,
+        instanceType = other.instanceType,
         builder = other.builder,
         closureData = other.closureData;
 
@@ -1094,7 +1120,7 @@
       this.work = work,
       this.rti = backend.rti,
       super(work.resolutionTree) {
-    localsHandler = new LocalsHandler(this, work.element);
+    localsHandler = new LocalsHandler(this, work.element, null);
     sourceElementStack.add(work.element);
     sourceInformationBuilder =
         sourceInformationFactory.forContext(work.element.implementation);
@@ -1272,7 +1298,8 @@
   bool tryInlineMethod(Element element,
                        Selector selector,
                        List<HInstruction> providedArguments,
-                       ast.Node currentNode) {
+                       ast.Node currentNode,
+                       {InterfaceType instanceType}) {
     // TODO(johnniwinther): Register this on the [registry]. Currently the
     // [CodegenRegistry] calls the enqueuer, but [element] should _not_ be
     // enqueued.
@@ -1293,12 +1320,6 @@
     if (cachedCanBeInlined == false) return false;
 
     bool meetsHardConstraints() {
-      // Don't inline from one output unit to another. If something is deferred
-      // it is to save space in the loading code.
-      if (!compiler.deferredLoadTask
-          .inSameOutputUnit(element,compiler.currentElement)) {
-        return false;
-      }
       if (compiler.disableInlining) return false;
 
       assert(selector != null
@@ -1348,12 +1369,18 @@
         return InlineWeeder.canBeInlined(function, -1, false);
       }
       // TODO(sra): Measure if inlining would 'reduce' the size.  One desirable
-      // case we miss my doing nothing is inlining very simple constructors
+      // case we miss by doing nothing is inlining very simple constructors
       // where all fields are initialized with values from the arguments at this
       // call site.  The code is slightly larger (`new Foo(1)` vs `Foo$(1)`) but
       // that usually means the factory constructor is left unused and not
       // emitted.
-      return false;
+      // We at least inline bodies that are empty (and thus have a size of 1).
+      return InlineWeeder.canBeInlined(function, 1, true);
+    }
+
+    bool doesNotContainCode() {
+      // A function with size 1 does not contain any code.
+      return InlineWeeder.canBeInlined(function, 1, true);
     }
 
     bool heuristicSayGoodToGo() {
@@ -1364,6 +1391,16 @@
 
       if (element.isSynthesized) return true;
 
+      // Don't inline across deferred import to prevent leaking code. The only
+      // exception is an empty function (which does not contain code).
+      bool hasOnlyNonDeferredImportPaths = compiler.deferredLoadTask
+          .hasOnlyNonDeferredImportPaths(compiler.currentElement, element);
+
+      if (!hasOnlyNonDeferredImportPaths) {
+        return doesNotContainCode();
+      }
+
+      // Do not inline code that is rarely executed unless it reduces size.
       if (inExpressionOfThrow || inLazyInitializerExpression) {
         return reductiveHeuristic();
       }
@@ -1418,7 +1455,8 @@
       }
       List<HInstruction> compiledArguments = completeSendArgumentsList(
           function, selector, providedArguments, currentNode);
-      enterInlinedMethod(function, currentNode, compiledArguments);
+      enterInlinedMethod(
+          function, currentNode, compiledArguments, instanceType: instanceType);
       inlinedFrom(function, () {
         if (!isReachable) {
           emitReturn(graph.addConstantNull(compiler), null);
@@ -1681,8 +1719,9 @@
    * stores it in the [returnLocal] field.
    */
   void setupStateForInlining(FunctionElement function,
-                             List<HInstruction> compiledArguments) {
-    localsHandler = new LocalsHandler(this, function);
+                             List<HInstruction> compiledArguments,
+                             {InterfaceType instanceType}) {
+    localsHandler = new LocalsHandler(this, function, instanceType);
     localsHandler.closureData =
         compiler.closureToClassMapper.computeClosureToClassMapping(
             function, function.node, elements);
@@ -3217,22 +3256,27 @@
     pushInvokeDynamic(send, selector, [receiver]);
   }
 
+  /// Inserts a call to checkDeferredIsLoaded for [prefixElement].
+  /// If [prefixElement] is [null] ndo nothing.
+  void generateIsDeferredLoadedCheckIfNeeded(PrefixElement prefixElement,
+                                             ast.Node location) {
+    if (prefixElement == null) return;
+    String loadId =
+        compiler.deferredLoadTask.importDeferName[prefixElement.deferredImport];
+    HInstruction loadIdConstant = addConstantString(loadId);
+    String uri = prefixElement.deferredImport.uri.dartString.slowToString();
+    HInstruction uriConstant = addConstantString(uri);
+    Element helper = backend.getCheckDeferredIsLoaded();
+    pushInvokeStatic(location, helper, [loadIdConstant, uriConstant]);
+    pop();
+  }
+
   /// Inserts a call to checkDeferredIsLoaded if the send has a prefix that
   /// resolves to a deferred library.
-  void generateIsDeferredLoadedCheckIfNeeded(ast.Send node) {
-    DeferredLoadTask deferredTask = compiler.deferredLoadTask;
-    PrefixElement prefixElement =
-         deferredTask.deferredPrefixElement(node, elements);
-    if (prefixElement != null) {
-      String loadId =
-          deferredTask.importDeferName[prefixElement.deferredImport];
-      HInstruction loadIdConstant = addConstantString(loadId);
-      String uri = prefixElement.deferredImport.uri.dartString.slowToString();
-      HInstruction uriConstant = addConstantString(uri);
-      Element helper = backend.getCheckDeferredIsLoaded();
-      pushInvokeStatic(node, helper, [loadIdConstant, uriConstant]);
-      pop();
-    }
+  void generateIsDeferredLoadedCheckOfSend(ast.Send node) {
+    generateIsDeferredLoadedCheckIfNeeded(
+        compiler.deferredLoadTask.deferredPrefixElement(node, elements),
+        node);
   }
 
   /// Generate read access of an unresolved static or top level entity.
@@ -3284,7 +3328,7 @@
 
   /// Read a static or top level [field].
   void generateStaticFieldGet(ast.Send node, FieldElement field) {
-    generateIsDeferredLoadedCheckIfNeeded(node);
+    generateIsDeferredLoadedCheckOfSend(node);
 
     ConstantExpression constant =
         backend.constants.getConstantForVariable(field);
@@ -3314,7 +3358,7 @@
     if (getter.isDeferredLoaderGetter) {
       generateDeferredLoaderGet(node, getter);
     } else {
-      generateIsDeferredLoadedCheckIfNeeded(node);
+      generateIsDeferredLoadedCheckOfSend(node);
       pushInvokeStatic(node, getter, <HInstruction>[]);
     }
   }
@@ -3328,7 +3372,7 @@
 
   /// Generate a closurization of the static or top level [function].
   void generateStaticFunctionGet(ast.Send node, MethodElement function) {
-    generateIsDeferredLoadedCheckIfNeeded(node);
+    generateIsDeferredLoadedCheckOfSend(node);
     // TODO(5346): Try to avoid the need for calling [declaration] before
     // creating an [HStatic].
     push(new HStatic(function.declaration, backend.nonNullType));
@@ -3574,7 +3618,7 @@
       HInstruction runtimeType = addTypeVariableReference(type);
       Element helper = backend.getCheckSubtypeOfRuntimeType();
       List<HInstruction> inputs = <HInstruction>[expression, runtimeType];
-      pushInvokeStatic(null, helper, inputs, backend.boolType);
+      pushInvokeStatic(null, helper, inputs, typeMask: backend.boolType);
       HInstruction call = pop();
       return new HIs.variable(type, expression, call, backend.boolType);
     } else if (RuntimeTypes.hasTypeArguments(type)) {
@@ -3592,7 +3636,7 @@
                                                  isFieldName,
                                                  representations,
                                                  asFieldName];
-      pushInvokeStatic(node, helper, inputs, backend.boolType);
+      pushInvokeStatic(node, helper, inputs, typeMask: backend.boolType);
       HInstruction call = pop();
       return new HIs.compound(type, expression, call, backend.boolType);
     } else if (type.isMalformed) {
@@ -3827,7 +3871,7 @@
         compiler.internalError(node,
             'Isolate library and compiler mismatch.');
       }
-      pushInvokeStatic(null, element, [], backend.dynamicType);
+      pushInvokeStatic(null, element, [], typeMask: backend.dynamicType);
     }
   }
 
@@ -4038,7 +4082,7 @@
       }
       List<HInstruction> inputs = <HInstruction>[];
       addGenericSendArgumentsToList(link, inputs);
-      pushInvokeStatic(node, element, inputs, backend.dynamicType);
+      pushInvokeStatic(node, element, inputs, typeMask: backend.dynamicType);
     }
   }
 
@@ -4121,9 +4165,6 @@
       handleForeignRawFunctionRef(node, 'RAW_DART_FUNCTION_REF');
     } else if (name == 'JS_SET_CURRENT_ISOLATE') {
       handleForeignSetCurrentIsolate(node);
-    } else if (name == 'JS_OPERATOR_IS_PREFIX') {
-      // TODO(floitsch): this should be a JS_NAME.
-      stack.add(addConstantString(backend.namer.operatorIsPrefix));
     } else if (name == 'JS_OBJECT_CLASS_NAME') {
       // TODO(floitsch): this should be a JS_NAME.
       String name = backend.namer.runtimeTypeName(compiler.objectClass);
@@ -4248,7 +4289,7 @@
                       graph.addConstant(kindConstant, compiler),
                       argumentsInstruction,
                       argumentNamesInstruction],
-                      backend.dynamicType);
+                      typeMask: backend.dynamicType);
 
     var inputs = <HInstruction>[pop()];
     push(buildInvokeSuper(compiler.noSuchMethodSelector, element, inputs));
@@ -4498,11 +4539,11 @@
       pushInvokeStatic(null,
                        backend.getGetRuntimeTypeArgument(),
                        [target, substitutionName, index],
-                        backend.dynamicType);
+                       typeMask: backend.dynamicType);
     } else {
       pushInvokeStatic(null, backend.getGetTypeArgumentByIndex(),
           [target, index],
-          backend.dynamicType);
+          typeMask: backend.dynamicType);
     }
     return pop();
   }
@@ -4631,7 +4672,7 @@
         null,
         typeInfoSetterElement,
         <HInstruction>[newObject, typeInfo],
-        backend.dynamicType);
+        typeMask: backend.dynamicType);
 
     // The new object will now be referenced through the
     // `setRuntimeTypeInfo` call. We therefore set the type of that
@@ -4643,7 +4684,7 @@
 
   handleNewSend(ast.NewExpression node) {
     ast.Send send = node.send;
-    generateIsDeferredLoadedCheckIfNeeded(send);
+    generateIsDeferredLoadedCheckOfSend(send);
 
     bool isFixedList = false;
     bool isFixedListConstructorCall =
@@ -4708,6 +4749,19 @@
     }
 
     bool isRedirected = constructorDeclaration.isRedirectingFactory;
+    if (!constructorDeclaration.isCyclicRedirection) {
+      // Insert a check for every deferred redirection on the path to the
+      // final target.
+      ConstructorElement target = constructorDeclaration;
+      while (target.isRedirectingFactory) {
+        if (constructorDeclaration.redirectionDeferredPrefix != null) {
+          generateIsDeferredLoadedCheckIfNeeded(
+              target.redirectionDeferredPrefix,
+              node);
+        }
+        target = target.immediateRedirectionTarget;
+      }
+    }
     InterfaceType type = elements.getType(node);
     InterfaceType expectedType =
         constructorDeclaration.computeEffectiveTargetType(type);
@@ -4781,7 +4835,8 @@
       potentiallyAddTypeArguments(inputs, cls, expectedType);
 
       addInlinedInstantiation(expectedType);
-      pushInvokeStatic(node, constructor, inputs, elementType);
+      pushInvokeStatic(node, constructor, inputs,
+          typeMask: elementType, instanceType: expectedType);
       removeInlinedInstantiation(expectedType);
     }
     HInstruction newInstance = stack.last;
@@ -4901,7 +4956,7 @@
       ast.Send node,
       FunctionElement function,
       CallStructure callStructure) {
-    generateIsDeferredLoadedCheckIfNeeded(node);
+    generateIsDeferredLoadedCheckOfSend(node);
 
     List<HInstruction> inputs = makeStaticArgumentList(
         callStructure,
@@ -5116,7 +5171,7 @@
 
   /// Generate the constant value for a constant type literal.
   void generateConstantTypeLiteral(ast.Send node) {
-    generateIsDeferredLoadedCheckIfNeeded(node);
+    generateIsDeferredLoadedCheckOfSend(node);
     // TODO(karlklose): add type representation
     if (node.isCall) {
       // The node itself is not a constant but we register the selector (the
@@ -5135,7 +5190,7 @@
     pushInvokeStatic(node,
                      backend.getRuntimeTypeToString(),
                      [value],
-                     backend.stringType);
+                     typeMask: backend.stringType);
     pushInvokeStatic(node,
                      backend.getCreateRuntimeType(),
                      [pop()]);
@@ -5364,19 +5419,23 @@
   void pushInvokeStatic(ast.Node location,
                         Element element,
                         List<HInstruction> arguments,
-                        [TypeMask type]) {
-    if (tryInlineMethod(element, null, arguments, location)) {
+                        {TypeMask typeMask,
+                         InterfaceType instanceType}) {
+    if (tryInlineMethod(element, null, arguments, location,
+                        instanceType: instanceType)) {
       return;
     }
 
-    if (type == null) {
-      type = TypeMaskFactory.inferredReturnTypeForElement(element, compiler);
+    if (typeMask == null) {
+      typeMask =
+          TypeMaskFactory.inferredReturnTypeForElement(element, compiler);
     }
     bool targetCanThrow = !compiler.world.getCannotThrow(element);
     // TODO(5346): Try to avoid the need for calling [declaration] before
     // creating an [HInvokeStatic].
     HInvokeStatic instruction = new HInvokeStatic(
-        element.declaration, arguments, type, targetCanThrow: targetCanThrow);
+        element.declaration, arguments, typeMask,
+        targetCanThrow: targetCanThrow);
     if (!currentInlinedInstantiations.isEmpty) {
       instruction.instantiatedTypes = new List<DartType>.from(
           currentInlinedInstantiations);
@@ -5440,7 +5499,7 @@
 
   @override
   handleSendSet(ast.SendSet node) {
-    generateIsDeferredLoadedCheckIfNeeded(node);
+    generateIsDeferredLoadedCheckOfSend(node);
     Element element = elements[node];
     if (!Elements.isUnresolved(element) && element.impliesType) {
       ast.Identifier selector = node.selector;
@@ -6304,7 +6363,8 @@
         mapType.intersection(returnTypeMask, compiler.world);
 
     addInlinedInstantiation(expectedType);
-    pushInvokeStatic(node, constructor, inputs, instructionType);
+    pushInvokeStatic(node, constructor, inputs,
+        typeMask: instructionType, instanceType: expectedType);
     removeInlinedInstantiation(expectedType);
   }
 
@@ -6996,7 +7056,8 @@
    */
   void enterInlinedMethod(FunctionElement function,
                           ast.Node _,
-                          List<HInstruction> compiledArguments) {
+                          List<HInstruction> compiledArguments,
+                          {InterfaceType instanceType}) {
     TypesInferrer inferrer = compiler.typesTask.typesInferrer;
     AstInliningState state = new AstInliningState(
         function, returnLocal, returnType, elements, stack, localsHandler,
@@ -7007,7 +7068,8 @@
     // Setting up the state of the (AST) builder is performed even when the
     // inlined function is in IR, because the irInliner uses the [returnElement]
     // of the AST builder.
-    setupStateForInlining(function, compiledArguments);
+    setupStateForInlining(
+        function, compiledArguments, instanceType: instanceType);
   }
 
   void leaveInlinedMethod() {
diff --git a/pkg/compiler/lib/src/ssa/codegen.dart b/pkg/compiler/lib/src/ssa/codegen.dart
index 75bab2a..cd772ef 100644
--- a/pkg/compiler/lib/src/ssa/codegen.dart
+++ b/pkg/compiler/lib/src/ssa/codegen.dart
@@ -2332,6 +2332,13 @@
         checkFixedArray(input);
       }
       return;
+    } else if (element == backend.jsUnmodifiableArrayClass) {
+      if (negative) {
+        checkMutableArray(input);
+      } else {
+        checkImmutableArray(input);
+      }
+      return;
     }
     if (interceptor != null) {
       checkTypeViaProperty(interceptor, type, negative);
diff --git a/pkg/compiler/lib/src/ssa/nodes.dart b/pkg/compiler/lib/src/ssa/nodes.dart
index e642ede..5750445 100644
--- a/pkg/compiler/lib/src/ssa/nodes.dart
+++ b/pkg/compiler/lib/src/ssa/nodes.dart
@@ -900,7 +900,9 @@
     JavaScriptBackend backend = compiler.backend;
     return instructionType.contains(backend.jsArrayClass, classWorld)
         || instructionType.contains(backend.jsFixedArrayClass, classWorld)
-        || instructionType.contains(backend.jsExtendableArrayClass, classWorld);
+        || instructionType.contains(backend.jsExtendableArrayClass, classWorld)
+        || instructionType.contains(
+            backend.jsUnmodifiableArrayClass, classWorld);
   }
 
   bool isIndexablePrimitive(Compiler compiler) {
@@ -912,7 +914,9 @@
 
   bool isFixedArray(Compiler compiler) {
     JavaScriptBackend backend = compiler.backend;
-    return instructionType.containsOnly(backend.jsFixedArrayClass);
+    // TODO(sra): Recognize the union of these types as well.
+    return instructionType.containsOnly(backend.jsFixedArrayClass)
+        || instructionType.containsOnly(backend.jsUnmodifiableArrayClass);
   }
 
   bool isExtendableArray(Compiler compiler) {
diff --git a/pkg/compiler/lib/src/ssa/optimize.dart b/pkg/compiler/lib/src/ssa/optimize.dart
index 752019a..1529104 100644
--- a/pkg/compiler/lib/src/ssa/optimize.dart
+++ b/pkg/compiler/lib/src/ssa/optimize.dart
@@ -99,15 +99,22 @@
   }
 }
 
+/// Returns `true` if [mask] represents only types that have a length that
+/// cannot change.  The current implementation is conservative for the purpose
+/// of identifying gvn-able lengths and mis-identifies some unions of fixed
+/// length indexables (see TODO) as not fixed length.
 bool isFixedLength(mask, Compiler compiler) {
   ClassWorld classWorld = compiler.world;
   JavaScriptBackend backend = compiler.backend;
   if (mask.isContainer && mask.length != null) {
     // A container on which we have inferred the length.
     return true;
-  } else if (mask.containsOnly(backend.jsFixedArrayClass)
-             || mask.containsOnlyString(classWorld)
-             || backend.isTypedArray(mask)) {
+  }
+  // TODO(sra): Recognize any combination of fixed length indexables.
+  if (mask.containsOnly(backend.jsFixedArrayClass) ||
+      mask.containsOnly(backend.jsUnmodifiableArrayClass) ||
+      mask.containsOnlyString(classWorld) ||
+      backend.isTypedArray(mask)) {
     return true;
   }
   return false;
diff --git a/pkg/compiler/lib/src/tree_ir/optimization/pull_into_initializers.dart b/pkg/compiler/lib/src/tree_ir/optimization/pull_into_initializers.dart
index a45b9f2..2a679cf 100644
--- a/pkg/compiler/lib/src/tree_ir/optimization/pull_into_initializers.dart
+++ b/pkg/compiler/lib/src/tree_ir/optimization/pull_into_initializers.dart
@@ -314,4 +314,9 @@
   Expression visitVariableUse(VariableUse node) {
     return node;
   }
+
+  Expression visitCreateInvocationMirror(CreateInvocationMirror node) {
+    rewriteList(node.arguments);
+    return node;
+  }
 }
diff --git a/pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart b/pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart
index 766d825..3bef3f0 100644
--- a/pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart
+++ b/pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart
@@ -270,6 +270,7 @@
     return exp is Constant ||
            exp is This ||
            exp is ReifyTypeVar ||
+           exp is CreateInvocationMirror ||
            exp is InvokeStatic && exp.isEffectivelyConstant ||
            exp is VariableUse && constantEnvironment.containsKey(exp.variable);
   }
@@ -613,7 +614,6 @@
     return node;
   }
 
-  @override
   Expression visitTypeExpression(TypeExpression node) {
     for (int i = node.arguments.length - 1; i >= 0; --i) {
       node.arguments[i] = visitExpression(node.arguments[i]);
@@ -621,6 +621,13 @@
     return node;
   }
 
+  Expression visitCreateInvocationMirror(CreateInvocationMirror node) {
+    for (int i = node.arguments.length - 1; i >= 0; --i) {
+      node.arguments[i] = visitExpression(node.arguments[i]);
+    }
+    return node;
+  }
+
   /// If [s] and [t] are similar statements we extract their subexpressions
   /// and returns a new statement of the same type using expressions combined
   /// with the [combine] callback. For example:
diff --git a/pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart b/pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart
index 5a61847..127ae91 100644
--- a/pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart
+++ b/pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart
@@ -329,6 +329,9 @@
   visitCreateInstance(cps_ir.CreateInstance node) => unexpectedNode(node);
   visitGetField(cps_ir.GetField node) => unexpectedNode(node);
   visitCreateBox(cps_ir.CreateBox node) => unexpectedNode(node);
+  visitCreateInvocationMirror(cps_ir.CreateInvocationMirror node) {
+    return unexpectedNode(node);
+  }
 
   // Executable definitions are not visited directly.  They have 'build'
   // functions as entry points.
diff --git a/pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart b/pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart
index 5c86d83..432c6c7 100644
--- a/pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart
+++ b/pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart
@@ -902,6 +902,21 @@
   }
 }
 
+class CreateInvocationMirror extends Expression implements JsSpecificNode {
+  final Selector selector;
+  final List<Expression> arguments;
+
+  CreateInvocationMirror(this.selector, this.arguments);
+
+  accept(ExpressionVisitor visitor) {
+    return visitor.visitCreateInvocationMirror(this);
+  }
+
+  accept1(ExpressionVisitor1 visitor, arg) {
+    return visitor.visitCreateInvocationMirror(this, arg);
+  }
+}
+
 /// Denotes the internal representation of [dartType], where all type variables
 /// are replaced by the values in [arguments].
 /// (See documentation on the TypeExpression CPS node for more details.)
@@ -946,6 +961,7 @@
   E visitReadTypeVariable(ReadTypeVariable node);
   E visitTypeExpression(TypeExpression node);
   E visitSetField(SetField node);
+  E visitCreateInvocationMirror(CreateInvocationMirror node);
 }
 
 abstract class ExpressionVisitor1<E, A> {
@@ -974,6 +990,7 @@
   E visitReadTypeVariable(ReadTypeVariable node, A arg);
   E visitTypeExpression(TypeExpression node, A arg);
   E visitSetField(SetField node, A arg);
+  E visitCreateInvocationMirror(CreateInvocationMirror node, A arg);
 }
 
 abstract class StatementVisitor<S> {
@@ -1199,6 +1216,10 @@
   visitTypeExpression(TypeExpression node) {
     node.arguments.forEach(visitExpression);
   }
+
+  visitCreateInvocationMirror(CreateInvocationMirror node) {
+    node.arguments.forEach(visitExpression);
+  }
 }
 
 abstract class Transformer implements ExpressionVisitor<Expression>,
@@ -1395,4 +1416,9 @@
     _replaceExpressions(node.arguments);
     return node;
   }
+
+  visitCreateInvocationMirror(CreateInvocationMirror node) {
+    _replaceExpressions(node.arguments);
+    return node;
+  }
 }
diff --git a/pkg/compiler/lib/src/tree_ir/tree_ir_tracer.dart b/pkg/compiler/lib/src/tree_ir/tree_ir_tracer.dart
index 703885e..3a17fc9 100644
--- a/pkg/compiler/lib/src/tree_ir/tree_ir_tracer.dart
+++ b/pkg/compiler/lib/src/tree_ir/tree_ir_tracer.dart
@@ -360,17 +360,7 @@
   }
 
   String formatArguments(Invoke node) {
-    List<String> args = new List<String>();
-    int positionalArgumentCount = node.selector.positionalArgumentCount;
-    for (int i = 0; i < positionalArgumentCount; ++i) {
-      args.add(node.arguments[i].accept(this));
-    }
-    for (int i = 0; i < node.selector.namedArgumentCount; ++i) {
-      String name = node.selector.namedArguments[i];
-      String arg = node.arguments[positionalArgumentCount + i].accept(this);
-      args.add("$name: $arg");
-    }
-    return args.join(', ');
+    return node.arguments.map(visitExpression).join(', ');
   }
 
   String visitInvokeStatic(InvokeStatic node) {
@@ -535,6 +525,12 @@
   String visitTypeExpression(TypeExpression node) {
     return node.dartType.toString();
   }
+
+  @override
+  String visitCreateInvocationMirror(CreateInvocationMirror node) {
+    String args = node.arguments.map(visitExpression).join(', ');
+    return 'CreateInvocationMirror(${node.selector.name}, $args)';
+  }
 }
 
 /**
diff --git a/pkg/compiler/lib/src/use_unused_api.dart b/pkg/compiler/lib/src/use_unused_api.dart
index dd54759..34e5f04 100644
--- a/pkg/compiler/lib/src/use_unused_api.dart
+++ b/pkg/compiler/lib/src/use_unused_api.dart
@@ -12,6 +12,7 @@
 
 import 'colors.dart' as colors;
 import 'constants/constant_system.dart' as constants;
+import 'constants/expressions.dart' as constants;
 import 'constants/values.dart' as constants;
 import 'cps_ir/cps_ir_builder.dart' as ir_builder;
 import 'cps_ir/cps_ir_builder_task.dart' as ir_builder;
@@ -51,7 +52,7 @@
   useApi();
   dart2js.main(arguments);
   dart2jslib.isPublicName(null);
-  useConstant(null, null);
+  useConstant(null, null, null, null, null);
   useNode(null);
   useUtil(null);
   useSetlet(null);
@@ -84,9 +85,15 @@
 }
 
 void useConstant(constants.ConstantValue constant,
-                 constants.ConstantSystem cs) {
+                 constants.ConstantExpression expression,
+                 constants.ConstructedConstantExpression constructedConstant,
+                 constants.ConstantSystem cs,
+                 constants.Environment env) {
   constant.isObject;
   cs.isBool(constant);
+  constructedConstant.computeInstanceType();
+  constructedConstant.computeInstanceFields();
+  expression.evaluate(null, null);
 }
 
 void useNode(tree.Node node) {
diff --git a/pkg/compiler/lib/src/warnings.dart b/pkg/compiler/lib/src/warnings.dart
index 1b1272ee..8977b5d 100644
--- a/pkg/compiler/lib/src/warnings.dart
+++ b/pkg/compiler/lib/src/warnings.dart
@@ -1560,6 +1560,17 @@
 main() {}
 """]);
 
+  static const MessageKind INVALID_URI = const MessageKind(
+      "'#{uri}' is not a valid URI.",
+      howToFix: DONT_KNOW_HOW_TO_FIX,
+      examples: const [
+        """
+// can't have a '[' in a URI
+import '../../Udyn[mic ils/expect.dart';
+
+main() {}
+"""]);
+
   static const MessageKind READ_SCRIPT_ERROR = const MessageKind(
       "Can't read '#{uri}' (#{exception}).",
       // Don't know how to fix since the underlying error is unknown.
diff --git a/pkg/docgen/lib/src/models/model_helpers.dart b/pkg/docgen/lib/src/models/model_helpers.dart
index 816d4d3..70f158d 100644
--- a/pkg/docgen/lib/src/models/model_helpers.dart
+++ b/pkg/docgen/lib/src/models/model_helpers.dart
@@ -79,7 +79,7 @@
 }
 
 class AnnotationCreator
-    extends ConstantExpressionVisitor<AnnotationInfo, Annotation> {
+    extends ConstantExpressionVisitor<Annotation, AnnotationInfo> {
 
   const AnnotationCreator();
 
@@ -144,12 +144,6 @@
   }
 
   @override
-  Annotation visitPrimitive(PrimitiveConstantExpression exp,
-                            AnnotationInfo context) {
-    return null;
-  }
-
-  @override
   Annotation visitSymbol(SymbolConstantExpression exp,
                          AnnotationInfo context) {
     return null;
@@ -174,6 +168,67 @@
   }
 
   @override
+  Annotation visitBool(BoolConstantExpression exp,
+                       AnnotationInfo context) {
+    return null;
+  }
+
+  @override
+  Annotation visitBoolFromEnvironment(BoolFromEnvironmentConstantExpression exp,
+                                      AnnotationInfo context) {
+    return null;
+  }
+
+  @override
+  Annotation visitDouble(DoubleConstantExpression exp,
+                         AnnotationInfo context) {
+    return null;
+  }
+
+  @override
+  Annotation visitInt(IntConstantExpression exp,
+                      AnnotationInfo context) {
+    return null;
+  }
+
+  @override
+  Annotation visitIntFromEnvironment(IntFromEnvironmentConstantExpression exp,
+                                     AnnotationInfo context) {
+    return null;
+  }
+
+  @override
+  Annotation visitNamed(NamedArgumentReference exp,
+                        AnnotationInfo context) {
+    return null;
+  }
+
+  @override
+  Annotation visitNull(NullConstantExpression exp,
+                       AnnotationInfo context) {
+    return null;
+  }
+
+  @override
+  Annotation visitPositional(PositionalArgumentReference exp,
+                             AnnotationInfo context) {
+    return null;
+  }
+
+  @override
+  Annotation visitString(StringConstantExpression exp,
+                         AnnotationInfo context) {
+    return null;
+  }
+
+  @override
+  Annotation visitStringFromEnvironment(
+      StringFromEnvironmentConstantExpression exp,
+      AnnotationInfo context) {
+    return null;
+  }
+
+  @override
   Annotation visitDeferred(DeferredConstantExpression exp,
                            AnnotationInfo context) {
     return exp.expression.accept(this, context);
diff --git a/pkg/docgen/pubspec.yaml b/pkg/docgen/pubspec.yaml
index d3c1b29..ef3b0f9 100644
--- a/pkg/docgen/pubspec.yaml
+++ b/pkg/docgen/pubspec.yaml
@@ -4,8 +4,8 @@
 homepage: https://www.dartlang.org/
 dependencies:
   args: '>=0.9.0 <0.14.0'
-  logging: '>=0.9.0 <0.10.0'
-  markdown: 0.7.0
+  logging: '>=0.9.0 <0.12.0'
+  markdown: 0.7.1+2
   path: '>=0.9.0 <2.0.0'
   yaml: '>=0.9.0 <3.0.0'
 dev_dependencies:
diff --git a/pkg/js_ast/lib/src/builder.dart b/pkg/js_ast/lib/src/builder.dart
index 12f204e..8603b20 100644
--- a/pkg/js_ast/lib/src/builder.dart
+++ b/pkg/js_ast/lib/src/builder.dart
@@ -329,6 +329,8 @@
   /// [escapedString].
   LiteralString string(String value) => new LiteralString('"$value"');
 
+  LiteralString name(String name) => new LiteralString(name);
+
   LiteralNumber number(num value) => new LiteralNumber('$value');
 
   LiteralBool boolean(bool value) => new LiteralBool(value);
diff --git a/pkg/pkg.status b/pkg/pkg.status
index afbb77b..9ed73c8 100644
--- a/pkg/pkg.status
+++ b/pkg/pkg.status
@@ -92,9 +92,6 @@
 collection/test/unmodifiable_collection_test: SkipSlow # Times out. Issue 22050
 async/test/stream_zip_test: SkipSlow # Times out. Issue 22050
 
-[$compiler == dart2dart]
-*: Skip
-
 [ $runtime == ie10 ]
 analyzer/test/generated/java_core_test: Pass, Timeout # Issue 19747
 typed_data/test/typed_buffers_test/none: Fail # Issue   17607 (I put this here explicitly, since this is not the same as on ie9)
@@ -146,504 +143,51 @@
 
 [ $compiler == dart2js && $cps_ir ]
 analysis_server/tool/spec/check_all_test: Crash # unsupported element kind: context:field
-analyzer2dart/test/driver_test: Crash # cannot compile methods that need interceptor calling convention.
-analyzer2dart/test/end2end_test: Crash # Please triage this failure.
-analyzer2dart/test/identifier_semantics_test: Crash # cannot compile methods that need interceptor calling convention.
-analyzer2dart/test/sexpr_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-analyzer2dart/test/tree_shaker_test: Crash # cannot compile methods that need interceptor calling convention.
-analyzer/test/cancelable_future_test: Crash #  Unhandled node
-analyzer/test/enum_test: Crash #  Unhandled node
-analyzer/test/file_system/memory_file_system_test: Crash #  Unhandled node
-analyzer/test/file_system/physical_resource_provider_test: Crash #  Unhandled node
-analyzer/test/file_system/resource_uri_resolver_test: Crash #  Unhandled node
-analyzer/test/generated/all_the_rest_test: Crash #  Unhandled node
-analyzer/test/generated/ast_test: Crash #  Unhandled node
-analyzer/test/generated/compile_time_error_code_test: Crash #  Unhandled node
-analyzer/test/generated/element_test: Crash #  Unhandled node
-analyzer/test/generated/incremental_resolver_test: Crash #  Unhandled node
-analyzer/test/generated/incremental_scanner_test: Crash #  Unhandled node
+analyzer/test/cancelable_future_test: Crash #  try/finally
+analyzer/test/enum_test: Crash #  try/finally
+analyzer/test/file_system/memory_file_system_test: Crash #  try/finally
+analyzer/test/file_system/physical_resource_provider_test: Crash #  try/finally
+analyzer/test/file_system/resource_uri_resolver_test: Crash #  try/finally
+analyzer/test/generated/all_the_rest_test: Crash #  try/finally
+analyzer/test/generated/ast_test: Crash #  try/finally
+analyzer/test/generated/compile_time_error_code_test: Crash #  try/finally
+analyzer/test/generated/element_test: Crash #  try/finally
+analyzer/test/generated/incremental_resolver_test: Crash #  try/finally
+analyzer/test/generated/incremental_scanner_test: Crash #  try/finally
 analyzer/test/generated/java_core_test: Crash #  try/finally
 analyzer/test/generated/java_io_test: Crash #  try/finally
-analyzer/test/generated/non_error_resolver_test: Crash #  Unhandled node
-analyzer/test/generated/parser_test: Crash #  Unhandled node
-analyzer/test/generated/resolver_test: Crash #  Unhandled node
-analyzer/test/generated/scanner_test: Crash #  Unhandled node
-analyzer/test/generated/static_type_warning_code_test: Crash #  Unhandled node
-analyzer/test/generated/static_warning_code_test: Crash #  Unhandled node
-analyzer/test/generated/utilities_test: Crash #  Unhandled node
+analyzer/test/generated/non_error_resolver_test: Crash #  try/finally
+analyzer/test/generated/parser_test: Crash #  try/finally
+analyzer/test/generated/resolver_test: Crash #  try/finally
+analyzer/test/generated/scanner_test: Crash #  try/finally
+analyzer/test/generated/static_type_warning_code_test: Crash #  try/finally
+analyzer/test/generated/static_warning_code_test: Crash #  try/finally
+analyzer/test/generated/utilities_test: Crash #  try/finally
 analyzer/test/instrumentation/instrumentation_test: Crash #  try/finally
-analyzer/test/parse_compilation_unit_test: Crash # cannot compile methods that need interceptor calling convention.
-analyzer/test/plugin/plugin_impl_test: Crash #  try/finally
+analyzer/test/parse_compilation_unit_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 analyzer/test/source/package_map_provider_test: Crash #  try/finally
-analyzer/test/source/package_map_resolver_test: Crash #  Unhandled node
-analyzer/test/src/context/cache_test: Crash #  Unhandled node
+analyzer/test/source/package_map_resolver_test: Crash #  try/finally
+analyzer/test/src/context/cache_test: Crash #  try/finally
 analyzer/test/src/context/context_test: Crash #  try/finally
-analyzer/test/src/task/dart_test: Crash #  Unhandled node
-analyzer/test/src/task/driver_test: Crash #  Unhandled node
-analyzer/test/src/task/general_test: Crash #  Unhandled node
-analyzer/test/src/task/inputs_test: Crash #  Unhandled node
-analyzer/test/src/task/manager_test: Crash #  Unhandled node
-analyzer/test/src/task/model_test: Crash #  Unhandled node
-analyzer/test/src/util/asserts_test: Crash #  Unhandled node
-analyzer/test/src/util/lru_map_test: Crash #  Unhandled node
+analyzer/test/src/task/dart_test: Crash #  try/finally
+analyzer/test/src/task/dart_work_manager_test: Crash #  try/finally
+analyzer/test/src/task/driver_test: Crash #  try/finally
+analyzer/test/src/task/general_test: Crash #  try/finally
+analyzer/test/src/task/incremental_element_builder_test: Crash #  try/finally
+analyzer/test/src/task/inputs_test: Crash #  try/finally
+analyzer/test/src/task/manager_test: Crash #  try/finally
+analyzer/test/src/task/model_test: Crash #  try/finally
+analyzer/test/src/util/asserts_test: Crash #  try/finally
+analyzer/test/src/util/lru_map_test: Crash #  try/finally
+analyzer2dart/test/driver_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+analyzer2dart/test/end2end_test: Crash # (unittester): handleStaticFunctionGet: function(unittester)
+analyzer2dart/test/identifier_semantics_test: Crash # unsupported element kind: NOT_SDK:field
+analyzer2dart/test/sexpr_test: Crash # (unittester): handleStaticFunctionGet: function(unittester)
+analyzer2dart/test/tree_shaker_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 fixnum/test/int_32_test: Crash #  try/finally
 fixnum/test/int_64_test: Crash #  try/finally
-_internal/lib/pub/test/ascii_tree_test: Crash # cannot compile methods that need interceptor calling convention.
-_internal/lib/pub/test/barback/all_includes_all_default_directories_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/barback/directory_args_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/barback/fails_if_args_with_all_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/barback/fails_if_dir_arg_does_not_exist_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/barback/fails_if_dir_outside_package_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/barback/fails_if_no_default_dirs_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/barback/fails_on_all_with_no_buildable_directories_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/barback/fails_on_disallowed_directories_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/barback/fails_on_overlapping_directories_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/barback/subdirectories_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/build/allows_arbitrary_modes_test: Crash #  Unhandled node
-_internal/lib/pub/test/build/can_specify_output_directory_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/build/cleans_entire_build_directory_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/build/copies_browser_js_next_to_entrypoints_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/build/copies_browser_js_with_dependency_override_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/build/copies_browser_js_with_dev_dependency_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/build/copies_non_dart_files_to_build_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/build/defaults_to_release_mode_test: Crash #  Unhandled node
-_internal/lib/pub/test/build/handles_long_paths_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/build/includes_assets_from_dependencies_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/build/includes_dart_files_from_dependencies_in_debug_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/build/includes_dart_files_in_debug_mode_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/build/outputs_error_to_json_test: Crash #  Unhandled node
-_internal/lib/pub/test/build/outputs_results_to_json_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/build/preserves_htaccess_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/cache/add/adds_latest_matching_version_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/cache/add/adds_latest_version_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/cache/add/all_adds_all_matching_versions_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/cache/add/all_with_some_versions_present_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/cache/add/already_cached_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/cache/add/bad_version_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/cache/add/missing_package_arg_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/cache/add/no_matching_version_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/cache/add/package_not_found_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/cache/add/unexpected_arguments_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/cache/list_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/cache/repair/empty_cache_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/cache/repair/handles_corrupted_binstub_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/cache/repair/handles_corrupted_global_lockfile_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/cache/repair/handles_failure_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/cache/repair/handles_orphaned_binstub_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/cache/repair/recompiles_snapshots_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/cache/repair/reinstalls_git_packages_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/cache/repair/reinstalls_hosted_packages_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/cache/repair/updates_binstubs_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dart2js/allows_import_in_dart_code_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dart2js/compiles_entrypoints_in_root_package_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dart2js/compiles_generated_dart_file_test: Crash #  Unhandled node
-_internal/lib/pub/test/dart2js/compiles_generated_file_from_dependency_outside_web_test: Crash #  Unhandled node
-_internal/lib/pub/test/dart2js/compiles_generated_file_from_dependency_test: Crash #  Unhandled node
-_internal/lib/pub/test/dart2js/compiles_imported_generated_file_test: Crash #  Unhandled node
-_internal/lib/pub/test/dart2js/converts_isolate_entrypoint_in_web_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dart2js/does_not_compile_if_disabled_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dart2js/does_not_compile_until_its_output_is_requested_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dart2js/does_not_support_invalid_command_line_options_type_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dart2js/does_not_support_invalid_environment_type_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dart2js/does_not_support_invalid_option_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dart2js/doesnt_support_invalid_type_for_boolean_option_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dart2js/ignores_entrypoint_in_dependency_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dart2js/ignores_entrypoints_in_lib_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dart2js/ignores_non_entrypoint_dart_files_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dart2js/includes_source_maps_if_sourceMaps_true_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dart2js/includes_source_maps_in_debug_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dart2js/minifies_in_release_mode_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dart2js/minify_configuration_overrides_mode_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dart2js/omits_source_map_if_sourceMaps_false_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dart2js/omits_source_map_in_release_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dart2js/outputs_deferred_libraries_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dart2js/passes_along_environment_constants_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dart2js/reports_dart_parse_errors_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dart2js/source_maps_include_core_libs_in_subdirectory_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dart2js/source_maps_include_core_libs_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dart2js/supports_configuration_with_build_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dart2js/supports_valid_options_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dart2js/unminified_in_nonrelease_mode_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dependency_computer/conservative_dependencies_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dependency_computer/cycle_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dependency_computer/dev_transformers_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dependency_computer/error_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dependency_computer/import_dependencies_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dependency_computer/no_dependencies_test: Crash # (throw new StateError("Unexpected call to wrapFuture with no current " "schedule.")): Unhandled node
-_internal/lib/pub/test/dependency_computer/transformers_needed_by_library_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dependency_override_test: Crash #  try/finally
-_internal/lib/pub/test/deps_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/dev_dependency_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/downgrade/does_not_show_other_versions_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/downgrade/doesnt_change_git_dependencies_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/downgrade/dry_run_does_not_apply_changes_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/downgrade/unlock_dependers_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/downgrade/unlock_if_necessary_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/error_group_test: Crash #  try/finally
-_internal/lib/pub/test/get/broken_symlink_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/cache_transformed_dependency_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/dry_run_does_not_apply_changes_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/git/check_out_and_upgrade_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/git/check_out_branch_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/git/check_out_revision_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/git/check_out_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/git/check_out_transitive_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/git/check_out_twice_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/git/check_out_unfetched_revision_of_cached_repo_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/git/check_out_with_trailing_slash_test: Crash #  try/finally
-_internal/lib/pub/test/get/git/dependency_name_match_pubspec_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/git/different_repo_name_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/git/doesnt_fetch_if_nothing_changes_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/git/locked_revision_without_repo_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/git/lock_version_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/git/require_pubspec_name_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/git/require_pubspec_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/git/stay_locked_if_compatible_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/git/unlock_if_incompatible_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/hosted/avoid_network_requests_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/hosted/cached_pubspec_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/hosted/does_no_network_requests_when_possible_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/hosted/do_not_upgrade_on_removed_constraints_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/hosted/gets_a_package_with_busted_dev_dependencies_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/hosted/get_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/hosted/get_transitive_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/hosted/resolve_constraints_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/hosted/stay_locked_if_compatible_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/hosted/stay_locked_if_new_is_satisfied_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/hosted/stay_locked_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/hosted/unlock_if_incompatible_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/hosted/unlock_if_new_is_unsatisfied_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/hosted/unlock_if_version_doesnt_exist_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/path/absolute_path_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/path/absolute_symlink_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/path/empty_pubspec_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/path/nonexistent_dir_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/path/no_pubspec_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/path/path_is_file_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/path/relative_path_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/path/relative_symlink_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/path/shared_dependency_symlink_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/path/shared_dependency_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/relative_symlink_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/get/switch_source_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/activate/activate_git_after_hosted_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/activate/activate_hosted_after_git_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/activate/activate_hosted_after_path_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/activate/activate_path_after_hosted_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/activate/bad_version_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/activate/cached_package_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/activate/constraint_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/activate/constraint_with_path_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/activate/different_version_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/activate/doesnt_snapshot_path_executables_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/activate/empty_constraint_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/activate/git_package_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/activate/ignores_active_version_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/activate/installs_dependencies_for_git_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/activate/installs_dependencies_for_path_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/activate/installs_dependencies_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/activate/missing_git_repo_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/activate/missing_package_arg_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/activate/outdated_binstub_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/activate/path_package_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/activate/reactivating_git_upgrades_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/activate/removes_old_lockfile_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/activate/snapshots_git_executables_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/activate/snapshots_hosted_executables_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/activate/supports_version_solver_backtracking_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/activate/uncached_package_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/activate/unexpected_arguments_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/activate/unknown_package_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/binstubs/binstub_runs_executable_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/binstubs/binstub_runs_global_run_if_no_snapshot_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/binstubs/binstub_runs_precompiled_snapshot_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/binstubs/creates_executables_in_pubspec_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/binstubs/does_not_warn_if_no_executables_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/binstubs/does_not_warn_if_on_path_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/binstubs/explicit_and_no_executables_options_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/binstubs/explicit_executables_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/binstubs/missing_script_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/binstubs/name_collision_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/binstubs/name_collision_with_overwrite_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/binstubs/no_executables_flag_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/binstubs/outdated_binstub_runs_pub_global_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/binstubs/outdated_snapshot_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/binstubs/path_package_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/binstubs/reactivate_removes_old_executables_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/binstubs/removes_even_if_not_in_pubspec_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/binstubs/removes_when_deactivated_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/binstubs/unknown_explicit_executable_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/binstubs/warns_if_not_on_path_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/deactivate/deactivate_and_reactivate_package_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/deactivate/git_package_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/deactivate/hosted_package_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/deactivate/missing_package_arg_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/deactivate/path_package_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/deactivate/removes_precompiled_snapshots_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/deactivate/unexpected_arguments_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/deactivate/unknown_package_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/list_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/run/errors_if_outside_bin_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/run/implicit_executable_name_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/run/missing_executable_arg_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/run/missing_path_package_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/run/mode_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/run/nonexistent_script_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/run/recompiles_if_sdk_is_out_of_date_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/run/reflects_changes_to_local_package_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/run/runs_git_script_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/run/runs_path_script_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/run/runs_script_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/run/runs_transformer_test: Crash #  Unhandled node
-_internal/lib/pub/test/global/run/unknown_package_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/global/run/uses_old_lockfile_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/hosted/fail_gracefully_on_missing_package_test: Crash #  try/finally
-_internal/lib/pub/test/hosted/fail_gracefully_on_url_resolve_test: Crash #  try/finally
-_internal/lib/pub/test/hosted/offline_test: Crash #  try/finally
-_internal/lib/pub/test/hosted/remove_removed_dependency_test: Crash #  try/finally
-_internal/lib/pub/test/hosted/remove_removed_transitive_dependency_test: Crash #  try/finally
-_internal/lib/pub/test/hosted/version_negotiation_test: Crash #  try/finally
-_internal/lib/pub/test/implicit_barback_dependency_test: Crash #  "on T" catch block
-_internal/lib/pub/test/implicit_dependency_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/io_test: Crash #  try/finally
-_internal/lib/pub/test/lish/archives_and_uploads_a_package_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/cloud_storage_upload_doesnt_redirect_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/cloud_storage_upload_provides_an_error_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/does_not_publish_if_private_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/does_not_publish_if_private_with_server_arg_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/force_cannot_be_combined_with_dry_run_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/force_does_not_publish_if_private_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/force_does_not_publish_if_there_are_errors_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/force_publishes_if_tests_are_no_warnings_or_errors_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/force_publishes_if_there_are_warnings_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/many_files_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/package_creation_provides_a_malformed_error_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/package_creation_provides_a_malformed_success_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/package_creation_provides_an_error_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/package_creation_provides_invalid_json_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/package_validation_has_an_error_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/package_validation_has_a_warning_and_continues_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/package_validation_has_a_warning_and_is_canceled_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/preview_errors_if_private_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/preview_package_validation_has_a_warning_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/preview_package_validation_has_no_warnings_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/server_arg_does_not_override_private_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/server_arg_overrides_publish_to_url_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/upload_form_fields_has_a_non_string_value_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/upload_form_fields_is_not_a_map_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/upload_form_is_missing_fields_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/upload_form_is_missing_url_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/upload_form_provides_an_error_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/upload_form_provides_invalid_json_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/upload_form_url_is_not_a_string_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lish/uses_publish_to_url_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/list_package_dirs/ignores_updated_pubspec_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/list_package_dirs/includes_dev_dependencies_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/list_package_dirs/lists_dependency_directories_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/list_package_dirs/lockfile_error_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/list_package_dirs/missing_pubspec_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/list_package_dirs/no_lockfile_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/list_package_dirs/pubspec_error_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/lock_file_test: Crash #  try/finally
-_internal/lib/pub/test/no_package_symlinks_test: Crash #  try/finally
-_internal/lib/pub/test/oauth2/with_a_malformed_credentials_authenticates_again_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/oauth2/with_an_expired_credentials_refreshes_and_saves_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/oauth2/with_an_expired_credentials_without_a_refresh_token_authenticates_again_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/oauth2/with_a_pre_existing_credentials_does_not_authenticate_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/oauth2/with_a_server_rejected_refresh_token_authenticates_again_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/oauth2/with_no_credentials_authenticates_and_saves_credentials_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/oauth2/with_server_rejected_credentials_authenticates_again_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/package_list_files_test: Crash #  try/finally
-_internal/lib/pub/test/preprocess_test: Crash #  try/finally
-_internal/lib/pub/test/pub_get_and_upgrade_test: Crash #  try/finally
-_internal/lib/pub/test/pubspec_test: Crash #  try/finally
-_internal/lib/pub/test/pub_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/pub_uploader_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/real_version_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/run/allows_dart_extension_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/run/app_can_read_from_stdin_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/run/displays_transformer_logs_test: Crash #  Unhandled node
-_internal/lib/pub/test/run/does_not_run_on_transformer_error_test: Crash #  Unhandled node
-_internal/lib/pub/test/run/doesnt_load_an_unnecessary_transformer_test: Crash #  Unhandled node
-_internal/lib/pub/test/run/errors_if_no_executable_is_given_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/run/errors_if_only_transitive_dependency_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/run/errors_if_path_in_dependency_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/run/forwards_signal_posix_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/run/ignores_explicit_dart2js_transformer_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/run/includes_parent_directories_of_entrypoint_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/run/mode_test: Crash #  Unhandled node
-_internal/lib/pub/test/run/nonexistent_dependency_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/run/nonexistent_script_in_dependency_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/run/nonexistent_script_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/run/passes_along_arguments_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/run/runs_a_generated_script_test: Crash #  Unhandled node
-_internal/lib/pub/test/run/runs_app_in_directory_in_entrypoint_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/run/runs_app_in_entrypoint_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/run/runs_app_in_entrypoint_with_warning_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/run/runs_from_a_dependency_override_after_dependency_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/run/runs_named_app_in_dependency_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/run/runs_named_app_in_dev_dependency_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/run/runs_shorthand_app_in_dependency_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/run/runs_the_script_in_checked_mode_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/run/runs_transformer_in_entrypoint_test: Crash #  Unhandled node
-_internal/lib/pub/test/serve/404_page_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/allows_arbitrary_modes_test: Crash #  Unhandled node
-_internal/lib/pub/test/serve/defaults_to_debug_mode_test: Crash #  Unhandled node
-_internal/lib/pub/test/serve/does_not_crash_if_an_unused_dart_file_has_a_syntax_error_test: Crash #  Unhandled node
-_internal/lib/pub/test/serve/does_not_get_first_if_a_dependency_is_removed_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/does_not_get_first_if_git_url_did_not_change_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/does_not_get_first_if_locked_matches_override_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/does_not_get_first_if_locked_version_matches_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/does_not_serve_dart_in_release_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/does_not_serve_hidden_assets_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/does_not_watch_compiled_js_files_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/gets_first_if_dependency_added_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/gets_first_if_dependency_is_not_installed_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/gets_first_if_dependency_version_changed_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/gets_first_if_dev_dependency_changed_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/gets_first_if_git_ref_changed_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/gets_first_if_git_url_changed_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/gets_first_if_no_lockfile_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/gets_first_if_path_dependency_changed_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/gets_first_if_source_changed_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/gets_first_if_transitive_dependency_is_not_installed_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/invalid_method_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/invalid_urls_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/missing_asset_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/missing_dependency_file_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/missing_file_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/native_watch_added_file_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/native_watch_modified_file_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/native_watch_removed_file_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/native_watch_replaced_file_test: Crash #  Unhandled node
-_internal/lib/pub/test/serve/serve_from_app_lib_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/serve_from_app_web_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/serve_from_dependency_lib_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/serves_file_with_space_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/serves_index_html_for_directories_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/serves_web_and_test_dirs_by_default_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/supports_cross_origin_header_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/supports_user_defined_declaring_transformers_test: Crash #  Unhandled node
-_internal/lib/pub/test/serve/supports_user_defined_lazy_transformers_test: Crash #  Unhandled node
-_internal/lib/pub/test/serve/unknown_dependency_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/uses_appropriate_mime_types_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/watch_added_file_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/watch_modified_file_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/watch_removed_file_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/web_socket/exit_on_close_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/web_socket/path_to_urls_errors_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/web_socket/path_to_urls_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/web_socket/path_to_urls_with_line_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/web_socket/serve_directory_already_served_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/web_socket/serve_directory_and_immediately_request_asset_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/web_socket/serve_directory_and_immediately_serve_again_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/web_socket/serve_directory_and_immediately_unserve_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/web_socket/serve_directory_arg_errors_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/web_socket/serve_directory_overlapping_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/web_socket/serve_directory_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/web_socket/unserve_directory_arg_errors_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/web_socket/unserve_directory_not_served_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/web_socket/unserve_directory_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/web_socket/url_to_asset_id_errors_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/web_socket/url_to_asset_id_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/serve/web_socket/url_to_asset_id_with_line_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/snapshot/creates_a_snapshot_for_immediate_and_transitive_dep_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/snapshot/creates_a_snapshot_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/snapshot/doesnt_load_irrelevant_transformers_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/snapshot/doesnt_resnapshot_when_a_dependency_is_unchanged_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/snapshot/doesnt_snapshot_an_entrypoint_dependency_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/snapshot/doesnt_snapshot_path_dependency_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/snapshot/doesnt_snapshot_transitive_dependencies_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/snapshot/prints_errors_for_broken_snapshots_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/snapshot/recompiles_if_the_sdk_is_out_of_date_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/snapshot/snapshots_transformed_code_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/snapshot/updates_snapshot_for_git_dependency_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/snapshot/upgrades_snapshot_for_dependency_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/snapshot/upgrades_snapshot_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/transcript_test: Crash # cannot compile methods that need interceptor calling convention.
-_internal/lib/pub/test/transformer/asset_not_found_exceptions_are_detectable_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/a_transformer_rejects_its_config_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/cache_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/transformer/can_log_messages_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/can_use_consume_primary_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/can_use_has_input_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/can_use_read_input_as_string_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/can_use_read_input_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/configuration/configuration_defaults_to_empty_map_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/configuration/passes_configuration_to_a_transformer_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/configuration/with_configuration_only_instantiates_configurable_transformers_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/dart2js_transformer_before_another_transformer_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/does_not_run_a_transform_on_an_input_in_another_package_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/exclusion/exclude_asset_glob_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/exclusion/exclude_asset_list_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/exclusion/exclude_asset_prefix_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/exclusion/exclude_asset_string_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/exclusion/include_asset_glob_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/exclusion/include_asset_list_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/exclusion/include_asset_prefix_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/exclusion/include_asset_string_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/exclusion/includes_before_excludes_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/exclusion/works_on_aggregate_transformer_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/exclusion/works_on_dart2js_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/exclusion/works_on_lazy_transformer_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/exclusion/works_on_transformer_group_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/fails_to_load_a_file_that_defines_no_transforms_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/fails_to_load_a_non_existent_transform_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/fails_to_load_an_unconfigurable_transformer_when_config_is_passed_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/fails_to_load_a_pubspec_with_reserved_transformer_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/fails_to_load_a_transform_from_a_non_dependency_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/fails_to_load_a_transform_with_an_import_error_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/fails_to_load_a_transform_with_a_syntax_error_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/loads_a_declaring_aggregate_transformer_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/loads_a_diamond_transformer_dependency_graph_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/loads_a_lazy_aggregate_transformer_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/loads_an_aggregate_transformer_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/loads_a_transformer_defined_in_an_exported_library_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/loads_different_configurations_from_the_same_isolate_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/multiple_transformers_reject_their_config_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/prefers_transformer_to_library_name_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/prints_a_transform_error_in_apply_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/prints_a_transform_interface_error_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/runs_a_local_transform_on_the_application_package_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/runs_a_third_party_transformer_on_a_local_transformer_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/runs_a_third_party_transform_on_the_application_package_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/runs_a_transformer_group_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/runs_a_transformer_on_a_dependency_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/runs_one_third_party_transformer_on_another_test: Crash #  Unhandled node
-_internal/lib/pub/test/transformer/supports_a_transformer_that_doesnt_return_futures_test: Crash #  Unhandled node
-_internal/lib/pub/test/unknown_source_test: Crash #  try/finally
-_internal/lib/pub/test/upgrade/dry_run_does_not_apply_changes_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/upgrade/git/do_not_upgrade_if_unneeded_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/upgrade/git/upgrade_locked_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/upgrade/git/upgrade_one_locked_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/upgrade/git/upgrade_to_incompatible_pubspec_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/upgrade/git/upgrade_to_nonexistent_pubspec_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/upgrade/hosted/unlock_dependers_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/upgrade/hosted/unlock_if_necessary_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/upgrade/hosted/upgrade_removed_constraints_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/upgrade/report/describes_change_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/upgrade/report/does_not_show_newer_versions_for_locked_packages_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/upgrade/report/highlights_overrides_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/upgrade/report/leading_character_shows_change_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/upgrade/report/shows_newer_available_versions_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/upgrade/report/shows_number_of_changed_dependencies_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/utils_test: Crash #  try/finally
-_internal/lib/pub/test/validator/compiled_dartdoc_test: Crash #  try/finally
-_internal/lib/pub/test/validator/dependency_override_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/validator/dependency_test: Crash #  try/finally
-_internal/lib/pub/test/validator/directory_test: Crash #  try/finally
-_internal/lib/pub/test/validator/executable_test: Crash #  try/finally
-_internal/lib/pub/test/validator/license_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/validator/name_test: Crash #  try/finally
-_internal/lib/pub/test/validator/pubspec_field_test: Crash #  try/finally
-_internal/lib/pub/test/validator/sdk_constraint_test: Crash # (throw new StateError("Unexpected call to wrapFuture with no current " "schedule.")): Unhandled node
-_internal/lib/pub/test/validator/size_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/validator/utf8_readme_test: Crash # unsupported element kind: _defaultEnvironment:field
-_internal/lib/pub/test/version_solver_test: Crash #  try/finally
-js_ast/test/printer_callback_test: Crash # Please triage this failure.
-microlytics/test/dart_microlytics_test: Crash # (throw new ExpectException(message)): Unhandled node
+js_ast/test/printer_callback_test: Crash # (check): handleStaticFunctionGet: function(check)
 stub_core_library/test/stub_test: Crash #  try/finally
-third_party/di_tests/di_test: Crash #  try/finally
-typed_data/test/typed_buffers_test/01: Crash # cannot compile methods that need interceptor calling convention.
-typed_data/test/typed_buffers_test/none: Crash # cannot compile methods that need interceptor calling convention.
+typed_data/test/typed_buffers_test/01: Crash # (roundToFloat): handleStaticFunctionGet: function(roundToFloat)
+typed_data/test/typed_buffers_test/none: Crash # (roundToFloat): handleStaticFunctionGet: function(roundToFloat)
 typed_mock/test/typed_mock_test: Crash #  try/finally
diff --git a/runtime/bin/BUILD.gn b/runtime/bin/BUILD.gn
index 576a0ef..ebb92c9 100644
--- a/runtime/bin/BUILD.gn
+++ b/runtime/bin/BUILD.gn
@@ -179,3 +179,63 @@
     "../vm:libdart_platform",
   ]
 }
+
+io_impl_sources_gypi =
+    exec_script("../../tools/gypi_to_gn.py",
+                [ rebase_path("io_impl_sources.gypi") ],
+                "scope",
+                [ "io_impl_sources.gypi" ])
+
+# A source set for the implementation of 'dart:io' library
+# (without secure sockets).
+source_set("embedded_dart_io") {
+  configs += ["..:dart_config",]
+
+  # Set custom sources assignment filter. The custom filters does three things:
+  # 1) Filters out unnecessary files pulled in from the gypi files.
+  # 2) Filters out secure socket support.
+  # 3) Enables dart:io by filtering out _unsupported.cc implementations.
+  custom_sources_filter = [
+    "*net/nss_memio.cc",
+    "*net/nss_memio.h",
+    "*secure_socket.cc",
+    "*secure_socket.h",
+    "*filter_unsupported.cc",
+    "*io_service_unsupported.cc",
+    "*_test.cc",
+    "*_test.h",
+    "*dbg*",
+    "builtin.cc",
+    "builtin_gen_snapshot.cc",
+  ]
+  if (!is_mac) {
+    # Dart tree uses *_macos.* instead of *_mac.*
+    custom_sources_filter += [
+      "*_macos.h",
+      "*_macos.cc",
+    ]
+  }
+  set_sources_assignment_filter(custom_sources_filter)
+
+  defines = [ "DART_IO_SECURE_SOCKET_DISABLED" ]
+
+  sources = io_impl_sources_gypi.sources + builtin_impl_sources_gypi.sources
+  sources += [
+    "builtin_nolib.cc",
+    "builtin_natives.cc",
+    "io_natives.cc",
+    "io_natives.h",
+    "embedded_dart_io.cc",
+    "embedded_dart_io.h",
+    "log_android.cc",
+    "log_linux.cc",
+    "log_macos.cc",
+    "log_win.cc",
+    "log.h",
+  ]
+
+  include_dirs = [
+    "..",
+    "//third_party"
+  ]
+}
diff --git a/runtime/bin/bin.gypi b/runtime/bin/bin.gypi
index 1137354..a2638a7 100644
--- a/runtime/bin/bin.gypi
+++ b/runtime/bin/bin.gypi
@@ -349,12 +349,12 @@
       },
     },
     {
-      'target_name': 'libdart_withcore',
+      'target_name': 'libdart_nosnapshot',
       'type': 'static_library',
       'toolsets':['target','host'],
       'dependencies': [
-        'libdart_lib_withcore',
-        'libdart_vm',
+        'libdart_lib_nosnapshot',
+        'libdart_vm_nosnapshot',
         'libdouble_conversion',
         'generate_version_cc_file#host',
       ],
@@ -382,7 +382,7 @@
       'type': 'executable',
       'toolsets':['host'],
       'dependencies': [
-        'libdart_withcore',
+        'libdart_nosnapshot',
         'libdart_builtin',
       ],
       'include_dirs': [
@@ -498,7 +498,7 @@
             '../tools/create_resources.py',
             # The following two files are used to trigger a rebuild.
             '<(PRODUCT_DIR)/observatory/deployed/web/index.html',
-            '<(PRODUCT_DIR)/observatory/deployed/web/index.html_bootstrap.dart.js',
+            '<(PRODUCT_DIR)/observatory/deployed/web/index.html.polymer.bootstrap.dart.js',
             '<@(_sources)',
           ],
           'outputs': [
@@ -609,7 +609,7 @@
       'type': 'executable',
       'toolsets':['host'],
       'dependencies': [
-        'libdart_withcore',
+        'libdart_nosnapshot',
         'libdart_builtin',
         'libdart_io',
         'generate_bootstrap_resources_cc_file#host',
@@ -662,7 +662,7 @@
       'target_name': 'dart_no_snapshot',
       'type': 'executable',
       'dependencies': [
-        'libdart_withcore',
+        'libdart_nosnapshot',
         'libdart_builtin',
         'libdart_io',
         'generate_resources_cc_file#host',
@@ -721,7 +721,7 @@
       'target_name': 'run_vm_tests',
       'type': 'executable',
       'dependencies': [
-        'libdart_withcore',
+        'libdart',
         'libdart_builtin',
         'libdart_io',
         'generate_snapshot_file#host',
diff --git a/runtime/bin/builtin.dart b/runtime/bin/builtin.dart
index 59338260..fe18de3 100644
--- a/runtime/bin/builtin.dart
+++ b/runtime/bin/builtin.dart
@@ -4,67 +4,97 @@
 
 library builtin;
 // NOTE: Do not import 'dart:io' in builtin.
-import 'dart:async';
-import 'dart:convert';
 import 'dart:isolate';
-
-
-/* See Dart_LibraryTag in dart_api.h */
-const Dart_kScriptTag = null;
-const Dart_kImportTag = 0;
-const Dart_kSourceTag = 1;
-const Dart_kCanonicalizeUrl = 2;
-
-// Dart native extension scheme.
-const _DART_EXT = 'dart-ext:';
-
-// import 'root_library'; happens here from C Code
+import 'dart:typed_data';
 
 // The root library (aka the script) is imported into this library. The
 // standalone embedder uses this to lookup the main entrypoint in the
 // root library's namespace.
 Function _getMainClosure() => main;
 
-// A port for communicating with the service isolate for I/O.
-SendPort _loadPort;
 
-const _logBuiltin = false;
+// 'print' implementation.
+// The standalone embedder registers the closurized _print function with the
+// dart:core library.
+void _printString(String s) native "Builtin_PrintString";
 
-// Corelib 'print' implementation.
+
 void _print(arg) {
-  _Logger._printString(arg.toString());
+  _printString(arg.toString());
 }
 
-class _Logger {
-  static void _printString(String s) native "Logger_PrintString";
-}
 
 _getPrintClosure() => _print;
 
-_getCurrentDirectoryPath() native "Builtin_GetCurrentDirectory";
 
 // Corelib 'Uri.base' implementation.
+// Uri.base is susceptible to changes in the current working directory.
+_getCurrentDirectoryPath() native "Builtin_GetCurrentDirectory";
+
+
 Uri _uriBase() {
   // We are not using Dircetory.current here to limit the dependency
   // on dart:io. This code is the same as:
   //   return new Uri.file(Directory.current.path + "/");
   var result = _getCurrentDirectoryPath();
-  return new Uri.file(result + "/");
+  return new Uri.file("$result/");
 }
 
+
 _getUriBaseClosure() => _uriBase;
 
 
-// Are we running on Windows?
-var _isWindows;
-var _workingWindowsDrivePrefix;
-// The current working directory
-var _workingDirectoryUri;
-// The URI that the entry point script was loaded from. Remembered so that
-// package imports can be resolved relative to it.
-var _entryPointScript;
-// The directory to look in to resolve "package:" scheme URIs.
-var _packageRoot;
+// Asynchronous loading of resources.
+// The embedder forwards most loading requests to this library.
+
+// See Dart_LibraryTag in dart_api.h
+const Dart_kScriptTag = null;
+const Dart_kImportTag = 0;
+const Dart_kSourceTag = 1;
+const Dart_kCanonicalizeUrl = 2;
+
+// Embedder sets this to true if the --trace-loading flag was passed on the
+// command line.
+bool _traceLoading = false;
+
+// A port for communicating with the service isolate for I/O.
+SendPort _loadPort;
+// Maintain a number of outstanding load requests. Current loading request is
+// finished once there are no outstanding requests.
+int _numOutstandingLoadRequests = 0;
+
+// The current working directory when the embedder was launched.
+Uri _workingDirectory;
+// The URI that the root script was loaded from. Remembered so that
+// package imports can be resolved relative to it. The root script is the basis
+// for the root library in the VM.
+Uri _rootScript;
+// The directory to look in to resolve "package:" scheme URIs. By detault it is
+// the 'packages' directory right next to the script.
+Uri _packageRoot = _rootScript.resolve('packages/');
+
+// Special handling for Windows paths so that they are compatible with URI
+// handling.
+// Embedder sets this to true if we are running on Windows.
+bool _isWindows = false;
+
+
+// A class wrapping the load error message in an Error object.
+class LoadError extends Error {
+  final String message;
+  LoadError(this.message);
+
+  String toString() => 'Load Error: $message';
+}
+
+
+// Native calls provided by the embedder.
+void _signalDoneLoading() native "Builtin_DoneLoading";
+void _loadScriptCallback(int tag, String uri, String libraryUri, Uint8List data)
+    native "Builtin_LoadSource";
+void _asyncLoadErrorCallback(uri, libraryUri, error)
+    native "Builtin_AsyncLoadError";
+
 
 _sanitizeWindowsPath(path) {
   // For Windows we need to massage the paths a bit according to
@@ -90,6 +120,7 @@
   return fixedPath;
 }
 
+
 _trimWindowsPath(path) {
   // Convert /X:/ to X:/.
   if (_isWindows == false) {
@@ -107,8 +138,9 @@
   return path;
 }
 
+
+// Ensure we have a trailing slash character.
 _enforceTrailingSlash(uri) {
-  // Ensure we have a trailing slash character.
   if (!uri.endsWith('/')) {
     return '$uri/';
   }
@@ -116,41 +148,37 @@
 }
 
 
-_extractDriveLetterPrefix(cwd) {
-  if (!_isWindows) {
-    return null;
-  }
-  if (cwd.length > 1 && cwd[1] == ':') {
-    return '/${cwd[0]}:';
-  }
-  return null;
-}
-
-
+// Embedder Entrypoint:
+// The embedder calls this method with the current working directory.
 void _setWorkingDirectory(cwd) {
-  _workingWindowsDrivePrefix = _extractDriveLetterPrefix(cwd);
-  cwd = _sanitizeWindowsPath(cwd);
-  cwd = _enforceTrailingSlash(cwd);
-  _workingDirectoryUri = new Uri(scheme: 'file', path: cwd);
-  if (_logBuiltin) {
-    _print('# Working Directory: $cwd');
+  if (_traceLoading) {
+    _print('# Setting working directory: $cwd');
+  }
+  _workingDirectory = new Uri.directory(cwd);
+  if (_traceLoading) {
+    _print('# Working directory URI: $_workingDirectory');
   }
 }
 
 
+// Embedder Entrypoint:
+// The embedder calls this method with a custom package root.
 _setPackageRoot(String packageRoot) {
+  if (_traceLoading) {
+    _print('# Setting package root: $packageRoot');
+  }
   packageRoot = _enforceTrailingSlash(packageRoot);
   if (packageRoot.startsWith('file:') ||
       packageRoot.startsWith('http:') ||
       packageRoot.startsWith('https:')) {
-    _packageRoot = _workingDirectoryUri.resolve(packageRoot);
+    _packageRoot = _workingDirectory.resolve(packageRoot);
   } else {
     packageRoot = _sanitizeWindowsPath(packageRoot);
     packageRoot = _trimWindowsPath(packageRoot);
-    _packageRoot = _workingDirectoryUri.resolveUri(new Uri.file(packageRoot));
+    _packageRoot = _workingDirectory.resolveUri(new Uri.file(packageRoot));
   }
-  if (_logBuiltin) {
-    _print('# Package root: $packageRoot -> $_packageRoot');
+  if (_traceLoading) {
+    _print('# Package root URI: $_packageRoot');
   }
 }
 
@@ -167,76 +195,44 @@
           "'$right', not '$wrong'.";
   }
 
-  var packageRoot = _packageRoot == null ?
-                    _entryPointScript.resolve('packages/') :
-                    _packageRoot;
-  return packageRoot.resolve(uri.path);
+  if (_traceLoading) {
+    _print('# Package root: $_packageRoot');
+    _print('# uri path: ${uri.path}');
+  }
+  return _packageRoot.resolve(uri.path);
 }
 
 
-
-String _resolveScriptUri(String scriptName) {
-  if (_workingDirectoryUri == null) {
+// Resolves the script uri in the current working directory iff the given uri
+// did not specify a scheme (e.g. a path to a script file on the command line).
+Uri _resolveScriptUri(String scriptName) {
+  if (_workingDirectory == null) {
     throw 'No current working directory set.';
   }
   scriptName = _sanitizeWindowsPath(scriptName);
 
   var scriptUri = Uri.parse(scriptName);
-  if (scriptUri.scheme != '') {
-    // Script has a scheme, assume that it is fully formed.
-    _entryPointScript = scriptUri;
-  } else {
+  if (scriptUri.scheme == '') {
     // Script does not have a scheme, assume that it is a path,
     // resolve it against the working directory.
-    _entryPointScript = _workingDirectoryUri.resolve(scriptName);
+    scriptUri = _workingDirectory.resolveUri(scriptUri);
   }
-  if (_logBuiltin) {
-    _print('# Resolved entry point to: $_entryPointScript');
+
+  // Remember the root script URI so that we can resolve packages based on
+  // this location.
+  _rootScript = scriptUri;
+
+  if (_traceLoading) {
+    _print('# Resolved entry point to: $_rootScript');
   }
-  return _entryPointScript.toString();
+  return scriptUri;
 }
 
 
-// Function called by standalone embedder to resolve uris.
-String _resolveUri(String base, String userString) {
-  if (_logBuiltin) {
-    _print('# Resolving: $userString from $base');
-  }
-  var baseUri = Uri.parse(base);
-  if (userString.startsWith(_DART_EXT)) {
-    var uri = userString.substring(_DART_EXT.length);
-    return '$_DART_EXT${baseUri.resolve(uri)}';
-  } else {
-    return baseUri.resolve(userString).toString();
-  }
-}
-
-Uri _createUri(String userUri) {
-  var uri = Uri.parse(userUri);
-  switch (uri.scheme) {
-    case '':
-    case 'data':
-    case 'file':
-    case 'http':
-    case 'https':
-      return uri;
-    case 'package':
-      return _resolvePackageUri(uri);
-    default:
-      // Only handling file, http[s], and package URIs
-      // in standalone binary.
-      if (_logBuiltin) {
-        _print('# Unknown scheme (${uri.scheme}) in $uri.');
-      }
-      throw 'Not a known scheme: $uri';
-  }
-}
-
-int _numOutstandingLoadRequests = 0;
-void _finishedOneLoadRequest(String uri) {
+void _finishLoadRequest(String uri) {
   assert(_numOutstandingLoadRequests > 0);
   _numOutstandingLoadRequests--;
-  if (_logBuiltin) {
+  if (_traceLoading) {
     _print("Loading of $uri finished, "
            "${_numOutstandingLoadRequests} requests remaining");
   }
@@ -245,38 +241,28 @@
   }
 }
 
-void _startingOneLoadRequest(String uri) {
+
+void _startLoadRequest(String uri, Uri resourceUri) {
   assert(_numOutstandingLoadRequests >= 0);
   _numOutstandingLoadRequests++;
-  if (_logBuiltin) {
-    _print("Loading of $uri started, "
+  if (_traceLoading) {
+    _print("Loading of $resourceUri for $uri started, "
            "${_numOutstandingLoadRequests} requests outstanding");
   }
 }
 
-class LoadError extends Error {
-  final String message;
-  LoadError(this.message);
 
-  String toString() => 'Load Error: $message';
-}
-
-void _signalDoneLoading() native "Builtin_DoneLoading";
-void _loadScriptCallback(int tag, String uri, String libraryUri, List<int> data)
-    native "Builtin_LoadScript";
-void _asyncLoadErrorCallback(uri, libraryUri, error)
-    native "Builtin_AsyncLoadError";
-
-void _loadScript(int tag, String uri, String libraryUri, List<int> data) {
+void _loadScript(int tag, String uri, String libraryUri, Uint8List data) {
   // TODO: Currently a compilation error while loading the script is
   // fatal for the isolate. _loadScriptCallback() does not return and
   // the _numOutstandingLoadRequests counter remains out of sync.
   _loadScriptCallback(tag, uri, libraryUri, data);
-  _finishedOneLoadRequest(uri);
+  _finishLoadRequest(uri);
 }
 
+
 void _asyncLoadError(int tag, String uri, String libraryUri, LoadError error) {
-  if (_logBuiltin) {
+  if (_traceLoading) {
     _print("_asyncLoadError($uri), error: $error");
   }
   if (tag == Dart_kImportTag) {
@@ -285,18 +271,18 @@
     libraryUri = uri;
   }
   _asyncLoadErrorCallback(uri, libraryUri, error);
-  _finishedOneLoadRequest(uri);
+  _finishLoadRequest(uri);
 }
 
 
-_loadDataAsyncLoadPort(int tag,
-                       String uri,
-                       String libraryUri,
-                       Uri resourceUri) {
+_loadDataFromLoadPort(int tag,
+                      String uri,
+                      String libraryUri,
+                      Uri resourceUri) {
   var receivePort = new ReceivePort();
   receivePort.first.then((dataOrError) {
     receivePort.close();
-    if (dataOrError is List<int>) {
+    if (dataOrError is Uint8List) {
       _loadScript(tag, uri, libraryUri, dataOrError);
     } else {
       assert(dataOrError is String);
@@ -314,9 +300,9 @@
   try {
     var msg = [receivePort.sendPort, resourceUri.toString()];
     _loadPort.send(msg);
-    _startingOneLoadRequest(uri);
+    _startLoadRequest(uri, resourceUri);
   } catch (e) {
-    if (_logBuiltin) {
+    if (_traceLoading) {
       _print("Exception when communicating with service isolate: $e");
     }
     // Wrap inside a LoadError unless we are already propagating a previously
@@ -327,47 +313,77 @@
   }
 }
 
+
+// Embedder Entrypoint:
 // Asynchronously loads script data through a http[s] or file uri.
 _loadDataAsync(int tag, String uri, String libraryUri) {
+  var resourceUri;
   if (tag == Dart_kScriptTag) {
-    uri = _resolveScriptUri(uri);
+    resourceUri = _resolveScriptUri(uri);
+    uri = resourceUri.toString();
+  } else {
+    resourceUri = Uri.parse(uri);
   }
 
-  Uri resourceUri = _createUri(uri);
+  // package based uris need to be resolved to the correct loadable location.
+  if (resourceUri.scheme == 'package') {
+    resourceUri = _resolvePackageUri(resourceUri);
+  }
 
-  _loadDataAsyncLoadPort(tag, uri, libraryUri, resourceUri);
+  _loadDataFromLoadPort(tag, uri, libraryUri, resourceUri);
 }
 
-// Returns either a file path or a URI starting with http[s]:, as a String.
-String _filePathFromUri(String userUri) {
-  var uri = Uri.parse(userUri);
-  if (_logBuiltin) {
-    _print('# Getting file path from: $uri');
-  }
 
-  var path;
-  switch (uri.scheme) {
-    case '':
-    case 'file':
-      return uri.toFilePath();
-    case 'package':
-      return _filePathFromUri(_resolvePackageUri(uri).toString());
-    case 'data':
-    case 'http':
-    case 'https':
-      return uri.toString();
-    default:
-      // Only handling file, http, and package URIs
-      // in standalone binary.
-      if (_logBuiltin) {
-        _print('# Unknown scheme (${uri.scheme}) in $uri.');
-      }
-      throw 'Not a known scheme: $uri';
+// Embedder Entrypoint:
+// Function called by standalone embedder to resolve uris when the VM requests
+// Dart_kCanonicalizeUrl from the tag handler.
+String _resolveUri(String base, String userString) {
+  if (_traceLoading) {
+    _print('# Resolving: $userString from $base');
   }
+  var baseUri = Uri.parse(base);
+  var result;
+  if (userString.startsWith(_DART_EXT)) {
+    var uri = userString.substring(_DART_EXT.length);
+    result = '$_DART_EXT${baseUri.resolve(uri)}';
+  } else {
+    result = baseUri.resolve(userString).toString();
+  }
+  if (_traceLoading) {
+    _print('Resolved $userString in $base to $result');
+  }
+  return result;
 }
 
+
+// Embedder Entrypoint (gen_snapshot):
+// Resolve relative paths relative to working directory.
+String _resolveInWorkingDirectory(String fileName) {
+  if (_workingDirectory == null) {
+    throw 'No current working directory set.';
+  }
+  var name = _sanitizeWindowsPath(fileName);
+
+  var uri = Uri.parse(name);
+  if (uri.scheme != '') {
+    throw 'Schemes are not supported when resolving filenames.';
+  }
+  uri = _workingDirectory.resolveUri(uri);
+
+  if (_traceLoading) {
+    _print('# Resolved in working directory: $fileName -> $uri');
+  }
+  return uri.toString();
+}
+
+
+// Handling of dart-ext loading.
+// Dart native extension scheme.
+const _DART_EXT = 'dart-ext:';
+
 String _nativeLibraryExtension() native "Builtin_NativeLibraryExtension";
 
+
 String _platformExtensionFileName(String name) {
   var extension = _nativeLibraryExtension();
 
@@ -378,6 +394,39 @@
   }
 }
 
+
+// Returns either a file path or a URI starting with http[s]:, as a String.
+String _filePathFromUri(String userUri) {
+  var uri = Uri.parse(userUri);
+  if (_traceLoading) {
+    _print('# Getting file path from: $uri');
+  }
+
+  var path;
+  switch (uri.scheme) {
+    case '':
+    case 'file':
+    return uri.toFilePath();
+    case 'package':
+    return _filePathFromUri(_resolvePackageUri(uri).toString());
+    case 'data':
+    case 'http':
+    case 'https':
+    return uri.toString();
+    default:
+    // Only handling file, http, and package URIs
+    // in standalone binary.
+    if (_traceLoading) {
+      _print('# Unknown scheme (${uri.scheme}) in $uri.');
+    }
+    throw 'Not a known scheme: $uri';
+  }
+}
+
+
+// Embedder Entrypoint:
+// When loading an extension the embedder calls this method to get the
+// different components.
 // Returns the directory part, the filename part, and the name
 // of a native extension URL as a list [directory, filename, name].
 // The directory part is either a file system path or an HTTP(S) URL.
@@ -393,7 +442,6 @@
     throw 'Unexpected internal error: Extension URI $userUri contains \\';
   }
 
-
   String name;
   String path;  // Will end in '/'.
   int index = userUri.lastIndexOf('/');
diff --git a/runtime/bin/builtin_gen_snapshot.cc b/runtime/bin/builtin_gen_snapshot.cc
index 3e25004..2852464 100644
--- a/runtime/bin/builtin_gen_snapshot.cc
+++ b/runtime/bin/builtin_gen_snapshot.cc
@@ -15,7 +15,7 @@
 
 // Lists the native function implementing basic logging facility.
 #define BUILTIN_NATIVE_LIST(V)                                                 \
-  V(Logger_PrintString, 1)
+  V(Builtin_PrintString, 1)
 
 BUILTIN_NATIVE_LIST(DECLARE_FUNCTION);
 
@@ -63,7 +63,7 @@
 
 // Implementation of native functions which are used for some
 // test/debug functionality in standalone dart mode.
-void FUNCTION_NAME(Logger_PrintString)(Dart_NativeArguments args) {
+void FUNCTION_NAME(Builtin_PrintString)(Dart_NativeArguments args) {
   Dart_EnterScope();
   intptr_t length = 0;
   uint8_t* chars = NULL;
diff --git a/runtime/bin/builtin_natives.cc b/runtime/bin/builtin_natives.cc
index a7bb6d2..80a03cf 100644
--- a/runtime/bin/builtin_natives.cc
+++ b/runtime/bin/builtin_natives.cc
@@ -64,8 +64,8 @@
   V(File_GetStdioHandleType, 1)                                                \
   V(File_GetType, 2)                                                           \
   V(File_AreIdentical, 2)                                                      \
-  V(Logger_PrintString, 1)                                                     \
-  V(Builtin_LoadScript, 4)                                                     \
+  V(Builtin_PrintString, 1)                                                    \
+  V(Builtin_LoadSource, 4)                                                     \
   V(Builtin_AsyncLoadError, 3)                                                 \
   V(Builtin_DoneLoading, 0)                                                    \
   V(Builtin_NativeLibraryExtension, 0)                                         \
@@ -121,7 +121,7 @@
 
 // Implementation of native functions which are used for some
 // test/debug functionality in standalone dart mode.
-void FUNCTION_NAME(Logger_PrintString)(Dart_NativeArguments args) {
+void FUNCTION_NAME(Builtin_PrintString)(Dart_NativeArguments args) {
   intptr_t length = 0;
   uint8_t* chars = NULL;
   Dart_Handle str = Dart_GetNativeArgument(args, 0);
diff --git a/runtime/bin/dartutils.cc b/runtime/bin/dartutils.cc
index fc8b0c5..745efbe 100644
--- a/runtime/bin/dartutils.cc
+++ b/runtime/bin/dartutils.cc
@@ -283,13 +283,13 @@
 }
 
 
-Dart_Handle DartUtils::ResolveScriptUri(Dart_Handle script_uri,
-                                        Dart_Handle builtin_lib) {
+Dart_Handle DartUtils::ResolveUriInWorkingDirectory(Dart_Handle script_uri,
+                                                    Dart_Handle builtin_lib) {
   const int kNumArgs = 1;
   Dart_Handle dart_args[kNumArgs];
   dart_args[0] = script_uri;
   return Dart_Invoke(builtin_lib,
-                     NewString("_resolveScriptUri"),
+                     NewString("_resolveInWorkingDirectory"),
                      kNumArgs,
                      dart_args);
 }
@@ -515,7 +515,7 @@
 
 // Callback function that gets called from dartutils when the library
 // source has been read. Loads the library or part into the VM.
-void FUNCTION_NAME(Builtin_LoadScript)(Dart_NativeArguments args) {
+void FUNCTION_NAME(Builtin_LoadSource)(Dart_NativeArguments args) {
   Dart_Handle tag_in = Dart_GetNativeArgument(args, 0);
   Dart_Handle resolved_script_uri = Dart_GetNativeArgument(args, 1);
   Dart_Handle library_uri = Dart_GetNativeArgument(args, 2);
@@ -624,6 +624,7 @@
 void DartUtils::PrepareBuiltinLibrary(Dart_Handle builtin_lib,
                                       Dart_Handle internal_lib,
                                       bool is_service_isolate,
+                                      bool trace_loading,
                                       const char* package_root) {
   // Setup the internal library's 'internalPrint' function.
   Dart_Handle print = Dart_Invoke(
@@ -634,10 +635,15 @@
   DART_CHECK_VALID(result);
 
   if (!is_service_isolate) {
-    result =
-        Dart_SetField(builtin_lib, NewString("_isWindows"),
-                      IsWindowsHost() ? Dart_True() : Dart_False());
-    DART_CHECK_VALID(result);
+    if (IsWindowsHost()) {
+      result = Dart_SetField(builtin_lib, NewString("_isWindows"), Dart_True());
+      DART_CHECK_VALID(result);
+    }
+    if (trace_loading) {
+      result = Dart_SetField(builtin_lib,
+                             NewString("_traceLoading"), Dart_True());
+      DART_CHECK_VALID(result);
+    }
   }
 
   if (!is_service_isolate) {
@@ -702,6 +708,7 @@
 
 Dart_Handle DartUtils::PrepareForScriptLoading(const char* package_root,
                                                bool is_service_isolate,
+                                               bool trace_loading,
                                                Dart_Handle builtin_lib) {
   // First ensure all required libraries are available.
   Dart_Handle url = NewString(kCoreLibURL);
@@ -731,6 +738,7 @@
   PrepareBuiltinLibrary(builtin_lib,
                         internal_lib,
                         is_service_isolate,
+                        trace_loading,
                         package_root);
   PrepareAsyncLibrary(async_lib, isolate_lib);
   PrepareCoreLibrary(core_lib, builtin_lib, is_service_isolate);
diff --git a/runtime/bin/dartutils.h b/runtime/bin/dartutils.h
index 0b3e817..0c9ac19 100644
--- a/runtime/bin/dartutils.h
+++ b/runtime/bin/dartutils.h
@@ -127,6 +127,7 @@
   static void PrepareBuiltinLibrary(Dart_Handle builtin_lib,
                                     Dart_Handle internal_lib,
                                     bool is_service_isolate,
+                                    bool trace_loading,
                                     const char* package_root);
   static void PrepareCoreLibrary(Dart_Handle core_lib,
                                  Dart_Handle builtin_lib,
@@ -137,6 +138,7 @@
   static void PrepareIsolateLibrary(Dart_Handle isolate_lib);
   static Dart_Handle PrepareForScriptLoading(const char* package_root,
                                              bool is_service_isolate,
+                                             bool trace_loading,
                                              Dart_Handle builtin_lib);
   static void SetupIOLibrary(const char* script_uri);
 
@@ -181,8 +183,8 @@
 
   static Dart_Handle SetWorkingDirectory(Dart_Handle builtin_lib);
 
-  static Dart_Handle ResolveScriptUri(Dart_Handle script_uri,
-                                      Dart_Handle builtin_lib);
+  static Dart_Handle ResolveUriInWorkingDirectory(Dart_Handle script_uri,
+                                                  Dart_Handle builtin_lib);
 
   static Dart_Handle FilePathFromUri(Dart_Handle script_uri,
                                      Dart_Handle builtin_lib);
diff --git a/runtime/bin/embedded_dart_io.cc b/runtime/bin/embedded_dart_io.cc
new file mode 100644
index 0000000..1b3f40b
--- /dev/null
+++ b/runtime/bin/embedded_dart_io.cc
@@ -0,0 +1,20 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+#include "bin/embedded_dart_io.h"
+
+#include "bin/eventhandler.h"
+#include "bin/thread.h"
+
+namespace dart {
+namespace bin {
+
+void BootstrapDartIo() {
+  // Bootstrap 'dart:io' event handler.
+  Thread::InitOnce();
+  EventHandler::Start();
+}
+
+}  // namespace bin
+}  // namespace dart
diff --git a/runtime/bin/embedded_dart_io.h b/runtime/bin/embedded_dart_io.h
new file mode 100644
index 0000000..e19b21a
--- /dev/null
+++ b/runtime/bin/embedded_dart_io.h
@@ -0,0 +1,17 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+#ifndef BIN_EMBEDDED_DART_IO_H_
+#define BIN_EMBEDDED_DART_IO_H_
+
+namespace dart {
+namespace bin {
+
+// Bootstraps 'dart:io'.
+void BootstrapDartIo();
+
+}  // namespace bin
+}  // namespace dart
+
+#endif  // BIN_EMBEDDED_DART_IO_H_
diff --git a/runtime/bin/gen_snapshot.cc b/runtime/bin/gen_snapshot.cc
index be575c1..b55575d 100644
--- a/runtime/bin/gen_snapshot.cc
+++ b/runtime/bin/gen_snapshot.cc
@@ -196,19 +196,20 @@
 Dart_Isolate UriResolverIsolateScope::isolate = NULL;
 
 
-static Dart_Handle ResolveScriptUri(const char* script_uri) {
+static Dart_Handle ResolveUriInWorkingDirectory(const char* script_uri) {
   bool failed = false;
   char* result_string = NULL;
 
   {
     UriResolverIsolateScope scope;
 
-    // Run DartUtils::ResolveScriptUri in context of uri resolver isolate.
+    // Run DartUtils::ResolveUriInWorkingDirectory in context of uri resolver
+    // isolate.
     Dart_Handle builtin_lib =
         Builtin::LoadAndCheckLibrary(Builtin::kBuiltinLibrary);
     CHECK_RESULT(builtin_lib);
 
-    Dart_Handle result = DartUtils::ResolveScriptUri(
+    Dart_Handle result = DartUtils::ResolveUriInWorkingDirectory(
         DartUtils::NewString(script_uri), builtin_lib);
     if (Dart_IsError(result)) {
       failed = true;
@@ -310,7 +311,7 @@
   const char* mapped_library_url_string = DartUtils::MapLibraryUrl(
       url_mapping, library_url_string);
   if (mapped_library_url_string != NULL) {
-    library_url = ResolveScriptUri(mapped_library_url_string);
+    library_url = ResolveUriInWorkingDirectory(mapped_library_url_string);
     library_url_string = DartUtils::GetStringValue(library_url);
   }
 
@@ -356,7 +357,7 @@
   Dart_Handle resolved_url = url;
   if (mapped_url_string != NULL) {
     // Mapped urls are relative to working directory.
-    resolved_url = ResolveScriptUri(mapped_url_string);
+    resolved_url = ResolveUriInWorkingDirectory(mapped_url_string);
     if (Dart_IsError(resolved_url)) {
       return resolved_url;
     }
@@ -383,7 +384,7 @@
 
 
 static Dart_Handle LoadSnapshotCreationScript(const char* script_name) {
-  Dart_Handle resolved_script_uri = ResolveScriptUri(script_name);
+  Dart_Handle resolved_script_uri = ResolveUriInWorkingDirectory(script_name);
   if (Dart_IsError(resolved_script_uri)) {
     return resolved_script_uri;
   }
@@ -584,7 +585,10 @@
     // Prepare for script loading by setting up the 'print' and 'timer'
     // closures and setting up 'package root' for URI resolution.
     result =
-        DartUtils::PrepareForScriptLoading(package_root, false, builtin_lib);
+        DartUtils::PrepareForScriptLoading(package_root,
+                                           false,
+                                           false,
+                                           builtin_lib);
     CHECK_RESULT(result);
     Dart_ExitScope();
     Dart_ExitIsolate();
diff --git a/runtime/bin/main.cc b/runtime/bin/main.cc
index ef61bb4..db47bbc 100644
--- a/runtime/bin/main.cc
+++ b/runtime/bin/main.cc
@@ -65,9 +65,9 @@
 // dart functions and not run anything.
 static bool has_compile_all = false;
 
-// Global flag that is used to indicate that we want to print the source code
-// for script that is being run.
-static bool has_print_script = false;
+// Global flag that is used to indicate that we want to trace resolution of
+// URIs and the loading of libraries, parts and scripts.
+static bool has_trace_loading = false;
 
 
 static const char* DEFAULT_VM_SERVICE_SERVER_IP = "127.0.0.1";
@@ -282,17 +282,6 @@
 }
 
 
-static bool ProcessPrintScriptOption(const char* arg,
-                                     CommandLineOptions* vm_options) {
-  ASSERT(arg != NULL);
-  if (*arg != '\0') {
-    return false;
-  }
-  has_print_script = true;
-  return true;
-}
-
-
 static bool ProcessGenScriptSnapshotOption(const char* filename,
                                            CommandLineOptions* vm_options) {
   if (filename != NULL && strlen(filename) != 0) {
@@ -361,6 +350,16 @@
 }
 
 
+static bool ProcessTraceLoadingOption(const char* arg,
+                                      CommandLineOptions* vm_options) {
+  if (*arg != '\0') {
+    return false;
+  }
+  has_trace_loading = true;
+  return true;
+}
+
+
 static struct {
   const char* option_name;
   bool (*process)(const char* option, CommandLineOptions* vm_options);
@@ -378,10 +377,10 @@
   { "--compile_all", ProcessCompileAllOption },
   { "--debug", ProcessDebugOption },
   { "--snapshot=", ProcessGenScriptSnapshotOption },
-  { "--print-script", ProcessPrintScriptOption },
   { "--enable-vm-service", ProcessEnableVmServiceOption },
   { "--observe", ProcessObserveOption },
   { "--trace-debug-protocol", ProcessTraceDebugProtocolOption },
+  { "--trace-loading", ProcessTraceLoadingOption},
   { NULL, NULL }
 };
 
@@ -634,7 +633,10 @@
 
   // Prepare for script loading by setting up the 'print' and 'timer'
   // closures and setting up 'package root' for URI resolution.
-  result = DartUtils::PrepareForScriptLoading(package_root, false, builtin_lib);
+  result = DartUtils::PrepareForScriptLoading(package_root,
+                                              false,
+                                              has_trace_loading,
+                                              builtin_lib);
   CHECK_RESULT(result);
 
   result = Dart_SetEnvironmentCallback(EnvironmentCallback);
@@ -748,12 +750,13 @@
 "--snapshot=<file_name>\n"
 "  loads Dart script and generates a snapshot in the specified file\n"
 "\n"
-"--print-script\n"
-"  generates Dart source code back and prints it after parsing a Dart script\n"
+"--trace-loading\n"
+"  enables tracing of library and script loading\n"
 "\n"
 "--enable-vm-service[:<port number>]\n"
 "  enables the VM service and listens on specified port for connections\n"
 "  (default port number is 8181)\n"
+"\n"
 "--noopt\n"
 "  run unoptimized code only\n"
 "\n"
@@ -816,40 +819,6 @@
 }
 
 
-static Dart_Handle GenerateScriptSource() {
-  Dart_Handle library_url = Dart_LibraryUrl(Dart_RootLibrary());
-  if (Dart_IsError(library_url)) {
-    return library_url;
-  }
-  Dart_Handle script_urls = Dart_GetScriptURLs(library_url);
-  if (Dart_IsError(script_urls)) {
-    return script_urls;
-  }
-  intptr_t length;
-  Dart_Handle result = Dart_ListLength(script_urls, &length);
-  if (Dart_IsError(result)) {
-    return result;
-  }
-  for (intptr_t i = 0; i < length; i++) {
-    Dart_Handle script_url = Dart_ListGetAt(script_urls, i);
-    if (Dart_IsError(script_url)) {
-      return script_url;
-    }
-    result = Dart_GenerateScriptSource(library_url, script_url);
-    if (Dart_IsError(result)) {
-      return result;
-    }
-    const char* script_source = NULL;
-    result = Dart_StringToCString(result, &script_source);
-    if (Dart_IsError(result)) {
-      return result;
-    }
-    Log::Print("%s\n", script_source);
-  }
-  return Dart_True();
-}
-
-
 static const char* ServiceRequestError(Dart_Handle error) {
   TextBuffer buffer(128);
   buffer.Printf("{\"type\":\"Error\",\"text\":\"Internal error %s\"}",
@@ -1053,47 +1022,43 @@
                 "Unable to find root library for '%s'\n",
                 script_name);
     }
-    if (has_print_script) {
-      result = GenerateScriptSource();
-      DartExitOnError(result);
-    } else {
-      // The helper function _getMainClosure creates a closure for the main
-      // entry point which is either explicitly or implictly exported from the
-      // root library.
-      Dart_Handle main_closure = Dart_Invoke(
-          builtin_lib, Dart_NewStringFromCString("_getMainClosure"), 0, NULL);
-      DartExitOnError(main_closure);
 
-      // Set debug breakpoint if specified on the command line before calling
-      // the main function.
-      if (breakpoint_at != NULL) {
-        result = SetBreakpoint(breakpoint_at, root_lib);
-        if (Dart_IsError(result)) {
-          ErrorExit(kErrorExitCode,
-                    "Error setting breakpoint at '%s': %s\n",
-                    breakpoint_at,
-                    Dart_GetError(result));
-        }
+    // The helper function _getMainClosure creates a closure for the main
+    // entry point which is either explicitly or implictly exported from the
+    // root library.
+    Dart_Handle main_closure = Dart_Invoke(
+        builtin_lib, Dart_NewStringFromCString("_getMainClosure"), 0, NULL);
+    DartExitOnError(main_closure);
+
+    // Set debug breakpoint if specified on the command line before calling
+    // the main function.
+    if (breakpoint_at != NULL) {
+      result = SetBreakpoint(breakpoint_at, root_lib);
+      if (Dart_IsError(result)) {
+        ErrorExit(kErrorExitCode,
+                  "Error setting breakpoint at '%s': %s\n",
+                  breakpoint_at,
+                  Dart_GetError(result));
       }
-
-      // Call _startIsolate in the isolate library to enable dispatching the
-      // initial startup message.
-      const intptr_t kNumIsolateArgs = 2;
-      Dart_Handle isolate_args[kNumIsolateArgs];
-      isolate_args[0] = main_closure;                         // entryPoint
-      isolate_args[1] = CreateRuntimeOptions(&dart_options);  // args
-
-      Dart_Handle isolate_lib = Dart_LookupLibrary(
-          Dart_NewStringFromCString("dart:isolate"));
-      result = Dart_Invoke(isolate_lib,
-                           Dart_NewStringFromCString("_startMainIsolate"),
-                           kNumIsolateArgs, isolate_args);
-      DartExitOnError(result);
-
-      // Keep handling messages until the last active receive port is closed.
-      result = Dart_RunLoop();
-      DartExitOnError(result);
     }
+
+    // Call _startIsolate in the isolate library to enable dispatching the
+    // initial startup message.
+    const intptr_t kNumIsolateArgs = 2;
+    Dart_Handle isolate_args[kNumIsolateArgs];
+    isolate_args[0] = main_closure;                         // entryPoint
+    isolate_args[1] = CreateRuntimeOptions(&dart_options);  // args
+
+    Dart_Handle isolate_lib = Dart_LookupLibrary(
+        Dart_NewStringFromCString("dart:isolate"));
+    result = Dart_Invoke(isolate_lib,
+                         Dart_NewStringFromCString("_startMainIsolate"),
+                         kNumIsolateArgs, isolate_args);
+    DartExitOnError(result);
+
+    // Keep handling messages until the last active receive port is closed.
+    result = Dart_RunLoop();
+    DartExitOnError(result);
   }
 
   Dart_ExitScope();
diff --git a/runtime/bin/vmservice/loader.dart b/runtime/bin/vmservice/loader.dart
index 1c4ae95..2e04455 100644
--- a/runtime/bin/vmservice/loader.dart
+++ b/runtime/bin/vmservice/loader.dart
@@ -88,6 +88,6 @@
   } else if ((uri.scheme == 'data')) {
     _loadDataUri(sp, uri);
   } else {
-    sp.send('Unknown scheme for $uri');
+    sp.send('Unknown scheme (${uri.scheme}) for $uri');
   }
-}
\ No newline at end of file
+}
diff --git a/runtime/bin/vmservice_dartium.cc b/runtime/bin/vmservice_dartium.cc
index 725d204..a84365c 100644
--- a/runtime/bin/vmservice_dartium.cc
+++ b/runtime/bin/vmservice_dartium.cc
@@ -67,7 +67,7 @@
 
   // Prepare for script loading by setting up the 'print' and 'timer'
   // closures and setting up 'package root' for URI resolution.
-  result = DartUtils::PrepareForScriptLoading(NULL, true, builtin_lib);
+  result = DartUtils::PrepareForScriptLoading(NULL, true, false, builtin_lib);
   CHECK_RESULT(result);
 
   ASSERT(Dart_IsServiceIsolate(isolate));
diff --git a/runtime/bin/vmservice_impl.cc b/runtime/bin/vmservice_impl.cc
index 4a54291..e830389 100644
--- a/runtime/bin/vmservice_impl.cc
+++ b/runtime/bin/vmservice_impl.cc
@@ -172,7 +172,7 @@
 
   // Prepare for script loading by setting up the 'print' and 'timer'
   // closures and setting up 'package root' for URI resolution.
-  result = DartUtils::PrepareForScriptLoading(NULL, true, builtin_lib);
+  result = DartUtils::PrepareForScriptLoading(NULL, true, false, builtin_lib);
   SHUTDOWN_ON_ERROR(result);
 
   // Load main script.
diff --git a/runtime/dart-runtime.gyp b/runtime/dart-runtime.gyp
index d64b9a9..f9795a8 100644
--- a/runtime/dart-runtime.gyp
+++ b/runtime/dart-runtime.gyp
@@ -15,7 +15,8 @@
     'version_in_cc_file': 'vm/version_in.cc',
     'version_cc_file': '<(gen_source_dir)/version.cc',
 
-    'libdart_deps': ['libdart_lib_withcore', 'libdart_lib', 'libdart_vm',
+    'libdart_deps': ['libdart_lib_nosnapshot', 'libdart_lib',
+                     'libdart_vm_nosnapshot', 'libdart_vm',
                      'libdouble_conversion',],
   },
   'targets': [
@@ -93,7 +94,7 @@
       'type': 'executable',
       'toolsets':['target'],
       # The dependencies here are the union of the dependencies of libdart and
-      # libdart_withcore.
+      # libdart_nosnapshot.
       'dependencies': ['<@(libdart_deps)'],
       'sources': [
         'vm/libdart_dependency_helper.cc',
@@ -104,7 +105,7 @@
       'type': 'executable',
       'toolsets':['host'],
       # The dependencies here are the union of the dependencies of libdart and
-      # libdart_withcore.
+      # libdart_nosnapshot.
       'dependencies': ['<@(libdart_deps)'],
       'sources': [
         'vm/libdart_dependency_helper.cc',
diff --git a/runtime/lib/array_patch.dart b/runtime/lib/array_patch.dart
index 109938b..e422e30 100644
--- a/runtime/lib/array_patch.dart
+++ b/runtime/lib/array_patch.dart
@@ -33,7 +33,7 @@
   }
 
   /* patch */ factory List.from(Iterable elements, { bool growable: true }) {
-    if (elements is EfficientLength) {
+    if (elements is EfficientLengthIterable) {
       int length = elements.length;
       var list = growable ? new _GrowableList<E>(length) : new _List<E>(length);
       int i = 0;
diff --git a/runtime/lib/collection_patch.dart b/runtime/lib/collection_patch.dart
index 8ed4e91..be2a2dd 100644
--- a/runtime/lib/collection_patch.dart
+++ b/runtime/lib/collection_patch.dart
@@ -432,8 +432,8 @@
   _HashMapEntry(this.key, this.value, this.hashCode, this.next);
 }
 
-abstract class _HashMapIterable<E> extends IterableBase<E>
-                                   implements EfficientLength {
+abstract class _HashMapIterable<E> extends Iterable<E>
+                                   implements EfficientLengthIterable<E> {
   final HashMap _map;
   _HashMapIterable(this._map);
   int get length => _map.length;
@@ -835,8 +835,8 @@
   }
 }
 
-class _LinkedHashMapKeyIterable<K> extends IterableBase<K>
-                                   implements EfficientLength {
+class _LinkedHashMapKeyIterable<K> extends Iterable<K>
+                                   implements EfficientLengthIterable<K> {
   LinkedHashMap<K, dynamic> _map;
   _LinkedHashMapKeyIterable(this._map);
   Iterator<K> get iterator => new _LinkedHashMapKeyIterator<K>(_map);
@@ -847,8 +847,8 @@
   Set<K> toSet() => _map._newKeySet()..addAll(this);
 }
 
-class _LinkedHashMapValueIterable<V> extends IterableBase<V>
-                                     implements EfficientLength {
+class _LinkedHashMapValueIterable<V> extends Iterable<V>
+                                     implements EfficientLengthIterable<V> {
   LinkedHashMap<dynamic, V> _map;
   _LinkedHashMapValueIterable(this._map);
   Iterator<V> get iterator => new _LinkedHashMapValueIterator<V>(_map);
diff --git a/runtime/lib/developer.cc b/runtime/lib/developer.cc
new file mode 100644
index 0000000..786e5de
--- /dev/null
+++ b/runtime/lib/developer.cc
@@ -0,0 +1,40 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+#include "vm/bootstrap_natives.h"
+
+#include "include/dart_api.h"
+
+#include "vm/debugger.h"
+#include "vm/exceptions.h"
+#include "vm/native_entry.h"
+#include "vm/object.h"
+#include "vm/object_store.h"
+#include "vm/service.h"
+
+namespace dart {
+
+// Native implementations for the dart:developer library.
+
+DEFINE_NATIVE_ENTRY(Developer_debugger, 2) {
+  GET_NON_NULL_NATIVE_ARGUMENT(Bool, when, arguments->NativeArgAt(0));
+  GET_NATIVE_ARGUMENT(String, msg, arguments->NativeArgAt(1));
+  Debugger* debugger = isolate->debugger();
+  if (!debugger) {
+    return when.raw();
+  }
+  if (when.value()) {
+    debugger->BreakHere(msg);
+  }
+  return when.raw();
+}
+
+
+DEFINE_NATIVE_ENTRY(Developer_inspect, 1) {
+  GET_NATIVE_ARGUMENT(Instance, inspectee, arguments->NativeArgAt(0));
+  Service::SendInspectEvent(isolate, inspectee);
+  return inspectee.raw();
+}
+
+}  // namespace dart
diff --git a/runtime/lib/developer.dart b/runtime/lib/developer.dart
new file mode 100644
index 0000000..689f23e
--- /dev/null
+++ b/runtime/lib/developer.dart
@@ -0,0 +1,7 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+patch bool debugger({bool when: true, String msg}) native "Developer_debugger";
+
+patch inspect(object) native "Developer_inspect";
diff --git a/runtime/lib/developer_sources.gypi b/runtime/lib/developer_sources.gypi
new file mode 100644
index 0000000..4bedb67
--- /dev/null
+++ b/runtime/lib/developer_sources.gypi
@@ -0,0 +1,13 @@
+# Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+# Sources visible via dart:developer library.
+
+{
+  'sources': [
+    'developer.cc',
+    'developer.dart',
+  ],
+}
+
diff --git a/runtime/lib/growable_array.dart b/runtime/lib/growable_array.dart
index bd79837..482e9c0 100644
--- a/runtime/lib/growable_array.dart
+++ b/runtime/lib/growable_array.dart
@@ -157,7 +157,7 @@
         (cid == ClassID.cidArray) ||
         (cid == ClassID.cidGrowableObjectArray) ||
         (cid == ClassID.cidImmutableArray);
-    if (isVMList || (iterable is EfficientLength)) {
+    if (isVMList || (iterable is EfficientLengthIterable)) {
       var cap = _capacity;
       // Pregrow if we know iterable.length.
       var iterLen = iterable.length;
diff --git a/runtime/lib/immutable_map.dart b/runtime/lib/immutable_map.dart
index 2377c8c..b4fcbcf 100644
--- a/runtime/lib/immutable_map.dart
+++ b/runtime/lib/immutable_map.dart
@@ -84,8 +84,8 @@
   }
 }
 
-class _ImmutableMapKeyIterable<E> extends IterableBase<E>
-                                  implements EfficientLength {
+class _ImmutableMapKeyIterable<E> extends Iterable<E>
+                                  implements EfficientLengthIterable<E> {
   final ImmutableMap _map;
   _ImmutableMapKeyIterable(this._map);
 
@@ -96,8 +96,8 @@
   int get length => _map.length;
 }
 
-class _ImmutableMapValueIterable<E> extends IterableBase<E>
-                                    implements EfficientLength {
+class _ImmutableMapValueIterable<E> extends Iterable<E>
+                                    implements EfficientLengthIterable<E> {
   final ImmutableMap _map;
   _ImmutableMapValueIterable(this._map);
 
diff --git a/runtime/lib/object.cc b/runtime/lib/object.cc
index 56a3872..d67dafc 100644
--- a/runtime/lib/object.cc
+++ b/runtime/lib/object.cc
@@ -16,7 +16,6 @@
 
 namespace dart {
 
-DECLARE_FLAG(bool, enable_type_checks);
 DECLARE_FLAG(bool, trace_type_checks);
 DECLARE_FLAG(bool, warn_on_javascript_compatibility);
 
diff --git a/runtime/lib/string_patch.dart b/runtime/lib/string_patch.dart
index 11db8fe..4547fa5 100644
--- a/runtime/lib/string_patch.dart
+++ b/runtime/lib/string_patch.dart
@@ -157,7 +157,7 @@
   static String _createStringFromIterable(Iterable<int> charCodes,
                                           int start, int end) {
     // Treat charCodes as Iterable.
-    if (charCodes is EfficientLength) {
+    if (charCodes is EfficientLengthIterable) {
       int length = charCodes.length;
       end = RangeError.checkValidRange(start, end, length);
       List charCodeList = new List.from(charCodes.take(end).skip(start),
diff --git a/runtime/observatory/lib/service.dart b/runtime/observatory/lib/service.dart
index c1af206..7715717 100644
--- a/runtime/observatory/lib/service.dart
+++ b/runtime/observatory/lib/service.dart
@@ -6,6 +6,7 @@
 
 import 'dart:async';
 import 'dart:typed_data';
+import 'dart:math' as math;
 
 import 'package:logging/logging.dart';
 import 'package:observatory/cpu_profile.dart';
diff --git a/runtime/observatory/lib/src/app/application.dart b/runtime/observatory/lib/src/app/application.dart
index 3aad424..0f37816 100644
--- a/runtime/observatory/lib/src/app/application.dart
+++ b/runtime/observatory/lib/src/app/application.dart
@@ -107,6 +107,10 @@
         notifications.add(event);
         break;
 
+      case ServiceEvent.kInspect:
+        notifications.add(event);
+        break;
+
       default:
         // Ignore unrecognized events.
         Logger.root.severe('Unrecognized event: $event');
diff --git a/runtime/observatory/lib/src/elements/class_view.html b/runtime/observatory/lib/src/elements/class_view.html
index eadd09b..0dddf08 100644
--- a/runtime/observatory/lib/src/elements/class_view.html
+++ b/runtime/observatory/lib/src/elements/class_view.html
@@ -199,18 +199,16 @@
         </template>
     </div>
 
-    <hr>
-
-    <div class="content">
+    <div class="content-centered-big">
+      <hr>
       <eval-box callback="{{ eval }}"></eval-box>
+      <hr>
+      <script-inset script="{{ cls.script }}"
+                    startPos="{{ cls.tokenPos }}"
+                    endPos="{{ cls.endTokenPos }}">
+      </script-inset>
     </div>
 
-    <hr>
-    <script-inset script="{{ cls.script }}"
-                  startPos="{{ cls.tokenPos }}"
-                  endPos="{{ cls.endTokenPos }}">
-    </script-inset>
-
     <view-footer></view-footer>
   </template>
 </polymer-element>
diff --git a/runtime/observatory/lib/src/elements/debugger.dart b/runtime/observatory/lib/src/elements/debugger.dart
index 7b8364b..b0efa0f 100644
--- a/runtime/observatory/lib/src/elements/debugger.dart
+++ b/runtime/observatory/lib/src/elements/debugger.dart
@@ -1086,6 +1086,7 @@
       case ServiceEvent.kIsolateStart:
       case ServiceEvent.kGraph:
       case ServiceEvent.kGC:
+      case ServiceEvent.kInspect:
         break;
 
       default:
diff --git a/runtime/observatory/lib/src/elements/debugger.html b/runtime/observatory/lib/src/elements/debugger.html
index b2a2b65..e31dda9 100644
--- a/runtime/observatory/lib/src/elements/debugger.html
+++ b/runtime/observatory/lib/src/elements/debugger.html
@@ -250,11 +250,12 @@
           <div class="flex-row">
             <div class="flex-item-60-percent">
               <script-inset height="{{ scriptHeight }}"
-			    script="{{ frame['function'].script }}"
+                            script="{{ frame['function'].script }}"
                             startPos="{{ frame['function'].tokenPos }}"
                             endPos="{{ frame['function'].endTokenPos }}"
                             currentPos="{{ frame['tokenPos'] }}"
-                            inDebuggerContext="{{ true }}">
+                            inDebuggerContext="{{ true }}"
+                            variables="{{ frame['vars'] }}">
               </script-inset>
             </div>
             <div class="flex-item-40-percent">
diff --git a/runtime/observatory/lib/src/elements/function_view.html b/runtime/observatory/lib/src/elements/function_view.html
index 8f4eab3..47342f4 100644
--- a/runtime/observatory/lib/src/elements/function_view.html
+++ b/runtime/observatory/lib/src/elements/function_view.html
@@ -96,11 +96,13 @@
        </div>
     </div>
 
-    <hr>
-    <script-inset script="{{ function.script }}"
-                  startPos="{{ function.tokenPos }}"
-                  endPos="{{ function.endTokenPos }}">
-    </script-inset>
+    <div class="content-centered-big">
+      <hr>
+      <script-inset script="{{ function.script }}"
+                    startPos="{{ function.tokenPos }}"
+                    endPos="{{ function.endTokenPos }}">
+      </script-inset>
+    </div>
 
     <view-footer></view-footer>
   </template>
diff --git a/runtime/observatory/lib/src/elements/nav_bar.html b/runtime/observatory/lib/src/elements/nav_bar.html
index 218b75d..e9c782e 100644
--- a/runtime/observatory/lib/src/elements/nav_bar.html
+++ b/runtime/observatory/lib/src/elements/nav_bar.html
@@ -333,6 +333,13 @@
         <a class="boxclose" on-click="{{ closeItem }}">&times;</a>
       </div>
     </template>
+    <template if="{{ event.eventType == 'Inspect' }}">
+      <div class="item">
+        Inspect <any-service-ref ref="{{ event.inspectee }}"></any-service-ref>
+        <br><br>
+        <a class="boxclose" on-click="{{ closeItem }}">&times;</a>
+      </div>
+    </template>
   </template>
 </polymer-element>
 
diff --git a/runtime/observatory/lib/src/elements/observatory_element.dart b/runtime/observatory/lib/src/elements/observatory_element.dart
index f516bac..8efc7b5 100644
--- a/runtime/observatory/lib/src/elements/observatory_element.dart
+++ b/runtime/observatory/lib/src/elements/observatory_element.dart
@@ -196,4 +196,35 @@
     anchorElement.onClick.listen(onClickGoto);
     shadowRoot.children.add(anchorElement);
   }
+
+
+  var _onCopySubscription;
+  /// Exclude nodes from being copied, for example the line numbers and
+  /// breakpoint toggles in script insets. Must be called after [root]'s
+  /// children have been added, and only supports one node at a time.
+  void makeCssClassUncopyable(Element root, String className) {
+    var noCopyNodes = root.getElementsByClassName(className);
+    for (var node in noCopyNodes) {
+      node.style.setProperty('-moz-user-select', 'none');
+      node.style.setProperty('-khtml-user-select', 'none');
+      node.style.setProperty('-webkit-user-select', 'none');
+      node.style.setProperty('-ms-user-select', 'none');
+      node.style.setProperty('user-select', 'none');
+    }
+    if (_onCopySubscription != null) {
+      _onCopySubscription.cancel();
+    }
+    _onCopySubscription = root.onCopy.listen((event) {
+      // Mark the nodes as hidden before the copy happens, then mark them as
+      // visible on the next event loop turn.
+      for (var node in noCopyNodes) {
+        node.style.visibility = 'hidden';
+      }
+      Timer.run(() {
+        for (var node in noCopyNodes) {
+          node.style.visibility = 'visible';
+        }
+      });
+    });
+  }
 }
diff --git a/runtime/observatory/lib/src/elements/script_inset.dart b/runtime/observatory/lib/src/elements/script_inset.dart
index 1c158c0..f2610bc 100644
--- a/runtime/observatory/lib/src/elements/script_inset.dart
+++ b/runtime/observatory/lib/src/elements/script_inset.dart
@@ -9,6 +9,7 @@
 import 'observatory_element.dart';
 import 'service_ref.dart';
 import 'package:observatory/service.dart';
+import 'package:observatory/utils.dart';
 import 'package:polymer/polymer.dart';
 
 const nbsp = "\u00A0";
@@ -95,6 +96,24 @@
   }
 }
 
+class LocalVariableAnnotation extends Annotation {
+  final value;
+
+  LocalVariableAnnotation(LocalVarLocation location, this.value) {
+    line = location.line;
+    columnStart = location.column;
+    columnStop = location.endColumn;
+  }
+
+  void applyStyleTo(element) {
+    if (element == null) {
+      return;  // TODO(rmacnak): Handling overlapping annotations.
+    }
+    element.style.fontWeight = "bold";
+    element.title = "${value.shortName}";
+  }
+}
+
 class CallSiteAnnotation extends Annotation {
   CallSite callSite;
 
@@ -219,6 +238,7 @@
   @published int startPos;
   @published int endPos;
   @published bool inDebuggerContext = false;
+  @published ObservableList variables;
 
   int _currentLine;
   int _currentCol;
@@ -251,20 +271,24 @@
   }
 
   void currentPosChanged(oldValue) {
-    update();
+    _updateTask.queue();
     _scrollToCurrentPos();
   }
 
   void startPosChanged(oldValue) {
-    update();
+    _updateTask.queue();
   }
 
   void endPosChanged(oldValue) {
-    update();
+    _updateTask.queue();
   }
 
   void scriptChanged(oldValue) {
-    update();
+    _updateTask.queue();
+  }
+
+  void variablesChanged(oldValue) {
+    _updateTask.queue();
   }
 
   Element a(String text) => new AnchorElement()..text = text;
@@ -288,7 +312,9 @@
 
   Element container;
 
+  Task _updateTask;
   void update() {
+    assert(_updateTask != null);
     if (script == null) {
       // We may have previously had a script.
       if (container != null) {
@@ -315,6 +341,7 @@
     }
     container.children.clear();
     container.children.add(table);
+    makeCssClassUncopyable(table, "noCopy");
   }
 
   void loadFunctionsOf(Library lib) {
@@ -376,6 +403,22 @@
       }
     }
 
+    // We have local variable information.
+    if (variables != null) {
+      // For each variable.
+      for (var variable in variables) {
+        // Find variable usage locations.
+        var locations = script.scanForLocalVariableLocations(
+              variable['name'], variable['tokenPos'], variable['endTokenPos']);
+
+        // Annotate locations.
+        for (var location in locations) {
+          annotations.add(new LocalVariableAnnotation(location,
+                                                      variable['value']));
+        }
+      }
+    }
+
     annotations.sort();
   }
 
@@ -449,25 +492,25 @@
     var busy = false;
     if (line == null || !line.possibleBpt) {
       e.classes.add("emptyBreakpoint");
+      e.classes.add('noCopy');
       e.text = nbsp;
       return e;
     }
     e.text = 'B';
     update() {
+      e.classes.clear();
+      e.classes.add('noCopy');
+
       if (busy) {
-        e.classes.clear();
         e.classes.add("busyBreakpoint");
       } else {
         if (line.breakpoints != null) {
           if (line.breakpointResolved) {
-            e.classes.clear();
             e.classes.add("resolvedBreakpoint");
           } else {
-            e.classes.clear();
             e.classes.add("unresolvedBreakpoint");
           }
         } else {
-          e.classes.clear();
           e.classes.add("possibleBreakpoint");
         }
       }
@@ -504,6 +547,7 @@
   Element lineNumberElement(ScriptLine line) {
     var lineNumber = line == null ? "..." : line.line;
     var e = span("$nbsp$lineNumber$nbsp");
+    e.classes.add('noCopy');
 
     if ((line == null) || (line.hits == null)) {
       hitsUnknown(e);
@@ -553,8 +597,14 @@
       consumeUntil(line.text.length);
     }
 
+    // So blank lines are included when copying script to the clipboard.
+    e.append(span('\n'));
+
     return e;
   }
 
-  ScriptInsetElement.created() : super.created();
+  ScriptInsetElement.created()
+      : super.created() {
+    _updateTask = new Task(update);
+  }
 }
diff --git a/runtime/observatory/lib/src/elements/script_inset.html b/runtime/observatory/lib/src/elements/script_inset.html
index 313a84f..7fdbcbf 100644
--- a/runtime/observatory/lib/src/elements/script_inset.html
+++ b/runtime/observatory/lib/src/elements/script_inset.html
@@ -7,50 +7,51 @@
       .sourceInset {
       }
       .sourceTable {
-      display: table;
-      background-color: #f5f5f5;
-      border: 1px solid #ccc;
-      padding: 10px;
-      overflow-y: auto;
-      width: 100%;
-      box-sizing: border-box;
+        display: table;
+        background-color: #f5f5f5;
+        border: 1px solid #ccc;
+        padding: 10px;
+        width: 100%;
+        box-sizing: border-box;
       }
       .sourceRow {
-      display: table-row;
+        display: table-row;
       }
       .sourceItem, .sourceItemCurrent {
-      display: table-cell;
-      vertical-align: top;
-      font: 400 14px consolas, courier, monospace;
-      line-height: 125%;
-      white-space: pre;
+        display: table-cell;
+        vertical-align: top;
+        font: 400 14px consolas, courier, monospace;
+        line-height: 125%;
+        white-space: pre;
+        max-width: 0;
+	overflow-x: hidden;
       }
       .currentLine {
-      background-color: #fff;
+        background-color: #fff;
       }
       .currentCol {
-      background-color: #6cf;
+        background-color: #6cf;
       }
       .hitsNone, .hitsNotExecuted, .hitsExecuted {
-      display: table-cell;
-      vertical-align: top;
-      font: 400 14px consolas, courier, monospace;
-      min-width: 32px;
-      text-align: right;
-      color: #a8a8a8;
+        display: table-cell;
+        vertical-align: top;
+        font: 400 14px consolas, courier, monospace;
+        width: 4em;
+        text-align: right;
+        color: #a8a8a8;
       }
       .hitsNotExecuted {
-      background-color: #EEA7A7;
+        background-color: #EEA7A7;
       }
       .hitsExecuted {
-      background-color: #9BDD9B;
+        background-color: #9BDD9B;
       }
-
+      .noCopy {}
       .emptyBreakpoint, .possibleBreakpoint, .busyBreakpoint, .unresolvedBreakpoint, .resolvedBreakpoint  {
         display: table-cell;
         vertical-align: top;
         font: 400 14px consolas, courier, monospace;
-        min-width: 1em;
+        width: 1em;
         text-align: center;
         cursor: pointer;
       }
diff --git a/runtime/observatory/lib/src/elements/script_view.html b/runtime/observatory/lib/src/elements/script_view.html
index a4aa02d..575a1ce 100644
--- a/runtime/observatory/lib/src/elements/script_view.html
+++ b/runtime/observatory/lib/src/elements/script_view.html
@@ -17,18 +17,13 @@
     <nav-refresh callback="{{ refresh }}"></nav-refresh>
   </nav-bar>
 
-  <template if="{{ app.locationManager.internalArguments['pos'] == null }}">
-    <script-inset id="scriptInset" script="{{ script }}">
-      <h1>script {{ script.name }}</h1>
-    </script-inset>
-  </template>
-
-  <template if="{{ app.locationManager.internalArguments['pos'] != null }}">
+  <div class="content-centered-big">
+    <h1>script {{ script.name }}</h1>
+    <hr>
     <script-inset id="scriptInset" script="{{ script }}"
                   currentPos="{{ app.locationManager.internalArguments['pos'] | parseInt }}">
-      <h1>script {{ script.name }}</h1>
     </script-inset>
-  </template>
+  </div>
 
   <view-footer></view-footer>
 </template>
diff --git a/runtime/observatory/lib/src/elements/view_footer.html b/runtime/observatory/lib/src/elements/view_footer.html
index f5816d5..aa82cca 100644
--- a/runtime/observatory/lib/src/elements/view_footer.html
+++ b/runtime/observatory/lib/src/elements/view_footer.html
@@ -5,16 +5,18 @@
   <template><link rel="stylesheet" href="css/shared.css">
     <br><br><br><br>
     <br><br><br><br>
-    <p align="right">
-      <a href="https://www.dartlang.org/tools/observatory/">
+    <div align="right" style="padding: 1em">
+    <p>
+      <a href="https://www.dartlang.org/tools/observatory/" style="font-size:90%">
 	View documentation
       </a>
     </p>
-    <p align="right">
-      <a href="https://code.google.com/p/dart/issues/entry?template=Observatory">
+    <p>
+      <a href="https://code.google.com/p/dart/issues/entry?template=Observatory" style="font-size:90%">
         File a bug report
       </a>
     </p>
+   </div>
   </template>
 </polymer-element>
 
diff --git a/runtime/observatory/lib/src/service/object.dart b/runtime/observatory/lib/src/service/object.dart
index 44d7d65..fb119f8 100644
--- a/runtime/observatory/lib/src/service/object.dart
+++ b/runtime/observatory/lib/src/service/object.dart
@@ -1067,6 +1067,7 @@
     switch(event.eventType) {
       case ServiceEvent.kIsolateStart:
       case ServiceEvent.kIsolateExit:
+      case ServiceEvent.kInspect:
         // Handled elsewhere.
         break;
 
@@ -1455,6 +1456,7 @@
   static const kBreakpointRemoved  = 'BreakpointRemoved';
   static const kGraph              = '_Graph';
   static const kGC                 = 'GC';
+  static const kInspect            = 'Inspect';
   static const kConnectionClosed   = 'ConnectionClosed';
 
   ServiceEvent._empty(ServiceObjectOwner owner) : super._empty(owner);
@@ -1467,6 +1469,7 @@
   @observable Breakpoint breakpoint;
   @observable ServiceMap topFrame;
   @observable ServiceMap exception;
+  @observable ServiceObject inspectee;
   @observable ByteData data;
   @observable int count;
   @observable String reason;
@@ -1487,6 +1490,9 @@
     if (map['exception'] != null) {
       exception = map['exception'];
     }
+    if (map['inspectee'] != null) {
+      inspectee = map['inspectee'];
+    }
     if (map['_data'] != null) {
       data = map['_data'];
     }
@@ -1824,7 +1830,15 @@
     _loaded = true;
   }
 
-  String get shortName => valueAsString != null ? valueAsString : 'a ${clazz.name}';
+  String get shortName {
+    if (isClosure) {
+      return closureFunc.qualifiedName;
+    }
+    if (valueAsString != null) {
+      return valueAsString;
+    }
+    return 'a ${clazz.name}';
+  }
 
   String toString() => 'Instance($shortName)';
 }
@@ -2062,6 +2076,8 @@
   }
   bool _isBlank;
 
+  bool get isTrivialLine => !possibleBpt;
+
   static bool _isTrivialToken(String token) {
     if (token == 'else') {
       return true;
@@ -2082,6 +2098,9 @@
   }
 
   static bool _isTrivialLine(String text) {
+    if (text.trimLeft().startsWith('//')) {
+      return true;
+    }
     var wsTokens = text.split(new RegExp(r"(\s)+"));
     for (var wsToken in wsTokens) {
       var tokens = wsToken.split(new RegExp(r"(\b)"));
@@ -2169,6 +2188,14 @@
   String toString() => "CallSiteEntry(${receiverContainer.name}, $count)";
 }
 
+/// The location of a local variable reference in a script.
+class LocalVarLocation {
+  final int line;
+  final int column;
+  final int endColumn;
+  LocalVarLocation(this.line, this.column, this.endColumn);
+}
+
 class Script extends ServiceObject with Coverage {
   Set<CallSite> callSites = new Set<CallSite>();
   final lines = new ObservableList<ScriptLine>();
@@ -2325,6 +2352,120 @@
       getLine(line).removeBreakpoint(bpt);
     }
   }
+
+  List<LocalVarLocation> scanLineForLocalVariableLocations(Pattern pattern,
+                                                            String name,
+                                                            String lineContents,
+                                                            int lineNumber,
+                                                            int columnOffset) {
+    var r = <LocalVarLocation>[];
+
+    pattern.allMatches(lineContents).forEach((Match match) {
+      // We have a match but our regular expression may have matched extra
+      // characters on either side of the name. Tighten the location.
+      var nameStart = match.input.indexOf(name, match.start);
+      var column = nameStart + columnOffset;
+      var endColumn = column + name.length;
+      var localVarLocation = new LocalVarLocation(lineNumber,
+                                                  column,
+                                                  endColumn);
+      r.add(localVarLocation);
+    });
+
+    return r;
+  }
+
+  List<LocalVarLocation> scanForLocalVariableLocations(String name,
+                                                       int tokenPos,
+                                                       int endTokenPos) {
+    // A pattern that matches:
+    // start of line OR non-(alpha numeric OR period) character followed by
+    // name followed by
+    // a non-alpha numerc character.
+    //
+    // NOTE: This pattern can over match on both ends. This is corrected for
+    // [scanLineForLocalVariableLocationse].
+    var pattern = new RegExp("(^|[^A-Za-z0-9\.])$name[^A-Za-z0-9]");
+
+    // Result.
+    var r = <LocalVarLocation>[];
+
+    // Limits.
+    final lastLine = tokenToLine(endTokenPos);
+    if (lastLine == null) {
+      return r;
+    }
+    
+    final lastColumn = tokenToCol(endTokenPos);
+    if (lastColumn == null) {
+      return r;
+    }
+    // Current scan position.
+    var line = tokenToLine(tokenPos);
+    if (line == null) {
+      return r;
+    }
+    var column = tokenToCol(tokenPos);
+    if (column == null) {
+      return r;
+    }
+
+    // Move back by name length.
+    // TODO(johnmccutchan): Fix LocalVarDescriptor to set column before the
+    // identifier name.
+    column = math.max(0, column - name.length);
+
+    var lineContents;
+
+    if (line == lastLine) {
+      // Only one line.
+      if (!getLine(line).isTrivialLine) {
+        lineContents = getLine(line).text.substring(column, lastColumn - 1);
+        return scanLineForLocalVariableLocations(pattern,
+                                                  name,
+                                                  lineContents,
+                                                  line,
+                                                  column);
+      }
+    }
+
+    // Scan first line.
+    if (!getLine(line).isTrivialLine) {
+      lineContents = getLine(line).text.substring(column);
+      r.addAll(scanLineForLocalVariableLocations(pattern,
+                                                  name,
+                                                  lineContents,
+                                                  line++,
+                                                  column));
+    }
+
+    // Scan middle lines.
+    while (line < (lastLine - 1)) {
+      if (getLine(line).isTrivialLine) {
+        line++;
+        continue;
+      }
+      lineContents = getLine(line).text;
+      r.addAll(
+          scanLineForLocalVariableLocations(pattern,
+                                             name,
+                                             lineContents,
+                                             line++,
+                                             0));
+    }
+
+    // Scan last line.
+    if (!getLine(line).isTrivialLine) {
+      lineContents = getLine(line).text.substring(0, lastColumn - 1);
+      r.addAll(
+          scanLineForLocalVariableLocations(pattern,
+                                             name,
+                                             lineContents,
+                                             line,
+                                             0));
+    }
+    return r;
+  }
 }
 
 class PcDescriptor extends Observable {
diff --git a/runtime/observatory/lib/utils.dart b/runtime/observatory/lib/utils.dart
index 522a11e..c696529 100644
--- a/runtime/observatory/lib/utils.dart
+++ b/runtime/observatory/lib/utils.dart
@@ -4,6 +4,7 @@
 
 library utils;
 
+import 'dart:async';
 import 'dart:math';
 
 class Utils {
@@ -140,3 +141,24 @@
 
   static bool runningInJavaScript() => identical(1.0, 1);
 }
+
+/// A [Task] that can be scheduled on the Dart event queue.
+class Task {
+  Timer _timer;
+  final Function callback;
+
+  Task(this.callback);
+
+  /// Queue [this] to run on the next Dart event queue pump. Does nothing
+  /// if [this] is already queued.
+  queue() {
+    if (_timer != null) {
+      // Already scheduled.
+      return;
+    }
+    _timer = new Timer(Duration.ZERO, () {
+     _timer = null;
+     callback();
+    });
+  }
+}
diff --git a/runtime/observatory/maintainers/pubspec.template b/runtime/observatory/maintainers/pubspec.template
index c6b306c..daed864 100644
--- a/runtime/observatory/maintainers/pubspec.template
+++ b/runtime/observatory/maintainers/pubspec.template
@@ -12,6 +12,7 @@
     commandLineOptions: [--show-package-warnings]
 dependencies:
   args: any
+  charted: any
   polymer: any
-  unittest: any
+  unittest: < 0.12.0
   usage: any
diff --git a/runtime/observatory/observatory.gypi b/runtime/observatory/observatory.gypi
index a53185f..156caad 100644
--- a/runtime/observatory/observatory.gypi
+++ b/runtime/observatory/observatory.gypi
@@ -63,7 +63,7 @@
           ],
           'outputs': [
             '<(PRODUCT_DIR)/observatory/build/web/index.html',
-            '<(PRODUCT_DIR)/observatory/build/web/index.html_bootstrap.dart.js',
+            '<(PRODUCT_DIR)/observatory/build/web/index.html.polymer.bootstrap.dart.js',
           ],
           'action': [
             'python',
@@ -81,11 +81,11 @@
           'inputs': [
             '../../tools/observatory_tool.py',
             '<(PRODUCT_DIR)/observatory/build/web/index.html',
-            '<(PRODUCT_DIR)/observatory/build/web/index.html_bootstrap.dart.js',
+            '<(PRODUCT_DIR)/observatory/build/web/index.html.polymer.bootstrap.dart.js',
           ],
           'outputs': [
             '<(PRODUCT_DIR)/observatory/deployed/web/index.html',
-            '<(PRODUCT_DIR)/observatory/deployed/web/index.html_bootstrap.dart.js',
+            '<(PRODUCT_DIR)/observatory/deployed/web/index.html.polymer.bootstrap.dart.js',
           ],
           'action': [
             'python',
diff --git a/runtime/observatory/pubspec.yaml b/runtime/observatory/pubspec.yaml
index ccdc3f7..294aa1d 100644
--- a/runtime/observatory/pubspec.yaml
+++ b/runtime/observatory/pubspec.yaml
@@ -7,13 +7,14 @@
     inline_stylesheets:
       lib/src/elements/css/shared.css: false
 - $dart2js:
+    $include: "**/*.polymer.bootstrap.dart"
     suppressWarnings: false
-    $exclude: web/main.dart
     commandLineOptions: [--show-package-warnings]
 dependencies:
   args: any
+  charted: any
   polymer: any
-  unittest: any
+  unittest: < 0.12.0
   usage: any
 dependency_overrides:
   analyzer:
@@ -24,6 +25,8 @@
     path: ../../third_party/observatory_pub_packages/barback
   browser:
     path: ../../third_party/observatory_pub_packages/browser
+  charted:
+    path: ../../third_party/observatory_pub_packages/charted
   cli_util:
     path: ../../third_party/observatory_pub_packages/cli_util
   code_transformers:
@@ -36,10 +39,12 @@
     path: ../../third_party/observatory_pub_packages/dart_style
   glob:
     path: ../../third_party/observatory_pub_packages/glob
-  html5lib:
-    path: ../../third_party/observatory_pub_packages/html5lib
+  html:
+    path: ../../third_party/observatory_pub_packages/html
   initialize:
     path: ../../third_party/observatory_pub_packages/initialize
+  intl:
+    path: ../../third_party/observatory_pub_packages/intl
   logging:
     path: ../../third_party/observatory_pub_packages/logging
   matcher:
@@ -48,12 +53,18 @@
     path: ../../third_party/observatory_pub_packages/observe
   path:
     path: ../../third_party/observatory_pub_packages/path
+  petitparser:
+    path: ../../third_party/observatory_pub_packages/petitparser
   polymer:
     path: ../../third_party/observatory_pub_packages/polymer
   polymer_expressions:
     path: ../../third_party/observatory_pub_packages/polymer_expressions
+  polymer_interop:
+    path: ../../third_party/observatory_pub_packages/polymer_interop
   pool:
     path: ../../third_party/observatory_pub_packages/pool
+  quiver:
+    path: ../../third_party/observatory_pub_packages/quiver
   smoke:
     path: ../../third_party/observatory_pub_packages/smoke
   source_maps:
diff --git a/runtime/observatory/tests/service/debugger_inspect_test.dart b/runtime/observatory/tests/service/debugger_inspect_test.dart
new file mode 100644
index 0000000..5960665
--- /dev/null
+++ b/runtime/observatory/tests/service/debugger_inspect_test.dart
@@ -0,0 +1,43 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+// VMOptions=--compile-all --error_on_bad_type --error_on_bad_override
+
+import 'package:observatory/service_io.dart';
+import 'package:unittest/unittest.dart';
+import 'test_helper.dart';
+import 'dart:async';
+import 'dart:developer';
+
+class Point {
+  int x, y;
+  Point(this.x, this.y);
+}
+
+void testeeDo() {
+  inspect(new Point(3, 4));
+}
+
+var tests = [
+
+(Isolate isolate) async {
+  Completer completer = new Completer();
+  var subscription;
+  subscription = isolate.vm.events.stream.listen((ServiceEvent event) {
+    print(event);
+    if (event.eventType == ServiceEvent.kInspect) {
+      expect((event.inspectee as Instance).clazz.name, equals('Point'));
+
+      subscription.cancel();
+      completer.complete();
+    }
+  });
+
+  // Start listening for events first.
+  await isolate.eval(isolate.rootLib, 'testeeDo();');
+  return completer.future;
+},
+
+];
+
+main(args) => runIsolateTests(args, tests);
diff --git a/runtime/observatory/tests/service/get_stack_rpc_test.dart b/runtime/observatory/tests/service/get_stack_rpc_test.dart
index e503527..7c253aa 100644
--- a/runtime/observatory/tests/service/get_stack_rpc_test.dart
+++ b/runtime/observatory/tests/service/get_stack_rpc_test.dart
@@ -8,19 +8,18 @@
 import 'test_helper.dart';
 import 'dart:async';
 import 'dart:isolate' as isolate;
+import 'dart:developer' as developer;
 
 int counter = 0;
 const stoppedAtLine = 23;
 var port = new isolate.RawReceivePort(msgHandler);
 
 // This name is used in a test below.
-void msgHandler(_) {
-}
+void msgHandler(_) { }
 
 void periodicTask(_) {
-  counter++;
   port.sendPort.send(34);
-  counter++;  // Line 23.  We set our breakpoint here.
+  developer.debugger(msg: "foo", when: true); // We will be at the next line.
   counter++;
   if (counter % 300 == 0) {
     print('counter = $counter');
@@ -33,34 +32,14 @@
 
 var tests = [
 
-// Add breakpoint
+// Initial data fetch and verify we've hit the breakpoint.
 (Isolate isolate) async {
   await isolate.rootLib.load();
-
-  // Set up a listener to wait for breakpoint events.
-  Completer completer = new Completer();
-  var subscription;
-  subscription = isolate.vm.events.stream.listen((ServiceEvent event) {
-    if (event.eventType == ServiceEvent.kPauseBreakpoint) {
-      print('Breakpoint reached');
-      subscription.cancel();
-      completer.complete();
-    }
-  });
-
   var script = isolate.rootLib.scripts[0];
   await script.load();
-
-  // Add the breakpoint.
-  var result = await isolate.addBreakpoint(script, stoppedAtLine);
-  expect(result is Breakpoint, isTrue);
-  Breakpoint bpt = result;
-  expect(bpt.type, equals('Breakpoint'));
-  expect(bpt.script.id, equals(script.id));
-  expect(bpt.script.tokenToLine(bpt.tokenPos), equals(stoppedAtLine));
-  expect(isolate.breakpoints.length, equals(1));
-
-  await completer.future;  // Wait for breakpoint events.
+  await hasStoppedAtBreakpoint(isolate);
+  // Sanity check.
+  expect(isolate.pauseEvent.eventType, equals(ServiceEvent.kPauseBreakpoint));
 },
 
 // Get stack
diff --git a/runtime/observatory/tests/service/service.status b/runtime/observatory/tests/service/service.status
index 415f062..ce688fb 100644
--- a/runtime/observatory/tests/service/service.status
+++ b/runtime/observatory/tests/service/service.status
@@ -26,11 +26,6 @@
 [ $arch == simarm || $arch == simmips || $arch == simarm64]
 *: SkipSlow
 
-# The transformations of dart2dart are not guaranteed to preserve the
-# state/properties of the VM that the Observatory tests are inspecting.
-[ $compiler == dart2dart ]
-*: Skip
-
 # All tests use dart:io
 [ $browser || $compiler == dart2js ]
 *: SkipByDesign
diff --git a/runtime/observatory/tests/service/test_helper.dart b/runtime/observatory/tests/service/test_helper.dart
index 5fd2344..fd63933 100644
--- a/runtime/observatory/tests/service/test_helper.dart
+++ b/runtime/observatory/tests/service/test_helper.dart
@@ -151,6 +151,28 @@
 }
 
 
+Future<Isolate> hasStoppedAtBreakpoint(Isolate isolate) {
+  if ((isolate.pauseEvent != null) &&
+      (isolate.pauseEvent.eventType == ServiceEvent.kPauseBreakpoint)) {
+    // Already waiting at a breakpoint.
+    print('Breakpoint reached');
+    return new Future.value(isolate);
+  }
+
+  // Set up a listener to wait for breakpoint events.
+  Completer completer = new Completer();
+  var subscription;
+  subscription = isolate.vm.events.stream.listen((ServiceEvent event) {
+    if (event.eventType == ServiceEvent.kPauseBreakpoint) {
+      print('Breakpoint reached');
+      subscription.cancel();
+      completer.complete(isolate);
+    }
+  });
+
+  return completer.future;  // Will complete when breakpoint hit.
+}
+
 /// Runs [tests] in sequence, each of which should take an [Isolate] and
 /// return a [Future]. Code for setting up state can run before and/or
 /// concurrently with the tests. Uses [mainArgs] to determine whether
diff --git a/runtime/observatory/web/main.dart b/runtime/observatory/web/main.dart
index 09ad356..8e316d9 100644
--- a/runtime/observatory/web/main.dart
+++ b/runtime/observatory/web/main.dart
@@ -21,7 +21,7 @@
   Logger.root.info('Starting Observatory');
   GoogleChart.initOnce().then((_) {
     // Charts loaded, initialize polymer.
-    initPolymer().run(() {
+    initPolymer().then((zone) {
       Logger.root.info('Polymer initialized');
       // Code here is in the polymer Zone, which ensures that
       // @observable properties work correctly.
diff --git a/runtime/tests/vm/vm.status b/runtime/tests/vm/vm.status
index e04f9c2..52f40f1 100644
--- a/runtime/tests/vm/vm.status
+++ b/runtime/tests/vm/vm.status
@@ -69,21 +69,12 @@
 # Data uri's not supported by dart2js or the analyzer.
 dart/data_uri*test: Skip
 
-[ $compiler == dart2js && $cps_ir ]
-dart/error_stacktrace_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-dart/inline_stack_frame_test: Crash # (throw new ExpectException(message)): Unhandled node
-dart/optimized_stacktrace_test: Crash # (throw new ExpectException(message)): Unhandled node
-
 [ $runtime == vm ]
 dart/data_uri_failures_test/wrongmime: RuntimeError, OK # VM is more restrictive than the browser
 dart/data_uri_failures_test/nomime: RuntimeError, OK
 dart/data_uri_failures_test/nocharset: RuntimeError, OK
 dart/data_uri_failures_test/base64: RuntimeError, OK
 
-[ $compiler == dart2dart ]
-# Skip until we stabilize language tests.
-*: Skip
-
 [ $arch == mips ]
 cc/StaticNonNullSumCallCodegen: Crash, Pass # Issue 17440
 cc/ArrayLengthMaxElements: Crash  # Issue 23275
@@ -99,3 +90,6 @@
 
 [ $runtime == vm && $mode == debug && $builder_tag == asan ]
 cc/Dart2JSCompileAll: Skip  # Timeout.
+
+[ $compiler == dart2js && $cps_ir ]
+dart/error_stacktrace_test: RuntimeError # Please triage this failure.
diff --git a/runtime/vm/BUILD.gn b/runtime/vm/BUILD.gn
index bbb204c..27189b0 100644
--- a/runtime/vm/BUILD.gn
+++ b/runtime/vm/BUILD.gn
@@ -8,10 +8,11 @@
   ]
 
   if (!is_android) {
-    libs += [
-      "pthread",
-      "rt",
-    ]
+    libs += [ "pthread" ]
+
+    if (is_linux) {
+      libs += [ "rt" ]
+    }
   }
 }
 
@@ -171,12 +172,13 @@
     ["core", "core"],
     ["collection", "collection"],
     ["convert", "convert"],
+    ["debugger", "debugger"],
     ["_internal", "internal"],
     ["isolate", "isolate"],
     ["math", "math"],
     ["mirrors", "mirrors"],
-    ["typed_data", "typed_data"],
     ["profiler", "profiler"],
+    ["typed_data", "typed_data"],
   ]
 }
 
diff --git a/runtime/vm/assembler_arm64.h b/runtime/vm/assembler_arm64.h
index 90334b9..7876345 100644
--- a/runtime/vm/assembler_arm64.h
+++ b/runtime/vm/assembler_arm64.h
@@ -660,6 +660,11 @@
     EmitLogicalShiftOp(BICS, rd, rn, o, kDoubleWord);
   }
 
+  // Count leading zero bits.
+  void clz(Register rd, Register rn) {
+    EmitMiscDP1Source(CLZ, rd, rn, kDoubleWord);
+  }
+
   // Misc. arithmetic.
   void udiv(Register rd, Register rn, Register rm) {
     EmitMiscDP2Source(UDIV, rd, rn, rm, kDoubleWord);
@@ -1782,6 +1787,21 @@
     Emit(encoding);
   }
 
+  void EmitMiscDP1Source(MiscDP1SourceOp op,
+                         Register rd, Register rn,
+                         OperandSize sz) {
+    ASSERT((rd != CSP) && (rn != CSP));
+    ASSERT((sz == kDoubleWord) || (sz == kWord) || (sz == kUnsignedWord));
+    const Register crd = ConcreteRegister(rd);
+    const Register crn = ConcreteRegister(rn);
+    const int32_t size = (sz == kDoubleWord) ? B31 : 0;
+    const int32_t encoding =
+        op | size |
+        (static_cast<int32_t>(crd) << kRdShift) |
+        (static_cast<int32_t>(crn) << kRnShift);
+    Emit(encoding);
+  }
+
   void EmitMiscDP2Source(MiscDP2SourceOp op,
                          Register rd, Register rn, Register rm,
                          OperandSize sz) {
diff --git a/runtime/vm/assembler_arm64_test.cc b/runtime/vm/assembler_arm64_test.cc
index fe7f15d..a23abd3 100644
--- a/runtime/vm/assembler_arm64_test.cc
+++ b/runtime/vm/assembler_arm64_test.cc
@@ -723,6 +723,38 @@
 }
 
 
+ASSEMBLER_TEST_GENERATE(Clz, assembler) {
+  Label error;
+
+  __ clz(R1, ZR);
+  __ cmp(R1, Operand(64));
+  __ b(&error, NE);
+  __ LoadImmediate(R2, 42, kNoPP);
+  __ clz(R2, R2);
+  __ cmp(R2, Operand(58));
+  __ b(&error, NE);
+  __ LoadImmediate(R0, -1, kNoPP);
+  __ clz(R1, R0);
+  __ cmp(R1, Operand(0));
+  __ b(&error, NE);
+  __ add(R0, ZR, Operand(R0, LSR, 3));
+  __ clz(R1, R0);
+  __ cmp(R1, Operand(3));
+  __ b(&error, NE);
+  __ mov(R0, ZR);
+  __ ret();
+  __ Bind(&error);
+  __ LoadImmediate(R0, 1, kNoPP);
+  __ ret();
+}
+
+
+ASSEMBLER_TEST_RUN(Clz, test) {
+  typedef int64_t (*Int64Return)() DART_UNUSED;
+  EXPECT_EQ(0, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
+}
+
+
 // Comparisons, branching.
 ASSEMBLER_TEST_GENERATE(BranchALForward, assembler) {
   Label l;
diff --git a/runtime/vm/ast.cc b/runtime/vm/ast.cc
index b66ad44..613b46c 100644
--- a/runtime/vm/ast.cc
+++ b/runtime/vm/ast.cc
@@ -12,8 +12,6 @@
 
 namespace dart {
 
-DECLARE_FLAG(bool, enable_type_checks);
-
 #define DEFINE_VISIT_FUNCTION(BaseName)                                        \
 void BaseName##Node::Visit(AstNodeVisitor* visitor) {                          \
   visitor->Visit##BaseName##Node(this);                                        \
diff --git a/runtime/vm/benchmark_test.cc b/runtime/vm/benchmark_test.cc
index 1ac1186..eb5f16d 100644
--- a/runtime/vm/benchmark_test.cc
+++ b/runtime/vm/benchmark_test.cc
@@ -280,7 +280,7 @@
   const char* path_separator = File::PathSeparator();
   OS::SNPrint(buffer, 2048, packages_path,
               executable_path, path_separator, path_separator);
-  bin::DartUtils::PrepareForScriptLoading(buffer, false, builtin_lib);
+  bin::DartUtils::PrepareForScriptLoading(buffer, false, false, builtin_lib);
 }
 
 BENCHMARK(Dart2JSCompileAll) {
diff --git a/runtime/vm/bootstrap.cc b/runtime/vm/bootstrap.cc
index b66e18c..c76ea3a 100644
--- a/runtime/vm/bootstrap.cc
+++ b/runtime/vm/bootstrap.cc
@@ -47,6 +47,10 @@
                collection,
                Bootstrap::collection_source_paths_,
                Bootstrap::collection_patch_paths_),
+  INIT_LIBRARY(ObjectStore::kDeveloper,
+               developer,
+               Bootstrap::developer_source_paths_,
+               Bootstrap::developer_patch_paths_),
   INIT_LIBRARY(ObjectStore::kInternal,
                _internal,
                Bootstrap::_internal_source_paths_,
@@ -63,16 +67,14 @@
                mirrors,
                Bootstrap::mirrors_source_paths_,
                Bootstrap::mirrors_patch_paths_),
-  INIT_LIBRARY(ObjectStore::kTypedData,
-               typed_data,
-               Bootstrap::typed_data_source_paths_,
-               Bootstrap::typed_data_patch_paths_),
-
   INIT_LIBRARY(ObjectStore::kProfiler,
                profiler,
                Bootstrap::profiler_source_paths_,
                Bootstrap::profiler_patch_paths_),
-
+  INIT_LIBRARY(ObjectStore::kTypedData,
+               typed_data,
+               Bootstrap::typed_data_source_paths_,
+               Bootstrap::typed_data_patch_paths_),
   { ObjectStore::kNone, NULL, NULL, NULL, NULL }
 };
 
diff --git a/runtime/vm/bootstrap.h b/runtime/vm/bootstrap.h
index 3419828..76758b6 100644
--- a/runtime/vm/bootstrap.h
+++ b/runtime/vm/bootstrap.h
@@ -24,13 +24,14 @@
   static const char* core_source_paths_[];
   static const char* collection_source_paths_[];
   static const char* convert_source_paths_[];
+  static const char* developer_source_paths_[];
   static const char* _internal_source_paths_[];
   static const char* isolate_source_paths_[];
   static const char* json_source_paths_[];
   static const char* math_source_paths_[];
   static const char* mirrors_source_paths_[];
-  static const char* typed_data_source_paths_[];
   static const char* profiler_source_paths_[];
+  static const char* typed_data_source_paths_[];
   static const char* utf_source_paths_[];
 
   // Source path mapping for patch URI and 'parts'.
@@ -38,12 +39,13 @@
   static const char* core_patch_paths_[];
   static const char* collection_patch_paths_[];
   static const char* convert_patch_paths_[];
+  static const char* developer_patch_paths_[];
   static const char* _internal_patch_paths_[];
   static const char* isolate_patch_paths_[];
   static const char* math_patch_paths_[];
   static const char* mirrors_patch_paths_[];
-  static const char* typed_data_patch_paths_[];
   static const char* profiler_patch_paths_[];
+  static const char* typed_data_patch_paths_[];
 };
 
 }  // namespace dart
diff --git a/runtime/vm/bootstrap_natives.cc b/runtime/vm/bootstrap_natives.cc
index 7167252..07c4928 100644
--- a/runtime/vm/bootstrap_natives.cc
+++ b/runtime/vm/bootstrap_natives.cc
@@ -95,12 +95,7 @@
   library.set_native_entry_resolver(resolver);
   library.set_native_entry_symbol_resolver(symbol_resolver);
 
-  library = Library::MathLibrary();
-  ASSERT(!library.IsNull());
-  library.set_native_entry_resolver(resolver);
-  library.set_native_entry_symbol_resolver(symbol_resolver);
-
-  library = Library::MirrorsLibrary();
+  library = Library::DeveloperLibrary();
   ASSERT(!library.IsNull());
   library.set_native_entry_resolver(resolver);
   library.set_native_entry_symbol_resolver(symbol_resolver);
@@ -115,7 +110,12 @@
   library.set_native_entry_resolver(resolver);
   library.set_native_entry_symbol_resolver(symbol_resolver);
 
-  library = Library::TypedDataLibrary();
+  library = Library::MathLibrary();
+  ASSERT(!library.IsNull());
+  library.set_native_entry_resolver(resolver);
+  library.set_native_entry_symbol_resolver(symbol_resolver);
+
+  library = Library::MirrorsLibrary();
   ASSERT(!library.IsNull());
   library.set_native_entry_resolver(resolver);
   library.set_native_entry_symbol_resolver(symbol_resolver);
@@ -124,6 +124,11 @@
   ASSERT(!library.IsNull());
   library.set_native_entry_resolver(resolver);
   library.set_native_entry_symbol_resolver(symbol_resolver);
+
+  library = Library::TypedDataLibrary();
+  ASSERT(!library.IsNull());
+  library.set_native_entry_resolver(resolver);
+  library.set_native_entry_symbol_resolver(symbol_resolver);
 }
 
 
diff --git a/runtime/vm/bootstrap_natives.h b/runtime/vm/bootstrap_natives.h
index 33d401e..78edd2f 100644
--- a/runtime/vm/bootstrap_natives.h
+++ b/runtime/vm/bootstrap_natives.h
@@ -63,6 +63,8 @@
   V(Bigint_getUsed, 1)                                                         \
   V(Bigint_getDigits, 1)                                                       \
   V(Bigint_allocate, 4)                                                        \
+  V(Developer_debugger, 2)                                                     \
+  V(Developer_inspect, 1)                                                      \
   V(Double_getIsNegative, 1)                                                   \
   V(Double_getIsInfinite, 1)                                                   \
   V(Double_getIsNaN, 1)                                                        \
diff --git a/runtime/vm/class_finalizer.cc b/runtime/vm/class_finalizer.cc
index 5c59b2e..23c0d52 100644
--- a/runtime/vm/class_finalizer.cc
+++ b/runtime/vm/class_finalizer.cc
@@ -22,7 +22,6 @@
 DEFINE_FLAG(bool, print_classes, false, "Prints details about loaded classes.");
 DEFINE_FLAG(bool, trace_class_finalization, false, "Trace class finalization.");
 DEFINE_FLAG(bool, trace_type_finalization, false, "Trace type finalization.");
-DECLARE_FLAG(bool, enable_type_checks);
 DECLARE_FLAG(bool, use_cha);
 
 
@@ -184,6 +183,7 @@
 }
 
 
+#if defined(DART_NO_SNAPSHOT)
 void ClassFinalizer::VerifyBootstrapClasses() {
   if (FLAG_trace_class_finalization) {
     OS::Print("VerifyBootstrapClasses START.\n");
@@ -247,6 +247,7 @@
   }
   Isolate::Current()->heap()->Verify();
 }
+#endif  // defined(DART_NO_SNAPSHOT).
 
 
 // Resolve unresolved_class in the library of cls, or return null.
@@ -1683,6 +1684,13 @@
           param ^= mixin_type_args.TypeAt(i);
           param_bound = param.bound();
           if (!param_bound.IsInstantiated()) {
+            // Make sure the bound is finalized before instantiating it.
+            if (!param_bound.IsFinalized() &&
+                !param_bound.IsBeingFinalized()) {
+              param_bound =
+                  FinalizeType(mixin_app_class, param_bound, kCanonicalize);
+              param.set_bound(param_bound);  // In case part of recursive type.
+            }
             param_bound = param_bound.InstantiateFrom(mixin_type_args,
                                                       &bound_error);
             // The instantiator contains only TypeParameter objects and no
diff --git a/runtime/vm/class_finalizer.h b/runtime/vm/class_finalizer.h
index 5515404..7a11b24 100644
--- a/runtime/vm/class_finalizer.h
+++ b/runtime/vm/class_finalizer.h
@@ -93,9 +93,11 @@
   // Finalize the class including its fields and functions.
   static void FinalizeClass(const Class& cls);
 
+#if defined(DART_NO_SNAPSHOT)
   // Verify that the classes have been properly prefinalized. This is
   // needed during bootstrapping where the classes have been preloaded.
   static void VerifyBootstrapClasses();
+#endif  // defined(DART_NO_SNAPSHOT).
 
   // Resolve the class of the type, but not the type's type arguments.
   static void ResolveTypeClass(const Class& cls, const AbstractType& type);
diff --git a/runtime/vm/code_descriptors.cc b/runtime/vm/code_descriptors.cc
index 233d1b6..cc5ad3e 100644
--- a/runtime/vm/code_descriptors.cc
+++ b/runtime/vm/code_descriptors.cc
@@ -9,38 +9,31 @@
 void DescriptorList::AddDescriptor(RawPcDescriptors::Kind kind,
                                    intptr_t pc_offset,
                                    intptr_t deopt_id,
-                                   intptr_t token_index,
+                                   intptr_t token_pos,
                                    intptr_t try_index) {
   ASSERT((kind == RawPcDescriptors::kRuntimeCall) ||
          (kind == RawPcDescriptors::kOther) ||
          (deopt_id != Isolate::kNoDeoptId));
-  struct PcDesc data;
-  data.pc_offset = pc_offset;
-  data.kind = kind;
-  data.deopt_id = deopt_id;
-  data.SetTokenPos(token_index);
-  data.try_index = try_index;
-  list_.Add(data);
-  if (try_index >= 0) {
-    has_try_index_ = true;
-  }
+
+  PcDescriptors::EncodeInteger(&delta_encoded_data_,
+                               static_cast<intptr_t>(kind));
+  PcDescriptors::EncodeInteger(&delta_encoded_data_,
+                               try_index);
+  PcDescriptors::EncodeInteger(&delta_encoded_data_,
+                               pc_offset - prev_pc_offset);
+  PcDescriptors::EncodeInteger(&delta_encoded_data_,
+                               deopt_id - prev_deopt_id);
+  PcDescriptors::EncodeInteger(&delta_encoded_data_,
+                               token_pos - prev_token_pos);
+
+  prev_pc_offset = pc_offset;
+  prev_deopt_id = deopt_id;
+  prev_token_pos = token_pos;
 }
 
 
 RawPcDescriptors* DescriptorList::FinalizePcDescriptors(uword entry_point) {
-  intptr_t num_descriptors = Length();
-  const PcDescriptors& descriptors =
-      PcDescriptors::Handle(PcDescriptors::New(num_descriptors,
-                                               has_try_index_));
-  for (intptr_t i = 0; i < num_descriptors; i++) {
-    descriptors.AddDescriptor(i,
-                              PcOffset(i),
-                              Kind(i),
-                              DeoptId(i),
-                              TokenPos(i),
-                              TryIndex(i));
-  }
-  return descriptors.raw();
+  return PcDescriptors::New(&delta_encoded_data_);
 }
 
 
diff --git a/runtime/vm/code_descriptors.h b/runtime/vm/code_descriptors.h
index 796f290..5354fe2 100644
--- a/runtime/vm/code_descriptors.h
+++ b/runtime/vm/code_descriptors.h
@@ -15,59 +15,29 @@
 
 class DescriptorList : public ZoneAllocated {
  public:
-  struct PcDesc {
-    intptr_t pc_offset;        // PC offset value of the descriptor.
-    RawPcDescriptors::Kind kind;  // Descriptor kind (kDeopt, kOther).
-    intptr_t deopt_id;         // Deoptimization id.
-    intptr_t data;             // Token position or deopt reason.
-    intptr_t try_index;        // Try block index of PC or deopt array index.
-    void SetTokenPos(intptr_t value) { data = value; }
-    intptr_t TokenPos() const { return data; }
-    void SetDeoptReason(ICData::DeoptReasonId value) { data = value; }
-    ICData::DeoptReasonId DeoptReason() const {
-      ASSERT((0 <= data) && (data < ICData::kDeoptNumReasons));
-      return static_cast<ICData::DeoptReasonId>(data);
-    }
-  };
-
   explicit DescriptorList(intptr_t initial_capacity)
-      : list_(initial_capacity), has_try_index_(false) {}
+    : delta_encoded_data_(initial_capacity),
+      prev_pc_offset(0),
+      prev_deopt_id(0),
+      prev_token_pos(0) {}
+
   ~DescriptorList() { }
 
-  intptr_t Length() const {
-    return list_.length();
-  }
-
-  intptr_t PcOffset(intptr_t index) const {
-    return list_[index].pc_offset;
-  }
-  RawPcDescriptors::Kind Kind(intptr_t index) const {
-    return list_[index].kind;
-  }
-  intptr_t DeoptId(intptr_t index) const {
-    return list_[index].deopt_id;
-  }
-  intptr_t TokenPos(intptr_t index) const {
-    return list_[index].TokenPos();
-  }
-  ICData::DeoptReasonId DeoptReason(intptr_t index) const {
-    return list_[index].DeoptReason();
-  }
-  intptr_t TryIndex(intptr_t index) const {
-    return (has_try_index_) ? list_[index].try_index : -1;
-  }
-
   void AddDescriptor(RawPcDescriptors::Kind kind,
                      intptr_t pc_offset,
                      intptr_t deopt_id,
-                     intptr_t token_index,
+                     intptr_t token_pos,
                      intptr_t try_index);
 
   RawPcDescriptors* FinalizePcDescriptors(uword entry_point);
 
  private:
-  GrowableArray<struct PcDesc> list_;
-  bool has_try_index_;
+  GrowableArray<uint8_t> delta_encoded_data_;
+
+  intptr_t prev_pc_offset;
+  intptr_t prev_deopt_id;
+  intptr_t prev_token_pos;
+
   DISALLOW_COPY_AND_ASSIGN(DescriptorList);
 };
 
diff --git a/runtime/vm/code_generator.cc b/runtime/vm/code_generator.cc
index 1cd7e14..666b13c 100644
--- a/runtime/vm/code_generator.cc
+++ b/runtime/vm/code_generator.cc
@@ -56,8 +56,6 @@
 DEFINE_FLAG(bool, trace_type_checks, false, "Trace runtime type checks.");
 
 DECLARE_FLAG(int, deoptimization_counter_threshold);
-DECLARE_FLAG(bool, enable_asserts);
-DECLARE_FLAG(bool, enable_type_checks);
 DECLARE_FLAG(bool, warn_on_javascript_compatibility);
 
 DEFINE_FLAG(bool, use_osr, true, "Use on-stack replacement.");
diff --git a/runtime/vm/compiler.cc b/runtime/vm/compiler.cc
index 88f20af..86a2a0f 100644
--- a/runtime/vm/compiler.cc
+++ b/runtime/vm/compiler.cc
@@ -890,7 +890,7 @@
   ISL_Print("Variable Descriptors for function '%s' {\n",
             function_fullname);
   const LocalVarDescriptors& var_descriptors =
-      LocalVarDescriptors::Handle(code.var_descriptors());
+      LocalVarDescriptors::Handle(code.GetLocalVarDescriptors());
   intptr_t var_desc_length =
       var_descriptors.IsNull() ? 0 : var_descriptors.Length();
   String& var_name = String::Handle();
@@ -1129,6 +1129,26 @@
 }
 
 
+void Compiler::ComputeLocalVarDescriptors(const Code& code) {
+  ASSERT(!code.is_optimized());
+  const Function& function = Function::Handle(code.function());
+  ParsedFunction* parsed_function = new ParsedFunction(
+      Thread::Current(), Function::ZoneHandle(function.raw()));
+  LocalVarDescriptors& var_descs =
+      LocalVarDescriptors::Handle(code.var_descriptors());
+  ASSERT(var_descs.IsNull());
+  // IsIrregexpFunction have eager var descriptors generation.
+  ASSERT(!function.IsIrregexpFunction());
+  // Parser should not produce any errors, therefore no LongJumpScope needed.
+  Parser::ParseFunction(parsed_function);
+  parsed_function->AllocateVariables();
+  var_descs = parsed_function->node_sequence()->scope()->
+      GetVarDescriptors(function);
+  ASSERT(!var_descs.IsNull());
+  code.set_var_descriptors(var_descs);
+}
+
+
 RawError* Compiler::CompileAllFunctions(const Class& cls) {
   Thread* thread = Thread::Current();
   Zone* zone = thread->zone();
@@ -1176,6 +1196,14 @@
 }
 
 
+static void CreateLocalVarDescriptors(const ParsedFunction& parsed_function) {
+  const Function& func = parsed_function.function();
+  LocalVarDescriptors& var_descs = LocalVarDescriptors::Handle();
+  var_descs = parsed_function.node_sequence()->scope()->GetVarDescriptors(func);
+  Code::Handle(func.unoptimized_code()).set_var_descriptors(var_descs);
+}
+
+
 RawObject* Compiler::EvaluateStaticInitializer(const Field& field) {
   ASSERT(field.is_static());
   // The VM sets the field's value to transiton_sentinel prior to
@@ -1195,6 +1223,8 @@
                                 parsed_function,
                                 false,
                                 Isolate::kNoDeoptId);
+    // Eagerly create local var descriptors.
+    CreateLocalVarDescriptors(*parsed_function);
 
     // Invoke the function to evaluate the expression.
     const Function& initializer = parsed_function->function();
@@ -1264,6 +1294,8 @@
                                 false,
                                 Isolate::kNoDeoptId);
 
+    // Eagerly create local var descriptors.
+    CreateLocalVarDescriptors(*parsed_function);
     const Object& result = PassiveObject::Handle(
         DartEntry::InvokeFunction(func, Object::empty_array()));
     return result.raw();
diff --git a/runtime/vm/compiler.h b/runtime/vm/compiler.h
index e319956..1e92e71 100644
--- a/runtime/vm/compiler.h
+++ b/runtime/vm/compiler.h
@@ -73,6 +73,10 @@
   // on compilation failure.
   static RawObject* EvaluateStaticInitializer(const Field& field);
 
+  // Generates local var descriptors and sets it in 'code'. Do not call if the
+  // local var descriptor already exists.
+  static void ComputeLocalVarDescriptors(const Code& code);
+
   // Eagerly compiles all functions in a class.
   //
   // Returns Error::null() if there is no compilation error.
diff --git a/runtime/vm/constants_arm64.h b/runtime/vm/constants_arm64.h
index 85f98d0..2d74ef3 100644
--- a/runtime/vm/constants_arm64.h
+++ b/runtime/vm/constants_arm64.h
@@ -438,6 +438,13 @@
   CSINV = ConditionalSelectFixed | B30,
 };
 
+// C3.5.7
+enum MiscDP1SourceOp {
+  MiscDP1SourceMask = 0x5fe00000,
+  MiscDP1SourceFixed = DPRegisterFixed | B30 | B28 | B23 | B22,
+  CLZ = MiscDP1SourceFixed | B12,
+};
+
 // C3.5.8
 enum MiscDP2SourceOp {
   MiscDP2SourceMask = 0x5fe00000,
@@ -609,6 +616,7 @@
 _V(AddSubShiftExt)                                                             \
 _V(AddSubWithCarry)                                                            \
 _V(ConditionalSelect)                                                          \
+_V(MiscDP1Source)                                                              \
 _V(MiscDP2Source)                                                              \
 _V(MiscDP3Source)                                                              \
 _V(LogicalShift)                                                               \
diff --git a/runtime/vm/dart.cc b/runtime/vm/dart.cc
index a19208a..1f2ac88 100644
--- a/runtime/vm/dart.cc
+++ b/runtime/vm/dart.cc
@@ -224,15 +224,12 @@
   // Setup for profiling.
   Profiler::InitProfilingForIsolate(isolate);
 
-  if (snapshot_buffer == NULL) {
-    const Error& error = Error::Handle(Object::Init(isolate));
-    if (!error.IsNull()) {
-      return error.raw();
-    }
-  } else {
-    // Initialize from snapshot (this should replicate the functionality
-    // of Object::Init(..) in a regular isolate creation path.
-    Object::InitFromSnapshot(isolate);
+  const Error& error = Error::Handle(Object::Init(isolate));
+  if (!error.IsNull()) {
+    return error.raw();
+  }
+  if (snapshot_buffer != NULL) {
+    // Read the snapshot and setup the initial state.
 
     // TODO(turnidge): Remove once length is not part of the snapshot.
     const Snapshot* snapshot = Snapshot::SetupFromBuffer(snapshot_buffer);
diff --git a/runtime/vm/dart_api_impl_test.cc b/runtime/vm/dart_api_impl_test.cc
index e9b7fec..9783558 100644
--- a/runtime/vm/dart_api_impl_test.cc
+++ b/runtime/vm/dart_api_impl_test.cc
@@ -19,7 +19,6 @@
 
 namespace dart {
 
-DECLARE_FLAG(bool, enable_type_checks);
 DECLARE_FLAG(int, optimization_counter_threshold);
 DECLARE_FLAG(bool, verify_acquired_data);
 
diff --git a/runtime/vm/debugger.cc b/runtime/vm/debugger.cc
index 05ecbcb..60059ee 100644
--- a/runtime/vm/debugger.cc
+++ b/runtime/vm/debugger.cc
@@ -478,7 +478,7 @@
       }
     }
     var_descriptors_ =
-        Code::Handle(function().unoptimized_code()).var_descriptors();
+        Code::Handle(function().unoptimized_code()).GetLocalVarDescriptors();
     ASSERT(!var_descriptors_.IsNull());
   }
 }
@@ -910,10 +910,13 @@
       JSONObject jsvar(&jsvars);
       String& var_name = String::Handle();
       Instance& var_value = Instance::Handle();
-      intptr_t unused;
-      VariableAt(v, &var_name, &unused, &unused, &var_value);
+      intptr_t token_pos;
+      intptr_t end_token_pos;
+      VariableAt(v, &var_name, &token_pos, &end_token_pos, &var_value);
       jsvar.AddProperty("name", var_name.ToCString());
       jsvar.AddProperty("value", var_value, !full);
+      jsvar.AddProperty("tokenPos", token_pos);
+      jsvar.AddProperty("endTokenPos", end_token_pos);
     }
   }
 }
@@ -2275,6 +2278,31 @@
 }
 
 
+void Debugger::BreakHere(const String& msg) {
+  // We ignore this breakpoint when the VM is executing code invoked
+  // by the debugger to evaluate variables values, or when we see a nested
+  // breakpoint or exception event.
+  if (ignore_breakpoints_ || IsPaused() || !HasEventHandler()) {
+    return;
+  }
+
+  DebuggerStackTrace* stack_trace = CollectStackTrace();
+  ASSERT(stack_trace->Length() > 0);
+  ASSERT(stack_trace_ == NULL);
+  stack_trace_ = stack_trace;
+
+  // TODO(johnmccutchan): Send |msg| to Observatory.
+
+  // We are in the native call to Debugger_breakHere or Debugger_breakHereIf,
+  // the developer gets a better experience by not seeing this call. To
+  // accomplish this, we continue execution until the call exits (step out).
+  SetStepOut();
+  HandleSteppingRequest(stack_trace_);
+
+  stack_trace_ = NULL;
+}
+
+
 void Debugger::Initialize(Isolate* isolate) {
   if (initialized_) {
     return;
diff --git a/runtime/vm/debugger.h b/runtime/vm/debugger.h
index 3796297..c95deb4 100644
--- a/runtime/vm/debugger.h
+++ b/runtime/vm/debugger.h
@@ -442,6 +442,8 @@
   void SignalBpReached();
   void DebuggerStepCallback();
 
+  void BreakHere(const String& msg);
+
   void SignalExceptionThrown(const Instance& exc);
   void SignalIsolateEvent(DebuggerEvent::EventType type);
   static void SignalIsolateInterrupted();
diff --git a/runtime/vm/debugger_api_impl_test.cc b/runtime/vm/debugger_api_impl_test.cc
index 4bbc7e8..a516a99 100644
--- a/runtime/vm/debugger_api_impl_test.cc
+++ b/runtime/vm/debugger_api_impl_test.cc
@@ -2147,7 +2147,6 @@
   Dart_Handle object_name = Dart_NewStringFromCString("Object");
   Dart_Handle int_name = Dart_NewStringFromCString("int");
   Dart_Handle set_name = Dart_NewStringFromCString("Set");
-  Dart_Handle iterable_name = Dart_NewStringFromCString("Iterable");
   Dart_Handle list_name = Dart_NewStringFromCString("List");
 
   Dart_Handle object_type = Dart_GetType(core_lib, object_name, 0, NULL);
@@ -2208,7 +2207,7 @@
   {
     Dart_Handle set_type = Dart_GetType(core_lib, set_name, 0, NULL);
     Dart_Handle super_type = Dart_GetSupertype(set_type);
-    Dart_Handle iterable_type = Dart_GetType(core_lib, iterable_name, 0, NULL);
+    Dart_Handle iterable_type = Dart_GetType(core_lib, object_name, 0, NULL);
     const Type& expected_type = Api::UnwrapTypeHandle(isolate, iterable_type);
     const Type& actual_type = Api::UnwrapTypeHandle(isolate, super_type);
     EXPECT(expected_type.raw() == actual_type.raw());
diff --git a/runtime/vm/disassembler_arm64.cc b/runtime/vm/disassembler_arm64.cc
index c6d6087..193d5b1 100644
--- a/runtime/vm/disassembler_arm64.cc
+++ b/runtime/vm/disassembler_arm64.cc
@@ -1036,6 +1036,23 @@
 }
 
 
+void ARM64Decoder::DecodeMiscDP1Source(Instr* instr) {
+  if (instr->Bit(29) != 0) {
+    Unknown(instr);
+  }
+
+  const int op = instr->Bits(10, 10);
+  switch (op) {
+    case 4:
+      Format(instr, "clz'sf 'rd, 'rn");
+      break;
+    default:
+      Unknown(instr);
+      break;
+  }
+}
+
+
 void ARM64Decoder::DecodeMiscDP2Source(Instr* instr) {
   if (instr->Bit(29) != 0) {
     Unknown(instr);
@@ -1111,6 +1128,8 @@
     DecodeAddSubWithCarry(instr);
   } else if (instr->IsLogicalShiftOp()) {
     DecodeLogicalShift(instr);
+  } else if (instr->IsMiscDP1SourceOp()) {
+    DecodeMiscDP1Source(instr);
   } else if (instr->IsMiscDP2SourceOp()) {
     DecodeMiscDP2Source(instr);
   } else if (instr->IsMiscDP3SourceOp()) {
diff --git a/runtime/vm/flow_graph_builder.cc b/runtime/vm/flow_graph_builder.cc
index 551e372..cfd44dd 100644
--- a/runtime/vm/flow_graph_builder.cc
+++ b/runtime/vm/flow_graph_builder.cc
@@ -35,11 +35,10 @@
             "Eliminate type checks when allowed by static type analysis.");
 DEFINE_FLAG(bool, print_ast, false, "Print abstract syntax tree.");
 DEFINE_FLAG(bool, print_scopes, false, "Print scopes of local variables.");
+DEFINE_FLAG(bool, support_debugger, true, "Emit code needed for debugging");
 DEFINE_FLAG(bool, trace_type_check_elimination, false,
             "Trace type check elimination at compile time.");
 
-DECLARE_FLAG(bool, enable_asserts);
-DECLARE_FLAG(bool, enable_type_checks);
 DECLARE_FLAG(int, optimization_counter_threshold);
 DECLARE_FLAG(bool, warn_on_javascript_compatibility);
 DECLARE_FLAG(bool, use_field_guards);
@@ -1042,7 +1041,8 @@
   // No debugger check is done in native functions or for return
   // statements for which there is no associated source position.
   const Function& function = owner()->function();
-  if ((node->token_pos() != Scanner::kNoSourcePos) && !function.is_native()) {
+  if (FLAG_support_debugger &&
+      (node->token_pos() != Scanner::kNoSourcePos) && !function.is_native()) {
     AddInstruction(new(Z) DebugStepCheckInstr(node->token_pos(),
                                               RawPcDescriptors::kRuntimeCall));
   }
@@ -3268,6 +3268,23 @@
 }
 
 
+LoadFieldInstr* EffectGraphVisitor::BuildNativeGetter(
+    NativeBodyNode* node,
+    MethodRecognizer::Kind kind,
+    intptr_t offset,
+    const Type& type,
+    intptr_t class_id) {
+  Value* receiver = Bind(BuildLoadThisVar(node->scope()));
+  LoadFieldInstr* load = new(Z) LoadFieldInstr(receiver,
+                                               offset,
+                                               type,
+                                               node->token_pos());
+  load->set_result_cid(class_id);
+  load->set_recognized_kind(kind);
+  return load;
+}
+
+
 void EffectGraphVisitor::VisitNativeBodyNode(NativeBodyNode* node) {
   const Function& function = owner()->function();
   if (!function.IsClosureFunction()) {
@@ -3291,18 +3308,13 @@
       }
       case MethodRecognizer::kStringBaseLength:
       case MethodRecognizer::kStringBaseIsEmpty: {
-        Value* receiver = Bind(BuildLoadThisVar(node->scope()));
         // Treat length loads as mutable (i.e. affected by side effects) to
         // avoid hoisting them since we can't hoist the preceding class-check.
         // This is because of externalization of strings that affects their
         // class-id.
-        LoadFieldInstr* load = new(Z) LoadFieldInstr(
-            receiver,
-            String::length_offset(),
-            Type::ZoneHandle(Z, Type::SmiType()),
-            node->token_pos());
-        load->set_result_cid(kSmiCid);
-        load->set_recognized_kind(MethodRecognizer::kStringBaseLength);
+        LoadFieldInstr* load = BuildNativeGetter(
+            node, MethodRecognizer::kStringBaseLength, String::length_offset(),
+            Type::ZoneHandle(Z, Type::SmiType()), kSmiCid);
         if (kind == MethodRecognizer::kStringBaseLength) {
           return ReturnDefinition(load);
         }
@@ -3322,15 +3334,10 @@
       case MethodRecognizer::kObjectArrayLength:
       case MethodRecognizer::kImmutableArrayLength:
       case MethodRecognizer::kTypedDataLength: {
-        Value* receiver = Bind(BuildLoadThisVar(node->scope()));
-        LoadFieldInstr* load = new(Z) LoadFieldInstr(
-            receiver,
-            OffsetForLengthGetter(kind),
-            Type::ZoneHandle(Z, Type::SmiType()),
-            node->token_pos());
+        LoadFieldInstr* load = BuildNativeGetter(
+            node, kind, OffsetForLengthGetter(kind),
+            Type::ZoneHandle(Z, Type::SmiType()), kSmiCid);
         load->set_is_immutable(kind != MethodRecognizer::kGrowableArrayLength);
-        load->set_result_cid(kSmiCid);
-        load->set_recognized_kind(kind);
         return ReturnDefinition(load);
       }
       case MethodRecognizer::kClassIDgetID: {
@@ -3371,37 +3378,20 @@
         return ReturnDefinition(create_array);
       }
       case MethodRecognizer::kBigint_getDigits: {
-        Value* receiver = Bind(BuildLoadThisVar(node->scope()));
-        LoadFieldInstr* load = new(Z) LoadFieldInstr(
-            receiver,
-            Bigint::digits_offset(),
+        return ReturnDefinition(BuildNativeGetter(
+            node, kind, Bigint::digits_offset(),
             Type::ZoneHandle(Z, Type::DynamicType()),
-            node->token_pos());
-        load->set_result_cid(kTypedDataUint32ArrayCid);
-        load->set_recognized_kind(kind);
-        return ReturnDefinition(load);
+            kTypedDataUint32ArrayCid));
       }
       case MethodRecognizer::kBigint_getUsed: {
-        Value* receiver = Bind(BuildLoadThisVar(node->scope()));
-        LoadFieldInstr* load = new(Z) LoadFieldInstr(
-            receiver,
-            Bigint::used_offset(),
-            Type::ZoneHandle(Z, Type::SmiType()),
-            node->token_pos());
-        load->set_result_cid(kSmiCid);
-        load->set_recognized_kind(kind);
-        return ReturnDefinition(load);
+        return ReturnDefinition(BuildNativeGetter(
+            node, kind, Bigint::used_offset(),
+            Type::ZoneHandle(Z, Type::SmiType()), kSmiCid));
       }
       case MethodRecognizer::kBigint_getNeg: {
-        Value* receiver = Bind(BuildLoadThisVar(node->scope()));
-        LoadFieldInstr* load = new(Z) LoadFieldInstr(
-            receiver,
-            Bigint::neg_offset(),
-            Type::ZoneHandle(Z, Type::BoolType()),
-            node->token_pos());
-        load->set_result_cid(kBoolCid);
-        load->set_recognized_kind(kind);
-        return ReturnDefinition(load);
+        return ReturnDefinition(BuildNativeGetter(
+            node, kind, Bigint::neg_offset(),
+            Type::ZoneHandle(Z, Type::BoolType()), kBoolCid));
       }
       default:
         break;
@@ -3438,14 +3428,16 @@
   // a safe point for the debugger to stop, add an explicit stub
   // call. Exception: don't do this when assigning to or from internal
   // variables, or for generated code that has no source position.
-  if ((node->value()->IsLiteralNode() ||
-      (node->value()->IsLoadLocalNode() &&
-          !node->value()->AsLoadLocalNode()->local().IsInternal()) ||
-      node->value()->IsClosureNode()) &&
-      !node->local().IsInternal() &&
-      (node->token_pos() != Scanner::kNoSourcePos)) {
-    AddInstruction(new(Z) DebugStepCheckInstr(
-        node->token_pos(), RawPcDescriptors::kRuntimeCall));
+  if (FLAG_support_debugger) {
+    if ((node->value()->IsLiteralNode() ||
+        (node->value()->IsLoadLocalNode() &&
+            !node->value()->AsLoadLocalNode()->local().IsInternal()) ||
+        node->value()->IsClosureNode()) &&
+        !node->local().IsInternal() &&
+        (node->token_pos() != Scanner::kNoSourcePos)) {
+      AddInstruction(new(Z) DebugStepCheckInstr(
+          node->token_pos(), RawPcDescriptors::kRuntimeCall));
+    }
   }
 
   ValueGraphVisitor for_value(owner());
@@ -4249,11 +4241,13 @@
 
 
 void EffectGraphVisitor::BuildThrowNode(ThrowNode* node) {
-  if (node->exception()->IsLiteralNode() ||
-      node->exception()->IsLoadLocalNode() ||
-      node->exception()->IsClosureNode()) {
-    AddInstruction(new(Z) DebugStepCheckInstr(
-        node->token_pos(), RawPcDescriptors::kRuntimeCall));
+  if (FLAG_support_debugger) {
+    if (node->exception()->IsLiteralNode() ||
+        node->exception()->IsLoadLocalNode() ||
+        node->exception()->IsClosureNode()) {
+      AddInstruction(new(Z) DebugStepCheckInstr(
+          node->token_pos(), RawPcDescriptors::kRuntimeCall));
+    }
   }
   ValueGraphVisitor for_exception(owner());
   node->exception()->Visit(&for_exception);
diff --git a/runtime/vm/flow_graph_builder.h b/runtime/vm/flow_graph_builder.h
index 1ecd7f5..f3d00bc 100644
--- a/runtime/vm/flow_graph_builder.h
+++ b/runtime/vm/flow_graph_builder.h
@@ -355,6 +355,12 @@
   Definition* BuildStoreLocal(const LocalVariable& local, Value* value);
   Definition* BuildLoadLocal(const LocalVariable& local);
   LoadLocalInstr* BuildLoadThisVar(LocalScope* scope);
+  LoadFieldInstr* BuildNativeGetter(
+      NativeBodyNode* node,
+      MethodRecognizer::Kind kind,
+      intptr_t offset,
+      const Type& type,
+      intptr_t class_id);
 
   // Helpers for translating parts of the AST.
   void BuildPushArguments(const ArgumentListNode& node,
diff --git a/runtime/vm/flow_graph_compiler.cc b/runtime/vm/flow_graph_compiler.cc
index e1ce9bb..86cd660 100644
--- a/runtime/vm/flow_graph_compiler.cc
+++ b/runtime/vm/flow_graph_compiler.cc
@@ -31,6 +31,8 @@
     "Instance call always as megamorphic.");
 DEFINE_FLAG(bool, trace_inlining_intervals, false,
     "Inlining interval diagnostics");
+DEFINE_FLAG(bool, eager_info_computation, false,
+    "TRANSITIONAL: Eagerly compute local var descriptors.");
 DEFINE_FLAG(bool, enable_simd_inline, true,
     "Enable inlining of SIMD related method calls.");
 DEFINE_FLAG(int, min_optimization_counter_threshold, 5000,
@@ -38,6 +40,7 @@
 DEFINE_FLAG(int, optimization_counter_scale, 2000,
     "The scale of invocation count, by size of the function.");
 DEFINE_FLAG(bool, source_lines, false, "Emit source line as assembly comment.");
+DEFINE_FLAG(bool, use_megamorphic_stub, true, "Out of line megamorphic lookup");
 
 DECLARE_FLAG(bool, code_comments);
 DECLARE_FLAG(int, deoptimize_every);
@@ -45,7 +48,6 @@
 DECLARE_FLAG(bool, disassemble);
 DECLARE_FLAG(bool, disassemble_optimized);
 DECLARE_FLAG(bool, emit_edge_counters);
-DECLARE_FLAG(bool, enable_type_checks);
 DECLARE_FLAG(bool, intrinsify);
 DECLARE_FLAG(int, optimization_counter_threshold);
 DECLARE_FLAG(bool, propagate_ic_data);
@@ -53,10 +55,12 @@
 DECLARE_FLAG(int, reoptimization_counter_threshold);
 DECLARE_FLAG(int, stacktrace_every);
 DECLARE_FLAG(charp, stacktrace_filter);
+DECLARE_FLAG(bool, support_debugger);
 DECLARE_FLAG(bool, use_cha);
 DECLARE_FLAG(bool, use_field_guards);
 DECLARE_FLAG(bool, use_osr);
 DECLARE_FLAG(bool, warn_on_javascript_compatibility);
+DECLARE_FLAG(bool, ic_range_profiling);
 
 static void NooptModeHandler(bool value) {
   if (value) {
@@ -65,6 +69,9 @@
     FLAG_use_field_guards = false;
     FLAG_use_osr = false;
     FLAG_emit_edge_counters = false;
+    FLAG_support_debugger = false;
+    FLAG_ic_range_profiling = false;
+    FLAG_collect_code = false;
   }
 }
 
@@ -657,6 +664,8 @@
 void FlowGraphCompiler::AddCurrentDescriptor(RawPcDescriptors::Kind kind,
                                              intptr_t deopt_id,
                                              intptr_t token_pos) {
+  // When running with optimizations disabled, don't emit deopt-descriptors.
+  if (!CanOptimize() && (kind == RawPcDescriptors::kDeopt)) return;
   pc_descriptors_list()->AddDescriptor(kind,
                                        assembler()->CodeSize(),
                                        deopt_id,
@@ -920,6 +929,10 @@
   }
   LocalVarDescriptors& var_descs = LocalVarDescriptors::Handle();
   if (parsed_function().node_sequence() == NULL) {
+    // Eager local var descriptors computation for Irregexp function as it is
+    // complicated to factor out.
+    // TODO(srdjan): Consider canonicalizing and reusing the local var
+    // descriptor for IrregexpFunction.
     ASSERT(flow_graph().IsIrregexpFunction());
     var_descs = LocalVarDescriptors::New(1);
     RawLocalVarDescriptors::VarInfo info;
@@ -929,10 +942,6 @@
     info.end_pos = 0;
     info.set_index(parsed_function().current_context_var()->index());
     var_descs.SetVar(0, Symbols::CurrentContextVar(), &info);
-  } else {
-    var_descs =
-        parsed_function_.node_sequence()->scope()->GetVarDescriptors(
-            parsed_function_.function());
   }
   code.set_var_descriptors(var_descs);
 }
diff --git a/runtime/vm/flow_graph_compiler_arm.cc b/runtime/vm/flow_graph_compiler_arm.cc
index 8334bb0..741bd96 100644
--- a/runtime/vm/flow_graph_compiler_arm.cc
+++ b/runtime/vm/flow_graph_compiler_arm.cc
@@ -26,8 +26,8 @@
 DEFINE_FLAG(bool, trap_on_deoptimization, false, "Trap on deoptimization.");
 DEFINE_FLAG(bool, unbox_mints, true, "Optimize 64-bit integer arithmetic.");
 DEFINE_FLAG(bool, unbox_doubles, true, "Optimize double arithmetic.");
-DECLARE_FLAG(bool, enable_type_checks);
 DECLARE_FLAG(bool, enable_simd_inline);
+DECLARE_FLAG(bool, use_megamorphic_stub);
 
 
 FlowGraphCompiler::~FlowGraphCompiler() {
@@ -1288,47 +1288,21 @@
   ASSERT(!arguments_descriptor.IsNull() && (arguments_descriptor.Length() > 0));
   const MegamorphicCache& cache =
       MegamorphicCache::ZoneHandle(table->Lookup(name, arguments_descriptor));
-  __ LoadFromOffset(kWord, R0, SP, (argument_count - 1) * kWordSize);
-  __ LoadTaggedClassIdMayBeSmi(R0, R0);
+  const Register receiverR = R0;
+  const Register cacheR = R1;
+  const Register targetR = R1;
+  __ LoadFromOffset(kWord, receiverR, SP, (argument_count - 1) * kWordSize);
+  __ LoadObject(cacheR, cache);
 
-  // R0: class ID of the receiver (smi).
-  __ LoadObject(R1, cache);
-  __ ldr(R2, FieldAddress(R1, MegamorphicCache::buckets_offset()));
-  __ ldr(R1, FieldAddress(R1, MegamorphicCache::mask_offset()));
-  // R2: cache buckets array.
-  // R1: mask.
-  __ mov(R3, Operand(R0));
-
-  Label loop, update, call_target_function;
-  __ b(&loop);
-
-  __ Bind(&update);
-  __ add(R3, R3, Operand(Smi::RawValue(1)));
-  __ Bind(&loop);
-  __ and_(R3, R3, Operand(R1));
-  const intptr_t base = Array::data_offset();
-  // R3 is smi tagged, but table entries are two words, so LSL 2.
-  __ add(IP, R2, Operand(R3, LSL, 2));
-  __ ldr(R4, FieldAddress(IP, base));
-
-  ASSERT(kIllegalCid == 0);
-  __ tst(R4, Operand(R4));
-  __ b(&call_target_function, EQ);
-  __ cmp(R4, Operand(R0));
-  __ b(&update, NE);
-
-  __ Bind(&call_target_function);
-  // Call the target found in the cache.  For a class id match, this is a
-  // proper target for the given name and arguments descriptor.  If the
-  // illegal class id was found, the target is a cache miss handler that can
-  // be invoked as a normal Dart function.
-  __ add(IP, R2, Operand(R3, LSL, 2));
-  __ ldr(R0, FieldAddress(IP, base + kWordSize));
-  __ ldr(R1, FieldAddress(R0, Function::instructions_offset()));
+  if (FLAG_use_megamorphic_stub) {
+    StubCode* stub_code = isolate()->stub_code();
+    __ BranchLink(&stub_code->MegamorphicLookupLabel());
+  } else  {
+    StubCode::EmitMegamorphicLookup(assembler(), receiverR, cacheR, targetR);
+  }
   __ LoadObject(R5, ic_data);
   __ LoadObject(R4, arguments_descriptor);
-  __ AddImmediate(R1, Instructions::HeaderSize() - kHeapObjectTag);
-  __ blx(R1);
+  __ blx(targetR);
   AddCurrentDescriptor(RawPcDescriptors::kOther,
       Isolate::kNoDeoptId, token_pos);
   RecordSafepoint(locs);
diff --git a/runtime/vm/flow_graph_compiler_arm64.cc b/runtime/vm/flow_graph_compiler_arm64.cc
index 3a7f574..dec7a2b 100644
--- a/runtime/vm/flow_graph_compiler_arm64.cc
+++ b/runtime/vm/flow_graph_compiler_arm64.cc
@@ -24,6 +24,7 @@
 
 DEFINE_FLAG(bool, trap_on_deoptimization, false, "Trap on deoptimization.");
 DECLARE_FLAG(bool, enable_simd_inline);
+DECLARE_FLAG(bool, use_megamorphic_stub);
 
 
 FlowGraphCompiler::~FlowGraphCompiler() {
@@ -1269,47 +1270,21 @@
   ASSERT(!arguments_descriptor.IsNull() && (arguments_descriptor.Length() > 0));
   const MegamorphicCache& cache =
       MegamorphicCache::ZoneHandle(table->Lookup(name, arguments_descriptor));
-  __ LoadFromOffset(R0, SP, (argument_count - 1) * kWordSize, PP);
-  __ LoadTaggedClassIdMayBeSmi(R0, R0);
+  const Register receiverR = R0;
+  const Register cacheR = R1;
+  const Register targetR = R1;
+  __ LoadFromOffset(receiverR, SP, (argument_count - 1) * kWordSize, PP);
+  __ LoadObject(cacheR, cache, PP);
 
-  // R0: class ID of the receiver (smi).
-  __ LoadObject(R1, cache, PP);
-  __ LoadFieldFromOffset(R2, R1, MegamorphicCache::buckets_offset(), PP);
-  __ LoadFieldFromOffset(R1, R1, MegamorphicCache::mask_offset(), PP);
-  // R2: cache buckets array.
-  // R1: mask.
-  __ mov(R3, R0);
-
-  Label loop, update, call_target_function;
-  __ b(&loop);
-
-  __ Bind(&update);
-  __ add(R3, R3, Operand(Smi::RawValue(1)));
-  __ Bind(&loop);
-  __ and_(R3, R3, Operand(R1));
-  const intptr_t base = Array::data_offset();
-  // R3 is smi tagged, but table entries are 16 bytes, so LSL 3.
-  __ add(TMP, R2, Operand(R3, LSL, 3));
-  __ LoadFieldFromOffset(R4, TMP, base, PP);
-
-  ASSERT(kIllegalCid == 0);
-  __ tst(R4, Operand(R4));
-  __ b(&call_target_function, EQ);
-  __ CompareRegisters(R4, R0);
-  __ b(&update, NE);
-
-  __ Bind(&call_target_function);
-  // Call the target found in the cache.  For a class id match, this is a
-  // proper target for the given name and arguments descriptor.  If the
-  // illegal class id was found, the target is a cache miss handler that can
-  // be invoked as a normal Dart function.
-  __ add(TMP, R2, Operand(R3, LSL, 3));
-  __ LoadFieldFromOffset(R0, TMP, base + kWordSize, PP);
-  __ LoadFieldFromOffset(R1, R0, Function::instructions_offset(), PP);
+  if (FLAG_use_megamorphic_stub) {
+    StubCode* stub_code = isolate()->stub_code();
+    __ BranchLink(&stub_code->MegamorphicLookupLabel(), PP);
+  } else  {
+    StubCode::EmitMegamorphicLookup(assembler(), receiverR, cacheR, targetR);
+  }
   __ LoadObject(R5, ic_data, PP);
   __ LoadObject(R4, arguments_descriptor, PP);
-  __ AddImmediate(R1, R1, Instructions::HeaderSize() - kHeapObjectTag, PP);
-  __ blr(R1);
+  __ blr(targetR);
   AddCurrentDescriptor(RawPcDescriptors::kOther,
       Isolate::kNoDeoptId, token_pos);
   RecordSafepoint(locs);
diff --git a/runtime/vm/flow_graph_compiler_ia32.cc b/runtime/vm/flow_graph_compiler_ia32.cc
index e99ebd6..b389d5d 100644
--- a/runtime/vm/flow_graph_compiler_ia32.cc
+++ b/runtime/vm/flow_graph_compiler_ia32.cc
@@ -27,8 +27,9 @@
 
 DEFINE_FLAG(bool, trap_on_deoptimization, false, "Trap on deoptimization.");
 DEFINE_FLAG(bool, unbox_mints, true, "Optimize 64-bit integer arithmetic.");
-DECLARE_FLAG(bool, enable_type_checks);
+
 DECLARE_FLAG(bool, enable_simd_inline);
+DECLARE_FLAG(bool, use_megamorphic_stub);
 
 
 FlowGraphCompiler::~FlowGraphCompiler() {
@@ -1303,54 +1304,29 @@
     intptr_t deopt_id,
     intptr_t token_pos,
     LocationSummary* locs) {
-  MegamorphicCacheTable* table = Isolate::Current()->megamorphic_cache_table();
+  MegamorphicCacheTable* table = isolate()->megamorphic_cache_table();
   const String& name = String::Handle(ic_data.target_name());
   const Array& arguments_descriptor =
       Array::ZoneHandle(ic_data.arguments_descriptor());
   ASSERT(!arguments_descriptor.IsNull() && (arguments_descriptor.Length() > 0));
   const MegamorphicCache& cache =
       MegamorphicCache::ZoneHandle(table->Lookup(name, arguments_descriptor));
-  Label load_cache;
-  __ movl(EBX, Address(ESP, (argument_count - 1) * kWordSize));
-  __ LoadTaggedClassIdMayBeSmi(EAX, EBX);
+  const Register receiverR = EDI;
+  const Register cacheR = EBX;
+  const Register targetR = EBX;
+  __ movl(receiverR, Address(ESP, (argument_count - 1) * kWordSize));
+  __ LoadObject(cacheR, cache);
 
-  // EAX: class ID of the receiver (smi).
-  __ Bind(&load_cache);
-  __ LoadObject(EBX, cache);
-  __ movl(EDI, FieldAddress(EBX, MegamorphicCache::buckets_offset()));
-  __ movl(EBX, FieldAddress(EBX, MegamorphicCache::mask_offset()));
-  // EDI: cache buckets array.
-  // EBX: mask.
-  __ movl(ECX, EAX);
+  if (FLAG_use_megamorphic_stub) {
+    StubCode* stub_code = isolate()->stub_code();
+    __ call(&stub_code->MegamorphicLookupLabel());
+  } else  {
+    StubCode::EmitMegamorphicLookup(assembler(), receiverR, cacheR, targetR);
+  }
 
-  Label loop, update, call_target_function;
-  __ jmp(&loop);
-
-  __ Bind(&update);
-  __ addl(ECX, Immediate(Smi::RawValue(1)));
-  __ Bind(&loop);
-  __ andl(ECX, EBX);
-  const intptr_t base = Array::data_offset();
-  // ECX is smi tagged, but table entries are two words, so TIMES_4.
-  __ movl(EDX, FieldAddress(EDI, ECX, TIMES_4, base));
-
-  ASSERT(kIllegalCid == 0);
-  __ testl(EDX, EDX);
-  __ j(ZERO, &call_target_function, Assembler::kNearJump);
-  __ cmpl(EDX, EAX);
-  __ j(NOT_EQUAL, &update, Assembler::kNearJump);
-
-  __ Bind(&call_target_function);
-  // Call the target found in the cache.  For a class id match, this is a
-  // proper target for the given name and arguments descriptor.  If the
-  // illegal class id was found, the target is a cache miss handler that can
-  // be invoked as a normal Dart function.
-  __ movl(EAX, FieldAddress(EDI, ECX, TIMES_4, base + kWordSize));
-  __ movl(EBX, FieldAddress(EAX, Function::instructions_offset()));
   __ LoadObject(ECX, ic_data);
   __ LoadObject(EDX, arguments_descriptor);
-  __ addl(EBX, Immediate(Instructions::HeaderSize() - kHeapObjectTag));
-  __ call(EBX);
+  __ call(targetR);
   AddCurrentDescriptor(RawPcDescriptors::kOther,
       Isolate::kNoDeoptId, token_pos);
   RecordSafepoint(locs);
diff --git a/runtime/vm/flow_graph_compiler_mips.cc b/runtime/vm/flow_graph_compiler_mips.cc
index 847048e..556a673 100644
--- a/runtime/vm/flow_graph_compiler_mips.cc
+++ b/runtime/vm/flow_graph_compiler_mips.cc
@@ -22,7 +22,7 @@
 namespace dart {
 
 DEFINE_FLAG(bool, trap_on_deoptimization, false, "Trap on deoptimization.");
-DECLARE_FLAG(bool, enable_type_checks);
+DECLARE_FLAG(bool, use_megamorphic_stub);
 
 
 FlowGraphCompiler::~FlowGraphCompiler() {
@@ -1292,48 +1292,21 @@
   const MegamorphicCache& cache =
       MegamorphicCache::ZoneHandle(table->Lookup(name, arguments_descriptor));
   __ Comment("MegamorphicInstanceCall");
-  __ lw(T0, Address(SP, (argument_count - 1) * kWordSize));
-  __ LoadTaggedClassIdMayBeSmi(T0, T0);
+  const Register receiverR = T0;
+  const Register cacheR = T1;
+  const Register targetR = T1;
+  __ lw(receiverR, Address(SP, (argument_count - 1) * kWordSize));
+  __ LoadObject(cacheR, cache);
 
-  // T0: class ID of the receiver (smi).
-  __ LoadObject(T1, cache);
-  __ lw(T2, FieldAddress(T1, MegamorphicCache::buckets_offset()));
-  __ lw(T1, FieldAddress(T1, MegamorphicCache::mask_offset()));
-  // T2: cache buckets array.
-  // T1: mask.
-  __ mov(T3, T0);
-
-  Label loop, update, call_target_function;
-  __ b(&loop);
-
-  __ Bind(&update);
-  __ addiu(T3, T3, Immediate(Smi::RawValue(1)));
-  __ Bind(&loop);
-  __ and_(T3, T3, T1);
-  const intptr_t base = Array::data_offset();
-  // T3 is smi tagged, but table entries are two words, so LSL 2.
-  __ sll(TMP, T3, 2);
-  __ addu(TMP, T2, TMP);
-  __ lw(T4, FieldAddress(TMP, base));
-
-  ASSERT(kIllegalCid == 0);
-  __ beq(T4, ZR, &call_target_function);
-  __ bne(T4, T0, &update);
-
-  __ Bind(&call_target_function);
-  // Call the target found in the cache.  For a class id match, this is a
-  // proper target for the given name and arguments descriptor.  If the
-  // illegal class id was found, the target is a cache miss handler that can
-  // be invoked as a normal Dart function.
-  __ sll(T1, T3, 2);
-  __ addu(T1, T2, T1);
-  __ lw(T0, FieldAddress(T1, base + kWordSize));
-
-  __ lw(T1, FieldAddress(T0, Function::instructions_offset()));
+  if (FLAG_use_megamorphic_stub) {
+    StubCode* stub_code = isolate()->stub_code();
+    __ BranchLink(&stub_code->MegamorphicLookupLabel());
+  } else  {
+    StubCode::EmitMegamorphicLookup(assembler(), receiverR, cacheR, targetR);
+  }
   __ LoadObject(S5, ic_data);
   __ LoadObject(S4, arguments_descriptor);
-  __ AddImmediate(T1, Instructions::HeaderSize() - kHeapObjectTag);
-  __ jalr(T1);
+  __ jalr(targetR);
   AddCurrentDescriptor(RawPcDescriptors::kOther,
       Isolate::kNoDeoptId, token_pos);
   RecordSafepoint(locs);
diff --git a/runtime/vm/flow_graph_compiler_x64.cc b/runtime/vm/flow_graph_compiler_x64.cc
index b0cc219..a590735 100644
--- a/runtime/vm/flow_graph_compiler_x64.cc
+++ b/runtime/vm/flow_graph_compiler_x64.cc
@@ -24,8 +24,8 @@
 
 DEFINE_FLAG(bool, trap_on_deoptimization, false, "Trap on deoptimization.");
 DEFINE_FLAG(bool, unbox_mints, true, "Optimize 64-bit integer arithmetic.");
-DECLARE_FLAG(bool, enable_type_checks);
 DECLARE_FLAG(bool, enable_simd_inline);
+DECLARE_FLAG(bool, use_megamorphic_stub);
 
 
 FlowGraphCompiler::~FlowGraphCompiler() {
@@ -1311,53 +1311,28 @@
     intptr_t deopt_id,
     intptr_t token_pos,
     LocationSummary* locs) {
-  MegamorphicCacheTable* table = Isolate::Current()->megamorphic_cache_table();
+  MegamorphicCacheTable* table = isolate()->megamorphic_cache_table();
   const String& name = String::Handle(ic_data.target_name());
   const Array& arguments_descriptor =
       Array::ZoneHandle(ic_data.arguments_descriptor());
   ASSERT(!arguments_descriptor.IsNull() && (arguments_descriptor.Length() > 0));
   const MegamorphicCache& cache =
       MegamorphicCache::ZoneHandle(table->Lookup(name, arguments_descriptor));
-  __ movq(RBX, Address(RSP, (argument_count - 1) * kWordSize));
-  __ LoadTaggedClassIdMayBeSmi(RAX, RBX);
+  const Register receiverR = RDI;
+  const Register cacheR = RBX;
+  const Register targetR = RCX;
+  __ movq(receiverR, Address(RSP, (argument_count - 1) * kWordSize));
+  __ LoadObject(cacheR, cache, PP);
 
-  // RAX: class ID of the receiver (smi).
-  __ LoadObject(RBX, cache, PP);
-  __ movq(RDI, FieldAddress(RBX, MegamorphicCache::buckets_offset()));
-  __ movq(RBX, FieldAddress(RBX, MegamorphicCache::mask_offset()));
-  // RDI: cache buckets array.
-  // RBX: mask.
-  __ movq(RCX, RAX);
-
-  Label loop, update, call_target_function;
-  __ jmp(&loop);
-
-  __ Bind(&update);
-  __ AddImmediate(RCX, Immediate(Smi::RawValue(1)), PP);
-  __ Bind(&loop);
-  __ andq(RCX, RBX);
-  const intptr_t base = Array::data_offset();
-  // RCX is smi tagged, but table entries are two words, so TIMES_8.
-  __ movq(RDX, FieldAddress(RDI, RCX, TIMES_8, base));
-
-  ASSERT(kIllegalCid == 0);
-  __ testq(RDX, RDX);
-  __ j(ZERO, &call_target_function, Assembler::kNearJump);
-  __ cmpq(RDX, RAX);
-  __ j(NOT_EQUAL, &update, Assembler::kNearJump);
-
-  __ Bind(&call_target_function);
-  // Call the target found in the cache.  For a class id match, this is a
-  // proper target for the given name and arguments descriptor.  If the
-  // illegal class id was found, the target is a cache miss handler that can
-  // be invoked as a normal Dart function.
-  __ movq(RAX, FieldAddress(RDI, RCX, TIMES_8, base + kWordSize));
-  __ movq(RCX, FieldAddress(RAX, Function::instructions_offset()));
+  if (FLAG_use_megamorphic_stub) {
+    StubCode* stub_code = isolate()->stub_code();
+    __ call(&stub_code->MegamorphicLookupLabel());
+  } else  {
+    StubCode::EmitMegamorphicLookup(assembler(), receiverR, cacheR, targetR);
+  }
   __ LoadObject(RBX, ic_data, PP);
   __ LoadObject(R10, arguments_descriptor, PP);
-  __ AddImmediate(
-      RCX, Immediate(Instructions::HeaderSize() - kHeapObjectTag), PP);
-  __ call(RCX);
+  __ call(targetR);
   AddCurrentDescriptor(RawPcDescriptors::kOther,
       Isolate::kNoDeoptId, token_pos);
   RecordSafepoint(locs);
diff --git a/runtime/vm/flow_graph_inliner.cc b/runtime/vm/flow_graph_inliner.cc
index 567e18c..6877f06 100644
--- a/runtime/vm/flow_graph_inliner.cc
+++ b/runtime/vm/flow_graph_inliner.cc
@@ -58,7 +58,6 @@
             "Enable inlining annotations");
 
 DECLARE_FLAG(bool, compiler_stats);
-DECLARE_FLAG(bool, enable_type_checks);
 DECLARE_FLAG(int, deoptimization_counter_threshold);
 DECLARE_FLAG(bool, print_flow_graph);
 DECLARE_FLAG(bool, print_flow_graph_optimized);
diff --git a/runtime/vm/flow_graph_optimizer.cc b/runtime/vm/flow_graph_optimizer.cc
index 1b33345..ee53c720 100644
--- a/runtime/vm/flow_graph_optimizer.cc
+++ b/runtime/vm/flow_graph_optimizer.cc
@@ -43,7 +43,6 @@
 #if defined(TARGET_ARCH_ARM) || defined(TARGET_ARCH_IA32)
 DEFINE_FLAG(bool, trace_smi_widening, false, "Trace Smi->Int32 widening pass.");
 #endif
-DECLARE_FLAG(bool, enable_type_checks);
 DECLARE_FLAG(bool, source_lines);
 DECLARE_FLAG(bool, trace_type_check_elimination);
 DECLARE_FLAG(bool, warn_on_javascript_compatibility);
diff --git a/runtime/vm/flow_graph_type_propagator.cc b/runtime/vm/flow_graph_type_propagator.cc
index 0d646b8..bbf8d64 100644
--- a/runtime/vm/flow_graph_type_propagator.cc
+++ b/runtime/vm/flow_graph_type_propagator.cc
@@ -14,7 +14,6 @@
 DEFINE_FLAG(bool, trace_type_propagation, false,
             "Trace flow graph type propagation");
 
-DECLARE_FLAG(bool, enable_type_checks);
 DECLARE_FLAG(bool, propagate_types);
 DECLARE_FLAG(bool, use_cha);
 
diff --git a/runtime/vm/intermediate_language.cc b/runtime/vm/intermediate_language.cc
index eea43c4..47e7dab 100644
--- a/runtime/vm/intermediate_language.cc
+++ b/runtime/vm/intermediate_language.cc
@@ -37,7 +37,6 @@
     "for binary and unary arithmetic operations");
 DEFINE_FLAG(bool, unbox_numeric_fields, true,
     "Support unboxed double and float32x4 fields.");
-DECLARE_FLAG(bool, enable_type_checks);
 DECLARE_FLAG(bool, eliminate_type_checks);
 DECLARE_FLAG(bool, trace_optimization);
 DECLARE_FLAG(bool, throw_on_javascript_int_overflow);
diff --git a/runtime/vm/intermediate_language_arm.cc b/runtime/vm/intermediate_language_arm.cc
index bc38b17..eac606c 100644
--- a/runtime/vm/intermediate_language_arm.cc
+++ b/runtime/vm/intermediate_language_arm.cc
@@ -26,7 +26,6 @@
 
 DECLARE_FLAG(bool, emit_edge_counters);
 DECLARE_FLAG(bool, enable_asserts);
-DECLARE_FLAG(bool, enable_type_checks);
 DECLARE_FLAG(int, optimization_counter_threshold);
 DECLARE_FLAG(bool, use_osr);
 
@@ -2368,7 +2367,8 @@
   ASSERT(locs()->in(kElementTypePos).reg() == kElemTypeReg);
   ASSERT(locs()->in(kLengthPos).reg() == kLengthReg);
 
-  if (num_elements()->BindsToConstant() &&
+  if (compiler->is_optimizing() &&
+      num_elements()->BindsToConstant() &&
       num_elements()->BoundConstant().IsSmi()) {
     const intptr_t length = Smi::Cast(num_elements()->BoundConstant()).Value();
     if ((length >= 0) && (length <= Array::kMaxElements)) {
diff --git a/runtime/vm/intermediate_language_arm64.cc b/runtime/vm/intermediate_language_arm64.cc
index 5eecb10..92c25d8 100644
--- a/runtime/vm/intermediate_language_arm64.cc
+++ b/runtime/vm/intermediate_language_arm64.cc
@@ -25,7 +25,6 @@
 
 DECLARE_FLAG(bool, emit_edge_counters);
 DECLARE_FLAG(bool, enable_asserts);
-DECLARE_FLAG(bool, enable_type_checks);
 DECLARE_FLAG(int, optimization_counter_threshold);
 DECLARE_FLAG(bool, use_osr);
 
@@ -2106,7 +2105,8 @@
   ASSERT(locs()->in(kElementTypePos).reg() == kElemTypeReg);
   ASSERT(locs()->in(kLengthPos).reg() == kLengthReg);
 
-  if (num_elements()->BindsToConstant() &&
+  if (compiler->is_optimizing() &&
+      num_elements()->BindsToConstant() &&
       num_elements()->BoundConstant().IsSmi()) {
     const intptr_t length = Smi::Cast(num_elements()->BoundConstant()).Value();
     if ((length >= 0) && (length <= Array::kMaxElements)) {
diff --git a/runtime/vm/intermediate_language_ia32.cc b/runtime/vm/intermediate_language_ia32.cc
index 8505364..e88e35e 100644
--- a/runtime/vm/intermediate_language_ia32.cc
+++ b/runtime/vm/intermediate_language_ia32.cc
@@ -24,7 +24,6 @@
 
 DECLARE_FLAG(bool, emit_edge_counters);
 DECLARE_FLAG(bool, enable_asserts);
-DECLARE_FLAG(bool, enable_type_checks);
 DECLARE_FLAG(int, optimization_counter_threshold);
 DECLARE_FLAG(bool, use_osr);
 DECLARE_FLAG(bool, throw_on_javascript_int_overflow);
@@ -2104,7 +2103,8 @@
   ASSERT(locs()->in(1).reg() == kLengthReg);
 
   Label slow_path, done;
-  if (num_elements()->BindsToConstant() &&
+  if (compiler->is_optimizing() &&
+      num_elements()->BindsToConstant() &&
       num_elements()->BoundConstant().IsSmi()) {
     const intptr_t length = Smi::Cast(num_elements()->BoundConstant()).Value();
     if ((length >= 0) && (length <= Array::kMaxElements)) {
diff --git a/runtime/vm/intermediate_language_mips.cc b/runtime/vm/intermediate_language_mips.cc
index 602a4e2..302c5e1 100644
--- a/runtime/vm/intermediate_language_mips.cc
+++ b/runtime/vm/intermediate_language_mips.cc
@@ -25,7 +25,6 @@
 
 DECLARE_FLAG(bool, emit_edge_counters);
 DECLARE_FLAG(bool, enable_asserts);
-DECLARE_FLAG(bool, enable_type_checks);
 DECLARE_FLAG(int, optimization_counter_threshold);
 DECLARE_FLAG(bool, use_osr);
 
@@ -2225,7 +2224,8 @@
   ASSERT(locs()->in(1).reg() == kLengthReg);
 
   Label slow_path, done;
-  if (num_elements()->BindsToConstant() &&
+  if (compiler->is_optimizing() &&
+      num_elements()->BindsToConstant() &&
       num_elements()->BoundConstant().IsSmi()) {
     const intptr_t length = Smi::Cast(num_elements()->BoundConstant()).Value();
     if ((length >= 0) && (length <= Array::kMaxElements)) {
diff --git a/runtime/vm/intermediate_language_x64.cc b/runtime/vm/intermediate_language_x64.cc
index 433d67d..fa08bfb 100644
--- a/runtime/vm/intermediate_language_x64.cc
+++ b/runtime/vm/intermediate_language_x64.cc
@@ -24,7 +24,6 @@
 
 DECLARE_FLAG(bool, emit_edge_counters);
 DECLARE_FLAG(bool, enable_asserts);
-DECLARE_FLAG(bool, enable_type_checks);
 DECLARE_FLAG(int, optimization_counter_threshold);
 DECLARE_FLAG(bool, throw_on_javascript_int_overflow);
 DECLARE_FLAG(bool, use_osr);
@@ -2101,7 +2100,8 @@
   ASSERT(locs()->in(1).reg() == kLengthReg);
 
   Label slow_path, done;
-  if (num_elements()->BindsToConstant() &&
+  if (compiler->is_optimizing() &&
+      num_elements()->BindsToConstant() &&
       num_elements()->BoundConstant().IsSmi()) {
     const intptr_t length = Smi::Cast(num_elements()->BoundConstant()).Value();
     if ((length >= 0) && (length <= Array::kMaxElements)) {
diff --git a/runtime/vm/intrinsifier.cc b/runtime/vm/intrinsifier.cc
index d2df9ee..37ff3d7 100644
--- a/runtime/vm/intrinsifier.cc
+++ b/runtime/vm/intrinsifier.cc
@@ -24,7 +24,6 @@
 DECLARE_FLAG(bool, code_comments);
 DECLARE_FLAG(bool, print_flow_graph);
 DECLARE_FLAG(bool, print_flow_graph_optimized);
-DECLARE_FLAG(bool, enable_type_checks);
 
 bool Intrinsifier::CanIntrinsify(const Function& function) {
   if (!FLAG_intrinsify) return false;
@@ -35,6 +34,7 @@
 }
 
 
+#if defined(DART_NO_SNAPSHOT)
 void Intrinsifier::InitializeState() {
   Isolate* isolate = Isolate::Current();
   Library& lib = Library::Handle(isolate);
@@ -91,6 +91,7 @@
 
 #undef SETUP_FUNCTION
 }
+#endif  // defined(DART_NO_SNAPSHOT).
 
 
 static void EmitCodeFor(FlowGraphCompiler* compiler,
@@ -144,7 +145,6 @@
   switch (function.recognized_kind()) {
 #define EMIT_CASE(class_name, function_name, enum_name, fp)                    \
     case MethodRecognizer::k##enum_name:                                       \
-      CHECK_FINGERPRINT3(function, class_name, function_name, enum_name, fp);  \
       if (!Build_##enum_name(graph)) return false;                             \
       break;
 
@@ -188,23 +188,21 @@
 
 #define EMIT_CASE(class_name, function_name, enum_name, fp)                    \
     case MethodRecognizer::k##enum_name:                                       \
-      CHECK_FINGERPRINT3(function, class_name, function_name, enum_name, fp);  \
       compiler->assembler()->Comment("Intrinsic");                             \
       enum_name(compiler->assembler());                                        \
       break;
 
-  if (FLAG_throw_on_javascript_int_overflow && (Smi::kBits >= 32)) {
-    // Integer intrinsics are in the core library, but we don't want to
-    // intrinsify when Smi > 32 bits if we are looking for javascript integer
-    // overflow.
+  switch (function.recognized_kind()) {
+    ALL_INTRINSICS_NO_INTEGER_LIB_LIST(EMIT_CASE);
+    default:
+      break;
+  }
+  // Integer intrinsics are in the core library, but we don't want to
+  // intrinsify when Smi > 32 bits if we are looking for javascript integer
+  // overflow.
+  if (!(FLAG_throw_on_javascript_int_overflow && (Smi::kBits >= 32))) {
     switch (function.recognized_kind()) {
-      ALL_INTRINSICS_NO_INTEGER_LIB_LIST(EMIT_CASE);
-      default:
-        break;
-    }
-  } else {
-    switch (function.recognized_kind()) {
-      ALL_INTRINSICS_LIST(EMIT_CASE);
+      CORE_INTEGER_LIB_INTRINSIC_LIST(EMIT_CASE)
       default:
         break;
     }
diff --git a/runtime/vm/intrinsifier.h b/runtime/vm/intrinsifier.h
index f334446..0203632 100644
--- a/runtime/vm/intrinsifier.h
+++ b/runtime/vm/intrinsifier.h
@@ -23,7 +23,9 @@
  public:
   static void Intrinsify(const ParsedFunction& parsed_function,
                          FlowGraphCompiler* compiler);
+#if defined(DART_NO_SNAPSHOT)
   static void InitializeState();
+#endif
 
   static bool GraphIntrinsify(const ParsedFunction& parsed_function,
                               FlowGraphCompiler* compiler);
diff --git a/runtime/vm/intrinsifier_arm.cc b/runtime/vm/intrinsifier_arm.cc
index f81581b..3cf09c5 100644
--- a/runtime/vm/intrinsifier_arm.cc
+++ b/runtime/vm/intrinsifier_arm.cc
@@ -18,8 +18,6 @@
 
 namespace dart {
 
-DECLARE_FLAG(bool, enable_type_checks);
-
 // When entering intrinsics code:
 // R5: IC Data
 // R4: Arguments descriptor
@@ -793,7 +791,14 @@
 
 
 void Intrinsifier::Smi_bitLength(Assembler* assembler) {
-  // TODO(sra): Implement as word-length - CLZ.
+  __ ldr(R0, Address(SP, 0 * kWordSize));
+  __ SmiUntag(R0);
+  // XOR with sign bit to complement bits if value is negative.
+  __ eor(R0, R0, Operand(R0, ASR, 31));
+  __ clz(R0, R0);
+  __ rsb(R0, R0, Operand(32));
+  __ SmiTag(R0);
+  __ Ret();
 }
 
 
@@ -875,7 +880,7 @@
   __ Bind(&loop_entry);
   __ teq(R8, Operand(R6));
   __ b(&loop, NE);
-  __ str(R1, Address(R8, Bigint::kBytesPerDigit, Address::PostIndex));
+  __ str(R1, Address(R8, 0));
   // Returning Object::null() is not required, since this method is private.
   __ Ret();
 }
diff --git a/runtime/vm/intrinsifier_arm64.cc b/runtime/vm/intrinsifier_arm64.cc
index a877dc9..9e44953 100644
--- a/runtime/vm/intrinsifier_arm64.cc
+++ b/runtime/vm/intrinsifier_arm64.cc
@@ -17,8 +17,6 @@
 
 namespace dart {
 
-DECLARE_FLAG(bool, enable_type_checks);
-
 // When entering intrinsics code:
 // R5: IC Data
 // R4: Arguments descriptor
@@ -692,17 +690,107 @@
 
 
 void Intrinsifier::Smi_bitLength(Assembler* assembler) {
-  // TODO(sra): Implement as word-length - CLZ.
+  __ ldr(R0, Address(SP, 0 * kWordSize));
+  __ SmiUntag(R0);
+  // XOR with sign bit to complement bits if value is negative.
+  __ eor(R0, R0, Operand(R0, ASR, 63));
+  __ clz(R0, R0);
+  __ LoadImmediate(R1, 64, kNoPP);
+  __ sub(R0, R1, Operand(R0));
+  __ SmiTag(R0);
+  __ ret();
 }
 
 
 void Intrinsifier::Bigint_lsh(Assembler* assembler) {
-  // TODO(regis): Implement.
+  // static void _lsh(Uint32List x_digits, int x_used, int n,
+  //                  Uint32List r_digits)
+
+  // R2 = x_used, R3 = x_digits, x_used > 0, x_used is Smi.
+  __ ldp(R2, R3, Address(SP, 2 * kWordSize, Address::PairOffset));
+  __ add(R2, R2, Operand(2));  // x_used > 0, Smi. R2 = x_used + 1, round up.
+  __ AsrImmediate(R2, R2, 2);  // R2 = num of digit pairs to read.
+  // R4 = r_digits, R5 = n, n is Smi, n % _DIGIT_BITS != 0.
+  __ ldp(R4, R5, Address(SP, 0 * kWordSize, Address::PairOffset));
+  __ SmiUntag(R5);
+  // R0 = n ~/ (2*_DIGIT_BITS)
+  __ AsrImmediate(R0, R5, 6);
+  // R6 = &x_digits[0]
+  __ add(R6, R3, Operand(TypedData::data_offset() - kHeapObjectTag));
+  // R7 = &x_digits[2*R2]
+  __ add(R7, R6, Operand(R2, LSL, 3));
+  // R8 = &r_digits[2*1]
+  __ add(R8, R4, Operand(TypedData::data_offset() - kHeapObjectTag +
+                         2 * Bigint::kBytesPerDigit));
+  // R8 = &r_digits[2*(R2 + n ~/ (2*_DIGIT_BITS) + 1)]
+  __ add(R0, R0, Operand(R2));
+  __ add(R8, R8, Operand(R0, LSL, 3));
+  // R3 = n % (2 * _DIGIT_BITS)
+  __ AndImmediate(R3, R5, 63, kNoPP);
+  // R2 = 64 - R3
+  __ LoadImmediate(R2, 64, kNoPP);
+  __ sub(R2, R2, Operand(R3));
+  __ mov(R1, ZR);
+  Label loop;
+  __ Bind(&loop);
+  __ ldr(R0, Address(R7, -2 * Bigint::kBytesPerDigit, Address::PreIndex));
+  __ lsrv(R4, R0, R2);
+  __ orr(R1, R1, Operand(R4));
+  __ str(R1, Address(R8, -2 * Bigint::kBytesPerDigit, Address::PreIndex));
+  __ lslv(R1, R0, R3);
+  __ cmp(R7, Operand(R6));
+  __ b(&loop, NE);
+  __ str(R1, Address(R8, -2 * Bigint::kBytesPerDigit, Address::PreIndex));
+  // Returning Object::null() is not required, since this method is private.
+  __ ret();
 }
 
 
 void Intrinsifier::Bigint_rsh(Assembler* assembler) {
-  // TODO(regis): Implement.
+  // static void _lsh(Uint32List x_digits, int x_used, int n,
+  //                  Uint32List r_digits)
+
+  // R2 = x_used, R3 = x_digits, x_used > 0, x_used is Smi.
+  __ ldp(R2, R3, Address(SP, 2 * kWordSize, Address::PairOffset));
+  __ add(R2, R2, Operand(2));  // x_used > 0, Smi. R2 = x_used + 1, round up.
+  __ AsrImmediate(R2, R2, 2);  // R2 = num of digit pairs to read.
+  // R4 = r_digits, R5 = n, n is Smi, n % _DIGIT_BITS != 0.
+  __ ldp(R4, R5, Address(SP, 0 * kWordSize, Address::PairOffset));
+  __ SmiUntag(R5);
+  // R0 = n ~/ (2*_DIGIT_BITS)
+  __ AsrImmediate(R0, R5, 6);
+  // R8 = &r_digits[0]
+  __ add(R8, R4, Operand(TypedData::data_offset() - kHeapObjectTag));
+  // R7 = &x_digits[2*(n ~/ (2*_DIGIT_BITS))]
+  __ add(R7, R3, Operand(TypedData::data_offset() - kHeapObjectTag));
+  __ add(R7, R7, Operand(R0, LSL, 3));
+  // R6 = &r_digits[2*(R2 - n ~/ (2*_DIGIT_BITS) - 1)]
+  __ add(R0, R0, Operand(1));
+  __ sub(R0, R2, Operand(R0));
+  __ add(R6, R8, Operand(R0, LSL, 3));
+  // R3 = n % (2*_DIGIT_BITS)
+  __ AndImmediate(R3, R5, 63, kNoPP);
+  // R2 = 64 - R3
+  __ LoadImmediate(R2, 64, kNoPP);
+  __ sub(R2, R2, Operand(R3));
+  // R1 = x_digits[n ~/ (2*_DIGIT_BITS)] >> (n % (2*_DIGIT_BITS))
+  __ ldr(R1, Address(R7, 2 * Bigint::kBytesPerDigit, Address::PostIndex));
+  __ lsrv(R1, R1, R3);
+  Label loop_entry;
+  __ b(&loop_entry);
+  Label loop;
+  __ Bind(&loop);
+  __ ldr(R0, Address(R7, 2 * Bigint::kBytesPerDigit, Address::PostIndex));
+  __ lslv(R4, R0, R2);
+  __ orr(R1, R1, Operand(R4));
+  __ str(R1, Address(R8, 2 * Bigint::kBytesPerDigit, Address::PostIndex));
+  __ lsrv(R1, R0, R3);
+  __ Bind(&loop_entry);
+  __ cmp(R8, Operand(R6));
+  __ b(&loop, NE);
+  __ str(R1, Address(R8, 0));
+  // Returning Object::null() is not required, since this method is private.
+  __ ret();
 }
 
 
diff --git a/runtime/vm/intrinsifier_ia32.cc b/runtime/vm/intrinsifier_ia32.cc
index 66ea7d0..7bc8fd6 100644
--- a/runtime/vm/intrinsifier_ia32.cc
+++ b/runtime/vm/intrinsifier_ia32.cc
@@ -24,8 +24,6 @@
 
 namespace dart {
 
-DECLARE_FLAG(bool, enable_type_checks);
-
 // When entering intrinsics code:
 // ECX: IC Data
 // EDX: Arguments descriptor
@@ -789,7 +787,7 @@
 
 // Argument is Smi (receiver).
 void Intrinsifier::Smi_bitNegate(Assembler* assembler) {
-  __ movl(EAX, Address(ESP, + 1 * kWordSize));  // Index.
+  __ movl(EAX, Address(ESP, + 1 * kWordSize));  // Receiver.
   __ notl(EAX);
   __ andl(EAX, Immediate(~kSmiTagMask));  // Remove inverted smi-tag.
   __ ret();
@@ -798,7 +796,7 @@
 
 void Intrinsifier::Smi_bitLength(Assembler* assembler) {
   ASSERT(kSmiTagShift == 1);
-  __ movl(EAX, Address(ESP, + 1 * kWordSize));  // Index.
+  __ movl(EAX, Address(ESP, + 1 * kWordSize));  // Receiver.
   // XOR with sign bit to complement bits if value is negative.
   __ movl(ECX, EAX);
   __ sarl(ECX, Immediate(31));  // All 0 or all 1.
diff --git a/runtime/vm/intrinsifier_mips.cc b/runtime/vm/intrinsifier_mips.cc
index 330c589..2163bbe 100644
--- a/runtime/vm/intrinsifier_mips.cc
+++ b/runtime/vm/intrinsifier_mips.cc
@@ -17,8 +17,6 @@
 
 namespace dart {
 
-DECLARE_FLAG(bool, enable_type_checks);
-
 // When entering intrinsics code:
 // S5: IC Data
 // S4: Arguments descriptor
@@ -788,17 +786,115 @@
 
 
 void Intrinsifier::Smi_bitLength(Assembler* assembler) {
-  // TODO(sra): Implement.
+  __ lw(V0, Address(SP, 0 * kWordSize));
+  __ SmiUntag(V0);
+  // XOR with sign bit to complement bits if value is negative.
+  __ sra(T0, V0, 31);
+  __ xor_(V0, V0, T0);
+  __ clz(V0, V0);
+  __ LoadImmediate(T0, 32);
+  __ subu(V0, T0, V0);
+  __ Ret();
+  __ delay_slot()->SmiTag(V0);
 }
 
 
 void Intrinsifier::Bigint_lsh(Assembler* assembler) {
-  // TODO(regis): Implement.
+  // static void _lsh(Uint32List x_digits, int x_used, int n,
+  //                  Uint32List r_digits)
+
+  // T2 = x_used, T3 = x_digits, x_used > 0, x_used is Smi.
+  __ lw(T2, Address(SP, 2 * kWordSize));
+  __ lw(T3, Address(SP, 3 * kWordSize));
+  // T4 = r_digits, T5 = n, n is Smi, n % _DIGIT_BITS != 0.
+  __ lw(T4, Address(SP, 0 * kWordSize));
+  __ lw(T5, Address(SP, 1 * kWordSize));
+  __ SmiUntag(T5);
+  // T0 = n ~/ _DIGIT_BITS
+  __ sra(T0, T5, 5);
+  // T6 = &x_digits[0]
+  __ addiu(T6, T3, Immediate(TypedData::data_offset() - kHeapObjectTag));
+  // V0 = &x_digits[x_used]
+  __ sll(T2, T2, 1);
+  __ addu(V0, T6, T2);
+  // V1 = &r_digits[1]
+  __ addiu(V1, T4, Immediate(TypedData::data_offset() - kHeapObjectTag +
+                             Bigint::kBytesPerDigit));
+  // V1 = &r_digits[x_used + n ~/ _DIGIT_BITS + 1]
+  __ addu(V1, V1, T2);
+  __ sll(T1, T0, 2);
+  __ addu(V1, V1, T1);
+  // T3 = n % _DIGIT_BITS
+  __ andi(T3, T5, Immediate(31));
+  // T2 = 32 - T3
+  __ subu(T2, ZR, T3);
+  __ addiu(T2, T2, Immediate(32));
+  __ mov(T1, ZR);
+  Label loop;
+  __ Bind(&loop);
+  __ addiu(V0, V0, Immediate(-Bigint::kBytesPerDigit));
+  __ lw(T0, Address(V0, 0));
+  __ srlv(AT, T0, T2);
+  __ or_(T1, T1, AT);
+  __ addiu(V1, V1, Immediate(-Bigint::kBytesPerDigit));
+  __ sw(T1, Address(V1, 0));
+  __ bne(V0, T6, &loop);
+  __ delay_slot()->sllv(T1, T0, T3);
+  __ sw(T1, Address(V1, -Bigint::kBytesPerDigit));
+  // Returning Object::null() is not required, since this method is private.
+  __ Ret();
 }
 
 
 void Intrinsifier::Bigint_rsh(Assembler* assembler) {
-  // TODO(regis): Implement.
+  // static void _lsh(Uint32List x_digits, int x_used, int n,
+  //                  Uint32List r_digits)
+
+  // T2 = x_used, T3 = x_digits, x_used > 0, x_used is Smi.
+  __ lw(T2, Address(SP, 2 * kWordSize));
+  __ lw(T3, Address(SP, 3 * kWordSize));
+  // T4 = r_digits, T5 = n, n is Smi, n % _DIGIT_BITS != 0.
+  __ lw(T4, Address(SP, 0 * kWordSize));
+  __ lw(T5, Address(SP, 1 * kWordSize));
+  __ SmiUntag(T5);
+  // T0 = n ~/ _DIGIT_BITS
+  __ sra(T0, T5, 5);
+  // V1 = &r_digits[0]
+  __ addiu(V1, T4, Immediate(TypedData::data_offset() - kHeapObjectTag));
+  // V0 = &x_digits[n ~/ _DIGIT_BITS]
+  __ addiu(V0, T3, Immediate(TypedData::data_offset() - kHeapObjectTag));
+  __ sll(T1, T0, 2);
+  __ addu(V0, V0, T1);
+  // T6 = &r_digits[x_used - n ~/ _DIGIT_BITS - 1]
+  __ sll(T2, T2, 1);
+  __ addu(T6, V1, T2);
+  __ subu(T6, T6, T1);
+  __ addiu(T6, T6, Immediate(-4));
+  // T3 = n % _DIGIT_BITS
+  __ andi(T3, T5, Immediate(31));
+  // T2 = 32 - T3
+  __ subu(T2, ZR, T3);
+  __ addiu(T2, T2, Immediate(32));
+  // T1 = x_digits[n ~/ _DIGIT_BITS] >> (n % _DIGIT_BITS)
+  __ lw(T1, Address(V0, 0));
+  __ addiu(V0, V0, Immediate(Bigint::kBytesPerDigit));
+  Label loop_exit;
+  __ beq(V1, T6, &loop_exit);
+  __ delay_slot()->srlv(T1, T1, T3);
+  Label loop;
+  __ Bind(&loop);
+  __ lw(T0, Address(V0, 0));
+  __ addiu(V0, V0, Immediate(Bigint::kBytesPerDigit));
+  __ sllv(AT, T0, T2);
+  __ or_(T1, T1, AT);
+  __ sw(T1, Address(V1, 0));
+  __ addiu(V1, V1, Immediate(Bigint::kBytesPerDigit));
+  __ bne(V1, T6, &loop);
+  __ delay_slot()->srlv(T1, T0, T3);
+  __ Bind(&loop_exit);
+  __ sw(T1, Address(V1, 0));
+  // Returning Object::null() is not required, since this method is private.
+  __ Ret();
 }
 
 
diff --git a/runtime/vm/intrinsifier_x64.cc b/runtime/vm/intrinsifier_x64.cc
index d34759f..2f0655d 100644
--- a/runtime/vm/intrinsifier_x64.cc
+++ b/runtime/vm/intrinsifier_x64.cc
@@ -17,8 +17,6 @@
 
 namespace dart {
 
-DECLARE_FLAG(bool, enable_type_checks);
-
 // When entering intrinsics code:
 // RBX: IC Data
 // R10: Arguments descriptor
diff --git a/runtime/vm/isolate.cc b/runtime/vm/isolate.cc
index 9f503b1..fb48273 100644
--- a/runtime/vm/isolate.cc
+++ b/runtime/vm/isolate.cc
@@ -937,13 +937,13 @@
 
   MutexLocker ml(mutex_);
   // Check if we are in a valid state to make the isolate runnable.
-  if (is_runnable_ == true) {
+  if (is_runnable() == true) {
     return false;  // Already runnable.
   }
   // Set the isolate as runnable and if we are being spawned schedule
   // isolate on thread pool for execution.
   ASSERT(object_store()->root_library() != Library::null());
-  is_runnable_ = true;
+  set_is_runnable(true);
   if (!ServiceIsolate::IsServiceIsolate(this)) {
     message_handler()->set_pause_on_start(FLAG_pause_isolates_on_start);
     message_handler()->set_pause_on_exit(FLAG_pause_isolates_on_exit);
diff --git a/runtime/vm/method_recognizer.cc b/runtime/vm/method_recognizer.cc
index fcfbdd6..1aff186 100644
--- a/runtime/vm/method_recognizer.cc
+++ b/runtime/vm/method_recognizer.cc
@@ -25,15 +25,21 @@
 }
 
 
-const char* MethodRecognizer::KindToCString(Kind kind) {
 #define KIND_TO_STRING(class_name, function_name, enum_name, fp)               \
-  if (kind == k##enum_name) return #enum_name;
+  #enum_name,
+static const char* recognized_list_method_name[] = {
 RECOGNIZED_LIST(KIND_TO_STRING)
+};
 #undef KIND_TO_STRING
+
+const char* MethodRecognizer::KindToCString(Kind kind) {
+  if (kind > kUnknown && kind < kNumRecognizedMethods)
+    return recognized_list_method_name[kind];
   return "?";
 }
 
 
+#if defined(DART_NO_SNAPSHOT)
 void MethodRecognizer::InitializeState() {
   GrowableArray<Library*> libs(3);
   libs.Add(&Library::ZoneHandle(Library::CoreLibrary()));
@@ -83,5 +89,6 @@
 #undef SET_IS_POLYMORPHIC_TARGET
 #undef SET_FUNCTION_BIT
 }
+#endif  // defined(DART_NO_SNAPSHOT).
 
 }  // namespace dart
diff --git a/runtime/vm/method_recognizer.h b/runtime/vm/method_recognizer.h
index d62c588..17dbb1b 100644
--- a/runtime/vm/method_recognizer.h
+++ b/runtime/vm/method_recognizer.h
@@ -455,7 +455,9 @@
   static bool AlwaysInline(const Function& function);
   static bool PolymorphicTarget(const Function& function);
   static const char* KindToCString(Kind kind);
+#if defined(DART_NO_SNAPSHOT)
   static void InitializeState();
+#endif  // defined(DART_NO_SNAPSHOT).
 };
 
 
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index 401a2e4..f4f90c6 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -66,7 +66,6 @@
 DEFINE_FLAG(bool, use_lib_cache, true, "Use library name cache");
 DEFINE_FLAG(bool, trace_field_guards, false, "Trace changes in field's cids.");
 
-DECLARE_FLAG(bool, enable_type_checks);
 DECLARE_FLAG(bool, error_on_bad_override);
 DECLARE_FLAG(bool, trace_compiler);
 DECLARE_FLAG(bool, trace_deoptimization);
@@ -627,11 +626,9 @@
 
   // Allocate and initialize the empty_descriptors instance.
   {
-    uword address = heap->Allocate(
-        PcDescriptors::InstanceSize(0, RawPcDescriptors::kCompressedRecSize),
-        Heap::kOld);
+    uword address = heap->Allocate(PcDescriptors::InstanceSize(0), Heap::kOld);
     InitializeObject(address, kPcDescriptorsCid,
-        PcDescriptors::InstanceSize(0, RawPcDescriptors::kCompressedRecSize));
+                     PcDescriptors::InstanceSize(0));
     PcDescriptors::initializeHandle(
         empty_descriptors_,
         reinterpret_cast<RawPcDescriptors*>(address + kHeapObjectTag));
@@ -928,6 +925,10 @@
 
 RawError* Object::Init(Isolate* isolate) {
   TIMERSCOPE(isolate, time_bootstrap);
+
+#if defined(DART_NO_SNAPSHOT)
+  // Object::Init version when we are running in a version of dart that does
+  // not have a full snapshot linked in.
   ObjectStore* object_store = isolate->object_store();
 
   Class& cls = Class::Handle(isolate);
@@ -1427,11 +1428,10 @@
   isolate->object_store()->InitKnownObjects();
 
   return Error::null();
-}
-
-
-void Object::InitFromSnapshot(Isolate* isolate) {
-  TIMERSCOPE(isolate, time_bootstrap);
+#else  // defined(DART_NO_SNAPSHOT).
+  // Object::Init version when we are running in a version of dart that has
+  // a full snapshot linked in and an isolate is initialized using the full
+  // snapshot.
   ObjectStore* object_store = isolate->object_store();
 
   Class& cls = Class::Handle();
@@ -1541,6 +1541,9 @@
   object_store->set_empty_context(context);
 
   StubCode::InitBootstrapStubs(isolate);
+#endif  // defined(DART_NO_SNAPSHOT).
+
+  return Error::null();
 }
 
 
@@ -6973,8 +6976,6 @@
 
 RawString* Field::GetterName(const String& field_name) {
   CompilerStats::make_accessor_name++;
-  // TODO(koda): Avoid most of these allocations by adding prefix-based lookup
-  // to Class::Lookup*.
   return String::Concat(Symbols::GetterPrefix(), field_name);
 }
 
@@ -6986,8 +6987,6 @@
 
 RawString* Field::SetterName(const String& field_name) {
   CompilerStats::make_accessor_name++;
-  // TODO(koda): Avoid most of these allocations by adding prefix-based lookup
-  // to Class::Lookup*.
   return String::Concat(Symbols::SetterPrefix(), field_name);
 }
 
@@ -8914,6 +8913,19 @@
 }
 
 
+static bool ShouldBePrivate(const String& name) {
+  return
+      (name.Length() >= 1 &&
+       name.CharAt(0) == '_') ||
+      (name.Length() >= 5 &&
+       (name.CharAt(4) == '_' &&
+        (name.CharAt(0) == 'g' || name.CharAt(0) == 's') &&
+        name.CharAt(1) == 'e' &&
+        name.CharAt(2) == 't' &&
+        name.CharAt(3) == ':'));
+}
+
+
 RawObject* Library::ResolveName(const String& name) const {
   Object& obj = Object::Handle();
   if (FLAG_use_lib_cache && LookupResolvedNamesCache(name, &obj)) {
@@ -8930,7 +8942,7 @@
   if (obj.IsNull()) {
     accessor_name = Field::SetterName(name);
     obj = LookupLocalObject(accessor_name);
-    if (obj.IsNull()) {
+    if (obj.IsNull() && !ShouldBePrivate(name)) {
       obj = LookupImportedObject(name);
     }
   }
@@ -9266,19 +9278,6 @@
 }
 
 
-static bool ShouldBePrivate(const String& name) {
-  return
-      (name.Length() >= 1 &&
-       name.CharAt(0) == '_') ||
-      (name.Length() >= 5 &&
-       (name.CharAt(4) == '_' &&
-        (name.CharAt(0) == 'g' || name.CharAt(0) == 's') &&
-        name.CharAt(1) == 'e' &&
-        name.CharAt(2) == 't' &&
-        name.CharAt(3) == ':'));
-}
-
-
 RawField* Library::LookupFieldAllowPrivate(const String& name) const {
   Object& obj = Object::Handle(LookupObjectAllowPrivate(name));
   if (obj.IsField()) {
@@ -9352,6 +9351,7 @@
   String& first_import_lib_url = String::Handle();
   Object& found_obj = Object::Handle();
   String& found_obj_name = String::Handle();
+  ASSERT(!ShouldBePrivate(name));
   for (intptr_t i = 0; i < num_imports(); i++) {
     import ^= ImportAt(i);
     obj = import.Lookup(name);
@@ -9841,6 +9841,11 @@
 }
 
 
+RawLibrary* Library::DeveloperLibrary() {
+  return Isolate::Current()->object_store()->developer_library();
+}
+
+
 RawLibrary* Library::InternalLibrary() {
   return Isolate::Current()->object_store()->internal_library();
 }
@@ -9866,13 +9871,13 @@
 }
 
 
-RawLibrary* Library::TypedDataLibrary() {
-  return Isolate::Current()->object_store()->typed_data_library();
+RawLibrary* Library::ProfilerLibrary() {
+  return Isolate::Current()->object_store()->profiler_library();
 }
 
 
-RawLibrary* Library::ProfilerLibrary() {
-  return Isolate::Current()->object_store()->profiler_library();
+RawLibrary* Library::TypedDataLibrary() {
+  return Isolate::Current()->object_store()->typed_data_library();
 }
 
 
@@ -10356,18 +10361,13 @@
   intptr_t ignore = 0;
 
   // Lookup the name in the library's symbols.
-  const String* filter_name = &name;
   Object& obj = Object::Handle(isolate, lib.LookupEntry(name, &ignore));
-  if (Field::IsGetterName(name)) {
-    filter_name = &String::Handle(Field::NameFromGetter(name));
-  } else if (Field::IsSetterName(name)) {
-    filter_name = &String::Handle(Field::NameFromSetter(name));
-  } else {
-    if (obj.IsNull() || obj.IsLibraryPrefix()) {
-      obj = lib.LookupEntry(String::Handle(Field::GetterName(name)), &ignore);
-      if (obj.IsNull()) {
-        obj = lib.LookupEntry(String::Handle(Field::SetterName(name)), &ignore);
-      }
+  if (!Field::IsGetterName(name) &&
+      !Field::IsSetterName(name) &&
+      (obj.IsNull() || obj.IsLibraryPrefix())) {
+    obj = lib.LookupEntry(String::Handle(Field::GetterName(name)), &ignore);
+    if (obj.IsNull()) {
+      obj = lib.LookupEntry(String::Handle(Field::SetterName(name)), &ignore);
     }
   }
 
@@ -10376,7 +10376,7 @@
     // Lookup in the re-exported symbols.
     obj = lib.LookupReExport(name);
   }
-  if (obj.IsNull() || HidesName(*filter_name) || obj.IsLibraryPrefix()) {
+  if (obj.IsNull() || HidesName(name) || obj.IsLibraryPrefix()) {
     return Object::null();
   }
   return obj.raw();
@@ -10492,13 +10492,13 @@
   MATH_LIB_INTRINSIC_LIST(CHECK_FINGERPRINTS);
 
   all_libs.Clear();
-  all_libs.Add(&Library::ZoneHandle(Library::TypedDataLibrary()));
-  TYPED_DATA_LIB_INTRINSIC_LIST(CHECK_FINGERPRINTS);
-
-  all_libs.Clear();
   all_libs.Add(&Library::ZoneHandle(Library::ProfilerLibrary()));
   PROFILER_LIB_INTRINSIC_LIST(CHECK_FINGERPRINTS);
 
+  all_libs.Clear();
+  all_libs.Add(&Library::ZoneHandle(Library::TypedDataLibrary()));
+  TYPED_DATA_LIB_INTRINSIC_LIST(CHECK_FINGERPRINTS);
+
 #undef CHECK_FINGERPRINTS
 
 Class& cls = Class::Handle();
@@ -10554,6 +10554,45 @@
 }
 
 
+// Encode integer in SLEB128 format.
+void PcDescriptors::EncodeInteger(GrowableArray<uint8_t>* data,
+                                  intptr_t value) {
+  bool is_last_part = false;
+  while (!is_last_part) {
+    intptr_t part = value & 0x7f;
+    value >>= 7;
+    if ((value == 0 && (part & 0x40) == 0) ||
+        (value == -1 && (part & 0x40) != 0)) {
+      is_last_part = true;
+    } else {
+      part |= 0x80;
+    }
+    data->Add(part);
+  }
+}
+
+
+// Decode SLEB128 encoded integer. Update byte_index to the next integer.
+intptr_t PcDescriptors::DecodeInteger(intptr_t* byte_index) const {
+  NoSafepointScope no_safepoint;
+  const uint8_t* data = raw_ptr()->data();
+  ASSERT(*byte_index < Length());
+  uword shift = 0;
+  intptr_t value = 0;
+  intptr_t part = 0;
+  do {
+    part = data[(*byte_index)++];
+    value |= (part & 0x7f) << shift;
+    shift += 7;
+  } while ((part & 0x80) != 0);
+
+  if (shift < sizeof(value) * 8 && (part & 0x40) != 0) {
+    value |= -(1 << shift);
+  }
+  return value;
+}
+
+
 intptr_t PcDescriptors::Length() const {
   return raw_ptr()->length_;
 }
@@ -10564,35 +10603,27 @@
 }
 
 
-intptr_t PcDescriptors::RecordSizeInBytes() const {
-  return raw_ptr()->record_size_in_bytes_;
-}
-
-
-void PcDescriptors::SetRecordSizeInBytes(intptr_t value) const {
-  StoreNonPointer(&raw_ptr()->record_size_in_bytes_, value);
-}
-
-
-RawPcDescriptors* PcDescriptors::New(intptr_t num_descriptors,
-                                     bool has_try_index) {
-  ASSERT(Object::pc_descriptors_class() != Class::null());
-  if (num_descriptors < 0 || num_descriptors > kMaxElements) {
-    // This should be caught before we reach here.
-    FATAL1("Fatal error in PcDescriptors::New: "
-           "invalid num_descriptors %" Pd "\n", num_descriptors);
+void PcDescriptors::CopyData(GrowableArray<uint8_t>* delta_encoded_data) {
+  NoSafepointScope no_safepoint;
+  uint8_t* data = UnsafeMutableNonPointer(&raw_ptr()->data()[0]);
+  for (intptr_t i = 0; i < delta_encoded_data->length(); ++i) {
+    data[i] = (*delta_encoded_data)[i];
   }
+}
+
+
+RawPcDescriptors* PcDescriptors::New(GrowableArray<uint8_t>* data) {
+  ASSERT(Object::pc_descriptors_class() != Class::null());
   PcDescriptors& result = PcDescriptors::Handle();
   {
-    const intptr_t rec_size =  RawPcDescriptors::RecordSize(has_try_index);
-    uword size = PcDescriptors::InstanceSize(num_descriptors, rec_size);
+    uword size = PcDescriptors::InstanceSize(data->length());
     RawObject* raw = Object::Allocate(PcDescriptors::kClassId,
                                       size,
                                       Heap::kOld);
     NoSafepointScope no_safepoint;
     result ^= raw;
-    result.SetLength(num_descriptors);
-    result.SetRecordSizeInBytes(rec_size);
+    result.SetLength(data->length());
+    result.CopyData(data);
   }
   return result.raw();
 }
@@ -12050,6 +12081,18 @@
 }
 
 
+RawLocalVarDescriptors* Code::GetLocalVarDescriptors() const {
+  const LocalVarDescriptors& v = LocalVarDescriptors::Handle(var_descriptors());
+  if (v.IsNull()) {
+    ASSERT(!is_optimized());
+    const Function& f = Function::Handle(function());
+    ASSERT(!f.IsIrregexpFunction());  // Not yet implemented.
+    Compiler::ComputeLocalVarDescriptors(*this);
+  }
+  return var_descriptors();
+}
+
+
 void Code::set_state_bits(intptr_t bits) const {
   StoreNonPointer(&raw_ptr()->state_bits_, bits);
 }
@@ -15093,41 +15136,39 @@
 
 
 const char* Type::ToCString() const {
-  if (IsResolved()) {
-    const TypeArguments& type_arguments = TypeArguments::Handle(arguments());
-    const char* class_name;
-    if (HasResolvedTypeClass()) {
-      class_name = String::Handle(
-          Class::Handle(type_class()).Name()).ToCString();
-    } else {
-      class_name = UnresolvedClass::Handle(unresolved_class()).ToCString();
-    }
-    if (type_arguments.IsNull()) {
-      const char* format = "Type: class '%s'";
-      const intptr_t len = OS::SNPrint(NULL, 0, format, class_name) + 1;
-      char* chars = Isolate::Current()->current_zone()->Alloc<char>(len);
-      OS::SNPrint(chars, len, format, class_name);
-      return chars;
-    } else if (IsFinalized() && IsRecursive()) {
-      const char* format = "Type: (@%" Px " H%" Px ") class '%s', args:[%s]";
-      const intptr_t hash = Hash();
-      const char* args_cstr = TypeArguments::Handle(arguments()).ToCString();
-      const intptr_t len =
-          OS::SNPrint(NULL, 0, format, raw(), hash, class_name, args_cstr) + 1;
-      char* chars = Isolate::Current()->current_zone()->Alloc<char>(len);
-      OS::SNPrint(chars, len, format, raw(), hash, class_name, args_cstr);
-      return chars;
-    } else {
-      const char* format = "Type: class '%s', args:[%s]";
-      const char* args_cstr = TypeArguments::Handle(arguments()).ToCString();
-      const intptr_t len =
-          OS::SNPrint(NULL, 0, format, class_name, args_cstr) + 1;
-      char* chars = Isolate::Current()->current_zone()->Alloc<char>(len);
-      OS::SNPrint(chars, len, format, class_name, args_cstr);
-      return chars;
-    }
+  const char* unresolved = IsResolved() ? "" : "Unresolved ";
+  const TypeArguments& type_arguments = TypeArguments::Handle(arguments());
+  const char* class_name;
+  if (HasResolvedTypeClass()) {
+    class_name = String::Handle(
+        Class::Handle(type_class()).Name()).ToCString();
   } else {
-    return "Unresolved Type";
+    class_name = UnresolvedClass::Handle(unresolved_class()).ToCString();
+  }
+  if (type_arguments.IsNull()) {
+    const char* format = "%sType: class '%s'";
+    const intptr_t len =
+        OS::SNPrint(NULL, 0, format, unresolved, class_name) + 1;
+    char* chars = Isolate::Current()->current_zone()->Alloc<char>(len);
+    OS::SNPrint(chars, len, format, unresolved, class_name);
+    return chars;
+  } else if (IsResolved() && IsFinalized() && IsRecursive()) {
+    const char* format = "Type: (@%" Px " H%" Px ") class '%s', args:[%s]";
+    const intptr_t hash = Hash();
+    const char* args_cstr = TypeArguments::Handle(arguments()).ToCString();
+    const intptr_t len =
+        OS::SNPrint(NULL, 0, format, raw(), hash, class_name, args_cstr) + 1;
+    char* chars = Isolate::Current()->current_zone()->Alloc<char>(len);
+    OS::SNPrint(chars, len, format, raw(), hash, class_name, args_cstr);
+    return chars;
+  } else {
+    const char* format = "%sType: class '%s', args:[%s]";
+    const char* args_cstr = TypeArguments::Handle(arguments()).ToCString();
+    const intptr_t len =
+        OS::SNPrint(NULL, 0, format, unresolved, class_name, args_cstr) + 1;
+    char* chars = Isolate::Current()->current_zone()->Alloc<char>(len);
+    OS::SNPrint(chars, len, format, unresolved, class_name, args_cstr);
+    return chars;
   }
 }
 
diff --git a/runtime/vm/object.h b/runtime/vm/object.h
index 4233887..69d0827 100644
--- a/runtime/vm/object.h
+++ b/runtime/vm/object.h
@@ -26,8 +26,6 @@
 
 namespace dart {
 
-DECLARE_FLAG(bool, use_jscre);
-
 // Forward declarations.
 #define DEFINE_FORWARD_DECLARATION(clazz)                                      \
   class clazz;
@@ -527,7 +525,6 @@
 
   // Initialize a new isolate either from source or from a snapshot.
   static RawError* Init(Isolate* isolate);
-  static void InitFromSnapshot(Isolate* isolate);
 
   static void MakeUnusedSpaceTraversable(const Object& obj,
                                          intptr_t original_size,
@@ -3048,13 +3045,14 @@
   static RawLibrary* ConvertLibrary();
   static RawLibrary* CoreLibrary();
   static RawLibrary* CollectionLibrary();
+  static RawLibrary* DeveloperLibrary();
   static RawLibrary* InternalLibrary();
   static RawLibrary* IsolateLibrary();
   static RawLibrary* MathLibrary();
   static RawLibrary* MirrorsLibrary();
   static RawLibrary* NativeWrappersLibrary();
-  static RawLibrary* TypedDataLibrary();
   static RawLibrary* ProfilerLibrary();
+  static RawLibrary* TypedDataLibrary();
 
   // Eagerly compile all classes and functions in the library.
   static RawError* CompileAll();
@@ -3274,43 +3272,20 @@
 
 class PcDescriptors : public Object {
  public:
-  void AddDescriptor(intptr_t index,
-                     uword pc_offset,
-                     RawPcDescriptors::Kind kind,
-                     int64_t deopt_id,
-                     int64_t token_pos,  // Or deopt reason.
-                     intptr_t try_index) const {  // Or deopt index.
-    NoSafepointScope no_safepoint;
-    RawPcDescriptors::PcDescriptorRec* rec = recAt(index);
-    rec->set_pc_offset(pc_offset);
-    rec->set_kind(kind);
-    ASSERT(Utils::IsInt(32, deopt_id));
-    rec->set_deopt_id(static_cast<int32_t>(deopt_id));
-    ASSERT(Utils::IsInt(32, token_pos));
-    rec->set_token_pos(static_cast<int32_t>(token_pos),
-        RecordSizeInBytes() == RawPcDescriptors::kCompressedRecSize);
-    ASSERT(Utils::IsInt(16, try_index));
-    rec->set_try_index(try_index);
-    ASSERT(rec->try_index() == try_index);
-    ASSERT(rec->token_pos() == token_pos);
-  }
-
-  static const intptr_t kMaxBytesPerElement =
-      sizeof(RawPcDescriptors::PcDescriptorRec);
-  static const intptr_t kMaxElements = kMaxInt32 / kMaxBytesPerElement;
+  static const intptr_t kBytesPerElement = 1;
+  static const intptr_t kMaxElements = kMaxInt32 / kBytesPerElement;
 
   static intptr_t InstanceSize() {
     ASSERT(sizeof(RawPcDescriptors) ==
            OFFSET_OF_RETURNED_VALUE(RawPcDescriptors, data));
     return 0;
   }
-  static intptr_t InstanceSize(intptr_t len, intptr_t record_size_in_bytes) {
+  static intptr_t InstanceSize(intptr_t len) {
     ASSERT(0 <= len && len <= kMaxElements);
-    return RoundedAllocationSize(
-        sizeof(RawPcDescriptors) + (len * record_size_in_bytes));
+    return RoundedAllocationSize(sizeof(RawPcDescriptors) + len);
   }
 
-  static RawPcDescriptors* New(intptr_t num_descriptors, bool has_try_index);
+  static RawPcDescriptors* New(GrowableArray<uint8_t>* delta_encoded_data);
 
   // Verify (assert) assumptions about pc descriptors in debug mode.
   void Verify(const Function& function) const;
@@ -3319,6 +3294,12 @@
 
   void PrintToJSONObject(JSONObject* jsobj, bool ref) const;
 
+  // Encode integer in SLEB128 format.
+  static void EncodeInteger(GrowableArray<uint8_t>* data, intptr_t value);
+
+  // Decode SLEB128 encoded integer. Update byte_index to the next integer.
+  intptr_t DecodeInteger(intptr_t* byte_index) const;
+
   // We would have a VisitPointers function here to traverse the
   // pc descriptors table to visit objects if any in the table.
   // Note: never return a reference to a RawPcDescriptors::PcDescriptorRec
@@ -3328,73 +3309,62 @@
     Iterator(const PcDescriptors& descriptors, intptr_t kind_mask)
         : descriptors_(descriptors),
           kind_mask_(kind_mask),
-          next_ix_(0),
-          current_ix_(-1) {
-      MoveToMatching();
+          byte_index_(0),
+          cur_pc_offset_(0),
+          cur_kind_(0),
+          cur_deopt_id_(0),
+          cur_token_pos_(0),
+          cur_try_index_(0) {
     }
 
     bool MoveNext() {
-      if (HasNext()) {
-        current_ix_ = next_ix_++;
-        MoveToMatching();
-        return true;
-      } else {
-        return false;
+      // Moves to record that matches kind_mask_.
+      while (byte_index_ < descriptors_.Length()) {
+        cur_kind_ = descriptors_.DecodeInteger(&byte_index_);
+        cur_try_index_ = descriptors_.DecodeInteger(&byte_index_);
+        cur_pc_offset_ += descriptors_.DecodeInteger(&byte_index_);
+        cur_deopt_id_ += descriptors_.DecodeInteger(&byte_index_);
+        cur_token_pos_ += descriptors_.DecodeInteger(&byte_index_);
+
+        if ((cur_kind_ & kind_mask_) != 0) {
+          return true;  // Current is valid.
+        }
       }
+      return false;
     }
 
-    uword PcOffset() const {
-      NoSafepointScope no_safepoint;
-      return descriptors_.recAt(current_ix_)->pc_offset();
-    }
-    intptr_t DeoptId() const {
-      NoSafepointScope no_safepoint;
-      return descriptors_.recAt(current_ix_)->deopt_id();
-    }
-    intptr_t TokenPos() const {
-      NoSafepointScope no_safepoint;
-      return descriptors_.recAt(current_ix_)->token_pos();
-    }
-    intptr_t TryIndex() const {
-      NoSafepointScope no_safepoint;
-      return descriptors_.recAt(current_ix_)->try_index();
-    }
+    uword PcOffset() const { return cur_pc_offset_; }
+    intptr_t DeoptId() const { return cur_deopt_id_; }
+    intptr_t TokenPos() const { return cur_token_pos_; }
+    intptr_t TryIndex() const { return cur_try_index_; }
     RawPcDescriptors::Kind Kind() const {
-      NoSafepointScope no_safepoint;
-      return descriptors_.recAt(current_ix_)->kind();
+      return static_cast<RawPcDescriptors::Kind>(cur_kind_);
     }
 
    private:
     friend class PcDescriptors;
 
-    bool HasNext() const { return next_ix_ < descriptors_.Length(); }
-
     // For nested iterations, starting at element after.
     explicit Iterator(const Iterator& iter)
         : ValueObject(),
           descriptors_(iter.descriptors_),
           kind_mask_(iter.kind_mask_),
-          next_ix_(iter.next_ix_),
-          current_ix_(iter.current_ix_) {}
-
-    // Moves to record that matches kind_mask_.
-    void MoveToMatching() {
-      NoSafepointScope no_safepoint;
-      while (next_ix_ < descriptors_.Length()) {
-        const RawPcDescriptors::PcDescriptorRec& rec =
-            *descriptors_.recAt(next_ix_);
-        if ((rec.kind() & kind_mask_) != 0) {
-          return;  // Current is valid.
-        } else {
-          ++next_ix_;
-        }
-      }
-    }
+          byte_index_(iter.byte_index_),
+          cur_pc_offset_(iter.cur_pc_offset_),
+          cur_kind_(iter.cur_kind_),
+          cur_deopt_id_(iter.cur_deopt_id_),
+          cur_token_pos_(iter.cur_token_pos_),
+          cur_try_index_(iter.cur_try_index_) {}
 
     const PcDescriptors& descriptors_;
     const intptr_t kind_mask_;
-    intptr_t next_ix_;
-    intptr_t current_ix_;
+    intptr_t byte_index_;
+
+    intptr_t cur_pc_offset_;
+    intptr_t cur_kind_;
+    intptr_t cur_deopt_id_;
+    intptr_t cur_token_pos_;
+    intptr_t cur_try_index_;
   };
 
  private:
@@ -3402,16 +3372,7 @@
 
   intptr_t Length() const;
   void SetLength(intptr_t value) const;
-
-  void SetRecordSizeInBytes(intptr_t value) const;
-  intptr_t RecordSizeInBytes() const;
-
-  RawPcDescriptors::PcDescriptorRec* recAt(intptr_t ix) const {
-    ASSERT((0 <= ix) && (ix < Length()));
-    uint8_t* d = UnsafeMutableNonPointer(raw_ptr()->data()) +
-        (ix * RecordSizeInBytes());
-    return reinterpret_cast<RawPcDescriptors::PcDescriptorRec*>(d);
-  }
+  void CopyData(GrowableArray<uint8_t>* data);
 
   FINAL_HEAP_OBJECT_IMPLEMENTATION(PcDescriptors, Object);
   friend class Class;
@@ -4039,6 +4000,9 @@
     StorePointer(&raw_ptr()->var_descriptors_, value.raw());
   }
 
+  // Will compute local var descriptors is necessary.
+  RawLocalVarDescriptors* GetLocalVarDescriptors() const;
+
   RawExceptionHandlers* exception_handlers() const {
     return raw_ptr()->exception_handlers_;
   }
diff --git a/runtime/vm/object_store.cc b/runtime/vm/object_store.cc
index 7ba0aba..c2c14d539 100644
--- a/runtime/vm/object_store.cc
+++ b/runtime/vm/object_store.cc
@@ -62,14 +62,15 @@
     core_library_(Library::null()),
     collection_library_(Library::null()),
     convert_library_(Library::null()),
+    developer_library_(Library::null()),
     internal_library_(Library::null()),
     isolate_library_(Library::null()),
     math_library_(Library::null()),
     mirrors_library_(Library::null()),
     native_wrappers_library_(Library::null()),
+    profiler_library_(Library::null()),
     root_library_(Library::null()),
     typed_data_library_(Library::null()),
-    profiler_library_(Library::null()),
     libraries_(GrowableObjectArray::null()),
     pending_classes_(GrowableObjectArray::null()),
     pending_functions_(GrowableObjectArray::null()),
diff --git a/runtime/vm/object_store.h b/runtime/vm/object_store.h
index 8d1519a..c1d7312 100644
--- a/runtime/vm/object_store.h
+++ b/runtime/vm/object_store.h
@@ -25,12 +25,13 @@
     kCore,
     kCollection,
     kConvert,
+    kDeveloper,
     kInternal,
     kIsolate,
     kMath,
     kMirrors,
-    kTypedData,
     kProfiler,
+    kTypedData,
   };
 
   ~ObjectStore();
@@ -257,12 +258,14 @@
   RawLibrary* core_library() const { return core_library_; }
   RawLibrary* collection_library() const { return collection_library_; }
   RawLibrary* convert_library() const { return convert_library_; }
+  RawLibrary* developer_library() const { return developer_library_; }
   RawLibrary* internal_library() const { return internal_library_; }
   RawLibrary* isolate_library() const { return isolate_library_; }
   RawLibrary* math_library() const { return math_library_; }
   RawLibrary* mirrors_library() const { return mirrors_library_; }
-  RawLibrary* typed_data_library() const { return typed_data_library_; }
   RawLibrary* profiler_library() const { return profiler_library_; }
+  RawLibrary* typed_data_library() const { return typed_data_library_; }
+
   void set_bootstrap_library(BootstrapLibraryId index, const Library& value) {
     switch (index) {
       case kAsync:
@@ -277,6 +280,9 @@
       case kConvert:
         convert_library_ = value.raw();
         break;
+      case kDeveloper:
+        developer_library_ = value.raw();
+        break;
       case kInternal:
         internal_library_ = value.raw();
         break;
@@ -289,12 +295,12 @@
       case kMirrors:
         mirrors_library_ = value.raw();
         break;
-      case kTypedData:
-        typed_data_library_ = value.raw();
-        break;
       case kProfiler:
         profiler_library_ = value.raw();
         break;
+      case kTypedData:
+        typed_data_library_ = value.raw();
+        break;
       default:
         UNREACHABLE();
     }
@@ -483,14 +489,15 @@
   RawLibrary* core_library_;
   RawLibrary* collection_library_;
   RawLibrary* convert_library_;
+  RawLibrary* developer_library_;
   RawLibrary* internal_library_;
   RawLibrary* isolate_library_;
   RawLibrary* math_library_;
   RawLibrary* mirrors_library_;
   RawLibrary* native_wrappers_library_;
+  RawLibrary* profiler_library_;
   RawLibrary* root_library_;
   RawLibrary* typed_data_library_;
-  RawLibrary* profiler_library_;
   RawGrowableObjectArray* libraries_;
   RawGrowableObjectArray* pending_classes_;
   RawGrowableObjectArray* pending_functions_;
diff --git a/runtime/vm/object_test.cc b/runtime/vm/object_test.cc
index e76ce3a..5e72ebf 100644
--- a/runtime/vm/object_test.cc
+++ b/runtime/vm/object_test.cc
@@ -15,6 +15,7 @@
 #include "vm/simulator.h"
 #include "vm/symbols.h"
 #include "vm/unit_test.h"
+#include "vm/code_descriptors.h"
 
 namespace dart {
 
@@ -2865,16 +2866,18 @@
 
 
 TEST_CASE(PcDescriptors) {
-  const int kNumEntries = 6;
-  // Add PcDescriptors to the code.
+  DescriptorList* builder = new DescriptorList(0);
+
+  // kind, pc_offset, deopt_id, token_pos, try_index
+  builder->AddDescriptor(RawPcDescriptors::kOther, 10, 1, 20, 1);
+  builder->AddDescriptor(RawPcDescriptors::kDeopt, 20, 2, 30, 0);
+  builder->AddDescriptor(RawPcDescriptors::kOther, 30, 3, 40, 1);
+  builder->AddDescriptor(RawPcDescriptors::kOther, 10, 4, 40, 2);
+  builder->AddDescriptor(RawPcDescriptors::kOther, 10, 5, 80, 3);
+  builder->AddDescriptor(RawPcDescriptors::kOther, 80, 6, 150, 3);
+
   PcDescriptors& descriptors = PcDescriptors::Handle();
-  descriptors ^= PcDescriptors::New(kNumEntries, true);
-  descriptors.AddDescriptor(0, 10, RawPcDescriptors::kOther, 1, 20, 1);
-  descriptors.AddDescriptor(1, 20, RawPcDescriptors::kDeopt, 2, 30, 0);
-  descriptors.AddDescriptor(2, 30, RawPcDescriptors::kOther, 3, 40, 1);
-  descriptors.AddDescriptor(3, 10, RawPcDescriptors::kOther, 4, 40, 2);
-  descriptors.AddDescriptor(4, 10, RawPcDescriptors::kOther, 5, 80, 3);
-  descriptors.AddDescriptor(5, 80, RawPcDescriptors::kOther, 6, 150, 3);
+  descriptors ^= builder->FinalizePcDescriptors(0);
 
   extern void GenerateIncrement(Assembler* assembler);
   Assembler _assembler_;
@@ -2919,18 +2922,19 @@
 }
 
 
-TEST_CASE(PcDescriptorsCompressed) {
-  const int kNumEntries = 6;
-  // Add PcDescriptors to the code.
+TEST_CASE(PcDescriptorsLargeDeltas) {
+  DescriptorList* builder = new DescriptorList(0);
+
+  // kind, pc_offset, deopt_id, token_pos, try_index
+  builder->AddDescriptor(RawPcDescriptors::kOther, 100, 1, 200, 1);
+  builder->AddDescriptor(RawPcDescriptors::kDeopt, 200, 2, 300, 0);
+  builder->AddDescriptor(RawPcDescriptors::kOther, 300, 3, 400, 1);
+  builder->AddDescriptor(RawPcDescriptors::kOther, 100, 4, 0, 2);
+  builder->AddDescriptor(RawPcDescriptors::kOther, 100, 5, 800, 3);
+  builder->AddDescriptor(RawPcDescriptors::kOther, 800, 6, 150, 3);
+
   PcDescriptors& descriptors = PcDescriptors::Handle();
-  // PcDescritpors have no try-index.
-  descriptors ^= PcDescriptors::New(kNumEntries, false);
-  descriptors.AddDescriptor(0, 10, RawPcDescriptors::kOther, 1, 20, -1);
-  descriptors.AddDescriptor(1, 20, RawPcDescriptors::kDeopt, 2, 30, -1);
-  descriptors.AddDescriptor(2, 30, RawPcDescriptors::kOther, 3, 40, -1);
-  descriptors.AddDescriptor(3, 10, RawPcDescriptors::kOther, 4, 40, -1);
-  descriptors.AddDescriptor(4, 10, RawPcDescriptors::kOther, 5, 80, -1);
-  descriptors.AddDescriptor(5, 80, RawPcDescriptors::kOther, 6, 150, -1);
+  descriptors ^= builder->FinalizePcDescriptors(0);
 
   extern void GenerateIncrement(Assembler* assembler);
   Assembler _assembler_;
@@ -2944,26 +2948,37 @@
   PcDescriptors::Iterator iter(pc_descs, RawPcDescriptors::kAnyKind);
 
   EXPECT_EQ(true, iter.MoveNext());
-  EXPECT_EQ(static_cast<uword>(10), iter.PcOffset());
-  EXPECT_EQ(-1, iter.TryIndex());
+  EXPECT_EQ(200, iter.TokenPos());
+  EXPECT_EQ(1, iter.TryIndex());
+  EXPECT_EQ(static_cast<uword>(100), iter.PcOffset());
   EXPECT_EQ(1, iter.DeoptId());
-  EXPECT_EQ(20, iter.TokenPos());
+  EXPECT_EQ(RawPcDescriptors::kOther, iter.Kind());
 
   EXPECT_EQ(true, iter.MoveNext());
-  EXPECT_EQ(true, iter.MoveNext());
-  EXPECT_EQ(true, iter.MoveNext());
-  EXPECT_EQ(true, iter.MoveNext());
-  EXPECT_EQ(true, iter.MoveNext());
+  EXPECT_EQ(300, iter.TokenPos());
+  EXPECT_EQ(RawPcDescriptors::kDeopt, iter.Kind());
 
-  EXPECT_EQ(-1, iter.TryIndex());
-  EXPECT_EQ(static_cast<uword>(80), iter.PcOffset());
+  EXPECT_EQ(true, iter.MoveNext());
+  EXPECT_EQ(400, iter.TokenPos());
+
+  EXPECT_EQ(true, iter.MoveNext());
+  EXPECT_EQ(0, iter.TokenPos());
+
+  EXPECT_EQ(true, iter.MoveNext());
+  EXPECT_EQ(800, iter.TokenPos());
+
+  EXPECT_EQ(true, iter.MoveNext());
   EXPECT_EQ(150, iter.TokenPos());
 
+  EXPECT_EQ(3, iter.TryIndex());
+  EXPECT_EQ(static_cast<uword>(800), iter.PcOffset());
+  EXPECT_EQ(150, iter.TokenPos());
+  EXPECT_EQ(RawPcDescriptors::kOther, iter.Kind());
+
   EXPECT_EQ(false, iter.MoveNext());
 }
 
 
-
 static RawClass* CreateTestClass(const char* name) {
   const String& class_name = String::Handle(Symbols::New(name));
   const Class& cls = Class::Handle(
diff --git a/runtime/vm/parser.cc b/runtime/vm/parser.cc
index 25e7fa9..049dbf2 100644
--- a/runtime/vm/parser.cc
+++ b/runtime/vm/parser.cc
@@ -5279,8 +5279,7 @@
     // or final field implies a setter which throws a NoSuchMethodError,
     // thus we need to check for conflicts with existing setters and
     // getters.
-    String& accessor_name = String::Handle(Z,
-                                           Field::GetterName(var_name));
+    String& accessor_name = String::Handle(Z, Field::GetterName(var_name));
     if (library_.LookupLocalObject(accessor_name) != Object::null()) {
       ReportError(name_pos, "getter for '%s' is already defined",
                   var_name.ToCString());
@@ -5302,8 +5301,7 @@
     }
     if (CurrentToken() == Token::kASSIGN) {
       ConsumeToken();
-      Instance& field_value = Instance::Handle(Z,
-                                               Object::sentinel().raw());
+      Instance& field_value = Instance::Handle(Z, Object::sentinel().raw());
       bool has_simple_literal = false;
       if (LookaheadToken(1) == Token::kSEMICOLON) {
         has_simple_literal = IsSimpleLiteral(type, &field_value);
@@ -5312,8 +5310,7 @@
       field.set_value(field_value);
       if (!has_simple_literal) {
         // Create a static final getter.
-        String& getter_name = String::Handle(Z,
-                                             Field::GetterSymbol(var_name));
+        String& getter_name = String::Handle(Z, Field::GetterSymbol(var_name));
         getter = Function::New(getter_name,
                                RawFunction::kImplicitStaticFinalGetter,
                                is_static,
@@ -5411,8 +5408,7 @@
     ReportError(name_pos, "missing '%s' cannot be patched",
                 func_name.ToCString());
   }
-  String& accessor_name = String::Handle(Z,
-                                         Field::GetterName(func_name));
+  String& accessor_name = String::Handle(Z, Field::GetterName(func_name));
   if (library_.LookupLocalObject(accessor_name) != Object::null()) {
     ReportError(name_pos, "'%s' is already defined as getter",
                 func_name.ToCString());
diff --git a/runtime/vm/parser_test.cc b/runtime/vm/parser_test.cc
index b2819b0..c65cbca 100644
--- a/runtime/vm/parser_test.cc
+++ b/runtime/vm/parser_test.cc
@@ -213,7 +213,7 @@
   LocalVarDescriptors& var_desc = LocalVarDescriptors::Handle();
   for (intptr_t i = 0; i < num_frames; i++) {
     ActivationFrame* frame = stack->FrameAt(i);
-    var_desc = frame->code().var_descriptors();
+    var_desc = frame->code().GetLocalVarDescriptors();
     const char* var_str = SkipIndex(var_desc.ToCString());
     const char* function_str = String::Handle(
         frame->function().QualifiedUserVisibleName()).ToCString();
diff --git a/runtime/vm/profiler.cc b/runtime/vm/profiler.cc
index 29eb1e1..8226d93 100644
--- a/runtime/vm/profiler.cc
+++ b/runtime/vm/profiler.cc
@@ -37,7 +37,7 @@
 #endif
 DEFINE_FLAG(int, profile_depth, 8,
             "Maximum number stack frames walked. Minimum 1. Maximum 255.");
-#if defined(PROFILE_NATIVE_CODE) || defined(USING_SIMULATOR)
+#if defined(USING_SIMULATOR)
 DEFINE_FLAG(bool, profile_vm, true,
             "Always collect native stack traces.");
 #else
diff --git a/runtime/vm/raw_object.cc b/runtime/vm/raw_object.cc
index 2d83e8f..c45af8f 100644
--- a/runtime/vm/raw_object.cc
+++ b/runtime/vm/raw_object.cc
@@ -142,11 +142,8 @@
     case kPcDescriptorsCid: {
       const RawPcDescriptors* raw_descriptors =
           reinterpret_cast<const RawPcDescriptors*>(this);
-      const intptr_t num_descriptors = raw_descriptors->ptr()->length_;
-      const intptr_t rec_size_in_bytes =
-          raw_descriptors->ptr()->record_size_in_bytes_;
-      instance_size = PcDescriptors::InstanceSize(num_descriptors,
-                                                  rec_size_in_bytes);
+      intptr_t length = raw_descriptors->ptr()->length_;
+      instance_size = PcDescriptors::InstanceSize(length);
       break;
     }
     case kStackmapCid: {
@@ -563,8 +560,7 @@
 
 intptr_t RawPcDescriptors::VisitPcDescriptorsPointers(
     RawPcDescriptors* raw_obj, ObjectPointerVisitor* visitor) {
-  return PcDescriptors::InstanceSize(raw_obj->ptr()->length_,
-                                     raw_obj->ptr()->record_size_in_bytes_);
+  return PcDescriptors::InstanceSize(raw_obj->ptr()->length_);
 }
 
 
diff --git a/runtime/vm/regexp.cc b/runtime/vm/regexp.cc
index 47e296d..fcfa02c 100644
--- a/runtime/vm/regexp.cc
+++ b/runtime/vm/regexp.cc
@@ -5063,10 +5063,10 @@
 
   IRRegExpMacroAssembler* macro_assembler =
       new(zone) IRRegExpMacroAssembler(specialization_cid,
-                                          data->capture_count,
-                                          parsed_function,
-                                          ic_data_array,
-                                          zone);
+                                       data->capture_count,
+                                       parsed_function,
+                                       ic_data_array,
+                                       zone);
 
   // Inserted here, instead of in Assembler, because it depends on information
   // in the AST that isn't replicated in the Node structure.
diff --git a/runtime/vm/regexp_test.cc b/runtime/vm/regexp_test.cc
index a0f5621..4796279 100644
--- a/runtime/vm/regexp_test.cc
+++ b/runtime/vm/regexp_test.cc
@@ -11,8 +11,6 @@
 
 namespace dart {
 
-DECLARE_FLAG(bool, use_jscre);
-
 static RawArray* Match(const String& pat, const String& str) {
   Zone* zone = Thread::Current()->zone();
   const JSRegExp& regexp = JSRegExp::Handle(
diff --git a/runtime/vm/service.cc b/runtime/vm/service.cc
index 2acbfe4..f17949f 100644
--- a/runtime/vm/service.cc
+++ b/runtime/vm/service.cc
@@ -38,8 +38,6 @@
 
 DECLARE_FLAG(bool, trace_service);
 DECLARE_FLAG(bool, trace_service_pause_events);
-DECLARE_FLAG(bool, enable_type_checks);
-DECLARE_FLAG(bool, enable_asserts);
 
 // TODO(johnmccutchan): Unify embedder service handler lists and their APIs.
 EmbedderServiceHandler* Service::isolate_service_handler_head_ = NULL;
@@ -2256,6 +2254,13 @@
 }
 
 
+void Service::SendInspectEvent(Isolate* isolate, const Object& inspectee) {
+  ServiceEvent event(isolate, ServiceEvent::kInspect);
+  event.set_inspectee(&inspectee);
+  Service::HandleEvent(&event);
+}
+
+
 class ContainsAddressVisitor : public FindObjectVisitor {
  public:
   ContainsAddressVisitor(Isolate* isolate, uword addr)
diff --git a/runtime/vm/service.h b/runtime/vm/service.h
index dfc6a21..a635dc3 100644
--- a/runtime/vm/service.h
+++ b/runtime/vm/service.h
@@ -47,6 +47,7 @@
 
   static void SendEchoEvent(Isolate* isolate, const char* text);
   static void SendGraphEvent(Isolate* isolate);
+  static void SendInspectEvent(Isolate* isolate, const Object& inspectee);
 
  private:
   static void InvokeMethod(Isolate* isolate, const Array& message);
diff --git a/runtime/vm/service_event.cc b/runtime/vm/service_event.cc
index c1be690..070125d 100644
--- a/runtime/vm/service_event.cc
+++ b/runtime/vm/service_event.cc
@@ -37,6 +37,7 @@
       breakpoint_(NULL),
       top_frame_(NULL),
       exception_(NULL),
+      inspectee_(NULL),
       gc_stats_(NULL) {
   DebuggerEvent::EventType type = debugger_event->type();
   if (type == DebuggerEvent::kBreakpointReached) {
@@ -81,6 +82,8 @@
       return "BreakpointRemoved";
     case kGC:
       return "GC";  // TODO(koda): Change to GarbageCollected.
+    case kInspect:
+      return "Inspect";
     default:
       UNREACHABLE();
       return "Unknown";
@@ -103,6 +106,9 @@
   if (exception() != NULL) {
     jsobj.AddProperty("exception", *(exception()));
   }
+  if (inspectee() != NULL) {
+    jsobj.AddProperty("inspectee", *(inspectee()));
+  }
   if (gc_stats() != NULL) {
     jsobj.AddProperty("reason", Heap::GCReasonToString(gc_stats()->reason_));
     isolate()->heap()->PrintToJSONObject(Heap::kNew, &jsobj);
diff --git a/runtime/vm/service_event.h b/runtime/vm/service_event.h
index 4de7aa4..e74ee66 100644
--- a/runtime/vm/service_event.h
+++ b/runtime/vm/service_event.h
@@ -30,6 +30,7 @@
     kBreakpointRemoved,
 
     kGC,
+    kInspect,
 
     kIllegal,
   };
@@ -40,6 +41,7 @@
         breakpoint_(NULL),
         top_frame_(NULL),
         exception_(NULL),
+        inspectee_(NULL),
         gc_stats_(NULL) {}
 
   explicit ServiceEvent(const DebuggerEvent* debugger_event);
@@ -78,6 +80,14 @@
     exception_ = exception;
   }
 
+  const Object* inspectee() const {
+    return inspectee_;
+  }
+  void set_inspectee(const Object* inspectee) {
+    ASSERT(type_ == kInspect);
+    inspectee_ = inspectee;
+  }
+
   const Heap::GCStats* gc_stats() const {
     return gc_stats_;
   }
@@ -96,6 +106,7 @@
   SourceBreakpoint* breakpoint_;
   ActivationFrame* top_frame_;
   const Object* exception_;
+  const Object* inspectee_;
   const Heap::GCStats* gc_stats_;
 };
 
diff --git a/runtime/vm/service_test.cc b/runtime/vm/service_test.cc
index d177304..fd3ec23 100644
--- a/runtime/vm/service_test.cc
+++ b/runtime/vm/service_test.cc
@@ -367,7 +367,7 @@
   EXPECT(!code_c.IsNull());
 
   const LocalVarDescriptors& descriptors =
-      LocalVarDescriptors::Handle(code_c.var_descriptors());
+      LocalVarDescriptors::Handle(code_c.GetLocalVarDescriptors());
   // Generate an ID for this object.
   ObjectIdRing* ring = isolate->object_id_ring();
   intptr_t id = ring->GetIdForObject(descriptors.raw());
diff --git a/runtime/vm/simulator_arm64.cc b/runtime/vm/simulator_arm64.cc
index 992b3c0..2d0cbd3 100644
--- a/runtime/vm/simulator_arm64.cc
+++ b/runtime/vm/simulator_arm64.cc
@@ -2420,6 +2420,43 @@
 }
 
 
+void Simulator::DecodeMiscDP1Source(Instr* instr) {
+  if (instr->Bit(29) != 0) {
+    UnimplementedInstruction(instr);
+  }
+
+  const Register rd = instr->RdField();
+  const Register rn = instr->RnField();
+  const int op = instr->Bits(10, 10);
+  const int64_t rn_val64 = get_register(rn, R31IsZR);
+  const int32_t rn_val32 = get_wregister(rn, R31IsZR);
+  switch (op) {
+    case 4: {
+      // Format(instr, "clz'sf 'rd, 'rn");
+      int64_t rd_val = 0;
+      int64_t rn_val = (instr->SFField() == 1) ? rn_val64 : rn_val32;
+      if (rn_val != 0) {
+        while (rn_val > 0) {
+          rd_val++;
+          rn_val <<= 1;
+        }
+      } else {
+        rd_val = (instr->SFField() == 1) ? 64 : 32;
+      }
+      if (instr->SFField() == 1) {
+        set_register(instr, rd, rd_val, R31IsZR);
+      } else {
+        set_wregister(rd, rd_val, R31IsZR);
+      }
+      break;
+    }
+    default:
+      UnimplementedInstruction(instr);
+      break;
+  }
+}
+
+
 void Simulator::DecodeMiscDP2Source(Instr* instr) {
   if (instr->Bit(29) != 0) {
     UnimplementedInstruction(instr);
@@ -2428,7 +2465,7 @@
   const Register rd = instr->RdField();
   const Register rn = instr->RnField();
   const Register rm = instr->RmField();
-  const int op = instr->Bits(10, 6);
+  const int op = instr->Bits(10, 5);
   const int64_t rn_val64 = get_register(rn, R31IsZR);
   const int64_t rm_val64 = get_register(rm, R31IsZR);
   const int32_t rn_val32 = get_wregister(rn, R31IsZR);
@@ -2612,6 +2649,8 @@
     DecodeAddSubWithCarry(instr);
   } else if (instr->IsLogicalShiftOp()) {
     DecodeLogicalShift(instr);
+  } else if (instr->IsMiscDP1SourceOp()) {
+    DecodeMiscDP1Source(instr);
   } else if (instr->IsMiscDP2SourceOp()) {
     DecodeMiscDP2Source(instr);
   } else if (instr->IsMiscDP3SourceOp()) {
diff --git a/runtime/vm/stub_code.cc b/runtime/vm/stub_code.cc
index 0c17653..2f41ba0 100644
--- a/runtime/vm/stub_code.cc
+++ b/runtime/vm/stub_code.cc
@@ -151,6 +151,7 @@
     stub.set_owner(cls);
     cls.set_allocation_stub(stub);
     if (FLAG_disassemble_stubs) {
+      LogBlock lb(Isolate::Current());
       ISL_Print("Code for allocation stub '%s': {\n", name);
       DisassembleToStdout formatter;
       stub.Disassemble(&formatter);
@@ -184,6 +185,7 @@
   GenerateStub(&assembler);
   const Code& code = Code::Handle(Code::FinalizeCode(name, &assembler));
   if (FLAG_disassemble_stubs) {
+    LogBlock lb(Isolate::Current());
     ISL_Print("Code for stub '%s': {\n", name);
     DisassembleToStdout formatter;
     code.Disassemble(&formatter);
diff --git a/runtime/vm/stub_code.h b/runtime/vm/stub_code.h
index f058a29..a45216d 100644
--- a/runtime/vm/stub_code.h
+++ b/runtime/vm/stub_code.h
@@ -75,6 +75,7 @@
   V(UnoptimizedIdenticalWithNumberCheck)                                       \
   V(OptimizedIdenticalWithNumberCheck)                                         \
   V(DebugStepCheck)                                                            \
+  V(MegamorphicLookup)                                                         \
 
 #define STUB_CODE_LIST(V)                                                      \
   BOOTSTRAP_STUB_CODE_LIST(V)                                                  \
@@ -183,6 +184,9 @@
 
   static const intptr_t kNoInstantiator = 0;
 
+  static void EmitMegamorphicLookup(
+      Assembler*, Register recv, Register cache, Register target);
+
  private:
   void GenerateBootstrapStubsFor(Isolate* isolate);
   void GenerateStubsFor(Isolate* isolate);
diff --git a/runtime/vm/stub_code_arm.cc b/runtime/vm/stub_code_arm.cc
index 84f251e..1d438ec 100644
--- a/runtime/vm/stub_code_arm.cc
+++ b/runtime/vm/stub_code_arm.cc
@@ -26,6 +26,8 @@
 DEFINE_FLAG(bool, use_slow_path, false,
     "Set to true for debugging & verifying the slow paths.");
 DECLARE_FLAG(bool, trace_optimized_ic_calls);
+DECLARE_FLAG(int, optimization_counter_threshold);
+DECLARE_FLAG(bool, support_debugger);
 
 // Input parameters:
 //   LR : return address.
@@ -1238,14 +1240,16 @@
 // Loads function into 'temp_reg'.
 void StubCode::GenerateUsageCounterIncrement(Assembler* assembler,
                                              Register temp_reg) {
-  Register ic_reg = R5;
-  Register func_reg = temp_reg;
-  ASSERT(temp_reg == R6);
-  __ Comment("Increment function counter");
-  __ ldr(func_reg, FieldAddress(ic_reg, ICData::owner_offset()));
-  __ ldr(R7, FieldAddress(func_reg, Function::usage_counter_offset()));
-  __ add(R7, R7, Operand(1));
-  __ str(R7, FieldAddress(func_reg, Function::usage_counter_offset()));
+  if (FLAG_optimization_counter_threshold >= 0) {
+    Register ic_reg = R5;
+    Register func_reg = temp_reg;
+    ASSERT(temp_reg == R6);
+    __ Comment("Increment function counter");
+    __ ldr(func_reg, FieldAddress(ic_reg, ICData::owner_offset()));
+    __ ldr(R7, FieldAddress(func_reg, Function::usage_counter_offset()));
+    __ add(R7, R7, Operand(1));
+    __ str(R7, FieldAddress(func_reg, Function::usage_counter_offset()));
+  }
 }
 
 
@@ -1301,12 +1305,14 @@
   __ Stop("Incorrect IC data");
   __ Bind(&ok);
 #endif
-  // Update counter.
-  const intptr_t count_offset = ICData::CountIndexFor(num_args) * kWordSize;
-  __ LoadFromOffset(kWord, R1, R6, count_offset);
-  __ adds(R1, R1, Operand(Smi::RawValue(1)));
-  __ LoadImmediate(R1, Smi::RawValue(Smi::kMaxValue), VS);  // Overflow.
-  __ StoreIntoSmiField(Address(R6, count_offset), R1);
+  if (FLAG_optimization_counter_threshold >= 0) {
+    // Update counter.
+    const intptr_t count_offset = ICData::CountIndexFor(num_args) * kWordSize;
+    __ LoadFromOffset(kWord, R1, R6, count_offset);
+    __ adds(R1, R1, Operand(Smi::RawValue(1)));
+    __ LoadImmediate(R1, Smi::RawValue(Smi::kMaxValue), VS);  // Overflow.
+    __ StoreIntoSmiField(Address(R6, count_offset), R1);
+  }
   __ Ret();
 }
 
@@ -1342,14 +1348,15 @@
   }
 #endif  // DEBUG
 
-
-  __ Comment("Check single stepping");
   Label stepping, done_stepping;
-  __ LoadIsolate(R6);
-  __ ldrb(R6, Address(R6, Isolate::single_step_offset()));
-  __ CompareImmediate(R6, 0);
-  __ b(&stepping, NE);
-  __ Bind(&done_stepping);
+  if (FLAG_support_debugger) {
+    __ Comment("Check single stepping");
+    __ LoadIsolate(R6);
+    __ ldrb(R6, Address(R6, Isolate::single_step_offset()));
+    __ CompareImmediate(R6, 0);
+    __ b(&stepping, NE);
+    __ Bind(&done_stepping);
+  }
 
   __ Comment("Range feedback collection");
   Label not_smi_or_overflow;
@@ -1460,11 +1467,13 @@
   const intptr_t count_offset = ICData::CountIndexFor(num_args) * kWordSize;
   __ LoadFromOffset(kWord, R0, R6, target_offset);
 
-  __ Comment("Update caller's counter");
-  __ LoadFromOffset(kWord, R1, R6, count_offset);
-  __ adds(R1, R1, Operand(Smi::RawValue(1)));
-  __ LoadImmediate(R1, Smi::RawValue(Smi::kMaxValue), VS);  // Overflow.
-  __ StoreIntoSmiField(Address(R6, count_offset), R1);
+  if (FLAG_optimization_counter_threshold >= 0) {
+    __ Comment("Update caller's counter");
+    __ LoadFromOffset(kWord, R1, R6, count_offset);
+    __ adds(R1, R1, Operand(Smi::RawValue(1)));
+    __ LoadImmediate(R1, Smi::RawValue(Smi::kMaxValue), VS);  // Overflow.
+    __ StoreIntoSmiField(Address(R6, count_offset), R1);
+  }
 
   __ Comment("Call target");
   __ Bind(&call_target_function);
@@ -1494,13 +1503,15 @@
     __ bx(R2);
   }
 
-  __ Bind(&stepping);
-  __ EnterStubFrame();
-  __ Push(R5);  // Preserve IC data.
-  __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
-  __ Pop(R5);
-  __ LeaveStubFrame();
-  __ b(&done_stepping);
+  if (FLAG_support_debugger) {
+    __ Bind(&stepping);
+    __ EnterStubFrame();
+    __ Push(R5);  // Preserve IC data.
+    __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
+    __ Pop(R5);
+    __ LeaveStubFrame();
+    __ b(&done_stepping);
+  }
 }
 
 
@@ -1638,11 +1649,13 @@
 
   // Check single stepping.
   Label stepping, done_stepping;
-  __ LoadIsolate(R6);
-  __ ldrb(R6, Address(R6, Isolate::single_step_offset()));
-  __ CompareImmediate(R6, 0);
-  __ b(&stepping, NE);
-  __ Bind(&done_stepping);
+  if (FLAG_support_debugger) {
+    __ LoadIsolate(R6);
+    __ ldrb(R6, Address(R6, Isolate::single_step_offset()));
+    __ CompareImmediate(R6, 0);
+    __ b(&stepping, NE);
+    __ Bind(&done_stepping);
+  }
 
   // R5: IC data object (preserved).
   __ ldr(R6, FieldAddress(R5, ICData::ic_data_offset()));
@@ -1652,11 +1665,13 @@
   const intptr_t target_offset = ICData::TargetIndexFor(0) * kWordSize;
   const intptr_t count_offset = ICData::CountIndexFor(0) * kWordSize;
 
-  // Increment count for this call.
-  __ LoadFromOffset(kWord, R1, R6, count_offset);
-  __ adds(R1, R1, Operand(Smi::RawValue(1)));
-  __ LoadImmediate(R1, Smi::RawValue(Smi::kMaxValue), VS);  // Overflow.
-  __ StoreIntoSmiField(Address(R6, count_offset), R1);
+  if (FLAG_optimization_counter_threshold >= 0) {
+    // Increment count for this call.
+    __ LoadFromOffset(kWord, R1, R6, count_offset);
+    __ adds(R1, R1, Operand(Smi::RawValue(1)));
+    __ LoadImmediate(R1, Smi::RawValue(Smi::kMaxValue), VS);  // Overflow.
+    __ StoreIntoSmiField(Address(R6, count_offset), R1);
+  }
 
   // Load arguments descriptor into R4.
   __ ldr(R4, FieldAddress(R5, ICData::arguments_descriptor_offset()));
@@ -1670,13 +1685,15 @@
   __ AddImmediate(R2, Instructions::HeaderSize() - kHeapObjectTag);
   __ bx(R2);
 
-  __ Bind(&stepping);
-  __ EnterStubFrame();
-  __ Push(R5);  // Preserve IC data.
-  __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
-  __ Pop(R5);
-  __ LeaveStubFrame();
-  __ b(&done_stepping);
+  if (FLAG_support_debugger) {
+    __ Bind(&stepping);
+    __ EnterStubFrame();
+    __ Push(R5);  // Preserve IC data.
+    __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
+    __ Pop(R5);
+    __ LeaveStubFrame();
+    __ b(&done_stepping);
+  }
 }
 
 
@@ -2021,11 +2038,13 @@
     Assembler* assembler) {
   // Check single stepping.
   Label stepping, done_stepping;
-  __ LoadIsolate(R1);
-  __ ldrb(R1, Address(R1, Isolate::single_step_offset()));
-  __ CompareImmediate(R1, 0);
-  __ b(&stepping, NE);
-  __ Bind(&done_stepping);
+  if (FLAG_support_debugger) {
+    __ LoadIsolate(R1);
+    __ ldrb(R1, Address(R1, Isolate::single_step_offset()));
+    __ CompareImmediate(R1, 0);
+    __ b(&stepping, NE);
+    __ Bind(&done_stepping);
+  }
 
   const Register temp = R2;
   const Register left = R1;
@@ -2035,11 +2054,13 @@
   GenerateIdenticalWithNumberCheckStub(assembler, left, right, temp);
   __ Ret();
 
-  __ Bind(&stepping);
-  __ EnterStubFrame();
-  __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
-  __ LeaveStubFrame();
-  __ b(&done_stepping);
+  if (FLAG_support_debugger) {
+    __ Bind(&stepping);
+    __ EnterStubFrame();
+    __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
+    __ LeaveStubFrame();
+    __ b(&done_stepping);
+  }
 }
 
 
@@ -2059,6 +2080,60 @@
   __ Ret();
 }
 
+
+void StubCode::EmitMegamorphicLookup(
+    Assembler* assembler, Register receiver, Register cache, Register target) {
+  ASSERT((cache != R0) && (cache != R2));
+  __ LoadTaggedClassIdMayBeSmi(R0, receiver);
+  // R0: class ID of the receiver (smi).
+  __ ldr(R2, FieldAddress(cache, MegamorphicCache::buckets_offset()));
+  __ ldr(R1, FieldAddress(R1, MegamorphicCache::mask_offset()));
+  // R2: cache buckets array.
+  // R1: mask.
+  __ mov(R3, Operand(R0));
+
+  Label loop, update, call_target_function;
+  __ b(&loop);
+
+  __ Bind(&update);
+  __ add(R3, R3, Operand(Smi::RawValue(1)));
+  __ Bind(&loop);
+  __ and_(R3, R3, Operand(R1));
+  const intptr_t base = Array::data_offset();
+  // R3 is smi tagged, but table entries are two words, so LSL 2.
+  __ add(IP, R2, Operand(R3, LSL, 2));
+  __ ldr(R4, FieldAddress(IP, base));
+
+  ASSERT(kIllegalCid == 0);
+  __ tst(R4, Operand(R4));
+  __ b(&call_target_function, EQ);
+  __ cmp(R4, Operand(R0));
+  __ b(&update, NE);
+
+  __ Bind(&call_target_function);
+  // Call the target found in the cache.  For a class id match, this is a
+  // proper target for the given name and arguments descriptor.  If the
+  // illegal class id was found, the target is a cache miss handler that can
+  // be invoked as a normal Dart function.
+  __ add(IP, R2, Operand(R3, LSL, 2));
+  __ ldr(R0, FieldAddress(IP, base + kWordSize));
+  __ ldr(target, FieldAddress(R0, Function::instructions_offset()));
+  // TODO(srdjan): Evaluate performance impact of moving the instruction below
+  // to the call site, instead of having it here.
+  __ AddImmediate(target, Instructions::HeaderSize() - kHeapObjectTag);
+}
+
+
+// Called from megamorphic calls.
+//  R0: receiver.
+//  R1: lookup cache.
+// Result:
+//  R1: entry point.
+void StubCode::GenerateMegamorphicLookupStub(Assembler* assembler) {
+  EmitMegamorphicLookup(assembler, R0, R1, R1);
+  __ Ret();
+}
+
 }  // namespace dart
 
 #endif  // defined TARGET_ARCH_ARM
diff --git a/runtime/vm/stub_code_arm64.cc b/runtime/vm/stub_code_arm64.cc
index e2ae703..745c8cd 100644
--- a/runtime/vm/stub_code_arm64.cc
+++ b/runtime/vm/stub_code_arm64.cc
@@ -25,6 +25,8 @@
 DEFINE_FLAG(bool, use_slow_path, false,
     "Set to true for debugging & verifying the slow paths.");
 DECLARE_FLAG(bool, trace_optimized_ic_calls);
+DECLARE_FLAG(int, optimization_counter_threshold);
+DECLARE_FLAG(bool, support_debugger);
 
 // Input parameters:
 //   LR : return address.
@@ -1265,16 +1267,18 @@
 // Loads function into 'temp_reg'.
 void StubCode::GenerateUsageCounterIncrement(Assembler* assembler,
                                              Register temp_reg) {
-  Register ic_reg = R5;
-  Register func_reg = temp_reg;
-  ASSERT(temp_reg == R6);
-  __ Comment("Increment function counter");
-  __ LoadFieldFromOffset(func_reg, ic_reg, ICData::owner_offset(), kNoPP);
-  __ LoadFieldFromOffset(
-      R7, func_reg, Function::usage_counter_offset(), kNoPP, kWord);
-  __ AddImmediate(R7, R7, 1, kNoPP);
-  __ StoreFieldToOffset(
-      R7, func_reg, Function::usage_counter_offset(), kNoPP, kWord);
+  if (FLAG_optimization_counter_threshold >= 0) {
+    Register ic_reg = R5;
+    Register func_reg = temp_reg;
+    ASSERT(temp_reg == R6);
+    __ Comment("Increment function counter");
+    __ LoadFieldFromOffset(func_reg, ic_reg, ICData::owner_offset(), kNoPP);
+    __ LoadFieldFromOffset(
+        R7, func_reg, Function::usage_counter_offset(), kNoPP, kWord);
+    __ AddImmediate(R7, R7, 1, kNoPP);
+    __ StoreFieldToOffset(
+        R7, func_reg, Function::usage_counter_offset(), kNoPP, kWord);
+  }
 }
 
 
@@ -1343,13 +1347,15 @@
   __ Stop("Incorrect IC data");
   __ Bind(&ok);
 #endif
-  const intptr_t count_offset = ICData::CountIndexFor(num_args) * kWordSize;
-  // Update counter.
-  __ LoadFromOffset(R1, R6, count_offset, kNoPP);
-  __ adds(R1, R1, Operand(Smi::RawValue(1)));
-  __ LoadImmediate(R2, Smi::RawValue(Smi::kMaxValue), kNoPP);
-  __ csel(R1, R2, R1, VS);  // Overflow.
-  __ StoreToOffset(R1, R6, count_offset, kNoPP);
+  if (FLAG_optimization_counter_threshold >= 0) {
+    const intptr_t count_offset = ICData::CountIndexFor(num_args) * kWordSize;
+    // Update counter.
+    __ LoadFromOffset(R1, R6, count_offset, kNoPP);
+    __ adds(R1, R1, Operand(Smi::RawValue(1)));
+    __ LoadImmediate(R2, Smi::RawValue(Smi::kMaxValue), kNoPP);
+    __ csel(R1, R2, R1, VS);  // Overflow.
+    __ StoreToOffset(R1, R6, count_offset, kNoPP);
+  }
 
   __ ret();
 }
@@ -1387,14 +1393,16 @@
   }
 #endif  // DEBUG
 
-  __ Comment("Check single stepping");
   Label stepping, done_stepping;
-  __ LoadIsolate(R6, kNoPP);
-  __ LoadFromOffset(
-      R6, R6, Isolate::single_step_offset(), kNoPP, kUnsignedByte);
-  __ CompareRegisters(R6, ZR);
-  __ b(&stepping, NE);
-  __ Bind(&done_stepping);
+  if (FLAG_support_debugger) {
+    __ Comment("Check single stepping");
+    __ LoadIsolate(R6, kNoPP);
+    __ LoadFromOffset(
+        R6, R6, Isolate::single_step_offset(), kNoPP, kUnsignedByte);
+    __ CompareRegisters(R6, ZR);
+    __ b(&stepping, NE);
+    __ Bind(&done_stepping);
+  }
 
   __ Comment("Range feedback collection");
   Label not_smi_or_overflow;
@@ -1520,12 +1528,14 @@
   const intptr_t count_offset = ICData::CountIndexFor(num_args) * kWordSize;
   __ LoadFromOffset(R0, R6, target_offset, kNoPP);
 
-  // Update counter.
-  __ LoadFromOffset(R1, R6, count_offset, kNoPP);
-  __ adds(R1, R1, Operand(Smi::RawValue(1)));
-  __ LoadImmediate(R2, Smi::RawValue(Smi::kMaxValue), kNoPP);
-  __ csel(R1, R2, R1, VS);  // Overflow.
-  __ StoreToOffset(R1, R6, count_offset, kNoPP);
+  if (FLAG_optimization_counter_threshold >= 0) {
+    // Update counter.
+    __ LoadFromOffset(R1, R6, count_offset, kNoPP);
+    __ adds(R1, R1, Operand(Smi::RawValue(1)));
+    __ LoadImmediate(R2, Smi::RawValue(Smi::kMaxValue), kNoPP);
+    __ csel(R1, R2, R1, VS);  // Overflow.
+    __ StoreToOffset(R1, R6, count_offset, kNoPP);
+  }
 
   __ Comment("Call target");
   __ Bind(&call_target_function);
@@ -1556,13 +1566,15 @@
     __ br(R2);
   }
 
-  __ Bind(&stepping);
-  __ EnterStubFrame();
-  __ Push(R5);  // Preserve IC data.
-  __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
-  __ Pop(R5);
-  __ LeaveStubFrame();
-  __ b(&done_stepping);
+  if (FLAG_support_debugger) {
+    __ Bind(&stepping);
+    __ EnterStubFrame();
+    __ Push(R5);  // Preserve IC data.
+    __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
+    __ Pop(R5);
+    __ LeaveStubFrame();
+    __ b(&done_stepping);
+  }
 }
 
 
@@ -1690,12 +1702,14 @@
 
   // Check single stepping.
   Label stepping, done_stepping;
-  __ LoadIsolate(R6, kNoPP);
-  __ LoadFromOffset(
-      R6, R6, Isolate::single_step_offset(), kNoPP, kUnsignedByte);
-  __ CompareImmediate(R6, 0, kNoPP);
-  __ b(&stepping, NE);
-  __ Bind(&done_stepping);
+    if (FLAG_support_debugger) {
+    __ LoadIsolate(R6, kNoPP);
+    __ LoadFromOffset(
+        R6, R6, Isolate::single_step_offset(), kNoPP, kUnsignedByte);
+    __ CompareImmediate(R6, 0, kNoPP);
+    __ b(&stepping, NE);
+    __ Bind(&done_stepping);
+  }
 
   // R5: IC data object (preserved).
   __ LoadFieldFromOffset(R6, R5, ICData::ic_data_offset(), kNoPP);
@@ -1705,12 +1719,14 @@
   const intptr_t target_offset = ICData::TargetIndexFor(0) * kWordSize;
   const intptr_t count_offset = ICData::CountIndexFor(0) * kWordSize;
 
-  // Increment count for this call.
-  __ LoadFromOffset(R1, R6, count_offset, kNoPP);
-  __ adds(R1, R1, Operand(Smi::RawValue(1)));
-  __ LoadImmediate(R2, Smi::RawValue(Smi::kMaxValue), kNoPP);
-  __ csel(R1, R2, R1, VS);  // Overflow.
-  __ StoreToOffset(R1, R6, count_offset, kNoPP);
+  if (FLAG_optimization_counter_threshold >= 0) {
+    // Increment count for this call.
+    __ LoadFromOffset(R1, R6, count_offset, kNoPP);
+    __ adds(R1, R1, Operand(Smi::RawValue(1)));
+    __ LoadImmediate(R2, Smi::RawValue(Smi::kMaxValue), kNoPP);
+    __ csel(R1, R2, R1, VS);  // Overflow.
+    __ StoreToOffset(R1, R6, count_offset, kNoPP);
+  }
 
   // Load arguments descriptor into R4.
   __ LoadFieldFromOffset(R4, R5, ICData::arguments_descriptor_offset(), kNoPP);
@@ -1725,13 +1741,15 @@
       R2, R2, Instructions::HeaderSize() - kHeapObjectTag, kNoPP);
   __ br(R2);
 
-  __ Bind(&stepping);
-  __ EnterStubFrame();
-  __ Push(R5);  // Preserve IC data.
-  __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
-  __ Pop(R5);
-  __ LeaveStubFrame();
-  __ b(&done_stepping);
+  if (FLAG_support_debugger) {
+    __ Bind(&stepping);
+    __ EnterStubFrame();
+    __ Push(R5);  // Preserve IC data.
+    __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
+    __ Pop(R5);
+    __ LeaveStubFrame();
+    __ b(&done_stepping);
+  }
 }
 
 
@@ -2070,12 +2088,14 @@
     Assembler* assembler) {
   // Check single stepping.
   Label stepping, done_stepping;
-  __ LoadIsolate(R1, kNoPP);
-  __ LoadFromOffset(
-      R1, R1, Isolate::single_step_offset(), kNoPP, kUnsignedByte);
-  __ CompareImmediate(R1, 0, kNoPP);
-  __ b(&stepping, NE);
-  __ Bind(&done_stepping);
+  if (FLAG_support_debugger) {
+    __ LoadIsolate(R1, kNoPP);
+    __ LoadFromOffset(
+        R1, R1, Isolate::single_step_offset(), kNoPP, kUnsignedByte);
+    __ CompareImmediate(R1, 0, kNoPP);
+    __ b(&stepping, NE);
+    __ Bind(&done_stepping);
+  }
 
   const Register left = R1;
   const Register right = R0;
@@ -2084,11 +2104,13 @@
   GenerateIdenticalWithNumberCheckStub(assembler, left, right);
   __ ret();
 
-  __ Bind(&stepping);
-  __ EnterStubFrame();
-  __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
-  __ LeaveStubFrame();
-  __ b(&done_stepping);
+  if (FLAG_support_debugger) {
+    __ Bind(&stepping);
+    __ EnterStubFrame();
+    __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
+    __ LeaveStubFrame();
+    __ b(&done_stepping);
+  }
 }
 
 
@@ -2108,6 +2130,60 @@
   __ ret();
 }
 
+
+void StubCode::EmitMegamorphicLookup(
+    Assembler* assembler, Register receiver, Register cache, Register target) {
+  ASSERT((cache != R0) && (cache != R2));
+  __ LoadTaggedClassIdMayBeSmi(R0, receiver);
+  // R0: class ID of the receiver (smi).
+  __ LoadFieldFromOffset(R2, cache, MegamorphicCache::buckets_offset(), PP);
+  __ LoadFieldFromOffset(R1, cache, MegamorphicCache::mask_offset(), PP);
+  // R2: cache buckets array.
+  // R1: mask.
+  __ mov(R3, R0);
+
+  Label loop, update, call_target_function;
+  __ b(&loop);
+
+  __ Bind(&update);
+  __ add(R3, R3, Operand(Smi::RawValue(1)));
+  __ Bind(&loop);
+  __ and_(R3, R3, Operand(R1));
+  const intptr_t base = Array::data_offset();
+  // R3 is smi tagged, but table entries are 16 bytes, so LSL 3.
+  __ add(TMP, R2, Operand(R3, LSL, 3));
+  __ LoadFieldFromOffset(R4, TMP, base, PP);
+
+  ASSERT(kIllegalCid == 0);
+  __ tst(R4, Operand(R4));
+  __ b(&call_target_function, EQ);
+  __ CompareRegisters(R4, R0);
+  __ b(&update, NE);
+
+  __ Bind(&call_target_function);
+  // Call the target found in the cache.  For a class id match, this is a
+  // proper target for the given name and arguments descriptor.  If the
+  // illegal class id was found, the target is a cache miss handler that can
+  // be invoked as a normal Dart function.
+  __ add(TMP, R2, Operand(R3, LSL, 3));
+  __ LoadFieldFromOffset(R0, TMP, base + kWordSize, PP);
+  __ LoadFieldFromOffset(R1, R0, Function::instructions_offset(), PP);
+  // TODO(srdjan): Evaluate performance impact of moving the instruction below
+  // to the call site, instead of having it here.
+  __ AddImmediate(target, R1, Instructions::HeaderSize() - kHeapObjectTag, PP);
+}
+
+
+// Called from megamorphic calls.
+//  R0: receiver.
+//  R1: lookup cache.
+// Result:
+//  R1: entry point.
+void StubCode::GenerateMegamorphicLookupStub(Assembler* assembler) {
+  EmitMegamorphicLookup(assembler, R0, R1, R1);
+  __ ret();
+}
+
 }  // namespace dart
 
 #endif  // defined TARGET_ARCH_ARM64
diff --git a/runtime/vm/stub_code_ia32.cc b/runtime/vm/stub_code_ia32.cc
index 6e35450..e8b0245 100644
--- a/runtime/vm/stub_code_ia32.cc
+++ b/runtime/vm/stub_code_ia32.cc
@@ -27,7 +27,8 @@
 DEFINE_FLAG(bool, use_slow_path, false,
     "Set to true for debugging & verifying the slow paths.");
 DECLARE_FLAG(bool, trace_optimized_ic_calls);
-DEFINE_FLAG(bool, verify_incoming_contexts, false, "");
+DECLARE_FLAG(int, optimization_counter_threshold);
+DECLARE_FLAG(bool, support_debugger);
 
 #define INT32_SIZEOF(x) static_cast<int32_t>(sizeof(x))
 
@@ -1185,12 +1186,14 @@
 // Loads function into 'temp_reg'.
 void StubCode::GenerateUsageCounterIncrement(Assembler* assembler,
                                              Register temp_reg) {
-  Register ic_reg = ECX;
-  Register func_reg = temp_reg;
-  ASSERT(ic_reg != func_reg);
-  __ Comment("Increment function counter");
-  __ movl(func_reg, FieldAddress(ic_reg, ICData::owner_offset()));
-  __ incl(FieldAddress(func_reg, Function::usage_counter_offset()));
+  if (FLAG_optimization_counter_threshold >= 0) {
+    Register ic_reg = ECX;
+    Register func_reg = temp_reg;
+    ASSERT(ic_reg != func_reg);
+    __ Comment("Increment function counter");
+    __ movl(func_reg, FieldAddress(ic_reg, ICData::owner_offset()));
+    __ incl(FieldAddress(func_reg, Function::usage_counter_offset()));
+  }
 }
 
 
@@ -1258,14 +1261,15 @@
   __ Stop("Incorrect IC data");
   __ Bind(&ok);
 #endif
-  // Update counter.
-  const intptr_t count_offset = ICData::CountIndexFor(num_args) * kWordSize;
-  __ movl(ECX, Address(EBX, count_offset));
-  __ addl(ECX, Immediate(Smi::RawValue(1)));
-  __ movl(EDI, Immediate(Smi::RawValue(Smi::kMaxValue)));
-  __ cmovno(EDI, ECX);
-  __ StoreIntoSmiField(Address(EBX, count_offset), EDI);
-
+  if (FLAG_optimization_counter_threshold >= 0) {
+    // Update counter.
+    const intptr_t count_offset = ICData::CountIndexFor(num_args) * kWordSize;
+    __ movl(ECX, Address(EBX, count_offset));
+    __ addl(ECX, Immediate(Smi::RawValue(1)));
+    __ movl(EDI, Immediate(Smi::RawValue(Smi::kMaxValue)));
+    __ cmovno(EDI, ECX);
+    __ StoreIntoSmiField(Address(EBX, count_offset), EDI);
+  }
   __ ret();
 }
 
@@ -1301,14 +1305,15 @@
   }
 #endif  // DEBUG
 
-  __ Comment("Check single stepping");
   Label stepping, done_stepping;
-  uword single_step_address = reinterpret_cast<uword>(Isolate::Current()) +
-      Isolate::single_step_offset();
-  __ cmpb(Address::Absolute(single_step_address), Immediate(0));
-  __ j(NOT_EQUAL, &stepping);
-  __ Bind(&done_stepping);
-
+  if (FLAG_support_debugger) {
+    __ Comment("Check single stepping");
+    uword single_step_address = reinterpret_cast<uword>(Isolate::Current()) +
+        Isolate::single_step_offset();
+    __ cmpb(Address::Absolute(single_step_address), Immediate(0));
+    __ j(NOT_EQUAL, &stepping);
+    __ Bind(&done_stepping);
+  }
   __ Comment("Range feedback collection");
   Label not_smi_or_overflow;
   if (range_collection_mode == kCollectRanges) {
@@ -1422,13 +1427,14 @@
   // EBX: Pointer to an IC data check group.
   const intptr_t target_offset = ICData::TargetIndexFor(num_args) * kWordSize;
   const intptr_t count_offset = ICData::CountIndexFor(num_args) * kWordSize;
-
-  __ Comment("Update caller's counter");
-  __ movl(EAX, Address(EBX, count_offset));
-  __ addl(EAX, Immediate(Smi::RawValue(1)));
-  __ movl(EDI, Immediate(Smi::RawValue(Smi::kMaxValue)));
-  __ cmovno(EDI, EAX);
-  __ StoreIntoSmiField(Address(EBX, count_offset), EDI);
+  if (FLAG_optimization_counter_threshold >= 0) {
+    __ Comment("Update caller's counter");
+    __ movl(EAX, Address(EBX, count_offset));
+    __ addl(EAX, Immediate(Smi::RawValue(1)));
+    __ movl(EDI, Immediate(Smi::RawValue(Smi::kMaxValue)));
+    __ cmovno(EDI, EAX);
+    __ StoreIntoSmiField(Address(EBX, count_offset), EDI);
+  }
 
   __ movl(EAX, Address(EBX, target_offset));
   __ Bind(&call_target_function);
@@ -1459,13 +1465,15 @@
     __ jmp(EBX);
   }
 
-  __ Bind(&stepping);
-  __ EnterStubFrame();
-  __ pushl(ECX);
-  __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
-  __ popl(ECX);
-  __ LeaveFrame();
-  __ jmp(&done_stepping);
+  if (FLAG_support_debugger) {
+    __ Bind(&stepping);
+    __ EnterStubFrame();
+    __ pushl(ECX);
+    __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
+    __ popl(ECX);
+    __ LeaveFrame();
+    __ jmp(&done_stepping);
+  }
 }
 
 
@@ -1615,11 +1623,13 @@
 #endif  // DEBUG
   // Check single stepping.
   Label stepping, done_stepping;
-  uword single_step_address = reinterpret_cast<uword>(Isolate::Current()) +
-      Isolate::single_step_offset();
-  __ cmpb(Address::Absolute(single_step_address), Immediate(0));
-  __ j(NOT_EQUAL, &stepping, Assembler::kNearJump);
-  __ Bind(&done_stepping);
+  if (FLAG_support_debugger) {
+    uword single_step_address = reinterpret_cast<uword>(Isolate::Current()) +
+        Isolate::single_step_offset();
+    __ cmpb(Address::Absolute(single_step_address), Immediate(0));
+    __ j(NOT_EQUAL, &stepping, Assembler::kNearJump);
+    __ Bind(&done_stepping);
+  }
 
   // ECX: IC data object (preserved).
   __ movl(EBX, FieldAddress(ECX, ICData::ic_data_offset()));
@@ -1629,12 +1639,14 @@
   const intptr_t target_offset = ICData::TargetIndexFor(0) * kWordSize;
   const intptr_t count_offset = ICData::CountIndexFor(0) * kWordSize;
 
-  // Increment count for this call.
-  __ movl(EAX, Address(EBX, count_offset));
-  __ addl(EAX, Immediate(Smi::RawValue(1)));
-  __ movl(EDI, Immediate(Smi::RawValue(Smi::kMaxValue)));
-  __ cmovno(EDI, EAX);
-  __ StoreIntoSmiField(Address(EBX, count_offset), EDI);
+  if (FLAG_optimization_counter_threshold >= 0) {
+    // Increment count for this call.
+    __ movl(EAX, Address(EBX, count_offset));
+    __ addl(EAX, Immediate(Smi::RawValue(1)));
+    __ movl(EDI, Immediate(Smi::RawValue(Smi::kMaxValue)));
+    __ cmovno(EDI, EAX);
+    __ StoreIntoSmiField(Address(EBX, count_offset), EDI);
+  }
 
   // Load arguments descriptor into EDX.
   __ movl(EDX, FieldAddress(ECX, ICData::arguments_descriptor_offset()));
@@ -1647,13 +1659,15 @@
   __ addl(EBX, Immediate(Instructions::HeaderSize() - kHeapObjectTag));
   __ jmp(EBX);
 
-  __ Bind(&stepping);
-  __ EnterStubFrame();
-  __ pushl(ECX);
-  __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
-  __ popl(ECX);
-  __ LeaveFrame();
-  __ jmp(&done_stepping, Assembler::kNearJump);
+  if (FLAG_support_debugger) {
+    __ Bind(&stepping);
+    __ EnterStubFrame();
+    __ pushl(ECX);
+    __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
+    __ popl(ECX);
+    __ LeaveFrame();
+    __ jmp(&done_stepping, Assembler::kNearJump);
+  }
 }
 
 
@@ -2016,11 +2030,13 @@
     Assembler* assembler) {
   // Check single stepping.
   Label stepping, done_stepping;
-  __ LoadIsolate(EAX);
-  __ movzxb(EAX, Address(EAX, Isolate::single_step_offset()));
-  __ cmpl(EAX, Immediate(0));
-  __ j(NOT_EQUAL, &stepping);
-  __ Bind(&done_stepping);
+  if (FLAG_support_debugger) {
+    __ LoadIsolate(EAX);
+    __ movzxb(EAX, Address(EAX, Isolate::single_step_offset()));
+    __ cmpl(EAX, Immediate(0));
+    __ j(NOT_EQUAL, &stepping);
+    __ Bind(&done_stepping);
+  }
 
   const Register left = EAX;
   const Register right = EDX;
@@ -2030,11 +2046,13 @@
   GenerateIdenticalWithNumberCheckStub(assembler, left, right, temp);
   __ ret();
 
-  __ Bind(&stepping);
-  __ EnterStubFrame();
-  __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
-  __ LeaveFrame();
-  __ jmp(&done_stepping);
+  if (FLAG_support_debugger) {
+    __ Bind(&stepping);
+    __ EnterStubFrame();
+    __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
+    __ LeaveFrame();
+    __ jmp(&done_stepping);
+  }
 }
 
 
@@ -2054,6 +2072,60 @@
   __ ret();
 }
 
+
+void StubCode::EmitMegamorphicLookup(
+    Assembler* assembler, Register receiver, Register cache, Register target) {
+  ASSERT((cache != EAX) && (cache != EDI));
+  __ LoadTaggedClassIdMayBeSmi(EAX, receiver);
+
+  // EAX: class ID of the receiver (smi).
+  __ movl(EDI, FieldAddress(cache, MegamorphicCache::buckets_offset()));
+  __ movl(EBX, FieldAddress(cache, MegamorphicCache::mask_offset()));
+  // EDI: cache buckets array.
+  // EBX: mask.
+  __ movl(ECX, EAX);
+
+  Label loop, update, call_target_function;
+  __ jmp(&loop);
+
+  __ Bind(&update);
+  __ addl(ECX, Immediate(Smi::RawValue(1)));
+  __ Bind(&loop);
+  __ andl(ECX, EBX);
+  const intptr_t base = Array::data_offset();
+  // ECX is smi tagged, but table entries are two words, so TIMES_4.
+  __ movl(EDX, FieldAddress(EDI, ECX, TIMES_4, base));
+
+  ASSERT(kIllegalCid == 0);
+  __ testl(EDX, EDX);
+  __ j(ZERO, &call_target_function, Assembler::kNearJump);
+  __ cmpl(EDX, EAX);
+  __ j(NOT_EQUAL, &update, Assembler::kNearJump);
+
+  __ Bind(&call_target_function);
+  // Call the target found in the cache.  For a class id match, this is a
+  // proper target for the given name and arguments descriptor.  If the
+  // illegal class id was found, the target is a cache miss handler that can
+  // be invoked as a normal Dart function.
+  __ movl(EAX, FieldAddress(EDI, ECX, TIMES_4, base + kWordSize));
+  __ movl(target, FieldAddress(EAX, Function::instructions_offset()));
+  // TODO(srdjan): Evaluate performance impact of moving the instruction below
+  // to the call site, instead of having it here.
+  __ addl(target, Immediate(Instructions::HeaderSize() - kHeapObjectTag));
+}
+
+
+// Called from megamorphic calls.
+//  EDI: receiver.
+//  EBX: lookup cache.
+// Result:
+//  EBX: entry point.
+void StubCode::GenerateMegamorphicLookupStub(Assembler* assembler) {
+  EmitMegamorphicLookup(assembler, EDI, EBX, EBX);
+  __ ret();
+}
+
+
 }  // namespace dart
 
 #endif  // defined TARGET_ARCH_IA32
diff --git a/runtime/vm/stub_code_mips.cc b/runtime/vm/stub_code_mips.cc
index 91abd0a..503a3f1 100644
--- a/runtime/vm/stub_code_mips.cc
+++ b/runtime/vm/stub_code_mips.cc
@@ -25,6 +25,8 @@
 DEFINE_FLAG(bool, use_slow_path, false,
     "Set to true for debugging & verifying the slow paths.");
 DECLARE_FLAG(bool, trace_optimized_ic_calls);
+DECLARE_FLAG(int, optimization_counter_threshold);
+DECLARE_FLAG(bool, support_debugger);
 
 // Input parameters:
 //   RA : return address.
@@ -1337,15 +1339,17 @@
 // Loads function into 'temp_reg'.
 void StubCode::GenerateUsageCounterIncrement(Assembler* assembler,
                                              Register temp_reg) {
-  __ Comment("UsageCounterIncrement");
-  Register ic_reg = S5;
-  Register func_reg = temp_reg;
-  ASSERT(temp_reg == T0);
-  __ Comment("Increment function counter");
-  __ lw(func_reg, FieldAddress(ic_reg, ICData::owner_offset()));
-  __ lw(T1, FieldAddress(func_reg, Function::usage_counter_offset()));
-  __ addiu(T1, T1, Immediate(1));
-  __ sw(T1, FieldAddress(func_reg, Function::usage_counter_offset()));
+  if (FLAG_optimization_counter_threshold >= 0) {
+    __ Comment("UsageCounterIncrement");
+    Register ic_reg = S5;
+    Register func_reg = temp_reg;
+    ASSERT(temp_reg == T0);
+    __ Comment("Increment function counter");
+    __ lw(func_reg, FieldAddress(ic_reg, ICData::owner_offset()));
+    __ lw(T1, FieldAddress(func_reg, Function::usage_counter_offset()));
+    __ addiu(T1, T1, Immediate(1));
+    __ sw(T1, FieldAddress(func_reg, Function::usage_counter_offset()));
+  }
 }
 
 
@@ -1404,14 +1408,16 @@
   __ Stop("Incorrect IC data");
   __ Bind(&ok);
 #endif
-  // Update counter.
-  const intptr_t count_offset = ICData::CountIndexFor(num_args) * kWordSize;
-  __ lw(T4, Address(T0, count_offset));
-  __ AddImmediateDetectOverflow(T7, T4, Smi::RawValue(1), T5, T6);
-  __ slt(CMPRES1, T5, ZR);  // T5 is < 0 if there was overflow.
-  __ LoadImmediate(T4, Smi::RawValue(Smi::kMaxValue));
-  __ movz(T4, T7, CMPRES1);
-  __ sw(T4, Address(T0, count_offset));
+  if (FLAG_optimization_counter_threshold >= 0) {
+    // Update counter.
+    const intptr_t count_offset = ICData::CountIndexFor(num_args) * kWordSize;
+    __ lw(T4, Address(T0, count_offset));
+    __ AddImmediateDetectOverflow(T7, T4, Smi::RawValue(1), T5, T6);
+    __ slt(CMPRES1, T5, ZR);  // T5 is < 0 if there was overflow.
+    __ LoadImmediate(T4, Smi::RawValue(Smi::kMaxValue));
+    __ movz(T4, T7, CMPRES1);
+    __ sw(T4, Address(T0, count_offset));
+  }
 
   __ Ret();
 }
@@ -1449,12 +1455,14 @@
 #endif  // DEBUG
 
 
-  __ Comment("Check single stepping");
   Label stepping, done_stepping;
-  __ LoadIsolate(T0);
-  __ lbu(T0, Address(T0, Isolate::single_step_offset()));
-  __ BranchNotEqual(T0, Immediate(0), &stepping);
-  __ Bind(&done_stepping);
+  if (FLAG_support_debugger) {
+    __ Comment("Check single stepping");
+    __ LoadIsolate(T0);
+    __ lbu(T0, Address(T0, Isolate::single_step_offset()));
+    __ BranchNotEqual(T0, Immediate(0), &stepping);
+    __ Bind(&done_stepping);
+  }
 
   __ Comment("Range feedback collection");
   Label not_smi_or_overflow;
@@ -1593,13 +1601,15 @@
   const intptr_t count_offset = ICData::CountIndexFor(num_args) * kWordSize;
   __ lw(T3, Address(T0, target_offset));
 
-  // Update counter.
-  __ lw(T4, Address(T0, count_offset));
-  __ AddImmediateDetectOverflow(T7, T4, Smi::RawValue(1), T5, T6);
-  __ slt(CMPRES1, T5, ZR);  // T5 is < 0 if there was overflow.
-  __ LoadImmediate(T4, Smi::RawValue(Smi::kMaxValue));
-  __ movz(T4, T7, CMPRES1);
-  __ sw(T4, Address(T0, count_offset));
+  if (FLAG_optimization_counter_threshold >= 0) {
+    // Update counter.
+    __ lw(T4, Address(T0, count_offset));
+    __ AddImmediateDetectOverflow(T7, T4, Smi::RawValue(1), T5, T6);
+    __ slt(CMPRES1, T5, ZR);  // T5 is < 0 if there was overflow.
+    __ LoadImmediate(T4, Smi::RawValue(Smi::kMaxValue));
+    __ movz(T4, T7, CMPRES1);
+    __ sw(T4, Address(T0, count_offset));
+  }
 
   __ Comment("Call target");
   __ Bind(&call_target_function);
@@ -1636,17 +1646,19 @@
   }
 
   // Call single step callback in debugger.
-  __ Bind(&stepping);
-  __ EnterStubFrame();
-  __ addiu(SP, SP, Immediate(-2 * kWordSize));
-  __ sw(S5, Address(SP, 1 * kWordSize));  // Preserve IC data.
-  __ sw(RA, Address(SP, 0 * kWordSize));  // Return address.
-  __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
-  __ lw(RA, Address(SP, 0 * kWordSize));
-  __ lw(S5, Address(SP, 1 * kWordSize));
-  __ addiu(SP, SP, Immediate(2 * kWordSize));
-  __ LeaveStubFrame();
-  __ b(&done_stepping);
+  if (FLAG_support_debugger) {
+    __ Bind(&stepping);
+    __ EnterStubFrame();
+    __ addiu(SP, SP, Immediate(-2 * kWordSize));
+    __ sw(S5, Address(SP, 1 * kWordSize));  // Preserve IC data.
+    __ sw(RA, Address(SP, 0 * kWordSize));  // Return address.
+    __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
+    __ lw(RA, Address(SP, 0 * kWordSize));
+    __ lw(S5, Address(SP, 1 * kWordSize));
+    __ addiu(SP, SP, Immediate(2 * kWordSize));
+    __ LeaveStubFrame();
+    __ b(&done_stepping);
+  }
 }
 
 
@@ -1776,10 +1788,12 @@
 
   // Check single stepping.
   Label stepping, done_stepping;
-  __ LoadIsolate(T0);
-  __ lbu(T0, Address(T0, Isolate::single_step_offset()));
-  __ BranchNotEqual(T0, Immediate(0), &stepping);
-  __ Bind(&done_stepping);
+  if (FLAG_support_debugger) {
+    __ LoadIsolate(T0);
+    __ lbu(T0, Address(T0, Isolate::single_step_offset()));
+    __ BranchNotEqual(T0, Immediate(0), &stepping);
+    __ Bind(&done_stepping);
+  }
 
   // S5: IC data object (preserved).
   __ lw(T0, FieldAddress(S5, ICData::ic_data_offset()));
@@ -1789,13 +1803,15 @@
   const intptr_t target_offset = ICData::TargetIndexFor(0) * kWordSize;
   const intptr_t count_offset = ICData::CountIndexFor(0) * kWordSize;
 
-  // Increment count for this call.
-  __ lw(T4, Address(T0, count_offset));
-  __ AddImmediateDetectOverflow(T7, T4, Smi::RawValue(1), T5, T6);
-  __ slt(CMPRES1, T5, ZR);  // T5 is < 0 if there was overflow.
-  __ LoadImmediate(T4, Smi::RawValue(Smi::kMaxValue));
-  __ movz(T4, T7, CMPRES1);
-  __ sw(T4, Address(T0, count_offset));
+  if (FLAG_optimization_counter_threshold >= 0) {
+    // Increment count for this call.
+    __ lw(T4, Address(T0, count_offset));
+    __ AddImmediateDetectOverflow(T7, T4, Smi::RawValue(1), T5, T6);
+    __ slt(CMPRES1, T5, ZR);  // T5 is < 0 if there was overflow.
+    __ LoadImmediate(T4, Smi::RawValue(Smi::kMaxValue));
+    __ movz(T4, T7, CMPRES1);
+    __ sw(T4, Address(T0, count_offset));
+  }
 
   // Load arguments descriptor into S4.
   __ lw(S4,  FieldAddress(S5, ICData::arguments_descriptor_offset()));
@@ -1809,17 +1825,19 @@
   __ jr(T4);
 
   // Call single step callback in debugger.
-  __ Bind(&stepping);
-  __ EnterStubFrame();
-  __ addiu(SP, SP, Immediate(-2 * kWordSize));
-  __ sw(S5, Address(SP, 1 * kWordSize));  // Preserve IC data.
-  __ sw(RA, Address(SP, 0 * kWordSize));  // Return address.
-  __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
-  __ lw(RA, Address(SP, 0 * kWordSize));
-  __ lw(S5, Address(SP, 1 * kWordSize));
-  __ addiu(SP, SP, Immediate(2 * kWordSize));
-  __ LeaveStubFrame();
-  __ b(&done_stepping);
+  if (FLAG_support_debugger) {
+    __ Bind(&stepping);
+    __ EnterStubFrame();
+    __ addiu(SP, SP, Immediate(-2 * kWordSize));
+    __ sw(S5, Address(SP, 1 * kWordSize));  // Preserve IC data.
+    __ sw(RA, Address(SP, 0 * kWordSize));  // Return address.
+    __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
+    __ lw(RA, Address(SP, 0 * kWordSize));
+    __ lw(S5, Address(SP, 1 * kWordSize));
+    __ addiu(SP, SP, Immediate(2 * kWordSize));
+    __ LeaveStubFrame();
+    __ b(&done_stepping);
+  }
 }
 
 
@@ -2212,10 +2230,12 @@
     Assembler* assembler) {
   // Check single stepping.
   Label stepping, done_stepping;
-  __ LoadIsolate(T0);
-  __ lbu(T0, Address(T0, Isolate::single_step_offset()));
-  __ BranchNotEqual(T0, Immediate(0), &stepping);
-  __ Bind(&done_stepping);
+  if (FLAG_support_debugger) {
+    __ LoadIsolate(T0);
+    __ lbu(T0, Address(T0, Isolate::single_step_offset()));
+    __ BranchNotEqual(T0, Immediate(0), &stepping);
+    __ Bind(&done_stepping);
+  }
 
   const Register temp1 = T2;
   const Register temp2 = T3;
@@ -2227,15 +2247,17 @@
   __ Ret();
 
   // Call single step callback in debugger.
-  __ Bind(&stepping);
-  __ EnterStubFrame();
-  __ addiu(SP, SP, Immediate(-1 * kWordSize));
-  __ sw(RA, Address(SP, 0 * kWordSize));  // Return address.
-  __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
-  __ lw(RA, Address(SP, 0 * kWordSize));
-  __ addiu(SP, SP, Immediate(1 * kWordSize));
-  __ LeaveStubFrame();
-  __ b(&done_stepping);
+  if (FLAG_support_debugger) {
+    __ Bind(&stepping);
+    __ EnterStubFrame();
+    __ addiu(SP, SP, Immediate(-1 * kWordSize));
+    __ sw(RA, Address(SP, 0 * kWordSize));  // Return address.
+    __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
+    __ lw(RA, Address(SP, 0 * kWordSize));
+    __ addiu(SP, SP, Immediate(1 * kWordSize));
+    __ LeaveStubFrame();
+    __ b(&done_stepping);
+  }
 }
 
 
@@ -2255,6 +2277,61 @@
   __ Ret();
 }
 
+
+void StubCode::EmitMegamorphicLookup(
+    Assembler* assembler, Register receiver, Register cache, Register target) {
+  ASSERT((cache != T0) && (cache != T2));
+  __ LoadTaggedClassIdMayBeSmi(T0, receiver);
+  // T0: class ID of the receiver (smi).
+  __ lw(T2, FieldAddress(cache, MegamorphicCache::buckets_offset()));
+  __ lw(T1, FieldAddress(cache, MegamorphicCache::mask_offset()));
+  // T2: cache buckets array.
+  // T1: mask.
+  __ mov(T3, T0);
+
+  Label loop, update, call_target_function;
+  __ b(&loop);
+
+  __ Bind(&update);
+  __ addiu(T3, T3, Immediate(Smi::RawValue(1)));
+  __ Bind(&loop);
+  __ and_(T3, T3, T1);
+  const intptr_t base = Array::data_offset();
+  // T3 is smi tagged, but table entries are two words, so LSL 2.
+  __ sll(TMP, T3, 2);
+  __ addu(TMP, T2, TMP);
+  __ lw(T4, FieldAddress(TMP, base));
+
+  ASSERT(kIllegalCid == 0);
+  __ beq(T4, ZR, &call_target_function);
+  __ bne(T4, T0, &update);
+
+  __ Bind(&call_target_function);
+  // Call the target found in the cache.  For a class id match, this is a
+  // proper target for the given name and arguments descriptor.  If the
+  // illegal class id was found, the target is a cache miss handler that can
+  // be invoked as a normal Dart function.
+  __ sll(T1, T3, 2);
+  __ addu(T1, T2, T1);
+  __ lw(T0, FieldAddress(T1, base + kWordSize));
+
+  __ lw(target, FieldAddress(T0, Function::instructions_offset()));
+  // TODO(srdjan): Evaluate performance impact of moving the instruction below
+  // to the call site, instead of having it here.
+  __ AddImmediate(target, Instructions::HeaderSize() - kHeapObjectTag);
+}
+
+
+// Called from megamorphic calls.
+//  T0: receiver.
+//  T1: lookup cache.
+// Result:
+//  T1: entry point.
+void StubCode::GenerateMegamorphicLookupStub(Assembler* assembler) {
+  EmitMegamorphicLookup(assembler, T0, T1, T1);
+  __ Ret();
+}
+
 }  // namespace dart
 
 #endif  // defined TARGET_ARCH_MIPS
diff --git a/runtime/vm/stub_code_x64.cc b/runtime/vm/stub_code_x64.cc
index 0961ef7..77da070 100644
--- a/runtime/vm/stub_code_x64.cc
+++ b/runtime/vm/stub_code_x64.cc
@@ -26,6 +26,8 @@
 DEFINE_FLAG(bool, use_slow_path, false,
     "Set to true for debugging & verifying the slow paths.");
 DECLARE_FLAG(bool, trace_optimized_ic_calls);
+DECLARE_FLAG(int, optimization_counter_threshold);
+DECLARE_FLAG(bool, support_debugger);
 
 // Input parameters:
 //   RSP : points to return address.
@@ -1214,12 +1216,14 @@
 // Loads function into 'temp_reg', preserves 'ic_reg'.
 void StubCode::GenerateUsageCounterIncrement(Assembler* assembler,
                                              Register temp_reg) {
-  Register ic_reg = RBX;
-  Register func_reg = temp_reg;
-  ASSERT(ic_reg != func_reg);
-  __ Comment("Increment function counter");
-  __ movq(func_reg, FieldAddress(ic_reg, ICData::owner_offset()));
-  __ incl(FieldAddress(func_reg, Function::usage_counter_offset()));
+  if (FLAG_optimization_counter_threshold >= 0) {
+    Register ic_reg = RBX;
+    Register func_reg = temp_reg;
+    ASSERT(ic_reg != func_reg);
+    __ Comment("Increment function counter");
+    __ movq(func_reg, FieldAddress(ic_reg, ICData::owner_offset()));
+    __ incl(FieldAddress(func_reg, Function::usage_counter_offset()));
+  }
 }
 
 
@@ -1296,13 +1300,15 @@
   __ Bind(&ok);
 #endif
 
-  const intptr_t count_offset = ICData::CountIndexFor(num_args) * kWordSize;
-  // Update counter.
-  __ movq(R8, Address(R12, count_offset));
-  __ addq(R8, Immediate(Smi::RawValue(1)));
-  __ movq(R9, Immediate(Smi::RawValue(Smi::kMaxValue)));
-  __ cmovnoq(R9, R8);
-  __ StoreIntoSmiField(Address(R12, count_offset), R9);
+  if (FLAG_optimization_counter_threshold >= 0) {
+    const intptr_t count_offset = ICData::CountIndexFor(num_args) * kWordSize;
+    // Update counter.
+    __ movq(R8, Address(R12, count_offset));
+    __ addq(R8, Immediate(Smi::RawValue(1)));
+    __ movq(R9, Immediate(Smi::RawValue(Smi::kMaxValue)));
+    __ cmovnoq(R9, R8);
+    __ StoreIntoSmiField(Address(R12, count_offset), R9);
+  }
 
   __ ret();
 }
@@ -1339,12 +1345,14 @@
   }
 #endif  // DEBUG
 
-  __ Comment("Check single stepping");
   Label stepping, done_stepping;
-  __ LoadIsolate(RAX);
-  __ cmpb(Address(RAX, Isolate::single_step_offset()), Immediate(0));
-  __ j(NOT_EQUAL, &stepping);
-  __ Bind(&done_stepping);
+  if (FLAG_support_debugger) {
+    __ Comment("Check single stepping");
+    __ LoadIsolate(RAX);
+    __ cmpb(Address(RAX, Isolate::single_step_offset()), Immediate(0));
+    __ j(NOT_EQUAL, &stepping);
+    __ Bind(&done_stepping);
+  }
 
   __ Comment("Range feedback collection");
   Label not_smi_or_overflow;
@@ -1453,18 +1461,20 @@
   __ jmp(&call_target_function);
 
   __ Bind(&found);
-  __ Comment("Update caller's counter");
   // R12: Pointer to an IC data check group.
   const intptr_t target_offset = ICData::TargetIndexFor(num_args) * kWordSize;
   const intptr_t count_offset = ICData::CountIndexFor(num_args) * kWordSize;
   __ movq(RAX, Address(R12, target_offset));
 
-  // Update counter.
-  __ movq(R8, Address(R12, count_offset));
-  __ addq(R8, Immediate(Smi::RawValue(1)));
-  __ movq(R9, Immediate(Smi::RawValue(Smi::kMaxValue)));
-  __ cmovnoq(R9, R8);
-  __ StoreIntoSmiField(Address(R12, count_offset), R9);
+  if (FLAG_optimization_counter_threshold >= 0) {
+    // Update counter.
+    __ Comment("Update caller's counter");
+    __ movq(R8, Address(R12, count_offset));
+    __ addq(R8, Immediate(Smi::RawValue(1)));
+    __ movq(R9, Immediate(Smi::RawValue(Smi::kMaxValue)));
+    __ cmovnoq(R9, R8);
+    __ StoreIntoSmiField(Address(R12, count_offset), R9);
+  }
 
   __ Comment("Call target");
   __ Bind(&call_target_function);
@@ -1496,13 +1506,15 @@
     __ jmp(RCX);
   }
 
-  __ Bind(&stepping);
-  __ EnterStubFrame();
-  __ pushq(RBX);
-  __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
-  __ popq(RBX);
-  __ LeaveStubFrame();
-  __ jmp(&done_stepping);
+  if (FLAG_support_debugger) {
+    __ Bind(&stepping);
+    __ EnterStubFrame();
+    __ pushq(RBX);
+    __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
+    __ popq(RBX);
+    __ LeaveStubFrame();
+    __ jmp(&done_stepping);
+  }
 }
 
 
@@ -1652,16 +1664,18 @@
 
   // Check single stepping.
   Label stepping, done_stepping;
-  __ LoadIsolate(RAX);
-  __ movzxb(RAX, Address(RAX, Isolate::single_step_offset()));
-  __ cmpq(RAX, Immediate(0));
+  if (FLAG_support_debugger) {
+    __ LoadIsolate(RAX);
+    __ movzxb(RAX, Address(RAX, Isolate::single_step_offset()));
+    __ cmpq(RAX, Immediate(0));
 #if defined(DEBUG)
       static const bool kJumpLength = Assembler::kFarJump;
 #else
       static const bool kJumpLength = Assembler::kNearJump;
 #endif  // DEBUG
-  __ j(NOT_EQUAL, &stepping, kJumpLength);
-  __ Bind(&done_stepping);
+    __ j(NOT_EQUAL, &stepping, kJumpLength);
+    __ Bind(&done_stepping);
+  }
 
   // RBX: IC data object (preserved).
   __ movq(R12, FieldAddress(RBX, ICData::ic_data_offset()));
@@ -1671,12 +1685,14 @@
   const intptr_t target_offset = ICData::TargetIndexFor(0) * kWordSize;
   const intptr_t count_offset = ICData::CountIndexFor(0) * kWordSize;
 
-  // Increment count for this call.
-  __ movq(R8, Address(R12, count_offset));
-  __ addq(R8, Immediate(Smi::RawValue(1)));
-  __ movq(R9, Immediate(Smi::RawValue(Smi::kMaxValue)));
-  __ cmovnoq(R9, R8);
-  __ StoreIntoSmiField(Address(R12, count_offset), R9);
+  if (FLAG_optimization_counter_threshold >= 0) {
+    // Increment count for this call.
+    __ movq(R8, Address(R12, count_offset));
+    __ addq(R8, Immediate(Smi::RawValue(1)));
+    __ movq(R9, Immediate(Smi::RawValue(Smi::kMaxValue)));
+    __ cmovnoq(R9, R8);
+    __ StoreIntoSmiField(Address(R12, count_offset), R9);
+  }
 
   // Load arguments descriptor into R10.
   __ movq(R10, FieldAddress(RBX, ICData::arguments_descriptor_offset()));
@@ -1688,13 +1704,15 @@
   __ addq(RCX, Immediate(Instructions::HeaderSize() - kHeapObjectTag));
   __ jmp(RCX);
 
-  __ Bind(&stepping);
-  __ EnterStubFrame();
-  __ pushq(RBX);  // Preserve IC data object.
-  __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
-  __ popq(RBX);
-  __ LeaveStubFrame();
-  __ jmp(&done_stepping, Assembler::kNearJump);
+  if (FLAG_support_debugger) {
+    __ Bind(&stepping);
+    __ EnterStubFrame();
+    __ pushq(RBX);  // Preserve IC data object.
+    __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
+    __ popq(RBX);
+    __ LeaveStubFrame();
+    __ jmp(&done_stepping, Assembler::kNearJump);
+  }
 }
 
 
@@ -2065,11 +2083,13 @@
     Assembler* assembler) {
   // Check single stepping.
   Label stepping, done_stepping;
-  __ LoadIsolate(RAX);
-  __ movzxb(RAX, Address(RAX, Isolate::single_step_offset()));
-  __ cmpq(RAX, Immediate(0));
-  __ j(NOT_EQUAL, &stepping);
-  __ Bind(&done_stepping);
+  if (FLAG_support_debugger) {
+    __ LoadIsolate(RAX);
+    __ movzxb(RAX, Address(RAX, Isolate::single_step_offset()));
+    __ cmpq(RAX, Immediate(0));
+    __ j(NOT_EQUAL, &stepping);
+    __ Bind(&done_stepping);
+  }
 
   const Register left = RAX;
   const Register right = RDX;
@@ -2079,11 +2099,13 @@
   GenerateIdenticalWithNumberCheckStub(assembler, left, right);
   __ ret();
 
-  __ Bind(&stepping);
-  __ EnterStubFrame();
-  __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
-  __ LeaveStubFrame();
-  __ jmp(&done_stepping);
+  if (FLAG_support_debugger) {
+    __ Bind(&stepping);
+    __ EnterStubFrame();
+    __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
+    __ LeaveStubFrame();
+    __ jmp(&done_stepping);
+  }
 }
 
 
@@ -2103,6 +2125,59 @@
   __ ret();
 }
 
+
+void StubCode::EmitMegamorphicLookup(
+    Assembler* assembler, Register receiver, Register cache, Register target) {
+  ASSERT((cache != RAX) && (cache != RDI));
+  __ LoadTaggedClassIdMayBeSmi(RAX, receiver);
+  // RAX: class ID of the receiver (smi).
+  __ movq(RDI, FieldAddress(cache, MegamorphicCache::buckets_offset()));
+  __ movq(RBX, FieldAddress(cache, MegamorphicCache::mask_offset()));
+  // RDI: cache buckets array.
+  // RBX: mask.
+  __ movq(RCX, RAX);
+
+  Label loop, update, call_target_function;
+  __ jmp(&loop);
+
+  __ Bind(&update);
+  __ AddImmediate(RCX, Immediate(Smi::RawValue(1)), PP);
+  __ Bind(&loop);
+  __ andq(RCX, RBX);
+  const intptr_t base = Array::data_offset();
+  // RCX is smi tagged, but table entries are two words, so TIMES_8.
+  __ movq(RDX, FieldAddress(RDI, RCX, TIMES_8, base));
+
+  ASSERT(kIllegalCid == 0);
+  __ testq(RDX, RDX);
+  __ j(ZERO, &call_target_function, Assembler::kNearJump);
+  __ cmpq(RDX, RAX);
+  __ j(NOT_EQUAL, &update, Assembler::kNearJump);
+
+  __ Bind(&call_target_function);
+  // Call the target found in the cache.  For a class id match, this is a
+  // proper target for the given name and arguments descriptor.  If the
+  // illegal class id was found, the target is a cache miss handler that can
+  // be invoked as a normal Dart function.
+  __ movq(RAX, FieldAddress(RDI, RCX, TIMES_8, base + kWordSize));
+  __ movq(target, FieldAddress(RAX, Function::instructions_offset()));
+  // TODO(srdjan): Evaluate performance impact of moving the instruction below
+  // to the call site, instead of having it here.
+  __ AddImmediate(
+      target, Immediate(Instructions::HeaderSize() - kHeapObjectTag), PP);
+}
+
+
+// Called from megamorphic calls.
+//  RDI: receiver.
+//  RBX: lookup cache.
+// Result:
+//  RCX: entry point.
+void StubCode::GenerateMegamorphicLookupStub(Assembler* assembler) {
+  EmitMegamorphicLookup(assembler, RDI, RBX, RCX);
+  __ ret();
+}
+
 }  // namespace dart
 
 #endif  // defined TARGET_ARCH_X64
diff --git a/runtime/vm/symbols.cc b/runtime/vm/symbols.cc
index cb23091..eadd9ff 100644
--- a/runtime/vm/symbols.cc
+++ b/runtime/vm/symbols.cc
@@ -30,8 +30,8 @@
 
   "",  // matches kKwTableStart.
 
-#define DEFINE_KEYWORD_SYMBOL_INDEX(token, chars, ignore1, ignore2)            \
-  chars,
+#define DEFINE_KEYWORD_SYMBOL_INDEX(t, s, p, a)                                \
+  s,
   DART_KEYWORD_LIST(DEFINE_KEYWORD_SYMBOL_INDEX)
 #undef DEFINE_KEYWORD_SYMBOL_INDEX
 };
@@ -65,23 +65,17 @@
   // Create all predefined symbols.
   ASSERT((sizeof(names) / sizeof(const char*)) == Symbols::kNullCharId);
 
-  // First set up all the predefined string symbols.
-  for (intptr_t i = 1; i < Symbols::kKwTableStart; i++) {
+  // Set up all the predefined string symbols and create symbols for language
+  // keywords. We don't expect to find any overlaps between the predefined
+  // string symbols and the language keywords. If an overlap is introduced
+  // inadvertantly the ASSERT in AddToVMIsolate while fail.
+  for (intptr_t i = 1; i < Symbols::kNullCharId; i++) {
     String* str = String::ReadOnlyHandle();
     *str = OneByteString::New(names[i], Heap::kOld);
     AddToVMIsolate(*str);
     symbol_handles_[i] = str;
   }
 
-  // Create symbols for language keywords. Some keywords are equal to
-  // symbols we already created, so use New() instead of Add() to ensure
-  // that the symbols are canonicalized.
-  for (intptr_t i = Symbols::kKwTableStart; i < Symbols::kNullCharId; i++) {
-    String* str = String::ReadOnlyHandle();
-    *str = New(names[i]);
-    symbol_handles_[i] = str;
-  }
-
   // Add Latin1 characters as Symbols, so that Symbols::FromCharCode is fast.
   for (intptr_t c = 0; c < kNumberOfOneCharCodeSymbols; c++) {
     intptr_t idx = (kNullCharId + c);
diff --git a/runtime/vm/symbols.h b/runtime/vm/symbols.h
index f52e20a..a5a4383 100644
--- a/runtime/vm/symbols.h
+++ b/runtime/vm/symbols.h
@@ -396,13 +396,13 @@
 
 #define DEFINE_SYMBOL_INDEX(symbol, literal)                                   \
     k##symbol##Id,
-PREDEFINED_SYMBOLS_LIST(DEFINE_SYMBOL_INDEX)
+    PREDEFINED_SYMBOLS_LIST(DEFINE_SYMBOL_INDEX)
 #undef DEFINE_SYMBOL_INDEX
 
     kKwTableStart,  // First keyword at kKwTableStart + 1.
 
-#define DEFINE_KEYWORD_SYMBOL_INDEX(token, chars, ignore1, ignore2)            \
-    token##Id,
+#define DEFINE_KEYWORD_SYMBOL_INDEX(t, s, p, a)                            \
+    t##Id,
     DART_KEYWORD_LIST(DEFINE_KEYWORD_SYMBOL_INDEX)
 #undef DEFINE_KEYWORD_SYMBOL_INDEX
 
@@ -514,10 +514,17 @@
   static const String& True() { return *(symbol_handles_[kTRUEId]); }
   static const String& Void() { return *(symbol_handles_[kVOIDId]); }
 
-  // Access methods for symbol handles stored in the vm isolate.
+  // Access methods for symbol handles stored in the vm isolate for predefined
+  // symbols.
 #define DEFINE_SYMBOL_HANDLE_ACCESSOR(symbol, literal)                         \
   static const String& symbol() { return *(symbol_handles_[k##symbol##Id]); }
-PREDEFINED_SYMBOLS_LIST(DEFINE_SYMBOL_HANDLE_ACCESSOR)
+  PREDEFINED_SYMBOLS_LIST(DEFINE_SYMBOL_HANDLE_ACCESSOR)
+#undef DEFINE_SYMBOL_HANDLE_ACCESSOR
+
+  // Access methods for symbol handles stored in the vm isolate for keywords.
+#define DEFINE_SYMBOL_HANDLE_ACCESSOR(t, s, p, a)                              \
+  static const String& t() { return *(symbol_handles_[t##Id]); }
+  DART_KEYWORD_LIST(DEFINE_SYMBOL_HANDLE_ACCESSOR)
 #undef DEFINE_SYMBOL_HANDLE_ACCESSOR
 
   // Get symbol for scanner keyword.
diff --git a/runtime/vm/vm.gypi b/runtime/vm/vm.gypi
index c38c55b..211950f 100644
--- a/runtime/vm/vm.gypi
+++ b/runtime/vm/vm.gypi
@@ -15,6 +15,8 @@
     'collection_patch_cc_file': '<(gen_source_dir)/collection_patch_gen.cc',
     'convert_cc_file': '<(gen_source_dir)/convert_gen.cc',
     'convert_patch_cc_file': '<(gen_source_dir)/convert_patch_gen.cc',
+    'developer_cc_file': '<(gen_source_dir)/developer_gen.cc',
+    'developer_patch_cc_file': '<(gen_source_dir)/developer_patch_gen.cc',
     'internal_cc_file': '<(gen_source_dir)/internal_gen.cc',
     'internal_patch_cc_file': '<(gen_source_dir)/internal_patch_gen.cc',
     'isolate_cc_file': '<(gen_source_dir)/isolate_gen.cc',
@@ -23,14 +25,14 @@
     'math_patch_cc_file': '<(gen_source_dir)/math_patch_gen.cc',
     'mirrors_cc_file': '<(gen_source_dir)/mirrors_gen.cc',
     'mirrors_patch_cc_file': '<(gen_source_dir)/mirrors_patch_gen.cc',
+    'profiler_cc_file': '<(gen_source_dir)/profiler_gen.cc',
+    'profiler_patch_cc_file': '<(gen_source_dir)/profiler_patch_gen.cc',
     'service_cc_file': '<(gen_source_dir)/service_gen.cc',
     'snapshot_test_dat_file': '<(gen_source_dir)/snapshot_test.dat',
     'snapshot_test_in_dat_file': 'snapshot_test_in.dat',
     'snapshot_test_dart_file': 'snapshot_test.dart',
     'typed_data_cc_file': '<(gen_source_dir)/typed_data_gen.cc',
     'typed_data_patch_cc_file': '<(gen_source_dir)/typed_data_patch_gen.cc',
-    'profiler_cc_file': '<(gen_source_dir)/profiler_gen.cc',
-    'profiler_patch_cc_file': '<(gen_source_dir)/profiler_patch_gen.cc',
   },
   'targets': [
     {
@@ -101,7 +103,77 @@
         }]],
     },
     {
-      'target_name': 'libdart_lib_withcore',
+      'target_name': 'libdart_vm_nosnapshot',
+      'type': 'static_library',
+      'toolsets':['host', 'target'],
+      'dependencies': [
+        'generate_service_cc_file#host'
+      ],
+      'includes': [
+        'vm_sources.gypi',
+        '../platform/platform_headers.gypi',
+        '../platform/platform_sources.gypi',
+      ],
+      'sources': [
+        # Include generated source files.
+        '<(service_cc_file)',
+      ],
+      'sources/': [
+        # Exclude all _test.[cc|h] files.
+        ['exclude', '_test\\.(cc|h)$'],
+      ],
+      'include_dirs': [
+        '..',
+      ],
+      'defines': [
+        'DART_NO_SNAPSHOT',
+      ],
+      'conditions': [
+        ['OS=="linux"', {
+          'link_settings': {
+            'libraries': [
+              '-lpthread',
+              '-lrt',
+              '-ldl',
+            ],
+          },
+        }],
+        ['OS=="android" and _toolset=="host"', {
+          'link_settings': {
+            'libraries': [
+              '-lpthread',
+              '-lrt',
+              '-ldl',
+            ],
+          },
+        }],
+        ['OS=="win"', {
+          'sources/' : [
+            ['exclude', 'gdbjit.cc'],
+          ],
+       }],
+       ['dart_vtune_support==0', {
+          'sources/' : [
+            ['exclude', 'vtune\\.(cc|h)$'],
+          ],
+       }],
+       ['dart_vtune_support==1', {
+          'include_dirs': ['<(dart_vtune_root)/include'],
+          'defines': ['DART_VTUNE_SUPPORT'],
+          'link_settings': {
+            'conditions': [
+              ['OS=="linux"', {
+                 'libraries': ['-ljitprofiling'],
+              }],
+              ['OS=="win"', {
+                 'libraries': ['-ljitprofiling.lib'],
+              }],
+            ],
+          },
+        }]],
+    },
+    {
+      'target_name': 'libdart_lib_nosnapshot',
       'type': 'static_library',
       'toolsets':['host', 'target'],
       'dependencies': [
@@ -113,6 +185,8 @@
         'generate_collection_patch_cc_file#host',
         'generate_convert_cc_file#host',
         'generate_convert_patch_cc_file#host',
+        'generate_developer_cc_file#host',
+        'generate_developer_patch_cc_file#host',
         'generate_internal_cc_file#host',
         'generate_internal_patch_cc_file#host',
         'generate_isolate_cc_file#host',
@@ -121,21 +195,22 @@
         'generate_math_patch_cc_file#host',
         'generate_mirrors_cc_file#host',
         'generate_mirrors_patch_cc_file#host',
-        'generate_typed_data_cc_file#host',
-        'generate_typed_data_patch_cc_file#host',
         'generate_profiler_cc_file#host',
         'generate_profiler_patch_cc_file#host',
+        'generate_typed_data_cc_file#host',
+        'generate_typed_data_patch_cc_file#host',
       ],
       'includes': [
         '../lib/async_sources.gypi',
         '../lib/collection_sources.gypi',
         '../lib/core_sources.gypi',
+        '../lib/developer_sources.gypi',
+        '../lib/internal_sources.gypi',
         '../lib/isolate_sources.gypi',
         '../lib/math_sources.gypi',
         '../lib/mirrors_sources.gypi',
-        '../lib/typed_data_sources.gypi',
         '../lib/profiler_sources.gypi',
-        '../lib/internal_sources.gypi',
+        '../lib/typed_data_sources.gypi',
       ],
       'sources': [
         'bootstrap.cc',
@@ -148,6 +223,8 @@
         '<(collection_patch_cc_file)',
         '<(convert_cc_file)',
         '<(convert_patch_cc_file)',
+        '<(developer_cc_file)',
+        '<(developer_patch_cc_file)',
         '<(internal_cc_file)',
         '<(internal_patch_cc_file)',
         '<(isolate_cc_file)',
@@ -156,10 +233,10 @@
         '<(math_patch_cc_file)',
         '<(mirrors_cc_file)',
         '<(mirrors_patch_cc_file)',
-        '<(typed_data_cc_file)',
-        '<(typed_data_patch_cc_file)',
         '<(profiler_cc_file)',
         '<(profiler_patch_cc_file)',
+        '<(typed_data_cc_file)',
+        '<(typed_data_patch_cc_file)',
       ],
       'include_dirs': [
         '..',
@@ -173,12 +250,13 @@
         '../lib/async_sources.gypi',
         '../lib/collection_sources.gypi',
         '../lib/core_sources.gypi',
+        '../lib/developer_sources.gypi',
+        '../lib/internal_sources.gypi',
         '../lib/isolate_sources.gypi',
         '../lib/math_sources.gypi',
         '../lib/mirrors_sources.gypi',
-        '../lib/typed_data_sources.gypi',
         '../lib/profiler_sources.gypi',
-        '../lib/internal_sources.gypi',
+        '../lib/typed_data_sources.gypi',
       ],
       'sources': [
         'bootstrap_nocore.cc',
@@ -987,6 +1065,86 @@
       ]
     },
     {
+      'target_name': 'generate_developer_cc_file',
+      'type': 'none',
+      'toolsets':['host'],
+      'includes': [
+        # Load the shared library sources.
+        '../../sdk/lib/developer/developer_sources.gypi',
+      ],
+      'sources/': [
+        # Exclude all .[cc|h] files.
+        # This is only here for reference. Excludes happen after
+        # variable expansion, so the script has to do its own
+        # exclude processing of the sources being passed.
+        ['exclude', '\\.cc|h$'],
+      ],
+      'actions': [
+        {
+          'action_name': 'generate_developer_cc',
+          'inputs': [
+            '../tools/gen_library_src_paths.py',
+            '<(libgen_in_cc_file)',
+            '<@(_sources)',
+          ],
+          'outputs': [
+            '<(developer_cc_file)',
+          ],
+          'action': [
+            'python',
+            'tools/gen_library_src_paths.py',
+            '--output', '<(developer_cc_file)',
+            '--input_cc', '<(libgen_in_cc_file)',
+            '--include', 'vm/bootstrap.h',
+            '--var_name', 'dart::Bootstrap::developer_source_paths_',
+            '--library_name', 'dart:developer',
+            '<@(_sources)',
+          ],
+          'message': 'Generating ''<(developer_cc_file)'' file.'
+        },
+      ]
+    },
+    {
+      'target_name': 'generate_developer_patch_cc_file',
+      'type': 'none',
+      'toolsets':['host'],
+      'includes': [
+        # Load the runtime implementation sources.
+        '../lib/developer_sources.gypi',
+      ],
+      'sources/': [
+        # Exclude all .[cc|h] files.
+        # This is only here for reference. Excludes happen after
+        # variable expansion, so the script has to do its own
+        # exclude processing of the sources being passed.
+        ['exclude', '\\.cc|h$'],
+      ],
+      'actions': [
+        {
+          'action_name': 'generate_developer_patch_cc',
+          'inputs': [
+            '../tools/gen_library_src_paths.py',
+            '<(libgen_in_cc_file)',
+            '<@(_sources)',
+          ],
+          'outputs': [
+            '<(developer_patch_cc_file)',
+          ],
+          'action': [
+            'python',
+            'tools/gen_library_src_paths.py',
+            '--output', '<(developer_patch_cc_file)',
+            '--input_cc', '<(libgen_in_cc_file)',
+            '--include', 'vm/bootstrap.h',
+            '--var_name', 'dart::Bootstrap::developer_patch_paths_',
+            '--library_name', 'dart:developer',
+            '<@(_sources)',
+          ],
+          'message': 'Generating ''<(developer_patch_cc_file)'' file.'
+        },
+      ]
+    },
+    {
       'target_name': 'generate_snapshot_test_dat_file',
       'type': 'none',
       'toolsets':['host'],
diff --git a/sdk/lib/_internal/compiler/js_lib/collection_patch.dart b/sdk/lib/_internal/compiler/js_lib/collection_patch.dart
index 9df7c99..06d944a 100644
--- a/sdk/lib/_internal/compiler/js_lib/collection_patch.dart
+++ b/sdk/lib/_internal/compiler/js_lib/collection_patch.dart
@@ -430,7 +430,7 @@
 }
 
 class HashMapKeyIterable<E> extends Iterable<E>
-                            implements EfficientLength {
+                            implements EfficientLengthIterable<E> {
   final _map;
   HashMapKeyIterable(this._map);
 
diff --git a/sdk/lib/_internal/compiler/js_lib/constant_map.dart b/sdk/lib/_internal/compiler/js_lib/constant_map.dart
index e716cf1..dcaef2a 100644
--- a/sdk/lib/_internal/compiler/js_lib/constant_map.dart
+++ b/sdk/lib/_internal/compiler/js_lib/constant_map.dart
@@ -23,8 +23,7 @@
   void addAll(Map<K, V> other) => _throwUnmodifiable();
 }
 
-class ConstantStringMap<K, V> extends ConstantMap<K, V>
-                              implements _symbol_dev.EfficientLength {
+class ConstantStringMap<K, V> extends ConstantMap<K, V> {
 
   // This constructor is not used.  The instantiation is shortcut by the
   // compiler. It is here to make the uninitialized final fields legal.
diff --git a/sdk/lib/_internal/compiler/js_lib/developer_patch.dart b/sdk/lib/_internal/compiler/js_lib/developer_patch.dart
new file mode 100644
index 0000000..a6087a1
--- /dev/null
+++ b/sdk/lib/_internal/compiler/js_lib/developer_patch.dart
@@ -0,0 +1,32 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Patch file for dart:developer library.
+
+import 'dart:_js_helper' show patch;
+import 'dart:_foreign_helper' show JS;
+
+/// If [when] is true, stop the program as if a breakpoint where hit at the
+/// following statement. Returns the value of [when]. Some debuggers may
+/// display [msg].
+/// NOTE: When invoked, the isolate will not return until a debugger
+/// continues execution. When running in the Dart VM the behaviour is the same
+/// regardless of whether or not a debugger is connected. When compiled to
+/// JavaScript, this uses the "debugger" statement, and behaves exactly as
+/// that does.
+@patch
+@ForceInline()
+bool debugger({bool when: true, String msg}) {
+  if (when) {
+    JS('', 'debugger');
+  }
+  return when;
+}
+
+/// Send a reference to [object] to any attached debuggers so they may open an
+/// inspector on the object. Returns the argument.
+@patch
+inspect(object) {
+  return object;
+}
diff --git a/sdk/lib/_internal/compiler/js_lib/foreign_helper.dart b/sdk/lib/_internal/compiler/js_lib/foreign_helper.dart
index 6b58793..e5e7f6f 100644
--- a/sdk/lib/_internal/compiler/js_lib/foreign_helper.dart
+++ b/sdk/lib/_internal/compiler/js_lib/foreign_helper.dart
@@ -198,11 +198,6 @@
 JS_INTERCEPTOR_CONSTANT(Type type) {}
 
 /**
- * Returns the prefix used for generated is checks on classes.
- */
-String JS_OPERATOR_IS_PREFIX() {}
-
-/**
  * Returns the prefix used for generated type argument substitutions on classes.
  */
 String JS_OPERATOR_AS_PREFIX() {}
diff --git a/sdk/lib/_internal/compiler/js_lib/isolate_helper.dart b/sdk/lib/_internal/compiler/js_lib/isolate_helper.dart
index 2619c35..ad6883c 100644
--- a/sdk/lib/_internal/compiler/js_lib/isolate_helper.dart
+++ b/sdk/lib/_internal/compiler/js_lib/isolate_helper.dart
@@ -753,29 +753,20 @@
   static final Expando<int> workerIds = new Expando<int>();
 
   /**
-   * The src url for the script tag that loaded this Used to create
-   * JavaScript workers.
+   * The src url for the script tag that loaded this function.
+   *
+   * Used to create JavaScript workers and load deferred libraries.
    */
   static String computeThisScript() {
     var currentScript = JS_EMBEDDED_GLOBAL('', CURRENT_SCRIPT);
     if (currentScript != null) {
       return JS('String', 'String(#.src)', currentScript);
     }
-    if (Primitives.isD8) return computeThisScriptD8();
-    if (Primitives.isJsshell) return computeThisScriptJsshell();
     // A worker has no script tag - so get an url from a stack-trace.
     if (_globalState.isWorker) return computeThisScriptFromTrace();
     return null;
   }
 
-  static String computeThisScriptJsshell() {
-    return JS('String|Null', 'thisFilename()');
-  }
-
-  // TODO(ahe): The following is for supporting D8.  We should move this code
-  // to a helper library that is only loaded when testing on D8.
-  static String computeThisScriptD8() => computeThisScriptFromTrace();
-
   static String computeThisScriptFromTrace() {
     var stack = JS('String|Null', 'new Error().stack');
     if (stack == null) {
diff --git a/sdk/lib/_internal/compiler/js_lib/js_array.dart b/sdk/lib/_internal/compiler/js_lib/js_array.dart
index 2afabdd..bef5026 100644
--- a/sdk/lib/_internal/compiler/js_lib/js_array.dart
+++ b/sdk/lib/_internal/compiler/js_lib/js_array.dart
@@ -83,8 +83,7 @@
     // to know if the property exists.
     JS('void', r'#.fixed$length = Array', list);
     JS('void', r'#.immutable$list = Array', list);
-    // TODO(23309): Make it detectable that the list has fixed length.
-    return JS('JSArray', '#', list);
+    return JS('JSUnmodifiableArray', '#', list);
   }
 
   checkMutable(reason) {
@@ -125,7 +124,7 @@
   void insertAll(int index, Iterable<E> iterable) {
     checkGrowable('insertAll');
     RangeError.checkValueInInterval(index, 0, this.length, "index");
-    if (iterable is! EfficientLength) {
+    if (iterable is! EfficientLengthIterable) {
       iterable = iterable.toList();
     }
     int insertionLength = iterable.length;
@@ -440,7 +439,7 @@
   void replaceRange(int start, int end, Iterable<E> replacement) {
     checkGrowable('replace range');
     RangeError.checkValidRange(start, end, this.length);
-    if (replacement is! EfficientLength) {
+    if (replacement is! EfficientLengthIterable) {
       replacement = replacement.toList();
     }
     int removeLength = end - start;
@@ -613,6 +612,7 @@
 class JSMutableArray<E> extends JSArray<E> implements JSMutableIndexable {}
 class JSFixedArray<E> extends JSMutableArray<E> {}
 class JSExtendableArray<E> extends JSMutableArray<E> {}
+class JSUnmodifiableArray<E> extends JSArray<E> {} // Already is JSIndexable.
 
 
 /// An [Iterator] that iterates a JSArray.
diff --git a/sdk/lib/_internal/compiler/js_lib/js_helper.dart b/sdk/lib/_internal/compiler/js_lib/js_helper.dart
index 58ead91..f0d7ebf 100644
--- a/sdk/lib/_internal/compiler/js_lib/js_helper.dart
+++ b/sdk/lib/_internal/compiler/js_lib/js_helper.dart
@@ -19,9 +19,7 @@
     JsBuiltin,
     JsGetName,
     LEAF_TAGS,
-    METADATA,
-    NATIVE_SUPERCLASS_TAG_NAME,
-    TYPES;
+    NATIVE_SUPERCLASS_TAG_NAME;
 
 import 'dart:collection';
 
@@ -62,14 +60,13 @@
     JS_NULL_CLASS_NAME,
     JS_OBJECT_CLASS_NAME,
     JS_OPERATOR_AS_PREFIX,
-    JS_OPERATOR_IS_PREFIX,
     JS_SIGNATURE_NAME,
     JS_STRING_CONCAT,
     RAW_DART_FUNCTION_REF;
 
 import 'dart:_interceptors';
 import 'dart:_internal' as _symbol_dev;
-import 'dart:_internal' show EfficientLength, MappedIterable;
+import 'dart:_internal' show MappedIterable;
 
 import 'dart:_native_typed_data';
 
@@ -92,6 +89,15 @@
 abstract class InternalMap {
 }
 
+/// Extracts the classname from the isCheckProperty.
+// TODO(floitsch): move this to foreign_helper.dart or similar.
+@ForceInline()
+String classNameFromIsCheckProperty(String isCheckProperty) {
+  return JS_BUILTIN('returns:String;depends:none;effects:none',
+                    JsBuiltin.classNameFromIsCheckProperty,
+                    isCheckProperty);
+}
+
 /// Returns true if the given [type] is a function type object.
 // TODO(floitsch): move this to foreign_helper.dart or similar.
 @ForceInline()
@@ -137,6 +143,28 @@
   return JS_BUILTIN('', JsBuiltin.rawRuntimeType, o);
 }
 
+/// Returns whether the given [type] is a subtype of [other].
+///
+/// The argument [other] is the name of the other type, as computed by
+/// [runtimeTypeToString].
+bool builtinIsSubtype(type, String other) {
+  return JS_BUILTIN('returns:bool;effects:none;depends:none',
+                    JsBuiltin.isSubtype, other, type);
+}
+
+/// Returns the metadata of the given [index].
+@ForceInline()
+getMetadata(int index) {
+  return JS_BUILTIN('returns:var;effects:none;depends:none',
+                    JsBuiltin.getMetadata, index);
+}
+
+/// Returns the type of the given [index].
+@ForceInline()
+getType(int index) {
+  return JS_BUILTIN('returns:var;effects:none;depends:none',
+                    JsBuiltin.getType, index);
+}
 
 /// No-op method that is called to inform the compiler that preambles might
 /// be needed when executing the resulting JS file in a command-line
@@ -513,8 +541,8 @@
       metadataIndex = JS('int', '#[# + # + #]', data,
           parameter, optionalParameterCount, FIRST_DEFAULT_ARGUMENT);
     }
-    var metadata = JS_EMBEDDED_GLOBAL('', METADATA);
-    return JS('String', '#[#]', metadata, metadataIndex);
+    var name = getMetadata(metadataIndex);
+    return JS('String', '#', name);
   }
 
   List<int> parameterMetadataAnnotations(int parameter) {
@@ -597,16 +625,6 @@
   String get reflectionName => JS('String', r'#.$reflectionName', jsFunction);
 }
 
-getMetadata(int index) {
-  var metadata = JS_EMBEDDED_GLOBAL('', METADATA);
-  return JS('', '#[#]', metadata, index);
-}
-
-getType(int index) {
-  var types = JS_EMBEDDED_GLOBAL('', TYPES);
-  return JS('', '#[#]', types, index);
-}
-
 class Primitives {
   /// Isolate-unique ID for caching [JsClosureMirror.function].
   /// Note the initial value is used by the first isolate (or if there are no
@@ -2266,14 +2284,20 @@
 
     var signatureFunction;
     if (JS('bool', 'typeof # == "number"', functionType)) {
-      var types = JS_EMBEDDED_GLOBAL('', TYPES);
-      // It is ok, if the access is inlined into the JS. The access is safe in
-      // and outside the function. In fact we prefer if there is a textual
-      // inlining.
+      // We cannot call [getType] here, since the types-metadata might not be
+      // set yet. This is, because fromTearOff might be called for constants
+      // when the program isn't completely set up yet.
+      //
+      // Note that we cannot just textually inline the call
+      // `getType(functionType)` since we cannot guarantee that the (then)
+      // captured variable `functionType` isn't reused.
       signatureFunction =
-          JS('', '(function(s){return function(){return #[s]}})(#)',
-              types,
-              functionType);
+          JS('',
+             '''(function(t) {
+                    return function(){ return #(t); };
+                })(#)''',
+             RAW_DART_FUNCTION_REF(getType),
+             functionType);
     } else if (!isStatic
                && JS('bool', 'typeof # == "function"', functionType)) {
       var getReceiver = isIntercepted
@@ -2823,8 +2847,7 @@
 }
 
 void propertyTypeError(value, property) {
-  // Cuts the property name to the class name.
-  String name = property.substring(3, property.length);
+  String name = classNameFromIsCheckProperty(property);
   throw new TypeErrorImplementation(value, name);
 }
 
diff --git a/sdk/lib/_internal/compiler/js_lib/js_rti.dart b/sdk/lib/_internal/compiler/js_lib/js_rti.dart
index ed75bc8..ec6ae53 100644
--- a/sdk/lib/_internal/compiler/js_lib/js_rti.dart
+++ b/sdk/lib/_internal/compiler/js_lib/js_rti.dart
@@ -271,14 +271,9 @@
 ///
 /// In minified mode, uses the unminified names if available.
 String computeTypeName(String isField, List arguments) {
-  // Shorten the field name to the class name and append the textual
+  // Extract the class name from the is field and append the textual
   // representation of the type arguments.
-  // TODO(floitsch): change this to:
-  // String className = JS_BUILTIN('depends:none;effects:none;returns:String',
-  //                               JsBuiltin.classNameFroIsCheckProperty,
-  //                               isField);
-  int prefixLength = JS_OPERATOR_IS_PREFIX().length;
-  return Primitives.formatType(isField.substring(prefixLength, isField.length),
+  return Primitives.formatType(classNameFromIsCheckProperty(isField),
                                arguments);
 }
 
@@ -456,20 +451,15 @@
   // constructed from the type of [t].
   var typeOfS = isJsArray(s) ? getIndex(s, 0) : s;
   var typeOfT = isJsArray(t) ? getIndex(t, 0) : t;
+
   // Check for a subtyping flag.
-  var name = runtimeTypeToString(typeOfT);
   // Get the necessary substitution of the type arguments, if there is one.
   var substitution;
   if (isNotIdentical(typeOfT, typeOfS)) {
-    // TODO(floitsch): change this to:
-    // if (!JS_BUILTIN('depends:none;effects:none;returns:bool',
-    //                JsBuiltin.implementsType,
-    //                typeOfSPrototype, name)) {
-    //  return false;
-    // }
-    var test = '${JS_OPERATOR_IS_PREFIX()}${name}';
+    if (!builtinIsSubtype(typeOfS, runtimeTypeToString(typeOfT))) {
+      return false;
+    }
     var typeOfSPrototype = JS('', '#.prototype', typeOfS);
-    if (hasNoField(typeOfSPrototype, test)) return false;
     var field = '${JS_OPERATOR_AS_PREFIX()}${runtimeTypeToString(typeOfT)}';
     substitution = getField(typeOfSPrototype, field);
   }
diff --git a/sdk/lib/_internal/compiler/js_lib/linked_hash_map.dart b/sdk/lib/_internal/compiler/js_lib/linked_hash_map.dart
index bbf76d3..eb5f295 100644
--- a/sdk/lib/_internal/compiler/js_lib/linked_hash_map.dart
+++ b/sdk/lib/_internal/compiler/js_lib/linked_hash_map.dart
@@ -370,7 +370,7 @@
 }
 
 class LinkedHashMapKeyIterable<E> extends Iterable<E>
-                                  implements EfficientLength {
+                                  implements EfficientLengthIterable<E> {
   final _map;
   LinkedHashMapKeyIterable(this._map);
 
diff --git a/sdk/lib/_internal/compiler/js_lib/preambles/d8.js b/sdk/lib/_internal/compiler/js_lib/preambles/d8.js
index a48f918..18823e1 100644
--- a/sdk/lib/_internal/compiler/js_lib/preambles/d8.js
+++ b/sdk/lib/_internal/compiler/js_lib/preambles/d8.js
@@ -281,6 +281,43 @@
   self.clearInterval = cancelTimer;
   self.scheduleImmediate = addTask;
 
+  function computeCurrentScript() {
+    try {
+      throw new Error();
+    } catch(e) {
+      var stack = e.stack;
+      // The V8 stack looks like:
+      //    at computeCurrentScript (preambles/d8.js:286:13)
+      //    at Object.currentScript (preambles/d8.js:308:31)
+      //    at init.currentScript (/tmp/foo.js:308:19)
+      //    at /tmp/foo.js:320:7
+      //    at /tmp/foo.js:331:4
+      var re = new RegExp("^ *at [^(]*\\((.*):[0-9]*:[0-9]*\\)$", "mg");
+      var lastMatch = null;
+      do {
+        var match = re.exec(stack);
+        if (match != null) lastMatch = match;
+      } while (match != null);
+      return lastMatch[1];
+    }
+  }
+
+  // Adding a 'document' is dangerous since it invalidates the 'typeof document'
+  // test to see if we are running in the browser. It means that the runtime
+  // needs to do more precise checks.
+  // Note that we can't run "currentScript" right away, since that would give
+  // us the location of the preamble file. Instead we wait for the first access
+  // which should happen just before invoking main. At this point we are in
+  // the main file and setting the currentScript property is correct.
+  var cachedCurrentScript = null;
+  self.document = { get currentScript() {
+      if (cachedCurrentScript == null) {
+        cachedCurrentScript = {src: computeCurrentScript()};
+      }
+      return cachedCurrentScript;
+    }
+  };
+
   // Support for deferred loading.
   self.dartDeferredLibraryLoader = function(uri, successCallback, errorCallback) {
     try {
diff --git a/sdk/lib/_internal/compiler/js_lib/preambles/jsshell.js b/sdk/lib/_internal/compiler/js_lib/preambles/jsshell.js
index 0012539..a33a58f 100644
--- a/sdk/lib/_internal/compiler/js_lib/preambles/jsshell.js
+++ b/sdk/lib/_internal/compiler/js_lib/preambles/jsshell.js
@@ -18,6 +18,46 @@
 
   self.location = { href: "file://" + workingDirectory + "/" };
 
+   function computeCurrentScript() {
+    try {
+      throw new Error();
+    } catch(e) {
+      var stack = e.stack;
+      print(stack);
+      // The jsshell stack looks like:
+      //   computeCurrentScript@...preambles/jsshell.js:23:13
+      //   self.document.currentScript@...preambles/jsshell.js:53:37
+      //   @/tmp/foo.js:308:1
+      //   @/tmp/foo.js:303:1
+      //   @/tmp/foo.js:5:1
+      var re = new RegExp("^.*@(.*):[0-9]*:[0-9]*$", "mg");
+      var lastMatch = null;
+      do {
+        var match = re.exec(stack);
+        if (match != null) lastMatch = match;
+      } while (match != null);
+      return lastMatch[1];
+    }
+  }
+
+  // Adding a 'document' is dangerous since it invalidates the 'typeof document'
+  // test to see if we are running in the browser. It means that the runtime
+  // needs to do more precise checks.
+  // Note that we can't run "currentScript" right away, since that would give
+  // us the location of the preamble file. Instead we wait for the first access
+  // which should happen just before invoking main. At this point we are in
+  // the main file and setting the currentScript property is correct.
+  // Note that we cannot use `thisFileName()`, since that would give us the
+  // preamble and not the script file.
+  var cachedCurrentScript = null;
+  self.document = { get currentScript() {
+      if (cachedCurrentScript == null) {
+        cachedCurrentScript = {src: computeCurrentScript()};
+      }
+      return cachedCurrentScript;
+    }
+  };
+
   // Support for deferred loading.
   self.dartDeferredLibraryLoader = function(uri, successCallback, errorCallback) {
     try {
diff --git a/sdk/lib/_internal/compiler/js_lib/shared/embedded_names.dart b/sdk/lib/_internal/compiler/js_lib/shared/embedded_names.dart
index 8976873..0e45562 100644
--- a/sdk/lib/_internal/compiler/js_lib/shared/embedded_names.dart
+++ b/sdk/lib/_internal/compiler/js_lib/shared/embedded_names.dart
@@ -31,7 +31,6 @@
 const LIBRARIES = 'libraries';
 const FINISHED_CLASSES = 'finishedClasses';
 const ALL_CLASSES = 'allClasses';
-const METADATA = 'metadata';
 const INTERCEPTORS_BY_TAG = 'interceptorsByTag';
 const LEAF_TAGS = 'leafTags';
 const LAZIES = 'lazies';
@@ -46,8 +45,16 @@
 const DEFERRED_INITIALIZED = 'deferredInitialized';
 const PRECOMPILED = 'precompiled';
 
+/// The name of the embedded global for metadata.
+///
+/// Use [JsBuiltin.getMetadata] instead of directly accessing this embedded
+/// global.
+const METADATA = 'metadata';
+
 /// A list of types used in the program e.g. for reflection or encoding of
 /// function types.
+///
+/// Use [JsBuiltin.getType] instead of directly accessing this embedded global.
 const TYPES = 'types';
 
 /// Returns a function that creates a new Isolate (its static state).
@@ -89,14 +96,25 @@
 }
 
 enum JsBuiltin {
-   /// Returns the JavaScript constructor function for Dart's Object class.
-   /// This can be used for type tests, as in
-   ///
-   ///     var constructor = JS_BUILTIN('', JsBuiltin.dartObjectContructor);
-   ///     if (JS('bool', '# instanceof #', obj, constructor))
-   ///       ...
+  /// Returns the JavaScript constructor function for Dart's Object class.
+  /// This can be used for type tests, as in
+  ///
+  ///     var constructor = JS_BUILTIN('', JsBuiltin.dartObjectContructor);
+  ///     if (JS('bool', '# instanceof #', obj, constructor))
+  ///       ...
   dartObjectConstructor,
 
+  /// Returns the class name given an [isCheckProperty].
+  ///
+  /// This relies on a deterministic encoding of is-check properties (for
+  /// example `$isFoo` for a class `Foo`). In minified code the returned
+  /// classname is the minified name of the class.
+  ///
+  ///     JS_BUILTIN('returns:String;depends:none;effects:none',
+  ///                JsBuiltin.classNameFromIsCheckProperty,
+  ///                isCheckProperty);
+  classNameFromIsCheckProperty,
+
   /// Returns true if the given type is a function type. Returns false for
   /// the one `Function` type singleton. (See [isFunctionTypeSingleton]).
   ///
@@ -124,4 +142,27 @@
   ///
   ///     JS_BUILTIN('', JsBuiltin.rawRuntimeType, o)
   rawRuntimeType,
+
+  /// Returns whether the given type is a subtype of other.
+  ///
+  /// The argument `other` is the name of the potential supertype. It is
+  /// computed by `runtimeTypeToString`;
+  ///
+  /// *The `other` name must be passed in before the `type`.*
+  ///
+  ///     JS_BUILTIN('returns:bool;effects:none;depends:none',
+  ///                JsBuiltin.isSubtype, other, type);
+  isSubtype,
+
+  /// Returns the metadata of the given [index].
+  ///
+  ///     JS_BUILTIN('returns:var;effects:none;depends:none',
+  ///                JsBuiltin.getMetadata, index);
+  getMetadata,
+
+  /// Returns the type of the given [index].
+  ///
+  ///     JS_BUILTIN('returns:var;effects:none;depends:none',
+  ///                JsBuiltin.getType, index);
+  getType,
 }
diff --git a/sdk/lib/_internal/libraries.dart b/sdk/lib/_internal/libraries.dart
index 938c389..7cd70c2 100644
--- a/sdk/lib/_internal/libraries.dart
+++ b/sdk/lib/_internal/libraries.dart
@@ -54,6 +54,11 @@
       maturity: Maturity.STABLE,
       dart2jsPatchPath: "_internal/compiler/js_lib/core_patch.dart"),
 
+  "developer": const LibraryInfo(
+      "developer/developer.dart",
+      maturity: Maturity.UNSTABLE,
+      dart2jsPatchPath: "_internal/compiler/js_lib/developer_patch.dart"),
+
   "html": const LibraryInfo(
       "html/dartium/html_dartium.dart",
       category: "Client",
diff --git a/sdk/lib/_internal/pub/lib/src/barback/asset_environment.dart b/sdk/lib/_internal/pub/lib/src/barback/asset_environment.dart
index bfd97b3..a8a56f0 100644
--- a/sdk/lib/_internal/pub/lib/src/barback/asset_environment.dart
+++ b/sdk/lib/_internal/pub/lib/src/barback/asset_environment.dart
@@ -184,14 +184,10 @@
   /// Starts up the admin server on an appropriate port and returns it.
   ///
   /// This may only be called once on the build environment.
-  Future<AdminServer> startAdminServer([int port]) {
+  Future<AdminServer> startAdminServer(int port) {
     // Can only start once.
     assert(_adminServer == null);
 
-    // The admin server is bound to one before the base port by default, unless
-    // it's ephemeral in which case the admin port is too.
-    if (port == null) port = _basePort == 0 ? 0 : _basePort - 1;
-
     return AdminServer.bind(this, _hostname, port)
         .then((server) => _adminServer = server);
   }
diff --git a/sdk/lib/_internal/pub/lib/src/command/cache_add.dart b/sdk/lib/_internal/pub/lib/src/command/cache_add.dart
index 453ccbd..ae5c1da 100644
--- a/sdk/lib/_internal/pub/lib/src/command/cache_add.dart
+++ b/sdk/lib/_internal/pub/lib/src/command/cache_add.dart
@@ -30,7 +30,7 @@
         help: "Version constraint.");
   }
 
-  Future run() {
+  Future run() async {
     // Make sure there is a package.
     if (argResults.rest.isEmpty) {
       usageException("No package to add given.");
@@ -59,38 +59,36 @@
     var source = cache.sources["hosted"];
 
     // TODO(rnystrom): Allow specifying the server.
-    return source.getVersions(package, package).then((versions) {
-      versions = versions.where(constraint.allows).toList();
+    var pubspecs = await source.getVersions(package, package);
+    var versions = pubspecs.map((pubspec) => pubspec.version)
+        .where(constraint.allows).toList();
 
-      if (versions.isEmpty) {
-        // TODO(rnystrom): Show most recent unmatching version?
-        fail("Package $package has no versions that match $constraint.");
+    if (versions.isEmpty) {
+      // TODO(rnystrom): Show most recent unmatching version?
+      fail("Package $package has no versions that match $constraint.");
+    }
+
+    downloadVersion(version) async {
+      var id = new PackageId(package, source.name, version, package);
+      if (await cache.contains(id)) {
+        // TODO(rnystrom): Include source and description if not hosted.
+        // See solve_report.dart for code to harvest.
+        log.message("Already cached ${id.name} ${id.version}.");
+        return null;
       }
 
-      downloadVersion(Version version) {
-        var id = new PackageId(package, source.name, version, package);
-        return cache.contains(id).then((contained) {
-          if (contained) {
-            // TODO(rnystrom): Include source and description if not hosted.
-            // See solve_report.dart for code to harvest.
-            log.message("Already cached ${id.name} ${id.version}.");
-            return null;
-          }
+      // Download it.
+      await source.downloadToSystemCache(id);
+    }
 
-          // Download it.
-          return source.downloadToSystemCache(id);
-        });
-      }
-
-      if (argResults["all"]) {
-        // Install them in ascending order.
-        versions.sort();
-        return Future.forEach(versions, downloadVersion);
-      } else {
-        // Pick the best matching version.
-        versions.sort(Version.prioritize);
-        return downloadVersion(versions.last);
-      }
-    });
+    if (argResults["all"]) {
+      // Install them in ascending order.
+      versions.sort();
+      await Future.forEach(versions, downloadVersion);
+    } else {
+      // Pick the best matching version.
+      versions.sort(Version.prioritize);
+      await downloadVersion(versions.last);
+    }
   }
 }
diff --git a/sdk/lib/_internal/pub/lib/src/command/serve.dart b/sdk/lib/_internal/pub/lib/src/command/serve.dart
index d7e9de5..e43a9fc 100644
--- a/sdk/lib/_internal/pub/lib/src/command/serve.dart
+++ b/sdk/lib/_internal/pub/lib/src/command/serve.dart
@@ -98,15 +98,17 @@
     var directoryLength = sourceDirectories.map((dir) => dir.length)
         .reduce(math.max);
 
-    var server = await environment.startAdminServer(adminPort);
-    server.results.listen((_) {
-      // The admin server produces no result values.
-      assert(false);
-    }, onError: _fatalError);
+    if (adminPort != null) {
+      var server = await environment.startAdminServer(adminPort);
+      server.results.listen((_) {
+        // The admin server produces no result values.
+        assert(false);
+      }, onError: _fatalError);
 
-    if (logAdminUrl) {
-      log.message("Running admin server on "
-          "${log.bold('http://$hostname:${server.port}')}");
+      if (logAdminUrl) {
+        log.message("Running admin server on "
+                    "${log.bold('http://$hostname:${server.port}')}");
+      }
     }
 
     // Start up the servers. We pause updates while this is happening so
diff --git a/sdk/lib/_internal/pub/lib/src/solver/backtracking_solver.dart b/sdk/lib/_internal/pub/lib/src/solver/backtracking_solver.dart
index 73dfd5c..66a7b90 100644
--- a/sdk/lib/_internal/pub/lib/src/solver/backtracking_solver.dart
+++ b/sdk/lib/_internal/pub/lib/src/solver/backtracking_solver.dart
@@ -126,7 +126,7 @@
   ///
   /// Completes with a list of specific package versions if successful or an
   /// error if it failed to find a solution.
-  Future<SolveResult> solve() {
+  Future<SolveResult> solve() async {
     var stopwatch = new Stopwatch();
 
     _logParameters();
@@ -135,40 +135,36 @@
     var overrides = _overrides.values.toList();
     overrides.sort((a, b) => a.name.compareTo(b.name));
 
-    // TODO(nweiz): Use async/await here once
-    // https://github.com/dart-lang/async_await/issues/79 is fixed.
-    return new Future.sync(() {
+    try {
       stopwatch.start();
 
       // Pre-cache the root package's known pubspec.
       cache.cache(new PackageId.root(root), root.pubspec);
 
       _validateSdkConstraint(root.pubspec);
-      return _traverseSolution();
-    }).then((packages) {
+      var packages = await _traverseSolution();
+
       var pubspecs = new Map.fromIterable(packages,
           key: (id) => id.name,
           value: (id) => cache.getCachedPubspec(id));
 
-      return Future.wait(
-              packages.map((id) => sources[id.source].resolveId(id)))
-          .then((packages) {
-        return new SolveResult.success(sources, root, lockFile, packages,
-            overrides, pubspecs, _getAvailableVersions(packages),
-            attemptedSolutions);
-      });
-    }).catchError((error) {
-      if (error is! SolveFailure) throw error;
+      var resolved = await Future.wait(
+          packages.map((id) => sources[id.source].resolveId(id)));
+
+      return new SolveResult.success(sources, root, lockFile, resolved,
+          overrides, pubspecs, _getAvailableVersions(resolved),
+          attemptedSolutions);
+    } on SolveFailure catch (error) {
       // Wrap a failure in a result so we can attach some other data.
       return new SolveResult.failure(sources, root, lockFile, overrides,
           error, attemptedSolutions);
-    }).whenComplete(() {
+    } finally {
       // Gather some solving metrics.
       var buffer = new StringBuffer();
       buffer.writeln('${runtimeType} took ${stopwatch.elapsed} seconds.');
       buffer.writeln(cache.describeResults());
       log.solver(buffer);
-    });
+    }
   }
 
   /// Generates a map containing all of the known available versions for each
@@ -251,20 +247,19 @@
   /// If there are no more versions, continues to backtrack to previous
   /// selections, and so on. If there is nothing left to backtrack to,
   /// completes to the last failure that occurred.
-  Future<List<PackageId>> _traverseSolution() => resetStack(() {
-    return new Traverser(this).traverse().catchError((error) {
-      if (error is! SolveFailure) throw error;
+  Future<List<PackageId>> _traverseSolution() => resetStack(() async {
+    // Avoid starving the event queue by waiting for a timer-level event.
+    await new Future(() {});
 
-      return _backtrack(error).then((canTry) {
-        if (canTry) {
-          _attemptedSolutions++;
-          return _traverseSolution();
-        }
+    try {
+      return await new Traverser(this).traverse();
+    } on SolveFailure catch (error) {
+      // All out of solutions, so fail.
+      if (!(await _backtrack(error))) rethrow;
 
-        // All out of solutions, so fail.
-        throw error;
-      });
-    });
+      _attemptedSolutions++;
+      return await _traverseSolution();
+    }
   });
 
   /// Backtracks from the current failed solution and determines the next
@@ -275,9 +270,9 @@
   /// possible solution.
   ///
   /// Returns `true` if there is a new solution to try.
-  Future<bool> _backtrack(SolveFailure failure) {
+  Future<bool> _backtrack(SolveFailure failure) async {
     // Bail if there is nothing to backtrack to.
-    if (_selected.isEmpty) return new Future.value(false);
+    if (_selected.isEmpty) return false;
 
     // Mark any packages that may have led to this failure so that we know to
     // consider them when backtracking.
@@ -290,28 +285,22 @@
     }
 
     // Advance past the current version of the leaf-most package.
-    advanceVersion() {
+    while (!_selected.isEmpty) {
       _backjump(failure);
       var previous = _selected.last.current;
-      return _selected.last.advance().then((success) {
-        if (success) {
-          logSolve();
-          return true;
-        }
+      var success = await _selected.last.advance();
+      if (success) {
+        logSolve();
+        return true;
+      }
 
-        logSolve('$previous is last version, backtracking');
+      logSolve('$previous is last version, backtracking');
 
-        // That package has no more versions, so pop it and try the next one.
-        _selected.removeLast();
-        if (_selected.isEmpty) return false;
-
-        // If we got here, the leafmost package was discarded so we need to
-        // advance the next one.
-        return advanceVersion();
-      });
+      // That package has no more versions, so pop it and try the next one.
+      _selected.removeLast();
     }
 
-    return advanceVersion();
+    return false;
   }
 
   /// Walks the selected packages from most to least recent to determine which
@@ -381,6 +370,10 @@
 
     for (var i = 0; i < _selected.length; i++) {
       var id = _selected[i].current;
+      // TODO(nweiz): The "complex backtrack" test case in version_solver_test
+      // currently depends on this returning `null` for pubspecs that haven't
+      // been explicitly cached, but that's gross. We should make this resilient
+      // to more pubspecs being available.
       var pubspec = cache.getCachedPubspec(id);
       if (pubspec != null) addDependencies(id.name, pubspec.dependencies);
     }
@@ -486,155 +479,156 @@
   /// Completes to a list of package IDs if the traversal completed
   /// successfully and found a solution. Completes to an error if the traversal
   /// failed. Otherwise, recurses to the next package in the queue, etc.
-  Future<List<PackageId>> _traversePackage() {
-    if (_packages.isEmpty) {
-      // We traversed the whole graph. If we got here, we successfully found
-      // a solution.
-      return new Future<List<PackageId>>.value(_visited.toList());
-    }
-
-    var id = _packages.removeFirst();
-
-    // Don't visit the same package twice.
-    if (_visited.contains(id)) {
-      return _traversePackage();
-    }
-    _visited.add(id);
-
-    return _solver.cache.getPubspec(id).then((pubspec) {
-      _validateSdkConstraint(pubspec);
-
-      var deps = pubspec.dependencies.toSet();
-
-      if (id.isRoot) {
-        // Include dev dependencies of the root package.
-        deps.addAll(pubspec.devDependencies);
-
-        // Add all overrides. This ensures a dependency only present as an
-        // override is still included.
-        deps.addAll(_solver._overrides.values);
+  Future<List<PackageId>> _traversePackage() async {
+    // TODO(nweiz): Use a real while loop when issue 23394 is fixed.
+    await Future.doWhile(() async {
+      // Move past any packages we've already traversed.
+      while (_packages.isNotEmpty && _visited.contains(_packages.first)) {
+        _packages.removeFirst();
       }
 
-      // Replace any overridden dependencies.
-      deps = deps.map((dep) {
-        var override = _solver._overrides[dep.name];
-        if (override != null) return override;
+      // If there are no more packages to traverse, we've traversed the whole
+      // graph. If we got here, we successfully found a solution.
+      if (_packages.isEmpty) return false;
 
-        // Not overridden.
-        return dep;
-      }).toSet();
+      var id = _packages.removeFirst();
+      _visited.add(id);
+      await _traverseDeps(id, await _dependencyQueueFor(id));
+      return true;
+    });
 
-      // Make sure the package doesn't have any bad dependencies.
-      for (var dep in deps) {
-        if (!dep.isRoot && _solver.sources[dep.source] is UnknownSource) {
-          throw new UnknownSourceException(id.name,
-              [new Dependency(id.name, id.version, dep)]);
-        }
-      }
+    return _visited.toList();
+  }
 
-      return _traverseDeps(id, new DependencyQueue(_solver, deps));
-    }).catchError((error) {
-      if (error is! PackageNotFoundException) throw error;
-
+  Future<DependencyQueue> _dependencyQueueFor(PackageId id) async {
+    var pubspec;
+    try {
+      pubspec = await _solver.cache.getPubspec(id);
+    } on PackageNotFoundException {
       // We can only get here if the lockfile refers to a specific package
       // version that doesn't exist (probably because it was yanked).
       throw new NoVersionException(id.name, null, id.version, []);
-    });
+    }
+
+    _validateSdkConstraint(pubspec);
+
+    var deps = pubspec.dependencies.toSet();
+
+    if (id.isRoot) {
+      // Include dev dependencies of the root package.
+      deps.addAll(pubspec.devDependencies);
+
+      // Add all overrides. This ensures a dependency only present as an
+      // override is still included.
+      deps.addAll(_solver._overrides.values);
+    }
+
+    // Replace any overridden dependencies.
+    deps = deps.map((dep) {
+      var override = _solver._overrides[dep.name];
+      if (override != null) return override;
+
+      // Not overridden.
+      return dep;
+    }).toSet();
+
+    // Make sure the package doesn't have any bad dependencies.
+    for (var dep in deps) {
+      if (!dep.isRoot && _solver.sources[dep.source] is UnknownSource) {
+        throw new UnknownSourceException(id.name,
+            [new Dependency(id.name, id.version, dep)]);
+      }
+    }
+
+    return new DependencyQueue(_solver, deps);
   }
 
   /// Traverses the references that [depender] depends on, stored in [deps].
   ///
-  /// Desctructively modifies [deps]. Completes to a list of packages if the
-  /// traversal is complete. Completes it to an error if a failure occurred.
-  /// Otherwise, recurses.
-  Future<List<PackageId>> _traverseDeps(PackageId depender,
-      DependencyQueue deps) {
-    // Move onto the next package if we've traversed all of these references.
-    if (deps.isEmpty) return _traversePackage();
+  /// Desctructively modifies [deps].
+  Future _traverseDeps(PackageId depender, DependencyQueue deps) {
+    // TODO(nweiz): Use a real while loop when issue 23394 is fixed.
+    return Future.doWhile(() async {
+      if (deps.isEmpty) return false;
 
-    return resetStack(() {
-      return deps.advance().then((dep) {
-        var dependency = new Dependency(depender.name, depender.version, dep);
-        return _registerDependency(dependency).then((_) {
-          if (dep.name == "barback") return _addImplicitDependencies();
-        });
-      }).then((_) => _traverseDeps(depender, deps));
+      var dep = await deps.advance();
+      var dependency = new Dependency(depender.name, depender.version, dep);
+      await _registerDependency(dependency);
+      if (dep.name == "barback") await _addImplicitDependencies();
+      return true;
     });
   }
 
   /// Register [dependency]'s constraints on the package it depends on and
   /// enqueues the package for processing if necessary.
-  Future _registerDependency(Dependency dependency) {
-    return new Future.sync(() {
-      _validateDependency(dependency);
+  Future _registerDependency(Dependency dependency) async {
+    _validateDependency(dependency);
 
-      var dep = dependency.dep;
-      var dependencies = _getDependencies(dep.name);
-      dependencies.add(dependency);
+    var dep = dependency.dep;
+    var dependencies = _getDependencies(dep.name);
+    dependencies.add(dependency);
 
-      var constraint = _getConstraint(dep.name);
+    var constraint = _getConstraint(dep.name);
 
-      // See if it's possible for a package to match that constraint.
-      if (constraint.isEmpty) {
-        var constraints = dependencies
-            .map((dep) => "  ${dep.dep.constraint} from ${dep.depender}")
-            .join('\n');
-        _solver.logSolve(
-            'disjoint constraints on ${dep.name}:\n$constraints');
-        throw new DisjointConstraintException(dep.name, dependencies);
-      }
+    // See if it's possible for a package to match that constraint.
+    if (constraint.isEmpty) {
+      var constraints = dependencies
+          .map((dep) => "  ${dep.dep.constraint} from ${dep.depender}")
+          .join('\n');
+      _solver.logSolve(
+          'disjoint constraints on ${dep.name}:\n$constraints');
+      throw new DisjointConstraintException(dep.name, dependencies);
+    }
 
-      var selected = _validateSelected(dep, constraint);
-      if (selected != null) {
-        // The selected package version is good, so enqueue it to traverse
-        // into it.
-        _packages.add(selected);
-        return null;
-      }
+    var selected = _validateSelected(dep, constraint);
+    if (selected != null) {
+      // The selected package version is good, so enqueue it to traverse
+      // into it.
+      _packages.add(selected);
+      return;
+    }
 
-      // We haven't selected a version. Try all of the versions that match
-      // the constraints we currently have for this package.
-      var locked = _getValidLocked(dep.name);
+    // We haven't selected a version. Try all of the versions that match
+    // the constraints we currently have for this package.
+    var locked = _getValidLocked(dep.name);
 
-      return VersionQueue.create(locked, () {
-        return _getAllowedVersions(dep);
-      }).then((versions) => _packages.add(_solver.select(versions)));
-    });
+    var versions = await VersionQueue.create(
+        locked, () => _getAllowedVersions(dep));
+    _packages.add(_solver.select(versions));
   }
 
   /// Gets all versions of [dep] that match the current constraints placed on
   /// it.
-  Future<Iterable<PackageId>> _getAllowedVersions(PackageDep dep) {
+  Future<Iterable<PackageId>> _getAllowedVersions(PackageDep dep) async {
     var constraint = _getConstraint(dep.name);
-    return _solver.cache.getVersions(dep.toRef()).then((versions) {
-      var allowed = versions.where((id) => constraint.allows(id.version));
+    var versions;
+    try {
+      versions = await _solver.cache.getVersions(dep.toRef());
+    } on PackageNotFoundException catch (error) {
+      // Show the user why the package was being requested.
+      throw new DependencyNotFoundException(
+          dep.name, error, _getDependencies(dep.name));
+    }
 
-      if (allowed.isEmpty) {
-        _solver.logSolve('no versions for ${dep.name} match $constraint');
-        throw new NoVersionException(dep.name, null, constraint,
-            _getDependencies(dep.name));
-      }
+    var allowed = versions.where((id) => constraint.allows(id.version));
 
-      // If we're doing an upgrade on this package, only allow the latest
-      // version.
-      if (_solver._forceLatest.contains(dep.name)) allowed = [allowed.first];
+    if (allowed.isEmpty) {
+      _solver.logSolve('no versions for ${dep.name} match $constraint');
+      throw new NoVersionException(dep.name, null, constraint,
+          _getDependencies(dep.name));
+    }
 
-      // Remove the locked version, if any, since that was already handled.
-      var locked = _getValidLocked(dep.name);
-      if (locked != null) {
-        allowed = allowed.where((dep) => dep.version != locked.version);
-      }
+    // If we're doing an upgrade on this package, only allow the latest
+    // version.
+    if (_solver._forceLatest.contains(dep.name)) allowed = [allowed.first];
 
-      return allowed;
-    }).catchError((error, stackTrace) {
-      if (error is PackageNotFoundException) {
-        // Show the user why the package was being requested.
-        throw new DependencyNotFoundException(
-            dep.name, error, _getDependencies(dep.name));
-      }
+    // Remove the locked version, if any, since that was already handled.
+    var locked = _getValidLocked(dep.name);
+    if (locked != null) {
+      allowed = allowed.where((dep) => dep.version != locked.version);
+    }
 
-      throw error;
-    });
+    return allowed;
   }
 
   /// Ensures that dependency [dep] from [depender] is consistent with the
@@ -689,11 +683,11 @@
   ///
   /// Pub has an implicit version constraint on barback and various other
   /// packages used in barback's plugin isolate.
-  Future _addImplicitDependencies() {
+  Future _addImplicitDependencies() async {
     /// Ensure we only add the barback dependency once.
-    if (_getDependencies("barback").length != 1) return new Future.value();
+    if (_getDependencies("barback").length != 1) return;
 
-    return Future.wait(barback.pubConstraints.keys.map((depName) {
+    await Future.wait(barback.pubConstraints.keys.map((depName) {
       var constraint = barback.pubConstraints[depName];
       _solver.logSolve('add implicit $constraint pub dependency on '
           '$depName');
diff --git a/sdk/lib/_internal/pub/lib/src/solver/dependency_queue.dart b/sdk/lib/_internal/pub/lib/src/solver/dependency_queue.dart
index b215247..e802154 100644
--- a/sdk/lib/_internal/pub/lib/src/solver/dependency_queue.dart
+++ b/sdk/lib/_internal/pub/lib/src/solver/dependency_queue.dart
@@ -80,16 +80,13 @@
   /// It is an error to call this if [isEmpty] returns `true`. Note that this
   /// function is *not* re-entrant. You should only advance after the previous
   /// advance has completed.
-  Future<PackageDep> advance() {
+  Future<PackageDep> advance() async {
     // Emit the sorted ones first.
-    if (_presorted.isNotEmpty) {
-      return new Future.value(_presorted.removeFirst());
-    }
+    if (_presorted.isNotEmpty) return _presorted.removeFirst();
 
     // Sort the remaining packages when we need the first one.
-    if (!_isSorted) return _sort().then((_) => _remaining.removeAt(0));
-
-    return new Future.value(_remaining.removeAt(0));
+    if (!_isSorted) await _sort();
+    return _remaining.removeAt(0);
   }
 
   /// Sorts the unselected packages by number of versions and name.
@@ -123,32 +120,31 @@
 
   /// Given a dependency, returns a future that completes to the number of
   /// versions available for it.
-  Future<int> _getNumVersions(PackageDep dep) {
+  Future<int> _getNumVersions(PackageDep dep) async {
     // There is only ever one version of the root package.
-    if (dep.isRoot) {
-      return new Future.value(1);
-    }
+    if (dep.isRoot) return 1;
 
-    return _solver.cache.getVersions(dep.toRef()).then((versions) {
-      // If the root package depends on this one, ignore versions that don't
-      // match that constraint. Since the root package's dependency constraints
-      // won't change during solving, we can safely filter out packages that
-      // don't meet it.
-      for (var rootDep in _solver.root.immediateDependencies) {
-        if (rootDep.name == dep.name) {
-          versions = versions.where(
-              (id) => rootDep.constraint.allows(id.version));
-          break;
-        }
-      }
-
-      return versions.length;
-    }).catchError((error, trace) {
+    var versions;
+    try {
+      versions = await _solver.cache.getVersions(dep.toRef());
+    } catch (error, stackTrace) {
       // If it fails for any reason, just treat that as no versions. This
       // will sort this reference higher so that we can traverse into it
       // and report the error more properly.
-      log.solver("Could not get versions for $dep:\n$error\n\n$trace");
+      log.solver("Could not get versions for $dep:\n$error\n\n$stackTrace");
       return 0;
-    });
+    }
+
+    // If the root package depends on this one, ignore versions that don't match
+    // that constraint. Since the root package's dependency constraints won't
+    // change during solving, we can safely filter out packages that don't meet
+    // it.
+    for (var rootDep in _solver.root.immediateDependencies) {
+      if (rootDep.name != dep.name) continue;
+      return versions.where((id) => rootDep.constraint.allows(id.version))
+          .length;
+    }
+
+    return versions.length;
   }
 }
diff --git a/sdk/lib/_internal/pub/lib/src/solver/version_queue.dart b/sdk/lib/_internal/pub/lib/src/solver/version_queue.dart
index 78fa587..a6723aa 100644
--- a/sdk/lib/_internal/pub/lib/src/solver/version_queue.dart
+++ b/sdk/lib/_internal/pub/lib/src/solver/version_queue.dart
@@ -56,16 +56,13 @@
   /// synchronously. If there is no locked version, we need to get the list of
   /// versions asynchronously before we can determine what the first one is.
   static Future<VersionQueue> create(PackageId locked,
-      PackageIdGenerator allowedGenerator) {
+      PackageIdGenerator allowedGenerator) async {
     var versions = new VersionQueue._(locked, allowedGenerator);
 
-    // If there is a locked version, it's the current one so it's synchronously
-    // available now.
-    if (locked != null) return new Future.value(versions);
-
-    // Otherwise, the current version needs to be calculated before we can
+    // If there isn't a locked version, it needs to be calculated before we can
     // return.
-    return versions._calculateAllowed().then((_) => versions);
+    if (locked == null) await versions._calculateAllowed();
+    return versions;
   }
 
   VersionQueue._(this._locked, this._allowedGenerator);
@@ -74,7 +71,7 @@
   ///
   /// Returns `true` if it moved to a new version (which can be accessed from
   /// [current]. Returns `false` if there are no more versions.
-  Future<bool> advance() {
+  Future<bool> advance() async {
     // Any failure was the fault of the previous version, not necessarily the
     // new one.
     _hasFailed = false;
@@ -83,15 +80,14 @@
     if (_locked != null) {
       // Advancing past the locked version, so need to load the others now
       // so that [current] is available.
-      return _calculateAllowed().then((_) {
-        _locked = null;
-        return _allowed.isNotEmpty;
-      });
+      await _calculateAllowed();
+      _locked = null;
+    } else {
+      // Move to the next allowed version.
+      _allowed.removeFirst();
     }
 
-    // Move to the next allowed version.
-    _allowed.removeFirst();
-    return new Future.value(_allowed.isNotEmpty);
+    return _allowed.isNotEmpty;
   }
 
   /// Marks the selected version as being directly or indirectly responsible
@@ -102,9 +98,8 @@
 
   /// Determines the list of allowed versions matching its constraint and places
   /// them in [_allowed].
-  Future _calculateAllowed() {
-    return _allowedGenerator().then((allowed) {
-      _allowed = new Queue<PackageId>.from(allowed);
-    });
+  Future _calculateAllowed() async {
+    var allowed = await _allowedGenerator();
+    _allowed = new Queue<PackageId>.from(allowed);
   }
 }
\ No newline at end of file
diff --git a/sdk/lib/_internal/pub/lib/src/solver/version_solver.dart b/sdk/lib/_internal/pub/lib/src/solver/version_solver.dart
index 0a71f00..0a10c9d 100644
--- a/sdk/lib/_internal/pub/lib/src/solver/version_solver.dart
+++ b/sdk/lib/_internal/pub/lib/src/solver/version_solver.dart
@@ -139,7 +139,7 @@
 class PubspecCache {
   final SourceRegistry _sources;
 
-  /// The already-requested cached version lists.
+  /// The already-requested cached pubspec lists.
   final _versions = new Map<PackageRef, List<PackageId>>();
 
   /// The errors from failed version list requests.
@@ -148,6 +148,12 @@
   /// The already-requested cached pubspecs.
   final _pubspecs = new Map<PackageId, Pubspec>();
 
+  // TODO(nweiz): Currently, if [getCachedPubspec] returns pubspecs cached via
+  // [getVersions], the "complex backtrack" test case in version_solver_test
+  // fails. Fix that. See also [BacktrackingSolver._getTransitiveDependers].
+  /// The set of package ids for which [getPubspec] has been explicitly called.
+  final _explicitlyCached = new Set<PackageId>();
+
   /// The type of version resolution that was run.
   final SolveType _type;
 
@@ -175,25 +181,27 @@
   }
 
   /// Loads the pubspec for the package identified by [id].
-  Future<Pubspec> getPubspec(PackageId id) {
+  Future<Pubspec> getPubspec(PackageId id) async {
+    _explicitlyCached.add(id);
+
     // Complete immediately if it's already cached.
     if (_pubspecs.containsKey(id)) {
       _pubspecCacheHits++;
-      return new Future<Pubspec>.value(_pubspecs[id]);
+      return _pubspecs[id];
     }
 
     _pubspecCacheMisses++;
 
     var source = _sources[id.source];
-    return source.describe(id).then((pubspec) {
-      _pubspecs[id] = pubspec;
-      return pubspec;
-    });
+    var pubspec = await source.describe(id);
+    _pubspecs[id] = pubspec;
+    return pubspec;
   }
 
   /// Returns the previously cached pubspec for the package identified by [id]
   /// or returns `null` if not in the cache.
-  Pubspec getCachedPubspec(PackageId id) => _pubspecs[id];
+  Pubspec getCachedPubspec(PackageId id) =>
+      _explicitlyCached.contains(id) ? _pubspecs[id] : null;
 
   /// Gets the list of versions for [package].
   ///
@@ -201,7 +209,7 @@
   /// versions (i.e. ones without a prerelease suffix) before pre-release
   /// versions. This ensures that the solver prefers stable packages over
   /// unstable ones.
-  Future<List<PackageId>> getVersions(PackageRef package) {
+  Future<List<PackageId>> getVersions(PackageRef package) async {
     if (package.isRoot) {
       throw new StateError("Cannot get versions for root package $package.");
     }
@@ -210,36 +218,45 @@
     var versions = _versions[package];
     if (versions != null) {
       _versionCacheHits++;
-      return new Future.value(versions);
+      return versions;
     }
 
     // See if we cached a failure.
     var error = _versionErrors[package];
     if (error != null) {
       _versionCacheHits++;
-      return new Future.error(error.first, error.last);
+      await new Future.error(error.first, error.last);
     }
 
     _versionCacheMisses++;
 
     var source = _sources[package.source];
-    return source.getVersions(package.name, package.description)
-        .then((versions) {
-      // Sort by priority so we try preferred versions first.
-      versions.sort(_type == SolveType.DOWNGRADE ? Version.antiprioritize :
-          Version.prioritize);
-
-      var ids = versions.reversed.map(
-          (version) => package.atVersion(version)).toList();
-      _versions[package] = ids;
-      return ids;
-    }).catchError((error, trace) {
+    var pubspecs;
+    try {
+      pubspecs = await source.getVersions(package.name, package.description);
+    } catch (error, stackTrace) {
       // If an error occurs, cache that too. We only want to do one request
       // for any given package, successful or not.
-      log.solver("Could not get versions for $package:\n$error\n\n$trace");
-      _versionErrors[package] = new Pair(error, new Chain.forTrace(trace));
+      log.solver("Could not get versions for $package:\n$error\n\n$stackTrace");
+      _versionErrors[package] = new Pair(error, new Chain.forTrace(stackTrace));
       throw error;
+    }
+
+    // Sort by priority so we try preferred versions first.
+    pubspecs.sort((pubspec1, pubspec2) {
+      return _type == SolveType.DOWNGRADE
+          ? Version.antiprioritize(pubspec1.version, pubspec2.version)
+          : Version.prioritize(pubspec1.version, pubspec2.version);
     });
+
+    var ids = pubspecs.reversed.map((pubspec) {
+      var id = package.atVersion(pubspec.version);
+      // Eagerly cache the pubspec now since we have it.
+      _pubspecs[id] = pubspec;
+      return id;
+    }).toList();
+    _versions[package] = ids;
+    return ids;
   }
 
   /// Returns the previously cached list of versions for the package identified
diff --git a/sdk/lib/_internal/pub/lib/src/source.dart b/sdk/lib/_internal/pub/lib/src/source.dart
index 7affb68..85218d3 100644
--- a/sdk/lib/_internal/pub/lib/src/source.dart
+++ b/sdk/lib/_internal/pub/lib/src/source.dart
@@ -57,7 +57,7 @@
     this._systemCache = systemCache;
   }
 
-  /// Get the list of all versions that exist for the package described by
+  /// Get the pubspecs of all versions that exist for the package described by
   /// [description].
   ///
   /// [name] is the expected name of the package.
@@ -69,9 +69,9 @@
   ///
   /// By default, this assumes that each description has a single version and
   /// uses [describe] to get that version.
-  Future<List<Version>> getVersions(String name, description) {
+  Future<List<Pubspec>> getVersions(String name, description) async {
     var id = new PackageId(name, this.name, Version.none, description);
-    return describe(id).then((pubspec) => [pubspec.version]);
+    return [await describe(id)];
   }
 
   /// Loads the (possibly remote) pubspec for the package version identified by
diff --git a/sdk/lib/_internal/pub/lib/src/source/hosted.dart b/sdk/lib/_internal/pub/lib/src/source/hosted.dart
index f1649d1..c9ab68e 100644
--- a/sdk/lib/_internal/pub/lib/src/source/hosted.dart
+++ b/sdk/lib/_internal/pub/lib/src/source/hosted.dart
@@ -37,43 +37,48 @@
 
   /// Downloads a list of all versions of a package that are available from the
   /// site.
-  Future<List<Version>> getVersions(String name, description) {
+  Future<List<Pubspec>> getVersions(String name, description) async {
     var url = _makeUrl(description,
         (server, package) => "$server/api/packages/$package");
 
     log.io("Get versions from $url.");
-    return httpClient.read(url, headers: PUB_API_HEADERS).then((body) {
-      var doc = JSON.decode(body);
-      return doc['versions']
-          .map((version) => new Version.parse(version['version']))
-          .toList();
-    }).catchError((ex, stackTrace) {
+
+    var body;
+    try {
+      body = await httpClient.read(url, headers: PUB_API_HEADERS);
+    } catch (error, stackTrace) {
       var parsed = _parseDescription(description);
-      _throwFriendlyError(ex, stackTrace, parsed.first, parsed.last);
-    });
+      _throwFriendlyError(error, stackTrace, parsed.first, parsed.last);
+    }
+
+    var doc = JSON.decode(body);
+    return doc['versions'].map((map) {
+      return new Pubspec.fromMap(
+          map['pubspec'], systemCache.sources,
+          expectedName: name, location: url);
+    }).toList();
   }
 
   /// Downloads and parses the pubspec for a specific version of a package that
   /// is available from the site.
-  Future<Pubspec> describeUncached(PackageId id) {
+  Future<Pubspec> describeUncached(PackageId id) async {
     // Request it from the server.
     var url = _makeVersionUrl(id, (server, package, version) =>
         "$server/api/packages/$package/versions/$version");
 
     log.io("Describe package at $url.");
-    return httpClient.read(url, headers: PUB_API_HEADERS).then((version) {
-      version = JSON.decode(version);
-
-      // TODO(rnystrom): After this is pulled down, we could place it in
-      // a secondary cache of just pubspecs. This would let us have a
-      // persistent cache for pubspecs for packages that haven't actually
-      // been downloaded.
-      return new Pubspec.fromMap(version['pubspec'], systemCache.sources,
-          expectedName: id.name, location: url);
-    }).catchError((ex, stackTrace) {
+    var version;
+    try {
+      version = JSON.decode(
+          await httpClient.read(url, headers: PUB_API_HEADERS));
+    } catch (error, stackTrace) {
       var parsed = _parseDescription(id.description);
-      _throwFriendlyError(ex, stackTrace, id.name, parsed.last);
-    });
+      _throwFriendlyError(error, stackTrace, id.name, parsed.last);
+    }
+
+    return new Pubspec.fromMap(
+        version['pubspec'], systemCache.sources,
+        expectedName: id.name, location: url);
   }
 
   /// Downloads the package identified by [id] to the system cache.
@@ -236,22 +241,20 @@
 /// no network access.
 class OfflineHostedSource extends HostedSource {
   /// Gets the list of all versions of [name] that are in the system cache.
-  Future<List<Version>> getVersions(String name, description) {
-    return newFuture(() {
-      var parsed = _parseDescription(description);
-      var server = parsed.last;
-      log.io("Finding versions of $name in "
-             "$systemCacheRoot/${_urlToDirectory(server)}");
-      return _getCachedPackagesInDirectory(_urlToDirectory(server))
-          .where((package) => package.name == name)
-          .map((package) => package.version)
-          .toList();
-    }).then((versions) {
-      // If there are no versions in the cache, report a clearer error.
-      if (versions.isEmpty) fail("Could not find package $name in cache.");
+  Future<List<Pubspec>> getVersions(String name, description) async {
+    var parsed = _parseDescription(description);
+    var server = parsed.last;
+    log.io("Finding versions of $name in "
+        "$systemCacheRoot/${_urlToDirectory(server)}");
+    var versions = await _getCachedPackagesInDirectory(_urlToDirectory(server))
+        .where((package) => package.name == name)
+        .map((package) => package.pubspec)
+        .toList();
 
-      return versions;
-    });
+    // If there are no versions in the cache, report a clearer error.
+    if (versions.isEmpty) fail("Could not find package $name in cache.");
+
+    return versions;
   }
 
   Future<bool> _download(String server, String package, Version version,
diff --git a/sdk/lib/_internal/pub/lib/src/validator/dependency.dart b/sdk/lib/_internal/pub/lib/src/validator/dependency.dart
index fe30ac5..8e8ea84 100644
--- a/sdk/lib/_internal/pub/lib/src/validator/dependency.dart
+++ b/sdk/lib/_internal/pub/lib/src/validator/dependency.dart
@@ -64,37 +64,41 @@
   }
 
   /// Warn that dependencies should use the hosted source.
-  Future _warnAboutSource(PackageDep dep) {
-    return entrypoint.cache.sources['hosted']
-        .getVersions(dep.name, dep.name)
-        .catchError((e) => <Version>[])
-        .then((versions) {
-      var constraint;
-      var primary = Version.primary(versions);
-      if (primary != null) {
-        constraint = _constraintForVersion(primary);
-      } else {
-        constraint = dep.constraint.toString();
-        if (!dep.constraint.isAny && dep.constraint is! Version) {
-          constraint = '"$constraint"';
-        }
-      }
+  Future _warnAboutSource(PackageDep dep) async {
+    var versions;
+    try {
+      var pubspecs = await entrypoint.cache.sources['hosted']
+          .getVersions(dep.name, dep.name);
+      versions = pubspecs.map((pubspec) => pubspec.version).toList();
+    } catch (error) {
+      versions = [];
+    }
 
-      // Path sources are errors. Other sources are just warnings.
-      var messages = warnings;
-      if (dep.source == "path") {
-        messages = errors;
+    var constraint;
+    var primary = Version.primary(versions);
+    if (primary != null) {
+      constraint = _constraintForVersion(primary);
+    } else {
+      constraint = dep.constraint.toString();
+      if (!dep.constraint.isAny && dep.constraint is! Version) {
+        constraint = '"$constraint"';
       }
+    }
 
-      messages.add('Don\'t depend on "${dep.name}" from the ${dep.source} '
-              'source. Use the hosted source instead. For example:\n'
-          '\n'
-          'dependencies:\n'
-          '  ${dep.name}: $constraint\n'
-          '\n'
-          'Using the hosted source ensures that everyone can download your '
-              'package\'s dependencies along with your package.');
-    });
+    // Path sources are errors. Other sources are just warnings.
+    var messages = warnings;
+    if (dep.source == "path") {
+      messages = errors;
+    }
+
+    messages.add('Don\'t depend on "${dep.name}" from the ${dep.source} '
+            'source. Use the hosted source instead. For example:\n'
+        '\n'
+        'dependencies:\n'
+        '  ${dep.name}: $constraint\n'
+        '\n'
+        'Using the hosted source ensures that everyone can download your '
+            'package\'s dependencies along with your package.');
   }
 
   /// Warn that dependencies should have version constraints.
diff --git a/sdk/lib/_internal/pub/pub.status b/sdk/lib/_internal/pub/pub.status
index 5571320..8776cae 100644
--- a/sdk/lib/_internal/pub/pub.status
+++ b/sdk/lib/_internal/pub/pub.status
@@ -7,7 +7,7 @@
 test/transformer/loads_a_diamond_transformer_dependency_graph_test: Pass, Slow
 
 # Pub only runs on the VM, so just rule out all compilers.
-[ $compiler == dart2js || $compiler == dart2dart ]
+[ $compiler == dart2js ]
 *: Skip
 
 # Pub only runs on the standalone VM, not the browser.
diff --git a/sdk/lib/_internal/pub/test/get/hosted/avoid_network_requests_test.dart b/sdk/lib/_internal/pub/test/get/hosted/avoid_network_requests_test.dart
index 27ccca3..c651b8f 100644
--- a/sdk/lib/_internal/pub/test/get/hosted/avoid_network_requests_test.dart
+++ b/sdk/lib/_internal/pub/test/get/hosted/avoid_network_requests_test.dart
@@ -53,8 +53,6 @@
       expect(paths, unorderedEquals([
         // Bar should be requested because it's new, but not foo.
         "api/packages/bar",
-        // Should only request the most recent version.
-        "api/packages/bar/versions/1.2.0",
         // Need to download it.
         "packages/bar/versions/1.2.0.tar.gz"
       ]));
diff --git a/sdk/lib/_internal/pub/test/serve/utils.dart b/sdk/lib/_internal/pub/test/serve/utils.dart
index f84eb9a..be87afc 100644
--- a/sdk/lib/_internal/pub/test/serve/utils.dart
+++ b/sdk/lib/_internal/pub/test/serve/utils.dart
@@ -155,6 +155,7 @@
     "serve",
     "--port=0", // Use port 0 to get an ephemeral port.
     "--force-poll",
+    "--admin-port=0", // Use port 0 to get an ephemeral port.
     "--log-admin-url"
   ];
 
@@ -223,6 +224,7 @@
 /// Parses the port number from the "Running admin server on localhost:1234"
 /// line printed by pub serve.
 bool _parseAdminPort(String line) {
+  expect(line, startsWith('Running admin server on'));
   var match = _parsePortRegExp.firstMatch(line);
   if (match == null) return false;
   _adminPort = int.parse(match[2]);
diff --git a/sdk/lib/_internal/pub/test/version_solver_test.dart b/sdk/lib/_internal/pub/test/version_solver_test.dart
index cdadb67..cee9a96 100644
--- a/sdk/lib/_internal/pub/test/version_solver_test.dart
+++ b/sdk/lib/_internal/pub/test/version_solver_test.dart
@@ -1377,7 +1377,7 @@
     return new Future.value('${id.name}-${id.version}');
   }
 
-  Future<List<Version>> getVersions(String name, String description) {
+  Future<List<Pubspec>> getVersions(String name, String description) {
     return new Future.sync(() {
       // Make sure the solver doesn't request the same thing twice.
       if (_requestedVersions.contains(description)) {
@@ -1392,7 +1392,8 @@
             '"$description".');
       }
 
-      return _packages[description].keys.toList();
+      return _packages[description].values
+          .map((package) => package.pubspec).toList();
     });
   }
 
diff --git a/sdk/lib/collection/hash_map.dart b/sdk/lib/collection/hash_map.dart
index e67fa77..6fb73a5 100644
--- a/sdk/lib/collection/hash_map.dart
+++ b/sdk/lib/collection/hash_map.dart
@@ -56,15 +56,32 @@
    * The [isValidKey] function defaults to just testing if the object is a
    * [K] instance.
    *
+   * Example:
+   *
+   *     new HashMap<int,int>(equals: (int a, int b) => (b - a) % 5 == 0,
+   *                          hashCode: (int e) => e % 5)
+   *
+   * This example map does not need an `isValidKey` function to be passed.
+   * The default function accepts only `int` values, which can safely be
+   * passed to both the `equals` and `hashCode` functions.
+   *
+   * If neither `equals`, `hashCode`, nor `isValidKey` is provided,
+   * the default `isValidKey` instead accepts all keys.
+   * The default equality and hashcode operations are assumed to work on all
+   * objects.
+   *
+   * Likewise, if `equals` is [identical], `hashCode` is [identityHashCode]
+   * and `isValidKey` is omitted, the resulting map is identity based,
+   * and the `isValidKey` defaults to accepting all keys.
+   * Such a map can be created directly using [HashMap.identity].
+   *
    * The used `equals` and `hashCode` method should always be consistent,
    * so that if `equals(a, b)` then `hashCode(a) == hashCode(b)`. The hash
    * of an object, or what it compares equal to, should not change while the
-   * object is in the table. If it does change, the result is unpredictable.
+   * object is a key in the map. If it does change, the result is unpredictable.
    *
    * If you supply one of [equals] and [hashCode],
    * you should generally also to supply the other.
-   * An example would be using [identical] and [identityHashCode],
-   * which is equivalent to using the shorthand [HashMap.identity]).
    */
   external factory HashMap({bool equals(K key1, K key2),
                             int hashCode(K key),
@@ -75,7 +92,8 @@
    *
    * Effectively a shorthand for:
    *
-   *     new HashMap(equals: identical, hashCode: identityHashCodeOf)
+   *     new HashMap(equals: identical,
+   *                 hashCode: identityHashCodeOf)
    */
   external factory HashMap.identity();
 
diff --git a/sdk/lib/collection/hash_set.dart b/sdk/lib/collection/hash_set.dart
index 53a96f0..bb76082 100644
--- a/sdk/lib/collection/hash_set.dart
+++ b/sdk/lib/collection/hash_set.dart
@@ -55,21 +55,41 @@
    *
    * The provided [equals] must define a stable equivalence relation, and
    * [hashCode] must be consistent with [equals]. If the [equals] or [hashCode]
-   * methods won't work on all objects, but only to instances of E, the
-   * [isValidKey] predicate can be used to restrict the keys that they are
-   * applied to. Any key for which [isValidKey] returns false is automatically
-   * assumed to not be in the set.
+   * methods won't work on all objects, but only on some instances of E, the
+   * [isValidKey] predicate can be used to restrict the keys that the functions
+   * are applied to.
+   * Any key for which [isValidKey] returns false is automatically assumed
+   * to not be in the set when asking `contains`.
    *
    * If [equals] or [hashCode] are omitted, the set uses
-   * the objects' intrinsic [Object.operator==] and [Object.hashCode].
-   *
-   * If [isValidKey] is omitted, it defaults to testing if the object is an
-   * [E] instance.
+   * the elements' intrinsic [Object.operator==] and [Object.hashCode].
    *
    * If you supply one of [equals] and [hashCode],
    * you should generally also to supply the other.
-   * An example would be using [identical] and [identityHashCode],
-   * which is equivalent to using the shorthand [LinkedSet.identity]).
+   *
+   * If the supplied `equals` or `hashCode` functions won't work on all [E]
+   * objects, and the map will be used in a setting where a non-`E` object
+   * is passed to, e.g., `contains`, then the [isValidKey] function should
+   * also be supplied.
+   *
+   * If [isValidKey] is omitted, it defaults to testing if the object is an
+   * [E] instance. That means that:
+   *
+   *     new HashSet<int>(equals: (int e1, int e2) => (e1 - e2) % 5 == 0,
+   *                      hashCode: (int e) => e % 5)
+   *
+   * does not need an `isValidKey` argument, because it defaults to only
+   * accepting `int` values which are accepted by both `equals` and `hashCode`.
+   *
+   * If neither `equals`, `hashCode`, nor `isValidKey` is provided,
+   * the default `isValidKey` instead accepts all values.
+   * The default equality and hashcode operations are assumed to work on all
+   * objects.
+   *
+   * Likewise, if `equals` is [identical], `hashCode` is [identityHashCode]
+   * and `isValidKey` is omitted, the resulting set is identity based,
+   * and the `isValidKey` defaults to accepting all keys.
+   * Such a map can be created directly using [HashSet.identity].
    */
   external factory HashSet({bool equals(E e1, E e2),
                             int hashCode(E e),
@@ -80,7 +100,8 @@
    *
    * Effectively a shorthand for:
    *
-   *     new HashSet(equals: identical, hashCode: identityHashCodeOf)
+   *     new HashSet<E>(equals: identical,
+   *                    hashCode: identityHashCodeOf)
    */
   external factory HashSet.identity();
 
diff --git a/sdk/lib/collection/iterable.dart b/sdk/lib/collection/iterable.dart
index 3290682..8556595 100644
--- a/sdk/lib/collection/iterable.dart
+++ b/sdk/lib/collection/iterable.dart
@@ -90,7 +90,7 @@
   Set<E> toSet() => new Set<E>.from(this);
 
   int get length {
-    assert(this is! EfficientLength);
+    assert(this is! EfficientLengthIterable);
     int count = 0;
     Iterator it = iterator;
     while (it.moveNext()) {
@@ -397,3 +397,34 @@
   parts.add(penultimateString);
   parts.add(ultimateString);
 }
+
+
+/**
+ * Marker interface for [Iterable] implementations that have an efficient
+ * [length] getter.
+ *
+ * An iterable implementing this interface should have an "efficient"
+ * implementation of `length` that doesn't trigger iteration of the
+ * iterable. Being efficient doesn't necessarily require being constant
+ * time, but should at least attempt to have have execution time that is
+ * better than linear in the elements of the iterable.
+ *
+ * Methods that worry about reading the length of an `Iterable` because it
+ * may be inefficient or may trigger side-effects, or may even never complete,
+ * can first check if the iterable `is EfficientLengthIterable`,
+ * and if so, use [length] without those concerns.
+ *
+ * The `EfficientLengthIterable` type should never be used as a type
+ * assertion - neither as argument type or return type of a function.
+ * Always use [Iterable] for the type and just document the performance if it
+ * is relevant. This avoids needlessly restricting the values that can be used.
+ */
+abstract class EfficientLengthIterable<T> implements Iterable<T> {
+  /**
+   * Returns the number of elements in the iterable.
+   *
+   * This is an efficient operation that doesn't iterate through
+   * the elements.
+   */
+  int get length;
+}
diff --git a/sdk/lib/collection/linked_hash_map.dart b/sdk/lib/collection/linked_hash_map.dart
index e1bca0f..e06f9e6 100644
--- a/sdk/lib/collection/linked_hash_map.dart
+++ b/sdk/lib/collection/linked_hash_map.dart
@@ -43,6 +43,25 @@
    * The [isValidKey] function defaults to just testing if the object is a
    * [K] instance.
    *
+   * Example:
+   *
+   *     new LinkedHashMap<int,int>(equals: (int a, int b) => (b - a) % 5 == 0,
+   *                                hashCode: (int e) => e % 5)
+   *
+   * This example map does not need an `isValidKey` function to be passed.
+   * The default function accepts only `int` values, which can safely be
+   * passed to both the `equals` and `hashCode` functions.
+   *
+   * If neither `equals`, `hashCode`, nor `isValidKey` is provided,
+   * the default `isValidKey` instead accepts all keys.
+   * The default equality and hashcode operations are assumed to work on all
+   * objects.
+   *
+   * Likewise, if `equals` is [identical], `hashCode` is [identityHashCode]
+   * and `isValidKey` is omitted, the resulting map is identity based,
+   * and the `isValidKey` defaults to accepting all keys.
+   * Such a map can be created directly using [LinkedHashMap.identity].
+   *
    * The used `equals` and `hashCode` method should always be consistent,
    * so that if `equals(a, b)` then `hashCode(a) == hashCode(b)`. The hash
    * of an object, or what it compares equal to, should not change while the
@@ -50,19 +69,18 @@
    *
    * If you supply one of [equals] and [hashCode],
    * you should generally also to supply the other.
-   * An example would be using [identical] and [identityHashCode],
-   * which is equivalent to using the shorthand [LinkedHashMap.identity]).
    */
-  external factory LinkedHashMap({ bool equals(K key1, K key2),
-                                   int hashCode(K key),
-                                   bool isValidKey(potentialKey) });
+  external factory LinkedHashMap({bool equals(K key1, K key2),
+                                  int hashCode(K key),
+                                  bool isValidKey(potentialKey)});
 
   /**
    * Creates an insertion-ordered identity-based map.
    *
    * Effectively a shorthand for:
    *
-   *     new LinkedHashMap(equals: identical, hashCode: identityHashCodeOf)
+   *     new LinkedHashMap(equals: identical,
+   *                       hashCode: identityHashCodeOf)
    */
   external factory LinkedHashMap.identity();
 
diff --git a/sdk/lib/collection/linked_hash_set.dart b/sdk/lib/collection/linked_hash_set.dart
index b937e53..a4848f4 100644
--- a/sdk/lib/collection/linked_hash_set.dart
+++ b/sdk/lib/collection/linked_hash_set.dart
@@ -36,32 +36,55 @@
    *
    * The provided [equals] must define a stable equivalence relation, and
    * [hashCode] must be consistent with [equals]. If the [equals] or [hashCode]
-   * methods won't work on all objects, but only to instances of E, the
-   * [isValidKey] predicate can be used to restrict the keys that they are
-   * applied to. Any key for which [isValidKey] returns false is automatically
-   * assumed to not be in the set.
+   * methods won't work on all objects, but only on some instances of E, the
+   * [isValidKey] predicate can be used to restrict the keys that the functions
+   * are applied to.
+   * Any key for which [isValidKey] returns false is automatically assumed
+   * to not be in the set when asking `contains`.
    *
    * If [equals] or [hashCode] are omitted, the set uses
-   * the objects' intrinsic [Object.operator==] and [Object.hashCode],
-   *
-   * If [isValidKey] is omitted, it defaults to testing if the object is an
-   * [E] instance.
+   * the elements' intrinsic [Object.operator==] and [Object.hashCode],
+   * and [isValidKey] is ignored since these operations are assumed
+   * to work on all objects.
    *
    * If you supply one of [equals] and [hashCode],
    * you should generally also to supply the other.
-   * An example would be using [identical] and [identityHashCode],
-   * which is equivalent to using the shorthand [LinkedSet.identity]).
+   *
+   * If the supplied `equals` or `hashCode` functions won't work on all [E]
+   * objects, and the map will be used in a setting where a non-`E` object
+   * is passed to, e.g., `contains`, then the [isValidKey] function should
+   * also be supplied.
+   *
+   * If [isValidKey] is omitted, it defaults to testing if the object is an
+   * [E] instance. That means that:
+   *
+   *     new LinkedHashSet<int>(equals: (int e1, int e2) => (e1 - e2) % 5 == 0,
+   *                            hashCode: (int e) => e % 5)
+   *
+   * does not need an `isValidKey` argument, because it defaults to only
+   * accepting `int` values which are accepted by both `equals` and `hashCode`.
+   *
+   * If neither `equals`, `hashCode`, nor `isValidKey` is provided,
+   * the default `isValidKey` instead accepts all values.
+   * The default equality and hashcode operations are assumed to work on all
+   * objects.
+   *
+   * Likewise, if `equals` is [identical], `hashCode` is [identityHashCode]
+   * and `isValidKey` is omitted, the resulting set is identity based,
+   * and the `isValidKey` defaults to accepting all keys.
+   * Such a map can be created directly using [LinkedHashSet.identity].
    */
-  external factory LinkedHashSet({ bool equals(E e1, E e2),
-                                   int hashCode(E e),
-                                   bool isValidKey(potentialKey) });
+  external factory LinkedHashSet({bool equals(E e1, E e2),
+                                  int hashCode(E e),
+                                  bool isValidKey(potentialKey)});
 
   /**
    * Creates an insertion-ordered identity-based set.
    *
    * Effectively a shorthand for:
    *
-   *     new LinkedHashSet(equals: identical, hashCode: identityHashCodeOf)
+   *     new LinkedHashSet(equals: identical,
+   *                       hashCode: identityHashCodeOf)
    */
   external factory LinkedHashSet.identity();
 
diff --git a/sdk/lib/collection/list.dart b/sdk/lib/collection/list.dart
index e7d902e..0d02f85 100644
--- a/sdk/lib/collection/list.dart
+++ b/sdk/lib/collection/list.dart
@@ -389,7 +389,7 @@
 
   void replaceRange(int start, int end, Iterable<E> newContents) {
     RangeError.checkValidRange(start, end, this.length);
-    if (newContents is! EfficientLength) {
+    if (newContents is! EfficientLengthIterable) {
       newContents = newContents.toList();
     }
     int removeLength = end - start;
@@ -476,7 +476,7 @@
 
   void insertAll(int index, Iterable<E> iterable) {
     RangeError.checkValueInInterval(index, 0, length, "index");
-    if (iterable is EfficientLength) {
+    if (iterable is EfficientLengthIterable) {
       iterable = iterable.toList();
     }
     int insertionLength = iterable.length;
diff --git a/sdk/lib/collection/maps.dart b/sdk/lib/collection/maps.dart
index 7945e7e..ecc2bf7 100644
--- a/sdk/lib/collection/maps.dart
+++ b/sdk/lib/collection/maps.dart
@@ -112,7 +112,7 @@
  * map's `operator[]` to lookup the keys.
  */
 class _MapBaseValueIterable<V> extends Iterable<V>
-                               implements EfficientLength {
+                               implements EfficientLengthIterable<V> {
   final Map _map;
   _MapBaseValueIterable(this._map);
 
diff --git a/sdk/lib/collection/queue.dart b/sdk/lib/collection/queue.dart
index af8e07a..067c17b 100644
--- a/sdk/lib/collection/queue.dart
+++ b/sdk/lib/collection/queue.dart
@@ -17,7 +17,7 @@
  * This goes both for using the [iterator] directly, or for iterating an
  * `Iterable` returned by a method like [map] or [where].
  */
-abstract class Queue<E> implements Iterable<E>, EfficientLength {
+abstract class Queue<E> implements EfficientLengthIterable<E> {
 
   /**
    * Creates a queue.
@@ -482,7 +482,7 @@
       return queue;
     } else {
       int capacity = _INITIAL_CAPACITY;
-      if (elements is EfficientLength) {
+      if (elements is EfficientLengthIterable) {
         capacity = elements.length;
       }
       ListQueue<E> result = new ListQueue<E>(capacity);
diff --git a/sdk/lib/collection/splay_tree.dart b/sdk/lib/collection/splay_tree.dart
index b5fcb93..597c23f 100644
--- a/sdk/lib/collection/splay_tree.dart
+++ b/sdk/lib/collection/splay_tree.dart
@@ -274,7 +274,7 @@
   factory SplayTreeMap.from(Map other,
                             [int compare(K key1, K key2),
                              bool isValidKey(potentialKey)]) {
-    SplayTreeMap<K, V> result = new SplayTreeMap<K, V>();
+    SplayTreeMap<K, V> result = new SplayTreeMap<K, V>(compare, isValidKey);
     other.forEach((k, v) { result[k] = v; });
     return result;
   }
@@ -600,7 +600,7 @@
 }
 
 class _SplayTreeKeyIterable<K> extends Iterable<K>
-                               implements EfficientLength {
+                               implements EfficientLengthIterable<K> {
   _SplayTree<K> _tree;
   _SplayTreeKeyIterable(this._tree);
   int get length => _tree._count;
@@ -618,7 +618,7 @@
 }
 
 class _SplayTreeValueIterable<K, V> extends Iterable<V>
-                                    implements EfficientLength {
+                                    implements EfficientLengthIterable<V> {
   SplayTreeMap<K, V> _map;
   _SplayTreeValueIterable(this._map);
   int get length => _map._count;
diff --git a/sdk/lib/core/iterable.dart b/sdk/lib/core/iterable.dart
index dbc8c55..e435b1e 100644
--- a/sdk/lib/core/iterable.dart
+++ b/sdk/lib/core/iterable.dart
@@ -347,7 +347,7 @@
    * Some iterables have a more efficient way to find the number of elements.
    */
   int get length {
-    assert(this is! EfficientLength);
+    assert(this is! EfficientLengthIterable);
     int count = 0;
     Iterator it = iterator;
     while (it.moveNext()) {
@@ -594,7 +594,7 @@
 typedef E _Generator<E>(int index);
 
 class _GeneratorIterable<E> extends Iterable<E>
-                            implements EfficientLength {
+                            implements EfficientLengthIterable<E> {
   final int _start;
   final int _end;
   final _Generator<E> _generator;
diff --git a/sdk/lib/core/list.dart b/sdk/lib/core/list.dart
index 9d9a093..0d10e85 100644
--- a/sdk/lib/core/list.dart
+++ b/sdk/lib/core/list.dart
@@ -51,7 +51,7 @@
  * directly or through iterating an [Iterable] that is backed by the list, will
  * break the iteration.
  */
-abstract class List<E> implements Iterable<E>, EfficientLength {
+abstract class List<E> implements EfficientLengthIterable<E> {
   /**
    * Creates a list of the given length.
    *
diff --git a/sdk/lib/core/set.dart b/sdk/lib/core/set.dart
index 2c6b524..a908d57 100644
--- a/sdk/lib/core/set.dart
+++ b/sdk/lib/core/set.dart
@@ -31,7 +31,7 @@
  * iterating either the set itself or any [Iterable] that is backed by the set,
  * such as the ones returned by methods like [where] and [map].
  */
-abstract class Set<E> extends Iterable<E> implements EfficientLength {
+abstract class Set<E> implements EfficientLengthIterable<E> {
   /**
    * Creates an empty [Set].
    *
diff --git a/sdk/lib/developer/developer.dart b/sdk/lib/developer/developer.dart
new file mode 100644
index 0000000..db56aec
--- /dev/null
+++ b/sdk/lib/developer/developer.dart
@@ -0,0 +1,26 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// ## Status: Unstable
+///
+/// The dart:developer library is unstable and its API might change slightly
+/// as a result of developer feedback. This library is platform dependent and
+/// therefore it has implementations for both dart2js and the Dart VM. Both are
+/// under development and may not support all operations yet.
+///
+library dart.developer;
+
+/// If [when] is true, stop the program as if a breakpoint where hit at the
+/// following statement. Returns the value of [when]. Some debuggers may
+/// display [msg].
+/// NOTE: When invoked, the isolate will not return until a debugger
+/// continues execution. When running in the Dart VM the behaviour is the same
+/// regardless of whether or not a debugger is connected. When compiled to
+/// JavaScript, this uses the "debugger" statement, and behaves exactly as
+/// that does.
+external bool debugger({bool when: true, String msg});
+
+/// Send a reference to [object] to any attached debuggers so they may open an
+/// inspector on the object. Returns the argument.
+external inspect(object);
diff --git a/sdk/lib/developer/developer_sources.gypi b/sdk/lib/developer/developer_sources.gypi
new file mode 100644
index 0000000..fa6a87c
--- /dev/null
+++ b/sdk/lib/developer/developer_sources.gypi
@@ -0,0 +1,10 @@
+# Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+{
+  'sources': [
+    'developer.dart',
+    # The above file needs to be first if additional parts are added to the lib.
+  ],
+}
diff --git a/sdk/lib/internal/iterable.dart b/sdk/lib/internal/iterable.dart
index 47c94f8..0a59b0e 100644
--- a/sdk/lib/internal/iterable.dart
+++ b/sdk/lib/internal/iterable.dart
@@ -5,27 +5,13 @@
 part of dart._internal;
 
 /**
- * Marker interface for [Iterable] subclasses that have an efficient
- * [length] implementation.
- */
-abstract class EfficientLength {
-  /**
-   * Returns the number of elements in the iterable.
-   *
-   * This is an efficient operation that doesn't require iterating through
-   * the elements.
-   */
-  int get length;
-}
-
-/**
  * An [Iterable] for classes that have efficient [length] and [elementAt].
  *
  * All other methods are implemented in terms of [length] and [elementAt],
  * including [iterator].
  */
 abstract class ListIterable<E> extends Iterable<E>
-                               implements EfficientLength {
+                               implements EfficientLengthIterable<E> {
   int get length;
   E elementAt(int i);
 
@@ -351,7 +337,7 @@
   final _Transformation<S, T> _f;
 
   factory MappedIterable(Iterable iterable, T function(S value)) {
-    if (iterable is EfficientLength) {
+    if (iterable is EfficientLengthIterable) {
       return new EfficientLengthMappedIterable<S, T>(iterable, function);
     }
     return new MappedIterable<S, T>._(iterable, function);
@@ -373,7 +359,7 @@
 }
 
 class EfficientLengthMappedIterable<S, T> extends MappedIterable<S, T>
-                                          implements EfficientLength {
+    implements EfficientLengthIterable<T> {
   EfficientLengthMappedIterable(Iterable iterable, T function(S value))
       : super._(iterable, function);
 }
@@ -402,8 +388,7 @@
  *
  * Expects efficient `length` and `elementAt` on the source iterable.
  */
-class MappedListIterable<S, T> extends ListIterable<T>
-                               implements EfficientLength {
+class MappedListIterable<S, T> extends ListIterable<T> {
   final Iterable<S> _source;
   final _Transformation<S, T> _f;
 
@@ -496,7 +481,7 @@
     if (takeCount is! int || takeCount < 0) {
       throw new ArgumentError(takeCount);
     }
-    if (iterable is EfficientLength) {
+    if (iterable is EfficientLengthIterable) {
       return new EfficientLengthTakeIterable<E>(iterable, takeCount);
     }
     return new TakeIterable<E>._(iterable, takeCount);
@@ -510,7 +495,7 @@
 }
 
 class EfficientLengthTakeIterable<E> extends TakeIterable<E>
-                                     implements EfficientLength {
+                                     implements EfficientLengthIterable<E> {
   EfficientLengthTakeIterable(Iterable<E> iterable, int takeCount)
       : super._(iterable, takeCount);
 
@@ -583,7 +568,7 @@
   final int _skipCount;
 
   factory SkipIterable(Iterable<E> iterable, int count) {
-    if (iterable is EfficientLength) {
+    if (iterable is EfficientLengthIterable) {
       return new EfficientLengthSkipIterable<E>(iterable, count);
     }
     return new SkipIterable<E>._(iterable, count);
@@ -610,7 +595,7 @@
 }
 
 class EfficientLengthSkipIterable<E> extends SkipIterable<E>
-                                     implements EfficientLength {
+                                     implements EfficientLengthIterable<E> {
   EfficientLengthSkipIterable(Iterable<E> iterable, int skipCount)
       : super._(iterable, skipCount);
 
@@ -672,7 +657,8 @@
 /**
  * The always empty [Iterable].
  */
-class EmptyIterable<E> extends Iterable<E> implements EfficientLength {
+class EmptyIterable<E> extends Iterable<E>
+                      implements EfficientLengthIterable<E> {
   const EmptyIterable();
 
   Iterator<E> get iterator => const EmptyIterator();
diff --git a/sdk/lib/io/http_impl.dart b/sdk/lib/io/http_impl.dart
index 42c1db9..f06179b 100644
--- a/sdk/lib/io/http_impl.dart
+++ b/sdk/lib/io/http_impl.dart
@@ -1289,8 +1289,24 @@
                 "Unexpected response (unsolicited response without request).",
                 uri: _currentUri);
           }
-          _nextResponseCompleter.complete(incoming);
-          _nextResponseCompleter = null;
+
+          // Check for status code '100 Continue'. In that case just
+          // consume that response as the final response will follow
+          // it. There is currently no API for the client to wait for
+          // the '100 Continue' response.
+          if (incoming.statusCode == 100) {
+            incoming.drain().then((_) {
+              _subscription.resume();
+            }).catchError((error, [StackTrace stackTrace]) {
+              _nextResponseCompleter.completeError(
+                  new HttpException(error.message, uri: _currentUri),
+                  stackTrace);
+              _nextResponseCompleter = null;
+            });
+          } else {
+            _nextResponseCompleter.complete(incoming);
+            _nextResponseCompleter = null;
+          }
         },
         onError: (error, [StackTrace stackTrace]) {
           if (_nextResponseCompleter != null) {
diff --git a/sdk/lib/io/process.dart b/sdk/lib/io/process.dart
index ea1bd76..93aa63e 100644
--- a/sdk/lib/io/process.dart
+++ b/sdk/lib/io/process.dart
@@ -68,7 +68,7 @@
   _ProcessUtils._setExitCode(code);
 }
 
-/*
+/**
  * Get the global exit code for the Dart VM.
  *
  * The exit code is global for the Dart VM and the last assignment to
diff --git a/sdk/lib/io/websocket_impl.dart b/sdk/lib/io/websocket_impl.dart
index 6e30809..2657606 100644
--- a/sdk/lib/io/websocket_impl.dart
+++ b/sdk/lib/io/websocket_impl.dart
@@ -959,16 +959,26 @@
       _outCloseCode = code;
       _outCloseReason = reason;
     }
-    if (_closeTimer == null && !_controller.isClosed) {
-      // When closing the web-socket, we no longer accept data.
-      _closeTimer = new Timer(const Duration(seconds: 5), () {
-        // Reuse code and reason from the local close.
-        _closeCode = _outCloseCode;
-        _closeReason = _outCloseReason;
-        _subscription.cancel();
-        _controller.close();
-        _webSockets.remove(_serviceId);
-      });
+    if (!_controller.isClosed) {
+      // If a close has not yet been received from the other end then
+      //   1) make sure to listen on the stream so the close frame will be
+      //      processed if received.
+      //   2) set a timer terminate the connection if a close frame is
+      //      not received.
+      if (!_controller.hasListener) {
+        _controller.stream.drain().catchError((_) => {});
+      }
+      if (_closeTimer == null) {
+        // When closing the web-socket, we no longer accept data.
+        _closeTimer = new Timer(const Duration(seconds: 5), () {
+          // Reuse code and reason from the local close.
+          _closeCode = _outCloseCode;
+          _closeReason = _outCloseReason;
+          _subscription.cancel();
+          _controller.close();
+          _webSockets.remove(_serviceId);
+        });
+      }
     }
     return _sink.close();
   }
diff --git a/sdk/lib/mirrors/mirrors.dart b/sdk/lib/mirrors/mirrors.dart
index 7153424..5d73641 100644
--- a/sdk/lib/mirrors/mirrors.dart
+++ b/sdk/lib/mirrors/mirrors.dart
@@ -1196,7 +1196,7 @@
  *
  * Example usage:
  *
- *     @MirrorsUsed(symbols: 'foo', override: '*')
+ *     @MirrorsUsed(symbols: 'foo')
  *     import 'dart:mirrors';
  *
  *     class Foo {
@@ -1209,12 +1209,25 @@
  *       new Foo().foo(); // Prints "foo".
  *       new Foo().bar(); // Might print an arbitrary (mangled) name, "bar".
  *     }
+ *
+ * For a detailed description of the parameters to the [MirrorsUsed] constructor
+ * see the comments for [symbols], [targets], [metaTargets] and [override].
+ *
+ * An import of `dart:mirrors` may have multiple [MirrorsUsed] annotations. This
+ * is particularly helpful to specify overrides for specific libraries. For 
+ * example:
+ *
+ *     @MirrorsUsed(targets: 'foo.Bar', override: 'foo')
+ *     @MirrorsUsed(targets: 'Bar')
+ *     import 'dart:mirrors';
+ *
+ * will ensure that the target `Bar` from the current library and from library
+ * `foo` is available for reflection. See also [override].
  */
-// TODO(ahe): Remove ", override: '*'" when it isn't necessary anymore.
 class MirrorsUsed {
   // Note: the fields of this class are untyped.  This is because the most
-  // convenient way to specify to specify symbols today is using a single
-  // string. In some cases, a const list of classes might be convenient. Some
+  // convenient way to specify symbols today is using a single string. In 
+  // some cases, a const list of classes might be convenient. Some
   // might prefer to use a const list of symbols.
 
   /**
@@ -1228,19 +1241,29 @@
    *
    * The following text is non-normative:
    *
-   * Specifying this option turns off the following warnings emitted by
+   * Dart2js currently supports the following formats to specify symbols:
+   *
+   * * A constant [List] of [String] constants representing symbol names, 
+   *   e.g., `const ['foo', 'bar']`.
+   * * A single [String] constant whose value is a comma-separated list of
+   *   symbol names, e.g., `"foo, bar"`.
+   *
+   * Specifying the `symbols` field turns off the following warnings emitted by
    * dart2js:
    *
    * * Using "MirrorSystem.getName" may result in larger output.
-   * * Using "new #{name}" may result in larger output.
+   * * Using "new Symbol" may result in larger output.
    *
-   * Use symbols = "*" to turn off the warnings mentioned above.
+   * For example, if you're using [noSuchMethod] to interact with a database,
+   * extract all the possible column names and include them in this list.
+   * Similarly, if you're using [noSuchMethod] to interact with another
+   * language (JavaScript, for example) extract all the identifiers from the
+   * API you use and include them in this list.
    *
-   * For example, if using [noSuchMethod] to interact with a database, extract
-   * all the possible column names and include them in this list.  Similarly,
-   * if using [noSuchMethod] to interact with another language (JavaScript, for
-   * example) extract all the identifiers from API used and include them in
-   * this list.
+   * Note that specifying a symbol only ensures that the symbol will be
+   * available under that name at runtime. It does not mark targets with
+   * that name as available for reflection. See [targets] and [metaTargets]
+   * for that purpose.
    */
   final symbols;
 
@@ -1253,16 +1276,97 @@
    * The following text is non-normative:
    *
    * For now, there is no formal description of what a reflective target is.
-   * Informally, it is a list of things that are expected to have fully
-   * functional mirrors.
+   * Informally, a target is a library, a class, a method or a field.
+   *
+   * Dart2js currently supports the following formats to specify targets:
+   *
+   * * A constant [List] containing [String] constants representing (qualified)
+   *   names of targets and Dart types.
+   * * A single [String] constant whose value is a comma-separated list of
+   *   (qualified) names.
+   * * A single Dart type.
+   *
+   * A (qualified) name is resolved to a target as follows:
+   *
+   * 1. If the qualified name matches a library name, the matching library is
+   *    the target.
+   * 2. Else, find the longest prefix of the name such that the prefix ends
+   *    just before a `.` and is a library name. 
+   * 3. Use that library as current scope. If no matching prefix was found, use
+   *    the current library, i.e., the library where the [MirrorsUsed] 
+   *    annotation was placed.
+   * 4. Split the remaining suffix (the entire name if no library name was
+   *    found in step 3) into a list of [String] using `.` as a 
+   *    separator.
+   * 5. Select all targets in the current scope whose name matches a [String] 
+   *    from the list.
+   *
+   * For example:
+   *
+   *     library my.library.one;
+   *
+   *     class A {
+   *       var aField;
+   *     }
+   *
+   *     library main;
+   *
+   *     @MirrorsUsed(targets: "my.library.one.A.aField")
+   *     import "dart:mirrors";
+   *
+   * The [MirrorsUsed] annotation specifies `A` and `aField` from library 
+   * `my.library.one` as targets. This will mark the class `A` as a reflective
+   * target. The target specification for `aField` has no effect, as there is
+   * no target in `my.library.one` with that name. 
+   * 
+   * Note that everything within a target also is available for reflection.
+   * So, if a library is specified as target, all classes in that library
+   * become targets for reflection. Likewise, if a class is a target, all
+   * its methods and fields become targets for reflection. As a consequence,
+   * `aField` in the above example is also a reflective target.
+   *
    */
   final targets;
 
   /**
    * A list of classes that when used as metadata indicates a reflective
-   * target.
+   * target. See also [targets].
    *
-   * See [targets].
+   * The following text is non-normative:
+   *
+   * The format for specifying the list of classes is the same as used for
+   * specifying [targets]. However, as a library cannot be used as a metadata
+   * annotation in Dart, adding a library to the list of [metaTargets] has no
+   * effect. In particular, adding a library to [metaTargets] does not make
+   * the library's classes valid metadata annotations to enable reflection.
+   *
+   * If an instance of a class specified in [metaTargets] is used as 
+   * metadata annotation on a library, class, field or method, that library,
+   * class, field or  method is added to the set of targets for reflection. 
+   *
+   * Example usage:
+   *
+   *     library example;
+   *     @MirrorsUsed(metaTargets: "example.Reflectable")
+   *     import "dart:mirrors";
+   *
+   *     class Reflectable {
+   *       const Reflectable();
+   *     }
+   *
+   *     class Foo {
+   *       @Reflectable()
+   *       reflectableMethod() { ... }
+   *
+   *       nonReflectableMethod() { ... }
+   *     }
+   *
+   * In the above example. `reflectableMethod` is marked as reflectable by
+   * using the `Reflectable` class, which in turn is specified in the 
+   * [metaTargets] annotation.
+   *
+   * The method `nonReflectableMethod` lacks a metadata annotation and thus 
+   * will not be reflectable at runtime.
    */
   final metaTargets;
 
@@ -1271,10 +1375,58 @@
    *
    * When used as metadata on an import of "dart:mirrors", this metadata does
    * not apply to the library in which the annotation is used, but instead
-   * applies to the other libraries (all libraries if "*" is used).
+   * applies to the other libraries (all libraries if "*" is used). 
+   *
+   * The following text is non-normative:
+   *
+   * Dart2js currently supports the following formats to specify libraries:
+   *
+   * * A constant [List] containing [String] constants representing names of
+   *   libraries.
+   * * A single [String] constant whose value is a comma-separated list of
+   *   library names.
+   * 
+   * Conceptually, a [MirrorsUsed] annotation with [override] has the same 
+   * effect as placing the annotation directly on the import of `dart:mirrors`
+   * in each of the referenced libraries. Thus, if the library had no 
+   * [MirrorsUsed] annotation before, its unconditional import of 
+   * `dart:mirrors` is overridden by an annotated import.
+   * 
+   * Note that, like multiple explicit [MirrorsUsed] annotations, using
+   * override on a library with an existing [MirrorsUsed] annotation is
+   * additive. That is, the overall set of reflective targets is the union
+   * of the reflective targets that arise from the original and the
+   * overriding [MirrorsUsed] annotations. 
+   *
+   * The use of [override] is only meaningful for libraries that have an 
+   * import of `dart:mirrors` without annotation because otherwise it would
+   * work exactly the same way without the [override] parameter.
+   *
+   * While the annotation will apply to the given target libraries, the
+   * [symbols], [targets] and [metaTargets] are still evaluated in the 
+   * scope of the annotation. Thus, to select a target from library `foo`,
+   * a qualified name has to be used or, if the target is visible in the
+   * current scope, its type may be referenced.
+   * 
+   * For example, the following code marks all targets in the library `foo`
+   * as reflectable that have a metadata annotation using the `Reflectable` 
+   * class from the same library.
+   *
+   *     @MirrorsUsed(metaTargets: "foo.Reflectable", override: "foo")
+   *
+   * However, the following code would require the use of the `Reflectable`
+   * class from the current library, instead.
+   *
+   *     @MirrorsUsed(metaTargets: "Reflectable", override: "foo")
+   *
    */
   final override;
 
+  /**
+   * See the documentation for [MirrorsUsed.symbols], [MirrorsUsed.targets], 
+   * [MirrorsUsed.metaTargets] and [MirrorsUsed.override] for documentation 
+   * of the parameters.
+   */
   const MirrorsUsed(
       {this.symbols, this.targets, this.metaTargets, this.override});
 }
diff --git a/site/try/app.yaml b/site/try/app.yaml
index 2e53e66..f6c9eee 100644
--- a/site/try/app.yaml
+++ b/site/try/app.yaml
@@ -60,10 +60,6 @@
   static_dir: packages/logging
   secure: always
 
-- url: /packages/matcher
-  static_dir: packages/matcher
-  secure: always
-
 - url: /packages/math
   static_dir: packages/math
   secure: always
diff --git a/site/try/build_try.gyp b/site/try/build_try.gyp
index 084e78c..ae1125b 100644
--- a/site/try/build_try.gyp
+++ b/site/try/build_try.gyp
@@ -54,7 +54,6 @@
           '../../third_party/pkg/http_parser/lib',
           '../../third_party/pkg/intl/lib',
           '../../third_party/pkg/logging/lib',
-          '../../third_party/pkg/matcher/lib',
           '../../third_party/pkg/path/lib',
           '../../third_party/pkg/stack_trace/lib',
           '../../third_party/pkg/string_scanner/lib',
diff --git a/tests/benchmark_smoke/benchmark_smoke.status b/tests/benchmark_smoke/benchmark_smoke.status
index 0e012ef..31fecec 100644
--- a/tests/benchmark_smoke/benchmark_smoke.status
+++ b/tests/benchmark_smoke/benchmark_smoke.status
@@ -9,4 +9,4 @@
 *: Fail, Pass # TODO(ahe): Triage these tests.
 
 [ $compiler == dart2js && $cps_ir ]
-benchmark_smoke_test: Crash # cannot compile methods that need interceptor calling convention.
+benchmark_smoke_test: Crash # (testForCompletion): handleStaticFunctionGet: function(testForCompletion)
diff --git a/tests/co19/co19-dart2dart.status b/tests/co19/co19-dart2dart.status
deleted file mode 100644
index eb20aa4..0000000
--- a/tests/co19/co19-dart2dart.status
+++ /dev/null
@@ -1,122 +0,0 @@
-# Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-# for details. All rights reserved. Use of this source code is governed by a
-# BSD-style license that can be found in the LICENSE file.
-
-[ $compiler == dart2dart && $builder_tag == new_backend ]
-Language/12_Expressions/18_Assignment_A04_t09: RuntimeError # Issue 23015
-
-[ $compiler == dart2dart && $builder_tag != new_backend ]
-Language/12_Expressions/18_Assignment_A04_t09: RuntimeError # co19-roll r667: Please triage this failure
-
-[ $compiler == dart2dart ]
-Language/03_Overview/1_Scoping_A02_t05: Fail # Inherited from dart2js
-Language/03_Overview/1_Scoping_A02_t06: Fail # inherited from dart2js
-Language/03_Overview/1_Scoping_A02_t28: Fail # co19-roll r559: Please triage this failure
-Language/03_Overview/2_Privacy_A01_t19: Fail # Calling unresolved class constructor.
-Language/03_Overview/2_Privacy_A01_t20: Fail # Calling unresolved class constructor.
-Language/05_Variables/05_Variables_A05_t01: fail # co19-roll r546: Please triage this failure
-Language/05_Variables/05_Variables_A05_t02: fail # co19-roll r546: Please triage this failure
-Language/05_Variables/05_Variables_A11_t01: fail
-Language/07_Classes/07_Classes_A13_t02: Fail # Missing CT error on member with same name a type parameter
-Language/07_Classes/07_Classes_A13_t03: Fail # Missing CT error on member with same name a type parameter
-Language/07_Classes/07_Classes_A13_t05: Fail # Missing CT error on member with same name a type parameter
-Language/07_Classes/07_Classes_A13_t06: Fail # Missing CT error on member with same name a type parameter
-Language/07_Classes/07_Classes_A13_t08: Fail # Missing CT error on member with same name a type parameter
-Language/07_Classes/07_Classes_A13_t09: Fail # Missing CT error on member with same name a type parameter
-Language/07_Classes/1_Instance_Methods_A07_t01: fail # Issue 21201
-Language/07_Classes/3_Setters_A04_t01: Fail # inherited from VM
-Language/07_Classes/3_Setters_A04_t02: Fail # inherited from VM
-Language/07_Classes/3_Setters_A04_t07: Fail # inherited from VM
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A12_t02: fail # 13363
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A20_t02: fail # 13363
-Language/07_Classes/6_Constructors/2_Factories_A08_t02: fail # Issue 21202
-Language/07_Classes/6_Constructors/2_Factories_A10_t02: fail # Issue 21202
-Language/07_Classes/6_Constructors/2_Factories_A10_t03: fail # Issue 21202
-Language/07_Classes/6_Constructors_A03_t03: Fail # Calling unresolved class constructor.
-Language/07_Classes/9_Superclasses/1_Inheritance_and_Overriding_A01_t03: Fail # TODO(dart2dart-team): Please triage this failure.
-Language/10_Generics/09_Generics_A01_t17: fail # Issue 21203
-Language/12_Expressions/01_Constants_A03_t01: Fail # Issue 13652
-Language/12_Expressions/12_Instance_Creation/1_New_A02_t03: fail # co19-roll r546: Please triage this failure
-Language/12_Expressions/12_Instance_Creation/1_New_A02_t05: fail # co19-roll r546: Please triage this failure
-Language/12_Expressions/12_Instance_Creation/1_New_A02_t06: fail # co19-roll r546: Please triage this failure
-Language/12_Expressions/12_Instance_Creation/1_New_A02_t07: fail # co19-roll r546: Please triage this failure
-Language/12_Expressions/12_Instance_Creation/1_New_A03_t01: fail # co19-roll r546: Please triage this failure
-Language/12_Expressions/12_Instance_Creation/1_New_A03_t02: fail # co19-roll r546: Please triage this failure
-Language/12_Expressions/12_Instance_Creation/1_New_A04_t01: fail # co19-roll r546: Please triage this failure
-Language/12_Expressions/12_Instance_Creation/1_New_A04_t02: RuntimeError # co19-roll r607: Please triage this failure
-Language/12_Expressions/12_Instance_Creation/1_New_A06_t04: fail # co19-roll r546: Please triage this failure
-Language/12_Expressions/12_Instance_Creation/1_New_A06_t05: fail # co19-roll r546: Please triage this failure
-Language/12_Expressions/12_Instance_Creation/1_New_A06_t06: fail # co19-roll r546: Please triage this failure
-Language/12_Expressions/12_Instance_Creation/1_New_A06_t15: CompileTimeError # Issue 21092
-Language/12_Expressions/12_Instance_Creation/2_Const_A11_t01: MissingCompileTimeError # Issue 21134
-Language/12_Expressions/12_Instance_Creation/2_Const_A11_t03: MissingCompileTimeError # Issue 21134
-Language/12_Expressions/15_Method_Invocation/3_Static_Invocation_A04_t09: RuntimeError # co19-roll r623: Please triage this failure
-Language/12_Expressions/17_Getter_Invocation_A07_t02: Pass, RuntimeError # co19-roll r607: Please triage this failure
-Language/12_Expressions/22_Equality_A01_t01: fail # co19-roll r546: Please triage this failure
-Language/12_Expressions/22_Equality_A05_t01: fail # co19-roll r546: Please triage this failure
-Language/12_Expressions/30_Identifier_Reference_A02_t01: fail # co19-roll r546: Please triage this failure
-Language/13_Statements/04_Local_Function_Declaration_A04_t01: Fail, MissingCompileTimeError # co19-roll r607: Please triage this failure
-Language/13_Statements/04_Local_Function_Declaration_A04_t03: MissingCompileTimeError # co19-roll r667: Please triage this failure
-Language/13_Statements/09_Switch_A01_t02: fail # co19-roll r546: Please triage this failure
-Language/13_Statements/12_Labels_A01_t03: fail # co19-roll r546: Please triage this failure
-Language/14_Libraries_and_Scripts/1_Imports_A03_t08: fail # co19-roll r546: Please triage this failure
-Language/14_Libraries_and_Scripts/1_Imports_A03_t09: fail # co19-roll r546: Please triage this failure
-Language/14_Libraries_and_Scripts/1_Imports_A03_t10: fail # co19-roll r546: Please triage this failure
-Language/14_Libraries_and_Scripts/1_Imports_A03_t28: fail # co19-roll r546: Please triage this failure
-Language/14_Libraries_and_Scripts/1_Imports_A03_t29: fail # co19-roll r546: Please triage this failure
-Language/14_Libraries_and_Scripts/1_Imports_A03_t30: fail # co19-roll r546: Please triage this failure
-Language/15_Types/4_Interface_Types_A11_t01: crash # co19-roll r546: Please triage this failure
-Language/15_Types/4_Interface_Types_A11_t02: crash # co19-roll r546: Please triage this failure
-Language/15_Types/4_Interface_Types_A11_t04: fail # Issue 14654
-Language/15_Types/5_Function_Types_A06_t01: fail # co19-roll r546: Please triage this failure
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A40_t04: fail # co19-roll r546: Please triage this failure
-Language/16_Reference/1_Lexical_Rules_A02_t06: fail # co19-roll r546: Please triage this failure
-LibTest/async/DeferredLibrary/DeferredLibrary_A01_t01: RuntimeError # Issue 22032
-LibTest/core/DateTime/parse_A03_t01: fail # co19-roll r546: Please triage this failure
-LibTest/core/Function/Function_class_A01_t01: RuntimeError # co19-roll r623: Please triage this failure
-LibTest/core/Invocation/memberName_A01_t01: Pass, RuntimeError # co18-roll r607: Please triage this failure
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: Fail # inherited from VM. Issue 22200
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: Fail # inherited from VM. Issue 22200
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: Fail # inherited from VM. Issue 22200
-LibTest/core/Symbol/Symbol_A01_t03: RuntimeError # co19-roll r607: Please triage this failure
-LibTest/core/Symbol/Symbol_A01_t05: RuntimeError # co19-roll r607: Please triage this failure
-LibTest/core/int/operator_left_shift_A01_t02: Fail, OK # co19 issue 129
-LibTest/core/int/toRadixString_A01_t01: Fail # inherited from VM
-LibTest/isolate/Isolate/spawnUri_A01_t01: Fail # co19-roll r672: Please triage this failure
-LibTest/isolate/Isolate/spawnUri_A01_t02: Fail # co19-roll r672: Please triage this failure
-LibTest/isolate/Isolate/spawnUri_A01_t03: Fail # co19-roll r672: Please triage this failure
-LibTest/isolate/Isolate/spawnUri_A01_t04: Fail # co19-roll r672: Please triage this failure
-LibTest/isolate/Isolate/spawnUri_A01_t05: Fail # co19-roll r672: Please triage this failure
-LibTest/isolate/Isolate/spawnUri_A02_t01: RuntimeError # Issue 15617
-LibTest/isolate/Isolate/spawn_A02_t02: RuntimeError # Issue 15617
-LibTest/isolate/IsolateStream/any_A02_t01: fail # co19-roll r546: Please triage this failure
-LibTest/isolate/ReceivePort/receive_A01_t02: Fail, OK # co19 issue 276
-LibTest/isolate/SendPort/send_A01_t01: CompileTimeError # co19-roll r706: Please triage this failure
-LibTest/isolate/SendPort/send_A01_t02: CompileTimeError # co19-roll r706: Please triage this failure
-LibTest/isolate/SendPort/send_A01_t03: CompileTimeError # co19-roll r706: Please triage this failure
-LibTest/isolate/SendPort/send_A02_t02: timeout # co19-roll r546: Please triage this failure
-LibTest/isolate/SendPort/send_A02_t03: timeout # co19-roll r546: Please triage this failure
-LibTest/math/tan_A01_t01: Fail # co19 issue 44
-LibTest/typed_data/Float32x4/equal_A01_t01: Skip # co19 issue 656
-LibTest/typed_data/Float32x4/greaterThanOrEqual_A01_t01: Skip # co19 issue 656
-LibTest/typed_data/Float32x4/greaterThan_A01_t01: Skip # co19 issue 656
-LibTest/typed_data/Float32x4/lessThanOrEqual_A01_t01: Skip # co19 issue 656
-LibTest/typed_data/Float32x4/lessThan_A01_t01: Skip # co19 issue 656
-LibTest/typed_data/Float32x4/notEqual_A01_t01: Skip # co19 issue 656
-
-[ $compiler == dart2dart && $system == windows ]
-LibTest/core/double/operator_remainder_A01_t04: Fail # Result is NaN
-LibTest/core/double/round_A01_t01: Fail # Result is NaN
-LibTest/core/double/remainder_A01_t04: Fail # Result is NaN
-
-[ $compiler == dart2dart && $system == macos ]
-LibTest/math/acos_A01_t01: Fail, OK # co19 issue 44
-LibTest/math/asin_A01_t01: Fail, OK # co19 issue 44
-LibTest/math/atan_A01_t01: Fail, OK # co19 issue 44
-
-[ $compiler == dart2dart && $minified ]
-Language/12_Expressions/14_Function_Invocation/4_Function_Expression_Invocation_A01_t02: fail # co19-roll r559: Please triage this failure
-Language/12_Expressions/17_Getter_Invocation_A02_t01: fail # co19-roll r559: Please triage this failure
-Language/12_Expressions/18_Assignment_A05_t02: fail # co19-roll r559: Please triage this failure
-Language/12_Expressions/18_Assignment_A05_t04: fail # co19-roll r559: Please triage this failure
-LibTest/convert/JsonCodec/encode_A01_t02: RuntimeError # co19-roll r641: Please triage this failure
diff --git a/tests/co19/co19-dart2js.status b/tests/co19/co19-dart2js.status
index d9c2e62..a4a7276 100644
--- a/tests/co19/co19-dart2js.status
+++ b/tests/co19/co19-dart2js.status
@@ -51,8 +51,6 @@
 Language/14_Libraries_and_Scripts/1_Imports_A03_t09: fail # Issue 21171
 Language/14_Libraries_and_Scripts/1_Imports_A03_t10: fail # Issue 21171
 Language/14_Libraries_and_Scripts/1_Imports_A03_t28: fail # Issue 21171
-Language/14_Libraries_and_Scripts/1_Imports_A03_t29: fail # co19 issue 723
-Language/14_Libraries_and_Scripts/1_Imports_A03_t30: fail # co19 issue 723
 Language/15_Types/4_Interface_Types_A11_t01: crash # Issue 21174
 Language/15_Types/4_Interface_Types_A11_t02: crash # Issue 21174
 Language/15_Types/4_Interface_Types_A11_t04: fail # Issue 14654
@@ -98,14 +96,9 @@
 LibTest/isolate/Isolate/spawnUri_A01_t05: Fail # Dart issue 15974
 LibTest/isolate/Isolate/spawnUri_A02_t01: RuntimeError, Pass # Dart issue 15617
 LibTest/isolate/Isolate/spawn_A02_t02: RuntimeError, Pass # Dart issue 15617
-LibTest/isolate/IsolateStream/any_A02_t01: fail # co19-roll r546: Please triage this failure
-LibTest/isolate/IsolateStream/contains_A02_t01: fail # co19-roll r546: Please triage this failure
-LibTest/isolate/ReceivePort/receive_A01_t02: RuntimeError # Issue 6750
 LibTest/isolate/SendPort/send_A01_t01: CompileTimeError # co19-roll r706: Please triage this failure
 LibTest/isolate/SendPort/send_A01_t02: CompileTimeError # co19-roll r706: Please triage this failure
 LibTest/isolate/SendPort/send_A01_t03: CompileTimeError # co19-roll r706: Please triage this failure
-LibTest/isolate/SendPort/send_A02_t04: RuntimeError # Runtime error: TypeError: Cannot call method 'toSendPort$0' of undefined.
-LibTest/isolate/SendPort/send_A02_t04: RuntimeError, OK # co19 issue 293 Passes on IE
 LibTest/math/MutableRectangle/boundingBox_A01_t01: RuntimeError, Pass # co19-roll r706: Please triage this failure.
 LibTest/math/Rectangle/boundingBox_A01_t01: RuntimeError, Pass # co19-roll r706: Please triage this failure.
 LibTest/math/pow_A04_t01: fail # co19-roll r587: Please triage this failure
@@ -314,8 +307,6 @@
 LibTest/core/Stopwatch/stop_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
 LibTest/core/Uri/Uri_A06_t03: Pass, Slow
 LibTest/isolate/ReceivePort/asBroadcastStream_A04_t03: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/isolate/SendPort/send_A02_t05: RuntimeError # TODO(ahe): Please triage this failure.
-LibTest/isolate/SendPort/send_A02_t06: RuntimeError # TODO(ahe): Please triage this failure.
 LibTest/typed_data/Float32List/Float32List.view_A06_t01: fail # co19-roll r587: Please triage this failure
 LibTest/typed_data/Float32List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
 LibTest/typed_data/Float32x4List/Float32x4List.view_A06_t01: fail # co19-roll r587: Please triage this failure
@@ -9447,1348 +9438,352 @@
 WebPlatformTest/webstorage/storage_session_setitem_t01: RuntimeError # Please triage this failure
 
 [ $compiler == dart2js && $cps_ir ]
-Language/03_Overview/03_Overview_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/03_Overview/03_Overview_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/03_Overview/1_Scoping_A01_t28: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/03_Overview/1_Scoping_A01_t29: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/03_Overview/1_Scoping_A01_t34: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/03_Overview/1_Scoping_A01_t39: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/03_Overview/1_Scoping_A02_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/03_Overview/1_Scoping_A02_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/03_Overview/1_Scoping_A02_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/03_Overview/1_Scoping_A02_t07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/03_Overview/1_Scoping_A02_t11: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/03_Overview/1_Scoping_A02_t12: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/03_Overview/1_Scoping_A02_t13: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/03_Overview/1_Scoping_A02_t14: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/03_Overview/1_Scoping_A02_t15: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/03_Overview/1_Scoping_A02_t16: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+Language/03_Overview/03_Overview_A01_t01: Crash # (main): handleStaticFunctionGet: function(main)
+Language/03_Overview/1_Scoping_A01_t34: Crash # Instance of 'TypeOperator': type check unimplemented for T.
+Language/03_Overview/1_Scoping_A01_t39: Crash # Instance of 'TypeOperator': type check unimplemented for f.
 Language/03_Overview/1_Scoping_A02_t19: Crash # (switch (1){case 1:var x;break;case 2:var x;break;}): Unhandled node
-Language/03_Overview/1_Scoping_A02_t29: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/03_Overview/1_Scoping_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/03_Overview/2_Privacy_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/03_Overview/2_Privacy_A01_t04: Crash #  "on T" catch block
-Language/03_Overview/2_Privacy_A01_t05: Crash #  "on T" catch block
-Language/03_Overview/2_Privacy_A01_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/03_Overview/2_Privacy_A01_t07: Crash # (try {a._setter=1;}on int catch (ok){}): "on T" catch block
-Language/03_Overview/2_Privacy_A01_t08: Crash #  "on T" catch block
-Language/03_Overview/2_Privacy_A01_t09: Crash #  "on T" catch block
-Language/03_Overview/2_Privacy_A01_t10: Crash #  "on T" catch block
-Language/03_Overview/2_Privacy_A01_t11: Crash #  "on T" catch block
-Language/03_Overview/2_Privacy_A01_t13: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/03_Overview/2_Privacy_A01_t14: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/03_Overview/2_Privacy_A01_t16: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/03_Overview/2_Privacy_A01_t18: Crash #  "on T" catch block
-Language/03_Overview/2_Privacy_A01_t19: Crash #  "on T" catch block
-Language/03_Overview/2_Privacy_A01_t20: Crash #  "on T" catch block
-Language/03_Overview/2_Privacy_A01_t21: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/05_Variables/05_Variables_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/05_Variables/05_Variables_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/05_Variables/05_Variables_A03_t02: Crash # (Expect): Error expression `Expect` unhandled.
-Language/05_Variables/05_Variables_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/05_Variables/05_Variables_A07_t01: Crash #  "on T" catch block
-Language/05_Variables/05_Variables_A07_t02: Crash #  "on T" catch block
-Language/05_Variables/05_Variables_A07_t03: Crash #  "on T" catch block
-Language/05_Variables/05_Variables_A07_t04: Crash #  "on T" catch block
-Language/05_Variables/05_Variables_A07_t09: Crash # Please triage this failure.
-Language/05_Variables/05_Variables_A07_t10: Crash #  "on T" catch block
-Language/05_Variables/05_Variables_A08_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/05_Variables/05_Variables_A08_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/05_Variables/05_Variables_A08_t03: Crash # Please triage this failure.
-Language/05_Variables/05_Variables_A09_t01: Crash #  "on T" catch block
-Language/05_Variables/05_Variables_A11_t01: Crash # (w): Error expression `w` unhandled.
-Language/05_Variables/05_Variables_A11_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/05_Variables/05_Variables_A12_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/05_Variables/05_Variables_A12_t09: Crash #  "on T" catch block
-Language/05_Variables/05_Variables_A12_t10: Crash #  "on T" catch block
-Language/05_Variables/05_Variables_A12_t11: Crash #  "on T" catch block
+Language/03_Overview/2_Privacy_A01_t06: Crash # Instance of 'TypeOperator': type check unimplemented for _inaccessibleFuncType.
+Language/05_Variables/05_Variables_A04_t01: Crash # unsupported element kind: foo:field
 Language/05_Variables/05_Variables_A12_t12: Crash # unsupported element kind: z5:field
-Language/05_Variables/05_Variables_A13_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/05_Variables/05_Variables_A13_t02: Crash #  "on T" catch block
-Language/05_Variables/05_Variables_A13_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/05_Variables/05_Variables_A14_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/05_Variables/05_Variables_A14_t02: Crash #  "on T" catch block
-Language/05_Variables/05_Variables_A14_t03: Crash #  "on T" catch block
-Language/05_Variables/05_Variables_A14_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/05_Variables/05_Variables_A14_t05: Crash #  "on T" catch block
-Language/05_Variables/05_Variables_A14_t06: Crash #  "on T" catch block
-Language/05_Variables/05_Variables_A14_t07: Crash # (throw new ExpectException(message)): Unhandled node
-Language/05_Variables/05_Variables_A15_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/05_Variables/05_Variables_A15_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/05_Variables/05_Variables_A15_t03: Crash # (throw new ExpectException(message)): Unhandled node
-Language/05_Variables/1_Evaluation_of_Implicit_Variable_Getters_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/05_Variables/1_Evaluation_of_Implicit_Variable_Getters_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/05_Variables/1_Evaluation_of_Implicit_Variable_Getters_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/05_Variables/1_Evaluation_of_Implicit_Variable_Getters_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/05_Variables/1_Evaluation_of_Implicit_Variable_Getters_A01_t05: Crash #  "on T" catch block
-Language/06_Functions/06_Functions_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/06_Functions/06_Functions_A01_t06: Crash # (function()): Error expression `function()` unhandled.
-Language/06_Functions/06_Functions_A01_t07: Crash # (function()): Error expression `function()` unhandled.
-Language/06_Functions/06_Functions_A01_t08: Crash # (f()): Error expression `f()` unhandled.
-Language/06_Functions/06_Functions_A01_t09: Crash # (f()): Error expression `f()` unhandled.
-Language/06_Functions/06_Functions_A01_t10: Crash # (f()): Error expression `f()` unhandled.
-Language/06_Functions/06_Functions_A01_t12: Crash # (f()): Error expression `f()` unhandled.
-Language/06_Functions/06_Functions_A01_t14: Crash # (f()): Error expression `f()` unhandled.
-Language/06_Functions/06_Functions_A01_t15: Crash # (f()): Error expression `f()` unhandled.
-Language/06_Functions/06_Functions_A01_t16: Crash # (f()): Error expression `f()` unhandled.
-Language/06_Functions/06_Functions_A01_t17: Crash # (f()): Error expression `f()` unhandled.
-Language/06_Functions/06_Functions_A01_t18: Crash # (f()): Error expression `f()` unhandled.
-Language/06_Functions/06_Functions_A01_t19: Crash # (f()): Error expression `f()` unhandled.
-Language/06_Functions/06_Functions_A01_t20: Crash # (f()): Error expression `f()` unhandled.
-Language/06_Functions/06_Functions_A01_t21: Crash # (f()): Error expression `f()` unhandled.
-Language/06_Functions/06_Functions_A01_t23: Crash # (f()): Error expression `f()` unhandled.
-Language/06_Functions/06_Functions_A01_t24: Crash # (f()): Error expression `f()` unhandled.
-Language/06_Functions/06_Functions_A01_t25: Crash # (f()): Error expression `f()` unhandled.
-Language/06_Functions/06_Functions_A01_t33: Crash # (f2()): Error expression `f2()` unhandled.
-Language/06_Functions/06_Functions_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/06_Functions/06_Functions_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/06_Functions/06_Functions_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/06_Functions/1_Function_Declaration_A01_t01: Crash # (f()): Error expression `f()` unhandled.
-Language/06_Functions/1_Function_Declaration_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/06_Functions/2_Formal_Parameters/1_Required_Formals_A02_t05: Crash #  "on T" catch block
-Language/06_Functions/2_Formal_Parameters/2_Optional_Formals_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/06_Functions/2_Formal_Parameters/2_Optional_Formals_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/06_Functions/2_Formal_Parameters/2_Optional_Formals_A01_t04: Crash # (f()): Error expression `f()` unhandled.
-Language/06_Functions/2_Formal_Parameters/2_Optional_Formals_A01_t05: Crash # (f()): Error expression `f()` unhandled.
-Language/06_Functions/2_Formal_Parameters/2_Optional_Formals_A01_t06: Crash #  "on T" catch block
-Language/06_Functions/2_Formal_Parameters/2_Optional_Formals_A01_t08: Crash # (f()): Error expression `f()` unhandled.
-Language/06_Functions/2_Formal_Parameters/2_Optional_Formals_A01_t09: Crash # (f()): Error expression `f()` unhandled.
-Language/06_Functions/2_Formal_Parameters/2_Optional_Formals_A01_t10: Crash #  "on T" catch block
-Language/06_Functions/2_Formal_Parameters/2_Optional_Formals_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/06_Functions/2_Formal_Parameters_A01_t02: Crash # (f(1,1)): Error expression `f(1,1)` unhandled.
-Language/06_Functions/2_Formal_Parameters_A01_t03: Crash # (f(1)): Error expression `f(1)` unhandled.
-Language/06_Functions/2_Formal_Parameters_A01_t04: Crash # (f(1)): Error expression `f(1)` unhandled.
-Language/06_Functions/2_Formal_Parameters_A01_t05: Crash # (f(1)): Error expression `f(1)` unhandled.
-Language/06_Functions/2_Formal_Parameters_A01_t06: Crash # (f()): Error expression `f()` unhandled.
-Language/06_Functions/2_Formal_Parameters_A01_t07: Crash # (f()): Error expression `f()` unhandled.
-Language/06_Functions/2_Formal_Parameters_A01_t09: Crash # (f(1,1)): Error expression `f(1,1)` unhandled.
-Language/06_Functions/2_Formal_Parameters_A01_t10: Crash # (f(1)): Error expression `f(1)` unhandled.
-Language/06_Functions/2_Formal_Parameters_A01_t12: Crash # (f(1)): Error expression `f(1)` unhandled.
-Language/06_Functions/2_Formal_Parameters_A01_t13: Crash # (f()): Error expression `f()` unhandled.
-Language/06_Functions/2_Formal_Parameters_A01_t14: Crash # (f()): Error expression `f()` unhandled.
-Language/06_Functions/2_Formal_Parameters_A01_t16: Crash # (f(1)): Error expression `f(1)` unhandled.
-Language/06_Functions/2_Formal_Parameters_A01_t17: Crash # (f(1)): Error expression `f(1)` unhandled.
-Language/06_Functions/2_Formal_Parameters_A01_t20: Crash # (f(1,2,3)): Error expression `f(1,2,3)` unhandled.
-Language/06_Functions/2_Formal_Parameters_A01_t21: Crash # (f(1,2,3)): Error expression `f(1,2,3)` unhandled.
-Language/06_Functions/2_Formal_Parameters_A02_t01: Crash #  "on T" catch block
-Language/06_Functions/2_Formal_Parameters_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/06_Functions/2_Formal_Parameters_A03_t03: Crash # (f(1)): handleStaticFunctionIncompatibleInvoke
-Language/06_Functions/2_Formal_Parameters_A03_t04: Crash # (f(1)): handleStaticFunctionIncompatibleInvoke
-Language/06_Functions/2_Formal_Parameters_A03_t06: Crash # (f(1)): handleStaticFunctionIncompatibleInvoke
-Language/06_Functions/3_Type_of_a_Function_A01_t01: Crash #  "on T" catch block
-Language/06_Functions/4_External_Functions_A01_t01: Crash #  "on T" catch block
-Language/07_Classes/07_Classes_A02_t12: Crash # (A): Error expression `A` unhandled.
-Language/07_Classes/07_Classes_A02_t13: Crash # (const A()): Error expression `const A()` unhandled.
-Language/07_Classes/07_Classes_A02_t16: Crash # (new A()): Error expression `new A()` unhandled.
-Language/07_Classes/07_Classes_A02_t17: Crash # (new A()): Error expression `new A()` unhandled.
-Language/07_Classes/07_Classes_A02_t18: Crash # (new A()): Error expression `new A()` unhandled.
-Language/07_Classes/07_Classes_A02_t19: Crash # (new A.B()): Error expression `new A.B()` unhandled.
-Language/07_Classes/07_Classes_A02_t21: Crash # (new A()): Error expression `new A()` unhandled.
-Language/07_Classes/07_Classes_A02_t22: Crash # (new A()): Error expression `new A()` unhandled.
-Language/07_Classes/07_Classes_A02_t23: Crash # (new A()): Error expression `new A()` unhandled.
-Language/07_Classes/07_Classes_A04_t01: Crash # (new A()): Error expression `new A()` unhandled.
-Language/07_Classes/07_Classes_A04_t02: Crash # (new A()): Error expression `new A()` unhandled.
-Language/07_Classes/07_Classes_A04_t04: Crash # (new A()): Error expression `new A()` unhandled.
-Language/07_Classes/07_Classes_A04_t05: Crash # (new A()): Error expression `new A()` unhandled.
-Language/07_Classes/07_Classes_A04_t13: Crash # (new A()): Error expression `new A()` unhandled.
-Language/07_Classes/07_Classes_A04_t17: Crash # (new A()): Error expression `new A()` unhandled.
-Language/07_Classes/07_Classes_A06_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/07_Classes_A06_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/07_Classes_A10_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/07_Classes_A11_t02: Crash # (new A()): Error expression `new A()` unhandled.
-Language/07_Classes/07_Classes_A11_t04: Crash # (new A()): Error expression `new A()` unhandled.
-Language/07_Classes/10_Superinterfaces_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/10_Superinterfaces_A07_t04: Crash # cannot compile methods that need interceptor calling convention.
-Language/07_Classes/1_Instance_Methods/2_Operators_A01_t01: Crash # cannot compile methods that need interceptor calling convention.
-Language/07_Classes/1_Instance_Methods/2_Operators_A01_t02: Crash # (new C()): Error expression `new C()` unhandled.
-Language/07_Classes/1_Instance_Methods/2_Operators_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/1_Instance_Methods/2_Operators_A02_t02: Crash # (new C()): Error expression `new C()` unhandled.
+Language/05_Variables/05_Variables_A14_t07: Crash # unsupported element kind: z2:field
+Language/05_Variables/1_Evaluation_of_Implicit_Variable_Getters_A01_t01: Crash # unsupported element kind: c:field
+Language/05_Variables/1_Evaluation_of_Implicit_Variable_Getters_A01_t02: Crash # unsupported element kind: sFinalTyped:field
+Language/05_Variables/1_Evaluation_of_Implicit_Variable_Getters_A01_t03: Crash # unsupported element kind: sFinalTyped:field
+Language/05_Variables/1_Evaluation_of_Implicit_Variable_Getters_A01_t04: RuntimeError # Please triage this failure.
+Language/05_Variables/1_Evaluation_of_Implicit_Variable_Getters_A01_t05: Crash # unsupported element kind: sTyped:field
+Language/07_Classes/07_Classes_A02_t17: Crash # Please triage this failure.
+Language/07_Classes/07_Classes_A02_t18: Crash # Please triage this failure.
+Language/07_Classes/07_Classes_A02_t19: Crash # Please triage this failure.
 Language/07_Classes/1_Instance_Methods/2_Operators_A02_t06: Crash # Please triage this failure.
-Language/07_Classes/1_Instance_Methods/2_Operators_A02_t20: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/1_Instance_Methods/2_Operators_A05_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/07_Classes/1_Instance_Methods/2_Operators_A06_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/07_Classes/1_Instance_Methods/2_Operators_A08_t01: Crash # cannot compile methods that need interceptor calling convention.
-Language/07_Classes/2_Getters_A01_t03: Crash # (try {var x=new C().getter;}on C catch (ok){}): "on T" catch block
-Language/07_Classes/2_Getters_A01_t05: Crash # (try {var x=C.getter;}on C catch (ok){}): "on T" catch block
-Language/07_Classes/2_Getters_A02_t01: Crash #  "on T" catch block
-Language/07_Classes/2_Getters_A04_t08: Crash # (C.foo()): Error expression `C.foo()` unhandled.
-Language/07_Classes/2_Getters_A04_t09: Crash # (C.foo()): Error expression `C.foo()` unhandled.
-Language/07_Classes/3_Setters_A04_t01: Crash #  "on T" catch block
-Language/07_Classes/3_Setters_A04_t05: Crash #  "on T" catch block
-Language/07_Classes/3_Setters_A04_t07: Crash # (C.foo(1)): Error expression `C.foo(1)` unhandled.
-Language/07_Classes/3_Setters_A08_t01: Crash # (C.foo="foo"): Error expression `C.foo="foo"` unhandled.
-Language/07_Classes/3_Setters_A08_t02: Crash # (C.foo="foo"): Error expression `C.foo="foo"` unhandled.
-Language/07_Classes/3_Setters_A08_t04: Crash # (C.foo="foo"): Error expression `C.foo="foo"` unhandled.
-Language/07_Classes/3_Setters_A08_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/4_Abstract_Instance_Members_A02_t01: Crash #  "on T" catch block
-Language/07_Classes/4_Abstract_Instance_Members_A02_t02: Crash #  "on T" catch block
-Language/07_Classes/4_Abstract_Instance_Members_A02_t03: Crash #  "on T" catch block
-Language/07_Classes/4_Abstract_Instance_Members_A02_t04: Crash #  "on T" catch block
-Language/07_Classes/4_Abstract_Instance_Members_A03_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/4_Abstract_Instance_Members_A03_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/4_Abstract_Instance_Members_A03_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/4_Abstract_Instance_Members_A04_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/4_Abstract_Instance_Members_A04_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/4_Abstract_Instance_Members_A04_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/4_Abstract_Instance_Members_A07_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A01_t06: Crash # (new C.c3()): Error expression `new C.c3()` unhandled.
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A04_t01: Crash # handleStaticFunctionGet: function(foo)
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A04_t02: Crash # (new C()): Error expression `new C()` unhandled.
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A04_t03: Crash # (new C()): Error expression `new C()` unhandled.
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A04_t05: Crash # (new C()): Error expression `new C()` unhandled.
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A04_t07: Crash # (new C()): Error expression `new C()` unhandled.
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A04_t09: Crash # (new C()): Error expression `new C()` unhandled.
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A04_t10: Crash # (new C()): Error expression `new C()` unhandled.
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A04_t11: Crash # (new C()): Error expression `new C()` unhandled.
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A04_t15: Crash #  "on T" catch block
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A04_t16: Crash # (new C()): Error expression `new C()` unhandled.
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A06_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A06_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A11_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A11_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A11_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A11_t10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A12_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A12_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A12_t03: Crash #  "on T" catch block
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A12_t04: Crash #  "on T" catch block
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A13_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A17_t01: Crash #  "on T" catch block
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A17_t02: Crash #  "on T" catch block
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A18_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A18_t03: Crash #  "on T" catch block
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A20_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/6_Constructors/1_Generative_Constructors_A20_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/6_Constructors/2_Factories_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/6_Constructors/2_Factories_A03_t07: Crash #  "on T" catch block
-Language/07_Classes/6_Constructors/2_Factories_A06_t01: Crash #  "on T" catch block
-Language/07_Classes/6_Constructors/2_Factories_A06_t02: Crash #  "on T" catch block
-Language/07_Classes/6_Constructors/2_Factories_A06_t03: Crash #  "on T" catch block
-Language/07_Classes/6_Constructors/2_Factories_A06_t04: Crash #  "on T" catch block
-Language/07_Classes/6_Constructors/2_Factories_A07_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/6_Constructors/2_Factories_A07_t02: Crash # (new A.foo()): Error expression `new A.foo()` unhandled.
-Language/07_Classes/6_Constructors/2_Factories_A08_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/6_Constructors/2_Factories_A08_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/6_Constructors/2_Factories_A09_t01: Crash # (new F()): Error expression `new F()` unhandled.
-Language/07_Classes/6_Constructors/2_Factories_A09_t02: Crash # (new F.id()): Error expression `new F.id()` unhandled.
-Language/07_Classes/6_Constructors/2_Factories_A09_t03: Crash # (new F()): Error expression `new F()` unhandled.
-Language/07_Classes/6_Constructors/2_Factories_A09_t04: Crash # (new F1()): Error expression `new F1()` unhandled.
-Language/07_Classes/6_Constructors/2_Factories_A10_t01: Crash # (new F()): Error expression `new F()` unhandled.
-Language/07_Classes/6_Constructors/2_Factories_A10_t02: Crash # (new F()): Error expression `new F()` unhandled.
-Language/07_Classes/6_Constructors/2_Factories_A10_t03: Crash # (new F()): Error expression `new F()` unhandled.
-Language/07_Classes/6_Constructors/2_Factories_A10_t04: Crash # (new F.foo()): Error expression `new F.foo()` unhandled.
-Language/07_Classes/6_Constructors/2_Factories_A12_t02: Crash #  "on T" catch block
-Language/07_Classes/6_Constructors/2_Factories_A14_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/6_Constructors_A01_t01: Crash # (new C.foo()): Error expression `new C.foo()` unhandled.
-Language/07_Classes/6_Constructors_A01_t02: Crash # (new C.foo()): Error expression `new C.foo()` unhandled.
-Language/07_Classes/6_Constructors_A01_t03: Crash # (new C.foo()): Error expression `new C.foo()` unhandled.
-Language/07_Classes/6_Constructors_A01_t06: Crash # (new C.foo()): Error expression `new C.foo()` unhandled.
-Language/07_Classes/6_Constructors_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/6_Constructors_A03_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/6_Constructors_A03_t03: Crash #  "on T" catch block
-Language/07_Classes/7_Static_Methods_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/7_Static_Methods_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/8_Static_Variables_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/9_Superclasses/1_Inheritance_and_Overriding_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/9_Superclasses/1_Inheritance_and_Overriding_A01_t03: Crash #  "on T" catch block
-Language/07_Classes/9_Superclasses/1_Inheritance_and_Overriding_A01_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/9_Superclasses/1_Inheritance_and_Overriding_A01_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/9_Superclasses/1_Inheritance_and_Overriding_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/9_Superclasses/1_Inheritance_and_Overriding_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/9_Superclasses/1_Inheritance_and_Overriding_A02_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/9_Superclasses/1_Inheritance_and_Overriding_A02_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/9_Superclasses_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/9_Superclasses_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/07_Classes/9_Superclasses_A05_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/08_Interfaces/5_Superinterfaces/1_Inheritance_and_Overriding_A01_t01: Crash #  "on T" catch block
-Language/08_Interfaces/5_Superinterfaces/1_Inheritance_and_Overriding_A01_t02: Crash #  "on T" catch block
-Language/08_Interfaces/5_Superinterfaces/1_Inheritance_and_Overriding_A02_t01: Crash #  "on T" catch block
-Language/08_Interfaces/5_Superinterfaces/1_Inheritance_and_Overriding_A02_t02: Crash #  "on T" catch block
-Language/08_Interfaces/5_Superinterfaces/1_Inheritance_and_Overriding_A02_t04: Crash #  "on T" catch block
-Language/08_Interfaces/5_Superinterfaces/1_Inheritance_and_Overriding_A02_t05: Crash #  "on T" catch block
-Language/08_Interfaces/5_Superinterfaces_A01_t04: Crash # (new B()): Error expression `new B()` unhandled.
-Language/10_Generics/09_Generics_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/10_Generics/09_Generics_A01_t16: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/10_Generics/09_Generics_A03_t01: Crash #  "on T" catch block
-Language/10_Generics/09_Generics_A04_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/10_Generics/09_Generics_A04_t06: Crash #  "on T" catch block
-Language/10_Generics/10_Generics_A05_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/10_Generics/10_Generics_A05_t02: Crash #  "on T" catch block
-Language/10_Generics/10_Generics_A05_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/00_Object_Identity/1_Object_Identity_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/00_Object_Identity/1_Object_Identity_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/00_Object_Identity/1_Object_Identity_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/00_Object_Identity/1_Object_Identity_A02_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/00_Object_Identity/1_Object_Identity_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/00_Object_Identity/1_Object_Identity_A03_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/00_Object_Identity/1_Object_Identity_A04_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/00_Object_Identity/1_Object_Identity_A04_t02: Crash # Please triage this failure.
-Language/12_Expressions/00_Object_Identity/1_Object_Identity_A05_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/00_Object_Identity/1_Object_Identity_A05_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/00_Object_Identity/1_Object_Identity_A06_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/00_Object_Identity/1_Object_Identity_A07_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/00_Object_Identity/1_Object_Identity_A07_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/00_Object_Identity/1_Object_Identity_A08_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/01_Constants_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/01_Constants_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/01_Constants_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/01_Constants_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/01_Constants_A05_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/01_Constants_A06_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/01_Constants_A07_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/01_Constants_A08_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/01_Constants_A09_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/01_Constants_A10_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/01_Constants_A10_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/01_Constants_A11_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/01_Constants_A12_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/01_Constants_A12_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/01_Constants_A12_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/01_Constants_A12_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/01_Constants_A13_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/01_Constants_A13_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/01_Constants_A14_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/01_Constants_A14_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/02_Null_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/02_Null_A05_t02: Crash #  "on T" catch block
-Language/12_Expressions/03_Numbers_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/03_Numbers_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/03_Numbers_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/03_Numbers_A01_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/03_Numbers_A01_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/03_Numbers_A01_t09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/03_Numbers_A01_t10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/03_Numbers_A05_t02: Crash #  "on T" catch block
-Language/12_Expressions/03_Numbers_A06_t02: Crash #  "on T" catch block
-Language/12_Expressions/04_Booleans/1_Boolean_Conversion_A01_t01: Crash # (try {if(null){}fail=true;}on AssertionError catch (ok){}): "on T" catch block
-Language/12_Expressions/04_Booleans/1_Boolean_Conversion_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/04_Booleans/1_Boolean_Conversion_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/04_Booleans/1_Boolean_Conversion_A02_t01: Crash #  "on T" catch block
-Language/12_Expressions/04_Booleans_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/04_Booleans_A04_t02: Crash #  "on T" catch block
-Language/12_Expressions/05_Strings/1_String_Interpolation_A01_t06: Crash # (try {"${T}";}on NoSuchMethodError catch (ok){print(ok);}): "on T" catch block
-Language/12_Expressions/05_Strings/1_String_Interpolation_A01_t07: Crash #  "on T" catch block
-Language/12_Expressions/05_Strings/1_String_Interpolation_A01_t12: Crash # handleStaticFunctionGet: function(foo)
-Language/12_Expressions/05_Strings/1_String_Interpolation_A01_t13: Crash #  "on T" catch block
-Language/12_Expressions/05_Strings/1_String_Interpolation_A01_t17: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/05_Strings/1_String_Interpolation_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/05_Strings/1_String_Interpolation_A02_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/05_Strings/1_String_Interpolation_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/05_Strings/1_String_Interpolation_A03_t02: Crash #  "on T" catch block
-Language/12_Expressions/05_Strings/1_String_Interpolation_A03_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/05_Strings/1_String_Interpolation_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/05_Strings/1_String_Interpolation_A04_t02: Crash #  "on T" catch block
-Language/12_Expressions/05_Strings/1_String_Interpolation_A04_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/05_Strings/1_String_Interpolation_A04_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/05_Strings_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/05_Strings_A04_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/05_Strings_A05_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/05_Strings_A06_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/05_Strings_A07_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/05_Strings_A08_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/05_Strings_A09_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/05_Strings_A10_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/05_Strings_A11_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/05_Strings_A12_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/05_Strings_A13_t04: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/05_Strings_A14_t05: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/05_Strings_A15_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/05_Strings_A15_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/05_Strings_A16_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/05_Strings_A18_t02: Crash #  "on T" catch block
-Language/12_Expressions/05_Strings_A18_t03: Crash #  "on T" catch block
-Language/12_Expressions/05_Strings_A18_t04: Crash #  "on T" catch block
-Language/12_Expressions/05_Strings_A18_t05: Crash #  "on T" catch block
-Language/12_Expressions/05_Strings_A18_t06: Crash #  "on T" catch block
-Language/12_Expressions/05_Strings_A18_t07: Crash #  "on T" catch block
-Language/12_Expressions/05_Strings_A18_t08: Crash #  "on T" catch block
-Language/12_Expressions/05_Strings_A18_t09: Crash #  "on T" catch block
-Language/12_Expressions/05_Strings_A20_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/05_Strings_A21_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/05_Strings_A21_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/05_Strings_A21_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/05_Strings_A21_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/06_Lists_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/06_Lists_A05_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/06_Lists_A05_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/06_Lists_A06_t01: Crash # Please triage this failure.
-Language/12_Expressions/06_Lists_A07_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/06_Lists_A07_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/06_Lists_A08_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/06_Lists_A08_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/06_Lists_A08_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/06_Lists_A08_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/06_Lists_A09_t01: Crash #  "on T" catch block
-Language/12_Expressions/06_Lists_A09_t02: Crash #  "on T" catch block
-Language/12_Expressions/06_Lists_A09_t03: Crash #  "on T" catch block
-Language/12_Expressions/06_Lists_A09_t04: Crash #  "on T" catch block
-Language/12_Expressions/06_Lists_A09_t05: Crash #  "on T" catch block
-Language/12_Expressions/06_Symbols_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/06_Symbols_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/07_Maps_A04_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/07_Maps_A04_t02: Crash # Please triage this failure.
-Language/12_Expressions/07_Maps_A05_t01: Crash # Please triage this failure.
-Language/12_Expressions/07_Maps_A06_t01: Crash # Please triage this failure.
-Language/12_Expressions/07_Maps_A06_t02: Crash # Please triage this failure.
-Language/12_Expressions/07_Maps_A07_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/07_Maps_A07_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/07_Maps_A07_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/07_Maps_A07_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/07_Maps_A09_t01: Crash # Please triage this failure.
-Language/12_Expressions/07_Maps_A10_t02: Crash #  "on T" catch block
-Language/12_Expressions/07_Maps_A10_t03: Crash #  "on T" catch block
-Language/12_Expressions/07_Maps_A10_t04: Crash #  "on T" catch block
-Language/12_Expressions/07_Maps_A10_t05: Crash #  "on T" catch block
-Language/12_Expressions/08_Throw_A02_t01: Crash # (throw "fail1"): Unhandled node
-Language/12_Expressions/08_Throw_A03_t02: Crash #  "on T" catch block
-Language/12_Expressions/08_Throw_A03_t03: Crash #  "on T" catch block
-Language/12_Expressions/08_Throw_A03_t04: Crash #  "on T" catch block
-Language/12_Expressions/08_Throw_A04_t01: Crash # (throw last): Unhandled node
-Language/12_Expressions/08_Throw_A08_t01: Crash # (try {bar(new Error());}on Error catch (e){Expect.isNotNull(e.stackTrace);}): "on T" catch block
-Language/12_Expressions/09_Function_Expressions_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/09_Function_Expressions_A03_t03: Crash #  "on T" catch block
-Language/12_Expressions/09_Function_Expressions_A03_t04: Crash #  "on T" catch block
-Language/12_Expressions/09_Function_Expressions_A04_t03: Crash #  "on T" catch block
-Language/12_Expressions/09_Function_Expressions_A04_t04: Crash #  "on T" catch block
-Language/12_Expressions/09_Function_Expressions_A05_t02: Crash #  "on T" catch block
-Language/12_Expressions/09_Function_Expressions_A05_t03: Crash #  "on T" catch block
-Language/12_Expressions/09_Function_Expressions_A05_t04: Crash #  "on T" catch block
-Language/12_Expressions/09_Function_Expressions_A05_t05: Crash #  "on T" catch block
-Language/12_Expressions/09_Function_Expressions_A06_t02: Crash #  "on T" catch block
-Language/12_Expressions/09_Function_Expressions_A06_t03: Crash #  "on T" catch block
-Language/12_Expressions/09_Function_Expressions_A06_t04: Crash #  "on T" catch block
-Language/12_Expressions/10_Expressions_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/10_This_A01_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/10_This_A02_t01: Crash #  "on T" catch block
-Language/12_Expressions/10_This_A03_t02: Crash # (func(1,2)): Error expression `func(1,2)` unhandled.
-Language/12_Expressions/12_Instance_Creation/1_New_A01_t04: Crash # (try {A();}on NoSuchMethodError catch (e){}): "on T" catch block
-Language/12_Expressions/12_Instance_Creation/1_New_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A02_t07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A03_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A04_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A06_t01: Crash #  "on T" catch block
-Language/12_Expressions/12_Instance_Creation/1_New_A06_t02: Crash #  "on T" catch block
-Language/12_Expressions/12_Instance_Creation/1_New_A06_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A06_t04: Crash #  "on T" catch block
-Language/12_Expressions/12_Instance_Creation/1_New_A06_t05: Crash #  "on T" catch block
-Language/12_Expressions/12_Instance_Creation/1_New_A06_t06: Crash #  "on T" catch block
-Language/12_Expressions/12_Instance_Creation/1_New_A06_t07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A06_t08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A06_t09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A06_t12: Crash #  "on T" catch block
-Language/12_Expressions/12_Instance_Creation/1_New_A06_t13: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A06_t14: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A06_t15: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A06_t16: Crash #  "on T" catch block
-Language/12_Expressions/12_Instance_Creation/1_New_A06_t17: Crash #  "on T" catch block
-Language/12_Expressions/12_Instance_Creation/1_New_A06_t18: Crash #  "on T" catch block
-Language/12_Expressions/12_Instance_Creation/1_New_A07_t01: Crash #  "on T" catch block
-Language/12_Expressions/12_Instance_Creation/1_New_A08_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/12_Instance_Creation/1_New_A08_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/12_Instance_Creation/1_New_A08_t03: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/12_Instance_Creation/1_New_A09_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A09_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A09_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A09_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A09_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A09_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A09_t07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A09_t08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A09_t09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A09_t10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A09_t11: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A09_t12: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A09_t13: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A09_t14: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A12_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A12_t02: Crash #  "on T" catch block
-Language/12_Expressions/12_Instance_Creation/1_New_A13_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A13_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A13_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation/1_New_A15_t01: Crash #  "on T" catch block
-Language/12_Expressions/12_Instance_Creation/1_New_A15_t02: Crash #  "on T" catch block
-Language/12_Expressions/12_Instance_Creation/1_New_A16_t01: Crash # (new C()): Error expression `new C()` unhandled.
-Language/12_Expressions/12_Instance_Creation/1_New_A16_t02: Crash # (new C.id()): Error expression `new C.id()` unhandled.
-Language/12_Expressions/12_Instance_Creation/2_Const_A08_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/12_Instance_Creation/2_Const_A08_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/12_Instance_Creation/2_Const_A08_t03: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/12_Instance_Creation/2_Const_A08_t04: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/12_Instance_Creation/2_Const_A08_t05: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/12_Instance_Creation_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/12_Instance_Creation_A01_t07: Crash #  "on T" catch block
-Language/12_Expressions/13_Property_Extraction_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/13_Property_Extraction_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/13_Property_Extraction_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/13_Property_Extraction_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/13_Property_Extraction_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/13_Property_Extraction_A03_t02: Crash # (throw new ExpectException(message)): Unhandled node
+Language/07_Classes/1_Instance_Methods/2_Operators_A02_t20: Crash # Instance of 'TypeOperator': type check unimplemented for dynamic.
+Language/07_Classes/6_Constructors/1_Generative_Constructors_A04_t01: Crash # (foo): handleStaticFunctionGet: function(foo)
+Language/07_Classes/6_Constructors/1_Generative_Constructors_A04_t02: Crash # Please triage this failure.
+Language/07_Classes/6_Constructors/1_Generative_Constructors_A04_t03: Crash # Please triage this failure.
+Language/07_Classes/6_Constructors/1_Generative_Constructors_A04_t05: Crash # Please triage this failure.
+Language/07_Classes/6_Constructors/1_Generative_Constructors_A04_t07: Crash # Please triage this failure.
+Language/07_Classes/6_Constructors/1_Generative_Constructors_A04_t09: Crash # Please triage this failure.
+Language/07_Classes/6_Constructors/1_Generative_Constructors_A04_t10: Crash # Please triage this failure.
+Language/07_Classes/6_Constructors/1_Generative_Constructors_A04_t11: Crash # Please triage this failure.
+Language/07_Classes/6_Constructors/1_Generative_Constructors_A04_t16: Crash # Please triage this failure.
+Language/07_Classes/6_Constructors/1_Generative_Constructors_A13_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/07_Classes/6_Constructors/2_Factories_A09_t01: Crash # Please triage this failure.
+Language/07_Classes/6_Constructors/2_Factories_A09_t02: Crash # Please triage this failure.
+Language/07_Classes/6_Constructors/2_Factories_A09_t03: Crash # Please triage this failure.
+Language/07_Classes/6_Constructors/2_Factories_A09_t04: Crash # Please triage this failure.
+Language/07_Classes/6_Constructors/2_Factories_A14_t03: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/07_Classes/7_Static_Methods_A01_t02: RuntimeError # Please triage this failure.
+Language/10_Generics/09_Generics_A04_t03: Crash # Instance of 'TypeOperator': type check unimplemented for S.
+Language/10_Generics/10_Generics_A05_t01: Crash # Instance of 'TypeOperator': type check unimplemented for T.
+Language/10_Generics/10_Generics_A05_t03: Crash # Instance of 'TypeOperator': type check unimplemented for T.
+Language/12_Expressions/00_Object_Identity/1_Object_Identity_A01_t01: Crash # unsupported element kind: notNil:field
+Language/12_Expressions/00_Object_Identity/1_Object_Identity_A01_t02: Crash # unsupported element kind: false2:field
+Language/12_Expressions/00_Object_Identity/1_Object_Identity_A05_t01: Crash # unsupported element kind: o2:field
+Language/12_Expressions/00_Object_Identity/1_Object_Identity_A07_t01: Crash # unsupported element kind: n7:field
+Language/12_Expressions/01_Constants_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/12_Expressions/01_Constants_A02_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/12_Expressions/01_Constants_A03_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/12_Expressions/01_Constants_A04_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/12_Expressions/01_Constants_A07_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/12_Expressions/01_Constants_A08_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/12_Expressions/01_Constants_A09_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/12_Expressions/01_Constants_A10_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/12_Expressions/01_Constants_A10_t03: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/12_Expressions/01_Constants_A11_t04: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/12_Expressions/01_Constants_A12_t03: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/12_Expressions/01_Constants_A12_t04: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/12_Expressions/01_Constants_A12_t05: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/12_Expressions/01_Constants_A12_t06: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/12_Expressions/01_Constants_A13_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/12_Expressions/01_Constants_A13_t05: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/12_Expressions/01_Constants_A14_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/12_Expressions/01_Constants_A14_t02: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/12_Expressions/05_Strings/1_String_Interpolation_A01_t12: Crash # (foo): handleStaticFunctionGet: function(foo)
+Language/12_Expressions/05_Strings/1_String_Interpolation_A02_t02: Crash # (id): handleStaticFunctionGet: function(id)
+Language/12_Expressions/06_Lists_A08_t04: Crash # Instance of 'TypeOperator': type check unimplemented for List<int>.
+Language/12_Expressions/07_Maps_A07_t04: Crash # Instance of 'TypeOperator': type check unimplemented for Map<String, int>.
+Language/12_Expressions/07_Maps_A09_t01: Crash # (func): handleStaticFunctionGet: function(func)
+Language/12_Expressions/10_Expressions_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/12_Expressions/12_Instance_Creation/1_New_A06_t07: Crash # (test): handleStaticFunctionGet: function(test)
+Language/12_Expressions/12_Instance_Creation/1_New_A06_t08: Crash # (test): handleStaticFunctionGet: function(test)
+Language/12_Expressions/12_Instance_Creation/1_New_A06_t09: Crash # (test): handleStaticFunctionGet: function(test)
+Language/12_Expressions/12_Instance_Creation/1_New_A06_t12: RuntimeError # Please triage this failure.
+Language/12_Expressions/12_Instance_Creation/1_New_A06_t13: RuntimeError # Please triage this failure.
+Language/12_Expressions/12_Instance_Creation/1_New_A06_t14: Crash # Please triage this failure.
+Language/12_Expressions/12_Instance_Creation/1_New_A09_t02: Crash # Instance of 'TypeOperator': type check unimplemented for A.
+Language/12_Expressions/12_Instance_Creation/1_New_A09_t11: Crash # Instance of 'TypeOperator': type check unimplemented for A.
+Language/12_Expressions/13_Property_Extraction_A03_t01: RuntimeError # Please triage this failure.
+Language/12_Expressions/13_Property_Extraction_A03_t02: RuntimeError # Please triage this failure.
 Language/12_Expressions/13_Property_Extraction_A03_t03: RuntimeError # Please triage this failure.
-Language/12_Expressions/13_Property_Extraction_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/13_Property_Extraction_A04_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/13_Property_Extraction_A04_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/13_Spawning_an_Isolate_A01_t01: Crash # unsupported element kind: _completer:field
-Language/12_Expressions/14_Function_Invocation/1_Actual_Argument_List_Evaluation_A01_t01: Crash # Please triage this failure.
-Language/12_Expressions/14_Function_Invocation/1_Actual_Argument_List_Evaluation_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/14_Function_Invocation/2_Binding_Actuals_to_Formals_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/14_Function_Invocation/2_Binding_Actuals_to_Formals_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/14_Function_Invocation/2_Binding_Actuals_to_Formals_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/14_Function_Invocation/2_Binding_Actuals_to_Formals_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/14_Function_Invocation/2_Binding_Actuals_to_Formals_A01_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/14_Function_Invocation/2_Binding_Actuals_to_Formals_A02_t01: Crash #  "on T" catch block
-Language/12_Expressions/14_Function_Invocation/2_Binding_Actuals_to_Formals_A03_t01: Crash #  "on T" catch block
-Language/12_Expressions/14_Function_Invocation/2_Binding_Actuals_to_Formals_A05_t01: Crash #  "on T" catch block
-Language/12_Expressions/14_Function_Invocation/2_Binding_Actuals_to_Formals_A05_t02: Crash #  "on T" catch block
-Language/12_Expressions/14_Function_Invocation/2_Binding_Actuals_to_Formals_A05_t03: Crash #  "on T" catch block
-Language/12_Expressions/14_Function_Invocation/2_Binding_Actuals_to_Formals_A05_t04: Crash #  "on T" catch block
-Language/12_Expressions/14_Function_Invocation/2_Binding_Actuals_to_Formals_A06_t01: Crash # Please triage this failure.
-Language/12_Expressions/14_Function_Invocation/2_Binding_Actuals_to_Formals_A06_t04: Crash # Please triage this failure.
-Language/12_Expressions/14_Function_Invocation/2_Binding_Actuals_to_Formals_A06_t05: Crash # (func(1,2,3,4)): handleStaticFunctionIncompatibleInvoke
-Language/12_Expressions/14_Function_Invocation/2_Binding_Actuals_to_Formals_A06_t08: Crash # (C.func(1,2,3,4)): handleStaticFunctionIncompatibleInvoke
-Language/12_Expressions/14_Function_Invocation/2_Binding_Actuals_to_Formals_A07_t01: Crash # (func(1,2,p:3)): handleStaticFunctionIncompatibleInvoke
-Language/12_Expressions/14_Function_Invocation/2_Binding_Actuals_to_Formals_A07_t04: Crash # (C.func(1,2,p:3)): handleStaticFunctionIncompatibleInvoke
-Language/12_Expressions/14_Function_Invocation/2_Binding_Actuals_to_Formals_A08_t01: Crash #  "on T" catch block
-Language/12_Expressions/14_Function_Invocation/2_Binding_Actuals_to_Formals_A08_t02: Crash #  "on T" catch block
-Language/12_Expressions/14_Function_Invocation/2_Binding_Actuals_to_Formals_A08_t03: Crash #  "on T" catch block
-Language/12_Expressions/14_Function_Invocation/2_Binding_Actuals_to_Formals_A08_t04: Crash #  "on T" catch block
-Language/12_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t03: Crash #  "on T" catch block
-Language/12_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t04: Crash #  "on T" catch block
-Language/12_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t05: Crash #  "on T" catch block
-Language/12_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t07: Crash #  "on T" catch block
-Language/12_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t10: Crash # (try {undeclared();}on NoSuchMethodError catch (ok){}): "on T" catch block
-Language/12_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t11: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t13: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t14: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t15: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t16: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t17: Crash # unable to build cps definition of generative_constructor(C#)
-Language/12_Expressions/14_Function_Invocation/4_Function_Expression_Invocation_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/14_Function_Invocation/4_Function_Expression_Invocation_A01_t02: Crash #  "on T" catch block
-Language/12_Expressions/14_Function_Invocation/4_Function_Expression_Invocation_A02_t01: Crash #  "on T" catch block
-Language/12_Expressions/14_Function_Invocation/4_Function_Expression_Invocation_A03_t01: Crash #  "on T" catch block
-Language/12_Expressions/14_Function_Invocation/4_Function_Expression_Invocation_A03_t02: Crash #  "on T" catch block
-Language/12_Expressions/14_Function_Invocation/4_Function_Expression_Invocation_A04_t02: Crash #  "on T" catch block
-Language/12_Expressions/14_Function_Invocation/4_Function_Expression_Invocation_A05_t02: Crash #  "on T" catch block
-Language/12_Expressions/14_Function_Invocation_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/14_Function_Invocation_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/14_Function_Invocation_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/14_Function_Invocation_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/1_Ordinary_Invocation_A02_t01: Crash #  "on T" catch block
-Language/12_Expressions/15_Method_Invocation/1_Ordinary_Invocation_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/1_Ordinary_Invocation_A03_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/1_Ordinary_Invocation_A03_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/1_Ordinary_Invocation_A03_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/1_Ordinary_Invocation_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/1_Ordinary_Invocation_A04_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/1_Ordinary_Invocation_A04_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/1_Ordinary_Invocation_A04_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/1_Ordinary_Invocation_A05_t01: Crash #  "on T" catch block
-Language/12_Expressions/15_Method_Invocation/1_Ordinary_Invocation_A05_t02: Crash #  "on T" catch block
-Language/12_Expressions/15_Method_Invocation/1_Ordinary_Invocation_A05_t03: Crash #  "on T" catch block
-Language/12_Expressions/15_Method_Invocation/1_Ordinary_Invocation_A05_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/1_Ordinary_Invocation_A05_t05: Crash #  "on T" catch block
-Language/12_Expressions/15_Method_Invocation/1_Ordinary_Invocation_A05_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/1_Ordinary_Invocation_A05_t07: Crash #  "on T" catch block
-Language/12_Expressions/15_Method_Invocation/1_Ordinary_Invocation_A06_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/1_Ordinary_Invocation_A06_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/1_Ordinary_Invocation_A06_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/1_Ordinary_Invocation_A06_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/1_Ordinary_Invocation_A07_t01: Crash #  "on T" catch block
-Language/12_Expressions/15_Method_Invocation/1_Ordinary_Invocation_A08_t01: Crash #  "on T" catch block
-Language/12_Expressions/15_Method_Invocation/2_Cascaded_Invocation_A01_t01: Crash # cannot compile methods that need interceptor calling convention.
-Language/12_Expressions/15_Method_Invocation/2_Cascaded_Invocation_A01_t19: Crash #  "on T" catch block
-Language/12_Expressions/15_Method_Invocation/2_Cascaded_Invocation_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/15_Method_Invocation/2_Cascaded_Invocation_A02_t02: Crash #  "on T" catch block
-Language/12_Expressions/15_Method_Invocation/3_Static_Invocation_A02_t01: Crash # (C): Error expression `C` unhandled.
-Language/12_Expressions/15_Method_Invocation/3_Static_Invocation_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/3_Static_Invocation_A03_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/3_Static_Invocation_A03_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/3_Static_Invocation_A03_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/3_Static_Invocation_A03_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/3_Static_Invocation_A03_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/3_Static_Invocation_A03_t07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/3_Static_Invocation_A04_t01: Crash #  "on T" catch block
-Language/12_Expressions/15_Method_Invocation/3_Static_Invocation_A04_t02: Crash #  "on T" catch block
-Language/12_Expressions/15_Method_Invocation/3_Static_Invocation_A04_t03: Crash #  "on T" catch block
-Language/12_Expressions/15_Method_Invocation/3_Static_Invocation_A04_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/3_Static_Invocation_A04_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/3_Static_Invocation_A04_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/3_Static_Invocation_A04_t07: Crash #  "on T" catch block
-Language/12_Expressions/15_Method_Invocation/3_Static_Invocation_A04_t08: Crash #  "on T" catch block
-Language/12_Expressions/15_Method_Invocation/3_Static_Invocation_A04_t09: Crash #  "on T" catch block
-Language/12_Expressions/15_Method_Invocation/3_Static_Invocation_A05_t01: Crash #  "on T" catch block
-Language/12_Expressions/15_Method_Invocation/3_Static_Invocation_A06_t02: Crash #  "on T" catch block
+Language/12_Expressions/13_Spawning_an_Isolate_A01_t01: Crash # (iMain): handleStaticFunctionGet: function(iMain)
+Language/12_Expressions/14_Function_Invocation/1_Actual_Argument_List_Evaluation_A01_t01: Crash # (f): handleStaticFunctionGet: function(f)
+Language/12_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t05: Crash # unsupported element kind: f:field
+Language/12_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t13: Crash # unsupported element kind: test4:field
+Language/12_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t14: Crash # unsupported element kind: test4:field
+Language/12_Expressions/15_Method_Invocation/1_Ordinary_Invocation_A05_t04: Crash # (f1): handleStaticFunctionGet: function(f1)
+Language/12_Expressions/15_Method_Invocation/1_Ordinary_Invocation_A05_t07: Crash # (func): handleStaticFunctionGet: function(func)
+Language/12_Expressions/15_Method_Invocation/3_Static_Invocation_A04_t05: Crash # (func): handleStaticFunctionGet: function(C#func)
 Language/12_Expressions/15_Method_Invocation/4_Super_Invocation_A01_t01: RuntimeError # Please triage this failure.
-Language/12_Expressions/15_Method_Invocation/4_Super_Invocation_A02_t01: Crash #  "on T" catch block
-Language/12_Expressions/15_Method_Invocation/4_Super_Invocation_A02_t02: Crash #  "on T" catch block
-Language/12_Expressions/15_Method_Invocation/4_Super_Invocation_A02_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/4_Super_Invocation_A02_t04: Crash #  "on T" catch block
-Language/12_Expressions/15_Method_Invocation/4_Super_Invocation_A02_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/4_Super_Invocation_A03_t01: Crash #  "on T" catch block
-Language/12_Expressions/15_Method_Invocation/4_Super_Invocation_A03_t02: Crash #  "on T" catch block
-Language/12_Expressions/15_Method_Invocation/4_Super_Invocation_A03_t03: Crash #  "on T" catch block
-Language/12_Expressions/15_Method_Invocation/4_Super_Invocation_A03_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/4_Super_Invocation_A04_t01: Crash # (throw new TestException()): Unhandled node
-Language/12_Expressions/15_Method_Invocation/4_Super_Invocation_A04_t02: Crash # cannot compile methods that need interceptor calling convention.
-Language/12_Expressions/15_Method_Invocation/4_Super_Invocation_A04_t03: Crash # (throw new TestException()): Unhandled node
-Language/12_Expressions/15_Method_Invocation/4_Super_Invocation_A04_t04: Crash # (throw new TestException()): Unhandled node
-Language/12_Expressions/15_Method_Invocation/4_Super_Invocation_A06_t01: Crash #  "on T" catch block
-Language/12_Expressions/15_Method_Invocation/4_Super_Invocation_A06_t02: Crash #  "on T" catch block
-Language/12_Expressions/15_Method_Invocation/4_Super_Invocation_A06_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/4_Super_Invocation_A06_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/4_Super_Invocation_A06_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/15_Method_Invocation/4_Super_Invocation_A07_t01: Crash #  "on T" catch block
-Language/12_Expressions/15_Method_Invocation/4_Super_Invocation_A08_t02: Crash #  "on T" catch block
-Language/12_Expressions/16_Getter_Lookup_A02_t05: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/16_Getter_Lookup_A02_t06: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/17_Getter_Invocation_A01_t01: Crash #  "on T" catch block
-Language/12_Expressions/17_Getter_Invocation_A01_t02: Crash #  "on T" catch block
-Language/12_Expressions/17_Getter_Invocation_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/17_Getter_Invocation_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/17_Getter_Invocation_A02_t01: Crash #  "on T" catch block
-Language/12_Expressions/17_Getter_Invocation_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/17_Getter_Invocation_A04_t02: Crash #  "on T" catch block
-Language/12_Expressions/17_Getter_Invocation_A05_t01: Crash #  "on T" catch block
-Language/12_Expressions/17_Getter_Invocation_A05_t02: Crash #  "on T" catch block
-Language/12_Expressions/17_Getter_Invocation_A05_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/17_Getter_Invocation_A05_t04: Crash #  "on T" catch block
-Language/12_Expressions/17_Getter_Invocation_A05_t05: Crash #  "on T" catch block
-Language/12_Expressions/17_Getter_Invocation_A06_t01: Crash # (try {v;Expect.fail("TestException is expected");}on TestException catch (e){}): "on T" catch block
-Language/12_Expressions/17_Getter_Invocation_A06_t02: Crash #  "on T" catch block
-Language/12_Expressions/17_Getter_Invocation_A06_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/17_Getter_Invocation_A07_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/17_Getter_Invocation_A07_t02: Crash # cannot compile methods that need interceptor calling convention.
-Language/12_Expressions/17_Getter_Invocation_A08_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/17_Getter_Invocation_A08_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/17_Getter_Invocation_A08_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A01_t01: Crash # cannot compile methods that need interceptor calling convention.
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A01_t02: Crash # cannot compile methods that need interceptor calling convention.
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A01_t03: Crash # cannot compile methods that need interceptor calling convention.
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A01_t04: Crash # cannot compile methods that need interceptor calling convention.
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A01_t05: Crash # cannot compile methods that need interceptor calling convention.
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A01_t06: Crash # cannot compile methods that need interceptor calling convention.
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A01_t07: Crash # cannot compile methods that need interceptor calling convention.
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A01_t08: Crash # cannot compile methods that need interceptor calling convention.
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A01_t09: Crash # cannot compile methods that need interceptor calling convention.
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A01_t10: Crash # cannot compile methods that need interceptor calling convention.
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A01_t11: Crash # cannot compile methods that need interceptor calling convention.
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A02_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A02_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A02_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A02_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A02_t07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A02_t08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A02_t09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A02_t10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A02_t11: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A03_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A03_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A03_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A03_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A03_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A03_t07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A03_t08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A03_t09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A03_t10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A03_t11: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A04_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A04_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A04_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A04_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A04_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A04_t07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A04_t08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A04_t09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A04_t10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment/1_Compound_Assignment_A04_t11: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment_A01_t05: Crash #  "on T" catch block
-Language/12_Expressions/18_Assignment_A01_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment_A01_t07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment_A02_t01: Crash #  "on T" catch block
-Language/12_Expressions/18_Assignment_A03_t01: Crash #  "on T" catch block
-Language/12_Expressions/18_Assignment_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment_A04_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment_A04_t03: Crash #  "on T" catch block
-Language/12_Expressions/18_Assignment_A04_t04: Crash #  "on T" catch block
-Language/12_Expressions/18_Assignment_A04_t05: Crash #  "on T" catch block
-Language/12_Expressions/18_Assignment_A04_t06: Crash #  "on T" catch block
-Language/12_Expressions/18_Assignment_A04_t07: Crash #  "on T" catch block
-Language/12_Expressions/18_Assignment_A04_t08: Crash #  "on T" catch block
-Language/12_Expressions/18_Assignment_A04_t09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment_A05_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment_A05_t02: Crash #  "on T" catch block
-Language/12_Expressions/18_Assignment_A05_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment_A05_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment_A05_t05: Crash #  "on T" catch block
-Language/12_Expressions/18_Assignment_A06_t01: Crash #  "on T" catch block
-Language/12_Expressions/18_Assignment_A07_t01: Crash #  "on T" catch block
-Language/12_Expressions/18_Assignment_A08_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment_A08_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment_A08_t03: Crash #  "on T" catch block
-Language/12_Expressions/18_Assignment_A08_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment_A08_t05: Crash # cannot compile methods that need interceptor calling convention.
-Language/12_Expressions/18_Assignment_A09_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment_A09_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/18_Assignment_A09_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/19_Conditional_A02_t01: Crash #  "on T" catch block
-Language/12_Expressions/19_Conditional_A02_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/19_Conditional_A02_t03: Crash #  "on T" catch block
-Language/12_Expressions/19_Conditional_A02_t04: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/19_Conditional_A03_t01: Crash #  "on T" catch block
-Language/12_Expressions/19_Conditional_A04_t02: Crash #  "on T" catch block
-Language/12_Expressions/19_Conditional_A04_t03: Crash #  "on T" catch block
-Language/12_Expressions/19_Conditional_A05_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/19_Conditional_A06_t07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/19_Conditional_A06_t08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/19_Conditional_A06_t09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/20_Logical_Boolean_Expressions_A01_t01: Crash #  "on T" catch block
-Language/12_Expressions/20_Logical_Boolean_Expressions_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/20_Logical_Boolean_Expressions_A03_t01: Crash #  "on T" catch block
-Language/12_Expressions/20_Logical_Boolean_Expressions_A04_t02: Crash #  "on T" catch block
-Language/12_Expressions/20_Logical_Boolean_Expressions_A06_t09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/20_Logical_Boolean_Expressions_A06_t10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/20_Logical_Boolean_Expressions_A06_t12: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/20_Logical_Boolean_Expressions_A06_t13: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/20_Logical_Boolean_Expressions_A06_t14: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/20_Logical_Boolean_Expressions_A06_t15: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/20_Logical_Boolean_Expressions_A06_t16: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/20_Logical_Boolean_Expressions_A06_t17: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/20_Logical_Boolean_Expressions_A06_t18: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/20_Logical_Boolean_Expressions_A06_t19: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/20_Logical_Boolean_Expressions_A06_t20: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/20_Logical_Boolean_Expressions_A06_t21: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/20_Logical_Boolean_Expressions_A06_t27: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/20_Logical_Boolean_Expressions_A06_t28: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/20_Logical_Boolean_Expressions_A06_t29: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/20_Logical_Boolean_Expressions_A06_t30: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/20_Logical_Boolean_Expressions_A06_t31: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/20_Logical_Boolean_Expressions_A06_t32: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/21_Bitwise_Expressions_A01_t01: Crash # Please triage this failure.
-Language/12_Expressions/21_Bitwise_Expressions_A01_t14: Crash # (try {fun|1;}on NoSuchMethodError catch (e){}): "on T" catch block
-Language/12_Expressions/21_Bitwise_Expressions_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/21_Bitwise_Expressions_A02_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/21_Bitwise_Expressions_A02_t03: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/21_Bitwise_Expressions_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/21_Bitwise_Expressions_A03_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/21_Bitwise_Expressions_A03_t03: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/22_Equality_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/22_Equality_A02_t03: Crash # Please triage this failure.
-Language/12_Expressions/22_Equality_A02_t04: Crash #  "on T" catch block
-Language/12_Expressions/22_Equality_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/22_Equality_A03_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/22_Equality_A03_t03: Crash #  "on T" catch block
-Language/12_Expressions/22_Equality_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/22_Equality_A10_t02: Crash #  "on T" catch block
-Language/12_Expressions/23_Relational_Expressions_A01_t01: Crash # Please triage this failure.
-Language/12_Expressions/23_Relational_Expressions_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/23_Relational_Expressions_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/24_Shift_A01_t01: Crash # cannot compile methods that need interceptor calling convention.
-Language/12_Expressions/24_Shift_A01_t15: Crash # cannot compile methods that need interceptor calling convention.
-Language/12_Expressions/24_Shift_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/24_Shift_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/25_Additive_Expressions_A01_t01: Crash # cannot compile methods that need interceptor calling convention.
-Language/12_Expressions/25_Additive_Expressions_A01_t17: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/25_Additive_Expressions_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/25_Additive_Expressions_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/25_Additive_Expressions_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/26_Multiplicative_Expressions_A01_t01: Crash # Please triage this failure.
-Language/12_Expressions/26_Multiplicative_Expressions_A01_t27: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/26_Multiplicative_Expressions_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/26_Multiplicative_Expressions_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/27_Unary_Expressions_A01_t01: Crash # cannot compile methods that need interceptor calling convention.
-Language/12_Expressions/27_Unary_Expressions_A01_t02: Crash # ( --A): Error expression ` --A` unhandled.
-Language/12_Expressions/27_Unary_Expressions_A01_t04: Crash # ( --f): Error expression ` --f` unhandled.
-Language/12_Expressions/27_Unary_Expressions_A01_t05: Crash # ( ++T): Error expression ` ++T` unhandled.
-Language/12_Expressions/27_Unary_Expressions_A01_t10: Crash # Please triage this failure.
-Language/12_Expressions/27_Unary_Expressions_A01_t27: Crash # cannot compile methods that need interceptor calling convention.
-Language/12_Expressions/27_Unary_Expressions_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/27_Unary_Expressions_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/27_Unary_Expressions_A02_t03: Crash #  "on T" catch block
-Language/12_Expressions/27_Unary_Expressions_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/27_Unary_Expressions_A03_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/27_Unary_Expressions_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/27_Unary_Expressions_A04_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/27_Unary_Expressions_A07_t01: Crash # (try {~a;Expect.fail("Operator ~ was not called");}on TestException catch (e){}): "on T" catch block
-Language/12_Expressions/27_Unary_Expressions_A08_t01: Crash #  "on T" catch block
-Language/12_Expressions/28_Postfix_Expressions_A01_t01: Crash # Please triage this failure.
-Language/12_Expressions/28_Postfix_Expressions_A01_t02: Crash # (f++ ): Error expression `f++ ` unhandled.
-Language/12_Expressions/28_Postfix_Expressions_A01_t03: Crash # (A++ ): Error expression `A++ ` unhandled.
-Language/12_Expressions/28_Postfix_Expressions_A01_t05: Crash # (T++ ): Error expression `T++ ` unhandled.
-Language/12_Expressions/28_Postfix_Expressions_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/28_Postfix_Expressions_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/28_Postfix_Expressions_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/28_Postfix_Expressions_A03_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/28_Postfix_Expressions_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/28_Postfix_Expressions_A04_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/28_Postfix_Expressions_A05_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/28_Postfix_Expressions_A05_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/28_Postfix_Expressions_A06_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/28_Postfix_Expressions_A06_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/28_Postfix_Expressions_A07_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/28_Postfix_Expressions_A07_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/28_Postfix_Expressions_A08_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/28_Postfix_Expressions_A08_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/28_Postfix_Expressions_A09_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/28_Postfix_Expressions_A09_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/29_Assignable_Expressions_A01_t02: Crash # cannot compile methods that need interceptor calling convention.
-Language/12_Expressions/29_Assignable_Expressions_A01_t06: Crash # (A=1): Error expression `A=1` unhandled.
-Language/12_Expressions/29_Assignable_Expressions_A01_t08: Crash # (T=null): Error expression `T=null` unhandled.
-Language/12_Expressions/29_Assignable_Expressions_A01_t09: Crash # (f=null): Error expression `f=null` unhandled.
-Language/12_Expressions/29_Assignable_Expressions_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/29_Assignable_Expressions_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/29_Assignable_Expressions_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/29_Assignable_Expressions_A05_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/29_Assignable_Expressions_A06_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/30_Identifier_Reference_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/30_Identifier_Reference_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/30_Identifier_Reference_A01_t04: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/30_Identifier_Reference_A01_t05: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/30_Identifier_Reference_A01_t06: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/30_Identifier_Reference_A01_t08: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/30_Identifier_Reference_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/30_Identifier_Reference_A04_t02: Crash #  "on T" catch block
-Language/12_Expressions/30_Identifier_Reference_A07_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/30_Identifier_Reference_A08_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/30_Identifier_Reference_A08_t02: Crash #  "on T" catch block
-Language/12_Expressions/30_Identifier_Reference_A08_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/30_Identifier_Reference_A08_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/30_Identifier_Reference_A09_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/30_Identifier_Reference_A09_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+Language/12_Expressions/15_Method_Invocation/4_Super_Invocation_A02_t04: RuntimeError # Please triage this failure.
+Language/12_Expressions/15_Method_Invocation/4_Super_Invocation_A03_t04: Crash # (f1): handleStaticFunctionGet: function(f1)
+Language/12_Expressions/17_Getter_Invocation_A02_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+Language/12_Expressions/17_Getter_Invocation_A07_t02: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+Language/12_Expressions/18_Assignment_A05_t02: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+Language/12_Expressions/18_Assignment_A05_t05: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+Language/12_Expressions/20_Logical_Boolean_Expressions_A01_t01: RuntimeError # Please triage this failure.
+Language/12_Expressions/20_Logical_Boolean_Expressions_A06_t09: Crash # unsupported element kind: x:field
+Language/12_Expressions/20_Logical_Boolean_Expressions_A06_t10: Crash # unsupported element kind: x:field
+Language/12_Expressions/22_Equality_A03_t01: RuntimeError # Please triage this failure.
+Language/12_Expressions/30_Identifier_Reference_A08_t01: Crash # unsupported element kind: tlFinalTyped:field
+Language/12_Expressions/30_Identifier_Reference_A08_t02: Crash # unsupported element kind: tlFinalTyped:field
+Language/12_Expressions/30_Identifier_Reference_A08_t03: Crash # unsupported element kind: tlFinalTyped:field
 Language/12_Expressions/30_Identifier_Reference_A09_t03: Crash # (i=0): For-loop variable captured in loop header
-Language/12_Expressions/30_Identifier_Reference_A09_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/30_Identifier_Reference_A10_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/30_Identifier_Reference_A10_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/30_Identifier_Reference_A10_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/30_Identifier_Reference_A11_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/30_Identifier_Reference_A12_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/30_Identifier_Reference_A13_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/30_Identifier_Reference_A14_t01: Crash #  "on T" catch block
-Language/12_Expressions/30_Identifier_Reference_A14_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/30_Identifier_Reference_A14_t03: Crash #  "on T" catch block
-Language/12_Expressions/30_Identifier_Reference_A14_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/30_Identifier_Reference_A15_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/30_Identifier_Reference_A15_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/30_Identifier_Reference_A15_t03: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/30_Identifier_Reference_A15_t04: Crash #  "on T" catch block
+Language/12_Expressions/30_Identifier_Reference_A09_t04: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/12_Expressions/30_Identifier_Reference_A10_t01: Crash # (staticFunc): handleStaticFunctionGet: function(A#staticFunc)
+Language/12_Expressions/30_Identifier_Reference_A10_t02: Crash # (lib.f): handleStaticFunctionGet: function(f)
+Language/12_Expressions/30_Identifier_Reference_A13_t01: Crash # unsupported element kind: x4:field
 Language/12_Expressions/30_Identifier_Reference_A15_t05: Crash # unsupported element kind: x:field
 Language/12_Expressions/30_Identifier_Reference_A15_t06: Crash # unsupported element kind: x:field
-Language/12_Expressions/30_Identifier_Reference_A15_t07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/30_Identifier_Reference_A15_t08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/30_Identifier_Reference_A16_t04: Crash # handleStaticFunctionGet: function(libraryFunc)
-Language/12_Expressions/32_Type_Test_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/32_Type_Test_A02_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/32_Type_Test_A02_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/32_Type_Test_A02_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/32_Type_Test_A02_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/32_Type_Test_A02_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/32_Type_Test_A02_t07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/32_Type_Test_A02_t08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/32_Type_Test_A02_t09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/32_Type_Test_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/32_Type_Test_A03_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/12_Expressions/32_Type_Test_A07_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/32_Type_Test_A07_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/32_Type_Test_A07_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/33_Type_Cast_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/33_Type_Cast_A01_t04: Crash # (try {int as num;Expect.fail("CastError expected");}on CastError catch (e){}): "on T" catch block
-Language/12_Expressions/33_Type_Cast_A02_t01: Crash # (try {c=1 as I;Expect.fail("CastError expected");}on CastError catch (e){}): "on T" catch block
-Language/12_Expressions/33_Type_Cast_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/33_Type_Cast_A02_t03: Crash # (try {1 as func;Expect.fail("CastError expected");}on CastError catch (ok){}): "on T" catch block
-Language/12_Expressions/33_Type_Cast_A02_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/33_Type_Cast_A02_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/33_Type_Cast_A02_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/33_Type_Cast_A02_t07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/33_Type_Cast_A02_t08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/33_Type_Cast_A02_t09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/33_Type_Cast_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/33_Type_Cast_A04_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/Expressions_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/12_Expressions/Expressions_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/01_Blocks_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/01_Blocks_A01_t02: Crash # (throw 1): Unhandled node
-Language/13_Statements/01_Blocks_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/01_Blocks_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/02_Expression_Statements_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/02_Expression_Statements_A01_t06: Crash # cannot compile methods that need interceptor calling convention.
-Language/13_Statements/03_Variable_Declaration_A01_t01: Crash #  "on T" catch block
-Language/13_Statements/03_Variable_Declaration_A01_t02: Crash #  "on T" catch block
-Language/13_Statements/03_Variable_Declaration_A01_t05: Crash #  "on T" catch block
-Language/13_Statements/03_Variable_Declaration_A01_t06: Crash #  "on T" catch block
-Language/13_Statements/03_Variable_Declaration_A01_t08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/03_Variable_Declaration_A01_t14: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/03_Variable_Declaration_A01_t15: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/03_Variable_Declaration_A01_t18: Crash #  "on T" catch block
-Language/13_Statements/03_Variable_Declaration_A01_t19: Crash #  "on T" catch block
-Language/13_Statements/03_Variable_Declaration_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/13_Statements/03_Variable_Declaration_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/03_Variable_Declaration_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/04_Local_Function_Declaration_A02_t01: Crash #  "on T" catch block
-Language/13_Statements/04_Local_Function_Declaration_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/04_Local_Function_Declaration_A03_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/04_Local_Function_Declaration_A04_t01: Crash # (func()): Error expression `func()` unhandled.
-Language/13_Statements/04_Local_Function_Declaration_A04_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/04_Local_Function_Declaration_A04_t03: Crash # (oddHandler(x)): Error expression `oddHandler(x)` unhandled.
-Language/13_Statements/05_If_A01_t09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/05_If_A01_t10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/05_If_A01_t11: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/05_If_A01_t12: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/05_If_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/13_Statements/05_If_A02_t02: Crash # (try {if(i){i="hello";}}on AssertionError catch (e){err=true;}): "on T" catch block
-Language/13_Statements/05_If_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/05_If_A03_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/05_If_A03_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/05_If_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/05_If_A05_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/13_Statements/05_If_A05_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/13_Statements/05_If_A06_t07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/05_If_A06_t08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/05_If_A06_t09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/06_For/1_For_Loop_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/06_For/1_For_Loop_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/06_For/1_For_Loop_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/06_For/1_For_Loop_A01_t04: Crash # (throw new ExpectException(message)): Unhandled node
-Language/13_Statements/06_For/1_For_Loop_A01_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/06_For/1_For_Loop_A01_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/06_For/1_For_Loop_A01_t07: Crash #  "on T" catch block
-Language/13_Statements/06_For/1_For_Loop_A01_t08: Crash #  "on T" catch block
-Language/13_Statements/06_For/1_For_Loop_A01_t09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/06_For/1_For_Loop_A01_t10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/06_For/2_For_in_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/06_For/2_For_in_A01_t02: Crash #  "on T" catch block
-Language/13_Statements/06_For/2_For_in_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-Language/13_Statements/06_For/2_For_in_A01_t04: Crash #  "on T" catch block
-Language/13_Statements/06_For/2_For_in_A01_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/06_For_A01_t07: Crash #  "on T" catch block
-Language/13_Statements/07_While_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/07_While_A02_t02: Crash # (try {while(null){break;}fail=true;}on AssertionError catch (ok){}): "on T" catch block
-Language/13_Statements/07_While_A02_t03: Crash # (throw new ExpectException(message)): Unhandled node
-Language/13_Statements/07_While_A03_t01: Crash #  "on T" catch block
-Language/13_Statements/07_While_A03_t02: Crash #  "on T" catch block
-Language/13_Statements/07_While_A03_t03: Crash #  "on T" catch block
-Language/13_Statements/08_Do_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/08_Do_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/08_Do_A02_t03: Crash #  "on T" catch block
-Language/13_Statements/08_Do_A02_t04: Crash # (throw new ExpectException(message)): Unhandled node
+Language/12_Expressions/30_Identifier_Reference_A16_t04: Crash # (libraryFunc): handleStaticFunctionGet: function(libraryFunc)
+Language/12_Expressions/32_Type_Test_A02_t01: Crash # Instance of 'TypeOperator': type check unimplemented for dynamic.
+Language/12_Expressions/32_Type_Test_A02_t03: Crash # Instance of 'TypeOperator': type check unimplemented for Undeclared.
+Language/12_Expressions/32_Type_Test_A02_t04: Crash # Instance of 'TypeOperator': type check unimplemented for G<int, bool>.
+Language/12_Expressions/32_Type_Test_A02_t05: Crash # Instance of 'TypeOperator': type check unimplemented for G<int, bool>.
+Language/12_Expressions/32_Type_Test_A02_t06: Crash # Instance of 'TypeOperator': type check unimplemented for G<int, bool>.
+Language/12_Expressions/32_Type_Test_A02_t07: Crash # Instance of 'TypeOperator': type check unimplemented for G<Unknown>.
+Language/12_Expressions/32_Type_Test_A03_t01: Crash # Instance of 'TypeOperator': type check unimplemented for dynamic.
+Language/12_Expressions/32_Type_Test_A07_t01: Crash # Instance of 'TypeOperator': type check unimplemented for dynamic.
+Language/12_Expressions/32_Type_Test_A07_t02: Crash # Instance of 'TypeOperator': type check unimplemented for dynamic.
+Language/12_Expressions/33_Type_Cast_A01_t01: Crash # (f): handleStaticFunctionGet: function(f)
+Language/12_Expressions/33_Type_Cast_A01_t04: Crash # Instance of 'TypeOperator': type casts not implemented.
+Language/12_Expressions/33_Type_Cast_A02_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+Language/12_Expressions/33_Type_Cast_A02_t02: Crash # Instance of 'TypeOperator': type casts not implemented.
+Language/12_Expressions/33_Type_Cast_A02_t03: Crash # Instance of 'TypeOperator': type casts not implemented.
+Language/12_Expressions/33_Type_Cast_A02_t04: Crash # Instance of 'TypeOperator': type casts not implemented.
+Language/12_Expressions/33_Type_Cast_A02_t05: Crash # Instance of 'TypeOperator': type casts not implemented.
+Language/12_Expressions/33_Type_Cast_A02_t06: Crash # Instance of 'TypeOperator': type casts not implemented.
+Language/12_Expressions/33_Type_Cast_A02_t07: Crash # Instance of 'TypeOperator': type casts not implemented.
+Language/12_Expressions/33_Type_Cast_A02_t08: Crash # Instance of 'TypeOperator': type casts not implemented.
+Language/12_Expressions/33_Type_Cast_A02_t09: Crash # Instance of 'TypeOperator': type casts not implemented.
+Language/12_Expressions/33_Type_Cast_A04_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+Language/12_Expressions/33_Type_Cast_A04_t02: Crash # Instance of 'TypeOperator': type casts not implemented.
+Language/12_Expressions/Expressions_A01_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+Language/12_Expressions/Expressions_A01_t02: Crash # Instance of 'TypeOperator': type casts not implemented.
+Language/13_Statements/02_Expression_Statements_A01_t06: Crash # (C.s): handleStaticFunctionGet: function(C#s)
+Language/13_Statements/03_Variable_Declaration_A01_t14: Crash # Instance of 'TypeOperator': type check unimplemented for dynamic.
+Language/13_Statements/03_Variable_Declaration_A01_t15: Crash # Instance of 'TypeOperator': type check unimplemented for dynamic.
+Language/13_Statements/06_For_A01_t07: Crash # Instance of 'InvokeStatic': cannot generate error handling code for call to unresolved target
 Language/13_Statements/09_Switch_A01_t01: Crash # (switch (1){case 0:case 1:}): Unhandled node
 Language/13_Statements/09_Switch_A01_t02: Crash # (switch (1){l1:l2:l3:case (1):}): Unhandled node
-Language/13_Statements/09_Switch_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/09_Switch_A01_t05: Crash # (switchTest(0)): Error expression `switchTest(0)` unhandled.
-Language/13_Statements/09_Switch_A01_t06: Crash # (switchTest(1)): Error expression `switchTest(1)` unhandled.
-Language/13_Statements/09_Switch_A01_t09: Crash # (switchTest(0)): Error expression `switchTest(0)` unhandled.
-Language/13_Statements/09_Switch_A01_t10: Crash # (switchTest(0)): Error expression `switchTest(0)` unhandled.
-Language/13_Statements/09_Switch_A01_t12: Crash # (switchTest(0)): Error expression `switchTest(0)` unhandled.
-Language/13_Statements/09_Switch_A01_t14: Crash # (switchTest(0)): Error expression `switchTest(0)` unhandled.
-Language/13_Statements/09_Switch_A01_t18: Crash # (foo(1)): Error expression `foo(1)` unhandled.
+Language/13_Statements/09_Switch_A01_t03: Crash #  Unhandled node
 Language/13_Statements/09_Switch_A01_t19: Crash # (switch (1){case 0:break;label:print("hello");}): Unhandled node
 Language/13_Statements/09_Switch_A02_t03: Crash # (switch (null){case null:}): Unhandled node
-Language/13_Statements/09_Switch_A05_t01: Crash #  "on T" catch block
-Language/13_Statements/09_Switch_A05_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/09_Switch_A06_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/09_Switch_A06_t02: Crash #  "on T" catch block
-Language/13_Statements/09_Switch_A07_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/09_Switch_A07_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/09_Switch_A08_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/09_Switch_A08_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/09_Switch_A09_t01: Crash #  "on T" catch block
+Language/13_Statements/09_Switch_A05_t01: Crash # (switch ('abc'){case 1:break;}): Unhandled node
+Language/13_Statements/09_Switch_A05_t02: Crash # (switch (p){default:return 1;}): Unhandled node
+Language/13_Statements/09_Switch_A06_t01: Crash # (switch (p){case 1:var x=2;return x;case 2:var x=4;return x;}): Unhandled node
+Language/13_Statements/09_Switch_A06_t02: Crash # (switch (2){case 1:var x=2;break;case 2:x++ ;}): Unhandled node
+Language/13_Statements/09_Switch_A07_t01: Crash #  Unhandled node
+Language/13_Statements/09_Switch_A07_t02: Crash #  Unhandled node
+Language/13_Statements/09_Switch_A08_t01: Crash #  Unhandled node
+Language/13_Statements/09_Switch_A08_t02: Crash # (switch (value){case 1:case 2:result=1;case 3:case 4:result=2;break;case 5:case 6:}): Unhandled node
+Language/13_Statements/09_Switch_A09_t01: Crash # (switch (false){case 0:case 1:}): Unhandled node
 Language/13_Statements/09_Switch_A10_t01: Crash # (switch (1){case 0:false;case 1:true;break;}): Unhandled node
 Language/13_Statements/09_Switch_A10_t02: Crash # (switch (1){case 0:false;break;case 1:true;}): Unhandled node
 Language/13_Statements/09_Switch_A10_t03: Crash # (switch (1){case 0:false;break;default:true;}): Unhandled node
-Language/13_Statements/10_Rethrow_A01_t01: Crash #  "on T" catch block
-Language/13_Statements/10_Rethrow_A01_t02: Crash # (try {f2();}on String catch (bad){Expect.fail("wrong handler");}): "on T" catch block
-Language/13_Statements/10_Rethrow_A01_t03: Crash #  "on T" catch block
-Language/13_Statements/10_Rethrow_A01_t04: Crash #  "on T" catch block
-Language/13_Statements/10_Rethrow_A01_t05: Crash #  "on T" catch block
-Language/13_Statements/11_Return_A01_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/11_Return_A02_t01: Crash #  "on T" catch block
-Language/13_Statements/11_Return_A02_t02: Crash # (throw new ExpectException(message)): Unhandled node
-Language/13_Statements/11_Return_A02_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/11_Return_A03_t01: Crash #  "on T" catch block
-Language/13_Statements/11_Return_A03_t02: Crash #  "on T" catch block
-Language/13_Statements/11_Return_A04_t01: Crash #  "on T" catch block
-Language/13_Statements/11_Return_A07_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/13_Statements/11_Return_A07_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/13_Statements/11_Try_A01_t01: Crash # (try {throw "";}on int catch (ok){}catch (ok){}finally {}): "on T" catch block
-Language/13_Statements/11_Try_A01_t14: Crash # (throw "foo"): Unhandled node
-Language/13_Statements/11_Try_A02_t01: Crash #  "on T" catch block
-Language/13_Statements/11_Try_A02_t03: Crash # (try {throw new T2();}on T1 catch (p1,st){success=true;}): "on T" catch block
-Language/13_Statements/11_Try_A02_t04: Crash #  "on T" catch block
-Language/13_Statements/11_Try_A03_t01: Crash #  "on T" catch block
-Language/13_Statements/11_Try_A03_t02: Crash #  "on T" catch block
-Language/13_Statements/11_Try_A03_t03: Crash #  "on T" catch block
-Language/13_Statements/11_Try_A03_t04: Crash #  "on T" catch block
-Language/13_Statements/11_Try_A04_t01: Crash #  "on T" catch block
-Language/13_Statements/11_Try_A04_t03: Crash # (try {throw new T2();}on T1 catch (p1){success=true;}): "on T" catch block
-Language/13_Statements/11_Try_A04_t04: Crash #  "on T" catch block
-Language/13_Statements/11_Try_A05_t01: Crash # (throw new T2()): Unhandled node
-Language/13_Statements/11_Try_A06_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/13_Statements/11_Try_A07_t01: Crash #  "on T" catch block
-Language/13_Statements/11_Try_A07_t02: Crash #  "on T" catch block
-Language/13_Statements/11_Try_A07_t03: Crash #  "on T" catch block
-Language/13_Statements/11_Try_A08_t01: Crash #  "on T" catch block
-Language/13_Statements/11_Try_A09_t01: Crash #  not exactly one catch block
-Language/13_Statements/11_Try_A10_t01: Crash #  "on T" catch block
-Language/13_Statements/11_Try_A11_t01: Crash #  "on T" catch block
-Language/13_Statements/11_Try_A11_t02: Crash #  "on T" catch block
-Language/13_Statements/11_Try_A11_t03: Crash #  "on T" catch block
-Language/13_Statements/11_Try_A11_t04: Crash #  "on T" catch block
-Language/13_Statements/11_Try_A12_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+Language/13_Statements/11_Return_A02_t02: Crash # (try {return 1;}finally {flag=true;}): try/finally
+Language/13_Statements/11_Return_A02_t03: Crash # (try {return 1;}finally {return 2;}): try/finally
+Language/13_Statements/11_Try_A01_t01: Crash # (try {throw "";}on int catch (ok){}catch (ok){}finally {}): try/finally
+Language/13_Statements/11_Try_A03_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Unavailable.
+Language/13_Statements/11_Try_A03_t02: Crash # Instance of 'TypeOperator': type check unimplemented for Unavailable.
+Language/13_Statements/11_Try_A03_t03: Crash # Instance of 'TypeOperator': type check unimplemented for Foo.
+Language/13_Statements/11_Try_A03_t04: Crash # unsupported element kind: error:field
+Language/13_Statements/11_Try_A07_t02: Crash # (try {throw ex;}on int catch (i){}on bool catch (b){}finally {isFinallyExecuted=true;}): try/finally
+Language/13_Statements/11_Try_A08_t01: Crash #  try/finally
+Language/13_Statements/11_Try_A09_t01: Crash #  try/finally
+Language/13_Statements/11_Try_A10_t01: Crash #  try/finally
+Language/13_Statements/11_Try_A11_t01: Crash #  try/finally
+Language/13_Statements/11_Try_A11_t02: Crash #  try/finally
+Language/13_Statements/11_Try_A11_t03: Crash # (try {throw 42;}finally {return true;}): try/finally
+Language/13_Statements/11_Try_A11_t04: Crash # (try {throw 42;}finally {throw true;}): try/finally
+Language/13_Statements/11_Try_A12_t01: Crash #  try/finally
 Language/13_Statements/12_Labels_A01_t01: Crash # (switch (1){K:case 2:L:case 1:break;case 0:M:default:N:var x=0;}): Unhandled node
 Language/13_Statements/12_Labels_A03_t04: Crash # (switch (i){L:case 0:flag=true;break;case 2:continue L;}): Unhandled node
 Language/13_Statements/12_Labels_A03_t06: Crash # (switch (1){Label:case 1:break;default:break;}): Unhandled node
-Language/13_Statements/13_Break_A03_t01: Crash #  not exactly one catch block
-Language/13_Statements/13_Break_A03_t02: Crash #  "on T" catch block
-Language/13_Statements/13_Break_A03_t03: Crash #  not exactly one catch block
-Language/13_Statements/13_Break_A03_t04: Crash #  not exactly one catch block
+Language/13_Statements/13_Break_A03_t01: Crash #  try/finally
+Language/13_Statements/13_Break_A03_t02: Crash #  try/finally
+Language/13_Statements/13_Break_A03_t03: Crash #  try/finally
+Language/13_Statements/13_Break_A03_t04: Crash #  try/finally
 Language/13_Statements/13_Break_A03_t05: Crash # (switch (1){case 0:break;case 1:break L;}): Unhandled node
-Language/13_Statements/13_Break_A03_t06: Crash #  not exactly one catch block
+Language/13_Statements/13_Break_A03_t06: Crash #  try/finally
 Language/13_Statements/13_Break_A03_t07: Crash #  Unhandled node
-Language/13_Statements/13_Break_A03_t08: Crash # (try {try {break;}finally {order.add(2);}}finally {order.add(1);}): not exactly one catch block
-Language/13_Statements/13_Break_A03_t09: Crash #  not exactly one catch block
+Language/13_Statements/13_Break_A03_t08: Crash # (try {try {break;}finally {order.add(2);}}finally {order.add(1);}): try/finally
+Language/13_Statements/13_Break_A03_t09: Crash #  try/finally
 Language/13_Statements/14_Continue_A02_t12: Crash # (switch (2){L:case 1:flag=true;break;case 2:continue L;}): Unhandled node
 Language/13_Statements/14_Continue_A02_t13: Crash # (switch (2){case 2:continue L;L:case 1:flag=true;}): Unhandled node
-Language/13_Statements/14_Continue_A03_t01: Crash #  not exactly one catch block
-Language/13_Statements/14_Continue_A03_t02: Crash #  not exactly one catch block
-Language/13_Statements/14_Continue_A03_t03: Crash #  not exactly one catch block
-Language/13_Statements/14_Continue_A03_t04: Crash #  not exactly one catch block
+Language/13_Statements/14_Continue_A03_t01: Crash #  try/finally
+Language/13_Statements/14_Continue_A03_t02: Crash #  try/finally
+Language/13_Statements/14_Continue_A03_t03: Crash #  try/finally
+Language/13_Statements/14_Continue_A03_t04: Crash #  try/finally
 Language/13_Statements/14_Continue_A03_t05: Crash #  Unhandled node
-Language/13_Statements/14_Continue_A03_t06: Crash #  "on T" catch block
-Language/13_Statements/14_Continue_A03_t07: Crash #  "on T" catch block
-Language/13_Statements/15_Assert_A02_t01: Crash # (try {var i=1;String s=i;return false;}on TypeError catch (e){return true;}): "on T" catch block
-Language/13_Statements/15_Assert_A03_t01: Crash #  "on T" catch block
-Language/13_Statements/15_Assert_A03_t02: Crash #  "on T" catch block
-Language/13_Statements/15_Assert_A03_t03: Crash #  "on T" catch block
-Language/13_Statements/15_Assert_A03_t04: Crash #  "on T" catch block
-Language/13_Statements/15_Assert_A03_t05: Crash #  "on T" catch block
-Language/13_Statements/15_Assert_A03_t06: Crash #  "on T" catch block
-Language/13_Statements/15_Assert_A03_t08: Crash # (throw new ExpectException(message)): Unhandled node
-Language/13_Statements/15_Assert_A03_t09: Crash #  "on T" catch block
-Language/13_Statements/15_Assert_A04_t02: Crash #  "on T" catch block
-Language/13_Statements/15_Assert_A04_t03: Crash #  "on T" catch block
-Language/13_Statements/15_Assert_A04_t04: Crash #  "on T" catch block
-Language/13_Statements/15_Assert_A04_t05: Crash #  "on T" catch block
-Language/13_Statements/15_Assert_A04_t06: Crash #  "on T" catch block
-Language/14_Libraries_and_Scripts/13_Libraries_and_Scripts_A05_t01: Crash #  "on T" catch block
-Language/14_Libraries_and_Scripts/13_Libraries_and_Scripts_A05_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/13_Libraries_and_Scripts_A05_t03: Crash #  "on T" catch block
-Language/14_Libraries_and_Scripts/13_Libraries_and_Scripts_A05_t04: Crash #  "on T" catch block
-Language/14_Libraries_and_Scripts/13_Libraries_and_Scripts_A06_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A01_t09: Crash # (someVar=0): Error expression `someVar=0` unhandled.
-Language/14_Libraries_and_Scripts/1_Imports_A01_t18: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A01_t19: Crash # (someVar=0): Error expression `someVar=0` unhandled.
-Language/14_Libraries_and_Scripts/1_Imports_A01_t32: Crash # (someVar=0): Error expression `someVar=0` unhandled.
-Language/14_Libraries_and_Scripts/1_Imports_A01_t39: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A01_t40: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A01_t41: Crash # (someVar=0): Error expression `someVar=0` unhandled.
-Language/14_Libraries_and_Scripts/1_Imports_A01_t43: Crash # (someVar=0): Error expression `someVar=0` unhandled.
-Language/14_Libraries_and_Scripts/1_Imports_A01_t49: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A01_t51: Crash #  "on T" catch block
-Language/14_Libraries_and_Scripts/1_Imports_A01_t52: Crash #  "on T" catch block
-Language/14_Libraries_and_Scripts/1_Imports_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A02_t03: Crash #  "on T" catch block
-Language/14_Libraries_and_Scripts/1_Imports_A02_t04: Crash #  "on T" catch block
-Language/14_Libraries_and_Scripts/1_Imports_A02_t05: Crash #  "on T" catch block
-Language/14_Libraries_and_Scripts/1_Imports_A02_t06: Crash # cannot compile methods that need interceptor calling convention.
-Language/14_Libraries_and_Scripts/1_Imports_A02_t09: Crash # (throw new ExpectException(message)): Unhandled node
-Language/14_Libraries_and_Scripts/1_Imports_A02_t11: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A02_t12: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A02_t13: Crash #  "on T" catch block
-Language/14_Libraries_and_Scripts/1_Imports_A02_t14: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A02_t15: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A02_t16: Crash #  "on T" catch block
-Language/14_Libraries_and_Scripts/1_Imports_A02_t17: Crash #  "on T" catch block
-Language/14_Libraries_and_Scripts/1_Imports_A02_t18: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A02_t19: Crash # (try {new F();Expect.fail("runtime error expected");}on Error catch (ok){}): "on T" catch block
-Language/14_Libraries_and_Scripts/1_Imports_A02_t20: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A02_t21: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A02_t22: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A02_t23: Crash # (prefix.foo): Error expression `prefix.foo` unhandled.
-Language/14_Libraries_and_Scripts/1_Imports_A02_t24: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A02_t25: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A02_t26: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A02_t27: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A02_t28: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A03_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A03_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A03_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A03_t22: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A03_t24: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A03_t25: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A03_t31: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A03_t44: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A03_t45: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A03_t64: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A03_t65: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A06_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A06_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A07_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A07_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/1_Imports_A07_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/2_Exports_A01_t01: Crash # (foo): Error expression `foo` unhandled.
-Language/14_Libraries_and_Scripts/2_Exports_A01_t02: Crash #  "on T" catch block
-Language/14_Libraries_and_Scripts/2_Exports_A01_t03: Crash #  "on T" catch block
-Language/14_Libraries_and_Scripts/2_Exports_A01_t04: Crash # (foo): Error expression `foo` unhandled.
-Language/14_Libraries_and_Scripts/2_Exports_A01_t05: Crash # (foo): Error expression `foo` unhandled.
-Language/14_Libraries_and_Scripts/2_Exports_A01_t08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/2_Exports_A01_t09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/2_Exports_A01_t10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/2_Exports_A01_t11: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/2_Exports_A01_t12: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/2_Exports_A01_t13: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/2_Exports_A01_t14: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/2_Exports_A01_t17: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/2_Exports_A03_t01: Crash #  "on T" catch block
-Language/14_Libraries_and_Scripts/2_Exports_A03_t02: Crash #  "on T" catch block
-Language/14_Libraries_and_Scripts/2_Exports_A04_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/2_Exports_A05_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/2_Exports_A06_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/2_Exports_A08_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/3_Parts_A02_t03: Crash # Please triage this failure.
-Language/14_Libraries_and_Scripts/3_Parts_A02_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/3_Parts_A03_t01: Crash # Please triage this failure.
-Language/14_Libraries_and_Scripts/3_Parts_A03_t03: Crash # (foo): Error expression `foo` unhandled.
-Language/14_Libraries_and_Scripts/3_Parts_A03_t11: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/3_Parts_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/4_Scripts_A01_t17: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/14_Libraries_and_Scripts/4_Scripts_A02_t16: Crash # (g()): Error expression `g()` unhandled.
-Language/15_Types/1_Static_Types_A03_t01: Crash #  "on T" catch block
-Language/15_Types/1_Static_Types_A03_t02: Crash #  "on T" catch block
-Language/15_Types/1_Static_Types_A03_t03: Crash #  "on T" catch block
-Language/15_Types/1_Static_Types_A03_t04: Crash #  "on T" catch block
-Language/15_Types/2_Dynamic_Type_System_A01_t01: Crash #  "on T" catch block
-Language/15_Types/2_Dynamic_Type_System_A01_t02: Crash #  "on T" catch block
-Language/15_Types/3_Type_Declarations/1_Typedef_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/3_Type_Declarations/1_Typedef_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/3_Type_Declarations/1_Typedef_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/3_Type_Declarations/1_Typedef_A02_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/3_Type_Declarations/1_Typedef_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/3_Type_Declarations/1_Typedef_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/3_Type_Declarations/1_Typedef_A04_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/3_Type_Declarations/1_Typedef_A07_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/3_Type_Declarations/1_Typedef_A07_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/3_Type_Declarations/1_Typedef_A07_t07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A04_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A05_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A05_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A05_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A05_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A06_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A07_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A07_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A08_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A08_t03: Crash #  "on T" catch block
-Language/15_Types/4_Interface_Types_A08_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A08_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A08_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A09_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A10_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A10_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A10_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A10_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A10_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A10_t07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A10_t08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A10_t09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A11_t02: Timeout # Please triage this failure.
-Language/15_Types/4_Interface_Types_A11_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A11_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A12_t09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A12_t10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A12_t11: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A12_t12: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A12_t13: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A12_t14: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A12_t16: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A12_t18: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/4_Interface_Types_A12_t19: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A01_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A01_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A01_t07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A01_t08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A01_t09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A01_t11: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A02_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A02_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A02_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A02_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A02_t07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A02_t08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A02_t09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A02_t10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A02_t11: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A02_t12: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A03_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A03_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A03_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A03_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A03_t07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A03_t08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A03_t09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A03_t10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A03_t11: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A03_t12: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A03_t13: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A05_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/15_Types/5_Function_Types_A05_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A05_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A05_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A05_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/5_Function_Types_A06_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/6_Type_dynamic_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/6_Type_dynamic_A03_t01: Crash #  "on T" catch block
-Language/15_Types/6_Type_dynamic_A04_t01: Crash #  "on T" catch block
-Language/15_Types/6_Type_dynamic_A05_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Language/15_Types/7_Type_Void_A01_t15: Crash # (foo(1)): Error expression `foo(1)` unhandled.
-Language/15_Types/7_Type_Void_A04_t02: Crash #  "on T" catch block
-Language/15_Types/7_Type_Void_A04_t03: Crash #  "on T" catch block
-Language/15_Types/7_Type_Void_A04_t04: Crash #  "on T" catch block
-Language/15_Types/7_Type_Void_A04_t05: Crash #  "on T" catch block
-Language/15_Types/8_Parameterized_Types_A03_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/15_Types/8_Parameterized_Types_A03_t07: Crash #  "on T" catch block
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A01_t08: Crash # Please triage this failure.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A02_t08: Crash # Please triage this failure.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A03_t08: Crash # Please triage this failure.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A04_t08: Crash # Please triage this failure.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A05_t08: Crash # (f()): Error expression `f()` unhandled.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A06_t08: Crash # Please triage this failure.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A07_t08: Crash # Please triage this failure.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A08_t08: Crash # Please triage this failure.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A09_t08: Crash # Please triage this failure.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A10_t08: Crash # Please triage this failure.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A11_t08: Crash # Please triage this failure.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A12_t08: Crash # (f()): Error expression `f()` unhandled.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A13_t08: Crash # Please triage this failure.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A14_t08: Crash # Please triage this failure.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A15_t08: Crash # Please triage this failure.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A16_t08: Crash # Please triage this failure.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A17_t08: Crash # Please triage this failure.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A18_t08: Crash # Please triage this failure.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A19_t08: Crash # Please triage this failure.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A20_t08: Crash # Please triage this failure.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A21_t08: Crash # Please triage this failure.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A22_t08: Crash # Please triage this failure.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A23_t08: Crash # (f()): Error expression `f()` unhandled.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A24_t08: Crash # Please triage this failure.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A25_t08: Crash # Please triage this failure.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A26_t08: Crash # Please triage this failure.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A27_t08: Crash # (f()): Error expression `f()` unhandled.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A28_t08: Crash # (f()): Error expression `f()` unhandled.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A29_t08: Crash # Please triage this failure.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A30_t08: Crash # Please triage this failure.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A31_t08: Crash # Please triage this failure.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A32_t08: Crash # Please triage this failure.
-Language/16_Reference/1_Lexical_Rules/1_Reserved_Words_A40_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/16_Reference/1_Lexical_Rules/2_Comments_A01_t05: Crash # (throw new ExpectException(message)): Unhandled node
-Language/16_Reference/1_Lexical_Rules/2_Comments_A01_t06: Crash # (try {foo(1,0);Expect.fail("");}on Exception catch (e){}): "on T" catch block
-Language/16_Reference/1_Lexical_Rules/2_Comments_A01_t07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/16_Reference/1_Lexical_Rules/2_Comments_A01_t09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/16_Reference/1_Lexical_Rules/2_Comments_A01_t10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/16_Reference/1_Lexical_Rules/2_Comments_A01_t11: Crash # (try {foo(1,0);Expect.fail("");}on Exception catch (e){}): "on T" catch block
-Language/16_Reference/1_Lexical_Rules/2_Comments_A02_t08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/16_Reference/1_Lexical_Rules/2_Comments_A02_t09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/16_Reference/1_Lexical_Rules/2_Comments_A02_t10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/16_Reference/1_Lexical_Rules/2_Comments_A03_t07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/16_Reference/1_Lexical_Rules/2_Comments_A03_t08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/16_Reference/1_Lexical_Rules/2_Comments_A04_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/16_Reference/1_Lexical_Rules_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/16_Reference/1_Lexical_Rules_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/16_Reference/1_Lexical_Rules_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/16_Reference/1_Lexical_Rules_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/16_Reference/1_Lexical_Rules_A01_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/16_Reference/1_Lexical_Rules_A01_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/16_Reference/1_Lexical_Rules_A01_t10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/16_Reference/2_Operator_Precedence_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/16_Reference/2_Operator_Precedence_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/16_Reference/2_Operator_Precedence_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/16_Reference/2_Operator_Precedence_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/16_Reference/2_Operator_Precedence_A01_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Language/16_Reference/2_Operator_Precedence_A01_t06: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/alignment/parse-align-items_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/alignment/parse-align-self_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/alignment/parse-justify-self_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/animation/request-animation-frame-callback-id_t01: Crash # (throw new ExpectException(message)): Unhandled node
+Language/13_Statements/14_Continue_A03_t06: Crash #  try/finally
+Language/13_Statements/14_Continue_A03_t07: Crash #  try/finally
+Language/14_Libraries_and_Scripts/13_Libraries_and_Scripts_A05_t02: Crash # Instance of 'TypeOperator': type check unimplemented for _td.
+Language/14_Libraries_and_Scripts/13_Libraries_and_Scripts_A06_t01: RuntimeError # Please triage this failure.
+Language/14_Libraries_and_Scripts/1_Imports_A01_t39: RuntimeError # Please triage this failure.
+Language/14_Libraries_and_Scripts/1_Imports_A01_t40: RuntimeError # Please triage this failure.
+Language/14_Libraries_and_Scripts/1_Imports_A01_t49: RuntimeError # Please triage this failure.
+Language/14_Libraries_and_Scripts/1_Imports_A02_t01: RuntimeError # Please triage this failure.
+Language/14_Libraries_and_Scripts/1_Imports_A02_t02: RuntimeError # Please triage this failure.
+Language/14_Libraries_and_Scripts/1_Imports_A02_t09: Crash # (bar): handleStaticFunctionGet: function(bar)
+Language/14_Libraries_and_Scripts/1_Imports_A02_t11: RuntimeError # Please triage this failure.
+Language/14_Libraries_and_Scripts/1_Imports_A02_t14: RuntimeError # Please triage this failure.
+Language/14_Libraries_and_Scripts/1_Imports_A02_t16: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/14_Libraries_and_Scripts/1_Imports_A02_t17: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/14_Libraries_and_Scripts/1_Imports_A02_t18: RuntimeError # Please triage this failure.
+Language/14_Libraries_and_Scripts/1_Imports_A02_t20: RuntimeError # Please triage this failure.
+Language/14_Libraries_and_Scripts/1_Imports_A02_t21: RuntimeError # Please triage this failure.
+Language/14_Libraries_and_Scripts/1_Imports_A02_t22: RuntimeError # Please triage this failure.
+Language/14_Libraries_and_Scripts/1_Imports_A02_t26: Crash # Instance of 'TypeOperator': type check unimplemented for prefix.
+Language/14_Libraries_and_Scripts/1_Imports_A02_t27: Crash # Instance of 'TypeOperator': type check unimplemented for bar.
+Language/14_Libraries_and_Scripts/1_Imports_A02_t28: Crash # Instance of 'TypeOperator': type check unimplemented for bar.
+Language/14_Libraries_and_Scripts/1_Imports_A03_t02: Crash # Instance of 'TypeOperator': type check unimplemented for foo.
+Language/14_Libraries_and_Scripts/1_Imports_A03_t04: Crash # Instance of 'TypeOperator': type casts not implemented.
+Language/14_Libraries_and_Scripts/1_Imports_A03_t05: Crash # Instance of 'TypeOperator': type casts not implemented.
+Language/14_Libraries_and_Scripts/1_Imports_A03_t22: Crash # Instance of 'TypeOperator': type check unimplemented for foo.
+Language/14_Libraries_and_Scripts/1_Imports_A03_t24: Crash # Instance of 'TypeOperator': type casts not implemented.
+Language/14_Libraries_and_Scripts/1_Imports_A03_t25: Crash # Instance of 'TypeOperator': type casts not implemented.
+Language/14_Libraries_and_Scripts/1_Imports_A03_t31: Crash # Instance of 'TypeOperator': type check unimplemented for foo.
+Language/14_Libraries_and_Scripts/1_Imports_A03_t44: Crash # Instance of 'TypeOperator': type casts not implemented.
+Language/14_Libraries_and_Scripts/1_Imports_A03_t45: Crash # Instance of 'TypeOperator': type casts not implemented.
+Language/14_Libraries_and_Scripts/1_Imports_A03_t64: Crash # Instance of 'TypeOperator': type casts not implemented.
+Language/14_Libraries_and_Scripts/1_Imports_A03_t65: Crash # Instance of 'TypeOperator': type casts not implemented.
+Language/14_Libraries_and_Scripts/1_Imports_A06_t01: RuntimeError # Please triage this failure.
+Language/14_Libraries_and_Scripts/1_Imports_A06_t02: RuntimeError # Please triage this failure.
+Language/14_Libraries_and_Scripts/2_Exports_A03_t01: RuntimeError # Please triage this failure.
+Language/14_Libraries_and_Scripts/2_Exports_A03_t02: RuntimeError # Please triage this failure.
+Language/14_Libraries_and_Scripts/2_Exports_A04_t03: Crash # Instance of 'TypeOperator': type check unimplemented for foo.
+Language/14_Libraries_and_Scripts/2_Exports_A06_t02: Crash # Instance of 'TypeOperator': type check unimplemented for foo.
+Language/14_Libraries_and_Scripts/2_Exports_A08_t01: RuntimeError # Please triage this failure.
+Language/14_Libraries_and_Scripts/3_Parts_A02_t03: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/14_Libraries_and_Scripts/3_Parts_A02_t04: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/14_Libraries_and_Scripts/3_Parts_A03_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/14_Libraries_and_Scripts/3_Parts_A03_t11: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/14_Libraries_and_Scripts/3_Parts_A04_t01: RuntimeError # Please triage this failure.
+Language/15_Types/1_Static_Types_A03_t01: Crash # Instance of 'TypeOperator': type check unimplemented for UnknownType.
+Language/15_Types/3_Type_Declarations/1_Typedef_A01_t03: Crash # Instance of 'TypeOperator': type check unimplemented for f.
+Language/15_Types/3_Type_Declarations/1_Typedef_A02_t01: Crash # (f): handleStaticFunctionGet: function(f)
+Language/15_Types/3_Type_Declarations/1_Typedef_A02_t02: Crash # (f): handleStaticFunctionGet: function(f)
+Language/15_Types/3_Type_Declarations/1_Typedef_A02_t03: Crash # (f): handleStaticFunctionGet: function(f)
+Language/15_Types/3_Type_Declarations/1_Typedef_A03_t01: Crash # (ifunc): handleStaticFunctionGet: function(ifunc)
+Language/15_Types/3_Type_Declarations/1_Typedef_A04_t01: Crash # Instance of 'TypeOperator': type check unimplemented for f1.
+Language/15_Types/3_Type_Declarations/1_Typedef_A04_t02: Crash # Instance of 'TypeOperator': type check unimplemented for f1.
+Language/15_Types/3_Type_Declarations/1_Typedef_A07_t05: Crash # Instance of 'TypeOperator': type check unimplemented for f.
+Language/15_Types/3_Type_Declarations/1_Typedef_A07_t06: Crash # Instance of 'TypeOperator': type check unimplemented for f.
+Language/15_Types/3_Type_Declarations/1_Typedef_A07_t07: Crash # Instance of 'TypeOperator': type check unimplemented for f.
+Language/15_Types/4_Interface_Types_A05_t02: Crash # Instance of 'TypeOperator': type check unimplemented for A.
+Language/15_Types/4_Interface_Types_A05_t03: Crash # Instance of 'TypeOperator': type check unimplemented for A.
+Language/15_Types/4_Interface_Types_A05_t04: Crash # Please triage this failure.
+Language/15_Types/4_Interface_Types_A06_t02: Crash # Instance of 'TypeOperator': type check unimplemented for List<double>.
+Language/15_Types/4_Interface_Types_A07_t01: Crash # (f1): handleStaticFunctionGet: function(f1)
+Language/15_Types/4_Interface_Types_A07_t02: Crash # Instance of 'TypeOperator': type check unimplemented for dynamic.
+Language/15_Types/4_Interface_Types_A08_t01: Crash # Instance of 'TypeOperator': type check unimplemented for S.
+Language/15_Types/4_Interface_Types_A08_t03: Crash # (f01): handleStaticFunctionGet: function(f01)
+Language/15_Types/4_Interface_Types_A08_t04: Crash # Instance of 'TypeOperator': type check unimplemented for G.
+Language/15_Types/4_Interface_Types_A08_t05: Crash # Instance of 'TypeOperator': type check unimplemented for G.
+Language/15_Types/4_Interface_Types_A08_t06: Crash # Instance of 'TypeOperator': type check unimplemented for IManyArgs<int, G, G, G, double>.
+Language/15_Types/4_Interface_Types_A10_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/15_Types/4_Interface_Types_A10_t02: Crash # Instance of 'TypeOperator': type check unimplemented for Checker_Object<Object>.
+Language/15_Types/4_Interface_Types_A10_t03: Crash # Instance of 'TypeOperator': type check unimplemented for Checker_I<I>.
+Language/15_Types/4_Interface_Types_A10_t04: Crash # Please triage this failure.
+Language/15_Types/4_Interface_Types_A10_t06: Crash # Please triage this failure.
+Language/15_Types/4_Interface_Types_A10_t07: Crash # Please triage this failure.
+Language/15_Types/4_Interface_Types_A10_t08: Crash # Please triage this failure.
+Language/15_Types/4_Interface_Types_A10_t09: Crash # Please triage this failure.
+Language/15_Types/4_Interface_Types_A11_t03: Crash # Instance of 'TypeOperator': type check unimplemented for I.
+Language/15_Types/4_Interface_Types_A11_t04: Crash # Instance of 'TypeOperator': type check unimplemented for S<int>.
+Language/15_Types/4_Interface_Types_A12_t09: Crash # Instance of 'TypeOperator': type check unimplemented for List<String>.
+Language/15_Types/4_Interface_Types_A12_t10: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/15_Types/4_Interface_Types_A12_t12: Crash # Instance of 'TypeOperator': type check unimplemented for G<B, B, B, B>.
+Language/15_Types/4_Interface_Types_A12_t13: Crash # Instance of 'TypeOperator': type check unimplemented for G<C>.
+Language/15_Types/4_Interface_Types_A12_t14: Crash # Instance of 'TypeOperator': type check unimplemented for A<double>.
+Language/15_Types/4_Interface_Types_A12_t16: Crash # Instance of 'TypeOperator': type check unimplemented for A<int, int, double, int>.
+Language/15_Types/4_Interface_Types_A12_t18: Crash # Instance of 'TypeOperator': type check unimplemented for F1.
+Language/15_Types/4_Interface_Types_A12_t19: Crash # (f): handleStaticFunctionGet: function(f)
+Language/15_Types/5_Function_Types_A01_t01: Crash # (f1): handleStaticFunctionGet: function(f1)
+Language/15_Types/5_Function_Types_A01_t02: Crash # Instance of 'TypeOperator': type check unimplemented for t1.
+Language/15_Types/5_Function_Types_A01_t03: Crash # (f1): handleStaticFunctionGet: function(f1)
+Language/15_Types/5_Function_Types_A01_t04: Crash # (f1): handleStaticFunctionGet: function(f1)
+Language/15_Types/5_Function_Types_A01_t05: Crash # (f1): handleStaticFunctionGet: function(f1)
+Language/15_Types/5_Function_Types_A01_t06: Crash # (f1): handleStaticFunctionGet: function(f1)
+Language/15_Types/5_Function_Types_A01_t07: Crash # Instance of 'TypeOperator': type check unimplemented for f.
+Language/15_Types/5_Function_Types_A01_t08: Crash # (f1): handleStaticFunctionGet: function(f1)
+Language/15_Types/5_Function_Types_A01_t09: Crash # Instance of 'TypeOperator': type check unimplemented for t1.
+Language/15_Types/5_Function_Types_A01_t11: Crash # (f1): handleStaticFunctionGet: function(f1)
+Language/15_Types/5_Function_Types_A02_t01: Crash # Instance of 'TypeOperator': type check unimplemented for t1.
+Language/15_Types/5_Function_Types_A02_t02: Crash # Instance of 'TypeOperator': type check unimplemented for classesFunc.
+Language/15_Types/5_Function_Types_A02_t03: Crash # Instance of 'TypeOperator': type check unimplemented for classesFunc.
+Language/15_Types/5_Function_Types_A02_t04: Crash # (f1): handleStaticFunctionGet: function(f1)
+Language/15_Types/5_Function_Types_A02_t05: Crash # Instance of 'TypeOperator': type check unimplemented for t1.
+Language/15_Types/5_Function_Types_A02_t06: Crash # Instance of 'TypeOperator': type check unimplemented for t1.
+Language/15_Types/5_Function_Types_A02_t07: Crash # Instance of 'TypeOperator': type check unimplemented for t1.
+Language/15_Types/5_Function_Types_A02_t08: Crash # Instance of 'TypeOperator': type check unimplemented for t2.
+Language/15_Types/5_Function_Types_A02_t09: Crash # (f1): handleStaticFunctionGet: function(f1)
+Language/15_Types/5_Function_Types_A02_t10: Crash # (f1): handleStaticFunctionGet: function(f1)
+Language/15_Types/5_Function_Types_A02_t11: Crash # Instance of 'TypeOperator': type check unimplemented for t1.
+Language/15_Types/5_Function_Types_A02_t12: Crash # Instance of 'TypeOperator': type check unimplemented for t1.
+Language/15_Types/5_Function_Types_A03_t01: Crash # Instance of 'TypeOperator': type check unimplemented for t1.
+Language/15_Types/5_Function_Types_A03_t02: Crash # Instance of 'TypeOperator': type check unimplemented for classesFunc.
+Language/15_Types/5_Function_Types_A03_t03: Crash # Instance of 'TypeOperator': type check unimplemented for classesFunc.
+Language/15_Types/5_Function_Types_A03_t04: Crash # (f1): handleStaticFunctionGet: function(f1)
+Language/15_Types/5_Function_Types_A03_t06: Crash # Instance of 'TypeOperator': type check unimplemented for t1.
+Language/15_Types/5_Function_Types_A03_t07: Crash # Instance of 'TypeOperator': type check unimplemented for t1.
+Language/15_Types/5_Function_Types_A03_t08: Crash # Instance of 'TypeOperator': type check unimplemented for t1.
+Language/15_Types/5_Function_Types_A03_t09: Crash # Instance of 'TypeOperator': type check unimplemented for t1.
+Language/15_Types/5_Function_Types_A03_t10: Crash # (f1): handleStaticFunctionGet: function(f1)
+Language/15_Types/5_Function_Types_A03_t11: Crash # (f1): handleStaticFunctionGet: function(f1)
+Language/15_Types/5_Function_Types_A03_t12: Crash # Instance of 'TypeOperator': type check unimplemented for classesFunc.
+Language/15_Types/5_Function_Types_A03_t13: Crash # (f1): handleStaticFunctionGet: function(f1)
+Language/15_Types/5_Function_Types_A05_t01: Crash # (f1): handleStaticFunctionGet: function(f1)
+Language/15_Types/5_Function_Types_A05_t02: Crash # (C.f1s): handleStaticFunctionGet: function(C#f1s)
+Language/15_Types/5_Function_Types_A05_t05: Crash # (tlf1): handleStaticFunctionGet: function(tlf1)
+Language/15_Types/5_Function_Types_A06_t01: Crash # Instance of 'TypeOperator': type check unimplemented for f.
+Language/15_Types/6_Type_dynamic_A02_t01: Crash # Instance of 'TypeOperator': type check unimplemented for S.
+Language/15_Types/7_Type_Void_A04_t05: Crash # (f): handleStaticFunctionGet: function(f)
+Language/15_Types/8_Parameterized_Types_A03_t06: Crash # Instance of 'TypeOperator': type check unimplemented for T1.
+Language/16_Reference/1_Lexical_Rules/2_Comments_A02_t10: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/16_Reference/1_Lexical_Rules_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/16_Reference/1_Lexical_Rules_A01_t02: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/16_Reference/1_Lexical_Rules_A01_t03: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/16_Reference/1_Lexical_Rules_A01_t04: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/16_Reference/1_Lexical_Rules_A01_t05: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/16_Reference/1_Lexical_Rules_A01_t06: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Language/16_Reference/1_Lexical_Rules_A01_t10: Crash # unsupported element kind: characters:field
 LayoutTests/fast/animation/request-animation-frame-cancel2_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/animation/request-animation-frame-cancel_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/animation/request-animation-frame-missing-arguments_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/animation/request-animation-frame-prefix_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/animation/request-animation-frame-timestamps-advance_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/animation/request-animation-frame-timestamps_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/animation/request-animation-frame-timestamps_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/animation/request-animation-frame-within-callback_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/backgrounds/001_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/backgrounds/animated-gif-as-background_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/backgrounds/background-position-parsing-2_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/backgrounds/background-repeat-computed-style_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/backgrounds/background-shorthand-with-backgroundSize-style_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/backgrounds/composite-highlight-is-invalid_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/backgrounds/mask-box-image-width_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/backgrounds/multiple-backgrounds-assert_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/backgrounds/multiple-backgrounds-computed-style_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/backgrounds/multiple-backgrounds-initial-values_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/backgrounds/repeat/parsing-background-repeat_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/borders/border-color-visited_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/borders/border-image-width-negative_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/borders/border-image-width-numbers-computed-style_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/borders/border-radius-child_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/borders/border-width-percent_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/box-shadow/box-shadow-parsing-invalid_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/box-sizing/css-table-with-box-sizing_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/box-sizing/table-cell_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/2d.composite.globalAlpha.fillPath_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/2d.fillText.gradient_t01: Crash # (throw new ExpectException(message)): Unhandled node
+LayoutTests/fast/backgrounds/multiple-backgrounds-computed-style_t01: Crash #  Unhandled node
+LayoutTests/fast/canvas/2d.composite.globalAlpha.fillPath_t01: Crash # (math.max): handleStaticFunctionGet: function(max)
 LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.gradient_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.negative_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.veryLarge_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.verySmall_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/canvas/alpha_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-2d-imageData-create-nonfinite_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-alphaImageData-behavior_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-arc-360-winding_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-arc-connecting-line_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas_arc_largeangles_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-arc-negative-radius_t01: Crash # (new Path()): Error expression `new Path()` unhandled.
-LayoutTests/fast/canvas/canvas-arc-zero-lineto_t01: Crash # (throw new ExpectException(message)): Unhandled node
+LayoutTests/fast/canvas/DrawImageSinglePixelStretch_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/canvas/canvas-as-image-incremental-repaint_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/canvas/canvas-before-css_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/canvas/canvas-bezier-same-endpoint_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-blend-image_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/canvas-blending-clipping_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/canvas-blending-color-over-color_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/canvas-blending-color-over-gradient_t01: Crash # (throw new ExpectException(message)): Unhandled node
+LayoutTests/fast/canvas/canvas-blending-clipping_t01: Crash # unsupported element kind: nonSeparateBlendModes:field
+LayoutTests/fast/canvas/canvas-blending-color-over-color_t01: Crash # unsupported element kind: nonSeparateBlendModes:field
+LayoutTests/fast/canvas/canvas-blending-color-over-gradient_t01: Crash # unsupported element kind: nonSeparateBlendModes:field
 LayoutTests/fast/canvas/canvas-blending-color-over-image_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/canvas/canvas-blending-color-over-pattern_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/canvas/canvas-blending-fill-style_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/canvas-blending-global-alpha_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/canvas-blending-gradient-over-color_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/canvas-blending-gradient-over-gradient_t01: Crash # (throw new ExpectException(message)): Unhandled node
+LayoutTests/fast/canvas/canvas-blending-fill-style_t01: Crash # unsupported element kind: nonSeparateBlendModes:field
+LayoutTests/fast/canvas/canvas-blending-global-alpha_t01: Crash # unsupported element kind: nonSeparateBlendModes:field
+LayoutTests/fast/canvas/canvas-blending-gradient-over-color_t01: Crash # unsupported element kind: nonSeparateBlendModes:field
+LayoutTests/fast/canvas/canvas-blending-gradient-over-gradient_t01: Crash # unsupported element kind: nonSeparateBlendModes:field
 LayoutTests/fast/canvas/canvas-blending-gradient-over-image_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/canvas/canvas-blending-gradient-over-pattern_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/canvas/canvas-blending-image-over-color_t01: Crash # unsupported element kind: _completer:field
@@ -10799,386 +9794,119 @@
 LayoutTests/fast/canvas/canvas-blending-pattern-over-gradient_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/canvas/canvas-blending-pattern-over-image_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/canvas/canvas-blending-pattern-over-pattern_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/canvas/canvas-blending-shadow_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/canvas-blending-text_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/canvas-blending-transforms_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/canvas-blend-solid_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/canvas-clearRect_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-clip-rule_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/canvas-closePath-single-point_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-color-clamping_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/canvas/canvas-blending-shadow_t01: Crash # unsupported element kind: nonSeparateBlendModes:field
+LayoutTests/fast/canvas/canvas-blending-text_t01: Crash # unsupported element kind: nonSeparateBlendModes:field
+LayoutTests/fast/canvas/canvas-blending-transforms_t01: Crash # unsupported element kind: nonSeparateBlendModes:field
 LayoutTests/fast/canvas/canvas-composite-alpha_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/canvas/canvas-composite-canvas_t01: Crash # unsupported element kind: compositeTypes:field
 LayoutTests/fast/canvas/canvas-composite-image_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/canvas/canvas-composite-stroke-alpha_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/canvas/canvas-composite-text-alpha_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/canvas/canvas-copyPixels_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/canvas/canvas-css-crazy_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/canvas/canvas-currentColor_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-currentTransform_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-drawImage-incomplete_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-drawImage-scaled-copy-to-self_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-ellipse-360-winding_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-ellipse-negative-radius_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-ellipse_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-ellipse-zero-lineto_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-empty-image-pattern_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/canvas-fillRect_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-fillRect-zeroSizeGradient_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-fill-rule_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/canvas-fillStyle-no-quirks-parsing_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-LayoutTests/fast/canvas/canvas-fillText-invalid-maxWidth_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-fillText-zeroSizeGradient_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-fill-zeroSizeGradient_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-font-consistency_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-font-ex-units-crash_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-getContext-invalid_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-getImageData-invalid_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-getImageData-negative-source_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-getImageData-rounding_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-getImageData_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/canvas-gradient-without-path_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/canvas/canvas-imageSmoothingEnabled-repaint_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/canvas/canvas-imageSmoothingEnabled_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-invalid-fillstyle_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-invalid-strokestyle_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-large-dimensions_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-lineDash-input-sequence_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-lineDash-invalid_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-lineDash_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-lineWidth-intact-after-strokeRect_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-lineWidth_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/canvas-longlived-context_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/canvas/canvas-lineDash-invalid_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/canvas/canvas-lineDash_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/canvas/canvas-longlived-context_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
 LayoutTests/fast/canvas/canvas-lose-restore-googol-size_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/canvas/canvas-lose-restore-max-int-size_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/canvas/canvas-modify-emptyPath_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-pattern-behaviour_t01: Crash # Please triage this failure.
-LayoutTests/fast/canvas/canvas-pattern-modify_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-pattern-transform_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-putImageData_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-quadratic-same-endpoint_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-radial-gradient-spreadMethod_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-resetTransform_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/canvas/canvas-modify-emptyPath_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/canvas/canvas-pattern-behaviour_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/canvas/canvas-pattern-modify_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/canvas/canvas-putImageData_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
 LayoutTests/fast/canvas/canvas-resize-after-paint_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/canvas/canvas-save-restore_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-save-restore-with-path_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/canvas/canvas-save-restore-with-path_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
 LayoutTests/fast/canvas/canvas-scale-drawImage-shadow_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/canvas/canvas-scale-fillPath-shadow_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-scale-fillRect-shadow_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-scale-shadowBlur_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-scale-strokePath-shadow_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-set-properties-with-non-invertible-ctm_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-setTransform_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-shadow_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-skia-excessive-size_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/canvas-state-intact-after-putImageData_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-stroke-empty-fill_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-strokePath-alpha-shadow_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-strokePath-cap-join_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-strokePath-gradient-shadow_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-strokePath-shadow_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/canvas-strokeRect-alpha-shadow_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-strokeRect-gradient-shadow_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-strokeRect_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-strokeRect-zeroSizeGradient_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-strokeText-invalid-maxWidth_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-strokeText-strokes-shadow_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-strokeText-zeroSizeGradient_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-stroke-zeroSizeGradient_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-style-intact-after-text_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-to-canvas_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-toDataURL-case-insensitive-mimetype_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-transforms-fillRect-shadow_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-transparency-and-composite_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-with-illegal-args_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/canvas-with-incorrect-args_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/draw-custom-focus-ring_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/DrawImageSinglePixelStretch_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/canvas/canvas-strokePath-alpha-shadow_t01: Crash # (shouldBe): handleStaticFunctionGet: function(shouldBe)
+LayoutTests/fast/canvas/canvas-strokePath-gradient-shadow_t01: Crash # (shouldBe): handleStaticFunctionGet: function(shouldBe)
+LayoutTests/fast/canvas/canvas-strokeRect-alpha-shadow_t01: Crash # (shouldBe): handleStaticFunctionGet: function(shouldBe)
+LayoutTests/fast/canvas/canvas-strokeRect-gradient-shadow_t01: Crash # (shouldBe): handleStaticFunctionGet: function(shouldBe)
+LayoutTests/fast/canvas/canvas_arc_largeangles_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
 LayoutTests/fast/canvas/drawImage-with-broken-image_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/canvas/drawImage-with-negative-source-destination_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/canvas/drawImage-with-valid-image_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/canvas/fallback-content_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/fillText-shadow_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/gradient-addColorStop-with-invalid-color_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/gradient-with-clip_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/linearGradient-infinite-values_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/pattern-with-transform_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/pointInPath_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/radialGradient-infinite-values_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/rgba-parsing_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/set-colors_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/canvas/gradient-with-clip_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/canvas/pattern-with-transform_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
 LayoutTests/fast/canvas/setWidthResetAfterForcedRender_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/canvas/text-globalAlpha_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/toDataURL-noData_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/translate-text_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/array-bounds-clamping_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/webgl/attrib-location-length-limits_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/webgl/bad-arguments-test_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/webgl/buffer-bind-test_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/webgl/buffer-data-array-buffer_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/canvas/translate-text_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/canvas/webgl/WebGLContextEvent_t01: Crash # (asyncEnd): handleStaticFunctionGet: function(asyncEnd)
+LayoutTests/fast/canvas/webgl/attrib-location-length-limits_t01: Crash # unsupported element kind: error:field
+LayoutTests/fast/canvas/webgl/bad-arguments-test_t01: Crash # (wtu.shouldGenerateGLError): handleStaticFunctionGet: function(shouldGenerateGLError)
 LayoutTests/fast/canvas/webgl/canvas-2d-webgl-texture_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/canvas/webgl/canvas-resize-crash_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/canvas/webgl/canvas-test_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/canvas/webgl/canvas-zero-size_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/canvas/webgl/canvas-zero-size_t01: Crash # unsupported element kind: error:field
 LayoutTests/fast/canvas/webgl/compressed-tex-image_t01: Crash # Please triage this failure.
-LayoutTests/fast/canvas/webgl/context-attributes-alpha-depth-stencil-antialias-t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/canvas/webgl/context-attributes-alpha-depth-stencil-antialias-t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
 LayoutTests/fast/canvas/webgl/context-destroyed-crash_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/canvas/webgl/context-lost-restored_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/webgl/context-lost_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/webgl/copy-tex-image-and-sub-image-2d_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/canvas/webgl/context-lost-restored_t01: Crash # (wtu.shouldGenerateGLError): handleStaticFunctionGet: function(shouldGenerateGLError)
+LayoutTests/fast/canvas/webgl/context-lost_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/canvas/webgl/copy-tex-image-and-sub-image-2d_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
 LayoutTests/fast/canvas/webgl/css-webkit-canvas-repaint_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/canvas/webgl/draw-arrays-out-of-bounds_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/draw-elements-out-of-bounds_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/drawingbuffer-test_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/canvas/webgl/draw-webgl-to-canvas-2d_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/canvas/webgl/error-reporting_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/canvas/webgl/drawingbuffer-test_t01: Crash # unsupported element kind: error:field
 LayoutTests/fast/canvas/webgl/framebuffer-bindings-unaffected-on-resize_t01: Crash # unsupported element kind: requestAnimFrame:field
 LayoutTests/fast/canvas/webgl/framebuffer-object-attachment_t01: Crash # Please triage this failure.
-LayoutTests/fast/canvas/webgl/framebuffer-test_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/webgl/functions-returning-strings_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/get-active-test_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/gl-bind-attrib-location-test_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/gl-enable-enum-test_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/webgl/gl-enum-tests_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/gl-get-calls_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/gl-getshadersource_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/gl-getstring_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/gl-object-get-calls_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/gl-pixelstorei_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/webgl/glsl-conformance_t01: Crash # (throw new ExpectException(message)): Unhandled node
+LayoutTests/fast/canvas/webgl/functions-returning-strings_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List<String>.
+LayoutTests/fast/canvas/webgl/gl-enable-enum-test_t01: Crash # unsupported element kind: desktopGL:field
+LayoutTests/fast/canvas/webgl/gl-enum-tests_t01: Crash # unsupported element kind: desktopGL:field
+LayoutTests/fast/canvas/webgl/gl-get-calls_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/canvas/webgl/gl-object-get-calls_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
 LayoutTests/fast/canvas/webgl/gl-teximage_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/canvas/webgl/gl-uniformmatrix4fv_t01: Crash #  Unhandled node
-LayoutTests/fast/canvas/webgl/gl-vertexattribpointer_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/gl-vertex-attrib_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/gl-vertex-attrib-zero-issues_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/webgl/incorrect-context-object-behaviour_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/index-validation-copies-indices_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/index-validation_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/index-validation-verifies-too-many-indices_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/index-validation-with-resized-buffer_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/invalid-passed-params_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/is-object_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/webgl/null-object-behaviour_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/null-uniform-location_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/object-deletion-behaviour_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/webgl/oes-element-index-uint_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/oes-vertex-array-object_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/point-size_t01: Crash # (throw new ExpectException(message)): Unhandled node
+LayoutTests/fast/canvas/webgl/gl-vertex-attrib-zero-issues_t01: Crash # unsupported element kind: error:field
+LayoutTests/fast/canvas/webgl/glsl-conformance_t01: Crash # unsupported element kind: error:field
+LayoutTests/fast/canvas/webgl/index-validation_t01: Crash # (Math.max): handleStaticFunctionGet: function(max)
+LayoutTests/fast/canvas/webgl/invalid-passed-params_t01: Crash # unsupported element kind: desktopGL:field
+LayoutTests/fast/canvas/webgl/is-object_t01: Crash # (wtu.shouldGenerateGLError): handleStaticFunctionGet: function(shouldGenerateGLError)
+LayoutTests/fast/canvas/webgl/null-object-behaviour_t01: Crash # (wtu.shouldGenerateGLError): handleStaticFunctionGet: function(shouldGenerateGLError)
+LayoutTests/fast/canvas/webgl/object-deletion-behaviour_t01: Crash # (wtu.shouldGenerateGLError): handleStaticFunctionGet: function(shouldGenerateGLError)
+LayoutTests/fast/canvas/webgl/oes-element-index-uint_t01: Crash # unsupported element kind: error:field
+LayoutTests/fast/canvas/webgl/oes-vertex-array-object_t01: Crash # unsupported element kind: error:field
 LayoutTests/fast/canvas/webgl/premultiplyalpha-test_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/canvas/webgl/program-test_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/canvas/webgl/read-pixels-pack-alignment_t01: Crash #  Unhandled node
 LayoutTests/fast/canvas/webgl/read-pixels-test_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/canvas/webgl/renderbuffer-initialization_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/webgl/renderer-and-vendor-strings_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/shader-precision-format_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/webgl/texImage2DImageDataTest_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-array-buffer-view_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgb565_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgba4444_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgba5551_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgb565_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgba4444_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgba5551_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgb565_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgba4444_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgba5551_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image_t01: Crash # unsupported element kind: _asyncCounter:field
+LayoutTests/fast/canvas/webgl/renderbuffer-initialization_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-array-buffer-view_t01: Crash #  Unhandled node
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgb565_t01: Crash # unsupported element kind: error:field
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgba4444_t01: Crash # unsupported element kind: error:field
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgba5551_t01: Crash # unsupported element kind: error:field
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas_t01: Crash # unsupported element kind: error:field
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgb565_t01: Crash # unsupported element kind: error:field
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgba4444_t01: Crash # unsupported element kind: error:field
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgba5551_t01: Crash # unsupported element kind: error:field
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data_t01: Crash # unsupported element kind: error:field
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgb565_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgba4444_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgba5551_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgb565_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba4444_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba5551_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/canvas/webgl/tex-image-and-uniform-binding-bugs_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/webgl/texImageTest_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/webgl/tex-image-webgl_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/webgl/tex-input-validation_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/tex-sub-image-2d-bad-args_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/tex-sub-image-2d_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/tex-sub-image-cube-maps_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/texture-active-bind_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/webgl/texture-bindings-uneffected-on-resize_t01: Crash # (throw new ExpectException(message)): Unhandled node
+LayoutTests/fast/canvas/webgl/tex-image-webgl_t01: Crash # unsupported element kind: error:field
+LayoutTests/fast/canvas/webgl/tex-sub-image-2d_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/canvas/webgl/tex-sub-image-cube-maps_t01: Crash # unsupported element kind: error:field
+LayoutTests/fast/canvas/webgl/texture-bindings-uneffected-on-resize_t01: Crash # unsupported element kind: error:field
 LayoutTests/fast/canvas/webgl/texture-color-profile_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/canvas/webgl/texture-complete_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/webgl/texture-npot_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/webgl/texture-transparent-pixels-initialized_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/triangle_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/webgl/uniform-location-length-limits_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/canvas/webgl/uniform-location_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/uninitialized-test_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/viewport-unchanged-upon-resize_t01: Crash # (throw new ExpectException(message)): Unhandled node
+LayoutTests/fast/canvas/webgl/texture-npot_t01: Crash # unsupported element kind: error:field
+LayoutTests/fast/canvas/webgl/texture-transparent-pixels-initialized_t01: Crash # unsupported element kind: error:field
+LayoutTests/fast/canvas/webgl/uniform-location-length-limits_t01: Crash # unsupported element kind: error:field
 LayoutTests/fast/canvas/webgl/webgl-composite-modes-repaint_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/canvas/webgl/webgl-composite-modes_t01: Crash # (throw ("*** Error: unknown script element"+scriptId)): Unhandled node
-LayoutTests/fast/canvas/webgl/WebGLContextEvent_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/webgl-depth-texture_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/canvas/webgl/webgl-exceptions_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/canvas/webgl/webgl-composite-modes_t01: Crash # unsupported element kind: error:field
+LayoutTests/fast/canvas/webgl/webgl-depth-texture_t01: Crash # unsupported element kind: error:field
 LayoutTests/fast/canvas/webgl/webgl-large-texture_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/canvas/webgl/webgl-layer-update_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/canvas/webgl/webgl-specific_t01: Crash # (throw new ExpectException(message)): Unhandled node
+LayoutTests/fast/canvas/webgl/webgl-specific_t01: Crash # unsupported element kind: error:field
 LayoutTests/fast/canvas/webgl/webgl-texture-binding-preserved_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/canvas/webgl/webgl-unprefixed-context-id_t01: Crash # (throw new ExpectException(message)): Unhandled node
 LayoutTests/fast/canvas/webgl/webgl-viewport-parameters-preserved_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/canvas/winding-enumeration_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/cookies/local-file-can-set-cookies_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-inherited_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-color_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-line_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-style_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-underline-position_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent-inherited_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/add-remove-stylesheets-at-once-minimal-recalc-style_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/appearance-caps-lock-indicator_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/aspect-ratio-inheritance_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/aspect-ratio-parsing-tests_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/attribute-selector-begin-dynamic-no-elementstyle_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/attribute-selector-recursive-update-on-setAttribute_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/auto-min-size_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/background-clip-text_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/background-currentcolor_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/background-position-inherit_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/background-position-serialize_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/background-serialize_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/border-image-null-image-crash_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/border-image-style-length_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/border-radius-property-value_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/border-shorthand-initialize-longhands_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/border-spacing-without-vertical-value_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/border-start-end_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/border-width-large_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/box-sizing-backwards-compat-prefix_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/box-sizing-border-box-dynamic-padding-border-update_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/css/button-height_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/cached-sheet-restore-crash_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/case-sensitive-attr_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/checked-pseudo-selector_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/child-selector-implicit-tbody_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/collapsed-whitespace-reattach-in-style-recalc_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/comment-before-charset-external_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/comment-before-charset_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/computed-offset-with-zoom_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/content/content-none_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/content/content-normal_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/content/content-quotes-01_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/content/content-quotes-02_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/content/content-quotes-03_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/content/content-quotes-04_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/content/content-quotes-05_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/content/content-quotes-06_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/content-language-case-insensitivity_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/content-language-dynamically-added_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/content-language-dynamically-removed_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/content-language-mapped-to-webkit-locale_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/content-language-multiple_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/content-language-no-content_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/counters/asterisk-counter-update-after-layout-crash_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/css/counters/complex-before_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/counters/counter-before-selector-crash_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/counters/counter-cssText_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/counters/counter-reparent-table-children-crash_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/css/counters/counter-reset-subtree-insert-crash_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/counters/counter-ruby-text-cleared_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/counters/counter-traverse-object-crash_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/crash-on-incomplete-not_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/css3-nth-space_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/css3-nth-tokens-script_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/css3-nth-tokens-style_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/css-escaped-identifier_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-LayoutTests/fast/css/css-keyframe-style-crash_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/css-keyframe-unexpected-end_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/cssom-remove-shorthand-property_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/css-properties-case-insensitive_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/css-selector-text_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/cssText-cache_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/csstext-of-content-string_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/cssText-shorthand_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/cursor-parsing-image-set_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/cursor-parsing-quirks_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/cursor-parsing_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/deprecated-flexbox-auto-min-size_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/css/deprecated-flex-box-zero-width-intrinsic-max-width_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/device-aspect-ratio_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/dfn-default-font-style_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/display-inline-block-scrollbar_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/css/div_plus_nav_bug47971_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/draggable-region-parser_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/duplicate-property-in-rule-important_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/duplicate-property-in-rule_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/dynamic-class-backdrop-pseudo_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/dynamic-class-pseudo-elements_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/dynamic-pseudo-class_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/dynamic-style-attribute-query_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/empty-display-none_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/emptyStyleTag_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/ex-unit-with-no-x-height_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/first-letter-inline-flow-split-crash_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/first-letter-inline-flow-split-table-crash_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/first-letter-nested_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/first-line-parent-style-different_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/fixed-width-intrinsic-width-excludes-scrollbars_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/css/focus-display-block-inline_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/font-face-cache-bug_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/font-face-descending-unicode-range_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/font-face-font-family-descriptor_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/font-face-insert-link_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/font-face-multiple-ranges-for-unicode-range_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/fontface-properties_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/fontfaceset-download-error_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/fontfaceset-events_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/fontfaceset-loadingdone_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/font-face-svg-decoding-error_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/font-face-unicode-range-load_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/font-face-unicode-range-monospace_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/font-face-unicode-range-overlap-load_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/font-face-used-after-retired_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/font-family-builtins_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/font-family-initial-shorthand_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/font-family-trailing-bracket-gunk_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/font-property-priority_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/font-shorthand-from-longhands_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/font-shorthand-mix-inherit_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css-generated-content/block-after_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/css-generated-content/bug91547_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css-generated-content/details-before-after-content_t01: Crash # (throw new ExpectException(message)): Unhandled node
 LayoutTests/fast/css-generated-content/float-first-letter-siblings-convert-to-inline_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css-generated-content/hit-test-generated-content_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/css-generated-content/inline-splitting-with-after-float-crash_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/css-generated-content/pseudo-animation-before-onload_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/css-generated-content/pseudo-animation-display_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/css-generated-content/pseudo-animation-display_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/css-generated-content/pseudo-animation_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/css-generated-content/pseudo-element-events_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/css-generated-content/pseudo-transition-event_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/css-generated-content/pseudo-transition_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/css-generated-content/summary-before-after-content_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/getComputedStyle/computed-style-border-image_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/getComputedStyle/computed-style-cross-fade_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/getComputedStyle/computed-style-display-none_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/getComputedStyle/computed-style-font_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/getComputedStyle/computed-style-negative-top_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/getComputedStyle/computed-style-page-break-inside_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/getComputedStyle/computed-style-properties_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/getComputedStyle/computed-style-select-overflow_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/getComputedStyle/computed-style-with-zoom_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/getComputedStyle/counterIncrement-without-counter_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/getComputedStyle/font-family-fallback-reset_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/getComputedStyle/getComputedStyle-border-box_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/getComputedStyle/getComputedStyle-border-image-slice_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/getComputedStyle/getComputedStyle-borderRadius-2_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/getComputedStyle/getComputedStyle-border-radius-shorthand_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/getComputedStyle/getComputedStyle-border-style-shorthand_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/getComputedStyle/getComputedStyle-column-rule_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/getComputedStyle/getComputedStyle-height_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/getComputedStyle/getComputedStyle-length-unit_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/getComputedStyle/getComputedStyle-outline-offset_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/getComputedStyle/getComputedStyle-zIndex-auto_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/getPropertyValue-border_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/getPropertyValue-clip_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/getPropertyValue-column-rule_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/getPropertyValue-columns_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/getPropertyValue-webkit-margin-collapse_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/getPropertyValue-webkit-text-stroke_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/css-grid-layout/auto-content-resolution-rows_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css-grid-layout/breadth-size-resolution-grid_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css-grid-layout/calc-resolution-grid-item_t01: Crash # unsupported element kind: _completer:field
@@ -11188,7 +9916,7 @@
 LayoutTests/fast/css-grid-layout/flex-content-resolution-rows_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-get-set_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css-grid-layout/grid-auto-flow-get-set_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css-grid-layout/grid-auto-flow-update_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
+LayoutTests/fast/css-grid-layout/grid-auto-flow-update_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/css-grid-layout/grid-container-change-explicit-grid-recompute-child_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/css-grid-layout/grid-element-bad-cast-addchild_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css-grid-layout/grid-element-border-grid-item_t01: Crash # unsupported element kind: _completer:field
@@ -11202,12 +9930,12 @@
 LayoutTests/fast/css-grid-layout/grid-item-area-get-set_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css-grid-layout/grid-item-bad-named-area-auto-placement_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css-grid-layout/grid-item-bad-resolution-double-span_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css-grid-layout/grid-item-change-order-auto-flow_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
+LayoutTests/fast/css-grid-layout/grid-item-change-order-auto-flow_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/css-grid-layout/grid-item-display_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-horiz-bt_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vert-lr_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vert-rl_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css-grid-layout/grid-item-margin-resolution_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css-grid-layout/grid-item-order-auto-flow-resolution_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css-grid-layout/grid-strict-ordering-crash_t01: Crash # unsupported element kind: _completer:field
@@ -11217,26 +9945,13 @@
 LayoutTests/fast/css-grid-layout/minmax-fixed-logical-height-only_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css-grid-layout/minmax-fixed-logical-width-only_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track-in-percent-grid_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track-update_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/css-grid-layout/percent-padding-margin-resolution-grid-item_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css-grid-layout/percent-padding-margin-resolution-grid-item-update_t01: Crash # unsupported element kind: _asyncCounter:field
+LayoutTests/fast/css-grid-layout/percent-padding-margin-resolution-grid-item_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css-grid-layout/percent-resolution-grid-item_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css-grid-layout/place-cell-by-index_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/html-attr-case-sensitivity_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/id-or-class-before-stylesheet-strict_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/id-or-class-before-stylesheet_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/image-set-parsing-invalid_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/image-set-setting_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/implicit-attach-marking_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/important-js-override_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/inherited-properties-explicit_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/inherited-properties-rare-text_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/inherit-initial-shorthand-values_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/insertRule-font-face_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/insertRule-media_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/css-intrinsic-dimensions/css-tables_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css-intrinsic-dimensions/height-property-value_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/css-intrinsic-dimensions/intrinsic-sized-absolutes_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css-intrinsic-dimensions/intrinsic-sized-blocks_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css-intrinsic-dimensions/intrinsic-sized-column-flex-items_t01: Crash # unsupported element kind: _completer:field
@@ -11244,460 +9959,115 @@
 LayoutTests/fast/css-intrinsic-dimensions/intrinsic-sized-replaced-absolutes_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css-intrinsic-dimensions/multicol_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css-intrinsic-dimensions/tables_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css-intrinsic-dimensions/width-property-value_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/css-intrinsic-dimensions/width-shrinks-avoid-floats_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/invalidation/clears-invalidation-whole-tree_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/invalidation/detach-reattach-shadow_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/invalidation/detach-reattach_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/invalidation/dynamic-selector-list-pseudo_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/invalidation/invalidation-set-with-adjacent-combinators_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/invalidation/no-invalidation-set-local-style_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/invalidation/shadow-host-toggle_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/invalidation/style-update-with-added-stylesheet_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/invalidation/targeted-attribute-style-invalidation_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/invalidation/targeted-class-any-pseudo_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/invalidation/targeted-class-host-pseudo_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/invalidation/targeted-class-id_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/invalidation/targeted-class-shadow-combinator_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/invalidation/targeted-class-style-invalidation_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/invalidation/targeted-class-type-selectors_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/invalidation/targeted-id-style-invalidation_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/invalidation/toggle-style-inside-shadow-root_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/invalid-hex-color_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/invalid-not-with-pseudo-element_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/invalid-not-with-simple-selector-sequence_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/invalid-predefined-color_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/invalid-rule-value_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/large-number-round-trip_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/last-child-innerhtml_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/legacy-opacity-styles_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/css/attribute-selector-begin-dynamic-no-elementstyle_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/cached-sheet-restore-crash_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/comment-before-charset-external_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/comment-before-charset_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/content/content-none_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/content/content-normal_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/content/content-quotes-01_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/content/content-quotes-02_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/content/content-quotes-03_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/content/content-quotes-04_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/content/content-quotes-05_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/content/content-quotes-06_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/counters/asterisk-counter-update-after-layout-crash_t01: Crash # unsupported element kind: _asyncCounter:field
+LayoutTests/fast/css/counters/complex-before_t01: Crash # unsupported element kind: _asyncCounter:field
+LayoutTests/fast/css/counters/counter-before-selector-crash_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/counters/counter-reparent-table-children-crash_t01: Crash # unsupported element kind: _asyncCounter:field
+LayoutTests/fast/css/counters/counter-reset-subtree-insert-crash_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/counters/counter-ruby-text-cleared_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/counters/counter-traverse-object-crash_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/crash-on-incomplete-not_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/css-keyframe-style-crash_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/device-aspect-ratio_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/first-letter-inline-flow-split-crash_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/first-letter-inline-flow-split-table-crash_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/first-line-parent-style-different_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/css/focus-display-block-inline_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/font-face-cache-bug_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/font-face-insert-link_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/font-face-svg-decoding-error_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/font-face-unicode-range-load_t01: Crash # unsupported element kind: _asyncCounter:field
+LayoutTests/fast/css/font-face-unicode-range-overlap-load_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/font-face-used-after-retired_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/fontfaceset-download-error_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/fontfaceset-events_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/fontfaceset-loadingdone_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/implicit-attach-marking_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css/link-alternate-stylesheet-1_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css/link-alternate-stylesheet-2_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css/link-alternate-stylesheet-3_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css/link-alternate-stylesheet-4_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css/link-alternate-stylesheet-5_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css/link-disabled-attr-parser_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/list-item-text-align_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/many-spaces-before-charset_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/margin-start-end_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/MarqueeLayoutTest_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/max-device-aspect-ratio_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/max-height-and-max-width_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/max-width-none_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/media-rule-dyn_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/media-rule-no-whitespace_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/media-rule-screenDepthPerComponent_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/min-device-aspect-ratio_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/min-max-width_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/misplaced-charset_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/named-colors_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/css/max-device-aspect-ratio_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/css/media-rule-dyn_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/css/min-device-aspect-ratio_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css/nested-at-rules_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/nested-rule-parent-sheet_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/next-sibling-changed_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/nth-child-implied-step_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/nth-child-no-mutations_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/nth-child-n_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/nth-child-odd-case-insensitive_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/nth-child-unary-prefix_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/outline-currentcolor_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/outline-hidden-illegal-value_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/overflow-property_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/padding-no-renderer_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/padding-start-end_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/parse-color-int-or-percent-crash_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/parsing-css-allowed-string-characters_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/parsing-css-comment_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/parsing-css-escapes_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/parsing-css-nonascii_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/parsing-css-nth-child_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/parsing-css-surrogate-pairs_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/parsing-expr-error-recovery_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/parsing-font-variant-ligatures_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/parsing-not-after-supports_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/parsing-object-fit_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/parsing-object-position_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/parsing-text-rendering_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/parsing-unexpected-eof_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-LayoutTests/fast/css/parsing-webkit-font-smoothing_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/css/parsing-css-allowed-string-characters_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/css/parsing-css-comment_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/css/parsing-css-escapes_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/css/parsing-css-nonascii_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/css/parsing-css-nth-child_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/css/parsing-css-surrogate-pairs_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
 LayoutTests/fast/css/percent-min-width-img-src-change_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css/percent-width-img-src-change_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/position-absolute-float_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/positioned-in-relative-position-inline-crash_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/positioned-overflow-scroll_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/css/pseudo-any_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/pseudo-default-001_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/pseudo-default-002_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/pseudo-default-003_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/pseudo-default-004_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/pseudo-empty-display-none_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/pseudo-empty-dynamic-empty_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/pseudo-escaped-parenthesis_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/pseudo-in-range-invalid-value_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/pseudo-in-range_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/pseudo-invalid-001_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/pseudo-invalid-002_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/pseudo-invalid-novalidate-001_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/pseudo-not_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/pseudo-out-of-range_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/pseudo-required-optional-001_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/pseudo-required-optional-002_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/pseudo-required-optional-003_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/pseudo-required-optional-004_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/pseudo-required-optional-005_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/pseudo-required-optional-006_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/pseudo-required-optional-unapplied_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/css/positioned-in-relative-position-inline-crash_t01: Crash # (asyncEnd): handleStaticFunctionGet: function(asyncEnd)
+LayoutTests/fast/css/pseudo-out-of-range_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
 LayoutTests/fast/css/pseudo-target-indirect-sibling-001_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/css/pseudo-target-indirect-sibling-002_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/css/pseudo-valid-001_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/pseudo-valid-002_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/pseudo-valid-004_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/pseudo-valid-007_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/pseudo-valid-dynamic_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/pseudo-valid-unapplied_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/readonly-pseudoclass-opera-001_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/readonly-pseudoclass-opera-002_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/readonly-pseudoclass-opera-003_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/readonly-pseudoclass-opera-004_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/readonly-pseudoclass-opera-005_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/readwrite-contenteditable-recalc_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/recalc-direct-adjacent-001_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/recalc-optgroup-inherit_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/relative-positioned-block-crash_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/relative-position-replaced-in-table-display-crash_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/css/remove-attribute-style_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/remove-class-name_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/css/pseudo-valid-dynamic_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/css/readonly-pseudoclass-opera-005_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/css/relative-position-replaced-in-table-display-crash_t01: Crash # (asyncEnd): handleStaticFunctionGet: function(asyncEnd)
+LayoutTests/fast/css/relative-positioned-block-crash_t01: Crash # (asyncEnd): handleStaticFunctionGet: function(asyncEnd)
 LayoutTests/fast/css/remove-fixed-resizer-crash_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/css/rem-units-body_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/resize-value-compared_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/rgba-custom-text_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/selector-text-escape_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/css/shadow-current-color_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/shadow-dom-scope_t01: Crash # (throw new ExpectException(message)): Unhandled node
 LayoutTests/fast/css/sheet-collection-link_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/css/sheet-title_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/css/shorthand-priority_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/shorthand-setProperty-important_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/shorthands-four-values_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/sibling-selectors-dynamic_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/sibling-selectors_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/css/space-before-charset-external_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/css/space-before-charset_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/sticky/parsing-position-sticky_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/css/sticky/remove-inline-sticky-crash_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/css/sticky/remove-sticky-crash_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/css/sticky/sticky-table-col-crash_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/string-quote-binary_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/css/style-element-process-crash_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/css/style-scoped/style-scoped-in-shadow_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/style-scoped/style-scoped-nested_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/style-scoped/style-scoped-scoping-nodes-different-order_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/css/style-scoped/style-scoped-shadow-crash_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/style-scoped/style-scoped-with-dom-operation_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/style-scoped/style-scoped-with-important-rule_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/style-sharing-grand-parent-invalidate_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/style-sharing-inline-stylesheet_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/style-sharing-type-and-readonly_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/css/stylesheet-enable-first-alternate-link_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/css/stylesheet-enable-first-alternate-on-load-link_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/css/stylesheet-enable-first-alternate-on-load-sheet_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/css/stylesheet-enable-second-alternate-link_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/css/stylesheet-parentStyleSheet_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/css/test-setting-canvas-color_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/text-align-initial_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/text-align-webkit-match-parent-parse_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/text-align-webkit-match-parent_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/transform-origin-parsing_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/unicode-bidi-computed-value_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/url-with-multi-byte-unicode-escape_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/vertical-align-length-copy-bug_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/visibility-collapse-form-buttons_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/visited-link-hang_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/css/webkit-color-adjust_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/css/visited-link-hang_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
 LayoutTests/fast/css/webkit-keyframes-crash_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/css/webkit-marquee-speed-unit-in-quirksmode_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/css/word-break-user-modify-allowed-values_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/zoom-in-length-round-trip_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/css/zoom-property-parsing_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/52776_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/allowed-children_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/anchor-origin_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/anchor-text_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/anchor-toString_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/anchor-without-content_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/Attr/access-after-element-destruction_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Attr/change-id-via-attr-node-value_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Attr/direction-attribute-set-and-cleared_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/attribute-namespaces-get-set_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/background-shorthand-csstext_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/blur-contenteditable_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/boolean-attribute-reflection_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/capturing-event-listeners_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/characterdata-api-arguments_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/click-method-on-html-element_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/clone-contents-0-end-offset_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/clone-node-default-argument_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Comment/comment-constructor_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/comment-dom-node_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/comment-not-documentElement_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Comment/remove_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/computed-style-set-property_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/containerNode_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/createDocument_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/createDocumentType2_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/createDocumentType-ownerDocument_t01: Crash # (throw "${reason}: ${e}"): Unhandled node
-LayoutTests/fast/dom/createDocumentType_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/createElementNS-empty-namespace_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/createElementNS-namespace-errors_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/createElementNS_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/createElement_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/createElement-with-column_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/createElement-with-column_xml_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/css-cached-import-rule_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/css-delete-doc_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/css-inline-style-important_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/css-innerHTML_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/css-insert-import-rule_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/css-insert-import-rule-twice_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/css-mediarule-deleteRule-update_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/css-mediarule-functions_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/css-mediarule-insertRule-update_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/css-mediarule-parentRule_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/css-rule-functions_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/css-selectorText_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/css-set-property-exception_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/css-shorthand-common-value_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/css-shortHands_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/cssTarget-crash_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/custom/attribute-changed-callback_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-LayoutTests/fast/dom/custom/constructor-calls-created-synchronously_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/custom/created-callback_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-LayoutTests/fast/dom/custom/document-register-basic_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/custom/document-register-namespace_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/custom/document-register-on-create-callback_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/custom/document-register-svg-extends_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-LayoutTests/fast/dom/custom/document-register-type-extensions_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/custom/element-names_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-LayoutTests/fast/dom/custom/element-type_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/custom/element-upgrade_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/custom/invalid-type-extension-crash_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/custom/type-extensions_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-LayoutTests/fast/dom/custom/unresolved-pseudoclass_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/custom/upgrade-candidate-remove-crash_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/dataset_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/dataset-xhtml_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/basic_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-strict-mode-wtih-checkbox_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-user-select-none_t01: Crash # (throw new ExpectException(message)): Unhandled node
 LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-zoom-and-scroll_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-with-first-letter-style_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/replace-element_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/Document/clone-node_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Document/createElement-invalid-names_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Document/createElementNS-namespace-err_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/Document/createElement-valid-names_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/Document/document-title-get_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/DocumentFragment/document-fragment-constructor_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/document-importNode-arguments_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/document-set-title-mutations_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/document-set-title-no-child-on-empty_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/document-set-title-no-reuse_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/document-stylesheets-empty-style_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Document/title-property-creates-title-element_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Document/title-property-set-multiple-times_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Document/title-with-multiple-children_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/document-width-height-force-layout_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/DOMException/dispatch-event-exception_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/DOMException/prototype-object_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/DOMException/XPathException_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/DOMImplementation/createDocument-namespace-err_t01: Crash # (impl): Error expression `impl` unhandled.
-LayoutTests/fast/dom/DOMImplementation/createDocumentType-err_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/DOMImplementation/createHTMLDocument-title_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/dom-instanceof_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/dom-method-document-change_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/domparser-parsefromstring-mimetype-support_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/dom-parse-serialize-display_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/dom-parse-serialize_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/dom-parse-serialize-xmldecl_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/domtimestamp-is-number_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/duplicate-ids-document-order_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/duplicate-ids_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/Element/attribute-uppercase_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Element/class-name_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Element/client-rect-list-argument_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/Element/dimension-properties-unrendered_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Element/fixed-position-offset-parent_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/elementFromPoint-scaled-scrolled_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Element/getBoundingClientRect-getClientRects-relative-to-viewport_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Element/getClientRects_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Element/hostname-host_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Element/id-in-frame_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/Element/id-in-getelement01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/Element/id-in-insert-hr_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/Element/id-in-map_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/Element/id-in-param_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/Element/node-list-identity_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/Element/offsetTop-table-cell_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Element/remove_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Element/scrollWidth_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Element/setAttribute-case-insensitivity_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Element/setAttributeNS-namespace-err_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/Element/setAttribute-with-colon_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/empty-hash-and-search_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/focus-contenteditable_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/fragment-activation-focuses-target_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/gc-image-element-2_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/gc-image-element_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/getElementById-consistency2_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/getElementById-consistency3_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/getElementById-consistency4_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/getElementById-consistency5_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/getElementById-consistency_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/getelementbyname-invalidation_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/getElementsByClassName/001_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/getElementsByClassName/002_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/getElementsByClassName/003_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/getElementsByClassName/004_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/getElementsByClassName/005_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/getElementsByClassName/006_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/getElementsByClassName/007_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/getElementsByClassName/008_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/getElementsByClassName/009_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/getElementsByClassName/010_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/getElementsByClassName/011_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/getElementsByClassName/012_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/getElementsByClassName/013_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/getElementsByClassName/014_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/getElementsByClassName/015_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/getElementsByClassName/dumpNodeList_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/getelementsbyname-invalidation-cache_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/horizontal-scrollbar-in-rtl-doesnt-fire-onscroll_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/dom/horizontal-scrollbar-in-rtl_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/dom/horizontal-scrollbar-when-dir-change_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLAnchorElement/get-href-attribute-port_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/dom/HTMLAnchorElement/remove-href-from-focused-anchor_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-hash_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-hostname_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-host_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-pathname_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-port_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-prevents-rebase_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-protocol_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-rebase_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-search_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-whitespace_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLBaseElement/href-attribute-resolves-with-respect-to-document_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLBaseElement/multiple-base-elements_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLButtonElement/change-type_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLButtonElement/value/getset_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/htmlcollection-length-after-item_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/html-collections-named-getter-mandatory-arg_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLDialogElement/dialog-autofocus_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLDialogElement/dialog-close-event_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLDialogElement/dialog-enabled_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLDialogElement/dialog-open_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLDialogElement/dialog-return-value_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLDialogElement/dialog-scrolled-viewport_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLDialogElement/dialog-show-modal_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/HTMLDialogElement/inert-does-not-match-disabled-selector_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLDialogElement/inert-node-is-unfocusable_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLDialogElement/inert-node-is-unselectable_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLDialogElement/multiple-centered-dialogs_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLDialogElement/non-anchored-dialog-positioning_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLDialogElement/show-modal-focusing-steps_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/dom/HTMLDialogElement/submit-dialog-close-event_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/HTMLDialogElement/synthetic-click-inert_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLDialogElement/top-layer-position-relative_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/dom/HTMLDialogElement/top-layer-position-static_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
 LayoutTests/fast/dom/HTMLDocument/active-element-gets-unforcusable_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/dom/HTMLDocument/activeElement_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLDocument/clone-node_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/dom/HTMLDocument/set-focus-on-valid-element_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/dom/HTMLDocument/title-get_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLDocument/title-set_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/attr-dir-auto-change-before-text-node_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/attr-dir-auto-change-child-node_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/attr-dir-auto-change-text-form-control_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/attr-dir-auto-change-text_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/attr-dir-auto-children_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/attr-dir-auto-remove-add-children_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/attr-dir-auto_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/attr-dir-auto-text-form-control-child_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/attr-dir-auto-text-form-control_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/attr-dir-value-change_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/attr-empty-string_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/attr-false-string_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/attr-invalid-string_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/attr-missing-ancestor-false_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/attr-missing-ancestor-true_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/attr-missing-parent-ancestor-missing_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/attr-missing-parent-false_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/attr-missing-parent-true_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/attr-true-string_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/insertAdjacentHTML-errors_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/set-false_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/set-inherit-parent-false_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/set-inherit-parent-true_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/set-inner-outer-optimization_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/set-invalid-value_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/set-true_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/set-value-caseinsensitive_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/spellcheck_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLElement/translate_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLFontElement/size-attribute_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLFormElement/elements-not-in-document_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/dom/HTMLFormElement/move-option-between-documents_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/dom/HTMLImageElement/image-loading-gc_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/dom/HTMLImageElement/image-natural-width-height_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/dom/HTMLImageElement/image-src-absolute-url_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/HTMLImageElement/parse-src_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLInputElement/checked-pseudo-selector_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/HTMLInputElement/cloned-input-checked-state_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/HTMLInputElement/clone-input-checked_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLInputElement/duplicate-element-names_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLInputElement/input-checked-reset_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/HTMLInputElement/input-hidden-value_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLInputElement/input-size-attribute_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLInputElement/input-text-reset_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/HTMLInputElement/size-as-number_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLInputElement/size-attribute_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLLabelElement/click-label_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLLabelElement/focus-label_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLLabelElement/form/test1_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/HTMLLabelElement/label-control_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/dom/HTMLLinkElement/link-and-subresource-test-nonexistent_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/dom/HTMLLinkElement/link-and-subresource-test_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/dom/HTMLLinkElement/link-beforeload-recursive_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/dom/HTMLLinkElement/link-onerror-stylesheet-with-existent-and-non-existent-import_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/dom/HTMLLinkElement/link-onerror-stylesheet-with-non-existent-import_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/dom/HTMLLinkElement/link-onerror_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/HTMLLinkElement/link-onload2_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/dom/HTMLLinkElement/link-onload-before-page-load_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/dom/HTMLLinkElement/link-onload-stylesheet-with-import_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/HTMLLinkElement/link-onload_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/HTMLLinkElement/link-sheet-out-of-tree_t01: Crash # (throw new ExpectException(message)): Unhandled node
+LayoutTests/fast/dom/HTMLLinkElement/link-onload-stylesheet-with-import_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/dom/HTMLLinkElement/link-onload2_t01: Crash # unsupported element kind: _asyncCounter:field
+LayoutTests/fast/dom/HTMLLinkElement/link-onload_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/dom/HTMLLinkElement/onload-completion-test_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/dom/HTMLLinkElement/prefetch-beforeload_t01: Crash # (throw new ExpectException(message)): Unhandled node
 LayoutTests/fast/dom/HTMLLinkElement/prefetch-onerror_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/dom/HTMLLinkElement/prefetch-onload_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/dom/HTMLLinkElement/prefetch_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/dom/HTMLLinkElement/resolve-url-on-insertion_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLLinkElement/subresource_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/HTMLMetaElement/meta-attributes_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLMeterElement/set-meter-properties_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/dom/HTMLObjectElement/beforeload-set-text-crash_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/dom/HTMLObjectElement/children-changed_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/HTMLObjectElement/form/test1_t01: Crash # (throw new ExpectException(message)): Unhandled node
 LayoutTests/fast/dom/HTMLObjectElement/set-type-to-null-crash_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/HTMLOutputElement/dom-settable-token-list_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLOutputElement/htmloutputelement-children-removed_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/HTMLOutputElement/htmloutputelement-reset-event_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLOutputElement/htmloutputelement_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLOutputElement/htmloutputelement-validity_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLOutputElement/htmloutputelement-value_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLProgressElement/indeterminate-progress-002_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/dom/HTMLProgressElement/progress-element-with-style-crash_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/HTMLProgressElement/set-progress-properties_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/dom/HTMLScriptElement/async-false-inside-async-false-load_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/dom/HTMLScriptElement/async-onbeforeload_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/dom/HTMLScriptElement/defer-onbeforeload_t01: Crash # unsupported element kind: _completer:field
@@ -11706,80 +10076,18 @@
 LayoutTests/fast/dom/HTMLScriptElement/isURLAttribute_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/dom/HTMLScriptElement/remove-in-beforeload_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/dom/HTMLScriptElement/remove-source_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/HTMLScriptElement/script-async-attr_t01: Crash # (throw new ExpectException(message)): Unhandled node
 LayoutTests/fast/dom/HTMLScriptElement/script-for-attribute-unexpected-execution_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/HTMLScriptElement/script-load-events_t01: Crash # (throw new ExpectException(message)): Unhandled node
+LayoutTests/fast/dom/HTMLScriptElement/script-load-events_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/dom/HTMLScriptElement/script-reexecution_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/dom/HTMLScriptElement/script-set-src_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/HTMLSelectElement/change-multiple-preserve-selection_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLSelectElement/listbox-select-reset_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLSelectElement/named-options_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLSelectElement/selected-false_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLSelectElement/selected-index-preserved-when-option-text-changes_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLSelectElement/select-element-item-argument_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLSelectElement/select-selectedOptions_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLStyleElement/insert-parser-generated_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/dom/HTMLStyleElement/programmatically-add-style-with-onerror-handler_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/dom/HTMLStyleElement/programmatically-add-style-with-onload-handler_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/dom/HTMLStyleElement/style-onerror_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/dom/HTMLStyleElement/style-onerror-with-existent-and-non-existent-import_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/dom/HTMLStyleElement/style-onload2_t01: Crash # unsupported element kind: _asyncCounter:field
+LayoutTests/fast/dom/HTMLStyleElement/style-onerror_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/dom/HTMLStyleElement/style-onload-before-page-load_t01: Crash # unsupported element kind: _asyncCounter:field
+LayoutTests/fast/dom/HTMLStyleElement/style-onload2_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/dom/HTMLStyleElement/style-onload_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/dom/HTMLTableElement/cellpadding-attribute_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLTableElement/createCaption_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLTableElement/early-acid3-65-excerpt_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLTableElement/early-acid3-66-excerpt_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLTableElement/exceptions_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLTableElement/insert-row_t01: Crash # Please triage this failure.
-LayoutTests/fast/dom/HTMLTableElement/rows_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLTableElement/table-with-invalid-border_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLTableElement/tBodies_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLTableRowElement/cells_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLTableRowElement/exceptions_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLTableRowElement/insertCell_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLTableSectionElement/rows_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLTemplateElement/cloneNode_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/HTMLTemplateElement/contentWrappers_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLTemplateElement/custom-element-wrapper-gc_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLTemplateElement/cycles-in-shadow_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLTemplateElement/cycles_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLTemplateElement/inertContents_t01: Crash # (throw new ExpectException(message)): Unhandled node
 LayoutTests/fast/dom/HTMLTemplateElement/innerHTML-inert_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/dom/HTMLTemplateElement/innerHTML_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLTemplateElement/no-form-association_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/HTMLTemplateElement/ownerDocument_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLTemplateElement/ownerDocumentXHTML_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLTemplateElement/xhtml-parsing-and-serialization_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/HTMLTextAreaElement/reset-textarea_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/icon-size-property_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/icon-url-change_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/icon-url-list_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/id-attribute-with-namespace-crash_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/image-object_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/implementation-api-args_t01: Crash # (throw "${reason}: ${e}"): Unhandled node
-LayoutTests/fast/dom/implementation-createHTMLDocument_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/import-document-fragment_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/importNode-confusing-localName_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/importNodeHTML_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/importNode-null_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/importNode-prefix_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/importNode-unsupported-node-type_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/importNodeXML_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/innerHTML-detached-element_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/innerHTML-escaping-attribute_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/innerHTML-nbsp_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/inner-text-first-letter_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/inner-text_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/inner-width-height_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/javascript-backslash_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/jsDevicePixelRatio_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/left-overflow-in-ltr_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/length-attribute-mapping_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/location-hash_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/dom/location-missing-arguments_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/multiple-ids_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/MutationObserver/added-out-of-order_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/dom/MutationObserver/callback-arguments_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/dom/MutationObserver/clear-transient-without-delivery_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/dom/MutationObserver/create-during-delivery_t01: Crash # unsupported element kind: _completer:field
@@ -11789,2368 +10097,831 @@
 LayoutTests/fast/dom/MutationObserver/disconnect-cancel-pending_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/dom/MutationObserver/document-fragment-insertion_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/dom/MutationObserver/mutate-during-delivery_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/MutationObserver/mutation-record-constructor_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/MutationObserver/mutation-record-nullity_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/dom/MutationObserver/observe-attributes_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/dom/MutationObserver/observe-characterdata_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/dom/MutationObserver/observe-childList_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/MutationObserver/observe-exceptions_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/MutationObserver/observe-options-attributes_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/MutationObserver/observe-options-character-data_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/MutationObserver/observer-wrapper-dropoff_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/dom/MutationObserver/observer-wrapper-dropoff-transient_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/dom/MutationObserver/observe-subtree_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/MutationObserver/removed-out-of-order_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/dom/MutationObserver/observer-wrapper-dropoff-transient_t01: Crash # unsupported element kind: _asyncCounter:field
+LayoutTests/fast/dom/MutationObserver/observer-wrapper-dropoff_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/dom/MutationObserver/takeRecords_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/dom/MutationObserver/transient-gc-crash_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/MutationObserver/weak-callback-gc-crash_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/navigatorcontentutils/is-protocol-handler-registered_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/navigatorcontentutils/register-protocol-handler_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/navigatorcontentutils/unregister-protocol-handler_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/navigator-userAgent_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/navigator-vendorSub_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/node-childNodes-idempotence_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/Node/contains-method_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/Node/DOMNodeRemovedEvent_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Node/fragment-mutation_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Node/initial-values_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/NodeIterator/NodeIterator-basic_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-LayoutTests/fast/dom/node-iterator-reference-node-removed_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/node-iterator-with-doctype-root_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/NodeList/childNodes-reset-cache_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/NodeList/childNodes-reverse-iteration_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/NodeList/invalidate-node-lists-when-parsing_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/NodeList/nodelist-reachable_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/no-elements_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/dom/SelectorAPI/bug-17313_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/dom/SelectorAPI/dumpNodeList-2_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/dom/SelectorAPI/dumpNodeList-almost-strict_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/dom/SelectorAPI/dumpNodeList_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/dom/StyleSheet/detached-style-2_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/dom/StyleSheet/detached-style_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/dom/StyleSheet/discarded-sheet-owner-null_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/dom/TreeWalker/TreeWalker-basic_t01: Crash # Please triage this failure.
+LayoutTests/fast/dom/Window/getMatchedCSSRules-nested-rules_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/dom/Window/getMatchedCSSRules-parent-stylesheets_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/dom/css-cached-import-rule_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/dom/css-delete-doc_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/dom/css-insert-import-rule-twice_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/dom/css-insert-import-rule_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/dom/css-mediarule-deleteRule-update_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/dom/css-mediarule-insertRule-update_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/dom/cssTarget-crash_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/dom/custom/attribute-changed-callback_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/dom/custom/constructor-calls-created-synchronously_t01: Crash # unsupported element kind: attributeChangedCallback:field
+LayoutTests/fast/dom/custom/created-callback_t01: Crash # unsupported element kind: createdCallback:field
+LayoutTests/fast/dom/custom/document-register-on-create-callback_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/dom/custom/element-type_t01: Crash # unsupported element kind: createdCallback:field
+LayoutTests/fast/dom/custom/element-upgrade_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/dom/document-set-title-mutations_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/dom/domtimestamp-is-number_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/dom/empty-hash-and-search_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/dom/gc-image-element-2_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/dom/gc-image-element_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/dom/getElementsByClassName/001_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/dom/getElementsByClassName/002_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/dom/getElementsByClassName/003_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/dom/getElementsByClassName/004_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/dom/getElementsByClassName/005_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/dom/getElementsByClassName/006_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/dom/getElementsByClassName/007_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/dom/getElementsByClassName/008_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/dom/getElementsByClassName/009_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/dom/getElementsByClassName/010_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/dom/getElementsByClassName/011_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/dom/getElementsByClassName/012_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/dom/getElementsByClassName/013_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/dom/getElementsByClassName/014_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/dom/getElementsByClassName/015_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/dom/getElementsByClassName/dumpNodeList_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/dom/horizontal-scrollbar-in-rtl-doesnt-fire-onscroll_t01: Crash # unsupported element kind: _asyncCounter:field
+LayoutTests/fast/dom/horizontal-scrollbar-in-rtl_t01: Crash # unsupported element kind: _asyncCounter:field
+LayoutTests/fast/dom/horizontal-scrollbar-when-dir-change_t01: Crash # unsupported element kind: _asyncCounter:field
+LayoutTests/fast/dom/icon-url-change_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/dom/icon-url-list_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/dom/id-attribute-with-namespace-crash_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/dom/image-object_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/dom/inner-text_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/dom/location-hash_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/dom/non-styled-element-id-crash_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/dom/noscript-style_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/object-plugin-hides-properties_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/offset-parent-positioned-and-inline_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/offset-position-writing-modes_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/dom/object-plugin-hides-properties_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
 LayoutTests/fast/dom/onerror-img_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/dom/option-properties_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/partial-layout-block_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
 LayoutTests/fast/dom/partial-layout-non-overlay-scrollbars_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/dom/partial-layout-overlay-scrollbars_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/Range/13000_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Range/31684_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Range/bug-19527_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Range/create-contextual-fragment-script-not-ran_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/Range/create-contextual-fragment-script-unmark-already-started_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Range/create-contextual-fragment_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/Range/deleted-range-endpoints_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Range/getClientRects-character_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/Range/insertNode-empty-fragment-crash_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Range/missing-arguments_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Range/mutation_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Range/range-clone-contents_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Range/range-clone-empty_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/Range/range-comparePoint_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Range/range-constructor_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Range/range-created-during-remove-children_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Range/range-detached-exceptions_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Range/range-exceptions_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Range/range-extract-contents_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Range/range-insertNode-separate-endContainer_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Range/range-insertNode-splittext_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Range/range-isPointInRange_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Range/range-modifycontents_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Range/range-on-detached-node_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Range/range-processing-instructions_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Range/select-node-different-document_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Range/surroundContents-1_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Range/surroundContents-check-boundary-points_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Range/surroundContents-for-detached-node_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/dom/remove-body-during-body-replacement_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/replace-child-siblings_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/replace-first-child_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Selection/collapseToX-empty-selection_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Selection/getRangeAt_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/SelectorAPI/bug-17313_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/SelectorAPI/caseID-almost-strict_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/SelectorAPI/caseID-strict_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/SelectorAPI/caseID_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/SelectorAPI/caseTag_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/SelectorAPI/caseTagX_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/SelectorAPI/detached-element_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/SelectorAPI/dumpNodeList-2_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/SelectorAPI/dumpNodeList-almost-strict_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/SelectorAPI/dumpNodeList_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/SelectorAPI/duplicate-id-scope_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/SelectorAPI/elementRoot_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/SelectorAPI/id-fastpath-almost-strict_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/SelectorAPI/id-fastpath-strict_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/SelectorAPI/id-fastpath_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/SelectorAPI/not-supported-namespace-in-selector_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/SelectorAPI/unknown-pseudo_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/SelectorAPI/viewless-document_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/serialize-attribute_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/setAttributeNS-namespace-errors_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/setAttribute-using-initial-input-value_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/set-custom-validity-with-too-few-arguments_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/set-innerHTML_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/setter-type-enforcement_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/base-in-shadow-tree_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/content-element-api_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/content-element-includer_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/content-element-outside-shadow-style_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/content-pseudo-element-css-text_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/dom/shadow/content-pseudo-element-dynamic-attribute-change_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/shadow/content-pseudo-element-overridden_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/content-pseudo-element-relative-selector-css-text_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/content-pseudo-element-with-host-pseudo-class_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/content-reprojection-fallback-crash_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/custom-pseudo-in-selector-api_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/distribution-for-event-path_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/distribution-update-recalcs-style_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/elementfrompoint_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/elements-in-frameless-document_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/event-path-not-in-document_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/event-path_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/form-in-shadow_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/getComputedStyle-composed-parent-dirty_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/get-distributed-nodes-orphan_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/getelementbyid-in-orphan_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/get-element-by-id-in-shadow-mutation_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/getelementbyid-shadow_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/host-context-pseudo-class-css-text_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/host-pseudo-class-css-text_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/dom/shadow/distribution-for-event-path_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/dom/shadow/event-path_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/dom/shadow/get-distributed-nodes-orphan_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
 LayoutTests/fast/dom/shadow/insertion-point-list-menu-crash_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/dom/shadow/insertion-point-video-crash_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/dom/shadow/link-in-shadow-tree_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/dom/shadow/nested-reprojection-inconsistent_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/dom/shadow/no-renderers-for-light-children_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/shadow/offsetWidth-host-style-change_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/olderShadowRoot_t01: Crash # (throw new ExpectException(message)): Unhandled node
 LayoutTests/fast/dom/shadow/pseudoclass-update-checked-option_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-optgroup_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-option_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/dom/shadow/pseudoclass-update-enabled-optgroup_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/dom/shadow/pseudoclass-update-enabled-option_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/shadow/reinsert-insertion-point_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/shadow/remove-and-insert-style_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/shadow-aware-shadow-root_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/shadow/shadow-disable_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/shadowdom-dynamic-styling_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/shadowdom-for-input-type-change_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/shadow-element-inactive_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/shadow-element_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/shadow-hierarchy-exception_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/dom/shadow/remove-and-insert-style_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/dom/shadow/shadow-root-js-api_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
 LayoutTests/fast/dom/shadow/shadowhost-keyframes_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/shadow/shadow-removechild-and-blur-event_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/shadow-root-append_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/shadow/shadowroot-clonenode_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/shadowroot-host_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/shadow-root-js-api_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/dom/shadow/shadowroot-keyframes_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/shadow/sibling-rules-dynamic-changes_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/style-of-distributed-node_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/style-sharing-sibling-shadow_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/style-sharing-styles-in-older-shadow-roots_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/suppress-mutation-events-in-shadow-characterdata_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/shadow/title-element-in-shadow_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/dom/shared-inline-style-after-node-removal_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/dom/stripNullFromTextNodes_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/StyleSheet/css-medialist-item_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/StyleSheet/detached-parent-rule-without-wrapper_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/StyleSheet/detached-shadow-style_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/StyleSheet/detached-style-2_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/StyleSheet/detached-stylesheet-without-wrapper_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/StyleSheet/detached-style_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/StyleSheet/discarded-sheet-owner-null_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/StyleSheet/empty-shadow-style_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/dom/subtree-modified-attributes_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/dom/text-api-arguments_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Text/next-element-sibling_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/dom/text-node-attach-crash_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/Text/previous-element-sibling_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Text/remove_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Text/replaceWholeText_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Text/text-constructor_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/title-content-set-innerText-get_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/TreeWalker/TreeWalker-basic_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-LayoutTests/fast/dom/TreeWalker/TreeWalker-currentNode_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/dom/vertical-scrollbar-in-rtl-doesnt-fire-onscroll_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/dom/vertical-scrollbar-when-dir-change_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/Window/atob-btoa_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Window/dispatchEvent_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/Window/getMatchedCSSRules-nested-rules_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/Window/getMatchedCSSRules-parent-stylesheets_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dom/Window/getMatchedCSSRules-with-invalid-pseudo-elements_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Window/getMatchedCSSRules-with-pseudo-elements-complex_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Window/getMatchedCSSRules-with-pseudo-elements_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/Window/invalid-protocol_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Window/querySelectorAll-with-pseudo-elements_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Window/replaceable_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Window/window-remove-event-listener_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Window/window-resize-contents_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Window/window-resize_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/Window/window-screen-properties_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/dom/Window/window-scroll-arguments_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/xhtml-fragment-parsing-exceptions_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/xhtml-fragment-whitespace_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/XMLHttpRequest-constants_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/XMLSerializer-attribute-entities_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/XMLSerializer-attribute-namespaces_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/XMLSerializer-doctype2_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/XMLSerializer-doctype_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/XMLSerializer-double-xmlns_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/XMLSerializer-element-ns-no-reemit_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-LayoutTests/fast/dom/xmlserializer-serialize-to-string-exception_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dom/XMLSerializer_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/dynamic/continuation-detach-crash_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dynamic/inline-to-block-crash_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/dynamic/insertAdjacentHTML-allowed-parents_t01: Crash # (throw new ExpectException(message)): Unhandled node
+LayoutTests/fast/dynamic/inline-to-block-crash_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
 LayoutTests/fast/dynamic/jQuery-animation-crash_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/dynamic/style-access-late-stylesheet-load_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/encoding/bom-in-content_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/encoding/css-charset-dom_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/events/add-event-without-document_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/events/change-overflow-on-overflow-change_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/events/clipboard-clearData_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/events/clipboard-dataTransferItemList-remove_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/events/clipboard-dataTransferItemList_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/events/defaultprevented_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/events/dispatch-event-being-dispatched_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/events/dispatch-event-no-document_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/events/dispatch-synthetic-mouseevent_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/events/div-focus_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/events/div-focus_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
 LayoutTests/fast/events/document-elementFromPoint_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/events/domnodeinsertedintodocument-dispatched-post-rendering_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/events/event-attributes-after-exception_t01: Crash #  try/finally
-LayoutTests/fast/events/event-creation_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/events/event-fired-after-removal_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/events/event-fire-order_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/events/event-listener-list-mutation_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/events/event-listener-moving-documents_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/events/event-listener-sharing_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/events/event-on-created-document_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/events/event-fire-order_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/events/event-fired-after-removal_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/events/event-on-created-document_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
 LayoutTests/fast/events/event-on-xhr-document_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/events/event-trace_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/events/fire-scroll-event-element_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/events/fire-scroll-event_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/events/form-onchange_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/events/init-message-event_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/events/input-focus-no-duplicate-events_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/events/invalid-001_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/events/invalid-002_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/events/invalid-003_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/events/invalid-004_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/events/invalid-005_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/events/keyboardevent-location-constants_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/events/mutation-during-append-child_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/events/mutation-during-insert-before_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/events/mutation-during-replace-child-2_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/events/mutation-during-replace-child_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/events/input-focus-no-duplicate-events_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
 LayoutTests/fast/events/nested-event-remove-node-crash_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/events/no-window-load_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/events/onerror-bubbling_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/events/onerror-img-after-gc_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/eventsource/eventsource-attribute-listeners_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/eventsource/eventsource-constructor_t01: Crash # (throw new ExpectException(message)): Unhandled node
+LayoutTests/fast/events/onerror-bubbling_t01: Crash # (asyncEnd): handleStaticFunctionGet: function(asyncEnd)
+LayoutTests/fast/events/onerror-img-after-gc_t01: Crash # (asyncEnd): handleStaticFunctionGet: function(asyncEnd)
 LayoutTests/fast/events/overflowchanged-event-raf-timing_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/events/page-visibility-null-view_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/events/programmatic-check-no-change-event_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/events/scoped/editing-commands_t01: Crash # (throw new ExpectException(message)): Unhandled node
 LayoutTests/fast/events/scroll-during-zoom-change_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/events/scroll-event-does-not-bubble_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/events/scroll-event-phase_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/events/selectstart-on-selectall_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/events/selectstart-prevent-selectall_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/events/stop-immediate-propagation_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/events/stopPropagation-checkbox_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/events/submit-reset-nested-bubble_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/events/submit-reset-nested-bubble_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
 LayoutTests/fast/events/tabindex-removal-from-focused-element_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/events/wheelevent-constructor_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/events/window-load-capture_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/events/xhr-onclick-crash_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/exclusions/parsing/parsing-wrap-flow_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/exclusions/parsing/parsing-wrap-through_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/files/blob-close-read_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/files/blob-close-revoke_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/files/blob-close_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/files/blob-constructor_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/eventsource/eventsource-constructor_t01: Crash # Please triage this failure.
+LayoutTests/fast/exclusions/parsing/parsing-wrap-flow_t01: Crash # (testExclusionSpecifiedProperty): handleStaticFunctionGet: function(testExclusionSpecifiedProperty)
+LayoutTests/fast/exclusions/parsing/parsing-wrap-through_t01: Crash # (testExclusionSpecifiedProperty): handleStaticFunctionGet: function(testExclusionSpecifiedProperty)
+LayoutTests/fast/files/blob-close-read_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/files/blob-close-revoke_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/files/blob-parts-slice-test_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/files/blob-slice-overflow_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/files/blob-slice-test_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/files/create-blob-url-crash_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/files/file-reader-abort-in-last-progress_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/files/file-reader-done-reading-abort_t01: Crash # (throw new ExpectException(message)): Unhandled node
+LayoutTests/fast/files/file-reader-done-reading-abort_t01: Crash # (asyncEnd): handleStaticFunctionGet: function(asyncEnd)
 LayoutTests/fast/files/file-reader-fffd_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/files/file-reader-immediate-abort_t01: Crash # (throw new ExpectException(message)): Unhandled node
+LayoutTests/fast/files/file-reader-immediate-abort_t01: Crash # (asyncEnd): handleStaticFunctionGet: function(asyncEnd)
 LayoutTests/fast/files/file-reader-methods-illegal-arguments_t01: Crash #  Unhandled node
 LayoutTests/fast/files/file-reader-readystate_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/files/file-reader-result-twice_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/files/not-enough-arguments_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/files/read-blob-as-array-buffer_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/files/revoke-blob-url_t01: Crash # Please triage this failure.
-LayoutTests/fast/files/url-null_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/files/url-required-arguments_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/files/workers/inline-worker-via-blob-url_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/files/xhr-response-blob_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/filesystem/async-operations_t01: Crash # cannot compile methods that need interceptor calling convention.
+LayoutTests/fast/files/xhr-response-blob_t01: Crash # (asyncEnd): handleStaticFunctionGet: function(asyncEnd)
+LayoutTests/fast/filesystem/async-operations_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/filesystem/directory-entry-to-uri_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/filesystem/file-after-reload-crash_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/filesystem/file-entry-to-uri_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/filesystem/file-from-file-entry_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/filesystem/file-metadata-after-write_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/filesystem/file-metadata-after-write_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/filesystem/file-writer-abort-continue_t01: Crash # (onError): handleStaticFunctionGet: function(onError)
+LayoutTests/fast/filesystem/file-writer-abort-depth_t01: Crash # (onError): handleStaticFunctionGet: function(onError)
+LayoutTests/fast/filesystem/file-writer-abort_t01: Crash # (onError): handleStaticFunctionGet: function(onError)
+LayoutTests/fast/filesystem/file-writer-empty-blob_t01: Crash # (onError): handleStaticFunctionGet: function(onError)
+LayoutTests/fast/filesystem/file-writer-events_t01: Crash # (onError): handleStaticFunctionGet: function(onError)
+LayoutTests/fast/filesystem/file-writer-gc-blob_t01: Crash # (onError): handleStaticFunctionGet: function(onError)
+LayoutTests/fast/filesystem/file-writer-truncate-extend_t01: Crash # (onError): handleStaticFunctionGet: function(onError)
+LayoutTests/fast/filesystem/file-writer-write-overlapped_t01: Crash # (onError): handleStaticFunctionGet: function(onError)
 LayoutTests/fast/filesystem/filesystem-reference_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/filesystem/filesystem-unserializable_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/filesystem/filesystem-uri-origin_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/filesystem/file-writer-abort-continue_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/filesystem/file-writer-abort-depth_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/filesystem/file-writer-abort_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/filesystem/file-writer-empty-blob_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/filesystem/file-writer-events_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/filesystem/file-writer-gc-blob_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/filesystem/file-writer-truncate-extend_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/filesystem/file-writer-write-overlapped_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/filesystem/input-access-entries_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/filesystem/op-copy_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/filesystem/op-get-entry_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/filesystem/op-get-metadata_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/filesystem/op-get-parent_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/filesystem/op-move_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/filesystem/op-read-directory_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/filesystem/op-remove_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/filesystem/op-restricted-chars_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/filesystem/op-restricted-names_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/filesystem/op-restricted-unicode_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/filesystem/read-directory-many_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/filesystem/read-directory_t01: Crash # cannot compile methods that need interceptor calling convention.
-LayoutTests/fast/filesystem/simple-readonly-file-object_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/filesystem/simple-readonly_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/filesystem/op-copy_t01: Crash # (fileSystemCallback): handleStaticFunctionGet: function(fileSystemCallback)
+LayoutTests/fast/filesystem/op-get-entry_t01: Crash # (fileSystemCallback): handleStaticFunctionGet: function(fileSystemCallback)
+LayoutTests/fast/filesystem/op-get-metadata_t01: Crash # (fileSystemCallback): handleStaticFunctionGet: function(fileSystemCallback)
+LayoutTests/fast/filesystem/op-get-parent_t01: Crash # (fileSystemCallback): handleStaticFunctionGet: function(fileSystemCallback)
+LayoutTests/fast/filesystem/op-move_t01: Crash # (fileSystemCallback): handleStaticFunctionGet: function(fileSystemCallback)
+LayoutTests/fast/filesystem/op-read-directory_t01: Crash # (fileSystemCallback): handleStaticFunctionGet: function(fileSystemCallback)
+LayoutTests/fast/filesystem/op-remove_t01: Crash # (fileSystemCallback): handleStaticFunctionGet: function(fileSystemCallback)
+LayoutTests/fast/filesystem/op-restricted-chars_t01: Crash # (fileSystemCallback): handleStaticFunctionGet: function(fileSystemCallback)
+LayoutTests/fast/filesystem/op-restricted-names_t01: Crash # (fileSystemCallback): handleStaticFunctionGet: function(fileSystemCallback)
+LayoutTests/fast/filesystem/op-restricted-unicode_t01: Crash # (fileSystemCallback): handleStaticFunctionGet: function(fileSystemCallback)
+LayoutTests/fast/filesystem/read-directory-many_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/filesystem/read-directory_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/filesystem/simple-readonly-file-object_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/filesystem/simple-readonly_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/filesystem/simple-required-arguments-getdirectory_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/filesystem/simple-required-arguments-getfile_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/filesystem/simple-temporary_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/filesystem/snapshot-file-with-gc_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/flexbox/box-orient-button_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/flexbox/child-flexing_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/flexbox/crash-flexbox-no-layout-child_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/flexbox/flexing-overflow-scroll-item_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/flexbox/intrinsic-min-width-applies-with-fixed-width_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
 LayoutTests/fast/flexbox/layoutHorizontalBox-crash_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/flexbox/overhanging-floats-not-removed-crash_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/flexbox/repaint-scrollbar_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/flexbox/vertical-box-form-controls_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/11423_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/8250_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/forms/HTMLOptionElement_selected_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/forms/activate-and-disabled-elements_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/forms/autocomplete_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/autofocus-attribute_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/autofocus-focus-only-once_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/forms/autofocus-focus-only-once_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/forms/autofocus-input-css-style-change_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/forms/autofocus-opera-004_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/forms/autofocus-opera-005_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/forms/autofocus-opera-007_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/forms/autofocus-opera-008_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/forms/autofocus-readonly-attribute_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/forms/button-baseline-and-collapsing_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/button/button-disabled-blur_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/forms/button-click-DOM_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/forms/checkbox-click-indeterminate_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/checkbox-default-value_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/forms/button/button-disabled-blur_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/forms/checkbox-onchange_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/forms/checkValidity-001_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/checkValidity-002_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/checkValidity-003_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/checkValidity-004_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/checkValidity-cancel_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/checkValidity-handler-updates-dom_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/clone-input-with-dirty-value_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/color/color-setrangetext_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/color/input-value-sanitization-color_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/cursor-position_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/forms/dangling-form-element-crash_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/forms/datalist/datalist-child-validation_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/datalist/datalist-nonoption-child_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/datalist/datalist_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/datalist/input-list_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/date/date-click-on-label_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/date/date-input-type_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/date/date-interactive-validation-required_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/date/date-pseudo-classes_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/date/date-setrangetext_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/date/input-date-validation-message_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/date/input-valueasdate-date_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/date/input-valueasnumber-date_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/date-multiple-fields/date-multiple-fields-change-layout-by-value_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/date-multiple-fields/date-multiple-fields-onblur-setvalue-onfocusremoved_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/datetimelocal/datetimelocal-input-type_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/datetimelocal/datetimelocal-interactive-validation-required_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/datetimelocal/datetimelocal-pseudo-classes_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/datetimelocal/datetimelocal-setrangetext_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/datetimelocal/input-valueasdate-datetimelocal_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/datetimelocal/input-valueasnumber-datetimelocal_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-change-layout-by-value_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/datetimelocal/ValidityState-rangeOverflow-datetimelocal_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/datetimelocal/ValidityState-rangeUnderflow-datetimelocal_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/datetimelocal/ValidityState-stepMismatch-datetimelocal_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/datetimelocal/ValidityState-typeMismatch-datetimelocal_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/date/ValidityState-rangeOverflow-date_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/date/ValidityState-rangeUnderflow-date_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/date/ValidityState-stepMismatch-date_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/date/ValidityState-typeMismatch-date_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/delete-text-with-invisible-br_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/disabled-attr-checkvalidity_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/double-focus_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/enctype-attribute_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/fieldset/fieldset-disabled_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/fieldset/fieldset-elements_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/fieldset/fieldset-name_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/fieldset/fieldset-type_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/fieldset/focus-in-fieldset-disabled_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/fieldset/validation-in-fieldset_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/file/file-input-capture_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/file/file-setrangetext_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/forms/datalist/datalist-child-validation_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/forms/datalist/datalist_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/forms/date/date-interactive-validation-required_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/forms/date/date-pseudo-classes_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/forms/datetimelocal/datetimelocal-interactive-validation-required_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/forms/datetimelocal/datetimelocal-pseudo-classes_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/forms/fieldset/fieldset-elements_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
 LayoutTests/fast/forms/focus-style-pending_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/forms/focus_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/forms/focus_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
 LayoutTests/fast/forms/form-added-to-table_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/forms/form-associated-element-crash_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/forms/form-attribute-nonexistence-form-id_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/form-attribute-not-in-document_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/form-attribute_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/form-dirname-attribute_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/form-input-named-arguments_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/formmethod-attribute-button-html_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/formmethod-attribute-input-2_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/formmethod-attribute-input-html_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/formmethod-attribute-test_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/formnovalidate-attribute_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/forms/form-submission-create-crash_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/forms/hidden/hidden-setrangetext_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/hidden-input-enabled_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/HTMLOptionElement_selected2_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/HTMLOptionElement_selected_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/forms/image/image-error-event-crash_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/forms/image/image-error-event-modifies-type-crash_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/forms/image/image-setrangetext_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/image/width-and-height-of-detached-input_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/incremental-dom-property_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/indeterminate-input-types_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/input-appearance-elementFromPoint_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/input-appearance-maxlength_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/input-changing-value_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/input-file-set-value_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/input-hit-test-border_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/input-implicit-length-limit_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/input-inputmode_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/input-maxlength_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/input-maxlength-unsupported_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/input-minmax_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/input-multiple_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/input-pattern_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/input-selection-hidden_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/input-select-webkit-user-select-none_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/input-setvalue-selection_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/input-stepup-stepdown_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/input-text-maxlength_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/input-text-paste-maxlength_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/input-type-change3_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/input-type-change-focusout_t01: Crash # (throw new ExpectException(message)): Unhandled node
 LayoutTests/fast/forms/input-type-change_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/forms/input-valueasnumber-unsupported_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/input-value-sanitization_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/input-width-height-attributes_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/forms/input-width-height-attributes-without-renderer_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/forms/input-widths_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/forms/interactive-validation-assertion-by-validate-twice_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/forms/interactive-validation-attach-assertion_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/forms/interactive-validation-select-crash_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/forms/legend-absolute-position-auto-width_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/legend-display-none_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/forms/listbox-scroll-after-options-removed_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/forms/listbox-select-all_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/listbox-selection-2_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/forms/menulist-disabled-selected-option_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/forms/menulist-selection-reset_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/forms/menulist-submit-without-selection_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/forms/method-attribute_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/min-content-form-controls_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/missing-action_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/multiple-selected-options-innerHTML_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/novalidate-attribute_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/onchange-change-type_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/option-change-single-selected_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/option-index_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/option-label-trim-html-spaces_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/option-strip-unicode-spaces_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/option-value-and-label-changed-by-js_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/option-value-and-label_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/option-value-trim-html-spaces_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/parser-associated-form-removal_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/paste-into-textarea_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/paste-multiline-text-input_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/pattern-attribute-001_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/pattern-attribute-002_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/pattern-attribute-003_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/percent-height-auto-width-form-controls_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/placeholder-dom-property_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/plaintext-mode-1_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/radio-checkbox-restore-indeterminate_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/required-attribute-001_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/required-attribute-002_t01: Crash # (throw new ExpectException(message)): Unhandled node
 LayoutTests/fast/forms/search-placeholder-value-changed_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/forms/search-popup-crasher_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/forms/search-popup-crasher_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
 LayoutTests/fast/forms/select-change-listbox-to-popup-roundtrip_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/forms/select-change-popup-to-listbox-in-event-handler_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/forms/select-change-popup-to-listbox-roundtrip_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/forms/select-clientheight-large-size_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/select-clientheight-with-multiple-attr_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/forms/select-generated-content_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/forms/selection-direction_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/selection-start-end-readonly_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/selection-wrongtype_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/select-max-length_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/select-namedItem_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/select-remove-option_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/select-reset-multiple-selections-4-single-selection_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/select-reset_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/select-set-length_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/select-set-length-with-mutation-remove_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/select-set-length-with-mutation-reorder_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/select-set-length-with-mutation-reparent_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/select-set-length-with-mutation_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/select-width-font-change_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/setCustomValidity-arguments_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/setCustomValidity-existence_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/setCustomValidity_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/setrangetext_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/shadow-tree-exposure_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/slow-click_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/submit-form-attributes_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/submit-form-with-dirname-attribute_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/submit-form-with-dirname-attribute-with-ancestor-dir-attribute_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/submit-form-with-dirname-attribute-with-nonhtml-ancestor_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/textarea-crlf_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/textarea-default-value-leading-newline_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/textarea-initial-caret-position_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/textarea-maxlength_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/textarea-newline_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/textarea-no-scroll-on-blur_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/textarea-paste-newline_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/textarea-placeholder-dom-property_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/textarea-placeholder-relayout-assertion_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/forms/textarea-rows-cols_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/forms/textarea-placeholder-relayout-assertion_t01: Crash # (asyncEnd): handleStaticFunctionGet: function(asyncEnd)
 LayoutTests/fast/forms/textarea-scrollbar-height_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/forms/textarea-selection-preservation_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/textarea-set-defaultvalue-after-value_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/textarea-setvalue-without-renderer_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/textarea-submit-crash_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/textarea-trailing-newline_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/textarea-wrap-attribute_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/text-control-select-blurred_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/textfield-clone_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LayoutTests/fast/forms/textfield-focus-out_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/forms/validationMessage_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/validity-property_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/ValidityState-customError_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/ValidityState-patternMismatch_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/ValidityState-patternMismatch-unsupported_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/ValidityState-rangeOverflow_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/ValidityState-rangeUnderflow_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/ValidityState-stepMismatch_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/forms/ValidityState-tooLong-input_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/ValidityState-tooLong-textarea_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/ValidityState-typeMismatch-email_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/ValidityState-typeMismatch-url_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/ValidityState-valueMissing-001_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/ValidityState-valueMissing-002_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/ValidityState-valueMissing-003_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/ValidityState-valueMissing-004_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/ValidityState-valueMissing-005_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/ValidityState-valueMissing-006_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/ValidityState-valueMissing-008_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/ValidityState-valueMissing-009_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/forms/willvalidate_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/adjacent-html-context-element_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/article-element_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/aside-element_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/body-offset-properties_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/clone-range_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/details-add-child-1_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/details-add-child-2_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/details-add-details-child-1_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/details-add-details-child-2_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/details-click-controls_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/html/details-mouse-click_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/html/disable-style-element_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/html/draggable_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/empty-fragment-id-goto-top_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/eventhandler-attribute-non-callable_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/figcaption-element_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/figure-element_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/footer-element_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/header-element_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/hgroup-element_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/hidden-attr-dom_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/hidden-attr_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/html/details-add-child-1_t01: Crash # unsupported element kind: createNewElement:field
+LayoutTests/fast/html/details-add-child-2_t01: Crash # unsupported element kind: createNewElement:field
+LayoutTests/fast/html/details-add-details-child-1_t01: Crash # unsupported element kind: createNewElement:field
+LayoutTests/fast/html/details-add-details-child-2_t01: Crash # unsupported element kind: createNewElement:field
 LayoutTests/fast/html/imports/import-element-removed-flag_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/html/imports/import-events_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/input-type-change-crash_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/layout-with-pending-stylesheet_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/main-element_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/mark-element_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/numbered-header-element_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/html/object-border_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/range-point-in-range-for-different-documents_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/html/section-element_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/select-dropdown-consistent-background-color_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/tabindex-removal_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/html/text-field-input-types_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/unknown-tag_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/html/xhtml-serialize_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/inline-block/inline-block-vertical-align-t02: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/inline/boundingBox-with-continuation_t01: Crash # (internals): Error expression `internals` unhandled.
-LayoutTests/fast/inline/continuation-inlines-inserted-in-reverse-after-block_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/inline/empty-inline-before-collapsed-space_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/inline/fixed-pos-moves-with-abspos-inline-parent_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/inline/fixed-pos-moves-with-abspos-parent-relative-ancestor_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/inline/fixed-pos-moves-with-abspos-parent_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/inline/fixed-pos-with-transform-container-moves-with-abspos-parent_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/inline/inline-position-top-align_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/inline/inline-relative-offset-boundingbox_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/inline/inline-with-empty-inline-children_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/inline/out-of-flow-objects-and-whitespace-after-empty-inline_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/inline/parent-inline-element-padding-contributes-width_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/inline/positioned-element-padding-contributes-width_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/inline/reattach-inlines-in-anonymous-blocks-with-out-of-flow-siblings_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/inline/skipped-whitespace-client-rect_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/innerHTML/001_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/innerHTML/002_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/innerHTML/003_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/innerHTML/005_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/innerHTML/additional-inline-style_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/innerHTML/innerHTML-case_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/innerHTML/innerHTML-custom-tag_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/innerHTML/innerHTML-iframe_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/innerHTML/innerHTML-nbsp_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/innerHTML/innerHTML-special-elements_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/innerHTML/innerHTML-svg-read_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/innerHTML/innerHTML-svg-write_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/innerHTML/innerHTML-uri-resolution_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/innerHTML/javascript-url_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/layers/negative-scroll-positions_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/layers/normal-flow-hit-test_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/layers/zindex-hit-test_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/lists/calc-width-with-space_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/lists/item-not-in-list-line-wrapping_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/lists/list-style-position-inside_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/lists/marker-preferred-margins_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/loader/about-blank-hash-change_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/loader/about-blank-hash-kept_t01: Crash # (new_hash): Error expression `new_hash` unhandled.
-LayoutTests/fast/loader/hashchange-event-async_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/loader/hashchange-event-properties_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/loader/loadInProgress_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/loader/local-css-allowed-in-strict-mode_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/loader/onhashchange-attribute-listeners_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/html/imports/import-events_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LayoutTests/fast/innerHTML/innerHTML-special-elements_t01: Crash # unsupported element kind: outerTests:field
+LayoutTests/fast/loader/about-blank-hash-change_t01: Crash # (onload_callback): handleStaticFunctionGet: function(onload_callback)
+LayoutTests/fast/loader/about-blank-hash-kept_t01: Crash # (onload_callback): handleStaticFunctionGet: function(onload_callback)
+LayoutTests/fast/loader/hashchange-event-async_t01: Crash # (loadHandler): handleStaticFunctionGet: function(loadHandler)
+LayoutTests/fast/loader/hashchange-event-properties_t01: Crash # (onhashchange): handleStaticFunctionGet: function(onhashchange)
+LayoutTests/fast/loader/loadInProgress_t01: Crash # (testForm): handleStaticFunctionGet: function(testForm)
+LayoutTests/fast/loader/local-css-allowed-in-strict-mode_t01: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/loader/onhashchange-attribute-listeners_t01: Crash # (bodyInlineAttribute): handleStaticFunctionGet: function(bodyInlineAttribute)
 LayoutTests/fast/loader/onload-policy-ignore-for-frame_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/loader/scroll-position-restored-on-back_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/loader/scroll-position-restored-on-reload-at-load-event_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/loader/stateobjects/pushstate-updates-location_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/loader/stateobjects/replacestate-in-onunload_t01: Crash # (history): Error expression `history` unhandled.
-LayoutTests/fast/loader/stateobjects/replacestate-updates-location_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/masking/parsing-clip-path-iri_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/masking/parsing-clip-path-shape_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/masking/parsing-mask-source-type_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/masking/parsing-mask_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/media/color-does-not-include-alpha_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/media/invalid-lengths_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/media/matchmedium-query-api_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/media/media-query-list-syntax_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/media/media-query-list_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/media/media-query-serialization_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/media/mq-append-delete_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/media/mq-color-index_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/media/mq-color-index_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/media/mq-js-media-except_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/media/mq-js-media-except_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/media/mq-js-update-media_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/media/mq-parsing_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/mediastream/getusermedia_t01: Crash # (gotStream1): Error expression `gotStream1` unhandled.
-LayoutTests/fast/mediastream/RTCIceCandidate_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/mediastream/RTCPeerConnection-AddRemoveStream_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/multicol/balance-short-trailing-empty-block_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/multicol/balance-trailing-border_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/multicol/balance-trailing-border_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/multicol/balance-unbreakable_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/multicol/break-after-always-bottom-margin_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/multicol/break-properties_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/multicol/columns-shorthand-parsing_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/multicol/column-width-zero_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/multicol/cssom-view_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/multicol/fixed-column-percent-logical-height-orthogonal-writing-mode_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/multicol/flipped-blocks-hit-test_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/multicol/float-truncation_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/multicol/gap-non-negative_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/multicol/hit-test-above-or-below_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/multicol/hit-test-end-of-column_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/multicol/hit-test-end-of-column-with-line-height_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/multicol/hit-test-float_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/multicol/hit-test-gap-between-pages-flipped_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/multicol/hit-test-gap-between-pages_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/multicol/image-inside-nested-blocks-with-border_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/multicol/inherit-column-values_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/multicol/initial-column-values_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/multicol/inline-getclientrects_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/multicol/newmulticol/balance-images_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/multicol/newmulticol/balance-maxheight_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/multicol/newmulticol/balance-maxheight_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/multicol/newmulticol/balance_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/multicol/newmulticol/balance_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/multicol/newmulticol/balance_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/multicol/newmulticol/balance_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/multicol/newmulticol/balance_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/multicol/newmulticol/balance_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/multicol/newmulticol/balance_t07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/multicol/newmulticol/balance_t08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/multicol/newmulticol/balance_t09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/multicol/newmulticol/balance_t10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/multicol/orphans-relayout_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/multicol/vertical-lr/break-properties_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/multicol/vertical-lr/float-truncation_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/multicol/vertical-lr/gap-non-negative_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/multicol/vertical-lr/image-inside-nested-blocks-with-border_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/multicol/vertical-rl/break-properties_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/multicol/vertical-rl/float-truncation_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/multicol/vertical-rl/gap-non-negative_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/multicol/vertical-rl/image-inside-nested-blocks-with-border_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/multicol/widows-and-orphans_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/multicol/widows_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/multicol/widows_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/multicol/zeroColumnCount_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/overflow/child-100percent-height-inside-fixed-container-with-overflow-auto_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/overflow/height-during-simplified-layout_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/overflow/overflow-rtl-vertical-origin_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/overflow/replaced-child-100percent-height-inside-fixed-container-with-overflow-auto_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/overflow/scrollbar-restored_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/overflow/scroll-vertical-not-horizontal_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/parser/block-nesting-cap_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/parser/foster-parent-adopted_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/parser/foster-parent-adopted_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/parser/foster-parent_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/parser/fragment-parser-doctype_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/parser/href-whitespace_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/parser/image-tag-parses-to-HTMLImageElement_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/parser/innerhtml-with-prefixed-elements_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/parser/parse-wbr_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/parser/pop-all-after-after-body_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/parser/pre-first-line-break_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/parser/residual-style-close-across-n-blocks_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/parser/stray-end-tags-with-attributes-001_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/parser/stray-end-tags-with-attributes-002-alt_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/parser/stray-end-tags-with-attributes-002_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/parser/stray-param_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/parser/strict-img-in-map_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/replaced/available-height-for-content_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor-vertical-lr_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/replaced/computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/replaced/computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor-vertical-lr_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/replaced/container-width-zero_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-anonymous-table-cell_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-table-cell-ignore-height_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/replaced/preferred-widths_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/replaced/table-percent-height_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/replaced/table-percent-height-text-controls_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/replaced/table-percent-width_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/replaced/table-replaced-element_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/ruby/modify-positioned-ruby-text-crash_t01: Crash # handleStaticFunctionGet: function(doTest)
-LayoutTests/fast/ruby/parse-rp_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/ruby/ruby-line-height_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/scrolling/scroll-element-into-view_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/scrolling/scroll-max-value_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/selectors/querySelector-leftmost-selector-matches-ancestor_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/selectors/querySelector-leftmost-selector-matches-rootNode_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/selectors/querySelector-scope_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/selectors/specificity-overflow_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/selectors/style-sharing-adjacent-selector_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/selectors/style-sharing-last-child_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/shapes/parsing/parsing-shape-image-threshold_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/shapes/parsing/parsing-shape-lengths_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/shapes/parsing/parsing-shape-margin_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/shapes/parsing/parsing-shape-outside-none_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/shapes/parsing/parsing-shape-outside_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/shapes/parsing/parsing-shape-property-aliases_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-big-box-border-radius_t01: Crash #  Error expression `shouldBeCloseTo(elementRect('b').right,borderXIntercept(20),1)` unhandled.
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-diamond-margin-polygon_t01: Crash #  Error expression `shouldBeCloseTo(elementRect('l1').left,marginLeftXIntercept(1),1)` unhandled.
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-margin-left_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-margin-right_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t01: Crash #  Error expression `shouldBeCloseTo(imageShapeRect('a').left,292,1)` unhandled.
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t02: Crash #  Error expression `shouldBeCloseTo(imageShapeRect('a').right,292,1)` unhandled.
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-left_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-right_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t01: Crash #  Error expression `shouldBeCloseTo(elementRect('b').left,cornerEllipseRightXIntercept(40,0,100,30),SubPixelLayout.resolution())` unhandled.
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t02: Crash # (throw new ExpectException(message)): Unhandled node
+LayoutTests/fast/loader/scroll-position-restored-on-back_t01: Crash # (navigate): handleStaticFunctionGet: function(navigate)
+LayoutTests/fast/loader/scroll-position-restored-on-reload-at-load-event_t01: Crash # (init): handleStaticFunctionGet: function(init)
+LayoutTests/fast/loader/stateobjects/pushstate-updates-location_t01: Crash # (onload): handleStaticFunctionGet: function(onload)
+LayoutTests/fast/loader/stateobjects/replacestate-in-onunload_t01: Crash # (onload): handleStaticFunctionGet: function(onload)
+LayoutTests/fast/loader/stateobjects/replacestate-updates-location_t01: Crash # (onload): handleStaticFunctionGet: function(onload)
+LayoutTests/fast/media/media-query-list-syntax_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/media/mq-js-update-media_t01: Crash # (updateMediaQuery2): handleStaticFunctionGet: function(updateMediaQuery2)
+LayoutTests/fast/media/mq-parsing_t01: Crash # (runTests): handleStaticFunctionGet: function(runTests)
+LayoutTests/fast/mediastream/RTCPeerConnection-AddRemoveStream_t01: Crash # (gotStream1): handleStaticFunctionGet: function(gotStream1)
+LayoutTests/fast/mediastream/getusermedia_t01: Crash # (error): handleStaticFunctionGet: function(error)
+LayoutTests/fast/multicol/columns-shorthand-parsing_t02: Crash # unsupported element kind: tests:field
+LayoutTests/fast/multicol/float-truncation_t01: Crash # unsupported element kind: tests:field
+LayoutTests/fast/multicol/hit-test-above-or-below_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/multicol/image-inside-nested-blocks-with-border_t01: Crash # unsupported element kind: tests:field
+LayoutTests/fast/multicol/orphans-relayout_t01: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/multicol/vertical-lr/float-truncation_t01: Crash # unsupported element kind: tests:field
+LayoutTests/fast/multicol/vertical-lr/image-inside-nested-blocks-with-border_t01: Crash # unsupported element kind: tests:field
+LayoutTests/fast/multicol/vertical-rl/float-truncation_t01: Crash # unsupported element kind: tests:field
+LayoutTests/fast/multicol/vertical-rl/image-inside-nested-blocks-with-border_t01: Crash # unsupported element kind: tests:field
+LayoutTests/fast/multicol/widows-and-orphans_t01: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/overflow/scroll-vertical-not-horizontal_t01: Crash # (startTest): handleStaticFunctionGet: function(startTest)
+LayoutTests/fast/parser/href-whitespace_t01: Crash # (doTest): handleStaticFunctionGet: function(doTest)
+LayoutTests/fast/parser/image-tag-parses-to-HTMLImageElement_t01: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/parser/parse-wbr_t01: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/parser/pop-all-after-after-body_t01: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/parser/residual-style-close-across-n-blocks_t01: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/parser/strict-img-in-map_t01: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-anonymous-table-cell_t01: Crash # (doTest): handleStaticFunctionGet: function(doTest)
+LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-table-cell-ignore-height_t01: Crash # (doTest): handleStaticFunctionGet: function(doTest)
+LayoutTests/fast/replaced/table-percent-height-text-controls_t01: Crash # (doTest): handleStaticFunctionGet: function(doTest)
+LayoutTests/fast/replaced/table-percent-height_t01: Crash # (doTest): handleStaticFunctionGet: function(doTest)
+LayoutTests/fast/replaced/table-percent-width_t01: Crash # (doTest): handleStaticFunctionGet: function(doTest)
+LayoutTests/fast/replaced/table-replaced-element_t01: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/ruby/modify-positioned-ruby-text-crash_t01: Crash # (doTest): handleStaticFunctionGet: function(doTest)
+LayoutTests/fast/ruby/parse-rp_t01: Crash # (test): handleStaticFunctionGet: function(test)
+LayoutTests/fast/scrolling/scroll-element-into-view_t01: Crash # unsupported element kind: container:field
+LayoutTests/fast/selectors/style-sharing-last-child_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/shapes/parsing/parsing-shape-image-threshold_t01: Crash # (testShapeComputedProperty): handleStaticFunctionGet: function(testShapeComputedProperty)
+LayoutTests/fast/shapes/parsing/parsing-shape-margin_t01: Crash # (testShapeComputedProperty): handleStaticFunctionGet: function(testShapeComputedProperty)
+LayoutTests/fast/shapes/parsing/parsing-shape-outside_t01: Crash # (testNotInheritedShapeProperty): handleStaticFunctionGet: function(testNotInheritedShapeProperty)
+LayoutTests/fast/shapes/parsing/parsing-shape-property-aliases_t01: Crash # (testPropertyAlias): handleStaticFunctionGet: function(testPropertyAlias)
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t01: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t02: Crash # (runTest): handleStaticFunctionGet: function(runTest)
 LayoutTests/fast/speechsynthesis/speech-synthesis-boundary-events_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/speechsynthesis/speech-synthesis-cancel_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/speechsynthesis/speech-synthesis-pause-resume_t01: Crash # unsupported element kind: _completer:field
 LayoutTests/fast/speechsynthesis/speech-synthesis-speak_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/speechsynthesis/speech-synthesis-utterance-uses-voice_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/speechsynthesis/speech-synthesis-voices_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/storage/disallowed-storage_t01: Crash # (throw new ExpectException(message)): Unhandled node
 LayoutTests/fast/storage/storage-disallowed-in-data-url_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/sub-pixel/auto-table-layout-should-avoid-text-wrapping_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/sub-pixel/block-preferred-widths-with-sub-pixel-floats_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/sub-pixel/boundingclientrect-subpixel-margin_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/sub-pixel/client-and-offset-width_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/sub-pixel/computedstylemargin_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/sub-pixel/cssom-subpixel-precision_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/sub-pixel/float-containing-block-with-margin_t01: Crash # (throw new ExpectException(message)): Unhandled node
 LayoutTests/fast/sub-pixel/float-list-inside_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/sub-pixel/float-percentage-widths_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/sub-pixel/float-with-margin-in-container_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/sub-pixel/float-with-right-margin-zoom_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/sub-pixel/inline-block-with-padding_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/sub-pixel/layout-boxes-with-zoom_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/sub-pixel/replaced-element-baseline_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/sub-pixel/shadows-computed-style_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/sub-pixel/size-of-span-with-different-positions_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/sub-pixel/table-cells-have-stable-width_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/sub-pixel/table-cells-with-padding-do-not-wrap_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/sub-pixel/table-rows-have-stable-height_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/sub-pixel/tiled-canvas-elements_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/sub-pixel/vertical-align-middle-overflow_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/svg/getbbox_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/svg/tabindex-focus_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/svg/whitespace-angle_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/svg/whitespace-integer_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/svg/whitespace-length-invalid_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/svg/whitespace-length_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/svg/whitespace-number_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/table/absolute-table-percent-lengths_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/table/anonymous-table-section-removed_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/table/before-child-non-table-section-add-table-crash_t01: Crash # handleStaticFunctionGet: function(runTest)
-LayoutTests/fast/table/border-changes_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/table/caption-orthogonal-writing-mode-sizing_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/table/col-width-span-expand_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/table/css-table-max-height_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/table/css-table-max-width_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/table/css-table-width_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/table/css-table-width-with-border-padding_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/table/fixed-table-layout-toggle-colwidth_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/table/fixed-table-layout-width-change_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/table/fixed-table-with-percent-width-inside-extra-large-div_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/table/form-with-non-table-display-inside-table-elements_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/table/hittest-tablecell-bottom-edge_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/table/hittest-tablecell-right-edge_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/table/hittest-tablecell-with-borders-bottom-edge_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/table/hittest-tablecell-with-borders-right-edge_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/table/html-table-width-max-width-constrained_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/table/incorrect-colgroup-span-values_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/table/large-shrink-wrapped-width_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/table/margins-flipped-text-direction_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/table/margins-perpendicular-containing-block_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/table/min-max-width-preferred-size_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/table/min-width-css-block-table_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/table/min-width-css-inline-table_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/table/min-width-html-block-table_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/table/min-width-html-inline-table_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/table/nested-tables-with-div-offset_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/table/padding-height-and-override-height_t01: Crash # (throw new ExpectException(message)): Unhandled node
+LayoutTests/fast/svg/getbbox_t01: Crash # unsupported element kind: epsilon:field
+LayoutTests/fast/svg/tabindex-focus_t01: Crash #  try/finally
+LayoutTests/fast/svg/whitespace-angle_t01: Crash #  try/finally
+LayoutTests/fast/svg/whitespace-integer_t01: Crash #  try/finally
+LayoutTests/fast/svg/whitespace-length-invalid_t01: Crash # unsupported element kind: EPSILON:field
+LayoutTests/fast/svg/whitespace-length_t01: Crash # unsupported element kind: EPSILON:field
+LayoutTests/fast/svg/whitespace-number_t01: Crash # unsupported element kind: EPSILON:field
+LayoutTests/fast/table/before-child-non-table-section-add-table-crash_t01: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/table/col-width-span-expand_t01: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/table/css-table-max-height_t01: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/table/css-table-width-with-border-padding_t01: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/table/fixed-table-layout-toggle-colwidth_t01: Crash # (toggleWidth): handleStaticFunctionGet: function(toggleWidth)
+LayoutTests/fast/table/fixed-table-layout-width-change_t01: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/table/hittest-tablecell-bottom-edge_t01: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/table/hittest-tablecell-right-edge_t01: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/table/hittest-tablecell-with-borders-bottom-edge_t01: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/table/hittest-tablecell-with-borders-right-edge_t01: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/table/html-table-width-max-width-constrained_t01: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/table/incorrect-colgroup-span-values_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/table/min-width-css-block-table_t01: Crash # (computeLogicalWidth): handleStaticFunctionGet: function(computeLogicalWidth)
+LayoutTests/fast/table/min-width-css-inline-table_t01: Crash # (computeLogicalWidth): handleStaticFunctionGet: function(computeLogicalWidth)
+LayoutTests/fast/table/min-width-html-block-table_t01: Crash # (computeLogicalWidth): handleStaticFunctionGet: function(computeLogicalWidth)
+LayoutTests/fast/table/min-width-html-inline-table_t01: Crash # (computeLogicalWidth): handleStaticFunctionGet: function(computeLogicalWidth)
 LayoutTests/fast/table/prepend-in-anonymous-table_t01: Crash # unsupported element kind: childTypes:field
-LayoutTests/fast/table/resize-table-binding-cell_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/table/resize-table-cell_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/table/resize-table-row_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/table/rowindex-comment-nodes_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/table/switch-table-layout-dynamic-cells_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/table/switch-table-layout-multiple-section_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/table/switch-table-layout_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/table/table-all-rowspans-height-distribution-in-rows-except-overlapped_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/table/table-all-rowspans-height-distribution-in-rows_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/table/table-cell-offset-width_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/table/table-colgroup-present-after-table-row_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/table/table-rowspan-cell-with-empty-cell_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/table/table-rowspan-height-distribution-in-rows_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/table/table-rowspan-height-distribution-in-rows_t02: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/table/table-sections-border-spacing_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/table/table-size-integer-overflow_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/table/table-width-exceeding-max-width_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/table/table-with-borderattr-null_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/table/table-with-borderattr-set-to-null_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/table/table-with-content-width-exceeding-max-width_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/table/td-bordercolor-attribute_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text-autosizing/display-type-change-lineHeight_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/text-autosizing/inline-width_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text-autosizing/table-inline-width_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text-autosizing/text-removal_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/text-autosizing/vertical-writing-mode_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/container-align-with-inlines_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/text/decomposed-after-stacked-diacritics_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/find-backwards_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/find-case-folding_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/find-hidden-text_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/find-kana_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/find-quotes_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/find-russian_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/find-soft-hyphen_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/find-spaces_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/font-fallback-synthetic-italics_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/font-ligature-letter-spacing_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/text/font-ligatures-linebreak_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/font-ligatures-linebreak-word_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/font-linux-normalize_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/text/font-size-zero_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/glyph-reordering_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/international/cjk-segmentation_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/international/combining-marks-position_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/international/complex-text-rectangle_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/international/iso-8859-8_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/international/listbox-width-rtl_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/international/rtl-text-wrapping_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/international/thai-offsetForPosition-inside-character_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/text/ipa-tone-letters_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/justification-padding-mid-word_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/text/line-break-after-empty-inline-hebrew_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/line-break-after-inline-latin1_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/line-break-after-question-mark_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/line-breaks-after-closing-punctuations_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/text/line-breaks-after-hyphen-before-number_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/line-breaks-after-ideographic-comma-or-full-stop_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/text/line-breaks-after-ideographic-comma-or-full-stop_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/text/multiglyph-characters_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/offsetForPosition-cluster-at-zero_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/text/pre-wrap-trailing-tab_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/text/regional-indicator-symobls_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/text/remove-zero-length-run_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/text/selection-exceptions_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/soft-hyphen-5_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/split-text-crash_t01: Crash # handleStaticFunctionGet: function(crash)
-LayoutTests/fast/text/sub-pixel/text-scaling-ltr_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/text/sub-pixel/text-scaling-pixel_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/text/sub-pixel/text-scaling-rtl_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/text/sub-pixel/text-scaling-vertical_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/text/sub-pixel/text-scaling-webfont_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/text/text-between-two-brs-in-nowrap-overflow_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/text-combine-shrink-to-fit_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/text/whitespace/nowrap-line-break-after-white-space_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/window-find_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/zero-width-characters-complex-script_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/text/zero-width-characters_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/tokenizer/doctype-search-reset_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/tokenizer/entities_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/tokenizer/entities_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/tokenizer/entities_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/transforms/bounding-rect-zoom_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/transforms/hit-test-large-scale_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/transforms/scrollIntoView-transformed_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/transforms/topmost-becomes-bottomost-for-scrolling_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/transforms/transform-hit-test-flipped_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/transforms/transform-inside-overflow-scroll_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/url/anchor_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/url/file-http-base_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/url/file_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/url/host-lowercase-per-scheme_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/url/host_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/url/idna2003_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/url/idna2008_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/url/invalid-urls-utf8_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/url/ipv4_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/url/ipv6_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/url/mailto_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/url/path_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/url/path-url_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/url/port_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/url/query_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/url/relative_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/url/relative-unix_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/url/relative-win_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/url/safari-extension_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/url/scheme_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/url/segments-from-data-url_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/url/segments_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/url/standard-url_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/url/trivial-segments_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/url/trivial_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/writing-mode/auto-margins-across-boundaries_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/writing-mode/auto-sizing-orthogonal-flows_t01: Crash # (throw "You must provide a CSS selector of nodes to check."): Unhandled node
-LayoutTests/fast/writing-mode/block-formatting-context_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/table/rowindex-comment-nodes_t01: Crash # (doTest): handleStaticFunctionGet: function(doTest)
+LayoutTests/fast/table/table-size-integer-overflow_t01: Crash # (doTest): handleStaticFunctionGet: function(doTest)
+LayoutTests/fast/text-autosizing/vertical-writing-mode_t01: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/text/find-backwards_t01: Crash # unsupported element kind: selection:field
+LayoutTests/fast/text/find-case-folding_t01: Crash # (runTests): handleStaticFunctionGet: function(runTests)
+LayoutTests/fast/text/find-hidden-text_t01: Crash # (runTests): handleStaticFunctionGet: function(runTests)
+LayoutTests/fast/text/find-quotes_t01: Crash # (runTests): handleStaticFunctionGet: function(runTests)
+LayoutTests/fast/text/find-spaces_t01: Crash # (runTests): handleStaticFunctionGet: function(runTests)
+LayoutTests/fast/text/font-ligature-letter-spacing_t01: Crash # (testLetterSpaceAndLigature): handleStaticFunctionGet: function(testLetterSpaceAndLigature)
+LayoutTests/fast/text/font-ligatures-linebreak-word_t01: Crash # (testLetterSpaceAndLigature): handleStaticFunctionGet: function(testLetterSpaceAndLigature)
+LayoutTests/fast/text/font-ligatures-linebreak_t01: Crash # (testLetterSpaceAndLigature): handleStaticFunctionGet: function(testLetterSpaceAndLigature)
+LayoutTests/fast/text/international/cjk-segmentation_t01: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/text/ipa-tone-letters_t01: Crash # (doTest): handleStaticFunctionGet: function(doTest)
+LayoutTests/fast/text/line-breaks-after-hyphen-before-number_t01: Crash # unsupported element kind: expected:field
+LayoutTests/fast/text/split-text-crash_t01: Crash # (crash): handleStaticFunctionGet: function(crash)
+LayoutTests/fast/text/zero-width-characters-complex-script_t01: Crash # (runTests): handleStaticFunctionGet: function(runTests)
+LayoutTests/fast/tokenizer/entities_t01: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/tokenizer/entities_t02: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/tokenizer/entities_t03: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/transforms/bounding-rect-zoom_t01: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/transforms/hit-test-large-scale_t01: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/transforms/scrollIntoView-transformed_t01: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/transforms/transform-hit-test-flipped_t01: Crash # (runTest): handleStaticFunctionGet: function(runTest)
+LayoutTests/fast/url/anchor_t01: Crash # unsupported element kind: cases:field
+LayoutTests/fast/url/file-http-base_t01: Crash # unsupported element kind: cases:field
+LayoutTests/fast/url/file_t01: Crash # unsupported element kind: cases:field
+LayoutTests/fast/url/host-lowercase-per-scheme_t01: Crash # unsupported element kind: urlExpectationsUppercase:field
+LayoutTests/fast/url/host_t01: Crash # unsupported element kind: cases:field
+LayoutTests/fast/url/idna2003_t01: Crash # unsupported element kind: cases:field
+LayoutTests/fast/url/idna2008_t01: Crash # unsupported element kind: cases:field
+LayoutTests/fast/url/invalid-urls-utf8_t01: Crash # unsupported element kind: testSet:field
+LayoutTests/fast/url/ipv4_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/url/ipv6_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/url/mailto_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/url/path-url_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/url/path_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/url/port_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/url/query_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/url/relative-unix_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/url/relative-win_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/url/relative_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/url/safari-extension_t01: Crash # unsupported element kind: safariExtensionTestSet:field
+LayoutTests/fast/url/scheme_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/url/segments-from-data-url_t01: Crash # unsupported element kind: cases:field
+LayoutTests/fast/url/segments_t01: Crash # unsupported element kind: cases:field
+LayoutTests/fast/url/standard-url_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/url/trivial-segments_t01: Crash # unsupported element kind: cases:field
+LayoutTests/fast/url/trivial_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
 LayoutTests/fast/writing-mode/broken-ideographic-font_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/writing-mode/display-mutation_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/writing-mode/flipped-blocks-hit-test-overflow-scroll_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/writing-mode/flipped-blocks-hit-test-overflow_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/writing-mode/flipped-blocks-text-map-local-to-container_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/writing-mode/overhanging-float-legend-crash_t01: Crash # handleStaticFunctionGet: function(crash)
-LayoutTests/fast/writing-mode/percentage-margins-absolute-replaced_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/writing-mode/percentage-margins-absolute_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/writing-mode/percentage-padding_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/writing-mode/positionForPoint_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/writing-mode/relative-positioning-percentages_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/writing-mode/table-hit-test_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/writing-mode/vertical-font-vmtx-units-per-em_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/writing-mode/vertical-inline-block-hittest_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xmlhttprequest/null-document-xmlhttprequest-open_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-default-attributes_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/writing-mode/overhanging-float-legend-crash_t01: Crash # (crash): handleStaticFunctionGet: function(crash)
+LayoutTests/fast/writing-mode/percentage-margins-absolute-replaced_t01: Crash # (doTest): handleStaticFunctionGet: function(doTest)
+LayoutTests/fast/writing-mode/percentage-margins-absolute_t01: Crash # (doTest): handleStaticFunctionGet: function(doTest)
+LayoutTests/fast/writing-mode/vertical-font-vmtx-units-per-em_t01: Crash # (doTest): handleStaticFunctionGet: function(doTest)
+LayoutTests/fast/xmlhttprequest/null-document-xmlhttprequest-open_t01: Crash # (checkPass): handleStaticFunctionGet: function(checkPass)
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-default-attributes_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Stream.
 LayoutTests/fast/xmlhttprequest/xmlhttprequest-get_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/xmlhttprequest/xmlhttprequest-html-response-encoding_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-invalid-values_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-abort_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-arraybuffer_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-before-open-sync-request_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-before-open_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-document_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-set-at-headers-received_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-sync-request_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-text_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-invalid-values_t01: Crash # (checkExc): handleStaticFunctionGet: function(checkExc)
 LayoutTests/fast/xmlhttprequest/xmlhttprequest-responseXML-html-document-responsetype-quirks_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/xmlhttprequest/xmlhttprequest-responseXML-html-no-responsetype_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/xmlhttprequest/xmlhttprequest-responseXML-invalid-xml_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/xmlhttprequest/xmlhttprequest-responseXML-xml-document-responsetype_t01: Crash # unsupported element kind: _asyncCounter:field
 LayoutTests/fast/xmlhttprequest/xmlhttprequest-responseXML-xml-text-responsetype_t01: Crash # unsupported element kind: _asyncCounter:field
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-set-responsetype_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-withcredentials-before-open_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/4XPath/Borrowed/cz_20030217_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xpath/4XPath/Borrowed/kd_20010423_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xpath/4XPath/Borrowed/namespace-nodes_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/4XPath/Borrowed/od_20000608_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xpath/4XPath/Borrowed/rs_20010831_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xpath/4XPath/Borrowed/sr_20021217_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xpath/4XPath/Core/test_boolean_expr_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/4XPath/Core/test_literal_expr_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/4XPath/Core/test_location_path_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/4XPath/Core/test_nodeset_expr_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/4XPath/Core/test_node_test_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/4XPath/Core/test_node_test_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/4XPath/Core/test_numeric_expr_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/4XPath/Core/test_parser_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/4XPath/Core/test_predicate_list_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/4XPath/Core/test_step_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/ambiguous-operators_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/ancestor-axis_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xpath/attribute-node-predicate_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/attr-namespace_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/attr-namespace_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/complex-id_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xpath/detached-subtree-invalidate-iterator_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/empty-string-substring_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xpath/ensure-null-namespace_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xpath/evaluator-exceptions_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/id-path_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xpath/id-simple_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/implicit-node-args_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xpath/invalid-resolver_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/name-null-namespace_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xpath/nan-to-boolean_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xpath/node-name-case-sensitivity_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/node-name-case-sensitivity_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/nodeset-duplicates_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xpath/position_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/py-dom-xpath/abbreviations_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/py-dom-xpath/axes_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/py-dom-xpath/data_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/py-dom-xpath/expressions_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/py-dom-xpath/paths_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/reverse-axes_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xpath/substring-after_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xpath/substring-nan-position_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xpath/substring-non-positive-postion_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xpath/xpath-detached-nodes_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xpath/xpath-template-element_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xsl/default-html_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xsl/extra-lf-at-end_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests/fast/xsl/nbsp-in-stylesheet_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LayoutTests/fast/xsl/transformToFragment-XML-declaration_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-abort_t01: Crash # (load): handleStaticFunctionGet: function(load)
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-arraybuffer_t01: Crash # (stateChange): handleStaticFunctionGet: function(stateChange)
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-document_t01: Crash # (load): handleStaticFunctionGet: function(load)
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-set-at-headers-received_t01: Crash # unsupported element kind: _completer:field
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-text_t01: Crash # (load): handleStaticFunctionGet: function(load)
+LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t01: Crash # unsupported element kind: LCHILD2:field
+LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t02: Crash # unsupported element kind: CHILD1:field
+LayoutTests/fast/xpath/4XPath/Core/test_location_path_t01: Crash # unsupported element kind: LCHILDREN:field
+LayoutTests/fast/xpath/4XPath/Core/test_node_test_t01: Crash # unsupported element kind: PI2:field
+LayoutTests/fast/xpath/4XPath/Core/test_node_test_t02: Crash # unsupported element kind: CHILD3:field
+LayoutTests/fast/xpath/4XPath/Core/test_nodeset_expr_t01: Crash # unsupported element kind: CHILD1:field
+LayoutTests/fast/xpath/4XPath/Core/test_numeric_expr_t01: Crash # unsupported element kind: CHILD1:field
+LayoutTests/fast/xpath/4XPath/Core/test_parser_t01: Crash # unsupported element kind: ROOT:field
+LayoutTests/fast/xpath/4XPath/Core/test_predicate_list_t01: Crash # unsupported element kind: ROOT:field
+LayoutTests/fast/xpath/4XPath/Core/test_step_t01: Crash # unsupported element kind: GCHILD11:field
+LayoutTests/fast/xpath/name-null-namespace_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/xsl/default-html_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LayoutTests/fast/xsl/extra-lf-at-end_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
 LayoutTests/fast/xsl/xslt-bad-import-uri_t01: Crash # unsupported element kind: _completer:field
-LayoutTests/fast/xsl/xslt-string-parameters_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Completer/complete_A01_t01: Crash # Please triage this failure.
-LibTest/async/Completer/complete_A01_t02: Crash # unsupported element kind: _completer:field
-LibTest/async/Completer/complete_A01_t03: Crash # unsupported element kind: _asyncCounter:field
-LibTest/async/Completer/complete_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Completer/complete_A01_t05: Crash # unsupported element kind: _completer:field
-LibTest/async/Completer/complete_A01_t06: Crash # unsupported element kind: _completer:field
-LibTest/async/Completer/complete_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Completer/complete_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Completer/completeError_A01_t01: Crash # Please triage this failure.
-LibTest/async/Completer/completeError_A01_t02: Crash # (throw error): Unhandled node
+LibTest/async/Completer/Completer_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Completer.
+LibTest/async/Completer/completeError_A01_t01: Crash # unsupported element kind: futures:field
+LibTest/async/Completer/completeError_A01_t02: Crash # unsupported element kind: _completer:field
 LibTest/async/Completer/completeError_A01_t03: Crash # unsupported element kind: _completer:field
 LibTest/async/Completer/completeError_A01_t04: Crash # unsupported element kind: _completer:field
-LibTest/async/Completer/completeError_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Completer/completeError_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Completer/completeError_A03_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Completer/Completer_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Completer/Completer.sync_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/Completer/future_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Completer/isCompleted_A01_t01: Crash # Please triage this failure.
-LibTest/async/DeferredLibrary/DeferredLibrary_A01_t01: Crash # (try {lazy.method();}on NoSuchMethodError catch (ok){}): "on T" catch block
-LibTest/async/Future/asStream_A01_t01: Crash # Please triage this failure.
+LibTest/async/Completer/complete_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/Completer/complete_A01_t02: Crash # unsupported element kind: _completer:field
+LibTest/async/Completer/complete_A01_t03: Crash # unsupported element kind: _asyncCounter:field
+LibTest/async/Completer/complete_A01_t04: Crash # unsupported element kind: futures:field
+LibTest/async/Completer/complete_A01_t05: Crash # unsupported element kind: _completer:field
+LibTest/async/Completer/complete_A01_t06: Crash # unsupported element kind: _completer:field
+LibTest/async/Completer/future_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Future.
+LibTest/async/DeferredLibrary/DeferredLibrary_A01_t01: Crash # (lazy.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+LibTest/async/Future/Future.delayed_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/Future/Future.delayed_A01_t02: Crash # unsupported element kind: _completer:field
+LibTest/async/Future/Future.delayed_A02_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/Future/Future.delayed_A03_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/Future/Future.error_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/Future/Future.error_A01_t02: Crash # unsupported element kind: _completer:field
+LibTest/async/Future/Future.microtask_A01_t02: Crash # unsupported element kind: _completer:field
+LibTest/async/Future/Future.microtask_A01_t03: Crash # unsupported element kind: _completer:field
+LibTest/async/Future/Future.microtask_A01_t04: Crash # unsupported element kind: _completer:field
+LibTest/async/Future/Future.sync_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/Future/Future.sync_A01_t03: Crash # unsupported element kind: _completer:field
+LibTest/async/Future/Future.sync_A01_t04: Crash # unsupported element kind: _completer:field
+LibTest/async/Future/Future.value_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/Future/Future.value_A01_t02: Crash # unsupported element kind: _completer:field
+LibTest/async/Future/Future_A01_t02: Crash # unsupported element kind: _completer:field
+LibTest/async/Future/Future_A01_t03: Crash # unsupported element kind: _completer:field
+LibTest/async/Future/Future_A01_t04: Crash # unsupported element kind: _completer:field
+LibTest/async/Future/asStream_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Future/asStream_A01_t02: Crash # unsupported element kind: _completer:field
 LibTest/async/Future/asStream_A02_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Future/asStream_A02_t02: Crash # unsupported element kind: _completer:field
-LibTest/async/Future/catchError_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Future/catchError_A01_t02: Crash # unsupported element kind: _asyncCounter:field
+LibTest/async/Future/catchError_A01_t01: Crash # (onError): handleStaticFunctionGet: function(onError)
+LibTest/async/Future/catchError_A01_t02: Crash # (onError1): handleStaticFunctionGet: function(onError1)
 LibTest/async/Future/catchError_A02_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Future/catchError_A03_t01: Crash # unsupported element kind: _asyncCounter:field
 LibTest/async/Future/catchError_A03_t02: Crash # unsupported element kind: _completer:field
 LibTest/async/Future/catchError_A03_t03: Crash # unsupported element kind: _asyncCounter:field
-LibTest/async/Future/catchError_A03_t04: Crash # (throw error): Unhandled node
-LibTest/async/Future/catchError_A03_t05: Crash # unsupported element kind: _completer:field
+LibTest/async/Future/catchError_A03_t04: Crash # unsupported element kind: _completer:field
+LibTest/async/Future/catchError_A03_t05: Crash # (f): handleStaticFunctionGet: function(f)
 LibTest/async/Future/forEach_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Future/forEach_A02_t01: Crash # unsupported element kind: N:field
 LibTest/async/Future/forEach_A03_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Future/Future_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/Future/Future_A01_t02: Crash # unsupported element kind: _completer:field
-LibTest/async/Future/Future_A01_t03: Crash # unsupported element kind: _completer:field
-LibTest/async/Future/Future_A01_t04: Crash # unsupported element kind: _completer:field
-LibTest/async/Future/Future.delayed_A01_t01: Crash # Please triage this failure.
-LibTest/async/Future/Future.delayed_A01_t02: Crash # unsupported element kind: _completer:field
-LibTest/async/Future/Future.delayed_A02_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Future/Future.delayed_A03_t01: Crash # (throw value): Unhandled node
-LibTest/async/Future/Future.error_A01_t01: Crash # Please triage this failure.
-LibTest/async/Future/Future.error_A01_t02: Crash # (throw error): Unhandled node
-LibTest/async/Future/Future.microtask_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/Future/Future.microtask_A01_t02: Crash # unsupported element kind: _completer:field
-LibTest/async/Future/Future.microtask_A01_t03: Crash # unsupported element kind: _completer:field
-LibTest/async/Future/Future.microtask_A01_t04: Crash # unsupported element kind: _completer:field
-LibTest/async/Future/Future.sync_A01_t01: Crash # Please triage this failure.
-LibTest/async/Future/Future.sync_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Future/Future.sync_A01_t03: Crash # Please triage this failure.
-LibTest/async/Future/Future.sync_A01_t04: Crash # unsupported element kind: _completer:field
-LibTest/async/Future/Future.value_A01_t01: Crash # Please triage this failure.
-LibTest/async/Future/Future.value_A01_t02: Crash # unsupported element kind: _completer:field
 LibTest/async/Future/then_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Future/then_A01_t02: Crash # unsupported element kind: _asyncCounter:field
-LibTest/async/Future/then_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
+LibTest/async/Future/then_A01_t03: Crash # unsupported element kind: _completer:field
 LibTest/async/Future/then_A01_t04: Crash # unsupported element kind: _completer:field
 LibTest/async/Future/then_A02_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Future/then_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/async/Future/then_A03_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Future/then_A03_t02: Crash # unsupported element kind: _completer:field
 LibTest/async/Future/then_A04_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Future/then_A05_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Future/then_A05_t02: Crash # (throw error): Unhandled node
+LibTest/async/Future/then_A05_t01: Crash # (f): handleStaticFunctionGet: function(f)
+LibTest/async/Future/then_A05_t02: Crash # unsupported element kind: _completer:field
 LibTest/async/Future/then_A05_t03: Crash # unsupported element kind: _completer:field
 LibTest/async/Future/wait_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Future/wait_A01_t03: Crash # unsupported element kind: _completer:field
 LibTest/async/Future/wait_A01_t04: Crash # unsupported element kind: _completer:field
 LibTest/async/Future/wait_A01_t05: Crash # unsupported element kind: _completer:field
 LibTest/async/Future/wait_A01_t06: Crash # unsupported element kind: _completer:field
-LibTest/async/Future/wait_A01_t07: Crash # unsupported element kind: _completer:field
+LibTest/async/Future/wait_A01_t07: Crash # (inc): handleStaticFunctionGet: function(inc)
 LibTest/async/Future/wait_A02_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Future/wait_A02_t02: Crash # unsupported element kind: _completer:field
 LibTest/async/Future/whenComplete_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Future/whenComplete_A02_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Future/whenComplete_A03_t01: Crash # (throw value): Unhandled node
+LibTest/async/Future/whenComplete_A03_t01: Crash # unsupported element kind: _asyncCounter:field
 LibTest/async/Future/whenComplete_A04_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Future/whenComplete_A04_t02: Crash # unsupported element kind: _completer:field
+LibTest/async/Stream/Stream.eventTransformed_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/Stream/Stream.eventTransformed_A01_t02: Crash # unsupported element kind: _completer:field
+LibTest/async/Stream/Stream.fromFuture_A02_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/Stream/Stream.fromFuture_A02_t02: Crash # unsupported element kind: error:field
+LibTest/async/Stream/Stream.fromIterable_A01_t02: Crash # unsupported element kind: _completer:field
+LibTest/async/Stream/Stream.fromIterable_A02_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/Stream/Stream.periodic_A01_t01: Crash # Please triage this failure.
+LibTest/async/Stream/Stream.periodic_A02_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/Stream/Stream.periodic_A03_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/any_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/any_A01_t02: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/any_A02_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/asBroadcastStream_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Stream/asBroadcastStream_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/Stream/asBroadcastStream_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
+LibTest/async/Stream/asBroadcastStream_A01_t03: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/asBroadcastStream_A01_t04: Crash # unsupported element kind: _completer:field
-LibTest/async/Stream/asBroadcastStream_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/Stream/asBroadcastStream_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/Stream/asBroadcastStream_A03_t02: Crash # unsupported element kind: _completer:field
-LibTest/async/Stream/asBroadcastStream_A03_t03: Crash # unsupported element kind: _completer:field
+LibTest/async/Stream/asBroadcastStream_A03_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/Stream/asBroadcastStream_A03_t02: Crash # (f): handleStaticFunctionGet: function(f)
+LibTest/async/Stream/asBroadcastStream_A03_t03: Crash # (f): handleStaticFunctionGet: function(f)
 LibTest/async/Stream/asBroadcastStream_A04_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/asBroadcastStream_A04_t02: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/asBroadcastStream_A04_t03: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/contains_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/contains_A02_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/contains_A03_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamController/add_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamController/addError_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamController/addError_A01_t02: Crash # (throw error0): Unhandled node
-LibTest/async/StreamController/addStream_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamController/addStream_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/StreamController/addStream_A02_t02: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamController/addStream_A03_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamController/addStream_A03_t02: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamController/close_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/StreamController/close_A01_t02: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamController/done_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/StreamController/done_A01_t02: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamController/hasListener_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/StreamController/hasListener_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/StreamController/isClosed_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/StreamController/isClosed_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/StreamController/isPaused_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/StreamController/isPaused_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/StreamController/isPaused_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/StreamController/sink_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/StreamController/stream_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/StreamController/StreamController_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/StreamController/StreamController_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/StreamController/StreamController_A03_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamController/StreamController_A04_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/StreamController/StreamController_A05_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/StreamController/StreamController_A06_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/StreamController/StreamController_A06_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/StreamController/StreamController.broadcast_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamController/StreamController.broadcast_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/StreamController/StreamController.broadcast_A04_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamController/StreamController.broadcast_A05_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamController/StreamController.broadcast_A06_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamController/StreamController.broadcast_A07_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/StreamController/StreamController.broadcast_A07_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/StreamController/StreamController.broadcast_A08_t01: Crash # (throw new ExpectException(message)): Unhandled node
 LibTest/async/Stream/distinct_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Stream/distinct_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/Stream/drain_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/async/Stream/distinct_A01_t02: Crash # unsupported element kind: _completer:field
+LibTest/async/Stream/drain_A01_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
 LibTest/async/Stream/drain_A02_t01: Crash # Please triage this failure.
 LibTest/async/Stream/drain_A02_t02: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/elementAt_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Stream/elementAt_A01_t02: Crash # unsupported element kind: _asyncCounter:field
-LibTest/async/Stream/elementAt_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Stream/elementAt_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/async/Stream/elementAt_A01_t02: Crash # (f): handleStaticFunctionGet: function(f)
+LibTest/async/Stream/elementAt_A02_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LibTest/async/Stream/elementAt_A03_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/every_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/every_A02_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/expand_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Stream/first_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Stream/first_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Stream/first_A02_t02: Crash # unsupported element kind: _completer:field
-LibTest/async/Stream/first_A03_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/firstWhere_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/firstWhere_A02_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/firstWhere_A03_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Stream/firstWhere_A03_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/async/Stream/firstWhere_A03_t02: Crash # unsupported element kind: _completer:field
+LibTest/async/Stream/first_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/Stream/first_A02_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/Stream/first_A02_t02: Crash # unsupported element kind: _completer:field
+LibTest/async/Stream/first_A03_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/fold_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/fold_A01_t02: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/forEach_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/forEach_A02_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/forEach_A02_t02: Crash # unsupported element kind: _completer:field
-LibTest/async/Stream/handleError_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/async/Stream/handleError_A01_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
 LibTest/async/Stream/handleError_A02_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Stream/handleError_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Stream/handleError_A04_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/Stream/handleError_A04_t02: Crash # (throw error): Unhandled node
+LibTest/async/Stream/handleError_A03_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LibTest/async/Stream/handleError_A04_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/Stream/handleError_A04_t02: Crash # unsupported element kind: _asyncCounter:field
 LibTest/async/Stream/handleError_A04_t03: Crash # unsupported element kind: _completer:field
-LibTest/async/Stream/isBroadcast_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/Stream/isBroadcast_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
 LibTest/async/Stream/isEmpty_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamIterator/cancel_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamIterator/current_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/StreamIterator/moveNext_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamIterator/moveNext_A01_t02: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamIterator/StreamIterator_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LibTest/async/Stream/join_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/join_A01_t02: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/join_A02_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/join_A02_t02: Crash # unsupported element kind: _completer:field
-LibTest/async/Stream/last_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Stream/last_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Stream/last_A03_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/lastWhere_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/lastWhere_A02_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/lastWhere_A03_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Stream/lastWhere_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/async/Stream/lastWhere_A04_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/Stream/last_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/Stream/last_A02_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/Stream/last_A03_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/length_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/listen_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/listen_A02_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/listen_A03_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Stream/listen_A04_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/Stream/listen_A05_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/Stream/listen_A05_t02: Crash # (throw error): Unhandled node
-LibTest/async/Stream/listen_A05_t03: Crash # (throw new ExpectException(message)): Unhandled node
+LibTest/async/Stream/listen_A04_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LibTest/async/Stream/listen_A05_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/Stream/listen_A05_t02: Crash # unsupported element kind: _asyncCounter:field
+LibTest/async/Stream/listen_A05_t03: Crash # unsupported element kind: _asyncCounter:field
 LibTest/async/Stream/listen_A06_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/map_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/pipe_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/reduce_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/reduce_A01_t02: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/reduce_A01_t03: Crash # unsupported element kind: _completer:field
-LibTest/async/Stream/single_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Stream/single_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LibTest/async/Stream/singleWhere_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/singleWhere_A02_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamSink/add_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamSink/addError_A01_t01: Crash # (throw 2): Unhandled node
-LibTest/async/StreamSink/addStream_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamSink/addStream_A01_t02: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamSink/addStream_A01_t03: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamSink/addStream_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/StreamSink/addStream_A01_t05: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamSink/close_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamSink/done_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Stream/skip_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/async/Stream/single_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/Stream/single_A02_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/skipWhile_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Stream/Stream.eventTransformed_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Stream/Stream.eventTransformed_A01_t02: Crash # unsupported element kind: _completer:field
-LibTest/async/Stream/Stream.fromFuture_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/Stream/Stream.fromFuture_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/Stream/Stream.fromFuture_A02_t02: Crash # unsupported element kind: error:field
-LibTest/async/Stream/Stream.fromIterable_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/Stream/Stream.fromIterable_A01_t02: Crash # unsupported element kind: _completer:field
-LibTest/async/Stream/Stream.fromIterable_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/Stream/Stream.periodic_A01_t01: Crash # Please triage this failure.
-LibTest/async/Stream/Stream.periodic_A02_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Stream/Stream.periodic_A03_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Stream/take_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Stream/take_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Stream/take_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/async/Stream/skip_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/takeWhile_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/Stream/take_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/Stream/take_A01_t02: Crash # Instance of 'TypeOperator': type casts not implemented.
+LibTest/async/Stream/take_A01_t03: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/toList_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/toSet_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/transform_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Stream/transform_A01_t02: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamTransformer/bind_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamTransformer/StreamTransformer_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
+LibTest/async/Stream/where_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/Stream/where_A01_t02: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamController/StreamController.broadcast_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamController/StreamController.broadcast_A03_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamController/StreamController.broadcast_A04_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamController/StreamController.broadcast_A05_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamController/StreamController.broadcast_A06_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamController/StreamController.broadcast_A07_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamController/StreamController.broadcast_A07_t02: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamController/StreamController.broadcast_A08_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamController/StreamController_A02_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamController/StreamController_A03_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamController/StreamController_A05_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamController/StreamController_A06_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamController/StreamController_A06_t02: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamController/addError_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamController/addError_A01_t02: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamController/addStream_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamController/addStream_A02_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamController/addStream_A02_t02: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamController/addStream_A03_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamController/addStream_A03_t02: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamController/add_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamController/close_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Future.
+LibTest/async/StreamController/close_A01_t02: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamController/done_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Future.
+LibTest/async/StreamController/done_A01_t02: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamController/sink_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for StreamSink.
+LibTest/async/StreamController/stream_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Stream.
+LibTest/async/StreamIterator/StreamIterator_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for StreamIterator.
+LibTest/async/StreamIterator/cancel_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamIterator/moveNext_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamIterator/moveNext_A01_t02: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamSink/addError_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamSink/addStream_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamSink/addStream_A01_t02: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamSink/addStream_A01_t03: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamSink/addStream_A01_t05: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamSink/add_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamSink/close_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamSink/done_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamTransformer/StreamTransformer.fromHandlers_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamTransformer/StreamTransformer.fromHandlers_A01_t02: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamTransformer/StreamTransformer.fromHandlers_A01_t03: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamTransformer/StreamTransformer.fromHandlers_A01_t04: Crash # unsupported element kind: _completer:field
 LibTest/async/StreamTransformer/StreamTransformer_A01_t03: Crash # unsupported element kind: _completer:field
 LibTest/async/StreamTransformer/StreamTransformer_A02_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/StreamTransformer/StreamTransformer_A02_t02: Crash # unsupported element kind: _completer:field
 LibTest/async/StreamTransformer/StreamTransformer_A03_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/StreamTransformer/StreamTransformer_A03_t02: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamTransformer/StreamTransformer.fromHandlers_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamTransformer/StreamTransformer.fromHandlers_A01_t02: Crash # unsupported element kind: _completer:field
-LibTest/async/StreamTransformer/StreamTransformer.fromHandlers_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/StreamTransformer/StreamTransformer.fromHandlers_A01_t04: Crash # unsupported element kind: _completer:field
-LibTest/async/Stream/where_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Stream/where_A01_t02: Crash # unsupported element kind: _completer:field
-LibTest/async/Timer/cancel_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Timer/isActive_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/Timer/isActive_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/Timer/run_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Timer/run_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Timer/Timer_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Timer/Timer_A02_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/StreamTransformer/bind_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Timer/Timer.periodic_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Timer/Timer.periodic_A02_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Zone/bindBinaryCallback_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Zone/bindBinaryCallback_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Zone/bindCallback_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Zone/bindCallback_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Zone/bindUnaryCallback_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Zone/bindUnaryCallback_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/async/Timer/Timer_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/Timer/Timer_A02_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/Timer/cancel_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/Timer/isActive_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/Timer/isActive_A01_t02: Crash # unsupported element kind: _completer:field
+LibTest/async/Timer/run_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/async/Timer/run_A01_t02: Crash # unsupported element kind: _completer:field
+LibTest/async/Zone/bindBinaryCallback_A01_t02: Crash # (handler): handleStaticFunctionGet: function(handler)
+LibTest/async/Zone/bindCallback_A01_t02: Crash # (handler): handleStaticFunctionGet: function(handler)
+LibTest/async/Zone/bindUnaryCallback_A01_t02: Crash # (handler): handleStaticFunctionGet: function(handler)
 LibTest/async/Zone/createPeriodicTimer_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/async/Zone/createTimer_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Zone/current_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
+LibTest/async/Zone/createTimer_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Zone/current_A01_t02: Crash # unsupported element kind: _completer:field
-LibTest/async/Zone/fork_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Zone/handleUncaughtError_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/Zone/handleUncaughtError_A01_t02: Crash # (throw error): Unhandled node
-LibTest/async/Zone/handleUncaughtError_A01_t03: Crash # (throw count): Unhandled node
-LibTest/async/Zone/handleUncaughtError_A01_t04: Crash # (throw count): Unhandled node
-LibTest/async/Zone/inSameErrorZone_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
+LibTest/async/Zone/handleUncaughtError_A01_t01: Crash # (test): handleStaticFunctionGet: function(test)
+LibTest/async/Zone/handleUncaughtError_A01_t02: Crash # (myErrorHandler): handleStaticFunctionGet: function(myErrorHandler)
+LibTest/async/Zone/handleUncaughtError_A01_t03: Crash # (test): handleStaticFunctionGet: function(test)
+LibTest/async/Zone/handleUncaughtError_A01_t04: Crash # (test): handleStaticFunctionGet: function(test)
+LibTest/async/Zone/inSameErrorZone_A01_t01: Crash # (same): handleStaticFunctionGet: function(same)
 LibTest/async/Zone/inSameErrorZone_A01_t02: Crash # unsupported element kind: _asyncCounter:field
-LibTest/async/Zone/inSameErrorZone_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/Zone/inSameErrorZone_A01_t04: Crash # (throw new ExpectException(message)): Unhandled node
+LibTest/async/Zone/inSameErrorZone_A01_t03: Crash # unsupported element kind: _completer:field
+LibTest/async/Zone/inSameErrorZone_A01_t04: Crash # unsupported element kind: _completer:field
 LibTest/async/Zone/inSameErrorZone_A01_t05: Crash # unsupported element kind: _completer:field
-LibTest/async/Zone/operator_subscript_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/async/Zone/parent_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Zone/registerBinaryCallback_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Zone/registerCallback_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Zone/registerUnaryCallback_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Zone/ROOT_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Zone/run_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Zone/runBinary_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Zone/runBinaryGuarded_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Zone/runGuarded_A01_t01: Crash # (throw 0): Unhandled node
-LibTest/async/Zone/runUnary_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/async/Zone/runUnaryGuarded_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/async/Zone/registerBinaryCallback_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for ZoneBinaryCallback.
+LibTest/async/Zone/registerCallback_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for ZoneCallback.
+LibTest/async/Zone/registerUnaryCallback_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for ZoneUnaryCallback.
+LibTest/async/Zone/runBinaryGuarded_A01_t01: Crash # (errorHandler): handleStaticFunctionGet: function(errorHandler)
+LibTest/async/Zone/runGuarded_A01_t01: Crash # (errorHandler): handleStaticFunctionGet: function(errorHandler)
+LibTest/async/Zone/runUnaryGuarded_A01_t01: Crash # (errorHandler): handleStaticFunctionGet: function(errorHandler)
 LibTest/async/Zone/scheduleMicrotask_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/async/Zone/scheduleMicrotask_A01_t02: Crash # unsupported element kind: _completer:field
-LibTest/collection/DoubleLinkedQueue/add_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/add_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/addAll_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/addAll_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/addFirst_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/addFirst_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/addLast_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/addLast_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/any_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/clear_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/contains_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/DoubleLinkedQueue_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/DoubleLinkedQueue_class_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/DoubleLinkedQueue.from_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/DoubleLinkedQueue.from_A01_t02: Crash # cannot compile methods that need interceptor calling convention.
-LibTest/collection/DoubleLinkedQueue/elementAt_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/elementAt_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/every_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/every_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/every_A01_t04: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/expand_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/expand_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/expand_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/first_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/first_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/firstEntry_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/firstEntry_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/firstWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/firstWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/firstWhere_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/fold_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/forEach_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/forEach_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/forEach_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/forEach_A01_t04: Crash #  "on T" catch block
-LibTest/collection/DoubleLinkedQueue/forEachEntry_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/forEachEntry_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/forEachEntry_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/forEachEntry_A01_t04: Crash #  "on T" catch block
-LibTest/collection/DoubleLinkedQueue/isEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/isNotEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/iterator_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/iterator_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/iterator_current_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/iterator_moveNext_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/iterator_moveNext_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/join_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/last_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/last_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/lastEntry_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/lastEntry_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/lastWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/lastWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/lastWhere_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/length_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/map_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/map_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/map_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/reduce_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/remove_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/removeFirst_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/removeFirst_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/removeLast_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/removeLast_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/removeWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/retainWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/single_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/singleWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/singleWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/singleWhere_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/skip_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/skip_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/skip_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/skipWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/skipWhile_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/skipWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/skipWhile_A04_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/take_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/take_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/takeWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/takeWhile_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/takeWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/takeWhile_A04_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/toList_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/toList_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/DoubleLinkedQueue/toList_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/toSet_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/toString_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/DoubleLinkedQueue/where_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/HashMap/allTests_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/HashMap/allTests_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/HashMap/HashMap_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/HashMap/HashMap.from_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/HashMap/HashMap.from_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/HashSet/HashSet_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/HashSet/HashSet_class_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/HashSet/HashSet.from_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/HashSet/HashSet.from_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/HasNextIterator/HasNextIterator_class_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/IterableBase/IterableBase_class_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/IterableBase/IterableBase_class_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/IterableMixin/IterableMixin_class_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/IterableMixin/IterableMixin_class_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedHashMap/LinkedHashMap_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedHashMap/LinkedHashMap_class_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedHashMap/LinkedHashMap_class_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedHashMap/LinkedHashMap_class_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedHashMap/LinkedHashMap.from_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedHashMap/LinkedHashMap.from_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedHashSet/LinkedHashSet_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedHashSet/LinkedHashSet_class_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedHashSet/LinkedHashSet_class_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedHashSet/LinkedHashSet.from_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedHashSet/LinkedHashSet.from_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/add_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/add_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedList/addAll_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedList/addAll_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedList/addAll_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/addFirst_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/addFirst_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedList/any_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedList/clear_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedList/contains_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedList/elementAt_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/elementAt_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/every_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedList/every_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/every_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedList/every_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/expand_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/expand_A02_t01: Crash # (throw new Exception("should not be called")): Unhandled node
-LibTest/collection/LinkedList/first_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/first_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/firstWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/firstWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/firstWhere_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/fold_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/forEach_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedList/forEach_A01_t02: Crash # (try {var i=1;String s=i;return false;}on TypeError catch (e){return true;}): "on T" catch block
-LibTest/collection/LinkedList/forEach_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/isEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedList/isNotEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedList/iterator_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/iterator_current_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedList/iterator_moveNext_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedList/join_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/last_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/last_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/lastWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/lastWhere_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedList/lastWhere_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/length_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedList/LinkedList_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/ListQueue.from_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedList/map_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/map_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedList/map_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/reduce_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/remove_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/single_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/singleWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/singleWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/singleWhere_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/skip_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/skip_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/skip_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/skipWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/skipWhile_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedList/skipWhile_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedList/skipWhile_A04_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedList/take_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/take_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/takeWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/takeWhile_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedList/takeWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/LinkedList/takeWhile_A04_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedList/toList_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedList/toList_A01_t02: Crash # cannot compile methods that need interceptor calling convention.
-LibTest/collection/LinkedList/toList_A01_t03: Crash # (try {l.clear();failures.add("clear");}on UnsupportedError catch (ok){}): "on T" catch block
-LibTest/collection/LinkedList/toSet_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedList/where_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/LinkedList/where_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/ListBase/ListBase_class_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/ListBase/ListBase_class_A01_t02: Crash # Please triage this failure.
-LibTest/collection/ListMixin/ListMixin_class_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/ListMixin/ListMixin_class_A01_t02: Crash # Please triage this failure.
-LibTest/collection/ListQueue/ListQueue_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/ListQueue/ListQueue_class_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/ListQueue/ListQueue.from_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/ListQueue/ListQueue.from_A01_t02: Crash # cannot compile methods that need interceptor calling convention.
-LibTest/collection/ListQueue/ListQueue.from_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/Maps/containsValue_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/Maps/forEach_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/Maps/forEach_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/Maps/forEach_A01_t04: Crash #  "on T" catch block
-LibTest/collection/Maps/forEach_A01_t06: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/Maps/forEach_A01_t08: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/Maps/forEach_A02_t01: Crash #  "on T" catch block
-LibTest/collection/Maps/getValues_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/Maps/isEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/Maps/isNotEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/Maps/length_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/Maps/mapToString_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/Maps/mapToString_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/Maps/putIfAbsent_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/Maps/putIfAbsent_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/Maps/putIfAbsent_A01_t04: Crash #  "on T" catch block
-LibTest/collection/Maps/putIfAbsent_A01_t06: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/Maps/putIfAbsent_A01_t07: Crash #  "on T" catch block
-LibTest/collection/Maps/putIfAbsent_A01_t08: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/Maps/putIfAbsent_A01_t09: Crash # handleStaticFunctionGet: function(A#f)
-LibTest/collection/Maps/putIfAbsent_A01_t10: Crash #  "on T" catch block
-LibTest/collection/Maps/putIfAbsent_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/Queue/Queue_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/Queue/Queue_class_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/collection/Queue/Queue.from_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/collection/Queue/Queue.from_A01_t02: Crash # cannot compile methods that need interceptor calling convention.
-LibTest/collection/Queue/Queue.from_A02_t01: Crash #  "on T" catch block
-LibTest/collection/SplayTreeMap/allTests_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/convert/JsonCodec/decode_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/convert/JsonCodec/decode_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/convert/JsonCodec/decode_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/convert/JsonCodec/encode_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/convert/JsonCodec/encode_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/convert/JsonCodec/encode_A02_t01: Crash #  "on T" catch block
-LibTest/convert/JsonCodec/encode_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/convert/JsonCodec/encode_A02_t03: Crash #  "on T" catch block
-LibTest/convert/JsonCodec/encode_A03_t01: Crash #  "on T" catch block
-LibTest/convert/JsonCodec/JsonCodec_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/convert/JsonCodec/JsonCodec.withReviver_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/convert/JsonDecoder/convert_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/convert/JsonDecoder/convert_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/convert/JsonDecoder/convert_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/convert/JsonDecoder/fuse_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/convert/JsonEncoder/convert_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/convert/JsonEncoder/convert_A02_t01: Crash #  "on T" catch block
-LibTest/convert/JsonEncoder/fuse_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/AbstractClassInstantiationError/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/ArgumentError/ArgumentError_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/ArgumentError/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/AssertionError/AssertionError_A01_t01: Crash #  "on T" catch block
-LibTest/core/AssertionError/toString_A01_t01: Crash #  "on T" catch block
-LibTest/core/bool/toString_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/bool/toString_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/DateTime/add_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/add_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/add_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/add_A02_t01: Crash #  "on T" catch block
-LibTest/core/DateTime/compareTo_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/DateTime/DateTime_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/DateTime_A01_t02: Crash #  "on T" catch block
-LibTest/core/DateTime/DateTime_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/DateTime_A01_t04: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/DateTime/DateTime.fromMillisecondsSinceEpoch_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/DateTime/DateTime.fromMillisecondsSinceEpoch_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/DateTime/DateTime.fromMillisecondsSinceEpoch_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/DateTime.now_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/DateTime.now_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/DateTime/DateTime.now_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/DateTime/DateTime.utc_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/DateTime/day_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/difference_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/difference_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/difference_A02_t01: Crash #  "on T" catch block
-LibTest/core/DateTime/hashCode_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/hashCode_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/hour_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/isAfter_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/DateTime/isAtSameMomentAs_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/DateTime/isBefore_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/DateTime/isUtc_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/DateTime/millisecond_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/millisecondsSinceEpoch_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/minute_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/month_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/operator_equality_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/DateTime/parse_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/parse_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/parse_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/DateTime/second_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/subtract_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/subtract_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/subtract_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/subtract_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/timeZoneName_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/timeZoneOffset_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/DateTime/toLocal_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/toString_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/toString_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/DateTime/toUtc_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/weekday_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/DateTime/year_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/abs_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/abs_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/abs_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/abs_A01_t04: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/abs_A01_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/ceil_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/ceil_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/ceil_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/ceil_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/ceil_A01_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/ceil_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/ceil_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/ceilToDouble_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/ceilToDouble_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/ceilToDouble_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/ceilToDouble_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/ceilToDouble_A01_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/ceilToDouble_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/ceilToDouble_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/compareTo_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/compareTo_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/compareTo_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/double_class_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/floor_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/floor_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/floor_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/floor_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/floor_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/floorToDouble_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/floorToDouble_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/floorToDouble_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/floorToDouble_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/floorToDouble_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/floorToDouble_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/INFINITY_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/INFINITY_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/INFINITY_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/INFINITY_A01_t04: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/isInfinite_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/isInfinite_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/isInfinite_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/isNaN_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/isNaN_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/isNaN_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/isNegative_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/isNegative_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/NAN_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/NAN_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/NAN_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/NAN_A01_t04: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/NEGATIVE_INFINITY_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/NEGATIVE_INFINITY_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/NEGATIVE_INFINITY_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/NEGATIVE_INFINITY_A01_t04: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_addition_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_addition_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_addition_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_addition_A01_t04: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_addition_A01_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_addition_A01_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_addition_A01_t07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_addition_A01_t08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_addition_A02_t01: Crash # (try {d+null;Expect.fail("Error is expected");}on Error catch (e){}): "on T" catch block
-LibTest/core/double/operator_division_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_division_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_division_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_division_A01_t04: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_division_A01_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_division_A01_t06: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_division_A01_t07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_division_A01_t08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_division_A01_t09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_division_A01_t10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_division_A01_t11: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_division_A01_t12: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_division_A02_t01: Crash # (try {d/null;Expect.fail("Error is expected");}on Error catch (e){}): "on T" catch block
-LibTest/core/double/operator_GE_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_GE_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_GE_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_GE_A02_t01: Crash # (try {d>=null;Expect.fail("Error is expected");}on Error catch (e){}): "on T" catch block
-LibTest/core/double/operator_GT_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_GT_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_GT_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_GT_A01_t04: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_GT_A02_t01: Crash # (try {d>null;Expect.fail("Error is expected");}on Error catch (e){}): "on T" catch block
-LibTest/core/double/operator_LE_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_LE_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_LE_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_LE_A02_t01: Crash # (try {d<=null;Expect.fail("Error is expected");}on Error catch (e){}): "on T" catch block
-LibTest/core/double/operator_LT_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_LT_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_LT_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_LT_A01_t04: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_LT_A02_t01: Crash # (try {d<null;Expect.fail("Error is expected");}on Error catch (e){}): "on T" catch block
-LibTest/core/double/operator_multiplication_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_multiplication_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_multiplication_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_multiplication_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_multiplication_A01_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_multiplication_A01_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_multiplication_A01_t07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_multiplication_A01_t08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_multiplication_A01_t09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_multiplication_A02_t01: Crash # (try {d*null;Expect.fail("Error is expected");}on Error catch (e){}): "on T" catch block
-LibTest/core/double/operator_remainder_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_remainder_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_remainder_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_remainder_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_remainder_A01_t05: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_remainder_A01_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_remainder_A01_t07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_remainder_A02_t01: Crash # (try {val%null;Expect.fail("Error is expected");}on Error catch (e){}): "on T" catch block
-LibTest/core/double/operator_subtraction_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_subtraction_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_subtraction_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_subtraction_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_subtraction_A01_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_subtraction_A01_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_subtraction_A01_t07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_subtraction_A01_t08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_subtraction_A01_t09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_subtraction_A02_t01: Crash # (try {d-null;Expect.fail("Error is expected");}on Error catch (e){}): "on T" catch block
-LibTest/core/double/operator_truncating_division_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_truncating_division_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_truncating_division_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_truncating_division_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_truncating_division_A01_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_truncating_division_A01_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_truncating_division_A01_t07: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_truncating_division_A01_t08: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_truncating_division_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_unary_minus_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_unary_minus_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/operator_unary_minus_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/operator_unary_minus_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/parse_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/parse_A02_t01: Crash #  "on T" catch block
-LibTest/core/double/remainder_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/remainder_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/remainder_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/remainder_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/remainder_A01_t05: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/remainder_A01_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/remainder_A01_t07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/remainder_A02_t01: Crash #  "on T" catch block
-LibTest/core/double/round_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/round_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/round_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/round_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/round_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/round_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/roundToDouble_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/roundToDouble_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/roundToDouble_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/roundToDouble_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/roundToDouble_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/roundToDouble_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/toDouble_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/toDouble_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/toDouble_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/toInt_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/toInt_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/toInt_A01_t03: Crash # Please triage this failure.
-LibTest/core/double/toInt_A01_t04: Crash # Please triage this failure.
-LibTest/core/double/toInt_A01_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/toInt_A01_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/toStringAsExponential_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/toStringAsExponential_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/toStringAsExponential_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/toStringAsExponential_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/toStringAsExponential_A01_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/toStringAsExponential_A01_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/toStringAsExponential_A02_t01: Crash # Please triage this failure.
-LibTest/core/double/toStringAsFixed_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/toStringAsFixed_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/toStringAsFixed_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/toStringAsFixed_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/toStringAsFixed_A01_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/toStringAsFixed_A02_t01: Crash # Please triage this failure.
-LibTest/core/double/toStringAsFixed_A02_t02: Crash # Please triage this failure.
-LibTest/core/double/toStringAsFixed_A02_t03: Crash # Please triage this failure.
-LibTest/core/double/toStringAsPrecision_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/toStringAsPrecision_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/toStringAsPrecision_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/toStringAsPrecision_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/toStringAsPrecision_A01_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/toStringAsPrecision_A01_t06: Crash # Please triage this failure.
-LibTest/core/double/toStringAsPrecision_A01_t07: Crash # Please triage this failure.
-LibTest/core/double/toStringAsPrecision_A01_t08: Crash # Please triage this failure.
-LibTest/core/double/toStringAsPrecision_A02_t01: Crash #  "on T" catch block
-LibTest/core/double/truncate_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/truncate_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/truncate_A01_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/truncate_A01_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/truncate_A02_t01: Crash #  "on T" catch block
-LibTest/core/double/truncate_A02_t02: Crash #  "on T" catch block
-LibTest/core/double/truncateToDouble_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/truncateToDouble_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/truncateToDouble_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/double/truncateToDouble_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/truncateToDouble_A01_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/double/truncateToDouble_A01_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/compareTo_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/compareTo_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/Duration_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/Duration_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/Duration_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/HOURS_PER_DAY_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/inDays_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/inHours_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/inMilliseconds_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/inMinutes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/inSeconds_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/MILLISECONDS_PER_DAY_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/MILLISECONDS_PER_HOUR_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/MILLISECONDS_PER_MINUTE_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/MILLISECONDS_PER_SECOND_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/MINUTES_PER_DAY_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/MINUTES_PER_HOUR_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/operator_div_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/operator_eq_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/operator_gt_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/operator_gte_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/operator_lt_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/operator_lte_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/operator_minus_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/operator_mult_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/operator_plus_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/SECONDS_PER_DAY_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/SECONDS_PER_HOUR_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Duration/SECONDS_PER_MINUTE_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Expando/Expando_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Expando/Expando_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Expando/Expando_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Expando/Expando_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Expando/Expando_A03_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Expando/Expando_A03_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Expando/Expando_A03_t04: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Expando/Expando_A03_t05: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Expando/Expando_A03_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Expando/Expando_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Expando/Expando_A05_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/FallThroughError/toString_A01_t01: Crash #  "on T" catch block
-LibTest/core/FallThroughError/toString_A01_t02: Crash #  "on T" catch block
-LibTest/core/FormatException/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Function/apply_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Function/Function_class_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/abs_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/ceil_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/ceilToDouble_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/compareTo_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/compareTo_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/IntegerDivisionByZeroException/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/floor_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/floorToDouble_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/hashCode_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/int/isEven_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/int/isInfinite_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/int/isNaN_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/int/isNegative_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/int/isOdd_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/int/operator_addition_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/int/operator_AND_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/operator_division_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/int/operator_division_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/int/operator_division_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/operator_GE_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/int/operator_GT_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/int/operator_LE_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/int/operator_left_shift_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/operator_left_shift_A01_t03: Crash #  "on T" catch block
-LibTest/core/int/operator_LT_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/int/operator_multiplication_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/operator_NOT_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/operator_OR_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/operator_remainder_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/operator_remainder_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/int/operator_remainder_A01_t03: Crash #  "on T" catch block
-LibTest/core/int/operator_right_shift_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/operator_right_shift_A01_t03: Crash #  "on T" catch block
-LibTest/core/int/operator_subtraction_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/int/operator_truncating_division_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/operator_truncating_division_A01_t02: Crash #  "on T" catch block
-LibTest/core/int/operator_unary_minus_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/operator_XOR_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/parse_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/int/parse_A02_t01: Crash #  "on T" catch block
-LibTest/core/int/remainder_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/remainder_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/int/remainder_A01_t03: Crash #  "on T" catch block
-LibTest/core/int/round_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/roundToDouble_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/toDouble_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/toInt_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/toRadixString_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/int/toRadixString_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/toStringAsExponential_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/toStringAsExponential_A02_t01: Crash # Please triage this failure.
-LibTest/core/int/toStringAsExponential_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/toStringAsFixed_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/toStringAsFixed_A02_t01: Crash # Please triage this failure.
-LibTest/core/int/toStringAsPrecision_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/toStringAsPrecision_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/truncate_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/int/truncateToDouble_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Invocation/isAccessor_A01_t01: Crash # (super.foo): Error expression `super.foo` unhandled.
-LibTest/core/Invocation/isAccessor_A01_t02: Crash # (super.foo()): Error expression `super.foo()` unhandled.
-LibTest/core/Invocation/isGetter_A01_t01: Crash # (super.foo): Error expression `super.foo` unhandled.
-LibTest/core/Invocation/isGetter_A01_t02: Crash # (super.foo()): Error expression `super.foo()` unhandled.
-LibTest/core/Invocation/isMethod_A01_t01: Crash # (super.foo()): Error expression `super.foo()` unhandled.
-LibTest/core/Invocation/isMethod_A01_t02: Crash # (super.foo): Error expression `super.foo` unhandled.
-LibTest/core/Invocation/isSetter_A01_t01: Crash # (super.bar=1): Error expression `super.bar=1` unhandled.
-LibTest/core/Invocation/isSetter_A01_t02: Crash # (super.foo()): Error expression `super.foo()` unhandled.
-LibTest/core/Invocation/memberName_A01_t01: Crash # (super.foo): Error expression `super.foo` unhandled.
-LibTest/core/Invocation/namedArguments_A01_t01: Crash # (super.foo): Error expression `super.foo` unhandled.
-LibTest/core/Invocation/positionalArguments_A01_t01: Crash # (super.foo): Error expression `super.foo` unhandled.
-LibTest/core/Iterable/Iterable.generate_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/List/List_A01_t01: Crash # (try {a[0]=1;Expect.fail("expected RangeError");}on RangeError catch (ok){}): "on T" catch block
-LibTest/core/List/List_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/List/List_A02_t01: Crash #  "on T" catch block
-LibTest/core/List/List_A03_t01: Crash #  "on T" catch block
-LibTest/core/List/List_class_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/List/List_class_A01_t02: Crash # Please triage this failure.
-LibTest/core/List/List.filled_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/List/List.from_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/List/List.from_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/List/List.from_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/List/List.generate_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/List/List.generate_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/List/List.generate_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/List/removeAt_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Map/allTests_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Map/Map_A01_t01: Crash # unimplemented translation of type expression SomeFunction
-LibTest/core/Map/Map_class_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Map/Map_class_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Map/Map_class_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Map/Map_class_A01_t04: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Map/Map_class_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Match/end_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Match/group_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Match/group_A02_t01: Crash #  "on T" catch block
-LibTest/core/Match/groupCount_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Match/groups_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Match/groups_A02_t01: Crash #  "on T" catch block
-LibTest/core/Match/operator_subscript_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Match/operator_subscript_A02_t01: Crash # (try {m[index];Expect.fail("RangeError is expected");}on RangeError catch (e){}): "on T" catch block
-LibTest/core/Match/pattern_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Match/start_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Match/str_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/NoSuchMethodError/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Null/Null_class_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Null/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Object/operator_equality_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Object/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/OutOfMemoryError/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RangeError/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RegExp/allMatches_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RegExp/allMatches_A02_t01: Crash #  "on T" catch block
-LibTest/core/RegExp/firstMatch_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/firstMatch_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RegExp/firstMatch_A03_t01: Crash #  "on T" catch block
-LibTest/core/RegExp/hasMatch_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/hasMatch_A02_t01: Crash # (try {re.hasMatch(null);Expect.fail("Error is expected");}on Error catch (e){}): "on T" catch block
-LibTest/core/RegExp/isCaseSensitive_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RegExp/isMultiLine_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RegExp/pattern_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_Assertion_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_Assertion_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_Assertion_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_Assertion_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RegExp/Pattern_semantics/firstMatch_Assertion_A05_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RegExp/Pattern_semantics/firstMatch_Atom_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_Atom_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_Atom_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_Atom_A03_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_Atom_A03_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_Atom_A04_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_Atom_A05_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_Atom_A06_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_AtomEscape_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClass_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClass_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
+LibTest/collection/DoubleLinkedQueue/DoubleLinkedQueue_class_A01_t01: Crash # (create): handleStaticFunctionGet: function(create)
+LibTest/collection/DoubleLinkedQueue/elementAt_A02_t01: Crash # unsupported element kind: queue:field
+LibTest/collection/DoubleLinkedQueue/expand_A01_t02: Crash # (f): handleStaticFunctionGet: function(f)
+LibTest/collection/DoubleLinkedQueue/expand_A02_t01: Crash # (f): handleStaticFunctionGet: function(f)
+LibTest/collection/DoubleLinkedQueue/forEachEntry_A01_t04: RuntimeError # Please triage this failure.
+LibTest/collection/DoubleLinkedQueue/forEach_A01_t04: RuntimeError # Please triage this failure.
+LibTest/collection/DoubleLinkedQueue/iterator_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Iterator.
+LibTest/collection/DoubleLinkedQueue/map_A01_t01: Crash # (f): handleStaticFunctionGet: function(f)
+LibTest/collection/DoubleLinkedQueue/map_A02_t01: Crash # (f): handleStaticFunctionGet: function(f)
+LibTest/collection/DoubleLinkedQueue/map_A03_t01: Crash # (f): handleStaticFunctionGet: function(f)
+LibTest/collection/DoubleLinkedQueue/skipWhile_A02_t01: Crash # (test): handleStaticFunctionGet: function(test)
+LibTest/collection/DoubleLinkedQueue/skipWhile_A03_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/collection/DoubleLinkedQueue/takeWhile_A02_t01: Crash # (test): handleStaticFunctionGet: function(test)
+LibTest/collection/DoubleLinkedQueue/toList_A01_t03: Crash # unsupported element kind: failures:field
+LibTest/collection/HashMap/HashMap_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for HashMap.
+LibTest/collection/HashMap/allTests_A01_t01: Crash # (create): handleStaticFunctionGet: function(create)
+LibTest/collection/HashMap/allTests_A01_t02: Crash # (create): handleStaticFunctionGet: function(create)
+LibTest/collection/HashSet/HashSet_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for HashSet.
+LibTest/collection/HashSet/HashSet_class_A01_t01: Crash # (create): handleStaticFunctionGet: function(create)
+LibTest/collection/IterableBase/IterableBase_class_A01_t02: Crash # (create): handleStaticFunctionGet: function(create)
+LibTest/collection/LinkedHashMap/LinkedHashMap_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for LinkedHashMap.
+LibTest/collection/LinkedHashMap/LinkedHashMap_class_A01_t01: Crash # (create): handleStaticFunctionGet: function(create)
+LibTest/collection/LinkedHashMap/LinkedHashMap_class_A01_t02: Crash # (create): handleStaticFunctionGet: function(create)
+LibTest/collection/LinkedHashSet/LinkedHashSet_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for LinkedHashSet.
+LibTest/collection/LinkedHashSet/LinkedHashSet_class_A01_t01: Crash # (create): handleStaticFunctionGet: function(create)
+LibTest/collection/LinkedList/any_A01_t01: Crash # (isOne): handleStaticFunctionGet: function(isOne)
+LibTest/collection/LinkedList/every_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Set.
+LibTest/collection/LinkedList/every_A01_t02: Crash # (allTrue): handleStaticFunctionGet: function(allTrue)
+LibTest/collection/LinkedList/every_A02_t02: Crash # (allTrue): handleStaticFunctionGet: function(allTrue)
+LibTest/collection/LinkedList/forEach_A02_t01: Crash # unsupported element kind: list:field
+LibTest/collection/LinkedList/lastWhere_A02_t01: Crash # unsupported element kind: noneMatches:field
+LibTest/collection/LinkedList/map_A01_t01: Crash # (f): handleStaticFunctionGet: function(f)
+LibTest/collection/LinkedList/map_A02_t01: Crash # (f): handleStaticFunctionGet: function(f)
+LibTest/collection/LinkedList/map_A03_t01: Crash # (f): handleStaticFunctionGet: function(f)
+LibTest/collection/LinkedList/skipWhile_A02_t01: Crash # (test): handleStaticFunctionGet: function(test)
+LibTest/collection/LinkedList/takeWhile_A02_t01: Crash # (test): handleStaticFunctionGet: function(test)
+LibTest/collection/LinkedList/toList_A01_t03: Crash # unsupported element kind: failures:field
+LibTest/collection/LinkedList/where_A02_t01: Crash # (test): handleStaticFunctionGet: function(test)
+LibTest/collection/ListBase/ListBase_class_A01_t01: Crash # (create): handleStaticFunctionGet: function(create)
+LibTest/collection/ListBase/ListBase_class_A01_t02: Crash # (create): handleStaticFunctionGet: function(create)
+LibTest/collection/ListMixin/ListMixin_class_A01_t01: Crash # (create): handleStaticFunctionGet: function(create)
+LibTest/collection/ListMixin/ListMixin_class_A01_t02: Crash # (create): handleStaticFunctionGet: function(create)
+LibTest/collection/ListQueue/ListQueue_class_A01_t01: Crash # (create): handleStaticFunctionGet: function(create)
+LibTest/collection/Maps/putIfAbsent_A01_t09: Crash # (A.f): handleStaticFunctionGet: function(A#f)
+LibTest/collection/Queue/Queue_class_A01_t01: Crash # (create): handleStaticFunctionGet: function(create)
+LibTest/collection/SplayTreeMap/allTests_A01_t01: Crash # (create): handleStaticFunctionGet: function(create)
+LibTest/convert/JsonCodec/JsonCodec.withReviver_A01_t01: Crash # (reviver): handleStaticFunctionGet: function(reviver)
+LibTest/convert/JsonCodec/JsonCodec_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Codec.
+LibTest/convert/JsonCodec/decode_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+LibTest/convert/JsonCodec/decode_A02_t01: Crash # (reviver): handleStaticFunctionGet: function(reviver)
+LibTest/convert/JsonCodec/decode_A03_t01: Crash # unsupported element kind: table:field
+LibTest/convert/JsonCodec/encode_A01_t01: Crash # unsupported element kind: table:field
+LibTest/convert/JsonCodec/encode_A01_t02: Crash # unsupported element kind: table:field
+LibTest/convert/JsonCodec/encode_A02_t01: Crash # unsupported element kind: table:field
+LibTest/convert/JsonCodec/encode_A02_t03: Crash # unsupported element kind: table:field
+LibTest/convert/JsonCodec/encode_A03_t01: Crash # unsupported element kind: table:field
+LibTest/convert/JsonDecoder/convert_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+LibTest/convert/JsonDecoder/convert_A02_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+LibTest/convert/JsonDecoder/convert_A03_t01: Crash # unsupported element kind: table:field
+LibTest/convert/JsonDecoder/fuse_A01_t01: Crash # unsupported element kind: table:field
+LibTest/convert/JsonEncoder/convert_A01_t01: Crash # unsupported element kind: table:field
+LibTest/convert/JsonEncoder/convert_A02_t01: Crash # unsupported element kind: table:field
+LibTest/convert/JsonEncoder/fuse_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+LibTest/core/Duration/compareTo_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Comparable.
+LibTest/core/FallThroughError/toString_A01_t02: Crash #  Unhandled node
+LibTest/core/Function/Function_class_A01_t01: Crash # (foo): handleStaticFunctionGet: function(foo)
+LibTest/core/Function/apply_A01_t01: Crash # (foo): handleStaticFunctionGet: function(foo)
+LibTest/core/Invocation/isAccessor_A01_t01: RuntimeError # Please triage this failure.
+LibTest/core/Invocation/isGetter_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+LibTest/core/Invocation/isGetter_A01_t02: RuntimeError # Please triage this failure.
+LibTest/core/Invocation/isMethod_A01_t02: RuntimeError # Please triage this failure.
+LibTest/core/Invocation/isSetter_A01_t01: Crash # Please triage this failure.
+LibTest/core/Invocation/memberName_A01_t01: RuntimeError # Please triage this failure.
+LibTest/core/Invocation/namedArguments_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+LibTest/core/Invocation/positionalArguments_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/core/List/List.from_A01_t03: Crash # unsupported element kind: failures:field
+LibTest/core/List/List.generate_A01_t03: Crash # unsupported element kind: failures:field
+LibTest/core/List/List_A01_t03: Crash # unsupported element kind: failures:field
+LibTest/core/List/List_class_A01_t01: Crash # (create): handleStaticFunctionGet: function(create)
+LibTest/core/List/List_class_A01_t02: Crash # (create): handleStaticFunctionGet: function(create)
+LibTest/core/List/removeAt_A02_t01: Crash # (create): handleStaticFunctionGet: function(create)
+LibTest/core/Map/Map_A01_t01: Crash # Please triage this failure.
+LibTest/core/Map/allTests_A01_t01: Crash # (create): handleStaticFunctionGet: function(create)
+LibTest/core/Object/operator_equality_A01_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+LibTest/core/Object/toString_A01_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
 LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: Crash #  Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A05_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A06_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterEscape_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterEscape_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterEscape_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterEscape_A04_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterEscape_A05_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterEscape_A06_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterEscape_A06_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterEscape_A07_t01: Crash # Please triage this failure.
-LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterEscape_A08_t01: Crash # Please triage this failure.
-LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterEscape_A08_t02: Crash # Please triage this failure.
-LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterEscape_A09_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_DecimalEscape_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_DecimalEscape_A01_t02: Crash # Please triage this failure.
-LibTest/core/RegExp/Pattern_semantics/firstMatch_DecimalEscape_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RegExp/Pattern_semantics/firstMatch_DecimalEscape_A01_t04: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_Disjunction_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: Crash #  "on T" catch block
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t03: Crash #  "on T" catch block
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t04: Crash # Please triage this failure.
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: Crash # Please triage this failure.
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: Crash # Please triage this failure.
-LibTest/core/RegExp/Pattern_semantics/firstMatch_Quantifier_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_Quantifier_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_Quantifier_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_Quantifier_A04_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_Quantifier_A05_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_Quantifier_A06_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_Term_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_Term_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_Term_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/Pattern_semantics/firstMatch_Term_A04_t01: Crash # (throw new ExpectException(message)): Unhandled node
 LibTest/core/RegExp/Pattern_semantics/splitQueryString_A02_t01: Crash #  Unhandled node
-LibTest/core/RegExp/RegExp_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RegExp/RegExp_A01_t03: Crash #  "on T" catch block
-LibTest/core/RegExp/RegExp_A01_t04: Crash #  "on T" catch block
-LibTest/core/RegExp/stringMatch_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RegExp/stringMatch_A02_t01: Crash #  "on T" catch block
-LibTest/core/RuneIterator/current_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RuneIterator/current_A01_t02: Crash #  "on T" catch block
-LibTest/core/RuneIterator/currentAsString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RuneIterator/currentAsString_A01_t02: Crash #  "on T" catch block
-LibTest/core/RuneIterator/currentAsString_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RuneIterator/currentAsString_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RuneIterator/currentSize_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RuneIterator/currentSize_A01_t02: Crash #  "on T" catch block
-LibTest/core/RuneIterator/currentSize_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RuneIterator/moveNext_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RuneIterator/moveNext_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RuneIterator/movePrevious_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RuneIterator/movePrevious_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RuneIterator/movePrevious_A02_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RuneIterator/rawIndex_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RuneIterator/rawIndex_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RuneIterator/rawIndex_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RuneIterator/rawIndex_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RuneIterator/rawIndex_A04_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RuneIterator/rawIndex_A05_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RuneIterator/reset_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RuneIterator/reset_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RuneIterator/reset_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RuneIterator/reset_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RuneIterator/reset_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RuneIterator/reset_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RuneIterator/RuneIterator_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RuneIterator/RuneIterator.at_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RuneIterator/RuneIterator.at_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/RuneIterator/RuneIterator.at_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RuneIterator/RuneIterator.at_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RuneIterator/RuneIterator.at_A05_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RuneIterator/string_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/RuneIterator/string_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/any_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Runes/contains_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Runes/elementAt_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/elementAt_A02_t01: Crash #  "on T" catch block
-LibTest/core/Runes/every_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Runes/expand_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/first_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/first_A01_t02: Crash #  "on T" catch block
-LibTest/core/Runes/first_A02_t01: Crash #  "on T" catch block
-LibTest/core/Runes/first_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/firstWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/firstWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/firstWhere_A03_t01: Crash #  "on T" catch block
-LibTest/core/Runes/fold_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/forEach_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/isEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Runes/isEmpty_A01_t02: Crash #  "on T" catch block
-LibTest/core/Runes/isNotEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Runes/isNotEmpty_A01_t02: Crash #  "on T" catch block
-LibTest/core/Runes/iterator_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/iterator_A01_t02: Crash #  "on T" catch block
-LibTest/core/Runes/join_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Runes/join_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Runes/last_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/last_A01_t02: Crash #  "on T" catch block
-LibTest/core/Runes/last_A02_t01: Crash #  "on T" catch block
-LibTest/core/Runes/lastWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/lastWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/lastWhere_A03_t01: Crash #  "on T" catch block
-LibTest/core/Runes/length_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/length_A01_t02: Crash #  "on T" catch block
-LibTest/core/Runes/map_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/map_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Runes/map_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/reduce_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/reduce_A02_t01: Crash #  "on T" catch block
-LibTest/core/Runes/Runes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/single_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/single_A01_t02: Crash #  "on T" catch block
-LibTest/core/Runes/single_A02_t01: Crash #  "on T" catch block
-LibTest/core/Runes/single_A02_t02: Crash #  "on T" catch block
-LibTest/core/Runes/singleWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/singleWhere_A02_t01: Crash #  "on T" catch block
-LibTest/core/Runes/singleWhere_A02_t02: Crash #  "on T" catch block
-LibTest/core/Runes/skip_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/skip_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Runes/skip_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/skipWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/skipWhile_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/skipWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/skipWhile_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/string_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/string_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/take_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/take_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/take_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/takeWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/takeWhile_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/takeWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/takeWhile_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/toList_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/toList_A02_t01: Crash #  "on T" catch block
-LibTest/core/Runes/toList_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/toSet_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Runes/where_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/where_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Runes/where_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Set/add_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/add_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/add_A01_t06: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/addAll_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/addAll_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/clear_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/contains_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/contains_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/containsAll_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/containsAll_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/every_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/every_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/every_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/forEach_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/forEach_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/forEach_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/forEach_A01_t04: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/forEach_A01_t05: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/intersection_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/intersection_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/intersection_A02_t01: Crash # (try {res=s.intersection(null);}on Error catch (e){return;}): "on T" catch block
-LibTest/core/Set/isEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/IterableBase_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/length_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/remove_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/remove_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/remove_A01_t05: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/removeAll_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/removeAll_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Set/Set_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Set/Set.from_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/Set.from_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Set/Set.from_A02_t01: Crash # (try {new Set.from(null);Expect.fail("Error is expected");}on Error catch (e){}): "on T" catch block
-LibTest/core/StackOverflowError/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/StateError/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Stopwatch/elapsed_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/core/Stopwatch/elapsed_A01_t02: Crash # unsupported element kind: _completer:field
-LibTest/core/Stopwatch/elapsed_A01_t03: Crash # unsupported element kind: _completer:field
-LibTest/core/Stopwatch/elapsedInMs_A01_t01: Crash # unsupported element kind: delay:field
-LibTest/core/Stopwatch/elapsedInUs_A01_t01: Crash # unsupported element kind: delay:field
-LibTest/core/Stopwatch/elapsedTicks_A01_t01: Crash # unsupported element kind: delay:field
-LibTest/core/Stopwatch/elapsedTicks_A01_t02: Crash # unsupported element kind: delay:field
-LibTest/core/Stopwatch/elapsedTicks_A01_t03: Crash # unsupported element kind: delay:field
-LibTest/core/Stopwatch/frequency_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Stopwatch/start_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/core/Stopwatch/start_A01_t02: Crash # unsupported element kind: _completer:field
-LibTest/core/Stopwatch/start_A01_t03: Crash # unsupported element kind: _completer:field
-LibTest/core/Stopwatch/stop_A01_t01: Crash # unsupported element kind: delay:field
-LibTest/core/Stopwatch/Stopwatch_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/StringBuffer/clear_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/StringBuffer/isEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/StringBuffer/length_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/StringBuffer/StringBuffer_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/StringBuffer/StringBuffer_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/StringBuffer/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/StringBuffer/write_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/StringBuffer/write_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/StringBuffer/writeAll_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/StringBuffer/writeAll_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/StringBuffer/writeAll_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/String/codeUnitAt_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/String/codeUnitAt_A02_t01: Crash #  "on T" catch block
-LibTest/core/String/codeUnitAt_A03_t01: Crash #  "on T" catch block
-LibTest/core/String/codeUnits_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/String/compareTo_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/String/contains_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/String/contains_A01_t02: Crash #  "on T" catch block
-LibTest/core/String/contains_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/String/contains_A02_t01: Crash #  "on T" catch block
-LibTest/core/String/endsWith_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/String/endsWith_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/String/endsWith_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/String/endsWith_A02_t01: Crash # (try {"".endsWith(null);Expect.fail("Error is expected");}on Error catch (e){}): "on T" catch block
-LibTest/core/String/hashCode_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/String/indexOf_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/String/indexOf_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/String/indexOf_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/String/isEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/String/lastIndexOf_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/String/lastIndexOf_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/String/lastIndexOf_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/String/length_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/String/operator_equality_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/String/operator_equality_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/String/operator_subscript_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/String/operator_subscript_A02_t01: Crash #  "on T" catch block
-LibTest/core/String/replaceAll_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/String/replaceAll_A02_t01: Crash #  "on T" catch block
-LibTest/core/String/replaceFirst_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/String/replaceFirst_A02_t01: Crash #  "on T" catch block
-LibTest/core/String/split_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/String/split_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/String/split_A02_t01: Crash # (try {"1111".split(null);Expect.fail("Error is expected");}on Error catch (e){}): "on T" catch block
-LibTest/core/String/startsWith_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/String/startsWith_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/String/startsWith_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/String/startsWith_A02_t01: Crash #  "on T" catch block
-LibTest/core/String/String_class_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/String/String_class_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/String/String_class_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/String/String.fromCharCodes_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/String/String.fromCharCodes_A02_t01: Crash #  "on T" catch block
-LibTest/core/String/String.fromCharCodes_A03_t01: Crash #  "on T" catch block
-LibTest/core/String/substring_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/String/substring_A02_t01: Crash #  "on T" catch block
-LibTest/core/String/toLowerCase_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/String/toLowerCase_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/String/toLowerCase_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/String/toLowerCase_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/String/toUpperCase_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/String/toUpperCase_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/String/toUpperCase_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/String/toUpperCase_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/String/trim_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/String/trim_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Symbol/Symbol_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Symbol/Symbol_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Symbol/Symbol_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Symbol/Symbol_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Symbol/Symbol_A01_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/TypeError/toString_A01_t01: Crash #  "on T" catch block
-LibTest/core/UnimplementedError/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/authority_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/decodeComponent_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/decodeFull_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/decodeQueryComponent_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/decodeQueryComponent_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/encodeComponent_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/encodeComponent_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Uri/encodeFull_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/encodeFull_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Uri/encodeQueryComponent_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/encodeQueryComponent_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/fragment_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/hasAuthority_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Uri/hashCode_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/host_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/isAbsolute_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Uri/operator_eq_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Uri/origin_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/parse_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/parse_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/parse_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/path_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/path_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/pathSegments_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/pathSegments_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/pathSegments_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/pathSegments_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/port_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/query_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/query_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/queryParameters_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/queryParameters_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/queryParameters_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/resolve_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/resolveUri_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/scheme_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/splitQueryString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/splitQueryString_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/toFilePath_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/toFilePath_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/toFilePath_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/toFilePath_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/toFilePath_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/toFilePath_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/Uri_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/Uri_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/Uri_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Uri/Uri_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/Uri_A05_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/Uri_A05_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/Uri_A06_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/Uri_A06_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/Uri_A06_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/Uri_A07_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/Uri.file_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Uri/Uri.file_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/Uri.file_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/Uri.file_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/core/Uri/Uri.file_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/Uri.http_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/Uri.http_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/Uri.http_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/Uri.http_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/Uri.https_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/Uri.https_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/Uri.https_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/Uri.https_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/core/Uri/userInfo_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/core/Runes/any_A01_t01: Crash # (pred): handleStaticFunctionGet: function(pred)
+LibTest/core/Runes/every_A01_t01: Crash # (pred): handleStaticFunctionGet: function(pred)
+LibTest/core/Runes/toList_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/core/Set/IterableBase_A01_t01: Crash # (create): handleStaticFunctionGet: function(create)
+LibTest/core/Set/Set_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Set.
+LibTest/core/Set/add_A01_t03: RuntimeError # Please triage this failure.
+LibTest/core/Stopwatch/elapsedInMs_A01_t01: Crash # (proc1): handleStaticFunctionGet: function(proc1)
+LibTest/core/Stopwatch/elapsedInUs_A01_t01: Crash # (proc1): handleStaticFunctionGet: function(proc1)
+LibTest/core/Stopwatch/elapsedTicks_A01_t01: Crash # (proc1): handleStaticFunctionGet: function(proc1)
+LibTest/core/Stopwatch/elapsedTicks_A01_t02: Crash # (proc1): handleStaticFunctionGet: function(proc1)
+LibTest/core/Stopwatch/elapsedTicks_A01_t03: Crash # (proc1): handleStaticFunctionGet: function(proc1)
+LibTest/core/Stopwatch/elapsed_A01_t01: Crash # (proc1): handleStaticFunctionGet: function(proc1)
+LibTest/core/Stopwatch/elapsed_A01_t02: Crash # (proc1): handleStaticFunctionGet: function(proc1)
+LibTest/core/Stopwatch/elapsed_A01_t03: Crash # (proc1): handleStaticFunctionGet: function(proc1)
+LibTest/core/Stopwatch/start_A01_t01: Crash # (proc1): handleStaticFunctionGet: function(proc1)
+LibTest/core/Stopwatch/start_A01_t02: Crash # (proc1): handleStaticFunctionGet: function(proc1)
+LibTest/core/Stopwatch/start_A01_t03: Crash # (proc1): handleStaticFunctionGet: function(proc1)
+LibTest/core/Stopwatch/stop_A01_t01: Crash # (proc1): handleStaticFunctionGet: function(proc1)
+LibTest/core/String/String_class_A03_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Comparable.
+LibTest/core/Symbol/Symbol_A01_t03: RuntimeError # Please triage this failure.
+LibTest/core/Symbol/Symbol_A01_t05: RuntimeError # Please triage this failure.
+LibTest/core/Uri/Uri_A06_t02: Crash # (encodeOctet): handleStaticFunctionGet: function(encodeOctet)
+LibTest/core/Uri/Uri_A06_t03: Crash # (encodeOctet): handleStaticFunctionGet: function(encodeOctet)
+LibTest/core/Uri/decodeComponent_A01_t01: Crash # (encodeOctet): handleStaticFunctionGet: function(encodeOctet)
+LibTest/core/Uri/decodeFull_A01_t01: Crash # (encodeOctet): handleStaticFunctionGet: function(encodeOctet)
+LibTest/core/Uri/decodeQueryComponent_A01_t01: Crash # (encodeOctet): handleStaticFunctionGet: function(encodeOctet)
+LibTest/core/Uri/encodeComponent_A01_t01: Crash # (encodeOctet): handleStaticFunctionGet: function(encodeOctet)
+LibTest/core/Uri/encodeFull_A01_t01: Crash # (encodeOctet): handleStaticFunctionGet: function(encodeOctet)
+LibTest/core/Uri/encodeFull_A01_t02: Crash # unsupported element kind: canBeNotEncoded:field
+LibTest/core/Uri/encodeQueryComponent_A01_t01: Crash # (encodeOctet): handleStaticFunctionGet: function(encodeOctet)
+LibTest/core/Uri/encodeQueryComponent_A01_t02: Crash # (encodeOctet): handleStaticFunctionGet: function(encodeOctet)
+LibTest/core/Uri/parse_A02_t01: Crash # unsupported element kind: r:field
+LibTest/core/Uri/pathSegments_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/core/Uri/pathSegments_A01_t02: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/core/Uri/pathSegments_A01_t03: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/core/Uri/queryParameters_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+LibTest/core/Uri/queryParameters_A01_t02: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+LibTest/core/Uri/splitQueryString_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+LibTest/core/Uri/splitQueryString_A01_t02: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+LibTest/core/double/INFINITY_A01_t04: Pass # Please triage this failure.
+LibTest/core/double/NEGATIVE_INFINITY_A01_t04: Pass # Please triage this failure.
+LibTest/core/double/operator_GE_A01_t01: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_GE_A01_t03: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_GE_A02_t01: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_GT_A01_t01: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_GT_A01_t03: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_GT_A02_t01: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_LE_A01_t01: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_LE_A01_t03: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_LE_A02_t01: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_LT_A01_t01: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_LT_A01_t03: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_LT_A02_t01: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_addition_A01_t01: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_addition_A01_t02: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_addition_A01_t03: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_addition_A01_t04: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_addition_A01_t07: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_addition_A02_t01: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_division_A01_t01: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_division_A01_t02: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_division_A01_t03: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_division_A01_t04: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_division_A01_t05: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_division_A01_t07: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_division_A01_t08: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_division_A01_t11: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_division_A02_t01: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_multiplication_A01_t01: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_multiplication_A01_t02: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_multiplication_A01_t03: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_multiplication_A01_t04: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_multiplication_A01_t06: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_multiplication_A01_t08: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_multiplication_A02_t01: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_remainder_A01_t02: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_remainder_A01_t04: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_remainder_A01_t05: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_remainder_A01_t06: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_remainder_A02_t01: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_subtraction_A01_t01: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_subtraction_A01_t02: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_subtraction_A01_t03: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_subtraction_A01_t04: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_subtraction_A01_t07: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_subtraction_A01_t08: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_subtraction_A02_t01: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_truncating_division_A01_t01: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_truncating_division_A01_t02: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_truncating_division_A01_t03: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_truncating_division_A01_t05: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_truncating_division_A01_t08: RuntimeError # Please triage this failure.
+LibTest/core/double/operator_truncating_division_A02_t01: RuntimeError # Please triage this failure.
+LibTest/core/double/remainder_A01_t02: RuntimeError # Please triage this failure.
+LibTest/core/double/remainder_A01_t04: RuntimeError # Please triage this failure.
+LibTest/core/double/remainder_A01_t05: RuntimeError # Please triage this failure.
+LibTest/core/double/remainder_A01_t06: RuntimeError # Please triage this failure.
+LibTest/core/double/remainder_A02_t01: RuntimeError # Please triage this failure.
+LibTest/core/double/toStringAsFixed_A02_t01: RuntimeError # Please triage this failure.
 LibTest/html/CanvasRenderingContext2D/addEventListener_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/CanvasRenderingContext2D/addEventListener_A01_t02: Crash # unsupported element kind: _completer:field
 LibTest/html/CanvasRenderingContext2D/addEventListener_A01_t03: Crash # unsupported element kind: _completer:field
@@ -14158,49 +10929,16 @@
 LibTest/html/CanvasRenderingContext2D/addEventListener_A01_t05: Crash # unsupported element kind: _completer:field
 LibTest/html/CanvasRenderingContext2D/addEventListener_A01_t06: Crash # unsupported element kind: _completer:field
 LibTest/html/Document/addEventListener_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Document/adoptNode_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Document/append_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Document/append_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Document/append_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Document/childNodes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Document/childNodes_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Document/clone_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Document/clone_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Document/contains_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Document/createDocumentFragment_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Document/createElement_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/html/Document/childNodes_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for DocumentType.
+LibTest/html/Document/clone_A01_t02: Crash # Instance of 'TypeOperator': type check unimplemented for List.
 LibTest/html/Document/dispatchEvent_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Document/documentElement_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Document/firstChild_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Document/getElementById_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Document/getElementsByClassName_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Document/getElementsByName_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Document/getElementsByTagName_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Document/hasChildNodes_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Document/importNode_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Document/insertAllBefore_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Document/insertAllBefore_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Document/insertBefore_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Document/insertBefore_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Document/lastChild_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Document/nextNode_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Document/nodeName_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Document/nodes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Document/nodeType_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Document/nodeValue_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
+LibTest/html/Document/nodes_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
 LibTest/html/Document/on_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Document/on_A01_t02: Crash # unsupported element kind: _completer:field
-LibTest/html/Document/ownerDocument_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Document/parent_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Document/parentNode_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Document/previousNode_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Document/querySelector_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Document/querySelectorAll_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Document/readyState_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Document/removeEventListener_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Document/securityPolicy_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Document/text_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Document/window_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/html/Document/querySelectorAll_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/html/Document/removeEventListener_A01_t01: Crash # (listener): handleStaticFunctionGet: function(listener)
+LibTest/html/Document/securityPolicy_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for SecurityPolicy.
+LibTest/html/Element/Element.tag_A01_t01: Crash # unsupported element kind: Html5Elements:field
 LibTest/html/Element/abortEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/addEventListener_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/addEventListener_A01_t02: Crash # unsupported element kind: _completer:field
@@ -14208,116 +10946,52 @@
 LibTest/html/Element/addEventListener_A01_t04: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/addEventListener_A01_t05: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/addEventListener_A01_t06: Crash # unsupported element kind: _completer:field
-LibTest/html/Element/append_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/append_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/append_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/appendHtml_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/appendText_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LibTest/html/Element/attributeChanged_A01_t01: Crash # unsupported element kind: _asyncCounter:field
-LibTest/html/Element/attributes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/attributes_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/html/Element/attributes_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
 LibTest/html/Element/beforeCopyEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/beforeCutEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/beforePasteEvent_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Element/blur_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/blurEvent_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Element/borderEdge_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
+LibTest/html/Element/blur_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/changeEvent_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Element/childNodes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/childNodes_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/children_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/children_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/classes_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/className_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/click_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/clickEvent_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Element/clone_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/clone_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/clone_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/clone_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/contains_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/contains_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/contains_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/contentEdge_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/contentEditable_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/contentEditable_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/html/Element/click_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/html/Element/clone_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/html/Element/clone_A02_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
 LibTest/html/Element/contextMenuEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/copyEvent_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Element/createFragment_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/createFragment_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/createFragment_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/html/Element/createFragment_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+LibTest/html/Element/createFragment_A01_t02: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+LibTest/html/Element/createFragment_A01_t03: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
 LibTest/html/Element/cutEvent_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Element/dataset_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/dataset_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/dataset_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/dir_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/dir_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/documentOffset_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
+LibTest/html/Element/dataset_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+LibTest/html/Element/dataset_A01_t02: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+LibTest/html/Element/dataset_A02_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
 LibTest/html/Element/doubleClickEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/dragEndEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/dragEnterEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/dragEvent_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Element/draggable_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/draggable_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LibTest/html/Element/dragLeaveEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/dragOverEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/dragStartEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/dropEvent_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Element/Element_element_ctors_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/Element.html_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/Element.html_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/Element.html_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/Element.html_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/Element.html_A04_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/Element.tag_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/Element.tag_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LibTest/html/Element/enteredView_A01_t01: Crash # unsupported element kind: _asyncCounter:field
 LibTest/html/Element/errorEvent_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Element/firstChild_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/focus_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/focusEvent_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/html/Element/focus_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/fullscreenChangeEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/fullscreenErrorEvent_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Element/getAttribute_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/getAttributeNS_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/getAttributeNS_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/getBoundingClientRect_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/getBoundingClientRect_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/getClientRects_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/getClientRects_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/getElementsByClassName_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/getElementsByClassName_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/getNamespacedAttributes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/hasChildNodes_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/hidden_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/id_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/innerHtml_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/innerHtml_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/html/Element/getClientRects_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/html/Element/getNamespacedAttributes_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+LibTest/html/Element/innerHtml_A02_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
 LibTest/html/Element/inputEvent_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Element/insertAdjacentElement_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/insertAdjacentHtml_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/insertAdjacentText_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/insertAllBefore_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/insertAllBefore_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/insertBefore_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/insertBefore_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LibTest/html/Element/invalidEvent_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Element/isContentEditable_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/isContentEditable_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/isTagSupported_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/isTagSupported_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/isTagSupported_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
+LibTest/html/Element/isTagSupported_A01_t01: Crash # unsupported element kind: Html5Elements:field
 LibTest/html/Element/keyDownEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/keyPressEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/keyUpEvent_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Element/lang_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/lang_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/lastChild_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LibTest/html/Element/leftView_A01_t01: Crash # unsupported element kind: _asyncCounter:field
 LibTest/html/Element/loadEvent_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Element/marginEdge_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/matches_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/matchesWithAncestors_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
 LibTest/html/Element/mouseDownEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/mouseEnterEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/mouseLeaveEvent_A01_t01: Crash # unsupported element kind: _completer:field
@@ -14326,26 +11000,6 @@
 LibTest/html/Element/mouseOverEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/mouseUpEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/mouseWheelEvent_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Element/namespaceUri_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/nextElementSibling_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/nextNode_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/nodeName_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/nodeName_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/nodeName_A05_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/nodeName_A06_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/nodeName_A07_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/nodeName_A12_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/nodes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/nodes_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/offset_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/offsetHeight_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/offsetLeft_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/offsetParent_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/offsetTo_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/offsetTo_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/offsetTop_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/offsetWidth_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/on_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/onAbort_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/onBeforeCopy_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/onBeforeCut_A01_t01: Crash # unsupported element kind: _completer:field
@@ -14357,12 +11011,12 @@
 LibTest/html/Element/onCopy_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/onCut_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/onDoubleClick_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Element/onDrag_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/onDragEnd_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/onDragEnter_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/onDragLeave_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/onDragOver_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/onDragStart_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/html/Element/onDrag_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/onDrop_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/onError_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/onFocus_A01_t01: Crash # unsupported element kind: _completer:field
@@ -14386,8 +11040,8 @@
 LibTest/html/Element/onReset_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/onScroll_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/onSearch_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Element/onSelect_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/onSelectStart_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/html/Element/onSelect_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/onSubmit_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/onTouchCancel_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/onTouchEnd_A01_t01: Crash # unsupported element kind: _completer:field
@@ -14396,56 +11050,22 @@
 LibTest/html/Element/onTouchMove_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/onTouchStart_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/onTransitionEnd_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Element/outerHtml_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/ownerDocument_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/ownerDocument_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/ownerDocument_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/ownerDocument_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/ownerDocument_A01_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/paddingEdge_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/parent_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/parent_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/parent_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/parentNode_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/parentNode_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/parentNode_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/html/Element/on_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/pasteEvent_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Element/previousElementSibling_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/previousNode_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/query_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/queryAll_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/querySelector_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/querySelectorAll_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/querySelectorAll_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/remove_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/html/Element/queryAll_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/html/Element/querySelectorAll_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
 LibTest/html/Element/removeEventListener_A01_t01: Crash # unsupported element kind: _asyncCounter:field
 LibTest/html/Element/removeEventListener_A01_t02: Crash # unsupported element kind: _asyncCounter:field
-LibTest/html/Element/replaceWith_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/replaceWith_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LibTest/html/Element/resetEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/scrollEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/searchEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/selectEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/selectStartEvent_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Element/setAttribute_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/setAttributeNS_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/setInnerHtml_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/setInnerHtml_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/setInnerHtml_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/spellcheck_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/spellcheck_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/style_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/style_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
+LibTest/html/Element/setInnerHtml_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+LibTest/html/Element/setInnerHtml_A01_t02: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+LibTest/html/Element/setInnerHtml_A01_t03: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
 LibTest/html/Element/submitEvent_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Element/tabIndex_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/tagName_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/tagName_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/tagName_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/text_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Element/text_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/text_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/text_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Element/title_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/html/Element/tagName_A01_t01: Crash # unsupported element kind: Html5Elements:field
 LibTest/html/Element/touchCancelEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/touchEndEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/touchEnterEvent_A01_t01: Crash # unsupported element kind: _completer:field
@@ -14453,144 +11073,66 @@
 LibTest/html/Element/touchMoveEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/touchStartEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Element/transitionEndEvent_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Element/translate_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Event/bubbles_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Event/cancelable_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Event/currentTarget_A01_t01: Crash # unsupported element kind: _asyncCounter:field
-LibTest/html/Event/defaultPrevented_A01_t01: Crash # unsupported element kind: _asyncCounter:field
 LibTest/html/Event/Event_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Event/Event_A01_t02: Crash # unsupported element kind: _completer:field
-LibTest/html/Event/Event_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Event/Event_A01_t04: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Event/Event.eventType_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/html/Event/currentTarget_A01_t01: Crash # unsupported element kind: _asyncCounter:field
+LibTest/html/Event/defaultPrevented_A01_t01: Crash # unsupported element kind: _asyncCounter:field
 LibTest/html/Event/eventPhase_A01_t01: Crash # unsupported element kind: _asyncCounter:field
 LibTest/html/Event/matchingTarget_A01_t01: Crash # unsupported element kind: _asyncCounter:field
 LibTest/html/Event/matchingTarget_A01_t02: Crash # unsupported element kind: _asyncCounter:field
-LibTest/html/Event/preventDefault_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
 LibTest/html/Event/stopImmediatePropagation_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Event/stopImmediatePropagation_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
+LibTest/html/Event/stopImmediatePropagation_A01_t02: Crash # unsupported element kind: _completer:field
 LibTest/html/Event/stopPropagation_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Event/target_A01_t01: Crash # unsupported element kind: _asyncCounter:field
-LibTest/html/Event/type_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LibTest/html/HttpRequest/abort_A01_t01: Crash #  Unhandled node
 LibTest/html/HttpRequest/addEventListener_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/HttpRequest/dispatchEvent_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/HttpRequest/getAllResponseHeaders_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/HttpRequest/getResponseHeader_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/HttpRequest/getString_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/HttpRequest/HttpRequest_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/html/HttpRequest/getAllResponseHeaders_A01_t01: Crash #  Unhandled node
+LibTest/html/HttpRequest/getResponseHeader_A01_t01: Crash #  Unhandled node
+LibTest/html/HttpRequest/getString_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/HttpRequest/onAbort_A01_t01: Crash # unsupported element kind: _asyncCounter:field
 LibTest/html/HttpRequest/onError_A01_t02: Crash # unsupported element kind: _completer:field
-LibTest/html/HttpRequest/onLoad_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LibTest/html/HttpRequest/onLoadEnd_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/HttpRequest/onLoadStart_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/html/HttpRequest/onLoad_A01_t01: Crash #  Unhandled node
 LibTest/html/HttpRequest/onReadyStateChange_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/HttpRequest/open_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/HttpRequest/overrideMimeType_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/HttpRequest/readyStateChangeEvent_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/HttpRequest/removeEventListener_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/HttpRequest/request_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/HttpRequest/responseText_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/HttpRequest/responseText_A01_t02: Crash # (r): Error expression `r` unhandled.
-LibTest/html/HttpRequest/responseType_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/HttpRequest/responseType_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/HttpRequest/setRequestHeader_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/HttpRequest/status_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/html/HttpRequest/overrideMimeType_A01_t01: Crash #  Unhandled node
+LibTest/html/HttpRequest/readyStateChangeEvent_A01_t01: Crash #  Unhandled node
+LibTest/html/HttpRequest/request_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/html/HttpRequest/responseText_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/html/HttpRequest/responseText_A01_t02: Crash # unsupported element kind: _completer:field
+LibTest/html/HttpRequest/setRequestHeader_A01_t01: Crash #  Unhandled node
 LibTest/html/HttpRequest/statusText_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/html/HttpRequest/status_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/HttpRequestUpload/onAbort_A01_t01: Crash # unsupported element kind: _asyncCounter:field
 LibTest/html/HttpRequestUpload/onError_A01_t02: Crash # unsupported element kind: _completer:field
-LibTest/html/HttpRequestUpload/onLoad_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LibTest/html/HttpRequestUpload/onLoadEnd_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/HttpRequestUpload/onLoadStart_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/html/HttpRequestUpload/onLoad_A01_t01: Crash #  Unhandled node
 LibTest/html/IFrameElement/addEventListener_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/addEventListener_A01_t02: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/addEventListener_A01_t03: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/addEventListener_A01_t04: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/addEventListener_A01_t05: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/addEventListener_A01_t06: Crash # unsupported element kind: _completer:field
-LibTest/html/IFrameElement/append_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/append_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/append_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/appendHtml_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/appendHtml_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/appendText_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LibTest/html/IFrameElement/attributeChanged_A01_t01: Crash # unsupported element kind: _asyncCounter:field
-LibTest/html/IFrameElement/attributes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/attributes_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/attributes_setter_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/html/IFrameElement/attributes_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
 LibTest/html/IFrameElement/blur_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/IFrameElement/borderEdge_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/childNodes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/childNodes_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/children_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/children_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/children_setter_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/classes_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/IFrameElement/classes_setter_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/IFrameElement/className_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LibTest/html/IFrameElement/click_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/IFrameElement/clone_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/clone_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/clone_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/clone_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/IFrameElement/contains_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/IFrameElement/contains_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/IFrameElement/contentEdge_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/html/IFrameElement/clone_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/html/IFrameElement/clone_A02_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
 LibTest/html/IFrameElement/contentWindow_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/IFrameElement/createFragment_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/IFrameElement/createFragment_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/createFragment_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/createShadowRoot_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/dataset_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/dataset_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/dataset_setter_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/html/IFrameElement/createFragment_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+LibTest/html/IFrameElement/createFragment_A01_t02: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+LibTest/html/IFrameElement/createFragment_A01_t03: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+LibTest/html/IFrameElement/dataset_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+LibTest/html/IFrameElement/dataset_A01_t02: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+LibTest/html/IFrameElement/dataset_setter_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
 LibTest/html/IFrameElement/dispatchEvent_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/IFrameElement/documentOffset_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/IFrameElement/draggable_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/IFrameElement/draggable_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LibTest/html/IFrameElement/enteredView_A01_t01: Crash # unsupported element kind: _asyncCounter:field
-LibTest/html/IFrameElement/firstChild_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LibTest/html/IFrameElement/focus_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/IFrameElement/getAttribute_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/getAttributeNS_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/getBoundingClientRect_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/getClientRects_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/getClientRects_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/IFrameElement/getElementsByClassName_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/getElementsByClassName_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/getNamespacedAttributes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/hasChildNodes_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/IFrameElement/hasChildNodes_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/IFrameElement/hidden_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/IFrameElement/id_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/IFrameElement.created_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/innerHtml_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/insertAdjacentElement_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/insertAdjacentHtml_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/insertAdjacentText_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/insertAllBefore_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/insertAllBefore_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/insertBefore_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/insertBefore_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/isContentEditable_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/IFrameElement/lang_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/lang_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/lastChild_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/html/IFrameElement/getClientRects_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
 LibTest/html/IFrameElement/leftView_A01_t01: Crash # unsupported element kind: _asyncCounter:field
-LibTest/html/IFrameElement/marginEdge_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/matches_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/IFrameElement/matchesWithAncestors_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/IFrameElement/namespaceUri_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/nextElementSibling_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/nextNode_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/nodeName_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/nodes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/nodes_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/nodes_setter_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/nodeType_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/nodeValue_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/IFrameElement/offsetTo_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/on_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/onAbort_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/onBeforeCopy_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/onBeforeCut_A01_t01: Crash # unsupported element kind: _completer:field
@@ -14602,12 +11144,12 @@
 LibTest/html/IFrameElement/onCopy_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/onCut_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/onDoubleClick_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/IFrameElement/onDrag_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/onDragEnd_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/onDragEnter_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/onDragLeave_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/onDragOver_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/onDragStart_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/html/IFrameElement/onDrag_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/onDrop_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/onError_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/onFocus_A01_t01: Crash # unsupported element kind: _completer:field
@@ -14631,8 +11173,8 @@
 LibTest/html/IFrameElement/onReset_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/onScroll_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/onSearch_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/IFrameElement/onSelect_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/onSelectStart_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/html/IFrameElement/onSelect_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/onSubmit_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/onTouchCancel_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/onTouchEnd_A01_t01: Crash # unsupported element kind: _completer:field
@@ -14641,2635 +11183,405 @@
 LibTest/html/IFrameElement/onTouchMove_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/onTouchStart_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/onTransitionEnd_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/IFrameElement/outerHtml_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/ownerDocument_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/ownerDocument_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/ownerDocument_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/ownerDocument_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/ownerDocument_A01_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/paddingEdge_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/parent_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/parent_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/IFrameElement/parentNode_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/previousElementSibling_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/previousNode_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/querySelector_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/remove_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/html/IFrameElement/on_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/removeEventListener_A01_t01: Crash # unsupported element kind: _asyncCounter:field
 LibTest/html/IFrameElement/removeEventListener_A01_t02: Crash # unsupported element kind: _asyncCounter:field
-LibTest/html/IFrameElement/replaceWith_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LibTest/html/IFrameElement/resetEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/scrollEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/searchEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/selectEvent_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/IFrameElement/selectStartEvent_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/IFrameElement/setAttribute_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/setAttributeNS_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/setInnerHtml_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/IFrameElement/spellcheck_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/IFrameElement/spellcheck_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/style_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/style_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/tabIndex_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/tagName_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/tagName_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/tagName_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/text_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/text_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/text_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/text_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/text_setter_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/title_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/IFrameElement/translate_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
+LibTest/html/IFrameElement/setInnerHtml_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
 LibTest/html/Node/addEventListener_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Node/addEventListener_A01_t02: Crash # unsupported element kind: _completer:field
 LibTest/html/Node/addEventListener_A01_t03: Crash # unsupported element kind: _completer:field
 LibTest/html/Node/addEventListener_A01_t04: Crash # unsupported element kind: _completer:field
 LibTest/html/Node/addEventListener_A01_t05: Crash # unsupported element kind: _completer:field
-LibTest/html/Node/append_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Node/append_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Node/append_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Node/childNodes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Node/childNodes_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Node/clone_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Node/clone_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Node/contains_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Node/contains_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
+LibTest/html/Node/childNodes_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
 LibTest/html/Node/dispatchEvent_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Node/firstChild_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Node/hasChildNodes_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Node/lastChild_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Node/nextNode_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Node/nodes_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Node/nodes_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Node/nodeType_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Node/nodeType_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Node/nodeType_A05_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Node/nodeType_A06_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Node/nodeType_A07_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Node/nodeType_A12_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Node/nodeValue_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Node/nodeValue_A04_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Node/nodeValue_A05_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Node/nodeValue_A06_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Node/nodeValue_A07_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Node/nodeValue_A12_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LibTest/html/Node/on_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Node/ownerDocument_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Node/parent_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Node/parentNode_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Node/previousNode_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Node/remove_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/html/Node/ownerDocument_A01_t01: Crash # unsupported element kind: d:field
 LibTest/html/Node/removeEventListener_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Node/removeEventListener_A01_t02: Crash # unsupported element kind: _completer:field
-LibTest/html/Node/replaceWith_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LibTest/html/Window/addEventListener_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Window/animationFrame_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Window/close_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
+LibTest/html/Window/animationFrame_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/html/Window/dispatchEvent_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Window/document_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Window/find_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Window/find_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Window/find_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Window/find_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Window/find_A03_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Window/find_A04_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Window/find_A05_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Window/find_A06_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Window/find_A07_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Window/moveBy_A01_t01: Crash #  not exactly one catch block
-LibTest/html/Window/moveTo_A01_t01: Crash #  not exactly one catch block
-LibTest/html/Window/moveTo_A02_t01: Crash #  not exactly one catch block
-LibTest/html/Window/open_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/html/Window/moveBy_A01_t01: Crash #  try/finally
+LibTest/html/Window/moveTo_A01_t01: Crash #  try/finally
+LibTest/html/Window/moveTo_A02_t01: Crash #  try/finally
 LibTest/html/Window/postMessage_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/html/Window/postMessage_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/html/Window/removeEventListener_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Window/requestFileSystem_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Window/requestFileSystem_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Window/requestFileSystem_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/html/Window/resizeBy_A01_t01: Crash #  not exactly one catch block
-LibTest/html/Window/resizeTo_A01_t01: Crash #  not exactly one catch block
-LibTest/isolate/Isolate/spawn_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/isolate/Isolate/spawn_A01_t02: Crash # unsupported element kind: _completer:field
-LibTest/isolate/Isolate/spawn_A01_t03: Crash # unsupported element kind: _completer:field
-LibTest/isolate/Isolate/spawn_A01_t04: Crash # unsupported element kind: _completer:field
-LibTest/isolate/Isolate/spawn_A01_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/isolate/Isolate/spawn_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/isolate/Isolate/spawn_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/isolate/Isolate/spawnUri_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/html/Window/postMessage_A01_t02: Crash # unsupported element kind: _completer:field
+LibTest/html/Window/removeEventListener_A01_t01: Crash # (listener): handleStaticFunctionGet: function(listener)
+LibTest/html/Window/requestFileSystem_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/html/Window/requestFileSystem_A01_t02: Crash # unsupported element kind: _completer:field
+LibTest/html/Window/requestFileSystem_A02_t01: Crash # unsupported element kind: _completer:field
+LibTest/html/Window/resizeBy_A01_t01: Crash #  try/finally
+LibTest/html/Window/resizeTo_A01_t01: Crash #  try/finally
+LibTest/isolate/Isolate/spawnUri_A01_t01: Crash # (receiveHandler): handleStaticFunctionGet: function(receiveHandler)
 LibTest/isolate/Isolate/spawnUri_A01_t02: Crash # unsupported element kind: _completer:field
-LibTest/isolate/Isolate/spawnUri_A01_t03: Crash # unsupported element kind: _completer:field
+LibTest/isolate/Isolate/spawnUri_A01_t03: Crash # (receiveHandler): handleStaticFunctionGet: function(receiveHandler)
 LibTest/isolate/Isolate/spawnUri_A01_t04: Crash # unsupported element kind: _completer:field
-LibTest/isolate/Isolate/spawnUri_A01_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/isolate/Isolate/spawnUri_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/isolate/Isolate/spawnUri_A01_t05: Crash # unsupported element kind: _completer:field
 LibTest/isolate/Isolate/spawnUri_A02_t02: Crash # unsupported element kind: _completer:field
 LibTest/isolate/Isolate/spawnUri_A02_t03: Crash # unsupported element kind: _completer:field
 LibTest/isolate/Isolate/spawnUri_A02_t04: Crash # unsupported element kind: _completer:field
-LibTest/isolate/RawReceivePort/close_A01_t01: Crash # unsupported element kind: receivePort:field
-LibTest/isolate/RawReceivePort/handler_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/isolate/RawReceivePort/RawReceivePort_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/isolate/RawReceivePort/RawReceivePort_A01_t02: Crash # unsupported element kind: receivePort:field
-LibTest/isolate/RawReceivePort/sendPort_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/isolate/Isolate/spawn_A01_t01: Crash # (iMain): handleStaticFunctionGet: function(iMain)
+LibTest/isolate/Isolate/spawn_A01_t02: Crash # (iMain): handleStaticFunctionGet: function(iMain)
+LibTest/isolate/Isolate/spawn_A01_t03: Crash # (iMain): handleStaticFunctionGet: function(iMain)
+LibTest/isolate/Isolate/spawn_A01_t04: Crash # (iMain): handleStaticFunctionGet: function(iMain)
+LibTest/isolate/Isolate/spawn_A01_t05: Crash # (iMain): handleStaticFunctionGet: function(iMain)
+LibTest/isolate/RawReceivePort/RawReceivePort_A01_t01: Crash # (iMain): handleStaticFunctionGet: function(iMain)
+LibTest/isolate/RawReceivePort/RawReceivePort_A01_t02: Crash # (iMain): handleStaticFunctionGet: function(iMain)
+LibTest/isolate/RawReceivePort/close_A01_t01: Crash # (iMain): handleStaticFunctionGet: function(iMain)
+LibTest/isolate/RawReceivePort/handler_A01_t01: Crash # (iMain): handleStaticFunctionGet: function(iMain)
+LibTest/isolate/RawReceivePort/sendPort_A01_t01: Crash # (iMain): handleStaticFunctionGet: function(iMain)
+LibTest/isolate/ReceivePort/ReceivePort.fromRawReceivePort_A02_t01: Crash # (receiveHandler): handleStaticFunctionGet: function(receiveHandler)
 LibTest/isolate/ReceivePort/any_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/any_A01_t02: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/asBroadcastStream_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/isolate/ReceivePort/asBroadcastStream_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/isolate/ReceivePort/asBroadcastStream_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
+LibTest/isolate/ReceivePort/asBroadcastStream_A01_t02: Crash # (iMain): handleStaticFunctionGet: function(iMain)
+LibTest/isolate/ReceivePort/asBroadcastStream_A01_t03: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/asBroadcastStream_A01_t04: Crash # unsupported element kind: _completer:field
-LibTest/isolate/ReceivePort/asBroadcastStream_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/isolate/ReceivePort/asBroadcastStream_A03_t02: Crash # unsupported element kind: _completer:field
-LibTest/isolate/ReceivePort/asBroadcastStream_A03_t03: Crash # unsupported element kind: _completer:field
+LibTest/isolate/ReceivePort/asBroadcastStream_A03_t01: Crash # unsupported element kind: _completer:field
+LibTest/isolate/ReceivePort/asBroadcastStream_A03_t02: Crash # (f): handleStaticFunctionGet: function(f)
+LibTest/isolate/ReceivePort/asBroadcastStream_A03_t03: Crash # (f): handleStaticFunctionGet: function(f)
 LibTest/isolate/ReceivePort/asBroadcastStream_A04_t01: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/asBroadcastStream_A04_t02: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/asBroadcastStream_A04_t03: Crash # unsupported element kind: _completer:field
-LibTest/isolate/ReceivePort/close_A01_t01: Crash # unsupported element kind: receivePort:field
-LibTest/isolate/ReceivePort/close_A02_t01: Crash # unsupported element kind: receivePort:field
+LibTest/isolate/ReceivePort/close_A01_t01: Crash # (receiveHandler): handleStaticFunctionGet: function(receiveHandler)
+LibTest/isolate/ReceivePort/close_A02_t01: Crash # (receiveHandler): handleStaticFunctionGet: function(receiveHandler)
 LibTest/isolate/ReceivePort/contains_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/distinct_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/isolate/ReceivePort/distinct_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
+LibTest/isolate/ReceivePort/distinct_A01_t02: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/drain_A02_t01: Crash # Please triage this failure.
 LibTest/isolate/ReceivePort/drain_A02_t02: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/elementAt_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/isolate/ReceivePort/elementAt_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/isolate/ReceivePort/elementAt_A03_t01: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/every_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/expand_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/isolate/ReceivePort/first_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/isolate/ReceivePort/first_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/isolate/ReceivePort/first_A02_t02: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/firstWhere_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/firstWhere_A02_t01: Crash # unsupported element kind: _completer:field
-LibTest/isolate/ReceivePort/firstWhere_A03_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/isolate/ReceivePort/firstWhere_A03_t02: Crash # unsupported element kind: _completer:field
+LibTest/isolate/ReceivePort/first_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/isolate/ReceivePort/first_A02_t01: Crash # unsupported element kind: _completer:field
+LibTest/isolate/ReceivePort/first_A02_t02: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/fold_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/fold_A01_t02: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/forEach_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/isolate/ReceivePort/isBroadcast_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/isolate/ReceivePort/isBroadcast_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
 LibTest/isolate/ReceivePort/isEmpty_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/join_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/join_A01_t02: Crash # unsupported element kind: _completer:field
-LibTest/isolate/ReceivePort/last_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/isolate/ReceivePort/last_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LibTest/isolate/ReceivePort/lastWhere_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/lastWhere_A02_t01: Crash # unsupported element kind: _completer:field
-LibTest/isolate/ReceivePort/lastWhere_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/isolate/ReceivePort/lastWhere_A04_t01: Crash # unsupported element kind: _completer:field
+LibTest/isolate/ReceivePort/last_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/isolate/ReceivePort/last_A02_t01: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/length_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/listen_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/map_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/pipe_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/isolate/ReceivePort/ReceivePort_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/isolate/ReceivePort/ReceivePort.fromRawReceivePort_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/isolate/ReceivePort/ReceivePort.fromRawReceivePort_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 LibTest/isolate/ReceivePort/reduce_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/reduce_A01_t02: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/reduce_A01_t03: Crash # unsupported element kind: _completer:field
-LibTest/isolate/ReceivePort/sendPort_A01_t01: Crash # (Expect): Error expression `Expect` unhandled.
-LibTest/isolate/ReceivePort/single_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/isolate/ReceivePort/single_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/isolate/ReceivePort/sendPort_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/singleWhere_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/singleWhere_A02_t01: Crash # unsupported element kind: _completer:field
-LibTest/isolate/ReceivePort/skip_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
+LibTest/isolate/ReceivePort/single_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/isolate/ReceivePort/single_A02_t01: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/skipWhile_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/isolate/ReceivePort/take_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/isolate/ReceivePort/take_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/isolate/ReceivePort/take_A01_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/isolate/ReceivePort/skip_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/takeWhile_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/isolate/ReceivePort/take_A01_t01: Crash # unsupported element kind: _completer:field
+LibTest/isolate/ReceivePort/take_A01_t02: Crash # Instance of 'TypeOperator': type casts not implemented.
+LibTest/isolate/ReceivePort/take_A01_t03: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/toList_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/toSet_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/transform_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/transform_A01_t02: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/where_A01_t01: Crash # unsupported element kind: _completer:field
 LibTest/isolate/ReceivePort/where_A01_t02: Crash # unsupported element kind: _completer:field
-LibTest/isolate/SendPort/hashCode_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/isolate/SendPort/operator_equality_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/isolate/SendPort/send_A01_t01: Crash # unsupported element kind: _completer:field
-LibTest/isolate/SendPort/send_A01_t02: Crash # unsupported element kind: _completer:field
-LibTest/isolate/SendPort/send_A01_t03: Crash # unsupported element kind: _completer:field
-LibTest/isolate/SendPort/send_A01_t04: Crash # unsupported element kind: _completer:field
-LibTest/isolate/SendPort/send_A02_t01: Crash # unsupported element kind: _completer:field
-LibTest/math/acos_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/acos_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/acos_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/asin_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/asin_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/asin_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/atan2_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/atan2_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/atan2_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/atan2_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/atan2_A04_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/atan2_A05_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/atan_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/atan_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/atan_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/atan_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/cos_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/cos_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/cos_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/exp_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/exp_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/exp_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/exp_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/log_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/log_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/log_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/log_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/max_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/max_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/max_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/min_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/min_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/min_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/MutableRectangle/boundingBox_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/MutableRectangle/boundingBox_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/MutableRectangle/containsPoint_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/MutableRectangle/containsRectangle_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/MutableRectangle/intersection_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/MutableRectangle/intersects_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/MutableRectangle/MutableRectangle_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/MutableRectangle/MutableRectangle.fromPoints_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/MutableRectangle/operator_equality_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/MutableRectangle/operator_equality_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/MutableRectangle/operator_equality_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/MutableRectangle/operator_equality_A04_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/Point/distanceTo_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/Point/magnitude_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/Point/operator_addition_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/Point/operator_addition_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/Point/operator_equality_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/Point/operator_equality_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/Point/operator_equality_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/Point/operator_equality_A04_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/Point/operator_mult_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/Point/operator_mult_A02_t01: Crash #  "on T" catch block
-LibTest/math/Point/operator_mult_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/Point/operator_subtraction_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/Point/operator_subtraction_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/Point/Point_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/Point/squaredDistanceTo_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/Point/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/pow_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/pow_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/pow_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/pow_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/pow_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/pow_A05_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/pow_A06_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/pow_A07_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/pow_A08_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/pow_A09_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/pow_A10_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/pow_A11_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/pow_A12_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/pow_A13_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/pow_A14_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/pow_A15_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/pow_A16_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/pow_A17_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/Random/nextBool_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/Random/nextDouble_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/Random/nextInt_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/Random/Random_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/Rectangle/boundingBox_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/Rectangle/boundingBox_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/Rectangle/containsPoint_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/Rectangle/containsRectangle_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/Rectangle/intersection_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/Rectangle/intersects_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/Rectangle/operator_equality_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/Rectangle/operator_equality_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/Rectangle/operator_equality_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/Rectangle/operator_equality_A04_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/Rectangle/Rectangle_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/Rectangle/Rectangle.fromPoints_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/sin_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/sin_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/sin_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/sin_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/sqrt_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/sqrt_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/sqrt_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/sqrt_A02_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/sqrt_A02_t03: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/sqrt_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/math/tan_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/tan_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/math/tan_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteBuffer/hashCode_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/ByteBuffer/hashCode_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteBuffer/lengthInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteBuffer/lengthInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteBuffer/operator_equality_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/ByteBuffer/runtimeType_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteBuffer/runtimeType_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteBuffer/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/buffer_A01_t01: Crash # (Expect.equal(byteBuffer,l.buffer)): Error expression `Expect.equal(byteBuffer,l.buffer)` unhandled.
-LibTest/typed_data/ByteData/buffer_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/ByteData_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/ByteData_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/ByteData_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/ByteData.view_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/ByteData.view_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/ByteData.view_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/ByteData.view_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/ByteData.view_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/ByteData.view_A05_t01: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/ByteData.view_A05_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/ByteData.view_A05_t03: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/elementSizeInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/elementSizeInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/getFloat32_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/ByteData/getFloat32_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/getFloat32_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/getFloat64_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/ByteData/getFloat64_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/getFloat64_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/getInt16_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/getInt16_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/getInt16_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/getInt32_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/getInt32_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/getInt32_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/getInt64_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/getInt64_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/getInt64_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/getInt8_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/getInt8_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/getInt8_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/getUint16_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/getUint16_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/getUint16_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/getUint32_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/getUint32_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/getUint32_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/getUint64_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/getUint64_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/getUint64_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/getUint8_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/getUint8_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/getUint8_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/hashCode_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/ByteData/hashCode_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/lengthInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/lengthInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/offsetInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/offsetInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/operator_equality_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/ByteData/runtimeType_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/runtimeType_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/setFloat32_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/ByteData/setFloat32_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/setFloat32_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/setFloat64_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/ByteData/setFloat64_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/setFloat64_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/setInt16_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/setInt16_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/setInt16_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/setInt32_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/setInt32_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/setInt32_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/setInt64_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/setInt64_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/setInt64_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/setInt8_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/setInt8_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/setInt8_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/setUint16_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/setUint16_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/setUint16_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/setUint32_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/setUint32_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/setUint32_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/setUint64_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/setUint64_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/setUint64_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/setUint8_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/ByteData/setUint8_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/setUint8_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/ByteData/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/add_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/addAll_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/any_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32List/asMap_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32List/asMap_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/asMap_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/buffer_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/buffer_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/clear_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/contains_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32List/elementAt_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/elementAt_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/elementSizeInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/elementSizeInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/every_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32List/expand_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/fillRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/fillRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/first_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/first_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/first_A02_t01: Crash # (try {l.first;Expect.fail("StateError is expected");}on StateError catch (ok){}): "on T" catch block
-LibTest/typed_data/Float32List/first_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/firstWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/firstWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/firstWhere_A03_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/Float32List_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/Float32List_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/Float32List_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/Float32List.fromList_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/Float32List.fromList_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/Float32List.view_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/Float32List.view_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/Float32List.view_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/Float32List.view_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/Float32List.view_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/Float32List.view_A05_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/Float32List.view_A05_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/Float32List.view_A05_t03: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/Float32List.view_A06_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/fold_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/forEach_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/getRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/getRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/getRange_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/getRange_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/hashCode_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32List/hashCode_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/indexOf_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/indexOf_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/indexOf_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/indexOf_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/insert_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/insertAll_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/isEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32List/isEmpty_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/isNotEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32List/isNotEmpty_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/iterator_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/iterator_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/iterator_current_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/iterator_moveNext_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32List/join_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32List/join_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32List/last_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/last_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/last_A02_t01: Crash # (try {l.last;Expect.fail("StateError is expected");}on StateError catch (ok){}): "on T" catch block
-LibTest/typed_data/Float32List/lastIndexOf_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/lastIndexOf_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/lastIndexOf_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/lastIndexOf_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/lastWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/lastWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/lastWhere_A03_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/length_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/length_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/lengthInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/lengthInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/map_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/map_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32List/map_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/offsetInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/offsetInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/operator_equality_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32List/operator_subscript_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32List/operator_subscript_A02_t01: Crash # (try {l[-1];Expect.fail("RangeError is expected");}on RangeError catch (ok){}): "on T" catch block
-LibTest/typed_data/Float32List/operator_subscripted_assignment_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32List/operator_subscripted_assignment_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/reduce_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/reduce_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/remove_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/removeAt_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/removeLast_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/removeRange_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/removeWhere_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/replaceRange_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/retainWhere_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/reversed_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/reversed_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/runtimeType_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/runtimeType_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/setAll_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/setAll_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/setAll_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/setRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/setRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/setRange_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/setRange_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/single_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/single_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/single_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/single_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/singleWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/singleWhere_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/singleWhere_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/skip_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/skip_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32List/skip_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/skipWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/skipWhile_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/skipWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/skipWhile_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/sort_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/sublist_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/sublist_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/sublist_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/sublist_A03_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/take_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/take_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/take_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/takeWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/takeWhile_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/takeWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/takeWhile_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/toList_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/toList_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32List/toList_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/toSet_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32List/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/where_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/where_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32List/where_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4/abs_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4/clamp_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4/clamp_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4/Float32x4_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4/Float32x4_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4/Float32x4.fromInt32x4Bits_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4/Float32x4.fromInt32x4Bits_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4/Float32x4.splat_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4/Float32x4.splat_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4/Float32x4.zero_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/add_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/addAll_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/any_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/asMap_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/asMap_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/asMap_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/buffer_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/buffer_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/clear_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/contains_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/elementAt_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/elementAt_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/elementSizeInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/elementSizeInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/every_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/expand_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/fillRange_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/fillRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/first_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/first_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/first_A02_t01: Crash # (try {l.first;Expect.fail("StateError is expected");}on StateError catch (ok){}): "on T" catch block
-LibTest/typed_data/Float32x4List/first_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/firstWhere_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/firstWhere_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/firstWhere_A03_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/Float32x4List_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/Float32x4List_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/Float32x4List_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/Float32x4List.fromList_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/Float32x4List.fromList_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/Float32x4List.view_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/Float32x4List.view_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/Float32x4List.view_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/Float32x4List.view_A03_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/Float32x4List.view_A04_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/Float32x4List.view_A05_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/Float32x4List.view_A05_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/Float32x4List.view_A05_t03: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/Float32x4List.view_A06_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/fold_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/forEach_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/getRange_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/getRange_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/getRange_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/getRange_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/hashCode_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/hashCode_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/indexOf_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/indexOf_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/insert_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/insertAll_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/isEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/isEmpty_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/isNotEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/isNotEmpty_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/iterator_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/iterator_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/iterator_current_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/iterator_moveNext_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/join_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/join_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/last_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/last_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/last_A02_t01: Crash # (try {l.last;Expect.fail("StateError is expected");}on StateError catch (ok){}): "on T" catch block
-LibTest/typed_data/Float32x4List/lastIndexOf_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/lastIndexOf_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/lastWhere_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/lastWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/lastWhere_A03_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/length_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/length_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/lengthInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/lengthInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/map_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/map_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/map_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/offsetInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/offsetInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/operator_equality_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/operator_subscript_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/operator_subscript_A02_t01: Crash # (try {l[-1];Expect.fail("RangeError is expected");}on RangeError catch (ok){}): "on T" catch block
-LibTest/typed_data/Float32x4List/operator_subscripted_assignment_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/operator_subscripted_assignment_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/reduce_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/reduce_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/remove_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/removeAt_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/removeLast_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/removeRange_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/removeWhere_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/replaceRange_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/retainWhere_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/reversed_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/reversed_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/runtimeType_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/runtimeType_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/setAll_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/setAll_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/setAll_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/setRange_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/setRange_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/setRange_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/setRange_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/single_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/single_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/single_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/single_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/singleWhere_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/singleWhere_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/singleWhere_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/skip_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/skip_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/skip_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/skipWhile_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/skipWhile_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/skipWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/skipWhile_A04_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/sort_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/sublist_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/sublist_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/sublist_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/sublist_A03_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/take_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/take_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/take_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/takeWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/takeWhile_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/takeWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/takeWhile_A04_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/toList_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/toList_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4List/toList_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/toSet_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4List/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/where_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/where_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4List/where_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4/max_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4/min_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4/operator_addition_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4/operator_division_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4/operator_division_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4/operator_multiplication_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4/operator_subtraction_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4/operator_unary_minus_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4/reciprocal_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4/reciprocalSqrt_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4/scale_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4/shuffle_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4/shuffleMix_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float32x4/sqrt_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4/w_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4/w_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4/withW_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4/withX_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4/withY_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4/withZ_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4/x_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4/x_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4/y_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4/y_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float32x4/z_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float32x4/z_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/add_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/addAll_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/any_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float64List/asMap_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float64List/asMap_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/asMap_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/buffer_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/buffer_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/clear_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/contains_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float64List/elementAt_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/elementAt_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/elementSizeInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/elementSizeInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/every_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float64List/expand_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/fillRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/fillRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/first_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/first_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/first_A02_t01: Crash # (try {l.first;Expect.fail("StateError is expected");}on StateError catch (ok){}): "on T" catch block
-LibTest/typed_data/Float64List/first_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/firstWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/firstWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/firstWhere_A03_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/Float64List_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/Float64List_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/Float64List_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/Float64List.fromList_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/Float64List.fromList_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/Float64List.view_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/Float64List.view_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/Float64List.view_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/Float64List.view_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/Float64List.view_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/Float64List.view_A05_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/Float64List.view_A05_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/Float64List.view_A05_t03: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/Float64List.view_A06_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/fold_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/forEach_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/getRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/getRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/getRange_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/getRange_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/hashCode_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float64List/hashCode_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/indexOf_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/indexOf_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/indexOf_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/indexOf_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/insert_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/insertAll_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/isEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float64List/isEmpty_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/isNotEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float64List/isNotEmpty_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/iterator_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/iterator_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/iterator_current_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/iterator_moveNext_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float64List/join_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float64List/join_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float64List/last_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/last_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/last_A02_t01: Crash # (try {l.last;Expect.fail("StateError is expected");}on StateError catch (ok){}): "on T" catch block
-LibTest/typed_data/Float64List/lastIndexOf_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/lastIndexOf_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/lastIndexOf_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/lastIndexOf_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/lastWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/lastWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/lastWhere_A03_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/length_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/length_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/lengthInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/lengthInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/map_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/map_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float64List/map_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/offsetInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/offsetInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/operator_equality_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float64List/operator_subscript_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float64List/operator_subscript_A02_t01: Crash # (try {l[-1];Expect.fail("RangeError is expected");}on RangeError catch (ok){}): "on T" catch block
-LibTest/typed_data/Float64List/operator_subscripted_assignment_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float64List/operator_subscripted_assignment_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/reduce_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/reduce_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/remove_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/removeAt_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/removeLast_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/removeRange_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/removeWhere_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/replaceRange_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/retainWhere_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/reversed_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/reversed_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/runtimeType_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/runtimeType_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/setAll_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/setAll_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/setAll_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/setRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/setRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/setRange_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/setRange_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/single_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/single_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/single_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/single_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/singleWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/singleWhere_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/singleWhere_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/skip_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/skip_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float64List/skip_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/skipWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/skipWhile_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/skipWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/skipWhile_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/sort_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/sublist_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/sublist_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/sublist_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/sublist_A03_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/take_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/take_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/take_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/takeWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/takeWhile_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/takeWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/takeWhile_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/toList_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/toList_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Float64List/toList_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/toSet_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Float64List/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/where_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/where_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Float64List/where_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/add_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/addAll_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/any_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int16List/asMap_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int16List/asMap_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/asMap_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/buffer_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/buffer_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/clear_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/contains_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int16List/elementAt_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/elementAt_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/elementSizeInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/elementSizeInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/every_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int16List/expand_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/fillRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/fillRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/first_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/first_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/first_A02_t01: Crash # (try {l.first;Expect.fail("StateError is expected");}on StateError catch (ok){}): "on T" catch block
-LibTest/typed_data/Int16List/first_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/firstWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/firstWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/firstWhere_A03_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/fold_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/forEach_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/getRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/getRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/getRange_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/getRange_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/hashCode_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int16List/hashCode_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/indexOf_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/indexOf_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/indexOf_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/indexOf_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/insert_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/insertAll_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/Int16List_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/Int16List_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/Int16List_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/Int16List.fromList_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/Int16List.fromList_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/Int16List.view_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/Int16List.view_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/Int16List.view_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/Int16List.view_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/Int16List.view_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/Int16List.view_A05_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/Int16List.view_A05_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/Int16List.view_A05_t03: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/Int16List.view_A06_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/isEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int16List/isEmpty_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/isNotEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int16List/isNotEmpty_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/iterator_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/iterator_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/iterator_current_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/iterator_moveNext_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int16List/join_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int16List/join_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int16List/last_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/last_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/last_A02_t01: Crash # (try {l.last;Expect.fail("StateError is expected");}on StateError catch (ok){}): "on T" catch block
-LibTest/typed_data/Int16List/lastIndexOf_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/lastIndexOf_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/lastIndexOf_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/lastIndexOf_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/lastWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/lastWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/lastWhere_A03_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/length_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/length_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/lengthInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/lengthInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/map_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/map_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int16List/map_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/offsetInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/offsetInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/operator_equality_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int16List/operator_subscript_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int16List/operator_subscript_A02_t01: Crash # (try {l[-1];Expect.fail("RangeError is expected");}on RangeError catch (ok){}): "on T" catch block
-LibTest/typed_data/Int16List/operator_subscripted_assignment_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int16List/operator_subscripted_assignment_A02_t01: Crash # (try {l[-1]=1;Expect.fail("RangeError is expected");}on RangeError catch (ok){}): "on T" catch block
-LibTest/typed_data/Int16List/reduce_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/reduce_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/remove_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/removeAt_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/removeLast_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/removeRange_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/removeWhere_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/replaceRange_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/retainWhere_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/reversed_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/reversed_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/runtimeType_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/runtimeType_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/setAll_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/setAll_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/setAll_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/setRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/setRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/setRange_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/setRange_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/single_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/single_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/single_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/single_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/singleWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/singleWhere_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/singleWhere_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/skip_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/skip_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int16List/skip_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/skipWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/skipWhile_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/skipWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/skipWhile_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/sort_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/sublist_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/sublist_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/sublist_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/sublist_A03_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/take_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/take_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/take_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/takeWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/takeWhile_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/takeWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/takeWhile_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/toList_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/toList_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int16List/toList_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/toSet_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int16List/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/where_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/where_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int16List/where_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/add_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/addAll_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/any_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int32List/asMap_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int32List/asMap_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/asMap_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/buffer_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/buffer_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/clear_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/contains_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int32List/elementAt_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/elementAt_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/elementSizeInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/elementSizeInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/every_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int32List/expand_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/fillRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/fillRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/first_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/first_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/first_A02_t01: Crash # (try {l.first;Expect.fail("StateError is expected");}on StateError catch (ok){}): "on T" catch block
-LibTest/typed_data/Int32List/first_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/firstWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/firstWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/firstWhere_A03_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/fold_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/forEach_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/getRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/getRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/getRange_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/getRange_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/hashCode_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int32List/hashCode_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/indexOf_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/indexOf_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/indexOf_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/indexOf_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/insert_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/insertAll_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/Int32List_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/Int32List_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/Int32List_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/Int32List.fromList_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/Int32List.fromList_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/Int32List.view_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/Int32List.view_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/Int32List.view_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/Int32List.view_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/Int32List.view_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/Int32List.view_A05_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/Int32List.view_A05_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/Int32List.view_A05_t03: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/Int32List.view_A06_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/isEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int32List/isEmpty_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/isNotEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int32List/isNotEmpty_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/iterator_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/iterator_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/iterator_current_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/iterator_moveNext_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int32List/join_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int32List/join_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int32List/last_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/last_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/last_A02_t01: Crash # (try {l.last;Expect.fail("StateError is expected");}on StateError catch (ok){}): "on T" catch block
-LibTest/typed_data/Int32List/lastIndexOf_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/lastIndexOf_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/lastIndexOf_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/lastIndexOf_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/lastWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/lastWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/lastWhere_A03_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/length_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/length_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/lengthInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/lengthInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/map_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/map_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int32List/map_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/offsetInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/offsetInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/operator_equality_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int32List/operator_subscript_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int32List/operator_subscript_A02_t01: Crash # (try {l[-1];Expect.fail("RangeError is expected");}on RangeError catch (ok){}): "on T" catch block
-LibTest/typed_data/Int32List/operator_subscripted_assignment_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int32List/operator_subscripted_assignment_A02_t01: Crash # (try {l[-1]=1;Expect.fail("RangeError is expected");}on RangeError catch (ok){}): "on T" catch block
-LibTest/typed_data/Int32List/reduce_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/reduce_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/remove_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/removeAt_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/removeLast_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/removeRange_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/removeWhere_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/replaceRange_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/retainWhere_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/reversed_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/reversed_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/runtimeType_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/runtimeType_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/setAll_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/setAll_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/setAll_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/setRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/setRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/setRange_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/setRange_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/single_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/single_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/single_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/single_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/singleWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/singleWhere_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/singleWhere_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/skip_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/skip_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int32List/skip_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/skipWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/skipWhile_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/skipWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/skipWhile_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/sort_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/sublist_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/sublist_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/sublist_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/sublist_A03_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/take_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/take_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/take_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/takeWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/takeWhile_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/takeWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/takeWhile_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/toList_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/toList_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int32List/toList_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/toSet_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int32List/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/where_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/where_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32List/where_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32x4/flagW_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int32x4/flagW_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32x4/flagW_A01_t03: Crash #  "on T" catch block
-LibTest/typed_data/Int32x4/flagX_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int32x4/flagX_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32x4/flagX_A01_t03: Crash #  "on T" catch block
-LibTest/typed_data/Int32x4/flagY_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int32x4/flagY_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32x4/flagY_A01_t03: Crash #  "on T" catch block
-LibTest/typed_data/Int32x4/flagZ_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int32x4/flagZ_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32x4/flagZ_A01_t03: Crash #  "on T" catch block
-LibTest/typed_data/Int32x4/Int32x4_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32x4/Int32x4.bool_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32x4/Int32x4.fromFloat32x4Bits_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32x4/Int32x4.fromFloat32x4Bits_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int32x4/operator_AND_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32x4/operator_OR_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32x4/operator_XOR_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32x4/select_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32x4/w_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32x4/w_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int32x4/withFlagW_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32x4/withFlagX_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32x4/withFlagY_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32x4/withFlagZ_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32x4/withW_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32x4/withX_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32x4/withY_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32x4/withZ_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32x4/x_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32x4/x_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int32x4/y_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32x4/y_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int32x4/z_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int32x4/z_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/add_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/addAll_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/any_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int64List/asMap_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int64List/asMap_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/asMap_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/buffer_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/buffer_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/clear_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/contains_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int64List/elementAt_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/elementAt_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/elementSizeInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/elementSizeInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/every_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int64List/expand_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/fillRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/fillRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/first_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/first_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/first_A02_t01: Crash # (try {l.first;Expect.fail("StateError is expected");}on StateError catch (ok){}): "on T" catch block
-LibTest/typed_data/Int64List/first_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/firstWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/firstWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/firstWhere_A03_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/fold_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/forEach_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/getRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/getRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/getRange_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/getRange_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/hashCode_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int64List/hashCode_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/indexOf_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/indexOf_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/indexOf_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/indexOf_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/insert_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/insertAll_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/Int64List_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/Int64List_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/Int64List_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/Int64List.fromList_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/Int64List.fromList_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/Int64List.view_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/Int64List.view_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/Int64List.view_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/Int64List.view_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/Int64List.view_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/Int64List.view_A05_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/Int64List.view_A05_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/Int64List.view_A05_t03: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/Int64List.view_A06_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/isEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int64List/isEmpty_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/isNotEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int64List/isNotEmpty_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/iterator_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/iterator_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/iterator_current_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/iterator_moveNext_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int64List/join_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int64List/join_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int64List/last_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/last_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/last_A02_t01: Crash # (try {l.last;Expect.fail("StateError is expected");}on StateError catch (ok){}): "on T" catch block
-LibTest/typed_data/Int64List/lastIndexOf_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/lastIndexOf_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/lastIndexOf_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/lastIndexOf_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/lastWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/lastWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/lastWhere_A03_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/length_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/length_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/lengthInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/lengthInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/map_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/map_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int64List/map_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/offsetInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/offsetInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/operator_equality_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int64List/operator_subscript_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int64List/operator_subscript_A02_t01: Crash # (try {l[-1];Expect.fail("RangeError is expected");}on RangeError catch (ok){}): "on T" catch block
-LibTest/typed_data/Int64List/operator_subscripted_assignment_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int64List/operator_subscripted_assignment_A02_t01: Crash # (try {l[-1]=1;Expect.fail("RangeError is expected");}on RangeError catch (ok){}): "on T" catch block
-LibTest/typed_data/Int64List/reduce_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/reduce_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/remove_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/removeAt_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/removeLast_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/removeRange_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/removeWhere_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/replaceRange_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/retainWhere_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/reversed_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/reversed_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/runtimeType_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/runtimeType_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/setAll_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/setAll_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/setAll_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/setRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/setRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/setRange_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/setRange_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/single_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/single_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/single_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/single_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/singleWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/singleWhere_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/singleWhere_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/skip_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/skip_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int64List/skip_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/skipWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/skipWhile_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/skipWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/skipWhile_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/sort_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/sublist_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/sublist_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/sublist_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/sublist_A03_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/take_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/take_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/take_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/takeWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/takeWhile_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/takeWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/takeWhile_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/toList_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/toList_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int64List/toList_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/toSet_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int64List/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/where_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/where_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int64List/where_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/add_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/addAll_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/any_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int8List/asMap_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int8List/asMap_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/asMap_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/buffer_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/buffer_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/clear_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/contains_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int8List/elementAt_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/elementAt_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/elementSizeInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/elementSizeInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/every_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int8List/expand_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/fillRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/fillRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/first_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/first_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/first_A02_t01: Crash # (try {l.first;Expect.fail("StateError is expected");}on StateError catch (ok){}): "on T" catch block
-LibTest/typed_data/Int8List/first_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/firstWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/firstWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/firstWhere_A03_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/fold_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/forEach_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/getRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/getRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/getRange_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/getRange_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/hashCode_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int8List/hashCode_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/indexOf_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/indexOf_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/indexOf_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/indexOf_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/insert_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/insertAll_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/Int8List_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/Int8List_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/Int8List_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/Int8List.fromList_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/Int8List.fromList_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/Int8List.view_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/Int8List.view_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/Int8List.view_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/Int8List.view_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/Int8List.view_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/Int8List.view_A05_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/Int8List.view_A05_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/Int8List.view_A05_t03: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/isEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int8List/isEmpty_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/isNotEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int8List/isNotEmpty_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/iterator_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/iterator_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/iterator_current_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/iterator_moveNext_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int8List/join_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int8List/join_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int8List/last_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/last_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/last_A02_t01: Crash # (try {l.last;Expect.fail("StateError is expected");}on StateError catch (ok){}): "on T" catch block
-LibTest/typed_data/Int8List/lastIndexOf_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/lastIndexOf_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/lastIndexOf_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/lastIndexOf_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/lastWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/lastWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/lastWhere_A03_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/length_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/length_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/lengthInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/lengthInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/map_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/map_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int8List/map_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/offsetInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/offsetInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/operator_equality_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int8List/operator_subscript_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int8List/operator_subscript_A02_t01: Crash # (try {l[-1];Expect.fail("RangeError is expected");}on RangeError catch (ok){}): "on T" catch block
-LibTest/typed_data/Int8List/operator_subscripted_assignment_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int8List/operator_subscripted_assignment_A02_t01: Crash # (try {l[-1]=1;Expect.fail("RangeError is expected");}on RangeError catch (ok){}): "on T" catch block
-LibTest/typed_data/Int8List/reduce_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/reduce_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/remove_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/removeAt_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/removeLast_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/removeRange_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/removeWhere_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/replaceRange_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/retainWhere_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/reversed_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/reversed_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/runtimeType_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/runtimeType_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/setAll_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/setAll_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/setAll_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/setRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/setRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/setRange_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/setRange_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/single_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/single_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/single_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/single_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/singleWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/singleWhere_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/singleWhere_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/skip_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/skip_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int8List/skip_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/skipWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/skipWhile_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/skipWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/skipWhile_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/sort_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/sublist_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/sublist_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/sublist_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/sublist_A03_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/take_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/take_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/take_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/takeWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/takeWhile_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/takeWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/takeWhile_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/toList_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/toList_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Int8List/toList_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/toSet_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Int8List/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/where_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/where_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Int8List/where_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/add_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/addAll_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/any_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint16List/asMap_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint16List/asMap_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/asMap_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/buffer_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/buffer_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/clear_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/contains_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint16List/elementAt_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/elementAt_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/elementSizeInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/elementSizeInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/every_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint16List/expand_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/fillRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/fillRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/first_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/first_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/first_A02_t01: Crash # (try {l.first;Expect.fail("StateError is expected");}on StateError catch (ok){}): "on T" catch block
-LibTest/typed_data/Uint16List/first_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/firstWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/firstWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/firstWhere_A03_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/fold_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/forEach_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/getRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/getRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/getRange_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/getRange_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/hashCode_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint16List/hashCode_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/indexOf_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/indexOf_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/indexOf_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/indexOf_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/insert_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/insertAll_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/isEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint16List/isEmpty_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/isNotEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint16List/isNotEmpty_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/iterator_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/iterator_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/iterator_current_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/iterator_moveNext_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint16List/join_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint16List/join_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint16List/last_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/last_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/last_A02_t01: Crash # (try {l.last;Expect.fail("StateError is expected");}on StateError catch (ok){}): "on T" catch block
-LibTest/typed_data/Uint16List/lastIndexOf_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/lastIndexOf_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/lastIndexOf_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/lastIndexOf_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/lastWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/lastWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/lastWhere_A03_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/length_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/length_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/lengthInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/lengthInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/map_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/map_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint16List/map_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/offsetInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/offsetInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/operator_equality_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint16List/operator_subscript_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint16List/operator_subscript_A02_t01: Crash # (try {l[-1];Expect.fail("RangeError is expected");}on RangeError catch (ok){}): "on T" catch block
-LibTest/typed_data/Uint16List/operator_subscripted_assignment_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint16List/operator_subscripted_assignment_A02_t01: Crash # (try {l[-1]=1;Expect.fail("RangeError is expected");}on RangeError catch (ok){}): "on T" catch block
-LibTest/typed_data/Uint16List/reduce_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/reduce_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/remove_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/removeAt_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/removeLast_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/removeRange_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/removeWhere_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/replaceRange_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/retainWhere_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/reversed_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/reversed_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/runtimeType_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/runtimeType_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/setAll_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/setAll_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/setAll_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/setRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/setRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/setRange_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/setRange_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/single_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/single_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/single_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/single_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/singleWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/singleWhere_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/singleWhere_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/skip_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/skip_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint16List/skip_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/skipWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/skipWhile_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/skipWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/skipWhile_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/sort_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/sublist_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/sublist_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/sublist_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/sublist_A03_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/take_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/take_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/take_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/takeWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/takeWhile_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/takeWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/takeWhile_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/toList_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/toList_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/toList_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/toSet_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint16List/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/Uint16List_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/Uint16List_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/Uint16List_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/Uint16List.fromList_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/Uint16List.fromList_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/Uint16List.view_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/Uint16List.view_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/Uint16List.view_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/Uint16List.view_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/Uint16List.view_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/Uint16List.view_A05_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/Uint16List.view_A05_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/Uint16List.view_A05_t03: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/Uint16List.view_A06_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint16List/where_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/where_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint16List/where_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/add_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/addAll_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/any_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint32List/asMap_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint32List/asMap_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/asMap_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/buffer_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/buffer_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/clear_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/contains_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint32List/elementAt_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/elementAt_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/elementSizeInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/elementSizeInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/every_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint32List/expand_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/fillRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/fillRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/first_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/first_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/first_A02_t01: Crash # (try {l.first;Expect.fail("StateError is expected");}on StateError catch (ok){}): "on T" catch block
-LibTest/typed_data/Uint32List/first_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/firstWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/firstWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/firstWhere_A03_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/fold_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/forEach_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/getRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/getRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/getRange_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/getRange_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/hashCode_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint32List/hashCode_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/indexOf_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/indexOf_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/indexOf_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/indexOf_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/insert_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/insertAll_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/isEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint32List/isEmpty_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/isNotEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint32List/isNotEmpty_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/iterator_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/iterator_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/iterator_current_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/iterator_moveNext_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint32List/join_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint32List/join_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint32List/last_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/last_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/last_A02_t01: Crash # (try {l.last;Expect.fail("StateError is expected");}on StateError catch (ok){}): "on T" catch block
-LibTest/typed_data/Uint32List/lastIndexOf_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/lastIndexOf_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/lastIndexOf_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/lastIndexOf_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/lastWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/lastWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/lastWhere_A03_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/length_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/length_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/lengthInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/lengthInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/map_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/map_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint32List/map_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/offsetInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/offsetInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/operator_equality_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint32List/operator_subscript_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint32List/operator_subscript_A02_t01: Crash # (try {l[-1];Expect.fail("RangeError is expected");}on RangeError catch (ok){}): "on T" catch block
-LibTest/typed_data/Uint32List/operator_subscripted_assignment_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint32List/operator_subscripted_assignment_A02_t01: Crash # (try {l[-1]=1;Expect.fail("RangeError is expected");}on RangeError catch (ok){}): "on T" catch block
-LibTest/typed_data/Uint32List/reduce_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/reduce_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/remove_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/removeAt_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/removeLast_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/removeRange_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/removeWhere_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/replaceRange_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/retainWhere_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/reversed_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/reversed_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/runtimeType_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/runtimeType_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/setAll_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/setAll_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/setAll_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/setRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/setRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/setRange_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/setRange_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/single_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/single_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/single_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/single_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/singleWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/singleWhere_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/singleWhere_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/skip_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/skip_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint32List/skip_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/skipWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/skipWhile_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/skipWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/skipWhile_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/sort_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/sublist_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/sublist_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/sublist_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/sublist_A03_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/take_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/take_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/take_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/takeWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/takeWhile_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/takeWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/takeWhile_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/toList_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/toList_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/toList_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/toSet_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint32List/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/Uint32List_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/Uint32List_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/Uint32List_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/Uint32List.fromList_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/Uint32List.fromList_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/Uint32List.view_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/Uint32List.view_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/Uint32List.view_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/Uint32List.view_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/Uint32List.view_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/Uint32List.view_A05_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/Uint32List.view_A05_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/Uint32List.view_A05_t03: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/Uint32List.view_A06_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint32List/where_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/where_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint32List/where_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/add_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/addAll_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/any_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint64List/asMap_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint64List/asMap_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/asMap_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/buffer_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/buffer_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/clear_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/contains_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint64List/elementAt_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/elementAt_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/elementSizeInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/elementSizeInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/every_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint64List/expand_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/fillRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/fillRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/first_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/first_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/first_A02_t01: Crash # (try {l.first;Expect.fail("StateError is expected");}on StateError catch (ok){}): "on T" catch block
-LibTest/typed_data/Uint64List/first_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/firstWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/firstWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/firstWhere_A03_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/fold_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/forEach_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/getRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/getRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/getRange_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/getRange_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/hashCode_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint64List/hashCode_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/indexOf_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/indexOf_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/indexOf_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/indexOf_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/insert_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/insertAll_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/isEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint64List/isEmpty_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/isNotEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint64List/isNotEmpty_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/iterator_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/iterator_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/iterator_current_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/iterator_moveNext_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint64List/join_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint64List/join_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint64List/last_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/last_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/last_A02_t01: Crash # (try {l.last;Expect.fail("StateError is expected");}on StateError catch (ok){}): "on T" catch block
-LibTest/typed_data/Uint64List/lastIndexOf_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/lastIndexOf_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/lastIndexOf_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/lastIndexOf_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/lastWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/lastWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/lastWhere_A03_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/length_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/length_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/lengthInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/lengthInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/map_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/map_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint64List/map_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/offsetInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/offsetInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/operator_equality_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint64List/operator_subscript_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint64List/operator_subscript_A02_t01: Crash # (try {l[-1];Expect.fail("RangeError is expected");}on RangeError catch (ok){}): "on T" catch block
-LibTest/typed_data/Uint64List/operator_subscripted_assignment_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint64List/operator_subscripted_assignment_A02_t01: Crash # (try {l[-1]=1;Expect.fail("RangeError is expected");}on RangeError catch (ok){}): "on T" catch block
-LibTest/typed_data/Uint64List/reduce_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/reduce_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/remove_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/removeAt_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/removeLast_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/removeRange_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/removeWhere_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/replaceRange_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/retainWhere_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/reversed_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/reversed_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/runtimeType_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/runtimeType_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/setAll_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/setAll_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/setAll_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/setRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/setRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/setRange_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/setRange_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/single_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/single_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/single_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/single_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/singleWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/singleWhere_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/singleWhere_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/skip_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/skip_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint64List/skip_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/skipWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/skipWhile_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/skipWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/skipWhile_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/sort_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/sublist_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/sublist_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/sublist_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/sublist_A03_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/take_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/take_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/take_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/takeWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/takeWhile_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/takeWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/takeWhile_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/toList_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/toList_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/toList_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/toSet_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint64List/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/Uint64List_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/Uint64List_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/Uint64List_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/Uint64List.fromList_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/Uint64List.fromList_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/Uint64List.view_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/Uint64List.view_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/Uint64List.view_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/Uint64List.view_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/Uint64List.view_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/Uint64List.view_A05_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/Uint64List.view_A05_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/Uint64List.view_A05_t03: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/Uint64List.view_A06_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint64List/where_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/where_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint64List/where_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/add_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/addAll_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/any_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8ClampedList/asMap_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8ClampedList/asMap_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/asMap_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/buffer_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/buffer_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/clear_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/contains_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8ClampedList/elementAt_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/elementAt_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/elementSizeInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/elementSizeInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/every_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8ClampedList/expand_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/fillRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/fillRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/first_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/first_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/first_A02_t01: Crash # (try {l.first;Expect.fail("StateError is expected");}on StateError catch (ok){}): "on T" catch block
-LibTest/typed_data/Uint8ClampedList/first_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/firstWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/firstWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/firstWhere_A03_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/fold_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/forEach_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/getRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/getRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/getRange_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/getRange_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/hashCode_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8ClampedList/hashCode_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/indexOf_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/indexOf_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/indexOf_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/indexOf_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/insert_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/insertAll_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/isEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8ClampedList/isEmpty_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/isNotEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8ClampedList/isNotEmpty_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/iterator_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/iterator_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/iterator_current_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/iterator_moveNext_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8ClampedList/join_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8ClampedList/join_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8ClampedList/last_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/last_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/last_A02_t01: Crash # (try {l.last;Expect.fail("StateError is expected");}on StateError catch (ok){}): "on T" catch block
-LibTest/typed_data/Uint8ClampedList/lastIndexOf_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/lastIndexOf_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/lastIndexOf_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/lastIndexOf_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/lastWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/lastWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/lastWhere_A03_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/length_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/length_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/lengthInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/lengthInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/map_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/map_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8ClampedList/map_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/offsetInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/offsetInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/operator_equality_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8ClampedList/operator_subscript_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8ClampedList/operator_subscript_A02_t01: Crash # (try {l[-1];Expect.fail("RangeError is expected");}on RangeError catch (ok){}): "on T" catch block
-LibTest/typed_data/Uint8ClampedList/operator_subscripted_assignment_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8ClampedList/operator_subscripted_assignment_A02_t01: Crash # (try {l[-1]=1;Expect.fail("RangeError is expected");}on RangeError catch (ok){}): "on T" catch block
-LibTest/typed_data/Uint8ClampedList/reduce_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/reduce_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/remove_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/removeAt_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/removeLast_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/removeRange_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/removeWhere_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/replaceRange_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/retainWhere_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/reversed_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/reversed_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/runtimeType_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/runtimeType_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/setAll_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/setAll_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/setAll_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/setRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/setRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/setRange_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/setRange_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/single_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/single_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/single_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/single_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/singleWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/singleWhere_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/singleWhere_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/skip_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/skip_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8ClampedList/skip_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/skipWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/skipWhile_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/skipWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/skipWhile_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/sort_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/sublist_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/sublist_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/sublist_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/sublist_A03_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/take_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/take_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/take_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/takeWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/takeWhile_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/takeWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/takeWhile_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/toList_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/toList_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/toList_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/toSet_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8ClampedList/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/Uint8ClampedList_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/Uint8ClampedList_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/Uint8ClampedList_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/Uint8ClampedList.fromList_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/Uint8ClampedList.fromList_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/Uint8ClampedList.view_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/Uint8ClampedList.view_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/Uint8ClampedList.view_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/Uint8ClampedList.view_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/Uint8ClampedList.view_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/Uint8ClampedList.view_A05_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/Uint8ClampedList.view_A05_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/Uint8ClampedList.view_A05_t03: Crash #  "on T" catch block
-LibTest/typed_data/Uint8ClampedList/where_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/where_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8ClampedList/where_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/add_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/addAll_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/any_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8List/asMap_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8List/asMap_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/asMap_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/buffer_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/buffer_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/clear_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/contains_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8List/elementAt_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/elementAt_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/elementSizeInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/elementSizeInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/every_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8List/expand_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/fillRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/fillRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/first_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/first_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/first_A02_t01: Crash # (try {l.first;Expect.fail("StateError is expected");}on StateError catch (ok){}): "on T" catch block
-LibTest/typed_data/Uint8List/first_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/firstWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/firstWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/firstWhere_A03_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/fold_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/forEach_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/getRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/getRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/getRange_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/getRange_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/hashCode_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8List/hashCode_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/indexOf_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/indexOf_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/indexOf_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/indexOf_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/insert_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/insertAll_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/isEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8List/isEmpty_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/isNotEmpty_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8List/isNotEmpty_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/iterator_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/iterator_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/iterator_current_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/iterator_moveNext_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8List/join_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8List/join_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8List/last_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/last_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/last_A02_t01: Crash # (try {l.last;Expect.fail("StateError is expected");}on StateError catch (ok){}): "on T" catch block
-LibTest/typed_data/Uint8List/lastIndexOf_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/lastIndexOf_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/lastIndexOf_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/lastIndexOf_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/lastWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/lastWhere_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/lastWhere_A03_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/length_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/length_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/lengthInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/lengthInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/map_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/map_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8List/map_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/offsetInBytes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/offsetInBytes_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/operator_equality_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8List/operator_subscript_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8List/operator_subscript_A02_t01: Crash # (try {l[-1];Expect.fail("RangeError is expected");}on RangeError catch (ok){}): "on T" catch block
-LibTest/typed_data/Uint8List/operator_subscripted_assignment_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8List/operator_subscripted_assignment_A02_t01: Crash # (try {l[-1]=1;Expect.fail("RangeError is expected");}on RangeError catch (ok){}): "on T" catch block
-LibTest/typed_data/Uint8List/reduce_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/reduce_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/remove_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/removeAt_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/removeLast_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/removeRange_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/removeWhere_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/replaceRange_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/retainWhere_A01_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/reversed_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/reversed_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/runtimeType_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/runtimeType_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/setAll_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/setAll_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/setAll_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/setRange_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/setRange_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/setRange_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/setRange_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/single_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/single_A01_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/single_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/single_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/singleWhere_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/singleWhere_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/singleWhere_A02_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/skip_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/skip_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8List/skip_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/skipWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/skipWhile_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/skipWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/skipWhile_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/sort_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/sublist_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/sublist_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/sublist_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/sublist_A03_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/take_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/take_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/take_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/takeWhile_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/takeWhile_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/takeWhile_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/takeWhile_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/toList_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/toList_A02_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/toList_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/toSet_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-LibTest/typed_data/Uint8List/toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/Uint8List_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/Uint8List_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/Uint8List_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/Uint8List.fromList_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/Uint8List.fromList_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/Uint8List.view_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/Uint8List.view_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/Uint8List.view_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/Uint8List.view_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/Uint8List.view_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/Uint8List.view_A05_t01: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/Uint8List.view_A05_t02: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/Uint8List.view_A05_t03: Crash #  "on T" catch block
-LibTest/typed_data/Uint8List/where_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/where_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LibTest/typed_data/Uint8List/where_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Utils/tests/Expect/approxEquals_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Utils/tests/Expect/approxEquals_A01_t02: Crash #  "on T" catch block
-Utils/tests/Expect/approxEquals_A01_t03: Crash #  "on T" catch block
-Utils/tests/Expect/approxEquals_A01_t04: Crash # (throw new ExpectException(message)): Unhandled node
-Utils/tests/Expect/approxEquals_A02_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Utils/tests/Expect/approxEquals_A03_t01: Crash #  "on T" catch block
-Utils/tests/Expect/approxEquals_A04_t01: Crash #  "on T" catch block
-Utils/tests/Expect/equals_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Utils/tests/Expect/equals_A01_t02: Crash #  "on T" catch block
-Utils/tests/Expect/equals_A01_t03: Crash #  "on T" catch block
-Utils/tests/Expect/equals_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Utils/tests/Expect/equals_A02_t01: Crash #  "on T" catch block
-Utils/tests/ExpectException/ExpectException_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Utils/tests/ExpectException/message_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Utils/tests/ExpectException/toString_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Utils/tests/Expect/fail_A01_t01: Crash #  "on T" catch block
-Utils/tests/Expect/fail_A02_t01: Crash #  "on T" catch block
-Utils/tests/Expect/identical_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Utils/tests/Expect/identical_A01_t02: Crash #  "on T" catch block
-Utils/tests/Expect/identical_A01_t03: Crash #  "on T" catch block
-Utils/tests/Expect/identical_A02_t01: Crash #  "on T" catch block
-Utils/tests/Expect/isFalse_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Utils/tests/Expect/isFalse_A01_t02: Crash #  "on T" catch block
-Utils/tests/Expect/isFalse_A02_t01: Crash #  "on T" catch block
-Utils/tests/Expect/isNotNull_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Utils/tests/Expect/isNotNull_A01_t02: Crash #  "on T" catch block
-Utils/tests/Expect/isNotNull_A02_t01: Crash #  "on T" catch block
-Utils/tests/Expect/isNull_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Utils/tests/Expect/isNull_A01_t02: Crash #  "on T" catch block
-Utils/tests/Expect/isNull_A02_t01: Crash #  "on T" catch block
-Utils/tests/Expect/isTrue_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Utils/tests/Expect/isTrue_A01_t02: Crash #  "on T" catch block
-Utils/tests/Expect/isTrue_A02_t01: Crash #  "on T" catch block
-Utils/tests/Expect/listEquals_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Utils/tests/Expect/listEquals_A01_t02: Crash #  "on T" catch block
-Utils/tests/Expect/listEquals_A01_t03: Crash #  "on T" catch block
-Utils/tests/Expect/listEquals_A02_t01: Crash #  "on T" catch block
-Utils/tests/Expect/listEquals_A03_t01: Crash #  "on T" catch block
-Utils/tests/Expect/notEquals_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Utils/tests/Expect/notEquals_A01_t02: Crash #  "on T" catch block
-Utils/tests/Expect/notEquals_A01_t03: Crash #  "on T" catch block
-Utils/tests/Expect/notEquals_A02_t01: Crash #  "on T" catch block
-Utils/tests/Expect/setEquals_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Utils/tests/Expect/setEquals_A01_t02: Crash #  "on T" catch block
-Utils/tests/Expect/setEquals_A02_t01: Crash #  "on T" catch block
-Utils/tests/Expect/setEquals_A03_t01: Crash #  "on T" catch block
-Utils/tests/Expect/stringEquals_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-Utils/tests/Expect/stringEquals_A01_t02: Crash #  "on T" catch block
-Utils/tests/Expect/stringEquals_A02_t01: Crash #  "on T" catch block
-Utils/tests/Expect/throws_A01_t01: Crash #  "on T" catch block
-Utils/tests/Expect/throws_A01_t02: Crash #  "on T" catch block
-Utils/tests/Expect/throws_A01_t03: Crash #  "on T" catch block
-Utils/tests/Expect/throws_A01_t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-Utils/tests/Expect/throws_A01_t05: Crash #  "on T" catch block
-Utils/tests/Expect/throws_A02_t01: Crash #  "on T" catch block
-WebPlatformTest/custom-elements/concepts/type_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/custom-elements/concepts/type_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/custom-elements/concepts/type_A04_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/custom-elements/concepts/type_A05_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/custom-elements/concepts/type_A06_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/custom-elements/concepts/type_A07_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/custom-elements/concepts/type_A08_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/custom-elements/instantiating/createElement_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/custom-elements/instantiating/createElement_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/custom-elements/instantiating/createElement_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/custom-elements/instantiating/createElement_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/custom-elements/instantiating/createElement_A05_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/custom-elements/instantiating/createElementNS_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/custom-elements/instantiating/createElementNS_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/custom-elements/instantiating/createElementNS_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/custom-elements/instantiating/createElementNS_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/custom-elements/instantiating/createElementNS_A05_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/custom-elements/instantiating/isAttribute_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/custom-elements/instantiating/isAttribute_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/custom-elements/instantiating/isAttribute_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/custom-elements/instantiating/isAttribute_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/custom-elements/instantiating/localName_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/custom-elements/instantiating/namespace_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/collections/emptyName_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/collections/emptyName_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/collections/emptyName_A01_t05: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/collections/emptyName_A01_t06: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/collections/emptyName_A01_t07: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/DOMEvents/approved/addEventListener.optional.useCapture_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/DOMEvents/approved/dispatchEvent.return.value_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/DOMEvents/approved/DOM.event.flow_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/DOMEvents/approved/domnodeinserted_t01: Crash # unsupported element kind: _asyncCounter:field
-WebPlatformTest/DOMEvents/approved/Event.bubbles.false_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+LibTest/isolate/SendPort/send_A01_t01: Crash # (iMain): handleStaticFunctionGet: function(iMain)
+LibTest/isolate/SendPort/send_A01_t02: Crash # (iMain): handleStaticFunctionGet: function(iMain)
+LibTest/isolate/SendPort/send_A01_t03: Crash # (iMain): handleStaticFunctionGet: function(iMain)
+LibTest/isolate/SendPort/send_A01_t04: Crash # (iMain): handleStaticFunctionGet: function(iMain)
+LibTest/isolate/SendPort/send_A02_t01: Crash # (iMain): handleStaticFunctionGet: function(iMain)
+LibTest/math/MutableRectangle/MutableRectangle.fromPoints_A01_t01: Crash # unsupported element kind: rand:field
+LibTest/math/MutableRectangle/MutableRectangle_A01_t01: Crash # unsupported element kind: rand:field
+LibTest/math/MutableRectangle/boundingBox_A01_t01: Crash # unsupported element kind: rand:field
+LibTest/math/MutableRectangle/boundingBox_A01_t02: Crash # unsupported element kind: rand:field
+LibTest/math/MutableRectangle/operator_equality_A01_t01: Crash # unsupported element kind: rand:field
+LibTest/math/Point/distanceTo_A01_t01: Crash # unsupported element kind: rand:field
+LibTest/math/Point/operator_addition_A01_t01: Crash # unsupported element kind: rand:field
+LibTest/math/Point/operator_equality_A01_t01: Crash # unsupported element kind: rand:field
+LibTest/math/Point/operator_mult_A01_t01: Crash # unsupported element kind: rand:field
+LibTest/math/Point/operator_subtraction_A01_t01: Crash # unsupported element kind: rand:field
+LibTest/math/Point/squaredDistanceTo_A01_t01: Crash # unsupported element kind: rand:field
+LibTest/math/Rectangle/Rectangle.fromPoints_A01_t01: Crash # unsupported element kind: rand:field
+LibTest/math/Rectangle/Rectangle_A01_t01: Crash # unsupported element kind: rand:field
+LibTest/math/Rectangle/boundingBox_A01_t01: Crash # unsupported element kind: rand:field
+LibTest/math/Rectangle/boundingBox_A01_t02: Crash # unsupported element kind: rand:field
+LibTest/math/Rectangle/operator_equality_A01_t01: Crash # unsupported element kind: rand:field
+LibTest/typed_data/ByteData/ByteData.view_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/ByteData/setInt16_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/ByteData/setInt32_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/ByteData/setInt64_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/ByteData/setInt8_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/ByteData/setUint16_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/ByteData/setUint32_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/ByteData/setUint64_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/ByteData/setUint8_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Float32List/Float32List.fromList_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Float32List/Float32List.fromList_A01_t02: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Float32List/Float32List.view_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Float32List/Float32List_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Float32List/any_A01_t01: Crash # (pred): handleStaticFunctionGet: function(pred)
+LibTest/typed_data/Float32List/every_A01_t01: Crash # (pred): handleStaticFunctionGet: function(pred)
+LibTest/typed_data/Float32List/setAll_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Float32List/setRange_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Float32List/setRange_A02_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Float32List/sort_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Float32List/toList_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Float32x4List/any_A01_t01: Crash # (pred): handleStaticFunctionGet: function(pred)
+LibTest/typed_data/Float32x4List/every_A01_t01: Crash # (pred): handleStaticFunctionGet: function(pred)
+LibTest/typed_data/Float64List/Float64List.fromList_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Float64List/Float64List.fromList_A01_t02: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Float64List/Float64List.view_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Float64List/Float64List_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Float64List/any_A01_t01: Crash # (pred): handleStaticFunctionGet: function(pred)
+LibTest/typed_data/Float64List/every_A01_t01: Crash # (pred): handleStaticFunctionGet: function(pred)
+LibTest/typed_data/Float64List/setAll_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Float64List/setRange_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Float64List/setRange_A02_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Float64List/sort_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Float64List/toList_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Int16List/Int16List.fromList_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Int16List/Int16List.fromList_A01_t02: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Int16List/Int16List.view_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Int16List/Int16List_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Int16List/any_A01_t01: Crash # (pred): handleStaticFunctionGet: function(pred)
+LibTest/typed_data/Int16List/every_A01_t01: Crash # (pred): handleStaticFunctionGet: function(pred)
+LibTest/typed_data/Int16List/setAll_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Int16List/setRange_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Int16List/setRange_A02_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Int16List/sort_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Int16List/toList_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Int32List/Int32List.fromList_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Int32List/Int32List.fromList_A01_t02: Crash # (toInt32): handleStaticFunctionGet: function(toInt32)
+LibTest/typed_data/Int32List/Int32List.view_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Int32List/Int32List_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Int32List/any_A01_t01: Crash # (pred): handleStaticFunctionGet: function(pred)
+LibTest/typed_data/Int32List/every_A01_t01: Crash # (pred): handleStaticFunctionGet: function(pred)
+LibTest/typed_data/Int32List/setAll_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Int32List/setRange_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Int32List/setRange_A02_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Int32List/sort_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Int32List/toList_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Int64List/Int64List.fromList_A01_t02: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Int64List/any_A01_t01: Crash # (pred): handleStaticFunctionGet: function(pred)
+LibTest/typed_data/Int64List/every_A01_t01: Crash # (pred): handleStaticFunctionGet: function(pred)
+LibTest/typed_data/Int64List/setAll_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Int64List/setRange_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Int64List/setRange_A02_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Int64List/sort_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Int64List/toList_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Int8List/Int8List.fromList_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Int8List/Int8List.fromList_A01_t02: Crash # (toInt8): handleStaticFunctionGet: function(toInt8)
+LibTest/typed_data/Int8List/Int8List.view_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Int8List/Int8List_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Int8List/any_A01_t01: Crash # (pred): handleStaticFunctionGet: function(pred)
+LibTest/typed_data/Int8List/every_A01_t01: Crash # (pred): handleStaticFunctionGet: function(pred)
+LibTest/typed_data/Int8List/setAll_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Int8List/setRange_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Int8List/setRange_A02_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Int8List/sort_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Int8List/toList_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint16List/Uint16List.fromList_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Uint16List/Uint16List.fromList_A01_t02: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint16List/Uint16List.view_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Uint16List/Uint16List_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Uint16List/any_A01_t01: Crash # (pred): handleStaticFunctionGet: function(pred)
+LibTest/typed_data/Uint16List/every_A01_t01: Crash # (pred): handleStaticFunctionGet: function(pred)
+LibTest/typed_data/Uint16List/setAll_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint16List/setRange_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint16List/setRange_A02_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint16List/sort_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint16List/toList_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint32List/Uint32List.fromList_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Uint32List/Uint32List.fromList_A01_t02: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint32List/Uint32List.view_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Uint32List/Uint32List_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Uint32List/any_A01_t01: Crash # (pred): handleStaticFunctionGet: function(pred)
+LibTest/typed_data/Uint32List/every_A01_t01: Crash # (pred): handleStaticFunctionGet: function(pred)
+LibTest/typed_data/Uint32List/setAll_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint32List/setRange_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint32List/setRange_A02_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint32List/sort_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint32List/toList_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint64List/Uint64List.fromList_A01_t02: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint64List/any_A01_t01: Crash # (pred): handleStaticFunctionGet: function(pred)
+LibTest/typed_data/Uint64List/every_A01_t01: Crash # (pred): handleStaticFunctionGet: function(pred)
+LibTest/typed_data/Uint64List/setAll_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint64List/setRange_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint64List/setRange_A02_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint64List/sort_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint64List/toList_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint8ClampedList/Uint8ClampedList.fromList_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Uint8ClampedList/Uint8ClampedList.fromList_A01_t02: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint8ClampedList/Uint8ClampedList.view_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Uint8ClampedList/Uint8ClampedList_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Uint8ClampedList/any_A01_t01: Crash # (pred): handleStaticFunctionGet: function(pred)
+LibTest/typed_data/Uint8ClampedList/every_A01_t01: Crash # (pred): handleStaticFunctionGet: function(pred)
+LibTest/typed_data/Uint8ClampedList/setAll_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint8ClampedList/setRange_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint8ClampedList/setRange_A02_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint8ClampedList/sort_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint8ClampedList/toList_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint8List/Uint8List.fromList_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Uint8List/Uint8List.fromList_A01_t02: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint8List/Uint8List.view_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Uint8List/Uint8List_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Uint8List/any_A01_t01: Crash # (pred): handleStaticFunctionGet: function(pred)
+LibTest/typed_data/Uint8List/every_A01_t01: Crash # (pred): handleStaticFunctionGet: function(pred)
+LibTest/typed_data/Uint8List/setAll_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint8List/setRange_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint8List/setRange_A02_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint8List/sort_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+LibTest/typed_data/Uint8List/toList_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Utils/tests/Expect/approxEquals_A04_t01: RuntimeError # Please triage this failure.
+Utils/tests/Expect/equals_A01_t04: RuntimeError # Please triage this failure.
+Utils/tests/Expect/listEquals_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Utils/tests/Expect/listEquals_A01_t02: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Utils/tests/Expect/listEquals_A01_t03: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Utils/tests/Expect/listEquals_A02_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Utils/tests/Expect/listEquals_A03_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+Utils/tests/Expect/stringEquals_A02_t01: RuntimeError # Please triage this failure.
+Utils/tests/Expect/throws_A01_t01: Crash # (badboy): handleStaticFunctionGet: function(badboy)
+Utils/tests/Expect/throws_A01_t02: Crash # (goodboy): handleStaticFunctionGet: function(goodboy)
+Utils/tests/Expect/throws_A01_t03: Crash # (badboy): handleStaticFunctionGet: function(badboy)
+WebPlatformTest/DOMEvents/approved/DOM.event.flow_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/DOMEvents/approved/Event.bubbles.false_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
 WebPlatformTest/DOMEvents/approved/EventListener.eventHandler_t01: Crash # unsupported element kind: _asyncCounter:field
-WebPlatformTest/DOMEvents/approved/EventObject.after.dispatchEvenr_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/DOMEvents/approved/EventObject.multiple.dispatchEvent_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+WebPlatformTest/DOMEvents/approved/EventObject.after.dispatchEvenr_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/DOMEvents/approved/EventObject.multiple.dispatchEvent_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
 WebPlatformTest/DOMEvents/approved/ProcessingInstruction.DOMCharacterDataModified_t01: Crash # unsupported element kind: _completer:field
-WebPlatformTest/DOMEvents/approved/Propagation.path.target.moved_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/DOMEvents/approved/Propagation.path.target.removed_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/DOMEvents/approved/stopImmediatePropagation.effect_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/DOMEvents/approved/stopPropagation.deferred.effect_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/DOMEvents/approved/stopPropagation.dispatchEvent_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/events/defaultPrevented_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/events/defaultPrevented_A01_t02: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/events/defaultPrevented_A01_t03: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/events/defaultPrevented_A01_t04: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/events/defaultPrevented_A01_t05: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/events/defaultPrevented_A01_t06: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/events/event_constants/constants_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/events/event_constructors/Event_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/events/event_constructors/Event_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/events/propagation_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/events/type_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/EventTarget/dispatchEvent_A01_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/EventTarget/dispatchEvent_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+WebPlatformTest/DOMEvents/approved/Propagation.path.target.moved_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/DOMEvents/approved/Propagation.path.target.removed_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/DOMEvents/approved/addEventListener.optional.useCapture_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/DOMEvents/approved/dispatchEvent.return.value_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/DOMEvents/approved/domnodeinserted_t01: Crash # unsupported element kind: _asyncCounter:field
+WebPlatformTest/DOMEvents/approved/stopImmediatePropagation.effect_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/DOMEvents/approved/stopPropagation.deferred.effect_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/Utils/test/asyncTestFail_t01: Crash # unsupported element kind: _completer:field
+WebPlatformTest/Utils/test/asyncTestFail_t02: Crash # unsupported element kind: _completer:field
+WebPlatformTest/Utils/test/asyncTestPass_t01: Crash # unsupported element kind: _completer:field
+WebPlatformTest/Utils/test/asyncTestTimeout_t01: Crash # unsupported element kind: _asyncCounter:field
+WebPlatformTest/custom-elements/concepts/type_A04_t01: Crash # unsupported element kind: EXTENDER_CHARS:field
+WebPlatformTest/custom-elements/concepts/type_A05_t01: Crash # unsupported element kind: COMBINING_CHARS:field
+WebPlatformTest/custom-elements/concepts/type_A06_t01: Crash # unsupported element kind: BASE_CHARS_SINGLE:field
+WebPlatformTest/custom-elements/concepts/type_A07_t01: Crash # unsupported element kind: IDEOGRAPHIC_CHARS_SINGLE:field
+WebPlatformTest/custom-elements/concepts/type_A08_t01: Crash # unsupported element kind: DIGIT_CHARS_RANGES:field
+WebPlatformTest/custom-elements/instantiating/createElementNS_A02_t01: Crash #  Unhandled node
+WebPlatformTest/custom-elements/instantiating/createElementNS_A03_t01: Crash #  Unhandled node
+WebPlatformTest/custom-elements/instantiating/createElementNS_A04_t01: Crash #  Unhandled node
+WebPlatformTest/custom-elements/instantiating/createElement_A02_t01: Crash #  Unhandled node
+WebPlatformTest/custom-elements/instantiating/createElement_A03_t01: Crash #  Unhandled node
+WebPlatformTest/custom-elements/instantiating/createElement_A04_t01: Crash #  Unhandled node
+WebPlatformTest/custom-elements/instantiating/isAttribute_A01_t01: Crash #  Unhandled node
+WebPlatformTest/custom-elements/instantiating/isAttribute_A01_t02: Crash #  Unhandled node
+WebPlatformTest/custom-elements/instantiating/isAttribute_A02_t01: Crash # unsupported element kind: HTML5_TABLE_ELEMENTS:field
+WebPlatformTest/dom/EventTarget/dispatchEvent_A01_t01: Crash # unsupported element kind: _asyncCounter:field
+WebPlatformTest/dom/EventTarget/dispatchEvent_A02_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
 WebPlatformTest/dom/EventTarget/dispatchEvent_A03_t01: Crash # unsupported element kind: _asyncCounter:field
-WebPlatformTest/dom/EventTarget/dispatchEvent_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/lists/DOMTokenList.toString_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/attributes_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/attributes_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/attributes_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/attributes_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/attributes_A05_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/attributes_A06_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/setAttribute_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/setAttribute_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/setAttribute_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/setAttribute_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/setAttribute_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/setAttribute_A06_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/setAttribute_A07_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/setAttribute_A08_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/setAttribute_A09_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A03_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A04_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A05_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A06_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A06_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A06_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A07_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A07_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A07_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A08_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A09_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A09_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A10_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A10_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/CharacterData/appendData_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/CharacterData/deleteData_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/CharacterData/deleteData_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/CharacterData/insertData_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/CharacterData/insertData_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/CharacterData/remove_A01_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/CharacterData/remove_A01_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/CharacterData/remove_A02_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/CharacterData/remove_A02_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/Comment-constructor_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/nodes/Document-adoptNode_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/nodes/Document-createElement-namespace_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/Document-createElementNS_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/nodes/Document-createElementNS_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/Document-getElementById_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/nodes/Document-getElementsByTagName_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/nodes/Document-importNode_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/nodes/DocumentType-remove_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/nodes/DOMImplementation-createDocument_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/nodes/DOMImplementation-createDocumentType_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/DOMImplementation-hasFeature_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/nodes/Element-childElementCount-dynamic-add_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/nodes/Element-childElementCount-dynamic-remove_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/nodes/Element-childElementCount_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/nodes/Node-appendChild_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/nodes/Node-appendChild_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/Node-cloneNode_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/Node-contains_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/dom/nodes/Node-insertBefore_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/nodes/Node-isEqualNode_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/nodes/Node-nodeName_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/nodes/Node-parentElement_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/nodes/Node-parentNode_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/nodes/Node-replaceChild_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/nodes/Node-textContent_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/ranges/Range-attributes_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/ranges/Range-attributes_t02: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/ranges/Range-comparePoint_t02: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/dom/ranges/Range-comparePoint_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+WebPlatformTest/dom/EventTarget/dispatchEvent_A04_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/dom/nodes/CharacterData/remove_A01_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/dom/nodes/CharacterData/remove_A01_t02: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/dom/nodes/CharacterData/remove_A02_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/dom/nodes/CharacterData/remove_A02_t02: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/dom/nodes/Comment-constructor_t01: Crash # unsupported element kind: _completer:field
+WebPlatformTest/dom/nodes/DOMImplementation-createDocumentType_t01: Crash # unsupported element kind: tests:field
+WebPlatformTest/dom/nodes/DOMImplementation-createDocument_t01: Crash # unsupported element kind: tests:field
+WebPlatformTest/dom/nodes/DOMImplementation-hasFeature_t01: Crash # unsupported element kind: badTests:field
+WebPlatformTest/dom/nodes/Document-createElementNS_t01: Crash # unsupported element kind: invalidNSQNameCombinations:field
+WebPlatformTest/dom/nodes/DocumentType-remove_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/dom/nodes/Node-cloneNode_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+WebPlatformTest/dom/nodes/Node-insertBefore_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/dom/nodes/Node-isEqualNode_t01: Crash # unsupported element kind: _completer:field
+WebPlatformTest/dom/nodes/Node-parentNode_t01: Crash # unsupported element kind: _completer:field
+WebPlatformTest/dom/nodes/Node-replaceChild_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A03_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A05_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A06_t03: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+WebPlatformTest/dom/nodes/attributes/setAttribute_A06_t01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+WebPlatformTest/html-imports/link-import_t02: Crash # unsupported element kind: _completer:field
+WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-body-context_t01: Crash # (doTest): handleStaticFunctionGet: function(doTest)
+WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-context_t01: Crash # (doTest): handleStaticFunctionGet: function(doTest)
+WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-row-context_t01: Crash # (doTest): handleStaticFunctionGet: function(doTest)
+WebPlatformTest/html-templates/parsing-html-templates/creating-an-element-for-the-token/template-owner-document_t01: Crash # unsupported element kind: HTML5_VOID_ELEMENTS:field
+WebPlatformTest/html-templates/template-element/template-as-a-descendant_t01: Crash # (templateIsAChild): handleStaticFunctionGet: function(templateIsAChild)
+WebPlatformTest/html-templates/template-element/template-content_t01: Crash # (assert_not_equals): handleStaticFunctionGet: function(assert_not_equals)
 WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-image_t01: Crash # unsupported element kind: _completer:field
 WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-video_t01: Crash # unsupported element kind: _asyncCounter:field
 WebPlatformTest/html/browsers/browsing-the-web/read-text/load-text-plain_t01: Crash # unsupported element kind: _asyncCounter:field
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.body-getter_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.body-setter_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/dom/documents/dom-tree-accessors/Document.getElementsByClassName-null_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.getElementsByName-case_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.getElementsByName-id_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.getElementsByName-namespace_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.getElementsByName-newelements_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.getElementsByName-param_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.head_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.head_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t07: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/dom/documents/dom-tree-accessors/Element.getElementsByClassName-null_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/dom/documents/dom-tree-accessors/nameditem_t02: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/dom/documents/dom-tree-accessors/nameditem_t03: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/dom/documents/dom-tree-accessors/nameditem_t04: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/dom/documents/dom-tree-accessors/nameditem_t05: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/dom/documents/dom-tree-accessors/nameditem_t06: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/dom/elements/global-attributes/classlist-nonstring_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/dom/elements/global-attributes/dataset-delete_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/dom/elements/global-attributes/dataset-enumeration_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/dom/elements/global-attributes/dataset-get_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/dom/elements/global-attributes/dataset-set_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/dom/elements/global-attributes/id-name_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html-imports/link-import-null_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html-imports/link-import_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html-imports/link-import_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html-imports/loading-import_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/disabled-elements/disabledElement_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/document-metadata/styling/LinkStyle_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/edits/the-del-element/del_effect_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/edits/the-ins-element/ins_effect_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/embedded-content/media-elements/error-codes/error_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLMediaElement/addTextTrack_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLMediaElement/textTracks_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/default_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/kind_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/label_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/readyState_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/srclang_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/src_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/track_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/cues_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/kind_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/mode_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/embedded-content/the-audio-element/audio_constructor_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formAction_document_address_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formaction_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/textfieldselection/selection-not-application-textarea_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/semantics/forms/textfieldselection/selection_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/textfieldselection/textfieldselection-setRangeText_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-button-element/button-validation_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-datalist-element/datalistelement_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-datalist-element/datalistoptions_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-fieldset-element/disabled_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-fieldset-element/HTMLFieldSetElement_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-form-element/form-autocomplete_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-form-element/form-elements-matches_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-form-element/form-elements-nameditem_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/semantics/forms/the-form-element/form-nameditem_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-input-element/color_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-input-element/date_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-input-element/datetime-local_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-input-element/datetime_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/semantics/forms/the-input-element/datetime_t02: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-input-element/email_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-input-element/hidden_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-input-element/input-textselection_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-input-element/input-type-button_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-input-element/input-type-checkbox_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-input-element/mobiles_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-input-element/month_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-input-element/password_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-input-element/pattern_attribute_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/semantics/forms/the-input-element/range_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-input-element/range_t02: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-input-element/required_attribute_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/semantics/forms/the-input-element/search_input_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-input-element/telephone_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-input-element/text_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-input-element/time_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-input-element/time_t02: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-input-element/type-change-state_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-input-element/url_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-input-element/valueMode_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-input-element/week_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-meter-element/meter_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-option-element/option-text-backslash_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/semantics/forms/the-option-element/option-text-recurse_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-option-element/option-text-spaces_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/forms/the-output-element/output_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/semantics/forms/the-textarea-element/textarea-type_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/semantics/grouping-content/the-blockquote-element/grouping-blockquote_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/grouping-content/the-li-element/grouping-li_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/grouping-content/the-ol-element/ol.start-reflection_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/semantics/grouping-content/the-ol-element/ol.start-reflection_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/semantics/interactive-elements/the-details-element/toggleEvent_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/interactive-elements/the-dialog-element/dialog-close_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/interactive-elements/the-dialog-element/dialog-showModal_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/scripting-1/the-script-element/async_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/scripting-1/the-script-element/async_t02: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/scripting-1/the-script-element/async_t11: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/scripting-1/the-script-element/script-text_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/scripting-1/the-script-element/script-text_t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/semantics/selectors/pseudo-classes/checked_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/selectors/pseudo-classes/default_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/selectors/pseudo-classes/dir_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/selectors/pseudo-classes/disabled_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/selectors/pseudo-classes/enabled_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/selectors/pseudo-classes/focus_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/selectors/pseudo-classes/indeterminate_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/selectors/pseudo-classes/inrange-outofrange_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/selectors/pseudo-classes/link_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/selectors/pseudo-classes/required-optional_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/selectors/pseudo-classes/valid-invalid_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/tabular-data/attributes-common-to-td-and-th-elements/cellIndex_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/tabular-data/the-caption-element/caption_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/tabular-data/the-table-element/border_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/tabular-data/the-table-element/caption-methods_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/tabular-data/the-table-element/createTBody_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/tabular-data/the-table-element/insertRow-method_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/semantics/tabular-data/the-table-element/insertRow-method_t02: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/tabular-data/the-table-element/table-insertRow_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/tabular-data/the-table-element/table-rows_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/tabular-data/the-table-element/tBodies_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/semantics/tabular-data/the-tr-element/rowIndex_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/text-level-semantics/the-a-element/a.text-getter_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/semantics/text-level-semantics/the-a-element/a.text-setter_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/syntax/parsing/Document.getElementsByTagName-foreign_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/syntax/parsing/Document.getElementsByTagName-foreign_t02: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/syntax/parsing/math-parse_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/syntax/parsing/math-parse_t03: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/syntax/serializing-html-fragments/outerHTML_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html-templates/additions-to-the-steps-to-clone-a-node/template-clone-children_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html-templates/additions-to-the-steps-to-clone-a-node/templates-copy-document-owner_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html-templates/definitions/template-contents-owner-document-type_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html-templates/definitions/template-contents-owner-test-001_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html-templates/definitions/template-contents_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html-templates/innerhtml-on-templates/innerhtml_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-foster-parenting/template-is-a-foster-parent-element_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-foster-parenting/template-is-not-a-foster-parent-element_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/generating-of-implied-end-tags_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/ignore-body-token_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/ignore-frameset-token_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/ignore-head-token_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/ignore-html-token_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/start-tag-body_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/template-end-tag-without-start-one_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-head-insertion-mode/generating-of-implied-end-tags_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-head-insertion-mode/template-end-tag-without-start-one_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-table-insertion-mode/end-tag-table_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html-templates/parsing-html-templates/appending-to-a-template/template-child-nodes_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-body-context_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-context_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-row-context_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html-templates/parsing-html-templates/creating-an-element-for-the-token/template-owner-document_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html-templates/serializing-html-templates/outerhtml_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html-templates/template-element/content-attribute_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html-templates/template-element/node-document-changes_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html-templates/template-element/template-as-a-descendant_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html-templates/template-element/template-content-node-document_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html-templates/template-element/template-content_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol_t00: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-001_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t02: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-005_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-006_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/elements-001_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-001_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-002_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-003_t01: Crash # (throw new ExpectException(message)): Unhandled node
+WebPlatformTest/html/dom/documents/dom-tree-accessors/nameditem_t02: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/html/dom/documents/dom-tree-accessors/nameditem_t03: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/html/dom/documents/dom-tree-accessors/nameditem_t04: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/html/dom/documents/dom-tree-accessors/nameditem_t05: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/html/dom/documents/dom-tree-accessors/nameditem_t06: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/html/semantics/embedded-content/media-elements/error-codes/error_t01: Crash # unsupported element kind: _completer:field
+WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/cues_t01: Crash # unsupported element kind: _completer:field
+WebPlatformTest/html/semantics/forms/the-datalist-element/datalistoptions_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/html/semantics/forms/the-fieldset-element/HTMLFieldSetElement_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/html/semantics/forms/the-form-element/form-elements-matches_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/html/semantics/forms/the-form-element/form-elements-nameditem_t02: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/html/semantics/forms/the-input-element/datetime_t01: Crash # Instance of 'TypeOperator': type casts not implemented.
+WebPlatformTest/html/semantics/forms/the-input-element/valueMode_t01: Crash #  Unhandled node
+WebPlatformTest/html/semantics/interactive-elements/the-details-element/toggleEvent_t01: Crash # unsupported element kind: asyncCompleted:field
+WebPlatformTest/html/semantics/scripting-1/the-script-element/script-text_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/html/semantics/selectors/pseudo-classes/checked_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/html/semantics/selectors/pseudo-classes/default_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/html/semantics/selectors/pseudo-classes/dir_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/html/semantics/selectors/pseudo-classes/disabled_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/html/semantics/selectors/pseudo-classes/enabled_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/html/semantics/selectors/pseudo-classes/focus_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/html/semantics/selectors/pseudo-classes/indeterminate_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/html/semantics/selectors/pseudo-classes/inrange-outofrange_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/html/semantics/selectors/pseudo-classes/link_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/html/semantics/selectors/pseudo-classes/required-optional_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/html/semantics/selectors/pseudo-classes/valid-invalid_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/html/semantics/tabular-data/the-table-element/createTBody_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/html/semantics/tabular-data/the-table-element/table-insertRow_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+WebPlatformTest/html/semantics/tabular-data/the-table-element/table-rows_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List<TableRowElement>.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/elements-001_t01: Crash # unsupported element kind: HTML5_ELEMENT_NAMES:field
 WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-event-interface/event-path-001_t01: Crash # unsupported element kind: _completer:field
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-007_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-008_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-009_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-010_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-011_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-012_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-013_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-001_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-002_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-005_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-006_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-007_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-010_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-001_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-002_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-003_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t02: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-005_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-006_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-001_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-002_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t02: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-004_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-005_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/events/event-dispatch/test-001_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/shadow-dom/events/event-dispatch/test-002_t01: Crash # (throw new ExpectException(message)): Unhandled node
+WebPlatformTest/shadow-dom/events/event-dispatch/test-001_t01: Crash # unsupported element kind: _completer:field
+WebPlatformTest/shadow-dom/events/event-dispatch/test-002_t01: Crash # unsupported element kind: _completer:field
 WebPlatformTest/shadow-dom/events/event-dispatch/test-003_t01: Crash # unsupported element kind: _completer:field
-WebPlatformTest/shadow-dom/events/event-retargeting/test-001_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
+WebPlatformTest/shadow-dom/events/event-retargeting/test-001_t01: Crash # unsupported element kind: _completer:field
 WebPlatformTest/shadow-dom/events/event-retargeting/test-002_t01: Crash # unsupported element kind: _completer:field
 WebPlatformTest/shadow-dom/events/event-retargeting/test-003_t01: Crash # unsupported element kind: _completer:field
-WebPlatformTest/shadow-dom/events/event-retargeting/test-004_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-001_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-002_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-003_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-004_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-005_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-006_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-007_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-008_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-009_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t02: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t03: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t04: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t05: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t06: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-002_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-003_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-001_t01: Crash # (throw new ExpectException(message)): Unhandled node
+WebPlatformTest/shadow-dom/events/event-retargeting/test-004_t01: Crash # unsupported element kind: _completer:field
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-001_t01: Crash # unsupported element kind: _completer:field
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-002_t01: Crash # unsupported element kind: _completer:field
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-003_t01: Crash # unsupported element kind: _completer:field
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-004_t01: Crash # unsupported element kind: _completer:field
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-005_t01: Crash # unsupported element kind: _completer:field
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-006_t01: Crash # unsupported element kind: _completer:field
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-007_t01: Crash # unsupported element kind: _completer:field
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-008_t01: Crash # unsupported element kind: _completer:field
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-009_t01: Crash # unsupported element kind: _completer:field
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t01: Crash # unsupported element kind: _completer:field
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t02: Crash # unsupported element kind: _completer:field
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t05: Crash # unsupported element kind: _completer:field
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t06: Crash # unsupported element kind: _completer:field
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-002_t01: Crash # unsupported element kind: _completer:field
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-003_t01: Crash # unsupported element kind: _completer:field
+WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-001_t01: Crash # unsupported element kind: _completer:field
 WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-002_t01: Crash # unsupported element kind: _completer:field
-WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-003_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-001_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-002_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-003_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-004_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-001_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-002_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/inert-html-elements/test-002_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/shadow-dom/shadow-trees/composition/test-001_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/shadow-dom/shadow-trees/custom-pseudo-elements/test-001_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-001_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-002_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-001_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-002_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-003_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/distribution-003_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-003_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-004_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-005_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/shadow-dom/shadow-trees/nested-shadow-trees/test-001_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/shadow-dom/shadow-trees/rendering-shadow-trees/test-001_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/shadow-dom/shadow-trees/reprojection/test-001_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-001_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-002_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-003_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-004_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-005_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-006_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-017_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-002_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-001_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-002_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-001_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-002_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/shadow-root-001_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-005_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-007_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-009_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-011_t01: Crash # (throw '${testName}: ${e}'): Unhandled node
-WebPlatformTest/Utils/test/asyncTestFail_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/Utils/test/asyncTestFail_t02: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/Utils/test/asyncTestPass_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/Utils/test/asyncTestTimeout_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/Utils/test/testFail_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/Utils/test/testPass_t01: Crash # (throw new ExpectException(message)): Unhandled node
+WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-001_t01: Crash # unsupported element kind: HTML5_FORM_ASSOCIATED_ELEMENTS:field
+WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-002_t01: Crash # unsupported element kind: HTML5_FORM_ASSOCIATED_ELEMENTS:field
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-002_t01: Crash # (testElement): handleStaticFunctionGet: function(testElement)
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-005_t01: Crash # unsupported element kind: HTML5_FORM_ASSOCIATED_ELEMENTS:field
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-007_t01: Crash # unsupported element kind: HTML5_FORM_ASSOCIATED_ELEMENTS:field
 WebPlatformTest/webstorage/event_constructor_t01: Crash # unsupported element kind: _completer:field
 WebPlatformTest/webstorage/event_constructor_t02: Crash # unsupported element kind: _completer:field
 WebPlatformTest/webstorage/event_local_key_t01: Crash # unsupported element kind: _completer:field
@@ -17284,18 +11596,4 @@
 WebPlatformTest/webstorage/event_session_storagearea_t01: Crash # unsupported element kind: _completer:field
 WebPlatformTest/webstorage/event_session_storageeventinit_t01: Crash # unsupported element kind: _completer:field
 WebPlatformTest/webstorage/event_session_url_t01: Crash # unsupported element kind: _completer:field
-WebPlatformTest/webstorage/storage_builtins_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/webstorage/storage_clear_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/webstorage/storage_local_getitem_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/webstorage/storage_local_key_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/webstorage/storage_local_length_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/webstorage/storage_local_remove_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/webstorage/storage_local_setitem_quotaexceedederr_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/webstorage/storage_local_setitem_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/webstorage/storage_session_getitem_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/webstorage/storage_session_getitem_t02: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/webstorage/storage_session_key_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/webstorage/storage_session_length_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/webstorage/storage_session_removeitem_t01: Crash # (throw new ExpectException(message)): Unhandled node
-WebPlatformTest/webstorage/storage_session_setitem_quotaexceedederr_t01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-WebPlatformTest/webstorage/storage_session_setitem_t01: Crash # (throw new ExpectException(message)): Unhandled node
+WebPlatformTest/webstorage/storage_builtins_t01: Crash # Instance of 'TypeOperator': type check unimplemented for List.
diff --git a/tests/co19/co19-runtime.status b/tests/co19/co19-runtime.status
index b7d8699..b5c5bc4c 100644
--- a/tests/co19/co19-runtime.status
+++ b/tests/co19/co19-runtime.status
@@ -49,7 +49,6 @@
 Language/14_Libraries_and_Scripts/3_Parts_A01_t06: Fail
 
 [ $runtime == vm ]
-# These flaky tests also fail with dart2dart.
 LibTest/math/MutableRectangle/MutableRectangle.fromPoints_A01_t01: Pass, RuntimeError # co19-roll r607: Please triage this failure
 
 [ $compiler == none && $runtime == vm && $mode == debug ]
diff --git a/tests/compiler/dart2js/analyze_unused_dart2js_test.dart b/tests/compiler/dart2js/analyze_unused_dart2js_test.dart
index b0bdf8d..fe36410 100644
--- a/tests/compiler/dart2js/analyze_unused_dart2js_test.dart
+++ b/tests/compiler/dart2js/analyze_unused_dart2js_test.dart
@@ -29,10 +29,16 @@
       "The method 'error"],
   "lib/src/resolution/semantic_visitor_mixins.dart": const [
       "The method 'error"],
+  "lib/src/cps_ir/cps_ir_builder_task.dart": const [
+      "The method 'error"],
 
   // Uncalled type predicate.  Keep while related predicates are used.
   "lib/src/ssa/nodes.dart": const [
       "The method 'isArray' is never called"],
+
+  // Method in abstract class. Currently only instantiated trough tests.
+  "lib/src/constants/expressions.dart": const [
+      "The method 'readFromEnvironment' is never called"],
 };
 
 void main() {
diff --git a/tests/compiler/dart2js/compiler_helper.dart b/tests/compiler/dart2js/compiler_helper.dart
index 8953792..e139a0e 100644
--- a/tests/compiler/dart2js/compiler_helper.dart
+++ b/tests/compiler/dart2js/compiler_helper.dart
@@ -75,7 +75,7 @@
         new leg.ResolutionWorkItem(element, context);
     resolutionWork.run(compiler, compiler.enqueuer.resolution);
     leg.CodegenWorkItem work =
-        new leg.CodegenWorkItem(element, context);
+        new leg.CodegenWorkItem(compiler, element, context);
     compiler.phase = Compiler.PHASE_COMPILING;
     work.run(compiler, compiler.enqueuer.codegen);
     js.JavaScriptBackend backend = compiler.backend;
diff --git a/tests/compiler/dart2js/constant_expression_evaluate_test.dart b/tests/compiler/dart2js/constant_expression_evaluate_test.dart
new file mode 100644
index 0000000..2a2c41e
--- /dev/null
+++ b/tests/compiler/dart2js/constant_expression_evaluate_test.dart
@@ -0,0 +1,239 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file

+// for details. All rights reserved. Use of this source code is governed by a

+// BSD-style license that can be found in the LICENSE file.

+

+library dart2js.constants.expressions.evaluate_test;

+

+import 'dart:async';

+import 'package:async_helper/async_helper.dart';

+import 'package:expect/expect.dart';

+import 'package:compiler/src/constants/expressions.dart';

+import 'package:compiler/src/constants/values.dart';

+import 'package:compiler/src/constant_system_dart.dart';

+import 'package:compiler/src/core_types.dart';

+import 'package:compiler/src/dart2jslib.dart';

+import 'package:compiler/src/elements/elements.dart';

+import 'memory_compiler.dart';

+

+class TestData {

+  /// Declarations needed for the [constants].

+  final String declarations;

+  /// Tested constants.

+  final List constants;

+

+  const TestData(this.declarations, this.constants);

+}

+

+class ConstantData {

+  /// Source code for the constant expression.

+  final String code;

+  /// Map from environment to expected constant value as structured text.

+  final Map<Map<String, String>, String> expectedValues;

+

+  const ConstantData(this.code,

+                     this.expectedValues);

+}

+

+class MemoryEnvironment implements Environment {

+  final Compiler compiler;

+  final Map<String, String> env;

+

+  MemoryEnvironment(this.compiler, [this.env = const <String, String>{}]);

+

+  @override

+  String readFromEnvironment(String name) => env[name];

+}

+

+const List<TestData> DATA = const [

+  const TestData('', const [

+    const ConstantData('null', const { const {} : 'NullConstant' }),

+    const ConstantData('false', const { const {} : 'BoolConstant(false)' }),

+    const ConstantData('true', const { const {} : 'BoolConstant(true)' }),

+    const ConstantData('0', const { const {} : 'IntConstant(0)' }),

+    const ConstantData('0.0', const { const {} : 'DoubleConstant(0.0)' }),

+    const ConstantData('"foo"', const { const {} : 'StringConstant("foo")' }),

+    const ConstantData('1 + 2', const { const {} : 'IntConstant(3)' }),

+    const ConstantData('-(1)', const { const {} : 'IntConstant(-1)' }),

+    const ConstantData('identical(0, 1)',

+                       const { const {} : 'BoolConstant(false)' }),

+    const ConstantData('"a" "b"', const { const {} : 'StringConstant("ab")' }),

+    const ConstantData('identical',

+        const { const {} : 'FunctionConstant(identical)' }),

+    const ConstantData('true ? 0 : 1', const { const {} : 'IntConstant(0)' }),

+    const ConstantData('proxy',

+        const { const {} : 'ConstructedConstant(_Proxy())' }),

+    const ConstantData('Object', const { const {} : 'TypeConstant(Object)' }),

+    const ConstantData('const [0, 1]',

+        const { const {} : 'ListConstant([IntConstant(0), IntConstant(1)])' }),

+    const ConstantData('const <int>[0, 1]', const {

+        const {} : 'ListConstant(<int>[IntConstant(0), IntConstant(1)])' }),

+    const ConstantData('const {0: 1, 2: 3}',

+        const { const {} :

+          'MapConstant({IntConstant(0): IntConstant(1), '

+                       'IntConstant(2): IntConstant(3)})' }),

+    const ConstantData('const <int, int>{0: 1, 2: 3}',

+        const { const {} :

+          'MapConstant(<int, int>{IntConstant(0): IntConstant(1), '

+                                 'IntConstant(2): IntConstant(3)})' }),

+    const ConstantData(

+        'const bool.fromEnvironment("foo", defaultValue: false)',

+        const { const {} : 'BoolConstant(false)',

+                const {'foo': 'true'} : 'BoolConstant(true)'}),

+    const ConstantData(

+        'const int.fromEnvironment("foo", defaultValue: 42)',

+        const { const {} : 'IntConstant(42)',

+                const {'foo': '87'} : 'IntConstant(87)'}),

+    const ConstantData(

+        'const String.fromEnvironment("foo", defaultValue: "bar")',

+        const { const {} : 'StringConstant("bar")',

+                const {'foo': 'foo'} : 'StringConstant("foo")'}),

+  ]),

+  const TestData('''

+const a = const bool.fromEnvironment("foo", defaultValue: true);

+const b = const int.fromEnvironment("bar", defaultValue: 42);

+

+class A {

+  const A();

+}

+class B {

+  final field1;

+  const B(this.field1);

+}

+class C extends B {

+  final field2;

+  const C({field1: 42, this.field2: false}) : super(field1);

+  const C.named([field = false]) : this(field1: field, field2: field);

+}

+''', const [

+    const ConstantData('const Object()',

+        const { const {} : 'ConstructedConstant(Object())' }),

+    const ConstantData('const A()',

+        const { const {} : 'ConstructedConstant(A())' }),

+    const ConstantData('const B(0)',

+        const { const {} : 'ConstructedConstant(B(field1=IntConstant(0)))' }),

+    const ConstantData('const B(const A())',

+        const { const {} :

+          'ConstructedConstant(B(field1=ConstructedConstant(A())))' }),

+    const ConstantData('const C()', const { const {} :

+        'ConstructedConstant(C(field1=IntConstant(42),'

+                              'field2=BoolConstant(false)))' }),

+    const ConstantData('const C(field1: 87)', const { const {} :

+        'ConstructedConstant(C(field1=IntConstant(87),'

+                              'field2=BoolConstant(false)))' }),

+    const ConstantData('const C(field2: true)', const { const {} :

+        'ConstructedConstant(C(field1=IntConstant(42),'

+                              'field2=BoolConstant(true)))' }),

+    const ConstantData('const C.named()', const { const {} :

+        'ConstructedConstant(C(field1=BoolConstant(false),'

+                              'field2=BoolConstant(false)))' }),

+    const ConstantData('const C.named(87)', const { const {} :

+        'ConstructedConstant(C(field1=IntConstant(87),'

+                              'field2=IntConstant(87)))' }),

+    const ConstantData('const C(field1: a, field2: b)', const {

+        const {} :

+          'ConstructedConstant(C(field1=BoolConstant(true),'

+                                'field2=IntConstant(42)))',

+        const {'foo': 'false', 'bar': '87'} :

+          'ConstructedConstant(C(field1=BoolConstant(false),'

+                                'field2=IntConstant(87)))', }),

+  ]),

+  const TestData('''

+class A<T> implements B {

+  final field1;

+  const A({this.field1:42});

+}

+class B<S> implements C {

+  const factory B({field1}) = A<B<S>>;

+  // TODO(johnniwinther): Enable this when the constructor evaluator doesn't

+  // crash:

+  /*const factory B.named() = A<S>;*/

+}

+class C<U> {

+  const factory C({field1}) = A<B<double>>;

+}

+''', const [

+    const ConstantData('const A()',

+        const { const {} :

+          'ConstructedConstant(A<dynamic>(field1=IntConstant(42)))' }),

+    const ConstantData('const A<int>(field1: 87)',

+        const { const {} :

+          'ConstructedConstant(A<int>(field1=IntConstant(87)))' }),

+    const ConstantData('const B()',

+        const { const {} :

+          'ConstructedConstant(A<B<dynamic>>(field1=IntConstant(42)))' }),

+    const ConstantData('const B<int>()',

+        const { const {} :

+          'ConstructedConstant(A<B<int>>(field1=IntConstant(42)))' }),

+    const ConstantData('const B<int>(field1: 87)',

+        const { const {} :

+          'ConstructedConstant(A<B<int>>(field1=IntConstant(87)))' }),

+    const ConstantData('const C<int>(field1: 87)',

+        const { const {} :

+          'ConstructedConstant(A<B<double>>(field1=IntConstant(87)))' }),

+    // TODO(johnniwinther): Enable this when the constructor evaluator doesn't

+    // crash:

+    /*const ConstantData('const B<int>.named()',

+        const { const {} :

+          'ConstructedConstant(A<int>(field1=IntConstant(42)))' }),*/

+  ]),

+  const TestData('''

+const c = const int.fromEnvironment("foo", defaultValue: 5);

+const d = const int.fromEnvironment("bar", defaultValue: 10);

+

+class A {

+  final field;

+  const A(a, b) : field = a + b;

+}

+

+class B extends A {

+  const B(a) : super(a, a * 2);

+}

+''', const [

+    const ConstantData('const A(c, d)', const {

+        const {} :

+          'ConstructedConstant(A(field=IntConstant(15)))',

+        const {'foo': '7', 'bar': '11'} :

+          'ConstructedConstant(A(field=IntConstant(18)))', }),

+    const ConstantData('const B(d)', const {

+        const {} :

+          'ConstructedConstant(B(field=IntConstant(30)))',

+        const {'bar': '42'} :

+          'ConstructedConstant(B(field=IntConstant(126)))', }),

+  ]),

+];

+

+main() {

+  asyncTest(() => Future.forEach(DATA, testData));

+}

+

+Future testData(TestData data) {

+  StringBuffer sb = new StringBuffer();

+  sb.write('${data.declarations}\n');

+  Map constants = {};

+  data.constants.forEach((ConstantData constantData) {

+    String name = 'c${constants.length}';

+    sb.write('const $name = ${constantData.code};\n');

+    constants[name] = constantData;

+  });

+  sb.write('main() {}\n');

+  String source = sb.toString();

+  Compiler compiler = compilerFor(

+      {'main.dart': source}, options: ['--analyze-all']);

+  return compiler.runCompiler(Uri.parse('memory:main.dart')).then((_) {

+    var library = compiler.mainApp;

+    constants.forEach((String name, ConstantData data) {

+      FieldElement field = library.localLookup(name);

+      ConstantExpression constant = field.constant;

+      data.expectedValues.forEach(

+          (Map<String, String> env, String expectedText) {

+        Environment environment = new MemoryEnvironment(compiler, env);

+        ConstantValue value =

+            constant.evaluate(environment, DART_CONSTANT_SYSTEM);

+        String valueText = value.toStructuredString();

+        Expect.equals(expectedText, valueText,

+            "Unexpected value '${valueText}' for contant "

+            "`${constant.getText()}`, expected '${expectedText}'.");

+      });

+    });

+  });

+}

diff --git a/tests/compiler/dart2js/constant_expression_test.dart b/tests/compiler/dart2js/constant_expression_test.dart
new file mode 100644
index 0000000..c7fdaaf
--- /dev/null
+++ b/tests/compiler/dart2js/constant_expression_test.dart
@@ -0,0 +1,247 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library constant_expression_test;
+
+import 'dart:async';
+import 'package:async_helper/async_helper.dart';
+import 'package:expect/expect.dart';
+import 'package:compiler/src/constants/expressions.dart';
+import 'package:compiler/src/dart2jslib.dart';
+import 'package:compiler/src/elements/elements.dart';
+import 'memory_compiler.dart';
+
+class TestData {
+  /// Declarations needed for the [constants].
+  final String declarations;
+  /// Tested constants.
+  final List constants;
+
+  const TestData(this.declarations, this.constants);
+}
+
+class ConstantData {
+  /// Source code for the constant expression.
+  final String code;
+  /// The expected constant expression kind.
+  final ConstantExpressionKind kind;
+  /// ConstantExpression.getText() result if different from [code].
+  final String text;
+  /// The expected instance type for ConstructedConstantExpression.
+  final String type;
+  /// The expected instance fields for ConstructedConstantExpression.
+  final Map<String, String> fields;
+
+  const ConstantData(String code,
+                     this.kind,
+                     {String text,
+                      this.type,
+                      this.fields})
+      : this.code = code,
+        this.text = text != null ? text : code;
+}
+
+const List<TestData> DATA = const [
+  const TestData('', const [
+    const ConstantData('null', ConstantExpressionKind.NULL),
+    const ConstantData('false', ConstantExpressionKind.BOOL),
+    const ConstantData('true', ConstantExpressionKind.BOOL),
+    const ConstantData('0', ConstantExpressionKind.INT),
+    const ConstantData('0.0', ConstantExpressionKind.DOUBLE),
+    const ConstantData('"foo"', ConstantExpressionKind.STRING),
+    const ConstantData('1 + 2', ConstantExpressionKind.BINARY),
+    const ConstantData('-(1)', ConstantExpressionKind.UNARY, text: '-1'),
+    const ConstantData('identical(0, 1)', ConstantExpressionKind.IDENTICAL),
+    const ConstantData('"a" "b"', ConstantExpressionKind.CONCATENATE,
+                       text: '"ab"'),
+    const ConstantData('identical', ConstantExpressionKind.FUNCTION),
+    const ConstantData('true ? 0 : 1', ConstantExpressionKind.CONDITIONAL),
+    const ConstantData('proxy', ConstantExpressionKind.VARIABLE),
+    const ConstantData('Object', ConstantExpressionKind.TYPE),
+    const ConstantData('#name', ConstantExpressionKind.SYMBOL),
+    const ConstantData('const [0, 1]', ConstantExpressionKind.LIST),
+    const ConstantData('const <int>[0, 1]', ConstantExpressionKind.LIST),
+    const ConstantData('const {0: 1, 2: 3}', ConstantExpressionKind.MAP),
+    const ConstantData('const <int, int>{0: 1, 2: 3}',
+                       ConstantExpressionKind.MAP),
+    const ConstantData(
+        'const bool.fromEnvironment("foo", defaultValue: false)',
+        ConstantExpressionKind.BOOL_FROM_ENVIRONMENT),
+    const ConstantData(
+        'const int.fromEnvironment("foo", defaultValue: 42)',
+        ConstantExpressionKind.INT_FROM_ENVIRONMENT),
+    const ConstantData(
+        'const String.fromEnvironment("foo", defaultValue: "bar")',
+        ConstantExpressionKind.STRING_FROM_ENVIRONMENT),
+  ]),
+  const TestData('''
+class A {
+  const A();
+}
+class B {
+  final field1;
+  const B(this.field1);
+}
+class C extends B {
+  final field2;
+  const C({field1: 42, this.field2: false}) : super(field1);
+  const C.named([field = false]) : this(field1: field, field2: field);
+}
+''', const [
+    const ConstantData('const Object()',
+        ConstantExpressionKind.CONSTRUCTED,
+        type: 'Object', fields: const {}),
+    const ConstantData('const A()',
+        ConstantExpressionKind.CONSTRUCTED,
+        type: 'A', fields: const {}),
+    const ConstantData('const B(0)',
+        ConstantExpressionKind.CONSTRUCTED,
+        type: 'B',
+        fields: const {'field(B#field1)': '0'}),
+    const ConstantData('const B(const A())',
+        ConstantExpressionKind.CONSTRUCTED,
+        type: 'B',
+        fields: const {'field(B#field1)': 'const A()'}),
+    const ConstantData('const C()',
+        ConstantExpressionKind.CONSTRUCTED,
+        type: 'C',
+        fields: const {
+          'field(B#field1)': '42',
+          'field(C#field2)': 'false',
+        }),
+    const ConstantData('const C(field1: 87)',
+        ConstantExpressionKind.CONSTRUCTED,
+        type: 'C',
+        fields: const {
+          'field(B#field1)': '87',
+          'field(C#field2)': 'false',
+        }),
+    const ConstantData('const C(field2: true)',
+        ConstantExpressionKind.CONSTRUCTED,
+        type: 'C',
+        fields: const {
+          'field(B#field1)': '42',
+          'field(C#field2)': 'true',
+        }),
+    const ConstantData('const C.named()',
+        ConstantExpressionKind.CONSTRUCTED,
+        type: 'C',
+        fields: const {
+          'field(B#field1)': 'false',
+          'field(C#field2)': 'false',
+        }),
+    const ConstantData('const C.named(87)',
+        ConstantExpressionKind.CONSTRUCTED,
+        type: 'C',
+        fields: const {
+          'field(B#field1)': '87',
+          'field(C#field2)': '87',
+        }),
+  ]),
+  const TestData('''
+class A<T> implements B {
+  final field1;
+  const A({this.field1:42});
+}
+class B<S> implements C {
+  const factory B({field1}) = A<B<S>>;
+  // TODO(johnniwinther): Enable this when the constructor evaluator doesn't 
+  // crash:
+  /*const factory B.named() = A<S>;*/
+}
+class C<U> {
+  const factory C({field1}) = A<B<double>>;
+}
+''', const [
+    const ConstantData('const A()', ConstantExpressionKind.CONSTRUCTED,
+        type: 'A<dynamic>',
+        fields: const {'field(A#field1)': '42'}),
+    const ConstantData('const A<int>(field1: 87)',
+        ConstantExpressionKind.CONSTRUCTED,
+        type: 'A<int>',
+        fields: const {'field(A#field1)': '87'}),
+    const ConstantData('const B()', ConstantExpressionKind.CONSTRUCTED,
+        type: 'A<B<dynamic>>',
+        fields: const {
+          'field(A#field1)': '42',
+        }),
+    const ConstantData('const B<int>()', ConstantExpressionKind.CONSTRUCTED,
+        type: 'A<B<int>>',
+        fields: const {
+          'field(A#field1)': '42',
+        }),
+    const ConstantData('const B<int>(field1: 87)',
+        ConstantExpressionKind.CONSTRUCTED,
+        type: 'A<B<int>>',
+        fields: const {
+          'field(A#field1)': '87',
+        }),
+    const ConstantData('const C<int>(field1: 87)',
+        ConstantExpressionKind.CONSTRUCTED,
+        type: 'A<B<double>>',
+        fields: const {
+          'field(A#field1)': '87',
+        }),
+    // TODO(johnniwinther): Enable this when the constructor evaluator doesn't
+    // crash:
+    /*const ConstantData('const B<int>.named()',
+        ConstantExpressionKind.CONSTRUCTED,
+        type: 'A<int>',
+        fields: const {
+          'field(A#field1)': '42',
+        }),*/
+  ]),
+];
+
+main() {
+  asyncTest(() => Future.forEach(DATA, testData));
+}
+
+Future testData(TestData data) {
+  StringBuffer sb = new StringBuffer();
+  sb.write('${data.declarations}\n');
+  Map constants = {};
+  data.constants.forEach((ConstantData constantData) {
+    String name = 'c${constants.length}';
+    sb.write('const $name = ${constantData.code};\n');
+    constants[name] = constantData;
+  });
+  sb.write('main() {}\n');
+  String source = sb.toString();
+  Compiler compiler = compilerFor(
+      {'main.dart': source}, options: ['--analyze-all']);
+  return compiler.runCompiler(Uri.parse('memory:main.dart')).then((_) {
+    var library = compiler.mainApp;
+    constants.forEach((String name, ConstantData data) {
+      FieldElement field = library.localLookup(name);
+      var constant = field.constant;
+      Expect.equals(data.kind, constant.kind,
+          "Unexpected kind '${constant.kind}' for contant "
+          "`${constant.getText()}`, expected '${data.kind}'.");
+      Expect.equals(data.text, constant.getText(),
+          "Unexpected text '${constant.getText()}' for contant, "
+          "expected '${data.text}'.");
+      if (data.type != null) {
+        String instanceType = constant.computeInstanceType().toString();
+        Expect.equals(data.type, instanceType,
+            "Unexpected type '$instanceType' for contant "
+            "`${constant.getText()}`, expected '${data.type}'.");
+      }
+      if (data.fields != null) {
+        Map instanceFields = constant.computeInstanceFields();
+        Expect.equals(data.fields.length, instanceFields.length,
+            "Unexpected field count ${instanceFields.length} for contant "
+            "`${constant.getText()}`, expected '${data.fields.length}'.");
+        instanceFields.forEach((field, expression) {
+          String name = '$field';
+          String expression = instanceFields[field].getText();
+          String expected = data.fields[name];
+          Expect.equals(expected, expression,
+              "Unexpected field expression ${expression} for field '$name' in "
+              "contant `${constant.getText()}`, expected '${expected}'.");
+        });
+      }
+    });
+  });
+}
diff --git a/tests/compiler/dart2js/deferred_inline_restrictions_test.dart b/tests/compiler/dart2js/deferred_inline_restrictions_test.dart
new file mode 100644
index 0000000..2bedda3
--- /dev/null
+++ b/tests/compiler/dart2js/deferred_inline_restrictions_test.dart
@@ -0,0 +1,137 @@
+// Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Test that we do not accidentially leak code from deferred libraries but do
+// allow inlining of empty functions and from main.
+
+import 'package:expect/expect.dart';
+import "package:async_helper/async_helper.dart";
+import 'memory_source_file_helper.dart';
+import "dart:async";
+
+import 'package:compiler/src/dart2jslib.dart'
+       as dart2js;
+
+class MemoryOutputSink extends EventSink<String> {
+  StringBuffer mem = new StringBuffer();
+  void add(String event) {
+    mem.write(event);
+  }
+  void addError(String event, [StackTrace stackTrace]) {
+    Expect.isTrue(false);
+  }
+  void close() {}
+}
+
+void main() {
+  Uri script = currentDirectory.resolveUri(Platform.script);
+  Uri libraryRoot = script.resolve('../../../sdk/');
+  Uri packageRoot = script.resolve('./packages/');
+
+  var provider = new MemorySourceFileProvider(MEMORY_SOURCE_FILES);
+  var handler = new FormattingDiagnosticHandler(provider);
+
+  Map<String, MemoryOutputSink> outputs = new Map<String, MemoryOutputSink>();
+
+  MemoryOutputSink outputSaver(name, extension) {
+    if (name == '') {
+      name = 'main';
+    }
+    return outputs.putIfAbsent("$name.$extension", () {
+      return new MemoryOutputSink();
+    });
+  }
+
+  Compiler compiler = new Compiler(provider.readStringFromUri,
+                                   outputSaver,
+                                   handler.diagnosticHandler,
+                                   libraryRoot,
+                                   packageRoot,
+                                   [],
+                                   {});
+  asyncTest(() => compiler.run(Uri.parse('memory:main.dart')).then((_) {
+    lookupLibrary(name) {
+      return compiler.libraryLoader.lookupLibrary(Uri.parse(name));
+    }
+
+    var outputUnitForElement = compiler.deferredLoadTask.outputUnitForElement;
+
+    var lib1 = lookupLibrary("memory:lib1.dart");
+    var inlineMeAway = lib1.find("inlineMeAway");
+    var ou_lib1 = outputUnitForElement(inlineMeAway);
+
+    var lib3 = lookupLibrary("memory:lib3.dart");
+    var sameContextInline = lib3.find("sameContextInline");
+    var ou_lib3 = outputUnitForElement(sameContextInline);
+
+    // Test that we actually got differnt output units.
+    Expect.notEquals(ou_lib1.name, ou_lib3.name);
+
+    String mainOutput = outputs["main.js"].mem.toString();
+    String lib1Output = outputs["out_${ou_lib1.name}.part.js"].mem.toString();
+    String lib3Output = outputs["out_${ou_lib3.name}.part.js"].mem.toString();
+
+    RegExp re1 = new RegExp(r"inlined as empty");
+    RegExp re2 = new RegExp(r"inlined from main");
+    RegExp re3 = new RegExp(r"inlined from lib1");
+    RegExp re4 = new RegExp(r"inline same context");
+
+    // Test that inlineMeAway was inlined and its argument thus dropped.
+    Expect.isFalse(re1.hasMatch(mainOutput));
+
+    // Test that inlineFromMain was inlined and thus the string moved to lib1.
+    Expect.isFalse(re2.hasMatch(mainOutput));
+    Expect.isTrue(re2.hasMatch(lib1Output));
+
+    // Test that inlineFromLib1 was not inlined into main.
+    Expect.isFalse(re3.hasMatch(mainOutput));
+    Expect.isTrue(re3.hasMatch(lib1Output));
+
+    // Test that inlineSameContext was inlined into lib1.
+    Expect.isFalse(re4.hasMatch(lib3Output));
+    Expect.isTrue(re4.hasMatch(lib1Output));
+  }));
+}
+
+// Make sure that empty functions are inlined and that functions from
+// main also are inlined (assuming normal heuristics).
+const Map MEMORY_SOURCE_FILES = const {"main.dart": """
+import "dart:async";
+
+import 'lib1.dart' deferred as lib1;
+import 'lib2.dart' deferred as lib2;
+
+inlineFromMain(x) => "inlined from main" + x;
+
+void main() {
+  lib1.loadLibrary().then((_) {
+    lib2.loadLibrary().then((_) {
+      lib1.test();
+      lib2.test();
+      print(lib1.inlineMeAway("inlined as empty"));
+      print(lib1.inlineFromLib1("should stay"));
+    });
+  });
+}
+""", "lib1.dart": """
+import "main.dart" as main;
+import "lib3.dart" as lib3;
+
+inlineMeAway(x) {}
+
+inlineFromLib1(x) => "inlined from lib1" + x;
+
+test() {
+  print(main.inlineFromMain("should be inlined"));
+  print(lib3.sameContextInline("should be inlined"));
+}
+""", "lib2.dart": """
+import "lib3.dart" as lib3;
+
+test() {
+  print(lib3.sameContextInline("should be inlined"));
+}
+""", "lib3.dart": """
+sameContextInline(x) => "inline same context" + x;
+"""};
diff --git a/tests/compiler/dart2js/malformed_uri_test.dart b/tests/compiler/dart2js/malformed_uri_test.dart
new file mode 100644
index 0000000..d51e2dd
--- /dev/null
+++ b/tests/compiler/dart2js/malformed_uri_test.dart
@@ -0,0 +1,32 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Test that the compiler can handle missing files used in imports, exports,
+// part tags or as the main source file.
+
+library dart2js.test.malformed_uri;
+
+import 'package:expect/expect.dart';
+import "package:async_helper/async_helper.dart";
+import 'memory_compiler.dart';
+
+const MEMORY_SOURCE_FILES = const {
+  'main.dart': '''
+import '../../Udyn[mic ils/expect.dart';
+
+main () { print("Hi"); }
+''',
+};
+
+testMalformedUri() {
+  var collector = new DiagnosticCollector();
+  var compiler = compilerFor(MEMORY_SOURCE_FILES, diagnosticHandler: collector);
+  asyncTest(() => compiler.run(Uri.parse('memory:main.dart')).then((_) {
+    Expect.equals(1, collector.errors.length);
+  }));
+}
+
+void main() {
+  testMalformedUri();
+}
\ No newline at end of file
diff --git a/tests/compiler/dart2js/mock_compiler.dart b/tests/compiler/dart2js/mock_compiler.dart
index 978f924..3eb6a81 100644
--- a/tests/compiler/dart2js/mock_compiler.dart
+++ b/tests/compiler/dart2js/mock_compiler.dart
@@ -392,7 +392,7 @@
 class MockElement extends FunctionElementX {
   MockElement(Element enclosingElement)
       : super('', ElementKind.FUNCTION, Modifiers.EMPTY,
-              enclosingElement, false);
+              enclosingElement);
 
   get node => null;
 
diff --git a/tests/compiler/dart2js/mock_libraries.dart b/tests/compiler/dart2js/mock_libraries.dart
index 54d4490..296e18b 100644
--- a/tests/compiler/dart2js/mock_libraries.dart
+++ b/tests/compiler/dart2js/mock_libraries.dart
@@ -294,6 +294,8 @@
        }''',
   'JSMutableArray':
       'class JSMutableArray extends JSArray implements JSMutableIndexable {}',
+  'JSUnmodifiableArray':
+      'class JSUnmodifiableArray extends JSArray {}',
   'JSMutableIndexable':
       'abstract class JSMutableIndexable extends JSIndexable {}',
       'JSPositiveInt': 'class JSPositiveInt extends JSInt {}',
diff --git a/tests/compiler/dart2js/semantic_visitor_test.dart b/tests/compiler/dart2js/semantic_visitor_test.dart
index c227fa8..3d93724 100644
--- a/tests/compiler/dart2js/semantic_visitor_test.dart
+++ b/tests/compiler/dart2js/semantic_visitor_test.dart
@@ -1250,6 +1250,42 @@
     const Test.clazz(

         '''

         class B {

+          operator []=(a, b) {}

+        }

+        class C extends B {

+          m() => ++super[42];

+        }

+        ''',

+        const Visit(VisitKind.VISIT_UNRESOLVED_SUPER_GETTER_INDEX_PREFIX,

+                    index: '42',

+                    operator: '++')),

+    const Test.clazz(

+        '''

+        class B {

+        }

+        class C extends B {

+          m() => ++super[42];

+        }

+        ''',

+        const Visit(VisitKind.VISIT_UNRESOLVED_SUPER_GETTER_INDEX_PREFIX,

+                    index: '42',

+                    operator: '++')),

+    const Test.clazz(

+        '''

+        class B {

+          operator [](_) => null;

+        }

+        class C extends B {

+          m() => ++super[42];

+        }

+        ''',

+        const Visit(VisitKind.VISIT_UNRESOLVED_SUPER_SETTER_INDEX_PREFIX,

+                    getter: 'function(B#[])',

+                    index: '42',

+                    operator: '++')),

+    const Test.clazz(

+        '''

+        class B {

           operator [](_) => null;

           operator []=(a, b) {}

         }

@@ -1262,6 +1298,42 @@
                     setter: 'function(B#[]=)',

                     index: '42',

                     operator: '--')),

+    const Test.clazz(

+        '''

+        class B {

+          operator []=(a, b) {}

+        }

+        class C extends B {

+          m() => super[42]--;

+        }

+        ''',

+        const Visit(VisitKind.VISIT_UNRESOLVED_SUPER_GETTER_INDEX_POSTFIX,

+                    index: '42',

+                    operator: '--')),

+    const Test.clazz(

+        '''

+        class B {

+        }

+        class C extends B {

+          m() => super[42]--;

+        }

+        ''',

+        const Visit(VisitKind.VISIT_UNRESOLVED_SUPER_GETTER_INDEX_POSTFIX,

+                    index: '42',

+                    operator: '--')),

+    const Test.clazz(

+        '''

+        class B {

+          operator [](_) => null;

+        }

+        class C extends B {

+          m() => super[42]--;

+        }

+        ''',

+        const Visit(VisitKind.VISIT_UNRESOLVED_SUPER_SETTER_INDEX_POSTFIX,

+                    getter: 'function(B#[])',

+                    index: '42',

+                    operator: '--')),

   ],

   'Equals': const [

     // Equals

@@ -1377,6 +1449,16 @@
         ''',

         const Visit(VisitKind.VISIT_SUPER_INDEX_SET,

             element: 'function(B#[]=)', index: '1', rhs: '2')),

+    const Test.clazz(

+        '''

+        class B {

+        }

+        class C extends B {

+          m() => super[1] = 2;

+        }

+        ''',

+        const Visit(VisitKind.VISIT_UNRESOLVED_SUPER_INDEX_SET,

+            index: '1', rhs: '2')),

   ],

   'Compound assignment': const [

     // Compound assignment

@@ -1705,8 +1787,7 @@
         ''',

         const Visit(VisitKind.VISIT_COMPOUND_INDEX_SET,

             receiver: '0', index: '1', operator: '+=', rhs: '42')),

-    // TODO(johnniwinther): Enable this when the getter element is stored.

-    /*const Test.clazz(

+    const Test.clazz(

         '''

         class B {

           operator [](_) {}

@@ -1718,7 +1799,40 @@
         ''',

         const Visit(VisitKind.VISIT_SUPER_COMPOUND_INDEX_SET,

             getter: 'function(B#[])', setter: 'function(B#[]=)',

-            index: '1', operator: '+=', rhs: '42')),*/

+            index: '1', operator: '+=', rhs: '42')),

+    const Test.clazz(

+        '''

+        class B {

+          operator []=(a, b) {}

+        }

+        class C extends B {

+          m() => super[1] += 42;

+        }

+        ''',

+        const Visit(VisitKind.VISIT_UNRESOLVED_SUPER_GETTER_COMPOUND_INDEX_SET,

+            index: '1', operator: '+=', rhs: '42')),

+    const Test.clazz(

+        '''

+        class B {

+        }

+        class C extends B {

+          m() => super[1] += 42;

+        }

+        ''',

+        const Visit(VisitKind.VISIT_UNRESOLVED_SUPER_GETTER_COMPOUND_INDEX_SET,

+            index: '1', operator: '+=', rhs: '42')),

+    const Test.clazz(

+        '''

+        class B {

+          operator [](_) {}

+        }

+        class C extends B {

+          m() => super[1] += 42;

+        }

+        ''',

+        const Visit(VisitKind.VISIT_UNRESOLVED_SUPER_SETTER_COMPOUND_INDEX_SET,

+            getter: 'function(B#[])',

+            index: '1', operator: '+=', rhs: '42')),

   ],

   'Prefix expression': const [

     // Prefix expression

@@ -2268,16 +2382,14 @@
         m() => new Class.unresolved(true, 42);

         ''',

         const Visit(

-            VisitKind.ERROR_UNRESOLVED_CONSTRUCTOR_INVOKE,

+            VisitKind.VISIT_UNRESOLVED_CONSTRUCTOR_INVOKE,

             arguments: '(true,42)')),

     const Test(

         '''

         m() => new Unresolved(true, 42);

         ''',

         const Visit(

-            // TODO(johnniwinther): Update this to

-            // `VisitKind.ERROR_UNRESOLVED_CLASS_CONSTRUCTOR_INVOKE`.

-            VisitKind.ERROR_UNRESOLVED_CONSTRUCTOR_INVOKE,

+            VisitKind.VISIT_UNRESOLVED_CLASS_CONSTRUCTOR_INVOKE,

             arguments: '(true,42)')),

     const Test(

         '''

@@ -2285,7 +2397,7 @@
         m() => new AbstractClass();

         ''',

         const Visit(

-            VisitKind.ERROR_ABSTRACT_CLASS_CONSTRUCTOR_INVOKE,

+            VisitKind.VISIT_ABSTRACT_CLASS_CONSTRUCTOR_INVOKE,

             element: 'generative_constructor(AbstractClass#)',

             type: 'AbstractClass',

             arguments: '()',

@@ -2298,11 +2410,11 @@
         m() => new Class(true, 42);

         ''',

         const Visit(

-            VisitKind.ERROR_UNRESOLVED_REDIRECTING_FACTORY_CONSTRUCTOR_INVOKE,

+            VisitKind.VISIT_UNRESOLVED_REDIRECTING_FACTORY_CONSTRUCTOR_INVOKE,

             element: 'function(Class#)',

             arguments: '(true,42)',

             type: 'Class',

-            selector: 'Selector(call, , arity=2)')),

+            selector: 'CallStructure(arity=2)')),

     const Test(

         '''

         class Class {

@@ -2311,11 +2423,11 @@
         m() => new Class(true, 42);

         ''',

         const Visit(

-            VisitKind.ERROR_UNRESOLVED_REDIRECTING_FACTORY_CONSTRUCTOR_INVOKE,

+            VisitKind.VISIT_UNRESOLVED_REDIRECTING_FACTORY_CONSTRUCTOR_INVOKE,

             element: 'function(Class#)',

             arguments: '(true,42)',

             type: 'Class',

-            selector: 'Selector(call, , arity=2)')),

+            selector: 'CallStructure(arity=2)')),

     const Test(

         '''

         class Class {

@@ -2325,11 +2437,11 @@
         m() => new Class(true, 42);

         ''',

         const Visit(

-            VisitKind.ERROR_UNRESOLVED_REDIRECTING_FACTORY_CONSTRUCTOR_INVOKE,

+            VisitKind.VISIT_UNRESOLVED_REDIRECTING_FACTORY_CONSTRUCTOR_INVOKE,

             element: 'function(Class#)',

             arguments: '(true,42)',

             type: 'Class',

-            selector: 'Selector(call, , arity=2)')),

+            selector: 'CallStructure(arity=2)')),

     const Test(

         '''

         abstract class AbstractClass {

@@ -2341,11 +2453,11 @@
         m() => new Class(true, 42);

         ''',

         const Visit(

-            VisitKind.ERROR_UNRESOLVED_REDIRECTING_FACTORY_CONSTRUCTOR_INVOKE,

+            VisitKind.VISIT_UNRESOLVED_REDIRECTING_FACTORY_CONSTRUCTOR_INVOKE,

             element: 'function(Class#)',

             arguments: '(true,42)',

             type: 'Class',

-            selector: 'Selector(call, , arity=2)')),

+            selector: 'CallStructure(arity=2)')),

   ],

 };

 

@@ -2381,7 +2493,8 @@
               index: 0),

           const Visit(VisitKind.VISIT_OPTIONAL_PARAMETER_DECL,

               element: 'parameter(m#b)',

-              index: 1),

+              index: 1,

+              constant: 'null'),

         ]),

     const Test(

         '''

@@ -2430,7 +2543,8 @@
               element: 'parameter(m#a)',

               index: 0),

           const Visit(VisitKind.VISIT_NAMED_PARAMETER_DECL,

-              element: 'parameter(m#b)'),

+              element: 'parameter(m#b)',

+              constant: 'null'),

         ]),

     const Test(

         '''

@@ -5184,44 +5298,97 @@
   }

 

   @override

-  errorUnresolvedSuperCompoundIndexSet(

+  visitUnresolvedSuperGetterCompoundIndexSet(

       Send node,

-      ErroneousElement element,

+      Element element,

       Node index,

       AssignmentOperator operator,

       Node rhs,

       arg) {

-    // TODO: implement errorUnresolvedSuperCompoundIndexSet

+    visits.add(new Visit(

+        VisitKind.VISIT_UNRESOLVED_SUPER_GETTER_COMPOUND_INDEX_SET,

+        index: index, operator: operator, rhs: rhs));

+    apply(index, arg);

+    apply(rhs, arg);

   }

 

   @override

-  errorUnresolvedSuperIndexSet(

+  visitUnresolvedSuperSetterCompoundIndexSet(

+      Send node,

+      MethodElement getter,

+      Element element,

+      Node index,

+      AssignmentOperator operator,

+      Node rhs,

+      arg) {

+    visits.add(new Visit(

+        VisitKind.VISIT_UNRESOLVED_SUPER_SETTER_COMPOUND_INDEX_SET,

+        getter: getter, index: index, operator: operator, rhs: rhs));

+    apply(index, arg);

+    apply(rhs, arg);

+  }

+

+  @override

+  visitUnresolvedSuperIndexSet(

       Send node,

       ErroneousElement element,

       Node index,

       Node rhs,

       arg) {

-    // TODO: implement errorUnresolvedSuperIndexSet

+    visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_SUPER_INDEX_SET,

+               index: index, rhs: rhs));

+    apply(index, arg);

+    apply(rhs, arg);

   }

 

   @override

-  errorUnresolvedSuperIndexPostfix(

+  visitUnresolvedSuperGetterIndexPostfix(

       Send node,

-      Element function,

+      Element element,

       Node index,

       IncDecOperator operator,

       arg) {

-    // TODO: implement errorUnresolvedSuperIndexPostfix

+    visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_SUPER_GETTER_INDEX_POSTFIX,

+               index: index, operator: operator));

+    apply(index, arg);

   }

 

   @override

-  errorUnresolvedSuperIndexPrefix(

+  visitUnresolvedSuperSetterIndexPostfix(

       Send node,

-      Element function,

+      MethodElement getter,

+      Element element,

       Node index,

       IncDecOperator operator,

       arg) {

-    // TODO: implement errorUnresolvedSuperIndexPrefix

+    visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_SUPER_SETTER_INDEX_POSTFIX,

+               getter: getter, index: index, operator: operator));

+    apply(index, arg);

+  }

+

+  @override

+  visitUnresolvedSuperGetterIndexPrefix(

+      Send node,

+      Element element,

+      Node index,

+      IncDecOperator operator,

+      arg) {

+    visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_SUPER_GETTER_INDEX_PREFIX,

+               index: index, operator: operator));

+    apply(index, arg);

+  }

+

+  @override

+  visitUnresolvedSuperSetterIndexPrefix(

+      Send node,

+      MethodElement getter,

+      Element element,

+      Node index,

+      IncDecOperator operator,

+      arg) {

+    visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_SUPER_SETTER_INDEX_PREFIX,

+               getter: getter, index: index, operator: operator));

+    apply(index, arg);

   }

 

   @override

@@ -5279,31 +5446,31 @@
   }

 

   @override

-  errorUnresolvedClassConstructorInvoke(

-      NewExpression node,

-      Element constructor,

-      MalformedType type,

-      NodeList arguments,

-      Selector selector,

-      arg) {

-    // TODO(johnniwinther): Test [type] and [selector].

-    visits.add(new Visit(

-        VisitKind.ERROR_UNRESOLVED_CLASS_CONSTRUCTOR_INVOKE,

-        arguments: arguments));

-    apply(arguments, arg);

-  }

-

-  @override

-  errorUnresolvedConstructorInvoke(

+  visitUnresolvedClassConstructorInvoke(

       NewExpression node,

       Element constructor,

       DartType type,

       NodeList arguments,

       Selector selector,

       arg) {

-    // TODO(johnniwinther): Test [type] and [selector].

+    // TODO(johnniwinther): Test [type] when it is not `dynamic`.

     visits.add(new Visit(

-        VisitKind.ERROR_UNRESOLVED_CONSTRUCTOR_INVOKE,

+        VisitKind.VISIT_UNRESOLVED_CLASS_CONSTRUCTOR_INVOKE,

+        arguments: arguments));

+    apply(arguments, arg);

+  }

+

+  @override

+  visitUnresolvedConstructorInvoke(

+      NewExpression node,

+      Element constructor,

+      DartType type,

+      NodeList arguments,

+      Selector selector,

+      arg) {

+    // TODO(johnniwinther): Test [type] when it is not `dynamic`.

+    visits.add(new Visit(

+        VisitKind.VISIT_UNRESOLVED_CONSTRUCTOR_INVOKE,

         arguments: arguments));

     apply(arguments, arg);

   }

@@ -5390,7 +5557,7 @@
   }

 

   @override

-  errorAbstractClassConstructorInvoke(

+  visitAbstractClassConstructorInvoke(

       NewExpression node,

       ConstructorElement constructor,

       InterfaceType type,

@@ -5398,7 +5565,7 @@
       CallStructure callStructure,

       arg) {

     visits.add(new Visit(

-        VisitKind.ERROR_ABSTRACT_CLASS_CONSTRUCTOR_INVOKE,

+        VisitKind.VISIT_ABSTRACT_CLASS_CONSTRUCTOR_INVOKE,

         element: constructor,

         type: type,

         arguments: arguments,

@@ -5407,19 +5574,19 @@
   }

 

   @override

-  errorUnresolvedRedirectingFactoryConstructorInvoke(

+  visitUnresolvedRedirectingFactoryConstructorInvoke(

       NewExpression node,

       ConstructorElement constructor,

       InterfaceType type,

       NodeList arguments,

-      Selector selector,

+      CallStructure callStructure,

       arg) {

     visits.add(new Visit(

-        VisitKind.ERROR_UNRESOLVED_REDIRECTING_FACTORY_CONSTRUCTOR_INVOKE,

+        VisitKind.VISIT_UNRESOLVED_REDIRECTING_FACTORY_CONSTRUCTOR_INVOKE,

         element: constructor,

         type: type,

         arguments: arguments,

-        selector: selector));

+        selector: callStructure));

     apply(arguments, arg);

   }

 }

@@ -5902,7 +6069,7 @@
   }

 

   @override

-  errorUnresolvedClassConstructorInvoke(

+  visitUnresolvedClassConstructorInvoke(

       NewExpression node,

       Element constructor,

       MalformedType type,

@@ -5911,13 +6078,13 @@
       arg) {

     // TODO(johnniwinther): Test [type] and [selector].

     visits.add(new Visit(

-        VisitKind.ERROR_UNRESOLVED_CLASS_CONSTRUCTOR_INVOKE,

+        VisitKind.VISIT_UNRESOLVED_CLASS_CONSTRUCTOR_INVOKE,

         arguments: arguments));

     apply(arguments, arg);

   }

 

   @override

-  errorUnresolvedConstructorInvoke(

+  visitUnresolvedConstructorInvoke(

       NewExpression node,

       Element constructor,

       DartType type,

@@ -5926,7 +6093,7 @@
       arg) {

     // TODO(johnniwinther): Test [type] and [selector].

     visits.add(new Visit(

-        VisitKind.ERROR_UNRESOLVED_CONSTRUCTOR_INVOKE,

+        VisitKind.VISIT_UNRESOLVED_CONSTRUCTOR_INVOKE,

         arguments: arguments));

     apply(arguments, arg);

   }

@@ -6013,7 +6180,7 @@
   }

 

   @override

-  errorAbstractClassConstructorInvoke(

+  visitAbstractClassConstructorInvoke(

       NewExpression node,

       ConstructorElement constructor,

       InterfaceType type,

@@ -6021,7 +6188,7 @@
       CallStructure callStructure,

       arg) {

     visits.add(new Visit(

-        VisitKind.ERROR_ABSTRACT_CLASS_CONSTRUCTOR_INVOKE,

+        VisitKind.VISIT_ABSTRACT_CLASS_CONSTRUCTOR_INVOKE,

         element: constructor,

         type: type,

         arguments: arguments,

@@ -6030,19 +6197,19 @@
   }

 

   @override

-  errorUnresolvedRedirectingFactoryConstructorInvoke(

+  visitUnresolvedRedirectingFactoryConstructorInvoke(

       NewExpression node,

       ConstructorElement constructor,

       InterfaceType type,

       NodeList arguments,

-      Selector selector,

+      CallStructure callStructure,

       arg) {

     visits.add(new Visit(

-        VisitKind.ERROR_UNRESOLVED_REDIRECTING_FACTORY_CONSTRUCTOR_INVOKE,

+        VisitKind.VISIT_UNRESOLVED_REDIRECTING_FACTORY_CONSTRUCTOR_INVOKE,

         element: constructor,

         type: type,

         arguments: arguments,

-        selector: selector));

+        selector: callStructure));

     apply(arguments, arg);

   }

 }

@@ -6176,7 +6343,11 @@
   VISIT_SUPER_EQUALS,

   VISIT_SUPER_NOT_EQUALS,

   VISIT_SUPER_INDEX_PREFIX,

+  VISIT_UNRESOLVED_SUPER_GETTER_INDEX_PREFIX,

+  VISIT_UNRESOLVED_SUPER_SETTER_INDEX_PREFIX,

   VISIT_SUPER_INDEX_POSTFIX,

+  VISIT_UNRESOLVED_SUPER_GETTER_INDEX_POSTFIX,

+  VISIT_UNRESOLVED_SUPER_SETTER_INDEX_POSTFIX,

 

   VISIT_UNARY,

   VISIT_SUPER_UNARY,

@@ -6220,7 +6391,10 @@
   VISIT_INDEX_SET,

   VISIT_COMPOUND_INDEX_SET,

   VISIT_SUPER_INDEX_SET,

+  VISIT_UNRESOLVED_SUPER_INDEX_SET,

   VISIT_SUPER_COMPOUND_INDEX_SET,

+  VISIT_UNRESOLVED_SUPER_GETTER_COMPOUND_INDEX_SET,

+  VISIT_UNRESOLVED_SUPER_SETTER_COMPOUND_INDEX_SET,

 

   VISIT_ASSERT,

   VISIT_LOGICAL_AND,

@@ -6239,10 +6413,10 @@
   VISIT_THIS_CONSTRUCTOR_INVOKE,

   VISIT_FIELD_INITIALIZER,

 

-  ERROR_UNRESOLVED_CLASS_CONSTRUCTOR_INVOKE,

-  ERROR_UNRESOLVED_CONSTRUCTOR_INVOKE,

-  ERROR_ABSTRACT_CLASS_CONSTRUCTOR_INVOKE,

-  ERROR_UNRESOLVED_REDIRECTING_FACTORY_CONSTRUCTOR_INVOKE,

+  VISIT_UNRESOLVED_CLASS_CONSTRUCTOR_INVOKE,

+  VISIT_UNRESOLVED_CONSTRUCTOR_INVOKE,

+  VISIT_ABSTRACT_CLASS_CONSTRUCTOR_INVOKE,

+  VISIT_UNRESOLVED_REDIRECTING_FACTORY_CONSTRUCTOR_INVOKE,

 

   VISIT_INSTANCE_GETTER_DECL,

   VISIT_INSTANCE_SETTER_DECL,

diff --git a/tests/compiler/dart2js/type_combination_test.dart b/tests/compiler/dart2js/type_combination_test.dart
index 6914aba..6063513 100644
--- a/tests/compiler/dart2js/type_combination_test.dart
+++ b/tests/compiler/dart2js/type_combination_test.dart
@@ -34,12 +34,14 @@
 TypeMask jsMutableArray;
 TypeMask jsFixedArray;
 TypeMask jsExtendableArray;
+TypeMask jsUnmodifiableArray;
 TypeMask jsString;
 TypeMask jsStringOrNull;
 TypeMask jsArrayOrNull;
 TypeMask jsMutableArrayOrNull;
 TypeMask jsFixedArrayOrNull;
 TypeMask jsExtendableArrayOrNull;
+TypeMask jsUnmodifiableArrayOrNull;
 TypeMask jsIndexableOrNull;
 TypeMask jsInterceptorOrNull;
 
@@ -113,6 +115,7 @@
   rule(emptyType, jsReadableArray, jsReadableArray);
   rule(emptyType, jsMutableArray, jsMutableArray);
   rule(emptyType, jsExtendableArray, jsExtendableArray);
+  rule(emptyType, jsUnmodifiableArray, jsUnmodifiableArray);
   rule(emptyType, nonPrimitive1, nonPrimitive1);
   rule(emptyType, nonPrimitive2, nonPrimitive2);
   rule(emptyType, potentialArray, potentialArray);
@@ -135,6 +138,7 @@
   rule(dynamicType, jsReadableArray, dynamicType);
   rule(dynamicType, jsMutableArray, dynamicType);
   rule(dynamicType, jsExtendableArray, dynamicType);
+  rule(dynamicType, jsUnmodifiableArray, dynamicType);
   rule(dynamicType, nonPrimitive1, dynamicType);
   rule(dynamicType, nonPrimitive2, dynamicType);
   rule(dynamicType, potentialArray, dynamicType);
@@ -156,6 +160,7 @@
   rule(jsBoolean, jsReadableArray, jsInterceptor);
   rule(jsBoolean, jsMutableArray, jsInterceptor);
   rule(jsBoolean, jsExtendableArray, jsInterceptor);
+  rule(jsBoolean, jsUnmodifiableArray, jsInterceptor);
   rule(jsBoolean, nonPrimitive1, objectType);
   rule(jsBoolean, nonPrimitive2, objectType);
   rule(jsBoolean, potentialArray, dynamicType);
@@ -176,6 +181,7 @@
   rule(jsNumber, jsReadableArray, jsInterceptor);
   rule(jsNumber, jsMutableArray, jsInterceptor);
   rule(jsNumber, jsExtendableArray, jsInterceptor);
+  rule(jsNumber, jsUnmodifiableArray, jsInterceptor);
   rule(jsNumber, nonPrimitive1, objectType);
   rule(jsNumber, nonPrimitive2, objectType);
   rule(jsNumber, potentialArray, dynamicType);
@@ -195,6 +201,7 @@
   rule(jsInteger, jsReadableArray, jsInterceptor);
   rule(jsInteger, jsMutableArray, jsInterceptor);
   rule(jsInteger, jsExtendableArray, jsInterceptor);
+  rule(jsInteger, jsUnmodifiableArray, jsInterceptor);
   rule(jsInteger, nonPrimitive1, objectType);
   rule(jsInteger, nonPrimitive2, objectType);
   rule(jsInteger, potentialArray, dynamicType);
@@ -213,6 +220,7 @@
   rule(jsDouble, jsReadableArray, jsInterceptor);
   rule(jsDouble, jsMutableArray, jsInterceptor);
   rule(jsDouble, jsExtendableArray, jsInterceptor);
+  rule(jsDouble, jsUnmodifiableArray, jsInterceptor);
   rule(jsDouble, nonPrimitive1, objectType);
   rule(jsDouble, nonPrimitive2, objectType);
   rule(jsDouble, potentialArray, dynamicType);
@@ -230,6 +238,7 @@
   rule(jsIndexable, jsReadableArray, jsIndexable);
   rule(jsIndexable, jsMutableArray, jsIndexable);
   rule(jsIndexable, jsExtendableArray, jsIndexable);
+  rule(jsIndexable, jsUnmodifiableArray, jsIndexable);
   rule(jsIndexable, nonPrimitive1, objectType);
   rule(jsIndexable, nonPrimitive2, objectType);
   rule(jsIndexable, potentialArray, dynamicType);
@@ -246,6 +255,7 @@
   rule(jsString, jsReadableArray, jsIndexable);
   rule(jsString, jsMutableArray, jsIndexable);
   rule(jsString, jsExtendableArray, jsIndexable);
+  rule(jsString, jsUnmodifiableArray, jsIndexable);
   rule(jsString, nonPrimitive1, objectType);
   rule(jsString, nonPrimitive2, objectType);
   rule(jsString, potentialArray, dynamicType);
@@ -261,6 +271,7 @@
   rule(jsReadableArray, jsReadableArray, jsReadableArray);
   rule(jsReadableArray, jsMutableArray, jsReadableArray);
   rule(jsReadableArray, jsExtendableArray, jsReadableArray);
+  rule(jsReadableArray, jsUnmodifiableArray, jsReadableArray);
   rule(jsReadableArray, nonPrimitive1, objectType);
   rule(jsReadableArray, nonPrimitive2, objectType);
   rule(jsReadableArray, potentialArray, potentialArray);
@@ -275,6 +286,7 @@
 
   rule(jsMutableArray, jsMutableArray, jsMutableArray);
   rule(jsMutableArray, jsExtendableArray, jsMutableArray);
+  rule(jsMutableArray, jsUnmodifiableArray, jsReadableArray);
   rule(jsMutableArray, nonPrimitive1, objectType);
   rule(jsMutableArray, nonPrimitive2, objectType);
   rule(jsMutableArray, potentialArray, potentialArray);
@@ -288,6 +300,7 @@
   rule(jsMutableArray, jsFixedArray, jsMutableArray);
 
   rule(jsExtendableArray, jsExtendableArray, jsExtendableArray);
+  rule(jsExtendableArray, jsUnmodifiableArray, jsReadableArray);
   rule(jsExtendableArray, nonPrimitive1, objectType);
   rule(jsExtendableArray, nonPrimitive2, objectType);
   rule(jsExtendableArray, potentialArray, potentialArray);
@@ -300,6 +313,19 @@
   rule(jsExtendableArray, nullType, jsExtendableArrayOrNull);
   rule(jsExtendableArray, jsFixedArray, jsMutableArray);
 
+  rule(jsUnmodifiableArray, jsUnmodifiableArray, jsUnmodifiableArray);
+  rule(jsUnmodifiableArray, nonPrimitive1, objectType);
+  rule(jsUnmodifiableArray, nonPrimitive2, objectType);
+  rule(jsUnmodifiableArray, potentialArray, potentialArray);
+  rule(jsUnmodifiableArray, potentialString, dynamicType);
+  rule(jsUnmodifiableArray, jsBooleanOrNull, jsInterceptorOrNull);
+  rule(jsUnmodifiableArray, jsNumberOrNull, jsInterceptorOrNull);
+  rule(jsUnmodifiableArray, jsIntegerOrNull, jsInterceptorOrNull);
+  rule(jsUnmodifiableArray, jsDoubleOrNull, jsInterceptorOrNull);
+  rule(jsUnmodifiableArray, jsStringOrNull, jsIndexableOrNull);
+  rule(jsUnmodifiableArray, nullType, jsUnmodifiableArrayOrNull);
+  rule(jsUnmodifiableArray, jsFixedArray, jsReadableArray);
+
   rule(nonPrimitive1, nonPrimitive1, nonPrimitive1);
   rule(nonPrimitive1, nonPrimitive2, objectType);
   rule(nonPrimitive1, potentialArray, dynamicType);
@@ -400,6 +426,7 @@
   rule(emptyType, jsReadableArray, emptyType);
   rule(emptyType, jsMutableArray, emptyType);
   rule(emptyType, jsExtendableArray, emptyType);
+  rule(emptyType, jsUnmodifiableArray, emptyType);
   rule(emptyType, nonPrimitive1, emptyType);
   rule(emptyType, nonPrimitive2, emptyType);
   rule(emptyType, potentialArray, emptyType);
@@ -422,6 +449,7 @@
   rule(dynamicType, jsReadableArray, jsReadableArray);
   rule(dynamicType, jsMutableArray, jsMutableArray);
   rule(dynamicType, jsExtendableArray, jsExtendableArray);
+  rule(dynamicType, jsUnmodifiableArray, jsUnmodifiableArray);
   rule(dynamicType, nonPrimitive1, nonPrimitive1);
   rule(dynamicType, nonPrimitive2, nonPrimitive2);
   rule(dynamicType, potentialArray, potentialArray);
@@ -443,6 +471,7 @@
   rule(jsBoolean, jsReadableArray, emptyType);
   rule(jsBoolean, jsMutableArray, emptyType);
   rule(jsBoolean, jsExtendableArray, emptyType);
+  rule(jsBoolean, jsUnmodifiableArray, emptyType);
   rule(jsBoolean, nonPrimitive1, emptyType);
   rule(jsBoolean, nonPrimitive2, emptyType);
   rule(jsBoolean, potentialArray, emptyType);
@@ -463,6 +492,7 @@
   rule(jsNumber, jsReadableArray, emptyType);
   rule(jsNumber, jsMutableArray, emptyType);
   rule(jsNumber, jsExtendableArray, emptyType);
+  rule(jsNumber, jsUnmodifiableArray, emptyType);
   rule(jsNumber, nonPrimitive1, emptyType);
   rule(jsNumber, nonPrimitive2, emptyType);
   rule(jsNumber, potentialArray, emptyType);
@@ -482,6 +512,7 @@
   rule(jsInteger, jsReadableArray, emptyType);
   rule(jsInteger, jsMutableArray, emptyType);
   rule(jsInteger, jsExtendableArray, emptyType);
+  rule(jsInteger, jsUnmodifiableArray, emptyType);
   rule(jsInteger, nonPrimitive1, emptyType);
   rule(jsInteger, nonPrimitive2, emptyType);
   rule(jsInteger, potentialArray, emptyType);
@@ -500,6 +531,7 @@
   rule(jsDouble, jsReadableArray, emptyType);
   rule(jsDouble, jsMutableArray, emptyType);
   rule(jsDouble, jsExtendableArray, emptyType);
+  rule(jsDouble, jsUnmodifiableArray, emptyType);
   rule(jsDouble, nonPrimitive1, emptyType);
   rule(jsDouble, nonPrimitive2, emptyType);
   rule(jsDouble, potentialArray, emptyType);
@@ -517,6 +549,7 @@
   rule(jsIndexable, jsReadableArray, jsReadableArray);
   rule(jsIndexable, jsMutableArray, jsMutableArray);
   rule(jsIndexable, jsExtendableArray, jsExtendableArray);
+  rule(jsIndexable, jsUnmodifiableArray, jsUnmodifiableArray);
   rule(jsIndexable, nonPrimitive1, emptyType);
   rule(jsIndexable, nonPrimitive2, emptyType);
   rule(jsIndexable, potentialArray, new TypeMask.nonNullSubtype(
@@ -535,6 +568,7 @@
   rule(jsString, jsReadableArray, emptyType);
   rule(jsString, jsMutableArray, emptyType);
   rule(jsString, jsExtendableArray, emptyType);
+  rule(jsString, jsUnmodifiableArray, emptyType);
   rule(jsString, nonPrimitive1, emptyType);
   rule(jsString, nonPrimitive2, emptyType);
   rule(jsString, potentialArray, emptyType);
@@ -550,6 +584,7 @@
   rule(jsReadableArray, jsReadableArray, jsReadableArray);
   rule(jsReadableArray, jsMutableArray, jsMutableArray);
   rule(jsReadableArray, jsExtendableArray, jsExtendableArray);
+  rule(jsReadableArray, jsUnmodifiableArray, jsUnmodifiableArray);
   rule(jsReadableArray, nonPrimitive1, emptyType);
   rule(jsReadableArray, nonPrimitive2, emptyType);
   rule(jsReadableArray, potentialArray, jsReadableArray);
@@ -564,6 +599,7 @@
 
   rule(jsMutableArray, jsMutableArray, jsMutableArray);
   rule(jsMutableArray, jsExtendableArray, jsExtendableArray);
+  rule(jsMutableArray, jsUnmodifiableArray, emptyType);
   rule(jsMutableArray, nonPrimitive1, emptyType);
   rule(jsMutableArray, nonPrimitive2, emptyType);
   rule(jsMutableArray, potentialArray, jsMutableArray);
@@ -577,6 +613,7 @@
   rule(jsMutableArray, jsFixedArray, jsFixedArray);
 
   rule(jsExtendableArray, jsExtendableArray, jsExtendableArray);
+  rule(jsExtendableArray, jsUnmodifiableArray, emptyType);
   rule(jsExtendableArray, nonPrimitive1, emptyType);
   rule(jsExtendableArray, nonPrimitive2, emptyType);
   rule(jsExtendableArray, potentialArray, jsExtendableArray);
@@ -589,6 +626,19 @@
   rule(jsExtendableArray, nullType, emptyType);
   rule(jsExtendableArray, jsFixedArray, emptyType);
 
+  rule(jsUnmodifiableArray, jsUnmodifiableArray, jsUnmodifiableArray);
+  rule(jsUnmodifiableArray, nonPrimitive1, emptyType);
+  rule(jsUnmodifiableArray, nonPrimitive2, emptyType);
+  rule(jsUnmodifiableArray, potentialArray, jsUnmodifiableArray);
+  rule(jsUnmodifiableArray, potentialString, emptyType);
+  rule(jsUnmodifiableArray, jsBooleanOrNull, emptyType);
+  rule(jsUnmodifiableArray, jsNumberOrNull, emptyType);
+  rule(jsUnmodifiableArray, jsIntegerOrNull, emptyType);
+  rule(jsUnmodifiableArray, jsDoubleOrNull, emptyType);
+  rule(jsUnmodifiableArray, jsStringOrNull, emptyType);
+  rule(jsUnmodifiableArray, nullType, emptyType);
+  rule(jsUnmodifiableArray, jsFixedArray, emptyType);
+
   rule(nonPrimitive1, nonPrimitive1, nonPrimitive1);
   rule(nonPrimitive1, nonPrimitive2, emptyType);
   rule(nonPrimitive1, potentialArray, emptyType);
@@ -717,6 +767,10 @@
         world);
     jsExtendableArray = new TypeMask.nonNullExact(
         backend.jsExtendableArrayClass, world);
+    jsUnmodifiableArrayOrNull =
+        new TypeMask.exact(backend.jsUnmodifiableArrayClass, world);
+    jsUnmodifiableArray =
+        new TypeMask.nonNullExact(backend.jsUnmodifiableArrayClass, world);
     jsIndexableOrNull = new TypeMask.subtype(backend.jsIndexableClass, world);
     jsIndexable = new TypeMask.nonNullSubtype(backend.jsIndexableClass, world);
     jsInterceptorOrNull = new TypeMask.subclass(backend.jsInterceptorClass,
diff --git a/tests/compiler/dart2js_extra/23404_test.dart b/tests/compiler/dart2js_extra/23404_test.dart
new file mode 100644
index 0000000..113d78a
--- /dev/null
+++ b/tests/compiler/dart2js_extra/23404_test.dart
@@ -0,0 +1,21 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Regression test for http://dartbug.com/23404/
+import 'package:expect/expect.dart';
+
+// Dart2js crashed when the global metadata had escaped characters. That
+// happens, for example, when tearing off a function that uses a default
+// argument containing escape characters.
+foo([a='\u00a0']) => a;
+bar() => '';
+
+@NoInline
+@AssumeDynamic
+confuse(x) => x;
+
+main() {
+  Expect.equals('\u00a0', confuse(foo)());
+  Expect.equals('', confuse(bar)());
+}
diff --git a/tests/compiler/dart2js_extra/dart2js_extra.status b/tests/compiler/dart2js_extra/dart2js_extra.status
index 22ae813..f0f9287 100644
--- a/tests/compiler/dart2js_extra/dart2js_extra.status
+++ b/tests/compiler/dart2js_extra/dart2js_extra.status
@@ -61,195 +61,85 @@
 deferred_fail_and_retry_worker_test: SkipByDesign # Uses eval to simulate failed loading.
 
 [ $compiler == dart2js && $cps_ir ]
-10216a_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-10216b_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+10216a_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+10216b_test: Crash # Instance of 'TypeOperator': type casts not implemented.
 11673_test: Crash # (use): handleStaticFunctionGet: function(use)
 12320_test: Crash # (run): handleStaticFunctionGet: function(run)
 16407_test: Crash # unsupported element kind: foo:field
-16967_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-17094_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-17645_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-17856_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-18383_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-19191_test: Crash # cannot compile methods that need interceptor calling convention.
+17094_test: RuntimeError # Please triage this failure.
+17645_test: Crash # unsupported element kind: log:field
+17856_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
 21166_test: Crash # unsupported element kind: a:field
-21579_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-21666_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+21666_test: Crash # Instance of 'TypeOperator': type check unimplemented for fInt.
 22487_test: Crash # (divIsInt): handleStaticFunctionGet: function(divIsInt)
 22868_test: Crash #  cannot handle async/sync*/async* functions
 22895_test: Crash #  cannot handle async/sync*/async* functions
 22917_test: Crash # (test): handleStaticFunctionGet: function(test)
-23056_test: Crash # cannot compile methods that need interceptor calling convention.
-23264_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+23264_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+23404_test: Crash # (foo): handleStaticFunctionGet: function(foo)
+LayoutTests_fast_mediastream_getusermedia_t01_test/01: Crash # Please triage this failure.
+LayoutTests_fast_mediastream_getusermedia_t01_test/none: Crash # (gotStream1): handleStaticFunctionGet: function(gotStream1)
 async_stacktrace_test/asyncStar: Crash # (runTests): handleStaticFunctionGet: function(runTests)
 async_stacktrace_test/none: Crash # (runTests): handleStaticFunctionGet: function(runTests)
 bailout8_test: Crash # (foo): handleStaticFunctionGet: function(foo)
-bailout_aborting_if_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-bailout_on_break_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-bailout_on_continue_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-bailout_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-bound_closure_interceptor_methods_test: Crash # cannot compile methods that need interceptor calling convention.
+bound_closure_interceptor_methods_test: Crash # unsupported element kind: getter2:field
 bound_closure_interceptor_type_test: Crash # unsupported element kind: checkers:field
-break_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-checked_accessor_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure5_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure6_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure7_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure_capture2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure_capture3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure_capture4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+checked_accessor_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
 closure_capture5_test: Crash # (i=0): For-loop variable captured in loop header
-closure_capture_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure_type_reflection2_test: Crash # cannot compile methods that need interceptor calling convention.
-closure_type_reflection_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 code_motion_exception_test: Crash # (call2a): handleStaticFunctionGet: function(call2a)
-compile_time_constant4_test/01: Crash # cannot compile methods that need interceptor calling convention.
-compile_time_constant4_test/02: Crash # cannot compile methods that need interceptor calling convention.
-compile_time_constant4_test/03: Crash # cannot compile methods that need interceptor calling convention.
-compile_time_constant4_test/04: Crash # cannot compile methods that need interceptor calling convention.
-compile_time_constant4_test/05: Crash # cannot compile methods that need interceptor calling convention.
-compile_time_constant4_test/06: Crash # cannot compile methods that need interceptor calling convention.
-compile_time_constant4_test/none: Crash # cannot compile methods that need interceptor calling convention.
-compound_operator_index_test: Crash # cannot compile methods that need interceptor calling convention.
-conditional_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-conflict_index_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constant_fold_number_dart2_j_s_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constant_javascript_semantics2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constant_javascript_semantics3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constant_javascript_semantics_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constant_javascript_semantics_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constant_javascript_semantics_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constant_javascript_semantics_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constant_javascript_semantics_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+constant_javascript_semantics2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+constant_javascript_semantics3_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
 deferred/deferred_class_test: Crash # (isError): handleStaticFunctionGet: function(isError)
 deferred/deferred_constant2_test: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
 deferred/deferred_constant3_test: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
 deferred/deferred_constant4_test: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
 deferred/deferred_function_test: Crash # (isError): handleStaticFunctionGet: function(isError)
 deferred/deferred_mirrors1_test: Crash # (lazy.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
-deferred/deferred_mirrors2_test: Crash # cannot compile methods that need interceptor calling convention.
 deferred/deferred_overlapping_test: Crash # (lib1.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
 deferred_fail_and_retry_test: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
 deferred_fail_and_retry_worker_test: Crash # (test): handleStaticFunctionGet: function(test)
-do_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-field_in_constructor_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-field_initializer_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-fields_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-first_class_types_hashcode_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-for_in_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-for_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-generics_factories_test: Crash # cannot compile methods that need interceptor calling convention.
-generics_is_check1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-getter_element_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-getters_setters_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-hash_code_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-if_in_loop_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-if_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-index_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-inference_nsm_mirrors_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-inferrer_is_int_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-interface_type_optimization_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-invoke_dynamic_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-is_check_instanceof_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-is_operator_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-LayoutTests_fast_mediastream_getusermedia_t01_test/01: Crash # (gotStream1): Error expression `gotStream1` unhandled.
-LayoutTests_fast_mediastream_getusermedia_t01_test/none: Crash # (gotStream1): handleStaticFunctionGet: function(gotStream1)
-list_factory_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-literal_string_juxtaposition_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-logical_and_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-logical_or_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-loop_if_phi_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-many_fields_test: Crash # cannot compile methods that need interceptor calling convention.
-math_lib_prefix_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-math_lib_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-member_namespace_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-minus_zero2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-minus_zero_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+do_test: Timeout # Please triage this failure.
+for_test: Timeout # Please triage this failure.
+generics_factories_test: Crash # Please triage this failure.
+generics_is_check1_test: Crash # Instance of 'TypeOperator': type check unimplemented for Hest<int>.
+hash_code_test: Crash # unsupported element kind: hash:field
+inference_nsm_mirrors_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+inferrer_is_int_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+interface_type_optimization_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+is_check_instanceof_test: Crash # Instance of 'TypeOperator': type check unimplemented for T.
 mirror_enqueuer_regression_test: Crash # unsupported element kind: foo:field
-mirror_invalid_field_access2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirror_invalid_field_access3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirror_invalid_field_access4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirror_invalid_field_access_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirror_invalid_invoke2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirror_invalid_invoke3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirror_invalid_invoke_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirror_printer_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors_declarations_filtering_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors_used_closure_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors_used_metatargets_test: Crash # (try {reflect(z).invoke(#foo,[] );}on UnsupportedError catch (e){caught=true;}): "on T" catch block
-mirrors_used_native_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+mirror_invalid_field_access2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirror_invalid_field_access3_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirror_invalid_field_access4_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirror_invalid_field_access_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirror_invalid_invoke2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirror_invalid_invoke3_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirror_invalid_invoke_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirror_printer_test: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+mirror_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors_declarations_filtering_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors_used_closure_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors_used_native_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
 mirrors_used_warning2_test: Crash # (runTests): handleStaticFunctionGet: function(runTests)
 mirrors_used_warning_test/minif: Crash # (runTests): handleStaticFunctionGet: function(runTests)
 mirrors_used_warning_test/none: Crash # (runTests): handleStaticFunctionGet: function(runTests)
-mirror_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirror_type_inference_field2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirror_type_inference_field_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirror_type_inference_function_test: Crash # cannot compile methods that need interceptor calling convention.
-named_parameter_for_static_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-named_parameter_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-nan_negate_test: Crash # cannot compile methods that need interceptor calling convention.
-no_such_method_mirrors_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-no_such_method_test: Crash # cannot compile methods that need interceptor calling convention.
-not_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-null_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-operator2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-operator3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-operator_equals_test: Crash # cannot compile methods that need interceptor calling convention.
-operator_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-optional_parameter_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-panda_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-phi_elimination_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-phi_gvn_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-phi_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-private_symbol_literal_test/01: Pass # Please triage this failure.
-private_symbol_literal_test/02: Pass # Please triage this failure.
-private_symbol_literal_test/03: Pass # Please triage this failure.
-private_symbol_literal_test/04: Pass # Please triage this failure.
-private_symbol_literal_test/05: Pass # Please triage this failure.
-private_symbol_literal_test/06: Pass # Please triage this failure.
-reflect_native_types_test: Crash # cannot compile methods that need interceptor calling convention.
-regress/4492_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regress/4515_1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regress/4515_2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regress/4515_3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regress/4639_test: Crash # cannot compile methods that need interceptor calling convention.
-regress/4740_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regression_2913_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-return_setter_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-runtime_type_int_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+no_such_method_mirrors_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+reflect_native_types_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+regress/4492_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+regress/4515_1_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+regress/4515_2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+regress/4740_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
 runtime_type_test: Crash # Please triage this failure.
-simple_string_constant_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-static_field2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-static_field_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-static_method2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-static_method_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-static_var_no_initializer_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-static_var_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_escape_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_interpolation_dynamic_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_interpolation_opt1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_interpolation_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-super_call_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-super_constructor1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-super_constructor2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-switch_test/01: Crash # (badswitches(42)): Error expression `badswitches(42)` unhandled.
-switch_test/02: Crash # (badswitches(42)): Error expression `badswitches(42)` unhandled.
+super_constructor1_test: RuntimeError # Please triage this failure.
+switch_test/01: Crash #  Unhandled node
+switch_test/02: Crash #  Unhandled node
 switch_test/none: Crash # (switch (val){}): Unhandled node
-this_phi_elimination_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-this_redirecting_constructor_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-this_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+this_phi_elimination_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
 timer_negative_test: Crash # (test): handleStaticFunctionGet: function(test)
 timer_test: Crash # (test): handleStaticFunctionGet: function(test)
-to_string_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_argument_factory_crash_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_argument_factory_nocrash_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_constant_switch_test/01: Pass # Please triage this failure.
+type_argument_factory_crash_test: Crash # Instance of 'TypeOperator': type check unimplemented for List<int>.
+type_argument_factory_nocrash_test: Crash # Instance of 'TypeOperator': type check unimplemented for List<int>.
 type_constant_switch_test/none: Crash # (switch (v){}): Unhandled node
-type_error_message_test: Crash # cannot compile methods that need interceptor calling convention.
-typevariable_factory_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typevariable_substitution_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-while_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+typevariable_factory_test: Crash # Instance of 'TypeOperator': type check unimplemented for A<T>.
+typevariable_substitution_test: Crash # Instance of 'TypeOperator': type check unimplemented for A<T>.
+while_test: Timeout # Please triage this failure.
diff --git a/tests/compiler/dart2js_native/dart2js_native.status b/tests/compiler/dart2js_native/dart2js_native.status
index 9eef5ac..307088e 100644
--- a/tests/compiler/dart2js_native/dart2js_native.status
+++ b/tests/compiler/dart2js_native/dart2js_native.status
@@ -28,114 +28,111 @@
 compute_this_script_test: Skip # Issue 17458
 
 [ $compiler == dart2js && $cps_ir ]
-abstract_class_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+abstract_class_test: Crash # unsupported element kind: foo:function
 bound_closure_super_test: Crash # (makeCC): handleStaticFunctionGet: function(makeCC)
 bound_closure_test: Crash # (makeCC): handleStaticFunctionGet: function(makeCC)
-browser_compat_1_prepatched_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-browser_compat_1_unpatched_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-browser_compat_2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+browser_compat_1_prepatched_test: Crash # unsupported element kind: getTagCallCount:function
+browser_compat_1_unpatched_test: Crash # unsupported element kind: getTagCallCount:function
+browser_compat_2_test: Crash # unsupported element kind: getTagCallCount:function
 catch_javascript_null_stack_trace_test: Crash # (JS('','(function () {throw null;})()')): handleStaticFunctionInvoke: foreign: function(JS)
 core_type_check_native_test: Crash # (checkTest): handleStaticFunctionGet: function(checkTest)
-downcast_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+downcast_test: Crash # Instance of 'TypeOperator': type casts not implemented.
 event_loop_test: Crash # (asyncEnd): handleStaticFunctionGet: function(asyncEnd)
-fake_thing_2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-fake_thing_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+fake_thing_2_test: Crash # unsupported element kind: make3:function
+fake_thing_test: Crash # unsupported element kind: make2:function
 field_type2_test: Crash # unsupported element kind: makeNode:function
-field_type_test: Crash # cannot compile methods that need interceptor calling convention.
-fixup_get_tag_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+field_type_test: Crash # unsupported element kind: makeNode:function
+fixup_get_tag_test: Crash # unsupported element kind: token:function
 foreign_test: Crash # (JS('bool','isNaN(#)',isNaN)): handleStaticFunctionInvoke: foreign: function(JS)
-hash_code_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-inference_of_helper_methods_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+hash_code_test: Crash # unsupported element kind: makeA:function
+inference_of_helper_methods_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
 internal_library_test: Crash # (startRootIsolate): handleStaticFunctionGet: function(startRootIsolate)
-is_check_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-issue9182_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+issue9182_test: Crash # unsupported element kind: makeA:function
 js_const_test: Crash # (JS('String',r'#.replace(#, #)',s1,re,fToUpper)): handleStaticFunctionInvoke: foreign: function(JS)
-jsobject_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirror_intercepted_field_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_call_arity1_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_call_arity2_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_call_arity3_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_checked_arguments1_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_checked_fields_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_class_avoids_hidden_name_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_class_fields_2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_class_fields_3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_class_fields_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_class_inheritance1_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_class_inheritance2_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_class_inheritance3_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_class_inheritance4_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_class_is_check1_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_class_is_check3_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_class_with_dart_methods_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+jsobject_test: Crash # unsupported element kind: makeQ:function
+mirror_intercepted_field_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+native_call_arity1_frog_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+native_call_arity2_frog_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+native_call_arity3_frog_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+native_checked_arguments1_frog_test: Crash # unsupported element kind: cmp:function
+native_checked_fields_frog_test: Crash # unsupported element kind: makeB:function
+native_class_avoids_hidden_name_frog_test: Crash # unsupported element kind: makeB:function
+native_class_fields_2_test: Crash # unsupported element kind: makeA:function
+native_class_fields_3_test: Crash # unsupported element kind: makeA:function
+native_class_fields_test: Crash # unsupported element kind: makeA:function
+native_class_inheritance1_frog_test: Crash # unsupported element kind: makeB2:function
+native_class_inheritance2_frog_test: Crash # unsupported element kind: foo:function
+native_class_inheritance3_frog_test: Crash # unsupported element kind: foo:function
+native_class_inheritance4_frog_test: Crash # unsupported element kind: makeB:function
+native_class_is_check1_frog_test: Crash # unsupported element kind: makeA:function
+native_class_is_check3_frog_test: Crash # unsupported element kind: makeB:function
+native_class_with_dart_methods_frog_test: Crash # unsupported element kind: makeA:function
 native_closure_identity_frog_test: Crash # (staticMethod): handleStaticFunctionGet: function(staticMethod)
-native_constructor_name_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_equals_frog_test: Crash # cannot compile methods that need interceptor calling convention.
-native_exception2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_exception_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_exceptions1_frog_test: Crash #  "on T" catch block
-native_field_invocation2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_field_invocation3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_field_invocation4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_field_invocation5_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_field_invocation6_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_field_invocation_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_field_name_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+native_constructor_name_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+native_equals_frog_test: Crash # unsupported element kind: makeA:function
+native_exception2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+native_exception_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+native_exceptions1_frog_test: Crash # unsupported element kind: op:function
+native_field_invocation2_test: Crash # unsupported element kind: nativeId:function
+native_field_invocation3_test: Crash # unsupported element kind: makeCC:function
+native_field_invocation4_test: Crash # unsupported element kind: nativeId:function
+native_field_invocation5_test: Crash # unsupported element kind: nativeFirst:function
+native_field_invocation6_test: Crash # unsupported element kind: nativeFirst:function
+native_field_invocation_test: Crash # unsupported element kind: nativeId:function
+native_field_name_test: Crash # unsupported element kind: makeA:function
 native_field_optimization_test: Crash # (test1): handleStaticFunctionGet: function(test1)
-native_field_rename_1_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_field_rename_2_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_library_same_name_used_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_method_inlining_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_method_rename1_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_method_rename2_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_method_rename3_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_method_with_keyword_name_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_mirror_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_missing_method1_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_missing_method2_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_mixin_field_test: Crash # cannot compile methods that need interceptor calling convention.
-native_mixin_multiple2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+native_field_rename_1_frog_test: Crash # unsupported element kind: native_key_method:function
+native_field_rename_2_frog_test: Crash # unsupported element kind: native_key_method:function
+native_library_same_name_used_frog_test: Crash # (JS('creates:Impl; returns:I;','makeI()')): handleStaticFunctionInvoke: foreign: function(JS)
+native_method_inlining_test: Crash # unsupported element kind: makeA:function
+native_method_rename1_frog_test: Crash # unsupported element kind: baz:function
+native_method_rename2_frog_test: Crash # unsupported element kind: foo:function
+native_method_rename3_frog_test: Crash # unsupported element kind: foo:function
+native_method_with_keyword_name_test: Crash # unsupported element kind: makeA:function
+native_mirror_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+native_missing_method1_frog_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+native_missing_method2_frog_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+native_mixin_field_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+native_mixin_multiple2_test: Crash # unsupported element kind: makeB:function
 native_mixin_multiple3_test: Crash # (callFoo): handleStaticFunctionGet: function(callFoo)
-native_mixin_multiple_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_mixin_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+native_mixin_multiple_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+native_mixin_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
 native_mixin_with_plain_test: Crash # (makeA): handleStaticFunctionGet: function(makeA)
-native_named_constructors2_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_named_constructors3_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_no_such_method_exception2_frog_test: Crash # (try {a.foo();}on NoSuchMethodError catch (e){exception=e;}): "on T" catch block
-native_no_such_method_exception3_frog_test: Crash # (try {a.foo();}on NoSuchMethodError catch (e){exception=e;}): "on T" catch block
-native_no_such_method_exception4_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_no_such_method_exception5_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_no_such_method_exception_frog_test: Crash # (try {a.foo();}on NoSuchMethodError catch (e){exception=e;}): "on T" catch block
-native_novel_html_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_null_closure_frog_test: Crash #  "on T" catch block
-native_null_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_property_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_to_string_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_use_native_name_in_table_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_window1_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_window2_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_wrapping_function3_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_wrapping_function_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-oddly_named_fields_test: Crash # cannot compile methods that need interceptor calling convention.
-only_pass_on_d8_test: Crash # cannot compile methods that need interceptor calling convention.
-only_pass_on_jsshell_test: Crash # cannot compile methods that need interceptor calling convention.
+native_named_constructors2_frog_test: Crash # unsupported element kind: foo:function
+native_named_constructors3_frog_test: Crash # unsupported element kind: foo:function
+native_no_such_method_exception2_frog_test: Crash # unsupported element kind: makeB:function
+native_no_such_method_exception3_frog_test: Crash # unsupported element kind: makeA:function
+native_no_such_method_exception4_frog_test: Crash # unsupported element kind: makeA:function
+native_no_such_method_exception5_frog_test: Crash # unsupported element kind: makeA:function
+native_no_such_method_exception_frog_test: Crash # unsupported element kind: makeA:function
+native_novel_html_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+native_null_closure_frog_test: Crash # unsupported element kind: invoke:function
+native_null_frog_test: Crash # unsupported element kind: returnZero:function
+native_property_frog_test: Crash # (JS('int','#._z',this)): handleStaticFunctionInvoke: foreign: function(JS)
+native_to_string_frog_test: Crash # unsupported element kind: makeA:function
+native_use_native_name_in_table_frog_test: Crash # unsupported element kind: makeB:function
+native_window1_frog_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+native_window2_frog_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+native_wrapping_function3_frog_test: Crash # unsupported element kind: foo2:function
+native_wrapping_function_frog_test: Crash # unsupported element kind: foo2:function
+oddly_named_fields_test: Crash # unsupported element kind: makeNativeClassWithOddNames:function
 optimization_hints_test: Crash # (JS('','String("in main function")')): handleStaticFunctionInvoke: foreign: function(JS)
 rti_only_native_test: Crash # (main): handleStaticFunctionGet: function(main)
 runtimetype_test: Crash # (JS('A','#',makeA())): handleStaticFunctionInvoke: foreign: function(JS)
 static_methods_test: Crash # (main): handleStaticFunctionGet: function(main)
-subclassing_1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-subclassing_2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-subclassing_3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-subclassing_4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+subclassing_1_test: Crash # unsupported element kind: makeC:function
+subclassing_2_test: Crash # unsupported element kind: makeB:function
+subclassing_3_test: Crash # unsupported element kind: makeB:function
+subclassing_4_test: Crash # unsupported element kind: makeB:function
 subclassing_5_test: Crash # (testIsB): handleStaticFunctionGet: function(testIsB)
-subclassing_constructor_1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-subclassing_constructor_2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+subclassing_constructor_1_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+subclassing_constructor_2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
 subclassing_super_call_test: Crash # (JS('','#(#)',constructor,b1)): handleStaticFunctionInvoke: foreign: function(JS)
 subclassing_super_field_1_test: Crash # (JS('','#(#)',constructor,b)): handleStaticFunctionInvoke: foreign: function(JS)
 subclassing_super_field_2_test: Crash # (JS('','#(#)',constructor,b)): handleStaticFunctionInvoke: foreign: function(JS)
 subclassing_type_test: Crash # (isA): handleStaticFunctionGet: function(isA)
-super_call_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+super_call_test: Crash # unsupported element kind: makeD:function
 super_property_test: Crash # (testThing): handleStaticFunctionGet: function(testThing)
 type_error_decode_test: Crash # (isNullError): handleStaticFunctionGet: function(isNullError)
 undefined_bailout_test: Crash # (JS('','void 0')): handleStaticFunctionInvoke: foreign: function(JS)
-uninstantiated_type_parameter_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+uninstantiated_type_parameter_test: Crash # Instance of 'TypeOperator': type check unimplemented for C<int>.
diff --git a/tests/corelib/corelib.status b/tests/corelib/corelib.status
index e685618..ee631b0 100644
--- a/tests/corelib/corelib.status
+++ b/tests/corelib/corelib.status
@@ -2,34 +2,16 @@
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
 
-[ $compiler == dart2dart]
-bool_from_environment2_test: Skip
-bool_from_environment_default_value_test: Skip
-bool_from_environment_test: Skip
-from_environment_const_type_test: Skip
-from_environment_const_type_undefined_test: Skip
-int_from_environment2_test: Skip
-int_from_environment3_test: Skip
-int_from_environment_default_value_test: Skip
-int_from_environment_test: Skip
-string_from_environment2_test: Skip
-string_from_environment3_test: Skip
-string_from_environment_default_value: Skip
-string_from_environment_test: Skip
-
 [ $compiler == none && ($runtime == drt || $runtime == dartium || $runtime == ContentShellOnAndroid) ]
 bool_from_environment2_test: Skip
-bool_from_environment_default_value_test: Skip
 bool_from_environment_test: Skip
 from_environment_const_type_test: Skip
 from_environment_const_type_undefined_test: Skip
 int_from_environment2_test: Skip
 int_from_environment3_test: Skip
-int_from_environment_default_value_test: Skip
 int_from_environment_test: Skip
 string_from_environment2_test: Skip
 string_from_environment3_test: Skip
-string_from_environment_default_value: Skip
 string_from_environment_test: Skip
 
 [ $compiler == none ]
@@ -39,7 +21,7 @@
 symbol_test/01: Fail, Pass # bug 11669
 
 # #void should be a valid symbol.
-[ $compiler == none || $compiler == dart2js || $compiler == dart2dart ]
+[ $compiler == none || $compiler == dart2js ]
 symbol_reserved_word_test/02: CompileTimeError # bug 20191
 symbol_reserved_word_test/05: CompileTimeError # bug 20191
 
@@ -57,7 +39,7 @@
 
 # With the exception of 'void', const Symbol() should not accept reserved
 # words.
-[ $compiler == none || $compiler == dart2js || $compiler == dart2dart]
+[ $compiler == none || $compiler == dart2js ]
 symbol_reserved_word_test/04: MissingCompileTimeError # bug 11669, 19972
 symbol_reserved_word_test/07: MissingCompileTimeError # bug 11669, 19972
 symbol_reserved_word_test/10: MissingCompileTimeError # bug 11669, 19972
@@ -68,7 +50,7 @@
 symbol_reserved_word_test/10: Fail # bug 11669, 19972 / dartium/drt cannot detect CompileTimeErrors
 
 # With the exception of 'void', new Symbol() should not accept reserved words.
-[ $compiler == none || $compiler == dart2dart ]
+[ $compiler == none ]
 symbol_reserved_word_test/06: RuntimeError # bug 11669
 symbol_reserved_word_test/09: RuntimeError # bug 11669
 symbol_reserved_word_test/12: RuntimeError # bug 11669
@@ -77,7 +59,7 @@
 symbol_test/02: MissingCompileTimeError # bug 11669
 symbol_test/03: MissingCompileTimeError # bug 11669
 
-[ $compiler == none || $compiler == dart2dart ]
+[ $compiler == none ]
 symbol_test/none: Fail # bug 11669
 symbol_operator_test/03: Fail # bug 11669
 string_case_test/01: Fail # Bug 18061
@@ -155,13 +137,6 @@
 string_case_test/02: Fail, OK  # Bug in dartium version of V8.
 string_case_test/03: Fail, OK  # Bug in dartium version of V8.
 
-[ $compiler == dart2dart ]
-compare_to2_test: Fail # inherited from VM
-unicode_test: Fail # inherited from VM
-
-[ $compiler == dart2dart && $minified ]
-error_stack_trace1_test: Fail # Fails in minified mode, test depends on method names.
-
 [ $compiler == dartanalyzer ]
 from_environment_const_type_test: Skip # The -D option that defines a constant
 # for the Dart vm is not accepted by the deprecated java dartanalyzer.
@@ -235,363 +210,156 @@
 big_integer_parsed_mul_div_vm_test: Pass, Slow
 
 [ $compiler == dart2js && $cps_ir ]
-apply2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-apply3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-apply4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-apply_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-bit_twiddling_bigint_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-bit_twiddling_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-bool_from_environment_default_value_test: Crash # (throw new ExpectException(message)): Unhandled node
-bool_from_environment_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-bool_hashcode_test: Crash # (throw new ExpectException(message)): Unhandled node
-collection_from_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-collection_removes_test: Crash # (throw new ExpectException(message)): Unhandled node
-collection_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-collection_to_string_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-compare_to2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-compare_to_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_list_literal_test: Crash # (try {list.add(4);}on UnsupportedError catch (e){exception=e;}): "on T" catch block
-const_list_remove_range_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_list_set_range_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-core_runtime_types_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-date_time2_test: Crash # (throw new ExpectException(message)): Unhandled node
-date_time3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-date_time4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-date_time5_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-date_time6_test: Crash # (throw new ExpectException(message)): Unhandled node
-date_time7_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-date_time8_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-date_time9_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-date_time_parse_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-date_time_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_ceil2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_ceil_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_ceil_to_double_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_compare_test: Crash # (throw new ExpectException(message)): Unhandled node
-double_floor2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_floor_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_floor_to_double_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_parse_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_parse_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_round2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_round3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_round4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_round_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_round_to_double2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_round_to_double3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_round_to_double_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_truncate2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_truncate_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_truncate_to_double_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-duration2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-duration_big_num_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-duration_double_multiplication_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-duration_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-error_stack_trace1_test: Crash # (throw new ExpectException(message)): Unhandled node
-error_stack_trace2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-error_stack_trace_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-errors_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-exception_implementation_test: Crash #  "on T" catch block
-expando_test: Crash # Please triage this failure.
-expression_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-for_in_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-format_exception_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_test/05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_test/06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_test/07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_test/08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_test/09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_test/10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_test/11: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_test/12: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_test/13: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_test/14: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_test/15: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_test/16: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_undefined_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_undefined_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_undefined_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_undefined_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_undefined_test/05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_undefined_test/06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_undefined_test/07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_undefined_test/08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_undefined_test/09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_undefined_test/10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_undefined_test/11: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_undefined_test/12: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_undefined_test/13: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_undefined_test/14: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_undefined_test/15: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_undefined_test/16: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-from_environment_const_type_undefined_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-growable_list_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-hashcode_boxed_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-hashcode_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-hash_map2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-hash_map_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-hash_set_test/01: Crash # (throw new ExpectException(message)): Unhandled node
-hash_set_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-hash_set_type_check_test: Crash # (throw new ExpectException(message)): Unhandled node
-has_next_iterator_test: Crash # (throw new ExpectException(message)): Unhandled node
-indexed_list_access_test: Crash # (throw new ExpectException(message)): Unhandled node
-int_ceil_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-int_ceil_to_double_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-integer_to_radix_string_test: Crash #  "on T" catch block
-integer_to_string_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-integer_to_string_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-int_floor_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-int_floor_to_double_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-int_from_environment2_test: Crash # (throw new ExpectException(message)): Unhandled node
-int_from_environment_default_value_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-int_from_environment_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+apply2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+apply_test: Crash # (test0): handleStaticFunctionGet: function(test0)
+bool_from_environment_test: RuntimeError # Please triage this failure.
+collection_removes_test: RuntimeError # Please triage this failure.
+collection_to_string_test: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+compare_to2_test: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+const_list_remove_range_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+const_list_set_range_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+core_runtime_types_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+date_time9_test: Crash # Instance of 'TypeOperator': type check unimplemented for Comparable.
+date_time_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+double_ceil2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+double_ceil_test: RuntimeError # Please triage this failure.
+double_floor2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+double_floor_test: RuntimeError # Please triage this failure.
+double_parse_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+double_parse_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+double_round2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+double_round4_test: RuntimeError # Please triage this failure.
+double_round_test: RuntimeError # Please triage this failure.
+double_truncate2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+double_truncate_test: RuntimeError # Please triage this failure.
+duration2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+duration_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+error_stack_trace1_test: Pass # Please triage this failure.
+error_stack_trace2_test: Crash # unsupported element kind: cyclicStatic:field
+error_stack_trace_test: Crash # (argument): handleStaticFunctionGet: function(argument)
+expando_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+growable_list_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+has_next_iterator_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+hash_map2_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map<int, String>.
+hash_set_test/01: Crash # (testIdentitySet): handleStaticFunctionGet: function(testIdentitySet)
+hash_set_test/none: Crash # (testIdentitySet): handleStaticFunctionGet: function(testIdentitySet)
+hash_set_type_check_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+hashcode_test: Crash # (bar): handleStaticFunctionGet: function(bar)
+indexed_list_access_test: Crash # (getIt): handleStaticFunctionGet: function(getIt)
+int_from_environment_test: RuntimeError # Please triage this failure.
 int_parse_radix_test/01: Crash # Please triage this failure.
 int_parse_radix_test/02: Crash # Please triage this failure.
 int_parse_radix_test/none: Crash # Please triage this failure.
-int_round_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-int_round_to_double_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-int_to_int_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-int_truncate_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-int_truncate_to_double_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-is_operator_basic_types_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-iterable_contains2_test: Crash # (throw new ExpectException(message)): Unhandled node
-iterable_contains_test: Crash # (throw new ExpectException(message)): Unhandled node
-iterable_element_at_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-iterable_expand_test: Crash # (throw new ExpectException(message)): Unhandled node
-iterable_first_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-iterable_first_where_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-iterable_fold_test: Crash # cannot compile methods that need interceptor calling convention.
-iterable_generate_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-iterable_join_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-iterable_last_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-iterable_last_where_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-iterable_length_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-iterable_mapping_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-iterable_reduce_test: Crash # cannot compile methods that need interceptor calling convention.
-iterable_return_type_test/01: Crash # Please triage this failure.
-iterable_return_type_test/02: Crash # Please triage this failure.
-iterable_return_type_test/none: Crash # Please triage this failure.
-iterable_single_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-iterable_single_where_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-iterable_skip_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-iterable_skip_while_test: Crash # (throw new ExpectException(message)): Unhandled node
-iterable_take_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-iterable_take_while_test: Crash # (throw new ExpectException(message)): Unhandled node
-iterable_test: Crash # (throw new ExpectException(message)): Unhandled node
-iterable_to_list_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-iterable_to_set_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-iterable_tostring_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-json_map_test: Crash # (throw new ExpectException(message)): Unhandled node
-linked_hash_map_from_iterables_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-linked_hash_map_from_iterable_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-linked_hash_map_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_as_map_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_contains_argument_order_test: Crash # cannot compile methods that need interceptor calling convention.
-list_filled_type_argument_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_fill_range_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_first_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_fixed_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_for_each_test: Crash # (throw new ExpectException(message)): Unhandled node
-list_get_range_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_growable_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_index_of2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_index_of_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_insert_all_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_insert_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_iterators_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_last_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_literal_is_growable_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_literal_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_map_test: Crash # (throw new ExpectException(message)): Unhandled node
-list_removeat_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_remove_range_test: Crash # (throw new ExpectException(message)): Unhandled node
-list_replace_range_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_reversed_test: Crash # (throw new ExpectException(message)): Unhandled node
-list_set_all_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_set_range_test: Crash # (throw new ExpectException(message)): Unhandled node
-list_sort_test: Crash # (throw new ExpectException(message)): Unhandled node
-list_sublist_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_to_string2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_to_string_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+is_operator_basic_types_test: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+iterable_element_at_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+iterable_expand_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+iterable_first_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+iterable_first_where_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+iterable_fold_test: Crash # (id): handleStaticFunctionGet: function(id)
+iterable_generate_test: Crash # Instance of 'TypeOperator': type check unimplemented for Iterable<int>.
+iterable_last_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+iterable_last_where_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+iterable_mapping_test: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+iterable_reduce_test: Crash # (id): handleStaticFunctionGet: function(id)
+iterable_return_type_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for Map<int, int>.
+iterable_return_type_test/02: Crash # Instance of 'TypeOperator': type check unimplemented for Map<int, int>.
+iterable_return_type_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for Map<int, int>.
+iterable_single_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+iterable_single_where_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+iterable_skip_test: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+iterable_take_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+iterable_to_list_test: Crash # Instance of 'TypeOperator': type check unimplemented for List<int>.
+iterable_to_set_test: Crash # Instance of 'TypeOperator': type check unimplemented for Set<int>.
+json_map_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+linked_hash_map_from_iterable_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map<int, String>.
+linked_hash_map_from_iterables_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map<int, String>.
+list_as_map_test: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+list_fill_range_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+list_filled_type_argument_test: Crash # Instance of 'TypeOperator': type check unimplemented for List<int>.
+list_first_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+list_fixed_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+list_for_each_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+list_get_range_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+list_growable_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+list_insert_all_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+list_insert_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+list_iterators_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+list_last_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+list_map_test: Crash # Instance of 'TypeOperator': type check unimplemented for Iterable.
+list_remove_range_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+list_removeat_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+list_replace_range_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+list_reversed_test: Crash # Instance of 'TypeOperator': type check unimplemented for Iterable.
+list_set_all_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+list_set_range_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+list_sort_test: Crash # (Comparable.compare): handleStaticFunctionGet: function(Comparable#compare)
+list_sublist_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+list_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+list_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+list_to_string2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+list_to_string_test: RuntimeError # Please triage this failure.
 list_unmodifiable_test: Crash # (createConstList): handleStaticFunctionGet: function(createConstList)
-main_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-map_contains_key_test: Crash # (throw new ExpectException(message)): Unhandled node
-map_contains_value_test: Crash # (throw new ExpectException(message)): Unhandled node
-map_from_iterables_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-map_from_iterable_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-map_from_test: Crash # Please triage this failure.
-map_index_test: Crash # (throw new ExpectException(message)): Unhandled node
-map_keys2_test: Crash # Please triage this failure.
-map_keys_test: Crash # Please triage this failure.
-map_remove_test: Crash # (throw new ExpectException(message)): Unhandled node
-maps_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-map_test: Crash # Please triage this failure.
-map_to_string_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-map_values2_test: Crash # Please triage this failure.
-map_values3_test: Crash # Please triage this failure.
-map_values4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-map_values_test: Crash # Please triage this failure.
-nan_infinity_test/01: Crash # (throw new ExpectException(message)): Unhandled node
-nan_infinity_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-null_nosuchmethod_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-null_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-num_clamp_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-num_parse_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-num_parse_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-num_sign_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-print_test/01: Crash # cannot compile methods that need interceptor calling convention.
-print_test/none: Crash # cannot compile methods that need interceptor calling convention.
-queue_first_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-queue_iterator_test: Crash # (throw new ExpectException(message)): Unhandled node
-queue_last_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-queue_single_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-queue_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-range_error_test: Crash # (throw new ExpectException(message)): Unhandled node
-reg_exp1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-reg_exp4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-reg_exp5_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-reg_exp_all_matches_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/alternative-length-miscalculation_test: Crash # (throw new ExpectException(message)): Unhandled node
-regexp/alternatives_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/assertion_test: Crash # (throw new ExpectException(message)): Unhandled node
-regexp/backreferences_test: Crash # (throw new ExpectException(message)): Unhandled node
-regexp/bol_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/bol-with-multiline_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/capture-3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/captures_test: Crash # (throw new ExpectException(message)): Unhandled node
-regexp/capture_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/character-match-out-of-order_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/char-insensitive_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/compile-crash_test: Crash # (throw new ExpectException(message)): Unhandled node
-regexp/compile_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/constructor_test: Crash # (throw new ExpectException(message)): Unhandled node
-regexp/dotstar_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/early-acid3-86_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/ecma-regex-examples_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/extended-characters-match_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/extended-characters-more_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/find-first-asserted_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-reg_exp_first_match_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/global_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-reg_exp_groups_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-reg_exp_group_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-reg_exp_has_match_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/indexof_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/invalid-range-in-class_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/issue_19193_test: Crash # (throw new ExpectException(message)): Unhandled node
-regexp/lastindex_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/look-ahead_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/lookahead_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/loop-capture_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/malformed-escapes_test: Crash # (throw new ExpectException(message)): Unhandled node
-regexp/many-brackets_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/multiline_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/negative-special-characters_test: Crash # (throw new ExpectException(message)): Unhandled node
-regexp/no-extensions_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/non-bmp_test: Crash # (throw new ExpectException(message)): Unhandled node
-regexp/non-capturing-backtracking_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/non-capturing-groups_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/non-character_test: Crash # (throw new ExpectException(message)): Unhandled node
-regexp/non-greedy-parentheses_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/norepeat_test: Crash # (throw new ExpectException(message)): Unhandled node
-regexp/overflow_test: Crash # (throw new ExpectException(message)): Unhandled node
-regexp/parentheses_test: Crash # (throw new ExpectException(message)): Unhandled node
-reg_exp_pattern_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/pcre-test-4_test: Crash # (throw new ExpectException(message)): Unhandled node
+map_from_iterable_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map<String, String>.
+map_from_iterables_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map<int, String>.
+map_from_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+map_keys2_test: Crash # Instance of 'TypeOperator': type check unimplemented for Iterable<String>.
+map_keys_test: Crash # Instance of 'TypeOperator': type check unimplemented for Iterable.
+map_test: Crash # (Comparable.compare): handleStaticFunctionGet: function(Comparable#compare)
+map_to_string_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+map_values2_test: Crash # Instance of 'TypeOperator': type check unimplemented for Iterable<int>.
+map_values3_test: Crash # Instance of 'TypeOperator': type check unimplemented for Iterable<String>.
+map_values4_test: Crash # Instance of 'TypeOperator': type check unimplemented for Iterable<String>.
+map_values_test: Crash # Instance of 'TypeOperator': type check unimplemented for Iterable.
+null_nosuchmethod_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+null_test: Crash # Instance of 'TypeOperator': type check unimplemented for dynamic.
+num_clamp_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+num_parse_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+num_parse_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+num_sign_test: Crash # unsupported element kind: numbers:field
+queue_first_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+queue_last_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+queue_single_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+queue_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+regexp/compile-crash_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+regexp/compile_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+regexp/early-acid3-86_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+regexp/invalid-range-in-class_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+regexp/multiline_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+regexp/no-extensions_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
 regexp/pcre_test: Crash # Please triage this failure.
-regexp/quantified-assertions_test: Crash # (throw new ExpectException(message)): Unhandled node
-regexp/range-bound-ffff_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/range-out-of-order_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/ranges-and-escaped-hyphens_test: Crash # (throw new ExpectException(message)): Unhandled node
-regexp/regexp_kde_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/regexp_test: Crash # (throw new ExpectException(message)): Unhandled node
-regexp/regress-6-9-regexp_test: Crash # (throw new ExpectException(message)): Unhandled node
-regexp/regress-regexp-construct-result_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/repeat-match-waldemar_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/results-cache_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/stack-overflow2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/stack-overflow_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/standalones_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-reg_exp_start_end_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-reg_exp_string_match_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/toString_test: Crash # (throw new ExpectException(message)): Unhandled node
-regexp/UC16_test: Crash # (throw new ExpectException(message)): Unhandled node
-regexp/unicodeCaseInsensitive_test: Crash # (throw new ExpectException(message)): Unhandled node
-regexp/unicode-handling_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regexp/zero-length-alternatives_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regress_11099_test: Crash # (throw 'Wrong result!'): Unhandled node
-regress_r21715_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-safe_to_string_test: Crash # (throw new ExpectException(message)): Unhandled node
-set_containsAll_test: Crash # (throw new ExpectException(message)): Unhandled node
-set_contains_test: Crash # (throw new ExpectException(message)): Unhandled node
-set_intersection_test: Crash # (throw new ExpectException(message)): Unhandled node
-set_iterator_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-set_removeAll_test: Crash # (throw new ExpectException(message)): Unhandled node
-set_remove_test: Crash # (throw new ExpectException(message)): Unhandled node
-set_test: Crash # (throw new ExpectException(message)): Unhandled node
-set_to_string_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-shuffle_test: Crash # (throw new ExpectException(message)): Unhandled node
-sort_test: Crash # (throw new ExpectException(message)): Unhandled node
-splay_tree_from_iterables_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-splay_tree_from_iterable_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-splay_tree_test: Crash # (throw new ExpectException(message)): Unhandled node
-stacktrace_fromstring_test: Crash # (throw 0): Unhandled node
-stopwatch2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-stopwatch_test: Crash # (throw new ExpectException(message)): Unhandled node
-string_base_vm_test: Crash # (try {s.substring(5,12);}on RangeError catch (ex){exception_caught=true;}): "on T" catch block
-string_buffer_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_case_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_case_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_case_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_case_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_codeunits_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_fromcharcodes_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_fromcharcode_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_from_environment2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_from_environment_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_from_list_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_operations_with_null_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_pattern_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_replace_all_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_replace_dollar_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_replace_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_runes_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_source_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_split_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-strings_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_substring_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_to_lower_case_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_trim2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_trimlr_test/01: Crash # (throw new ExpectException(message)): Unhandled node
-string_trimlr_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-string_trim_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-symbol_operator_test/03: Crash # (throw "Didn't throw: ${name}"): Unhandled node
-symbol_operator_test/none: Crash # (throw "Not equal #${name}, \$${name}: ${constSymbol}, ${mirrorSymbol}"): Unhandled node
+regexp/range-out-of-order_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+regexp/regexp_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+set_test: Crash # (identical): handleStaticFunctionGet: origin function(identical)
+set_to_string_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+shuffle_test: RuntimeError # Please triage this failure.
+splay_tree_from_iterable_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map<int, String>.
+splay_tree_from_iterables_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map<int, String>.
+splay_tree_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+string_buffer_test: Crash # (Expect.isTrue): handleStaticFunctionGet: function(Expect#isTrue)
+string_codeunits_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+string_from_environment2_test: RuntimeError # Please triage this failure.
+string_from_environment_test: RuntimeError # Please triage this failure.
+string_fromcharcode_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+string_fromcharcodes_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+string_operations_with_null_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+string_pattern_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+string_replace_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+string_runes_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+string_source_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+string_substring_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+string_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+symbol_operator_test/03: Crash # unsupported element kind: $:field
+symbol_operator_test/none: Crash # unsupported element kind: $:field
 symbol_reserved_word_test/03: Pass # Please triage this failure.
-symbol_reserved_word_test/06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-symbol_reserved_word_test/09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-symbol_reserved_word_test/12: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-symbol_test/none: Crash #  "on T" catch block
-toInt_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-unicode2_test: Crash # (throw new ExpectException(message)): Unhandled node
-unicode_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-uri_base_test: Crash #  "on T" catch block
-uri_file_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-uri_http_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-uri_ipv4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-uri_ipv6_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-uri_normalize_path_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-uri_normalize_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-uri_parse_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-uri_path_test: Crash # (throw new ExpectException(message)): Unhandled node
-uri_query_test: Crash # (throw new ExpectException(message)): Unhandled node
-uri_scheme_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-uri_test: Crash # (throw new ExpectException(message)): Unhandled node
+symbol_reserved_word_test/06: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+symbol_reserved_word_test/09: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+symbol_reserved_word_test/12: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+symbol_test/none: Crash # Please triage this failure.
+uri_file_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+uri_ipv4_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+uri_ipv6_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+uri_normalize_path_test: RuntimeError # Please triage this failure.
+uri_path_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+uri_query_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+uri_scheme_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+uri_test: Crash # Please triage this failure.
diff --git a/tests/corelib/growable_list_test.dart b/tests/corelib/growable_list_test.dart
index 98b4e1f..0e26138 100644
--- a/tests/corelib/growable_list_test.dart
+++ b/tests/corelib/growable_list_test.dart
@@ -5,11 +5,11 @@
 // Sanity check on the growing behavior of a growable list.
 
 import "package:expect/expect.dart";
-import "dart:collection" show IterableBase;
+import "dart:collection" show EfficientLengthIterable;
 
 // Iterable generating numbers in range [0..count).
 // May perform callback at some point underways.
-class TestIterableBase extends IterableBase<int> {
+class TestIterableBase extends Iterable<int> {
   final int length;
   final int count;
   // call [callback] if generating callbackIndex.
@@ -26,9 +26,8 @@
   int get length => throw "SHOULD NOT BE CALLED";
 }
 
-// Implement Set for private EfficientLength interface.
 class EfficientTestIterable extends TestIterableBase
-                            implements Set<int> {
+                            implements EfficientLengthIterable<int> {
   EfficientTestIterable(length, count, [callbackIndex = -1, callback])
       : super(length, count, callbackIndex, callback);
   // Avoid warnings because we don't actually implement Set.
@@ -57,7 +56,7 @@
 
 
 void main() {
-  // Without EfficientLength interface
+  // Without EfficientLengthIterable interface
   {
     // Change length of list after 20 additions.
     var l = [];
@@ -80,7 +79,7 @@
     }, (e) => e is ConcurrentModificationError);
   }
 
-  // With EfficientLength interface (uses length).
+  // With EfficientLengthIterable interface (uses length).
   {
     // Change length of list after 20 additions.
     var l = [];
diff --git a/tests/corelib/splay_tree_test.dart b/tests/corelib/splay_tree_test.dart
index 80a1742..c6de497 100644
--- a/tests/corelib/splay_tree_test.dart
+++ b/tests/corelib/splay_tree_test.dart
@@ -53,6 +53,7 @@
   testSetFrom();
   regressRemoveWhere();
   regressRemoveWhere2();
+  regressFromCompare();
 }
 
 void regressRemoveWhere() {
@@ -93,3 +94,45 @@
   set2 = new SplayTreeSet<int>.from(set1.where((x) => x is int));
   Expect.equals(3, set2.length);
 }
+
+
+
+void regressFromCompare() {
+  // Regression test for http://dartbug.com/23387.
+  // The compare and isValidKey arguments to SplayTreeMap.from were ignored.
+
+  int compare(a, b) {
+    if (a is IncomparableKey && b is IncomparableKey) {
+      return b.id - a.id;
+    }
+    throw "isValidKey failure";
+  }
+  bool isValidKey(o) => o is IncomparableKey;
+  IncomparableKey key(int n) => new IncomparableKey(n);
+
+  var entries = {key(0): 0, key(1): 1, key(2): 2, key(0): 0};
+  Expect.equals(4, entries.length);
+  var map = new SplayTreeMap<IncomparableKey, int>.from(
+      entries, compare, isValidKey);
+  Expect.equals(3, map.length);
+  for (int i = 0; i < 3; i++) {
+    Expect.isTrue(map.containsKey(key(i)));
+    Expect.equals(i, map[key(i)]);
+  }
+  Expect.isFalse(map.containsKey(key(5)));
+  Expect.isFalse(map.containsKey(1));
+  Expect.isFalse(map.containsKey("string"));
+  Expect.equals(null, map[key(5)]);
+  Expect.equals(null, map[1]);
+  Expect.equals(null, map["string"]);
+  Expect.throws(() { map[1] = 42; });
+  Expect.throws(() { map["string"] = 42; });
+  map[key(5)] = 42;
+  Expect.equals(4, map.length);
+  Expect.equals(42, map[key(5)]);
+}
+
+class IncomparableKey {
+  final int id;
+  IncomparableKey(this.id);
+}
diff --git a/tests/html/html.status b/tests/html/html.status
index 701d1cb..f45a2ae 100644
--- a/tests/html/html.status
+++ b/tests/html/html.status
@@ -417,51 +417,51 @@
 window_nosuchmethod_test: StaticWarning
 
 [ $compiler == dart2js && $cps_ir ]
-async_spawnuri_test: Crash # cannot compile methods that need interceptor calling convention.
-async_test: Crash # cannot compile methods that need interceptor calling convention.
+async_spawnuri_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+async_test: Crash # (cancellingIsolate): handleStaticFunctionGet: function(cancellingIsolate)
 audiobuffersourcenode_test: Crash #  try/finally
 audiocontext_test: Crash #  try/finally
-audioelement_test: Crash # cannot compile methods that need interceptor calling convention.
-b_element_test: Crash # cannot compile methods that need interceptor calling convention.
-blob_constructor_test: Crash # cannot compile methods that need interceptor calling convention.
+audioelement_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+b_element_test: Crash # unsupported element kind: _defaultEnvironment:field
+blob_constructor_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 cache_test: Crash #  try/finally
-callbacks_test: Crash # cannot compile methods that need interceptor calling convention.
+callbacks_test: Crash # unsupported element kind: _defaultEnvironment:field
 canvas_pixel_array_type_alias_test: Crash #  try/finally
-canvas_test: Crash # cannot compile methods that need interceptor calling convention.
+canvas_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 canvasrenderingcontext2d_test: Crash #  try/finally
-cdata_test: Crash # cannot compile methods that need interceptor calling convention.
-client_rect_test: Crash # cannot compile methods that need interceptor calling convention.
-cross_domain_iframe_test: Crash # cannot compile methods that need interceptor calling convention.
+cdata_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+client_rect_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+cross_domain_iframe_test: Crash # Instance of 'TypeOperator': type casts not implemented.
 crypto_test: Crash #  try/finally
-css_rule_list_test: Crash # cannot compile methods that need interceptor calling convention.
+css_rule_list_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 css_test: Crash #  try/finally
-cssstyledeclaration_test: Crash # cannot compile methods that need interceptor calling convention.
+cssstyledeclaration_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 custom/attribute_changed_callback_test: Crash #  try/finally
-custom/constructor_calls_created_synchronously_test: Crash # cannot compile methods that need interceptor calling convention.
-custom/created_callback_test: Crash # cannot compile methods that need interceptor calling convention.
-custom/document_register_basic_test: Crash # cannot compile methods that need interceptor calling convention.
+custom/constructor_calls_created_synchronously_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+custom/created_callback_test: Crash # (NestedElement.test): handleStaticFunctionGet: function(NestedElement#test)
+custom/document_register_basic_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 custom/document_register_type_extensions_test: Crash #  try/finally
-custom/element_upgrade_test: Crash # cannot compile methods that need interceptor calling convention.
+custom/element_upgrade_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 custom/entered_left_view_test: Crash #  try/finally
-custom/js_custom_test: Crash # cannot compile methods that need interceptor calling convention.
-custom/mirrors_test: Crash # cannot compile methods that need interceptor calling convention.
+custom/js_custom_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+custom/mirrors_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 custom/regress_194523002_test: Crash # unsupported element kind: _defaultEnvironment:field
 custom_element_method_clash_test: Crash #  try/finally
 custom_element_name_clash_test: Crash #  try/finally
 custom_elements_23127_test: Crash #  try/finally
 custom_elements_test: Crash #  try/finally
-custom_tags_test: Crash # cannot compile methods that need interceptor calling convention.
-dart_object_local_storage_test: Crash # cannot compile methods that need interceptor calling convention.
-datalistelement_test: Crash # cannot compile methods that need interceptor calling convention.
+custom_tags_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+dart_object_local_storage_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+datalistelement_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 document_test: Crash #  try/finally
-documentfragment_test: Crash # cannot compile methods that need interceptor calling convention.
-dom_constructors_test: Crash # cannot compile methods that need interceptor calling convention.
-domparser_test: Crash # cannot compile methods that need interceptor calling convention.
+documentfragment_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+dom_constructors_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+domparser_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 element_add_test: Crash #  try/finally
 element_animate_test: Crash #  try/finally
-element_classes_svg_test: Crash # cannot compile methods that need interceptor calling convention.
-element_classes_test: Crash # cannot compile methods that need interceptor calling convention.
-element_constructor_1_test: Crash # cannot compile methods that need interceptor calling convention.
+element_classes_svg_test: Crash # (elementsTearDown): handleStaticFunctionGet: function(elementsTearDown)
+element_classes_test: Crash # (listElementTearDown): handleStaticFunctionGet: function(listElementTearDown)
+element_constructor_1_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 element_dimensions_test: Crash #  try/finally
 element_offset_test: Crash #  try/finally
 element_test: Crash #  try/finally
@@ -472,91 +472,91 @@
 element_types_constructors5_test: Crash #  try/finally
 element_types_constructors6_test: Crash #  try/finally
 element_types_test: Crash #  try/finally
-event_customevent_test: Crash # cannot compile methods that need interceptor calling convention.
-events_test: Crash # cannot compile methods that need interceptor calling convention.
-exceptions_test: Crash # cannot compile methods that need interceptor calling convention.
+event_customevent_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+events_test: Crash # unsupported element kind: _defaultEnvironment:field
+exceptions_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 fileapi_test: Crash #  try/finally
-filereader_test: Crash # cannot compile methods that need interceptor calling convention.
-fontface_loaded_test: Crash # cannot compile methods that need interceptor calling convention.
-fontface_test: Crash # cannot compile methods that need interceptor calling convention.
+filereader_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+fontface_loaded_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+fontface_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 form_data_test: Crash #  try/finally
-form_element_test: Crash # cannot compile methods that need interceptor calling convention.
-geolocation_test: Crash # cannot compile methods that need interceptor calling convention.
-hidden_dom_1_test: Crash # cannot compile methods that need interceptor calling convention.
-hidden_dom_2_test: Crash # cannot compile methods that need interceptor calling convention.
+form_element_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+geolocation_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+hidden_dom_1_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+hidden_dom_2_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 history_test: Crash #  try/finally
-htmlcollection_test: Crash # cannot compile methods that need interceptor calling convention.
-htmlelement_test: Crash # cannot compile methods that need interceptor calling convention.
-htmloptionscollection_test: Crash # cannot compile methods that need interceptor calling convention.
+htmlcollection_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+htmlelement_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+htmloptionscollection_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 indexeddb_1_test: Crash #  try/finally
-indexeddb_2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-indexeddb_3_test: Crash # cannot compile methods that need interceptor calling convention.
-indexeddb_4_test: Crash # cannot compile methods that need interceptor calling convention.
-indexeddb_5_test: Crash # cannot compile methods that need interceptor calling convention.
+indexeddb_2_test: Crash # Please triage this failure.
+indexeddb_3_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+indexeddb_4_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+indexeddb_5_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 input_element_test: Crash #  try/finally
-instance_of_test: Crash # cannot compile methods that need interceptor calling convention.
-isolates_test: Crash # cannot compile methods that need interceptor calling convention.
-js_interop_1_test: Crash # cannot compile methods that need interceptor calling convention.
+instance_of_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+isolates_test: Crash # (isolateEntry): handleStaticFunctionGet: function(isolateEntry)
+js_interop_1_test: Crash # Instance of 'TypeOperator': type casts not implemented.
 js_test: Crash #  try/finally
-keyboard_event_test: Crash # cannot compile methods that need interceptor calling convention.
-localstorage_test: Crash # cannot compile methods that need interceptor calling convention.
-location_test: Crash # cannot compile methods that need interceptor calling convention.
+keyboard_event_test: Crash # unsupported element kind: _defaultEnvironment:field
+localstorage_test: Crash # (try {fn();}finally {window.localStorage.clear();}): try/finally
+location_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 media_stream_test: Crash #  try/finally
 mediasource_test: Crash #  try/finally
-messageevent_test: Crash # cannot compile methods that need interceptor calling convention.
-mouse_event_test: Crash # cannot compile methods that need interceptor calling convention.
+messageevent_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+mouse_event_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 mutationobserver_test: Crash #  try/finally
-native_gc_test: Crash # cannot compile methods that need interceptor calling convention.
-navigator_test: Crash # cannot compile methods that need interceptor calling convention.
+native_gc_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+navigator_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 node_test: Crash #  try/finally
 node_validator_important_if_you_suppress_make_the_bug_critical_test: Crash #  try/finally
-non_instantiated_is_test: Crash # cannot compile methods that need interceptor calling convention.
+non_instantiated_is_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 notification_test: Crash #  try/finally
 performance_api_test: Crash #  try/finally
 postmessage_structured_test: Crash #  try/finally
-query_test: Crash # cannot compile methods that need interceptor calling convention.
-queryall_test: Crash # cannot compile methods that need interceptor calling convention.
+query_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+queryall_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 range_test: Crash #  try/finally
-request_animation_frame_test: Crash # cannot compile methods that need interceptor calling convention.
+request_animation_frame_test: Crash # Instance of 'TypeOperator': type casts not implemented.
 rtc_test: Crash #  try/finally
-selectelement_test: Crash # cannot compile methods that need interceptor calling convention.
-serialized_script_value_test: Crash # cannot compile methods that need interceptor calling convention.
+selectelement_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+serialized_script_value_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 shadow_dom_test: Crash #  try/finally
-shadowroot_test: Crash # cannot compile methods that need interceptor calling convention.
+shadowroot_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 speechrecognition_test: Crash #  try/finally
-storage_quota_test/missingenumcheck: Crash # cannot compile methods that need interceptor calling convention.
-storage_quota_test/none: Crash # cannot compile methods that need interceptor calling convention.
-storage_test: Crash # cannot compile methods that need interceptor calling convention.
-streams_test: Crash # cannot compile methods that need interceptor calling convention.
+storage_quota_test/missingenumcheck: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+storage_quota_test/none: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+storage_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+streams_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 svg_test: Crash #  try/finally
 svgelement_test: Crash #  try/finally
-table_test: Crash # cannot compile methods that need interceptor calling convention.
+table_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 touchevent_test: Crash #  try/finally
-track_element_constructor_test: Crash # cannot compile methods that need interceptor calling convention.
-transferables_test: Crash # cannot compile methods that need interceptor calling convention.
+track_element_constructor_test: Crash # unsupported element kind: _defaultEnvironment:field
+transferables_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 transition_event_test: Crash #  try/finally
 typed_arrays_1_test: Crash #  try/finally
-typed_arrays_2_test: Crash # cannot compile methods that need interceptor calling convention.
-typed_arrays_3_test: Crash # cannot compile methods that need interceptor calling convention.
-typed_arrays_4_test: Crash # cannot compile methods that need interceptor calling convention.
-typed_arrays_5_test: Crash # cannot compile methods that need interceptor calling convention.
-typed_arrays_arraybuffer_test: Crash # cannot compile methods that need interceptor calling convention.
-typed_arrays_dataview_test: Crash # cannot compile methods that need interceptor calling convention.
-typed_arrays_range_checks_test: Crash # cannot compile methods that need interceptor calling convention.
-typed_arrays_simd_test: Crash # cannot compile methods that need interceptor calling convention.
-typing_test: Crash # cannot compile methods that need interceptor calling convention.
-unknownelement_test: Crash # cannot compile methods that need interceptor calling convention.
-uri_test: Crash # cannot compile methods that need interceptor calling convention.
+typed_arrays_2_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+typed_arrays_3_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+typed_arrays_4_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+typed_arrays_5_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+typed_arrays_arraybuffer_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+typed_arrays_dataview_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+typed_arrays_range_checks_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+typed_arrays_simd_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+typing_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+unknownelement_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+uri_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 url_test: Crash #  try/finally
 webgl_1_test: Crash #  try/finally
 websocket_test: Crash #  try/finally
 websql_test: Crash #  try/finally
-wheelevent_test: Crash # cannot compile methods that need interceptor calling convention.
-window_eq_test: Crash # cannot compile methods that need interceptor calling convention.
-window_mangling_test: Crash # cannot compile methods that need interceptor calling convention.
-window_nosuchmethod_test: Crash # cannot compile methods that need interceptor calling convention.
-window_test: Crash # cannot compile methods that need interceptor calling convention.
-worker_api_test: Crash # cannot compile methods that need interceptor calling convention.
+wheelevent_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+window_eq_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+window_mangling_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+window_nosuchmethod_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+window_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+worker_api_test: Crash # (worker): handleStaticFunctionGet: function(worker)
 worker_test: Crash #  try/finally
 xhr_cross_origin_test: Crash #  try/finally
 xhr_test: Crash #  try/finally
diff --git a/tests/corelib/bool_from_environment_default_value_test.dart b/tests/isolate/bool_from_environment_default_value_test.dart
similarity index 100%
rename from tests/corelib/bool_from_environment_default_value_test.dart
rename to tests/isolate/bool_from_environment_default_value_test.dart
diff --git a/tests/isolate/deferred_in_isolate2_lib.dart b/tests/isolate/deferred_in_isolate2_lib.dart
new file mode 100644
index 0000000..e3fea39
--- /dev/null
+++ b/tests/isolate/deferred_in_isolate2_lib.dart
@@ -0,0 +1,8 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Used by deferred_in_isolate2_test.
+library deferred_in_isolate2_lib;
+
+String f() => "hi";
diff --git a/tests/isolate/deferred_in_isolate2_test.dart b/tests/isolate/deferred_in_isolate2_test.dart
new file mode 100644
index 0000000..fa016a4
--- /dev/null
+++ b/tests/isolate/deferred_in_isolate2_test.dart
@@ -0,0 +1,27 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library deferred_in_isolate2_test;
+
+import 'dart:isolate';
+import 'dart:async';
+import 'package:unittest/unittest.dart';
+
+import 'deferred_in_isolate2_lib.dart' deferred as lib;
+
+loadDeferred(port) {
+  lib.loadLibrary().then((_) {
+    port.send(lib.f());
+  });
+}
+
+main() {
+  test("Deferred loading in isolate", () {
+    ReceivePort port = new ReceivePort();
+    port.first.then(expectAsync((msg) {
+       expect(msg, equals("hi"));
+    }));
+    Isolate.spawn(loadDeferred, port.sendPort);
+  });
+}
diff --git a/tests/language/deferred_in_isolate_app.dart b/tests/isolate/deferred_in_isolate_app.dart
similarity index 100%
rename from tests/language/deferred_in_isolate_app.dart
rename to tests/isolate/deferred_in_isolate_app.dart
diff --git a/tests/language/deferred_in_isolate_lib.dart b/tests/isolate/deferred_in_isolate_lib.dart
similarity index 100%
rename from tests/language/deferred_in_isolate_lib.dart
rename to tests/isolate/deferred_in_isolate_lib.dart
diff --git a/tests/language/deferred_in_isolate_test.dart b/tests/isolate/deferred_in_isolate_test.dart
similarity index 100%
rename from tests/language/deferred_in_isolate_test.dart
rename to tests/isolate/deferred_in_isolate_test.dart
diff --git a/tests/language/enum_const_test.dart b/tests/isolate/enum_const_test.dart
similarity index 100%
rename from tests/language/enum_const_test.dart
rename to tests/isolate/enum_const_test.dart
diff --git a/tests/corelib/int_from_environment_default_value_test.dart b/tests/isolate/int_from_environment_default_value_test.dart
similarity index 100%
rename from tests/corelib/int_from_environment_default_value_test.dart
rename to tests/isolate/int_from_environment_default_value_test.dart
diff --git a/tests/isolate/isolate.status b/tests/isolate/isolate.status
index 02e3fa6..b0356bb 100644
--- a/tests/isolate/isolate.status
+++ b/tests/isolate/isolate.status
@@ -9,7 +9,7 @@
 [ $runtime == vm && $arch == mips && $mode == debug ]
 mandel_isolate_test: Skip # Uses 600 MB Ram on our 1 GB test device.
 
-[ $compiler == none || $compiler == dart2dart ]
+[ $compiler == none ]
 compile_time_error_test/01: Skip # Issue 12587
 ping_test: Skip           # Resolve test issues
 ping_pause_test: Skip     # Resolve test issues
@@ -31,7 +31,8 @@
 browser/*: SkipByDesign  # Browser specific tests
 
 [ $compiler == dart2js && $runtime == jsshell ]
-pause_test: Fail  # non-zero timer not supported.
+pause_test: Fail, OK  # non-zero timer not supported.
+timer_isolate_test: Fail, OK # Needs Timer to run.
 
 [ $compiler == dart2js && $runtime == safari ]
 cross_isolate_message_test: Skip # Issue 12627
@@ -50,6 +51,7 @@
 message3_test/constMap: RuntimeError  # Issue 21817
 message3_test/constInstance: RuntimeError # Issue 21817
 browser/issue_12474_test: CompileTimeError # Issue 22529
+enum_const_test/02: RuntimeError # Issue 21817
 
 [ $compiler == dart2js && $jscl ]
 spawn_uri_test: SkipByDesign # Loading another file is not supported in JS shell
@@ -59,17 +61,6 @@
 
 mandel_isolate_test: Pass, Timeout # TODO(kasperl): Please triage.
 
-[ $compiler == dart2dart ]
-illegal_msg_mirror_test: RuntimeError    # Issue 16548
-spawn_uri_multi_test/none: RuntimeError  # Issue 16549
-spawn_uri_nested_vm_test: RuntimeError   # Issue 16549
-spawn_uri_test: RuntimeError             # Issue 16549
-spawn_uri_vm_test: RuntimeError          # Issue 16549
-spawn_uri_exported_main_test: RuntimeError # Issue 16549
-issue_21398_parent_isolate_test: RuntimeError  # Issue 16549
-issue_21398_parent_isolate1_test: RuntimeError # Issue 16549
-issue_21398_parent_isolate2_test: Skip # Not implemented yet
-
 [ $compiler == dart2js && ( $runtime == ff || $runtime == safari || $runtime == drt || $runtime == chrome || $runtime == chromeOnAndroid) ]
 isolate_stress_test: Pass, Slow # Issue 10697
 
@@ -82,7 +73,7 @@
 [ $jscl ]
 spawn_uri_multi_test/none: RuntimeError # Issue 13544
 
-[ ($compiler == none || $compiler == dart2dart) && ($runtime == dartium || $runtime == drt || $runtime == ContentShellOnAndroid) ]
+[ $compiler == none && ($runtime == dartium || $runtime == drt || $runtime == ContentShellOnAndroid) ]
 pause_test: Fail         # Not implemented yet
 
 [ $compiler == none && $runtime == ContentShellOnAndroid ]
@@ -92,6 +83,7 @@
 spawn_uri_nested_vm_test: Skip # Issue 14479: This test is timing out.
 
 [ $compiler == none && ( $runtime == dartium || $runtime == drt || $runtime == ContentShellOnAndroid) ]
+typed_message_test: Crash, Fail # Issue 13921, 14400
 message_enum_test: Fail, OK # Issue 13921 Dom isolates don't support spawnFunction
 compile_time_error_test/none: Fail, OK # Issue 13921 Dom isolates don't support spawnFunction
 isolate_import_test/none: Fail, OK # Issue 13921 Dom isolates don't support spawnFunction
@@ -114,6 +106,11 @@
 handle_error_test: Fail, OK  # 13921 Dom isolates don't support spawnFunction
 handle_error2_test: Fail, OK  # 13921 Dom isolates don't support spawnFunction
 handle_error3_test: Fail, OK  # 13921 Dom isolates don't support spawnFunction
+timer_isolate_test: Fail, Pass # Issue 15487. Issue 13921: Dom isolates don't support spawnFunction
+deferred_in_isolate2_test: Fail, OK  # Issue 16209, 13921 Dom isolates don't support spawnFunction
+bool_from_environment_default_value_test: Skip
+int_from_environment_default_value_test: Skip
+string_from_environment_default_value_test: Skip
 
 [ $compiler == dartanalyzer || $compiler == dart2analyzer ]
 browser/typed_data_message_test: StaticWarning
@@ -123,58 +120,62 @@
 package_root_test: SkipByDesign # Uses dart:io.
 
 [ $compiler == dart2js && $cps_ir ]
-capability_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-compile_time_error_test/01: Crash # handleStaticFunctionGet: function(entry)
-compile_time_error_test/none: Crash # handleStaticFunctionGet: function(entry)
-count_test: Crash # cannot compile methods that need interceptor calling convention.
-cross_isolate_message_test: Crash # cannot compile methods that need interceptor calling convention.
-function_send_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-handle_error2_test: Crash #  Unhandled node
-handle_error3_test: Crash #  Unhandled node
-handle_error_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-illegal_msg_function_test: Crash # cannot compile methods that need interceptor calling convention.
-illegal_msg_mirror_test: Crash # cannot compile methods that need interceptor calling convention.
-isolate_complex_messages_test: Crash # cannot compile methods that need interceptor calling convention.
-isolate_current_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-isolate_import_test/01: Crash # (Isolate): Error expression `Isolate` unhandled.
-isolate_import_test/none: Crash # handleStaticFunctionGet: function(entry)
-isolate_stress_test: Crash # handleStaticFunctionGet: function(worker)
-issue_22778_test: Crash # (throw new ExpectException(message)): Unhandled node
-kill2_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-kill_self_test: Crash # handleStaticFunctionGet: function(isomain1)
-kill_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-mandel_isolate_test: Crash # cannot compile methods that need interceptor calling convention.
-message2_test: Crash # cannot compile methods that need interceptor calling convention.
-message3_test/byteBuffer: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-message3_test/constInstance: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-message3_test/constList: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-message3_test/constList_identical: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-message3_test/constMap: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-message3_test/fun: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-message3_test/int32x4: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-message3_test/none: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-message_enum_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-message_test: Crash # cannot compile methods that need interceptor calling convention.
-mint_maker_test: Crash # cannot compile methods that need interceptor calling convention.
-nested_spawn2_test: Crash # cannot compile methods that need interceptor calling convention.
-nested_spawn_test: Crash # cannot compile methods that need interceptor calling convention.
-object_leak_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-ondone_test: Crash # handleStaticFunctionGet: function(isomain)
-pause_test: Crash # handleStaticFunctionGet: function(isomain1)
-ping_pause_test: Crash # (throw new ExpectException(message)): Unhandled node
-ping_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-port_test: Crash # (throw new ExpectException(message)): Unhandled node
-raw_port_test: Crash # cannot compile methods that need interceptor calling convention.
-request_reply_test: Crash # cannot compile methods that need interceptor calling convention.
-simple_message_test/01: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-simple_message_test/none: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-spawn_function_custom_class_test: Crash # cannot compile methods that need interceptor calling convention.
-spawn_function_test: Crash # cannot compile methods that need interceptor calling convention.
-spawn_uri_missing_from_isolate_test: Crash # handleStaticFunctionGet: function(isolate)
-spawn_uri_missing_test: Crash # handleStaticFunctionGet: function(doTest)
-spawn_uri_multi_test/01: Crash # cannot compile methods that need interceptor calling convention.
-spawn_uri_multi_test/none: Crash # cannot compile methods that need interceptor calling convention.
-stacktrace_message_test: Crash # cannot compile methods that need interceptor calling convention.
-start_paused_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-static_function_test: Crash # cannot compile methods that need interceptor calling convention.
-unresolved_ports_test: Crash # cannot compile methods that need interceptor calling convention.
+bool_from_environment_default_value_test: Crash # (test): handleStaticFunctionGet: function(test)
+compile_time_error_test/01: Crash # (entry): handleStaticFunctionGet: function(entry)
+compile_time_error_test/none: Crash # (entry): handleStaticFunctionGet: function(entry)
+count_test: Crash # (main): handleStaticFunctionGet: function(main)
+cross_isolate_message_test: Crash # (main): handleStaticFunctionGet: function(main)
+function_send_test: Crash # (toplevel): handleStaticFunctionGet: function(toplevel)
+handle_error2_test: Crash # (isomain1): handleStaticFunctionGet: function(isomain1)
+handle_error3_test: Crash # (isomain1): handleStaticFunctionGet: function(isomain1)
+handle_error_test: Crash # (isomain1): handleStaticFunctionGet: function(isomain1)
+illegal_msg_function_test: Crash # (main): handleStaticFunctionGet: function(main)
+illegal_msg_mirror_test: Crash # (main): handleStaticFunctionGet: function(main)
+int_from_environment_default_value_test: Crash # (test): handleStaticFunctionGet: function(test)
+isolate_complex_messages_test: Crash # (main): handleStaticFunctionGet: function(main)
+isolate_current_test: Crash # (i2l): handleStaticFunctionGet: function(i2l)
+isolate_import_test/01: Crash # (entry): handleStaticFunctionGet: function(entry)
+isolate_import_test/none: Crash # (entry): handleStaticFunctionGet: function(entry)
+isolate_stress_test: Crash # (worker): handleStaticFunctionGet: function(worker)
+issue_22778_test: Crash # (func): handleStaticFunctionGet: function(func)
+kill2_test: Crash # (isomain1): handleStaticFunctionGet: function(isomain1)
+kill_self_test: Crash # (isomain1): handleStaticFunctionGet: function(isomain1)
+kill_test: Crash # (isomain1): handleStaticFunctionGet: function(isomain1)
+mandel_isolate_test: Crash # (main): handleStaticFunctionGet: function(main)
+message2_test: Crash # (main): handleStaticFunctionGet: function(main)
+message3_test/byteBuffer: Crash # (echoMain): handleStaticFunctionGet: function(echoMain)
+message3_test/constInstance: Crash # (echoMain): handleStaticFunctionGet: function(echoMain)
+message3_test/constList: Crash # (echoMain): handleStaticFunctionGet: function(echoMain)
+message3_test/constList_identical: Crash # (echoMain): handleStaticFunctionGet: function(echoMain)
+message3_test/constMap: Crash # (echoMain): handleStaticFunctionGet: function(echoMain)
+message3_test/fun: Crash # (echoMain): handleStaticFunctionGet: function(echoMain)
+message3_test/int32x4: Crash # (echoMain): handleStaticFunctionGet: function(echoMain)
+message3_test/none: Crash # (echoMain): handleStaticFunctionGet: function(echoMain)
+message_enum_test: Crash # (sendIt): handleStaticFunctionGet: function(sendIt)
+message_test: Crash # (main): handleStaticFunctionGet: function(main)
+mint_maker_test: Crash # (main): handleStaticFunctionGet: function(main)
+nested_spawn2_test: Crash # (main): handleStaticFunctionGet: function(main)
+nested_spawn_test: Crash # (main): handleStaticFunctionGet: function(main)
+object_leak_test: Crash # (fun): handleStaticFunctionGet: function(fun)
+ondone_test: Crash # (isomain): handleStaticFunctionGet: function(isomain)
+pause_test: Crash # (isomain1): handleStaticFunctionGet: function(isomain1)
+ping_pause_test: Crash # (isomain1): handleStaticFunctionGet: function(isomain1)
+ping_test: Crash # (isomain1): handleStaticFunctionGet: function(isomain1)
+raw_port_test: Crash # (main): handleStaticFunctionGet: function(main)
+request_reply_test: Crash # (main): handleStaticFunctionGet: function(main)
+simple_message_test/01: Crash # (entry): handleStaticFunctionGet: function(entry)
+simple_message_test/none: Crash # (entry): handleStaticFunctionGet: function(entry)
+spawn_function_custom_class_test: Crash # (main): handleStaticFunctionGet: function(main)
+spawn_function_test: Crash # (main): handleStaticFunctionGet: function(main)
+spawn_uri_missing_from_isolate_test: Crash # (isolate): handleStaticFunctionGet: function(isolate)
+spawn_uri_missing_test: Crash # (doTest): handleStaticFunctionGet: function(doTest)
+spawn_uri_multi_test/01: Crash # unsupported element kind: _defaultEnvironment:field
+spawn_uri_multi_test/none: Crash # unsupported element kind: _defaultEnvironment:field
+stacktrace_message_test: Crash # (main): handleStaticFunctionGet: function(main)
+start_paused_test: Crash # (notyet): handleStaticFunctionGet: function(notyet)
+static_function_test: Crash # (main): handleStaticFunctionGet: function(main)
+string_from_environment_default_value_test: Crash # (test): handleStaticFunctionGet: function(test)
+timer_isolate_test: Crash # cannot compile methods that need interceptor calling convention.
+typed_message_test: Crash # (logMessages): handleStaticFunctionGet: function(logMessages)
+unresolved_ports_test: Crash # (main): handleStaticFunctionGet: function(main)
+
diff --git a/tests/corelib/string_from_environment_default_value.dart b/tests/isolate/string_from_environment_default_value_test.dart
similarity index 100%
rename from tests/corelib/string_from_environment_default_value.dart
rename to tests/isolate/string_from_environment_default_value_test.dart
diff --git a/tests/lib/async/timer_isolate_test.dart b/tests/isolate/timer_isolate_test.dart
similarity index 100%
rename from tests/lib/async/timer_isolate_test.dart
rename to tests/isolate/timer_isolate_test.dart
diff --git a/tests/language/typed_message_test.dart b/tests/isolate/typed_message_test.dart
similarity index 100%
rename from tests/language/typed_message_test.dart
rename to tests/isolate/typed_message_test.dart
diff --git a/tests/language/deferred_call_empty_before_load_lib.dart b/tests/language/deferred_call_empty_before_load_lib.dart
new file mode 100644
index 0000000..32dd376
--- /dev/null
+++ b/tests/language/deferred_call_empty_before_load_lib.dart
@@ -0,0 +1,5 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+thefun() {}
diff --git a/tests/language/deferred_call_empty_before_load_test.dart b/tests/language/deferred_call_empty_before_load_test.dart
new file mode 100644
index 0000000..c241c6a9
--- /dev/null
+++ b/tests/language/deferred_call_empty_before_load_test.dart
@@ -0,0 +1,13 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Test that calling a function, even though it itself has no effect, will
+// trigger an error if the corresponding deferred library has not been loaded.
+
+import "package:expect/expect.dart";
+import "deferred_call_empty_before_load_lib.dart" deferred as lib1;
+
+main() {
+  Expect.throws(() => lib1.thefun());
+}
diff --git a/tests/language/deferred_inheritance_constraints_test.dart b/tests/language/deferred_inheritance_constraints_test.dart
index 8fb023c..ff009e6 100644
--- a/tests/language/deferred_inheritance_constraints_test.dart
+++ b/tests/language/deferred_inheritance_constraints_test.dart
@@ -22,7 +22,7 @@
 class D { 
   D() ;
   factory D.factory() = 
-    lib. /// redirecting_constructor: static type warning, runtime error
+    lib. /// redirecting_constructor: static type warning
     Foo2;
 }
 
@@ -30,5 +30,7 @@
   new A();
   new B();
   new C();
-  new D.factory();
+  Expect.throws(() { /// redirecting_constructor: continued
+    new D.factory();
+  }); /// redirecting_constructor: continued
 }
\ No newline at end of file
diff --git a/tests/language/deferred_redirecting_factory_lib1.dart b/tests/language/deferred_redirecting_factory_lib1.dart
new file mode 100644
index 0000000..e9100fb
--- /dev/null
+++ b/tests/language/deferred_redirecting_factory_lib1.dart
@@ -0,0 +1,18 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library lib1;
+
+import "deferred_redirecting_factory_lib2.dart" deferred as lib2;
+import "deferred_redirecting_factory_test.dart" as main;
+
+loadLib2() {
+  return lib2.loadLibrary();
+}
+
+class C extends main.C {
+  String get foo => "lib1";
+  C();
+  factory C.a() = lib2.C;
+}
\ No newline at end of file
diff --git a/tests/language/deferred_redirecting_factory_lib2.dart b/tests/language/deferred_redirecting_factory_lib2.dart
new file mode 100644
index 0000000..62cbf14
--- /dev/null
+++ b/tests/language/deferred_redirecting_factory_lib2.dart
@@ -0,0 +1,11 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library lib2;
+
+import "deferred_redirecting_factory_lib1.dart" as lib1;
+
+class C extends lib1.C {
+  String get foo => "lib2";
+}
\ No newline at end of file
diff --git a/tests/language/deferred_redirecting_factory_test.dart b/tests/language/deferred_redirecting_factory_test.dart
new file mode 100644
index 0000000..e5f4e5d
--- /dev/null
+++ b/tests/language/deferred_redirecting_factory_test.dart
@@ -0,0 +1,51 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+library main;
+
+import "deferred_redirecting_factory_lib1.dart" deferred as lib1;
+import "package:expect/expect.dart";
+import "package:async_helper/async_helper.dart";
+
+class C {
+  String get foo => "main";
+  C();
+  factory C.a() = lib1.C;
+  factory C.b() = lib1.C.a;
+}
+
+test1() async {
+  Expect.throws(() {
+    new C.a();
+  });
+  Expect.throws(() {
+    new C.b();
+  });
+}
+
+test2() async {
+  await lib1.loadLibrary();
+  Expect.equals("lib1", new C.a().foo);
+  Expect.throws(() {
+    new C.b();
+  });
+}
+
+test3() async {
+  await lib1.loadLibrary();
+  await lib1.loadLib2();
+  Expect.equals("lib1", new C.a().foo);
+  Expect.equals("lib2", new C.b().foo);
+}
+
+
+test() async {
+  await test1();
+  await test2();
+  await test3();
+}
+
+void main() {
+  asyncStart();
+  test().then((_) => asyncEnd());
+}
\ No newline at end of file
diff --git a/tests/language/language.status b/tests/language/language.status
index 1b36eea..bc11d57 100644
--- a/tests/language/language.status
+++ b/tests/language/language.status
@@ -28,27 +28,8 @@
 conditional_property_access_test: Fail
 conditional_method_invocation_test: Fail
 
-[ $compiler == dart2dart ]
-deferred_load_library_wrong_args_test/none: Fail # Issue 17523
-deferred_load_inval_code_test: Fail # Issue 17523
-deferred_not_loaded_check_test: Fail # Issue 17523
-deferred_constraints_type_annotation_test/*: Fail, Pass # Issue 17523
-deferred_constraints_constants_test/*: Fail, Pass # Issue 17523
-deferred_shadow_load_library_test: Fail # Issue 17523
-deferred_closurize_load_library_test: Fail  # Issue 17523
-deferred_inlined_test: Fail  # Issue 17523
-deferred_optimized_test: Fail  # Issue 17523
-regress_22443_test: Fail # Issue 17523
-enum_mirror_test: Skip # Issue 11511.
-getter_setter_in_lib_test: Fail # Issue 23288
-
-override_inheritance_mixed_test/08: Fail # Issue 18124
-override_inheritance_mixed_test/09: Fail # Issue 18124
-
-[ $compiler == dart2dart ]
-multiline_strings_test: Fail # Issue (pending)
-
-[ $compiler == none || $compiler == dart2dart ]
+deferred_redirecting_factory_test: Fail # Issue 23408
+[ $compiler == none ]
 # Non-contractive types are not supported in the vm.
 cyclic_type_test/02: Fail, OK
 cyclic_type_test/04: Fail, OK
@@ -90,7 +71,6 @@
 
 [ $compiler == none && ( $runtime == dartium || $runtime == drt || $runtime == ContentShellOnAndroid) ]
 issue13474_test: Pass, Fail # Issue 14651.
-typed_message_test: Crash, Fail # Issue 13921, 14400
 vm/optimized_guarded_field_isolates_test: Fail # Issue 13921.
 main_test/01: Fail # Issue 20028
 main_test/02: Fail # Issue 20028
diff --git a/tests/language/language_dart2js.status b/tests/language/language_dart2js.status
index be1c3a2..0e736bf 100644
--- a/tests/language/language_dart2js.status
+++ b/tests/language/language_dart2js.status
@@ -18,7 +18,7 @@
 await_for_test: Skip # Jsshell does not provide periodic timers, Issue 7728
 async_star_test: RuntimeError # Jsshell does not provide non-zero timers, Issue 7728
 
-[ $compiler == dart2js || $compiler == dart2dart ]
+[ $compiler == dart2js ]
 symbol_literal_test/*: Fail # Issue 21825
 constructor_duplicate_final_test/01: Fail # Issue 13363
 constructor_duplicate_final_test/02: Fail # Issue 13363
@@ -93,7 +93,7 @@
 malbounded_type_test2_test: Fail # Issue 14121
 default_factory2_test/01: Fail # Issue 14121
 
-[ ($compiler == dart2js || $compiler == dart2dart) && $checked ]
+[ $compiler == dart2js && $checked ]
 compile_time_constant_checked5_test/06: Fail # Issue 23182
 compile_time_constant_checked5_test/07: Fail # Issue 23182
 compile_time_constant_checked5_test/10: Fail # Issue 23182
@@ -120,7 +120,6 @@
 positional_parameters_type_test/01: MissingRuntimeError, OK
 positional_parameters_type_test/02: MissingRuntimeError, OK
 issue13474_test: RuntimeError, OK
-generic_field_mixin3_test: Crash # Issue 18651
 
 [ $compiler == dart2js && $unchecked && $minified ]
 f_bounded_quantification5_test: Fail, OK # Issue 12605
@@ -175,8 +174,6 @@
 const_switch_test/02: RuntimeError # Issue 17960
 const_switch_test/04: RuntimeError # Issue 17960
 
-enum_const_test/02: RuntimeError # Issue 21817
-
 const_dynamic_type_literal_test/02: CompileTimeError # Issue 23009
 const_dynamic_type_literal_test/03: CompileTimeError # Issue 23009
 
@@ -217,84 +214,6 @@
 [ $compiler == dart2js && $runtime == chromeOnAndroid ]
 override_field_test/02: Pass, Slow # TODO(kasperl): Please triage.
 
-[ $compiler == dart2dart && $builder_tag == new_backend ]
-regress_13494_test: Pass # Issue 22370, passes for the wrong reason
-
-[ $compiler == dart2dart && $minified == true ]
-type_variable_conflict2_test/01: RuntimeError # Issue 16180
-
-[ $compiler == dart2dart ]
-sync_generator2_test/07: MissingCompileTimeError # Issue 22324
-sync_generator2_test/08: MissingCompileTimeError # Issue 22324
-sync_generator2_test/10: MissingCompileTimeError # Issue 22324
-
-regress_13494_test: Fail # Issue 22370
-
-enum_duplicate_test/01: CompileTimeError # Issue 22169
-
-built_in_identifier_prefix_test: Fail # Issue 6972
-constructor_initializer_test/none: Fail # Issue 12633
-
-# Mixins fail on the VM.
-mixin_with_two_implicit_constructors_test: Fail # Issue 11889
-
-# Calling unresolved class constructor:
-call_nonexistent_constructor_test/01: Fail # Issue 13082
-call_nonexistent_constructor_test/02: Fail # Issue 13082
-private_access_test/05: Fail # Issue 13082
-private_access_test/06: Fail # Issue 13082
-
-bad_override_test/01: Fail # Issue 11496
-bad_override_test/02: Fail # Issue 11496
-
-constructor_named_arguments_test/01: Fail # Issue 5519
-not_enough_positional_arguments_test/01: Fail # Issue 12839
-not_enough_positional_arguments_test/02: Fail # Issue 12839
-not_enough_positional_arguments_test/05: Fail # Issue 12839
-
-metadata_test: Fail # Issue 12762
-const_evaluation_test/01: Fail # Issue 12762
-built_in_identifier_test/01: Fail # Issue 13022
-method_override4_test: Fail # Issue 12810
-method_override5_test: Fail # Issue 12810
-scope_variable_test/01: Fail # Issue 13016
-factory_redirection_test/01: Fail # Issue 12753
-
-# DartVM problem.
-constructor5_test: Fail
-constructor6_test: Fail
-closure_in_initializer_test: Fail
-
-new_expression_type_args_test/00: Fail # Wrongly reports compile-time error.
-new_expression_type_args_test/01: Fail # Wrongly reports compile-time error.
-
-deferred*: skip # Issue 17523
-cha_deopt1_test: skip # Issue 17523
-cha_deopt2_test: skip # Issue 17523
-cha_deopt3_test: skip # Issue 17523
-issue_1751477_test: skip # Issue 17523
-
-external_test/21: MissingCompileTimeError # Issue 12888
-external_test/24: MissingCompileTimeError # Issue 12888
-
-function_propagation_test: RuntimeError # Issue 21673
-function_subtype_call0_test: RuntimeError # Issue 21673
-function_subtype_call1_test: RuntimeError # Issue 21673
-function_subtype_call2_test: RuntimeError # Issue 21673
-
-instance_creation_in_function_annotation_test: Fail # Issue 23363
-
-[ $compiler == dart2dart && $minified ]
-cyclic_type_test/0*: Fail # Issue 12605.
-cyclic_type2_test: Fail # Issue 12605.
-super_getter_setter_test: Fail # Issue 11065.
-f_bounded_quantification4_test: Fail # Issue 12605.
-f_bounded_quantification5_test: Fail # Issue 12605.
-type_variable_typedef_test: Fail # Issue 11467
-
-invocation_mirror_test: Fail, OK # Issue 12706 (hardcoded names).
-super_call4_test: Fail, OK # hardcoded names.
-
 [ $minified ]
 stack_trace_test: Fail, OK # Stack trace not preserved in minified code.
 regress_21795_test: RuntimeError # Issue 12605
@@ -309,58 +228,35 @@
 
 [ $compiler == dart2js && $cps_ir ]
 aborting_switch_case_test: Crash # (switch (42){case 42:foo();foo();break;}): Unhandled node
-abstract_exact_selector_test/01: Crash # (throw new ExpectException(message)): Unhandled node
-abstract_exact_selector_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-abstract_getter_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-abstract_method_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-abstract_object_method_test: Crash # (throw new ExpectException(message)): Unhandled node
-abstract_runtime_error_test/01: Crash # (throw new ExpectException(message)): Unhandled node
-abstract_runtime_error_test/02: Crash # (throw new ExpectException(message)): Unhandled node
-abstract_runtime_error_test/03: Crash # (throw new ExpectException(message)): Unhandled node
-abstract_runtime_error_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-abstract_syntax_test/00: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-abstract_syntax_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-abstract_syntax_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-ackermann_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-adjacent_const_string_literals_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-adjacent_string_literals_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-allocate_large_object_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-allocate_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-allocation_sinking_inlining_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-and_operation_on_non_integer_operand_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-application_negative_test: Crash # (Expect): Error expression `Expect` unhandled.
-argument_definition_test/01: Crash # (test(1,b:2,c:3)): Error expression `test(1,b:2,c:3)` unhandled.
-argument_definition_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-arithmetic2_test: Crash # (throw new ExpectException(message)): Unhandled node
-arithmetic_canonicalization_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-arithmetic_smi_overflow_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-arithmetic_test: Crash # (throw new ExpectException(message)): Unhandled node
-assertion_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-assign_op_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-assign_top_method_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-assign_to_type_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-assign_to_type_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-assign_to_type_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-assign_to_type_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-async_and_or_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async_await_catch_regression_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
+abstract_exact_selector_test/01: Crash # unsupported element kind: a:field
+abstract_exact_selector_test/none: Crash # unsupported element kind: a:field
+abstract_getter_test/01: Crash # (noMethod): handleStaticFunctionGet: function(noMethod)
+abstract_object_method_test: Crash # unsupported element kind: a:field
+abstract_runtime_error_test/01: Crash # (interface): handleStaticFunctionGet: function(interface)
+abstract_runtime_error_test/02: Crash # (abstractClass): handleStaticFunctionGet: function(abstractClass)
+arithmetic2_test: Crash # (A.foo): handleStaticFunctionGet: function(A#foo)
+arithmetic_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+assign_to_type_test/01: Crash # (noMethod): handleStaticFunctionGet: function(noMethod)
+assign_to_type_test/02: Crash # (noMethod): handleStaticFunctionGet: function(noMethod)
+assign_to_type_test/03: Crash # (noMethod): handleStaticFunctionGet: function(noMethod)
+assign_to_type_test/04: Crash # (noMethod): handleStaticFunctionGet: function(noMethod)
+assign_top_method_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+async_and_or_test: Crash # (test()async{await test1();await test2();}): cannot handle async/sync*/async* functions
+async_await_catch_regression_test: Crash #  cannot handle async/sync*/async* functions
 async_await_syntax_test/a01a: Crash # (a01a()async=>null;): cannot handle async/sync*/async* functions
 async_await_syntax_test/a02a: Crash # (a02a()async{}): cannot handle async/sync*/async* functions
 async_await_syntax_test/a03a: Crash # (a03a()async*{}): cannot handle async/sync*/async* functions
 async_await_syntax_test/a03b: Crash # (a03b()async*{}): cannot handle async/sync*/async* functions
 async_await_syntax_test/a04a: Crash # (a04a()sync*{}): cannot handle async/sync*/async* functions
-async_await_syntax_test/a04b: Crash # (a04b()): Error expression `a04b()` unhandled.
 async_await_syntax_test/a04c: Crash # (a04c()sync*{}): cannot handle async/sync*/async* functions
 async_await_syntax_test/a05a: Crash # (a05a()async{await 0;}): cannot handle async/sync*/async* functions
 async_await_syntax_test/a05b: Crash # (a05b()async{await (a){};await (0);}): cannot handle async/sync*/async* functions
 async_await_syntax_test/a06a: Crash # (a06a()async{await for(var o in st){}}): cannot handle async/sync*/async* functions
 async_await_syntax_test/a07a: Crash # (a07a()sync*{yield 0;}): cannot handle async/sync*/async* functions
-async_await_syntax_test/a07b: Crash # (a07b()): Error expression `a07b()` unhandled.
 async_await_syntax_test/a08a: Crash # (a08a()sync*{yield* [] ;}): cannot handle async/sync*/async* functions
-async_await_syntax_test/a08b: Crash # (a08b()): Error expression `a08b()` unhandled.
 async_await_syntax_test/a09a: Crash # (a09a()async*{yield 0;}): cannot handle async/sync*/async* functions
 async_await_syntax_test/a10a: Crash # (a10a()async*{yield* [] ;}): cannot handle async/sync*/async* functions
-async_await_syntax_test/a11a: Crash # (sync): Error expression `sync` unhandled.
+async_await_syntax_test/a11a: Crash # Please triage this failure.
 async_await_syntax_test/a11b: Crash # (get sync sync*{}): cannot handle async/sync*/async* functions
 async_await_syntax_test/a11c: Crash # (get async async{}): cannot handle async/sync*/async* functions
 async_await_syntax_test/a11d: Crash # (get async async*{}): cannot handle async/sync*/async* functions
@@ -403,39 +299,34 @@
 async_await_test/02: Crash # (f()async{return id(42);}): cannot handle async/sync*/async* functions
 async_await_test/03: Crash # (f()async{return id(42);}): cannot handle async/sync*/async* functions
 async_await_test/none: Crash # (f()async{return id(42);}): cannot handle async/sync*/async* functions
-async_break_in_finally_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async_continue_label_test/await_in_body: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async_continue_label_test/await_in_condition: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async_continue_label_test/await_in_init: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async_continue_label_test/await_in_update: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async_continue_label_test/none: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async_control_structures_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+async_break_in_finally_test: Crash #  cannot handle async/sync*/async* functions
+async_continue_label_test/await_in_body: Crash #  cannot handle async/sync*/async* functions
+async_continue_label_test/await_in_condition: Crash #  cannot handle async/sync*/async* functions
+async_continue_label_test/await_in_init: Crash #  cannot handle async/sync*/async* functions
+async_continue_label_test/await_in_update: Crash #  cannot handle async/sync*/async* functions
+async_continue_label_test/none: Crash #  cannot handle async/sync*/async* functions
+async_control_structures_test: Crash # Instance of 'TypeOperator': type check unimplemented for Future.
 async_finally_rethrow_test: Crash #  cannot handle async/sync*/async* functions
-async_or_generator_return_type_stacktrace_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-async_or_generator_return_type_stacktrace_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-async_or_generator_return_type_stacktrace_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-async_or_generator_return_type_stacktrace_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-async_regression_23058_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
+async_or_generator_return_type_stacktrace_test/01: Crash # (void badReturnTypeAsync()async{}): cannot handle async/sync*/async* functions
+async_or_generator_return_type_stacktrace_test/02: Crash # (void badReturnTypeAsyncStar()async*{}): cannot handle async/sync*/async* functions
+async_or_generator_return_type_stacktrace_test/03: Crash # (void badReturnTypeSyncStar()sync*{}): cannot handle async/sync*/async* functions
+async_regression_23058_test: Crash # (foo()async{return x.foo==2?42:x.foo;}): cannot handle async/sync*/async* functions
 async_rethrow_test: Crash #  cannot handle async/sync*/async* functions
-async_return_types_test/nestedFuture: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async_return_types_test/none: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async_return_types_test/tooManyTypeParameters: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async_return_types_test/wrongReturnType: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async_return_types_test/wrongTypeParameter: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async_star_cancel_and_throw_in_finally_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-asyncstar_concat_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async_star_regression_23116_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
+async_return_types_test/nestedFuture: Crash # (test): handleStaticFunctionGet: function(test)
+async_return_types_test/none: Crash # (test): handleStaticFunctionGet: function(test)
+async_return_types_test/tooManyTypeParameters: Crash # (test): handleStaticFunctionGet: function(test)
+async_return_types_test/wrongReturnType: Crash # (test): handleStaticFunctionGet: function(test)
+async_return_types_test/wrongTypeParameter: Crash # (test): handleStaticFunctionGet: function(test)
+async_star_cancel_and_throw_in_finally_test: Crash #  cannot handle async/sync*/async* functions
+async_star_regression_23116_test: Crash #  cannot handle async/sync*/async* functions
 async_star_test/01: Crash # (f()async*{}): cannot handle async/sync*/async* functions
 async_star_test/02: Crash # (f()async*{}): cannot handle async/sync*/async* functions
 async_star_test/03: Crash # (f()async*{}): cannot handle async/sync*/async* functions
 async_star_test/04: Crash # (f()async*{}): cannot handle async/sync*/async* functions
 async_star_test/05: Crash # (f()async*{}): cannot handle async/sync*/async* functions
 async_star_test/none: Crash # (f()async*{}): cannot handle async/sync*/async* functions
-asyncstar_throw_in_catch_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-asyncstar_yieldstar_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-asyncstar_yield_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async_switch_test/none: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async_switch_test/withDefault: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
+async_switch_test/none: Crash #  cannot handle async/sync*/async* functions
+async_switch_test/withDefault: Crash #  cannot handle async/sync*/async* functions
 async_test/constructor2: Crash # (bar(int p1,p2)async{var z=8;return p2+z+foo;}): cannot handle async/sync*/async* functions
 async_test/constructor3: Crash # (bar(int p1,p2)async{var z=8;return p2+z+foo;}): cannot handle async/sync*/async* functions
 async_test/constructor4: Crash # (bar(int p1,p2)async{var z=8;return p2+z+foo;}): cannot handle async/sync*/async* functions
@@ -445,592 +336,284 @@
 async_test/type-mismatch2: Crash # (bar(int p1,p2)async{var z=8;return p2+z+foo;}): cannot handle async/sync*/async* functions
 async_test/type-mismatch3: Crash # (bar(int p1,p2)async{var z=8;return p2+z+foo;}): cannot handle async/sync*/async* functions
 async_test/type-mismatch4: Crash # (bar(int p1,p2)async{var z=8;return p2+z+foo;}): cannot handle async/sync*/async* functions
-async_this_bound_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async_throw_in_catch_test/forceAwait: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async_throw_in_catch_test/none: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-await_backwards_compatibility_test/await1: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-await_backwards_compatibility_test/await2: Crash # (test1()): Error expression `test1()` unhandled.
-await_backwards_compatibility_test/await3: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-await_backwards_compatibility_test/await4: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-await_backwards_compatibility_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-await_exceptions_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-await_for_cancel_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-await_for_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-await_for_use_local_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-await_future_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
+async_this_bound_test: Crash # (test()async{await testA();await testB();}): cannot handle async/sync*/async* functions
+async_throw_in_catch_test/forceAwait: Crash # (test): handleStaticFunctionGet: function(test)
+async_throw_in_catch_test/none: Crash # (test): handleStaticFunctionGet: function(test)
+asyncstar_concat_test: Crash #  cannot handle async/sync*/async* functions
+asyncstar_throw_in_catch_test: Crash # (test): handleStaticFunctionGet: function(test)
+asyncstar_yield_test: Crash #  cannot handle async/sync*/async* functions
+asyncstar_yieldstar_test: Crash #  cannot handle async/sync*/async* functions
+await_backwards_compatibility_test/await1: Crash # (test1()async{var x=await 9;Expect.equals(9,x);}): cannot handle async/sync*/async* functions
+await_backwards_compatibility_test/await2: Crash # (test0()async{var x=await 7;Expect.equals(7,x);}): cannot handle async/sync*/async* functions
+await_backwards_compatibility_test/await3: Crash # (test1()async{var x=await 9;Expect.equals(9,x);}): cannot handle async/sync*/async* functions
+await_backwards_compatibility_test/await4: Crash # (test1()async{var x=await 9;Expect.equals(9,x);}): cannot handle async/sync*/async* functions
+await_backwards_compatibility_test/none: Crash # (test1()async{var x=await 9;Expect.equals(9,x);}): cannot handle async/sync*/async* functions
+await_exceptions_test: Crash # (asyncEnd): handleStaticFunctionGet: function(asyncEnd)
+await_for_cancel_test: Crash # (test()async{await test1();await test2();}): cannot handle async/sync*/async* functions
+await_for_test: Crash # unsupported element kind: t4:field
+await_for_use_local_test: Crash #  cannot handle async/sync*/async* functions
+await_future_test: Crash #  cannot handle async/sync*/async* functions
 await_nonfuture_test: Crash # (foo()async{Expect.equals(X,10);return await 5;}): cannot handle async/sync*/async* functions
-await_not_started_immediately_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-await_postfix_expr_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
+await_not_started_immediately_test: Crash # (asyncEnd): handleStaticFunctionGet: function(asyncEnd)
+await_postfix_expr_test: Crash #  cannot handle async/sync*/async* functions
 await_regression_test: Crash #  cannot handle async/sync*/async* functions
 await_test: Crash #  cannot handle async/sync*/async* functions
-bad_constructor_test/06: Crash # (new A()): Error expression `new A()` unhandled.
-bad_named_constructor_negative_test: Crash #  Error expression `BadNamedConstructorNegativeTest.testMain()` unhandled.
-bad_named_parameters2_test/01: Crash # (try {caught=false;np.foo(b:25);}on NoSuchMethodError catch (e){caught=true;}): "on T" catch block
-bad_named_parameters2_test/none: Crash # (try {caught=false;}on NoSuchMethodError catch (e){caught=true;}): "on T" catch block
-bad_named_parameters_test/01: Crash #  "on T" catch block
-bad_named_parameters_test/02: Crash # (try {caught=false;}on NoSuchMethodError catch (e){caught=true;}): "on T" catch block
-bad_named_parameters_test/03: Crash # (try {caught=false;}on NoSuchMethodError catch (e){caught=true;}): "on T" catch block
-bad_named_parameters_test/04: Crash # (try {caught=false;}on NoSuchMethodError catch (e){caught=true;}): "on T" catch block
-bad_named_parameters_test/05: Crash # (try {caught=false;}on NoSuchMethodError catch (e){caught=true;}): "on T" catch block
-bad_named_parameters_test/none: Crash # (try {caught=false;}on NoSuchMethodError catch (e){caught=true;}): "on T" catch block
-bailout2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-bailout3_test: Crash # (throw 0): Unhandled node
-bailout4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-bailout5_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-bailout6_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-bailout7_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-bailout_container_type_test: Crash # (throw 'Test failed'): Unhandled node
-bailout_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-bind_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-bit_operations_test/01: Crash # (throw new ExpectException(message)): Unhandled node
-bit_operations_test/02: Crash # (throw new ExpectException(message)): Unhandled node
-bit_operations_test/03: Crash # (throw new ExpectException(message)): Unhandled node
-bit_operations_test/04: Crash # (throw new ExpectException(message)): Unhandled node
-bit_operations_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-bit_shift_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-bool_check_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-bool_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-bound_closure_equality_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-bound_closure_primitives_test: Crash # (throw new ExpectException(message)): Unhandled node
-branch_canonicalization_test: Crash # (throw new ExpectException(message)): Unhandled node
-branches_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-break_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-built_in_identifier_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-call_argument_inference_test: Crash # (throw new ExpectException(message)): Unhandled node
-call_closurization_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-call_constructor_on_unresolvable_class_test/01: Crash # (new A()): Error expression `new A()` unhandled.
-call_constructor_on_unresolvable_class_test/02: Crash # (new A.foo()): Error expression `new A.foo()` unhandled.
-call_constructor_on_unresolvable_class_test/03: Crash # (new lib.A()): Error expression `new lib.A()` unhandled.
-call_constructor_on_unresolvable_class_test/04: Crash # (new A()): Error expression `new A()` unhandled.
-call_constructor_on_unresolvable_class_test/05: Crash # (new A.foo()): Error expression `new A.foo()` unhandled.
-call_constructor_on_unresolvable_class_test/06: Crash # (new lib.A()): Error expression `new lib.A()` unhandled.
-call_constructor_on_unresolvable_class_test/07: Crash # (new A()): Error expression `new A()` unhandled.
-call_nonexistent_constructor_test/01: Crash #  "on T" catch block
-call_nonexistent_constructor_test/02: Crash # (try {}on NoSuchMethodError catch (e){i=-1;}on String catch (e){i=1;}): "on T" catch block
-call_nonexistent_constructor_test/none: Crash # (try {}on NoSuchMethodError catch (e){i=-1;}on String catch (e){i=1;}): "on T" catch block
-call_nonexistent_static_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-call_nonexistent_static_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-call_nonexistent_static_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-call_nonexistent_static_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-call_nonexistent_static_test/05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-call_nonexistent_static_test/06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-call_nonexistent_static_test/07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-call_nonexistent_static_test/08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-call_nonexistent_static_test/09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-call_nonexistent_static_test/10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-call_nonexistent_static_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-call_operator_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-call_property_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-call_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-call_this_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-call_through_getter_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-call_through_null_getter_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-call_type_literal_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-call_with_no_such_method_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-canonical_const2_test: Crash # (throw new ExpectException(message)): Unhandled node
-canonical_const3_test: Crash # (throw new ExpectException(message)): Unhandled node
-canonical_const_test: Crash # Please triage this failure.
-cascade_2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-cascade2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-cascade_in_expression_function_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-cascade_in_initializer_list_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-cascade_precedence_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-cascade_test/none: Crash # cannot compile methods that need interceptor calling convention.
-cast2_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-cast2_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-cast_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-cast_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-cast_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-cast_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-cast_test/05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-cast_test/07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-cast_test/08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-cast_test/10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-cast_test/12: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-cast_test/13: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-cast_test/14: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-cast_test/15: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-cast_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-catch_liveness_test: Crash # Please triage this failure.
-cha_deopt1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-cha_deopt2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-cha_deopt3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-char_escape_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-checked_null_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-checked_setter2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-checked_setter3_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-checked_setter3_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-checked_setter3_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-checked_setter_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_codegen_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_cycle_test/00: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_cycle_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_cycle_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_cycle_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_cycle_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_literal_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_literal_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_literal_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_literal_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_literal_test/05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_literal_test/06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_literal_test/07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_literal_test/08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_literal_test/09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_literal_test/10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_literal_test/11: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_literal_test/12: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_literal_test/13: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_literal_test/14: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_literal_test/15: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_literal_test/16: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_literal_test/17: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_literal_test/18: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_literal_test/19: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_literal_test/20: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_literal_test/21: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_literal_test/22: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_literal_test/23: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_literal_test/24: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_literal_test/25: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_literal_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-class_override_test/00: Crash # (try {instance.foo();}on NoSuchMethodError catch (error){}finally {}): "on T" catch block
-class_override_test/none: Crash # (try {instance.foo();}finally {}): not exactly one catch block
-class_syntax2_test: Crash # (throw new ExpectException(message)): Unhandled node
-class_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure5_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure6_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure7_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure8_test: Crash # cannot compile methods that need interceptor calling convention.
-closure_break1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure_break2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure_break_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure_in_constructor_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure_in_field_initializer_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure_in_initializer2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure_in_initializer_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure_internals_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure_parameter_types_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure_self_reference_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure_shared_state_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure_side_effect_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closures_initializer2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closures_initializer_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closures_with_complex_params_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure_type_test/01: Crash #  "on T" catch block
-closure_type_test/none: Crash #  "on T" catch block
-closure_type_variables_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure_type_variable_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure_variable_shadow_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure_with_super_field_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-closure_with_super_send_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-code_after_try_is_executed_test/01: Crash # (try {throw 'foo';}on String catch (ex){exception=ex;}): "on T" catch block
-code_after_try_is_executed_test/none: Crash # (try {throw 'foo';}on String catch (ex){exception=ex;}): "on T" catch block
-comparison_test: Crash # (throw new ExpectException(message)): Unhandled node
-compile_time_constant10_test/01: Crash # (throw new ExpectException(message)): Unhandled node
-compile_time_constant10_test/02: Crash # (throw new ExpectException(message)): Unhandled node
-compile_time_constant10_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-compile_time_constant11_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-compile_time_constant2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-compile_time_constant3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-compile_time_constant5_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-compile_time_constant6_test: Crash # (throw new ExpectException(message)): Unhandled node
-compile_time_constant7_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-compile_time_constant8_test: Crash # (throw new ExpectException(message)): Unhandled node
-compile_time_constant9_test: Crash # (throw new ExpectException(message)): Unhandled node
-compile_time_constant_a_test: Crash # Please triage this failure.
-compile_time_constant_b_test: Crash # Please triage this failure.
-compile_time_constant_d_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-compile_time_constant_e_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-compile_time_constant_f_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-compile_time_constant_g_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-compile_time_constant_h_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-compile_time_constant_i_test: Crash # (throw new ExpectException(message)): Unhandled node
-compile_time_constant_j_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-compile_time_constant_k_test/01: Crash # Please triage this failure.
-compile_time_constant_k_test/02: Crash # Please triage this failure.
-compile_time_constant_k_test/03: Crash # Please triage this failure.
-compile_time_constant_k_test/none: Crash # Please triage this failure.
-compile_time_constant_l_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-compile_time_constant_m_test: Crash # (throw new ExpectException(message)): Unhandled node
-compile_time_constant_n_test: Crash # (throw new ExpectException(message)): Unhandled node
-compile_time_constant_o_test/01: Crash # Please triage this failure.
-compile_time_constant_o_test/02: Crash # Please triage this failure.
-compile_time_constant_o_test/none: Crash # Please triage this failure.
-compile_time_constant_p_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-compile_time_constant_p_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-compile_time_constant_test/01: Crash # unable to build cps definition of generative_constructor(Bad#)
-compound_assignment_operator_test: Crash # (throw new ExpectException(message)): Unhandled node
-cond_expr_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-condition_bailout_test: Crash # (throw new ExpectException(message)): Unhandled node
-constant_fold_equals_test: Crash # (throw new ExpectException(message)): Unhandled node
-constant_propagation_phis_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constant_string_interpolation_test: Crash # (throw new ExpectException(message)): Unhandled node
-const_conditional_test/01: Crash # (throw new ExpectException(message)): Unhandled node
-const_conditional_test/02: Crash # (throw new ExpectException(message)): Unhandled node
-const_conditional_test/03: Crash # (throw new ExpectException(message)): Unhandled node
-const_conditional_test/04: Crash # (throw new ExpectException(message)): Unhandled node
-const_conditional_test/05: Crash # (throw new ExpectException(message)): Unhandled node
-const_conditional_test/06: Crash # (throw new ExpectException(message)): Unhandled node
-const_conditional_test/07: Crash # (throw new ExpectException(message)): Unhandled node
-const_conditional_test/08: Crash # (throw new ExpectException(message)): Unhandled node
-const_conditional_test/09: Crash # (throw new ExpectException(message)): Unhandled node
-const_conditional_test/10: Crash # (throw new ExpectException(message)): Unhandled node
-const_conditional_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-const_constructor_nonconst_field_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_constructor_nonconst_field_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_constructor_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_counter_negative_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_dynamic_type_literal_test/01: Crash # (throw new ExpectException(message)): Unhandled node
-const_escape_frog_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_evaluation_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_evaluation_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_factory_redirection_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_global_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_init_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_list_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_locals_test: Crash # (throw new ExpectException(message)): Unhandled node
-const_local_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_map2_test/none: Crash # Please triage this failure.
-const_map3_test/none: Crash # Please triage this failure.
-const_map4_test: Crash # Please triage this failure.
-const_map_test: Crash # Please triage this failure.
-const_named_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+bailout4_test: Crash # unsupported element kind: a:field
+bailout5_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+bailout6_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+bailout7_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+bailout_container_type_test: Crash # unsupported element kind: a:field
+bailout_test: Crash # unsupported element kind: reachedAfoo:field
+bool_check_test: Crash # (ifNull): handleStaticFunctionGet: function(ifNull)
+call_closurization_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+call_nonexistent_static_test/01: Crash # (alwaysThrows): handleStaticFunctionGet: function(alwaysThrows)
+call_nonexistent_static_test/02: Crash # (alwaysThrows): handleStaticFunctionGet: function(alwaysThrows)
+call_nonexistent_static_test/03: Crash # (alwaysThrows): handleStaticFunctionGet: function(alwaysThrows)
+call_nonexistent_static_test/04: Crash # (alwaysThrows): handleStaticFunctionGet: function(alwaysThrows)
+call_nonexistent_static_test/05: Crash # (alwaysThrows): handleStaticFunctionGet: function(alwaysThrows)
+call_nonexistent_static_test/06: Crash # (alwaysThrows): handleStaticFunctionGet: function(alwaysThrows)
+call_nonexistent_static_test/07: Crash # (alwaysThrows): handleStaticFunctionGet: function(alwaysThrows)
+call_nonexistent_static_test/08: Crash # (alwaysThrows): handleStaticFunctionGet: function(alwaysThrows)
+call_nonexistent_static_test/09: Crash # (alwaysThrows): handleStaticFunctionGet: function(alwaysThrows)
+call_nonexistent_static_test/10: Crash # (alwaysThrows): handleStaticFunctionGet: function(alwaysThrows)
+call_nonexistent_static_test/none: Crash # (alwaysThrows): handleStaticFunctionGet: function(alwaysThrows)
+call_property_test: Crash # Instance of 'TypeOperator': type check unimplemented for F.
+call_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+call_through_null_getter_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+call_type_literal_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+cascade2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+cast2_test/01: Crash # Instance of 'TypeOperator': type casts not implemented.
+cast2_test/none: Crash # Instance of 'TypeOperator': type casts not implemented.
+cast_test/01: Crash # Instance of 'TypeOperator': type casts not implemented.
+cast_test/02: Crash # Instance of 'TypeOperator': type casts not implemented.
+cast_test/03: Crash # Instance of 'TypeOperator': type casts not implemented.
+cast_test/04: Crash # Instance of 'TypeOperator': type casts not implemented.
+cast_test/05: Crash # Instance of 'TypeOperator': type casts not implemented.
+cast_test/07: Crash # Instance of 'TypeOperator': type casts not implemented.
+cast_test/08: Crash # Instance of 'TypeOperator': type casts not implemented.
+cast_test/10: Crash # Instance of 'TypeOperator': type casts not implemented.
+cast_test/12: Crash # Instance of 'TypeOperator': type casts not implemented.
+cast_test/13: Crash # Instance of 'TypeOperator': type casts not implemented.
+cast_test/14: Crash # Instance of 'TypeOperator': type casts not implemented.
+cast_test/15: Crash # Instance of 'TypeOperator': type casts not implemented.
+cast_test/none: Crash # Instance of 'TypeOperator': type casts not implemented.
+cha_deopt1_test: Crash # (d.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+cha_deopt2_test: Crash # (d.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+cha_deopt3_test: Crash # (d.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+checked_null_test/01: Crash # (bar): handleStaticFunctionGet: function(bar)
+checked_setter2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+checked_setter3_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+checked_setter3_test/02: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+checked_setter3_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+checked_setter_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+class_literal_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+class_literal_test/02: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+class_literal_test/03: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+class_literal_test/04: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+class_literal_test/05: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+class_literal_test/06: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+class_literal_test/07: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+class_literal_test/08: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+class_literal_test/09: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+class_literal_test/10: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+class_literal_test/11: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+class_literal_test/12: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+class_literal_test/13: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+class_literal_test/14: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+class_literal_test/15: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+class_literal_test/16: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+class_literal_test/17: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+class_literal_test/18: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+class_literal_test/19: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+class_literal_test/20: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+class_literal_test/21: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+class_literal_test/22: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+class_literal_test/23: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+class_literal_test/24: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+class_literal_test/25: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+class_override_test/00: Crash # (try {instance.foo();}on NoSuchMethodError catch (error){}finally {}): try/finally
+class_override_test/none: Crash # (try {instance.foo();}finally {}): try/finally
+closure3_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+closure_in_constructor_test: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+closure_internals_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+closure_self_reference_test: Crash # (try {return inner(value-1);}finally {counter++ ;}): try/finally
+closure_shared_state_test: Crash # (setupPlain): handleStaticFunctionGet: function(setupPlain)
+closure_side_effect_test: Crash # unsupported element kind: c:field
+closure_type_test/01: Crash # (root): handleStaticFunctionGet: function(root)
+closure_type_test/none: Crash # (root): handleStaticFunctionGet: function(root)
+closure_type_variables_test: Crash # Instance of 'TypeOperator': type check unimplemented for A<int>.
+closures_initializer2_test: Crash # Please triage this failure.
+closures_initializer_test: Crash # Instance of 'TypeOperator': type check unimplemented for List<int>.
+compile_time_constant10_test/01: Crash # (Expect.isTrue): handleStaticFunctionGet: function(Expect#isTrue)
+compile_time_constant10_test/02: Crash # (Expect.isTrue): handleStaticFunctionGet: function(Expect#isTrue)
+compile_time_constant10_test/none: Crash # (Expect.isTrue): handleStaticFunctionGet: function(Expect#isTrue)
+compile_time_constant_a_test: Crash # (isUnsupportedError): handleStaticFunctionGet: function(isUnsupportedError)
+compile_time_constant_b_test: Crash # (isUnsupportedError): handleStaticFunctionGet: function(isUnsupportedError)
+const_evaluation_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+const_evaluation_test/none: RuntimeError # Please triage this failure.
 const_nested_test: Crash # Please triage this failure.
-const_objects_are_immutable_test/01: Crash # Please triage this failure.
-const_objects_are_immutable_test/none: Crash # Please triage this failure.
+const_objects_are_immutable_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+const_objects_are_immutable_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+const_switch2_test/none: Crash # (switch (a){case 1:print("OK");}): Unhandled node
+const_switch_test/01: Crash #  Unhandled node
+const_switch_test/02: Crash #  Unhandled node
+const_switch_test/03: Crash #  Unhandled node
+const_switch_test/04: Crash #  Unhandled node
+constant_propagation_phis_test: RuntimeError # Please triage this failure.
 constructor10_test/01: Crash # Please triage this failure.
 constructor10_test/02: Crash # Please triage this failure.
-constructor11_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constructor12_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constructor2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+constructor11_test: Crash # Please triage this failure.
+constructor12_test: Crash # Instance of 'TypeOperator': type check unimplemented for A<int>.
 constructor3_negative_test: Crash # Please triage this failure.
-constructor3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constructor4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constructor5_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constructor6_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constructor7_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constructor8_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constructor_body_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+constructor5_test: Crash # Please triage this failure.
 constructor_call_wrong_argument_count_negative_test: Crash # Please triage this failure.
-constructor_default_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constructor_initializer_test/01: Crash # (new A(3)): Error expression `new A(3)` unhandled.
-constructor_initializer_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constructor_name_clash_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constructor_named_arguments_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constructor_named_arguments_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constructor_name_test/01: Crash # (new Foo.Foo()): Error expression `new Foo.Foo()` unhandled.
-constructor_name_test/02: Crash # (new Foo()): Error expression `new Foo()` unhandled.
-constructor_name_test/03: Crash # (new Foo()): Error expression `new Foo()` unhandled.
-constructor_redirect_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constructor_redirect_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constructor_return_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constructor_return_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constructor_return_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constructor_return_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constructor_return_test/05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constructor_return_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constructor_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constructor_with_mixin_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_string_test: Crash # (throw new ExpectException(message)): Unhandled node
-const_switch2_test/none: Crash # (switch (a){case 1:print("OK");}): Unhandled node
-const_switch_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_switch_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_switch_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_switch_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_syntax_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_syntax_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_syntax_test/05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_syntax_test/06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_syntax_test/07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_syntax_test/08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_syntax_test/09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_syntax_test/10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_syntax_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-const_types_test/23: Crash # (new Superclass()): Error expression `new Superclass()` unhandled.
-const_types_test/24: Crash # (new Superclass()): Error expression `new Superclass()` unhandled.
-const_types_test/25: Crash # (new Superclass()): Error expression `new Superclass()` unhandled.
-const_types_test/26: Crash # (new Superclass()): Error expression `new Superclass()` unhandled.
-const_types_test/27: Crash # (new Superclass()): Error expression `new Superclass()` unhandled.
-const_types_test/28: Crash # (new Superclass()): Error expression `new Superclass()` unhandled.
-const_types_test/29: Crash # (new Superclass()): Error expression `new Superclass()` unhandled.
-const_types_test/30: Crash # (new Superclass()): Error expression `new Superclass()` unhandled.
-const_types_test/41: Crash # (new Superclass()): Error expression `new Superclass()` unhandled.
-context2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-context_args_with_defaults_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-context_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+constructor_initializer_test/01: Crash # Please triage this failure.
+constructor_with_mixin_test: Crash # Please triage this failure.
 continue_test: Crash # (switch (0){case 0:i=22;continue;default:i=25;break;}): Unhandled node
-core_type_check_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-crash_12118_test: Crash # (throw 'Test failed'): Unhandled node
-crash_6725_test/01: Crash # (throw 'f.key != 42 (${f.key})'): Unhandled node
-create_unresolved_type_test/01: Crash # (new F<int>()): Error expression `new F<int>()` unhandled.
-critical_edge2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-critical_edge_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-ct_const3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-ct_const4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-ct_const_test: Crash #  "on T" catch block
+core_type_check_test: Crash # Instance of 'TypeOperator': type check unimplemented for Comparable.
+crash_12118_test: Crash # Please triage this failure.
+crash_6725_test/01: Crash # Please triage this failure.
 custom_await_stack_trace_test: Crash #  cannot handle async/sync*/async* functions
-cyclic_import_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-cyclic_type2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-cyclic_type_test/00: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-cyclic_type_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-cyclic_type_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-cyclic_type_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-cyclic_type_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-dangling_else_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-default_class_implicit_constructor_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-default_factory_library_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-default_factory_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-default_factory_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-default_implementation_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-default_init_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-deferred_closurize_load_library_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_constant_list_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_constraints_constants_test/constructor1: Crash # (const lib.Const()): Error expression `const lib.Const()` unhandled.
-deferred_constraints_constants_test/constructor2: Crash #  Error expression `const lib.Const.namedConstructor()` unhandled.
-deferred_constraints_constants_test/default_argument1: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_constraints_constants_test/default_argument2: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_constraints_constants_test/metadata1: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_constraints_constants_test/metadata2: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_constraints_constants_test/metadata3: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_constraints_constants_test/none: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_constraints_constants_test/reference1: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_constraints_constants_test/reference2: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_constraints_constants_test/reference_after_load: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_constraints_type_annotation_test/as_operation: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_constraints_type_annotation_test/catch_check: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_constraints_type_annotation_test/is_check: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_constraints_type_annotation_test/new_before_load: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_constraints_type_annotation_test/new: CompileTimeError # Please triage this failure.
-deferred_constraints_type_annotation_test/new: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_constraints_type_annotation_test/new_generic1: CompileTimeError # Please triage this failure.
-deferred_constraints_type_annotation_test/new_generic1: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_constraints_type_annotation_test/new_generic2: CompileTimeError # Please triage this failure.
-deferred_constraints_type_annotation_test/new_generic2: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_constraints_type_annotation_test/new_generic3: CompileTimeError # Please triage this failure.
-deferred_constraints_type_annotation_test/new_generic3: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_constraints_type_annotation_test/none: CompileTimeError # Please triage this failure.
-deferred_constraints_type_annotation_test/none: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_constraints_type_annotation_test/static_method: CompileTimeError # Please triage this failure.
-deferred_constraints_type_annotation_test/static_method: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_constraints_type_annotation_test/type_annotation1: Crash # handleStaticGetterInvoke: foreign: function(loadLibrary)
-deferred_constraints_type_annotation_test/type_annotation_generic1: CompileTimeError # Please triage this failure.
-deferred_constraints_type_annotation_test/type_annotation_generic1: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_constraints_type_annotation_test/type_annotation_generic2: CompileTimeError # Please triage this failure.
-deferred_constraints_type_annotation_test/type_annotation_generic2: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_constraints_type_annotation_test/type_annotation_generic3: CompileTimeError # Please triage this failure.
-deferred_constraints_type_annotation_test/type_annotation_generic3: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_constraints_type_annotation_test/type_annotation_generic4: CompileTimeError # Please triage this failure.
-deferred_constraints_type_annotation_test/type_annotation_generic4: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_constraints_type_annotation_test/type_annotation_non_deferred: CompileTimeError # Please triage this failure.
-deferred_constraints_type_annotation_test/type_annotation_non_deferred: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_constraints_type_annotation_test/type_annotation_null: CompileTimeError # Please triage this failure.
-deferred_constraints_type_annotation_test/type_annotation_null: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_constraints_type_annotation_test/type_annotation_top_level: CompileTimeError # Please triage this failure.
-deferred_constraints_type_annotation_test/type_annotation_top_level: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_function_type_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-deferred_global_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_inheritance_constraints_test/mixin: Crash # (new C()): Error expression `new C()` unhandled.
-deferred_inlined_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-deferred_load_constants_test/01: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_load_constants_test/02: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_load_constants_test/03: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_load_constants_test/04: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_load_constants_test/05: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_load_constants_test/none: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_load_inval_code_test: Crash # handleStaticGetterInvoke: foreign: function(loadLibrary)
-deferred_load_library_wrong_args_test/01: Crash # handleStaticGetterInvoke: foreign: function(loadLibrary)
-deferred_load_library_wrong_args_test/none: Crash # handleStaticGetterInvoke: foreign: function(loadLibrary)
-deferred_mixin_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_no_such_method_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_not_loaded_check_test: Crash # (throw new ExpectException(message)): Unhandled node
-deferred_only_constant_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-deferred_optimized_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-deferred_regression_22995_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-deferred_shadow_load_library_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-deferred_shared_and_unshared_classes_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deferred_static_seperate_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-deoptimized_function_on_stack_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-deopt_inlined_function_lazy_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-deopt_inlined_function_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-deopt_lazy_finalization_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-deopt_no_feedback_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-deopt_smi_op_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-div_by_zero_test: Crash # (throw new ExpectException(message)): Unhandled node
-div_with_power_of_two2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-div_with_power_of_two_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_int_addition_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_int_to_string_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_modulo_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_nan_comparison_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_to_string_as_exponential2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_to_string_as_exponential3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_to_string_as_exponential_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_to_string_as_fixed2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_to_string_as_fixed_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_to_string_as_precision2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_to_string_as_precision3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_to_string_as_precision_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_to_string_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-do_while2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-do_while3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-do_while4_test: Crash # (throw new ExpectException(message)): Unhandled node
-do_while_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-duplicate_implements_test/03: Crash # (new Z()): Error expression `new Z()` unhandled.
-duplicate_implements_test/04: Crash # (new Z()): Error expression `new Z()` unhandled.
-duplicate_interface_negative_test: Crash # (Expect): Error expression `Expect` unhandled.
-duplicate_interface_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-dynamic_call_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-dynamic_field_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-dynamic_field_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-dynamic_prefix_core_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-dynamic_prefix_core_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-dynamic_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-dynamic_type_literal_test: Crash # (throw new ExpectException(message)): Unhandled node
-emit_const_fields_test: Crash # Please triage this failure.
-empty_block_case_test: Crash #  "on T" catch block
-enum_const_test/01: Crash # (throw new ExpectException(message)): Unhandled node
-enum_const_test/02: Crash # (throw new ExpectException(message)): Unhandled node
-enum_duplicate_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-enum_duplicate_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-enum_duplicate_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-enum_index_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-enum_mirror_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-enum_private_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-enum_private_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-enum_private_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-enum_syntax_test/09: Crash # handleStaticFunctionGet: function(topLevelFunction)
-enum_syntax_test/10: Crash # (C.bla): Error expression `C.bla` unhandled.
-enum_test: Crash #  Unhandled node
-equality_test: Crash # (throw new ExpectException(message)): Unhandled node
-error_stacktrace_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-evaluation_redirecting_constructor_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-example_constructor_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-exception_identity_test: Crash # (throw exception): Unhandled node
-exception_test: Crash # (try {throw "Hello";}on String catch (s){print(s);i+= 10;}): "on T" catch block
-execute_finally10_test: Crash # (throw 'Expected exception'): Unhandled node
-execute_finally11_test: Crash # (throw 'Expected exception'): Unhandled node
-execute_finally12_test: Crash # (throw new ExpectException(message)): Unhandled node
-execute_finally1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-execute_finally2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-execute_finally3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-execute_finally4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-execute_finally5_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-execute_finally6_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-execute_finally7_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-execute_finally8_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-execute_finally9_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-exhaustive_for_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-expect_test: Crash # (try {Expect.fail("fail now");}on Exception catch (msg){print(msg);return;}): "on T" catch block
-extends_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-extend_type_parameter2_negative_test: Crash # (new A()): Error expression `new A()` unhandled.
-external_test/16: Crash # (new Foo()): Error expression `new Foo()` unhandled.
-factory3_test: Crash # (throw "0 is not a T"): Unhandled node
-factory_arrow_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-factory_implementation_test/00: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-factory_implementation_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-factory_redirection2_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-factory_redirection2_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-factory_redirection3_cyclic_test/01: Crash # (new A.foo()): Error expression `new A.foo()` unhandled.
-factory_redirection_test/01: Crash # (new A<List>.test01()): Error expression `new A<List>.test01()` unhandled.
-factory_redirection_test/02: Crash # (new A<List>.test02()): Error expression `new A<List>.test02()` unhandled.
-factory_redirection_test/03: Crash # (new A<List>.test03()): Error expression `new A<List>.test03()` unhandled.
-factory_redirection_test/04: Crash # (new C.test04()): Error expression `new C.test04()` unhandled.
-factory_redirection_test/05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-factory_redirection_test/06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-factory_redirection_test/07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-factory_redirection_test/08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-factory_redirection_test/09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-factory_redirection_test/10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-factory_redirection_test/11: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-factory_redirection_test/12: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-factory_redirection_test/13: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-factory_redirection_test/14: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-factory_redirection_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-factory_return_type_checked_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-factory_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-factory_type_parameter2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-factory_type_parameter_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-fannkuch_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-fast_method_extraction_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-fauxverride_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-f_bounded_equality_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-f_bounded_quantification4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-f_bounded_quantification5_test: Crash #  "on T" catch block
-f_bounded_quantification_test/01: Crash #  "on T" catch block
-f_bounded_quantification_test/02: Crash # (try {}on TypeError catch (error){got_type_error=true;}): "on T" catch block
-f_bounded_quantification_test/none: Crash # (try {}on TypeError catch (error){got_type_error=true;}): "on T" catch block
-fibo_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-field3a_negative_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-field3_negative_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-field_increment_bailout_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-field_inference_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-field_initialization_order_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-field_optimization2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-field_optimization3_test: Crash # (throw new ExpectException(message)): Unhandled node
-field_optimization_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-field_override2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-field_override3_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-field_override4_test/00: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-field_override4_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-field_override4_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-field_override4_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-field_override_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-field_override_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-field_override_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-field_parameter_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-field_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-final_field_initialization_order_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-final_for_in_variable_test/01: Crash # (i=4): Error expression `i=4` unhandled.
-final_is_not_const_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-final_is_not_const_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-finally_test: Crash # (try {i=12;}finally {Expect.equals(12,i);executedFinally=true;}): not exactly one catch block
-final_param_test/01: Crash # (x=2): Error expression `x=2` unhandled.
-final_syntax_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-final_syntax_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-final_syntax_test/08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-final_syntax_test/09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-final_syntax_test/10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-final_syntax_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-final_used_in_try_test: Crash # (rethrow;): Unhandled node
-final_variable_assignment_test/01: Crash # (x=0): Error expression `x=0` unhandled.
-final_variable_assignment_test/02: Crash # (x+= 1): Error expression `x+= 1` unhandled.
-final_variable_assignment_test/03: Crash # ( ++x): Error expression ` ++x` unhandled.
-final_variable_assignment_test/04: Crash # (x++ ): Error expression `x++ ` unhandled.
-first_class_types_constants_test: Crash # (throw new ExpectException(message)): Unhandled node
-first_class_types_libraries_test: Crash # (throw new ExpectException(message)): Unhandled node
-first_class_types_literals_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-first_class_types_literals_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-first_class_types_literals_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-first_class_types_literals_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-first_class_types_literals_test/05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-first_class_types_literals_test/06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-first_class_types_literals_test/07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-first_class_types_literals_test/08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-first_class_types_literals_test/09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-first_class_types_literals_test/10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-first_class_types_literals_test/11: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-first_class_types_literals_test/12: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-first_class_types_literals_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-first_class_types_test: Crash # (throw new ExpectException(message)): Unhandled node
-fixed_length_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-fixed_type_variable2_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-fixed_type_variable2_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-fixed_type_variable2_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-fixed_type_variable2_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-fixed_type_variable2_test/05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-fixed_type_variable2_test/06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-fixed_type_variable_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-fixed_type_variable_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-fixed_type_variable_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-fixed_type_variable_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-fixed_type_variable_test/05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-fixed_type_variable_test/06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+cyclic_type2_test: Crash # Instance of 'TypeOperator': type check unimplemented for Derived1<Derived1, Derived2>.
+cyclic_type_test/00: RuntimeError # Please triage this failure.
+cyclic_type_test/01: RuntimeError # Please triage this failure.
+cyclic_type_test/02: RuntimeError # Please triage this failure.
+cyclic_type_test/03: RuntimeError # Please triage this failure.
+cyclic_type_test/04: RuntimeError # Please triage this failure.
+deferred_call_empty_before_load_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+deferred_closurize_load_library_test: RuntimeError # Please triage this failure.
+deferred_constant_list_test: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_constants_test/constructor1: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_constants_test/constructor2: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_constants_test/default_argument1: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_constants_test/default_argument2: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_constants_test/metadata1: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_constants_test/metadata2: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_constants_test/metadata3: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_constants_test/none: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_constants_test/reference1: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_constants_test/reference2: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_constants_test/reference_after_load: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_type_annotation_test/as_operation: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_type_annotation_test/catch_check: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_type_annotation_test/is_check: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_type_annotation_test/new: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_type_annotation_test/new_before_load: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_type_annotation_test/new_generic1: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_type_annotation_test/new_generic2: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_type_annotation_test/new_generic3: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_type_annotation_test/none: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_type_annotation_test/static_method: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_type_annotation_test/type_annotation1: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_type_annotation_test/type_annotation_generic1: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_type_annotation_test/type_annotation_generic2: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_type_annotation_test/type_annotation_generic3: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_type_annotation_test/type_annotation_generic4: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_type_annotation_test/type_annotation_non_deferred: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_type_annotation_test/type_annotation_null: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_constraints_type_annotation_test/type_annotation_top_level: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_function_type_test: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_global_test: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_inheritance_constraints_test/redirecting_constructor: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+deferred_inlined_test: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_load_constants_test/01: Crash # (foo.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_load_constants_test/02: Crash # (foo.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_load_constants_test/03: Crash # (foo.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_load_constants_test/04: Crash # (foo.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_load_constants_test/05: Crash # (foo.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_load_constants_test/none: Crash # (foo.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_load_inval_code_test: Crash # (d.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_load_library_wrong_args_test/01: Crash # (lib.loadLibrary(10)): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_load_library_wrong_args_test/none: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_mixin_test: Crash # (lib1.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_no_such_method_test: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_not_loaded_check_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+deferred_only_constant_test: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_optimized_test: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_redirecting_factory_test: Crash #  cannot handle async/sync*/async* functions
+deferred_regression_22995_test: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_shadow_load_library_test: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deferred_shared_and_unshared_classes_test: Crash # (asyncSuccess): handleStaticFunctionGet: function(asyncSuccess)
+deferred_static_seperate_test: Crash # (lib1.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+deopt_inlined_function_lazy_test: Crash # (try {return x+12342353257893275483274832;}finally {}): try/finally
+deopt_inlined_function_test: Crash # unsupported element kind: obj:field
+div_with_power_of_two2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+div_with_power_of_two_test: Crash # unsupported element kind: expectedResults:field
+double_to_string_as_exponential2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+double_to_string_as_fixed2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+double_to_string_as_precision2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+dynamic_prefix_core_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+dynamic_test: Crash # Instance of 'TypeOperator': type check unimplemented for Iface<dynamic, num>.
+empty_block_case_test: Crash # (switch (1){case 1:{}case 2:Expect.equals(true,false);}): Unhandled node
+enum_mirror_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+enum_private_test/02: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+enum_syntax_test/09: Crash # (topLevelFunction): handleStaticFunctionGet: function(topLevelFunction)
+enum_test: Crash # (test1): handleStaticFunctionGet: function(test1)
+equality_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+error_stacktrace_test: RuntimeError # Please triage this failure.
+evaluation_redirecting_constructor_test: RuntimeError # Please triage this failure.
+execute_finally10_test: Crash #  try/finally
+execute_finally11_test: Crash #  try/finally
+execute_finally12_test: Crash # (try {try {}finally {a=8;break;}}finally {return a==8;}): try/finally
+execute_finally1_test: Crash # (try {int j;j=func();i=1;return i;}finally {i=i+800;}): try/finally
+execute_finally2_test: Crash #  try/finally
+execute_finally3_test: Crash #  try/finally
+execute_finally4_test: Crash # (try {int j;j=func();i=1;}finally {i=i+10;}): try/finally
+execute_finally5_test: Crash #  try/finally
+execute_finally6_test: Crash #  try/finally
+execute_finally7_test: Crash #  try/finally
+execute_finally8_test: Crash # (try {sum+= 1;return 'hi';}finally {sum+= 1;throw 'ball';sum+= 1;}): try/finally
+execute_finally9_test: Crash #  try/finally
+f_bounded_equality_test: RuntimeError # Please triage this failure.
+factory3_test: Crash # Instance of 'TypeOperator': type check unimplemented for T.
+factory_redirection3_cyclic_test/01: Crash # Please triage this failure.
+factory_redirection_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for A<List>.
+factory_redirection_test/02: Crash # Instance of 'TypeOperator': type check unimplemented for A<List>.
+factory_redirection_test/03: Crash # Instance of 'TypeOperator': type check unimplemented for A<List>.
+factory_redirection_test/04: Crash # Instance of 'TypeOperator': type check unimplemented for A<List>.
+factory_redirection_test/05: Crash # Instance of 'TypeOperator': type check unimplemented for A<List>.
+factory_redirection_test/06: Crash # Instance of 'TypeOperator': type check unimplemented for A<List>.
+factory_redirection_test/07: Crash # Instance of 'TypeOperator': type check unimplemented for A<List>.
+factory_redirection_test/08: Crash # Instance of 'TypeOperator': type check unimplemented for A<List>.
+factory_redirection_test/09: Crash # Instance of 'TypeOperator': type check unimplemented for A<List>.
+factory_redirection_test/10: Crash # Instance of 'TypeOperator': type check unimplemented for A<List>.
+factory_redirection_test/11: Crash # Instance of 'TypeOperator': type check unimplemented for A<List>.
+factory_redirection_test/12: Crash # Instance of 'TypeOperator': type check unimplemented for A<List>.
+factory_redirection_test/13: Crash # Instance of 'TypeOperator': type check unimplemented for A<List>.
+factory_redirection_test/14: Crash # Instance of 'TypeOperator': type check unimplemented for A<List>.
+factory_redirection_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for A<List>.
+factory_return_type_checked_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+factory_type_parameter2_test: Crash # Please triage this failure.
+factory_type_parameter_test: Crash # Instance of 'TypeOperator': type check unimplemented for A<List>.
+fast_method_extraction_test: Crash # Instance of 'TypeOperator': type check unimplemented for T.
+field_inference_test: Crash # unsupported element kind: array:field
+final_is_not_const_test/none: RuntimeError # Please triage this failure.
+final_syntax_test/03: Crash # unsupported element kind: P3:field
+final_syntax_test/04: Crash # unsupported element kind: P3:field
+final_syntax_test/08: Crash # unsupported element kind: A3:field
+final_syntax_test/09: Crash # unsupported element kind: P3:field
+final_syntax_test/10: Crash # unsupported element kind: B3:field
+final_syntax_test/none: Crash # unsupported element kind: P3:field
+finally_test: Crash # (try {i=12;}finally {Expect.equals(12,i);executedFinally=true;}): try/finally
+first_class_types_literals_test/03: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+first_class_types_literals_test/04: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+first_class_types_literals_test/05: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+first_class_types_literals_test/06: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+first_class_types_literals_test/07: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+first_class_types_literals_test/08: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+first_class_types_literals_test/09: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+first_class_types_literals_test/10: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+first_class_types_literals_test/11: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+first_class_types_literals_test/12: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+fixed_type_variable2_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for T.
+fixed_type_variable2_test/02: Crash # Instance of 'TypeOperator': type check unimplemented for T.
+fixed_type_variable2_test/03: Crash # Instance of 'TypeOperator': type check unimplemented for T.
+fixed_type_variable2_test/04: Crash # Instance of 'TypeOperator': type check unimplemented for T.
+fixed_type_variable2_test/05: Crash # Instance of 'TypeOperator': type check unimplemented for T.
+fixed_type_variable2_test/06: Crash # Instance of 'TypeOperator': type check unimplemented for T.
+fixed_type_variable_test/02: RuntimeError # Please triage this failure.
+fixed_type_variable_test/04: RuntimeError # Please triage this failure.
+fixed_type_variable_test/06: RuntimeError # Please triage this failure.
 flatten_test/01: Crash # (test()async{int x=await new Derived<int>();}): cannot handle async/sync*/async* functions
 flatten_test/02: Crash # (test()async{Future<int> f()async=>new Derived<int>();}): cannot handle async/sync*/async* functions
 flatten_test/03: Crash #  cannot handle async/sync*/async* functions
@@ -1045,1135 +628,537 @@
 flatten_test/12: Crash #  cannot handle async/sync*/async* functions
 flatten_test/none: Crash # (test()async{}): cannot handle async/sync*/async* functions
 for2_test: Crash # Please triage this failure.
-for_in2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-for_inlining_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-for_in_side_effects_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-for_in_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-for_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+for_in2_test: Crash # unsupported element kind: set:field
+for_in_side_effects_test: Crash # unsupported element kind: array:field
 for_variable_capture_test: Crash # (i=0): For-loop variable captured in loop header
-forwarding_factory_constructor_default_values_test: Crash # (throw "FAILED"): Unhandled node
 forwarding_factory_constructor_default_values_test: RuntimeError # Please triage this failure.
-for_without_condition_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-full_stacktrace1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-full_stacktrace2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-full_stacktrace3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_argument_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_field_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_getter_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_literals2_test: Crash # (throw new ExpectException(message)): Unhandled node
-function_literals_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_malformed_result_type_test: Crash # (try {f();}on TypeError catch (error){got_type_error=true;}): "on T" catch block
-function_propagation_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype0_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_bound_closure0_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_bound_closure1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_bound_closure2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_bound_closure3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_bound_closure4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_bound_closure5a_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_bound_closure5_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_bound_closure6_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_bound_closure7_test: Crash # (throw new ExpectException(message)): Unhandled node
-function_subtype_call0_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_call1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_call2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_cast0_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_cast1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_cast2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_cast3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_checked0_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_closure0_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_closure1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_factory0_test: Crash # (throw new ExpectException(message)): Unhandled node
-function_subtype_factory1_test: Crash # (throw new ExpectException(message)): Unhandled node
-function_subtype_inline0_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_inline1_test: Crash # (throw new ExpectException(message)): Unhandled node
-function_subtype_inline2_test: Crash #  "on T" catch block
-function_subtype_local0_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_local1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_local2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_local3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_local4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_local5_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_named1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_named2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_not0_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_not1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_not2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_not3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_optional1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_optional2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_setter0_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_simple0_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_simple1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_simple2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_top_level0_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_top_level1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_typearg0_test: Crash # (throw new ExpectException(message)): Unhandled node
-function_subtype_typearg1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_typearg2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_typearg3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_subtype_typearg4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_syntax_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_syntax_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_syntax_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_syntax_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_syntax_test/05: Crash # (testNestedFunctions()): Error expression `testNestedFunctions()` unhandled.
-function_syntax_test/06: Crash # (testNestedFunctions()): Error expression `testNestedFunctions()` unhandled.
-function_syntax_test/07: Crash # (testNestedFunctions()): Error expression `testNestedFunctions()` unhandled.
-function_syntax_test/08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_syntax_test/09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_syntax_test/10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_syntax_test/11: Crash # (testNestedFunctions()): Error expression `testNestedFunctions()` unhandled.
-function_syntax_test/12: Crash # (testNestedFunctions()): Error expression `testNestedFunctions()` unhandled.
-function_syntax_test/13: Crash # (testNestedFunctions()): Error expression `testNestedFunctions()` unhandled.
-function_syntax_test/14: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_syntax_test/15: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_syntax_test/16: Crash # (testNestedFunctions()): Error expression `testNestedFunctions()` unhandled.
-function_syntax_test/17: Crash # (testNestedFunctions()): Error expression `testNestedFunctions()` unhandled.
-function_syntax_test/18: Crash # (testNestedFunctions()): Error expression `testNestedFunctions()` unhandled.
-function_syntax_test/19: Crash # (testNestedFunctions()): Error expression `testNestedFunctions()` unhandled.
-function_syntax_test/20: Crash # (testNestedFunctions()): Error expression `testNestedFunctions()` unhandled.
-function_syntax_test/21: Crash # (testNestedFunctions()): Error expression `testNestedFunctions()` unhandled.
-function_syntax_test/22: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_syntax_test/23: Crash # (testFunctionExpressions()): Error expression `testFunctionExpressions()` unhandled.
-function_syntax_test/24: Crash # (testFunctionExpressions()): Error expression `testFunctionExpressions()` unhandled.
-function_syntax_test/25: Crash # (testFunctionExpressions()): Error expression `testFunctionExpressions()` unhandled.
-function_syntax_test/26: Crash # (testFunctionExpressions()): Error expression `testFunctionExpressions()` unhandled.
-function_syntax_test/27: Crash # (testFunctionExpressions()): Error expression `testFunctionExpressions()` unhandled.
-function_syntax_test/28: Crash # (testFunctionExpressions()): Error expression `testFunctionExpressions()` unhandled.
-function_syntax_test/29: Crash # (testFunctionExpressions()): Error expression `testFunctionExpressions()` unhandled.
-function_syntax_test/30: Crash # (testFunctionExpressions()): Error expression `testFunctionExpressions()` unhandled.
-function_syntax_test/31: Crash # (testFunctionExpressions()): Error expression `testFunctionExpressions()` unhandled.
-function_syntax_test/32: Crash # (testFunctionExpressions()): Error expression `testFunctionExpressions()` unhandled.
-function_syntax_test/33: Crash # (testFunctionExpressions()): Error expression `testFunctionExpressions()` unhandled.
-function_syntax_test/34: Crash # (testFunctionExpressions()): Error expression `testFunctionExpressions()` unhandled.
-function_syntax_test/35: Crash # (testFunctionExpressions()): Error expression `testFunctionExpressions()` unhandled.
-function_syntax_test/36: Crash # (testFunctionExpressions()): Error expression `testFunctionExpressions()` unhandled.
-function_syntax_test/37: Crash # (testFunctionExpressions()): Error expression `testFunctionExpressions()` unhandled.
-function_syntax_test/44: Crash # (testFunctionExpressions()): Error expression `testFunctionExpressions()` unhandled.
-function_syntax_test/45: Crash # (testFunctionExpressions()): Error expression `testFunctionExpressions()` unhandled.
-function_syntax_test/46: Crash # (testFunctionExpressions()): Error expression `testFunctionExpressions()` unhandled.
-function_syntax_test/47: Crash # (testFunctionExpressions()): Error expression `testFunctionExpressions()` unhandled.
-function_syntax_test/48: Crash # (testFunctionExpressions()): Error expression `testFunctionExpressions()` unhandled.
-function_syntax_test/49: Crash # (testFunctionExpressions()): Error expression `testFunctionExpressions()` unhandled.
-function_syntax_test/50: Crash # (testFunctionExpressions()): Error expression `testFunctionExpressions()` unhandled.
-function_syntax_test/51: Crash # (testFunctionExpressions()): Error expression `testFunctionExpressions()` unhandled.
-function_syntax_test/52: Crash # (testFunctionExpressions()): Error expression `testFunctionExpressions()` unhandled.
-function_syntax_test/53: Crash # (testFunctionExpressions()): Error expression `testFunctionExpressions()` unhandled.
-function_syntax_test/54: Crash # (testFunctionExpressions()): Error expression `testFunctionExpressions()` unhandled.
-function_syntax_test/55: Crash # (testFunctionExpressions()): Error expression `testFunctionExpressions()` unhandled.
-function_syntax_test/64: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_syntax_test/65: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_syntax_test/66: Crash # (testPrecedence()): Error expression `testPrecedence()` unhandled.
-function_syntax_test/67: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_syntax_test/68: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_syntax_test/69: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_syntax_test/70: Crash #  Error expression `testFunctionIdentifierExpression()` unhandled.
-function_syntax_test/71: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_syntax_test/72: Crash # (testFunctionIdentifierStatement()): Error expression `testFunctionIdentifierStatement()` unhandled.
-function_syntax_test/73: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_syntax_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_type2_test: Crash # (try {new B<String>();}on TypeError catch (e){caughtException=true;}): "on T" catch block
-function_type3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_type_alias2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_type_alias3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_type_alias4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_type_alias6_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+function_propagation_test: Crash # Instance of 'TypeOperator': type check unimplemented for F.
+function_subtype0_test: Crash # (int_): handleStaticFunctionGet: function(int_)
+function_subtype1_test: Crash # Please triage this failure.
+function_subtype2_test: Crash # Instance of 'TypeOperator': type check unimplemented for T1.
+function_subtype_bound_closure0_test: Crash # Instance of 'TypeOperator': type check unimplemented for Foo.
+function_subtype_bound_closure1_test: Crash # Instance of 'TypeOperator': type check unimplemented for Foo<bool>.
+function_subtype_bound_closure2_test: Crash # Instance of 'TypeOperator': type check unimplemented for Foo<T>.
+function_subtype_bound_closure3_test: Crash # Instance of 'TypeOperator': type check unimplemented for Foo.
+function_subtype_bound_closure4_test: Crash # Instance of 'TypeOperator': type check unimplemented for Foo.
+function_subtype_bound_closure5_test: Crash # Instance of 'TypeOperator': type check unimplemented for Foo<T>.
+function_subtype_bound_closure5a_test: Crash # Instance of 'TypeOperator': type check unimplemented for Foo<T>.
+function_subtype_bound_closure6_test: Crash # Instance of 'TypeOperator': type check unimplemented for Foo<T>.
+function_subtype_bound_closure7_test: Crash # (bar): handleStaticFunctionGet: function(bar)
+function_subtype_call0_test: Crash # Instance of 'TypeOperator': type check unimplemented for Foo.
+function_subtype_call1_test: Crash # Instance of 'TypeOperator': type check unimplemented for Foo.
+function_subtype_call2_test: Crash # Instance of 'TypeOperator': type check unimplemented for Foo.
+function_subtype_cast0_test: Crash # (bar): handleStaticFunctionGet: function(bar)
+function_subtype_cast1_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+function_subtype_cast2_test: Crash # (bar): handleStaticFunctionGet: function(bar)
+function_subtype_cast3_test: Crash # (bar): handleStaticFunctionGet: function(bar)
+function_subtype_checked0_test: Crash # (boz): handleStaticFunctionGet: function(boz)
+function_subtype_closure0_test: Crash # (X.f1): handleStaticFunctionGet: function(X#f1)
+function_subtype_closure1_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+function_subtype_factory0_test: Crash # (method): handleStaticFunctionGet: function(method)
+function_subtype_factory1_test: Crash # (method): handleStaticFunctionGet: function(method)
+function_subtype_inline0_test: Crash # Instance of 'TypeOperator': type check unimplemented for Foo.
+function_subtype_inline2_test: Crash # (m4): handleStaticFunctionGet: function(m4)
+function_subtype_local0_test: Crash # Instance of 'TypeOperator': type check unimplemented for Foo.
+function_subtype_local1_test: Crash # Instance of 'TypeOperator': type check unimplemented for Foo<bool>.
+function_subtype_local2_test: Crash # Instance of 'TypeOperator': type check unimplemented for Foo<T>.
+function_subtype_local3_test: Crash # Instance of 'TypeOperator': type check unimplemented for Foo.
+function_subtype_local4_test: Crash # Instance of 'TypeOperator': type check unimplemented for Foo.
+function_subtype_local5_test: Crash # Instance of 'TypeOperator': type check unimplemented for Foo<T>.
+function_subtype_named1_test: Crash # (void___a_int): handleStaticFunctionGet: function(void___a_int)
+function_subtype_named2_test: Crash # Please triage this failure.
+function_subtype_not0_test: Crash # (bar): handleStaticFunctionGet: function(bar)
+function_subtype_not1_test: Crash # Instance of 'TypeOperator': type check unimplemented for Foo.
+function_subtype_not2_test: Crash # (bar): handleStaticFunctionGet: function(bar)
+function_subtype_not3_test: Crash # (bar): handleStaticFunctionGet: function(bar)
+function_subtype_optional1_test: Crash # (void___int): handleStaticFunctionGet: function(void___int)
+function_subtype_optional2_test: Crash # Please triage this failure.
+function_subtype_setter0_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+function_subtype_simple0_test: Crash # (args0): handleStaticFunctionGet: function(args0)
+function_subtype_simple1_test: Crash # (args0): handleStaticFunctionGet: function(args0)
+function_subtype_simple2_test: Crash # (args0_1): handleStaticFunctionGet: function(args0_1)
+function_subtype_top_level0_test: Crash # (foo): handleStaticFunctionGet: function(foo)
+function_subtype_top_level1_test: Crash # (foo): handleStaticFunctionGet: function(foo)
+function_subtype_typearg0_test: Crash # Please triage this failure.
+function_subtype_typearg1_test: Crash # Please triage this failure.
+function_subtype_typearg2_test: Crash # Please triage this failure.
+function_subtype_typearg3_test: Crash # Please triage this failure.
+function_subtype_typearg4_test: Crash # Please triage this failure.
+function_type3_test: Crash # Instance of 'TypeOperator': type check unimplemented for F.
+function_type_alias2_test: Crash # (baz): handleStaticFunctionGet: function(baz)
+function_type_alias3_test: Crash # Instance of 'TypeOperator': type check unimplemented for F.
+function_type_alias4_test: Crash # (bar): handleStaticFunctionGet: function(bar)
+function_type_alias6_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for F.
 function_type_alias8_test: Crash # unsupported element kind: fromThing:field
-function_type_alias_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_type_call_getter_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_type_parameter2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_type_parameter_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-function_type_test: Crash # (try {FListInt fli=f();}on TypeError catch (error){got_type_error=true;}): "on T" catch block
-function_type_this_parameter_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-generic2_test: Crash # (throw new ExpectException(message)): Unhandled node
-generic_closure_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-generic_constructor_mixin2_test: Crash #  "on T" catch block
-generic_constructor_mixin3_test: Crash #  "on T" catch block
-generic_constructor_mixin_test: Crash #  "on T" catch block
-generic_creation_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-generic_deep_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-generic_field_mixin2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-generic_field_mixin6_test/01: Crash #  "on T" catch block
-generic_field_mixin_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-generic_inheritance_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-generic_instanceof2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-generic_instanceof3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-generic_instanceof4_test: Crash # (throw new ExpectException(message)): Unhandled node
-generic_instanceof5_test: Crash # (throw new ExpectException(message)): Unhandled node
-generic_instanceof_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-generic_is_check_test: Crash # (throw new ExpectException(message)): Unhandled node
-generic_list_checked_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-generic_native_test: Crash # (throw new ExpectException(message)): Unhandled node
-generic_object_type_test: Crash # (throw new ExpectException(message)): Unhandled node
-generic_parameterized_extends_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-generics_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-generic_syntax_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-generic_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-getter_closure_execution_order_test: Crash # (throw "${failures.length~/2} tests failed."): Unhandled node
-getter_no_setter2_test/00: Crash # (throw new ExpectException(message)): Unhandled node
-getter_no_setter2_test/01: Crash # (nextVar++ ): Error expression `nextVar++ ` unhandled.
-getter_no_setter2_test/03: Crash # (throw new ExpectException(message)): Unhandled node
-getter_no_setter_test/00: Crash # (throw new ExpectException(message)): Unhandled node
-getter_no_setter_test/01: Crash # (nextVar=0): Error expression `nextVar=0` unhandled.
-getter_no_setter_test/02: Crash # (throw new ExpectException(message)): Unhandled node
-getter_no_setter_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-getter_override2_test/00: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-getter_override2_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-getter_override2_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-getter_override2_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-getter_override_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-getter_override_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-getter_setter_in_lib_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-getter_setter_interceptor_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-getter_setter_order_test: Crash # (throw new ExpectException(message)): Unhandled node
-getters_setters2_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-getters_setters2_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-getters_setters2_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-getters_setters2_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-getters_setters_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-getters_setters_type2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-getters_setters_type3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-getters_setters_type_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-getters_setters_type_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-guess_cid_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-gvn_field_access_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-gvn_interceptor_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-gvn_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-hash_code_mangling_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-hash_map_null_key_foreach_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-hello_script_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-identical_closure2_test: Crash # (throw new ExpectException(message)): Unhandled node
-identical_closure_test: Crash # (throw new ExpectException(message)): Unhandled node
-identical_const_test/05: Crash # Please triage this failure.
-identical_const_test/06: Crash # Please triage this failure.
-identical_const_test/07: Crash # Please triage this failure.
-identical_const_test/08: Crash # Please triage this failure.
-identical_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-if_and_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-if_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-illegal_invocation_test/01: Crash # (foo()): Error expression `foo()` unhandled.
-implicit_closure1_test: Crash # handleStaticFunctionGet: function(Hello#handler1)
-implicit_closure2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-implicit_closure_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-implicit_scope_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-implicit_super_constructor_call_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-implicit_this_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-implicit_this_test/02: Crash # (new Abstract()): Error expression `new Abstract()` unhandled.
-implicit_this_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-implicit_this_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-implied_interface_test: Crash #  "on T" catch block
-import_combinators_negative_test: Crash # (ugly): Error expression `ugly` unhandled.
-import_combinators_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-import_core_prefix_test: Crash # (throw new ExpectException(message)): Unhandled node
-import_self_test/01: Crash # (throw new ExpectException(message)): Unhandled node
-import_self_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-import_show_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-incr_op_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-index_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-inference_captured_variable2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-inference_captured_variable_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-inference_list_or_null_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-inference_mixin_field_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-inference_super_constructor_call_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-inferrer_closure_test: Crash # (throw 'Test failed'): Unhandled node
-inferrer_constructor2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-inferrer_constructor3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-inferrer_constructor4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-inferrer_constructor5_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-inferrer_constructor_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-inferrer_named_parameter_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-inferrer_synthesized_constructor_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+function_type_alias_test: Crash # Instance of 'TypeOperator': type check unimplemented for Fun.
+function_type_call_getter_test: Crash # Instance of 'TypeOperator': type check unimplemented for F.
+generic2_test: Crash # Instance of 'TypeOperator': type check unimplemented for T.
+generic_closure_test: Crash # Instance of 'TypeOperator': type check unimplemented for F.
+generic_constructor_mixin2_test: Crash # Please triage this failure.
+generic_constructor_mixin3_test: Crash # Please triage this failure.
+generic_constructor_mixin_test: Crash # Please triage this failure.
+generic_creation_test: RuntimeError # Please triage this failure.
+generic_deep_test: Crash # Instance of 'TypeOperator': type check unimplemented for S<Z>.
+generic_field_mixin2_test: Crash # Please triage this failure.
+generic_field_mixin3_test: Crash # Instance of 'TypeOperator': type check unimplemented for A<T>.
+generic_field_mixin_test: Crash # Instance of 'TypeOperator': type check unimplemented for A<int>.
+generic_inheritance_test: Crash # Instance of 'TypeOperator': type check unimplemented for A<Object>.
+generic_instanceof2_test: Crash # Instance of 'TypeOperator': type check unimplemented for Foo<int, num>.
+generic_instanceof3_test: Crash # Instance of 'TypeOperator': type check unimplemented for I<String>.
+generic_instanceof4_test: Crash # Instance of 'TypeOperator': type check unimplemented for T.
+generic_instanceof5_test: Crash # Instance of 'TypeOperator': type check unimplemented for T.
+generic_instanceof_test: Crash # Instance of 'TypeOperator': type check unimplemented for List<T>.
+generic_is_check_test: Crash # Instance of 'TypeOperator': type check unimplemented for A<int>.
+generic_list_checked_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+generic_native_test: Crash # Instance of 'TypeOperator': type check unimplemented for T.
+generic_object_type_test: Crash # Instance of 'TypeOperator': type check unimplemented for T.
+generic_parameterized_extends_test: Crash # Instance of 'TypeOperator': type check unimplemented for A<Object>.
+generic_test: Crash # Instance of 'TypeOperator': type check unimplemented for B<AA>.
+implicit_closure1_test: Crash # (handler1): handleStaticFunctionGet: function(Hello#handler1)
+implicit_super_constructor_call_test: Crash # Please triage this failure.
+import_self_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+inference_captured_variable2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+inference_captured_variable_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+inference_list_or_null_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+inference_mixin_field_test: Crash # Please triage this failure.
+inference_super_constructor_call_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+inferrer_closure_test: Crash # unsupported element kind: closure:field
+inferrer_constructor2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+inferrer_constructor3_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+inferrer_constructor4_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+inferrer_constructor5_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+inferrer_constructor_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+inferrer_synthesized_constructor_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
 inferrer_synthesized_super_constructor_test: Crash # Please triage this failure.
-inferrer_this_access_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-infinite_switch_label_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-infinity_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-inline_argument_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-inline_closure_with_constant_arguments_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-inlined_conditional_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-inlined_throw_test: Crash # (throw new ExpectException(message)): Unhandled node
-inline_effect_context_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-inline_getter_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-inline_in_for_initializer_and_bailout_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-inline_super_field_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-inline_super_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-inline_test_context_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-inline_value_context_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-instance_compound_assignment_operator_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-instance_field_initializer_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-instance_incr_deopt_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-instance_inline_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-instanceof2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-instanceof3_test: Crash #  "on T" catch block
-instanceof4_test/01: Crash # (throw new ExpectException(message)): Unhandled node
-instanceof4_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-instanceof_optimized_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-instanceof_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-inst_field_initializer1_negative_test: Crash # unable to build cps definition of generative_constructor(A#)
-inst_field_initializer_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-int2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-integer_division_by_zero_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-interceptor2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-interceptor3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-interceptor4_test: Crash # (throw new ExpectException(message)): Unhandled node
-interceptor5_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-interceptor6_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-interceptor7_test: Crash # (throw new ExpectException(message)): Unhandled node
+inferrer_this_access_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+infinite_switch_label_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+inline_super_test: Crash # Please triage this failure.
+inlined_conditional_test: Crash # (main): handleStaticFunctionGet: function(main)
+inlined_throw_test: Crash # (hest): handleStaticFunctionGet: function(hest)
+instance_creation_in_function_annotation_test: Crash # (f): handleStaticFunctionGet: function(f)
+instanceof2_test: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+instanceof3_test: Crash # Instance of 'TypeOperator': type check unimplemented for UndeclaredType.
+instanceof4_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for List<T>.
+instanceof4_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for List<T>.
+instanceof_test: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+integer_division_by_zero_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+interceptor6_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+interceptor7_test: Crash # unsupported element kind: array:field
 interceptor8_test: Crash # unsupported element kind: a:field
-interceptor9_test: Crash # (throw e): Unhandled node
-interceptor_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-interface_constants_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-interface_static_method_negative_test: Crash # (new A()): Error expression `new A()` unhandled.
-interface_static_non_final_fields_negative_test: Crash #  Error expression `InterfaceStaticNonFinalFieldsNegativeTest` unhandled.
+interceptor9_test: Crash # (boom): handleStaticFunctionGet: function(boom)
+interceptor_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
 internal_library_test/01: Crash # (JS('int','0')): handleStaticFunctionInvoke: foreign: function(JS)
-internal_library_test/02: Crash # (JS('int','0')): Error expression `JS('int','0')` unhandled.
-intrinsified_methods_test: Crash # (throw new ExpectException(message)): Unhandled node
-int_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-invocation_mirror2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-invocation_mirror_invoke_on2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-invocation_mirror_invoke_on_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-invocation_mirror_test: Crash # cannot compile methods that need interceptor calling convention.
-is_function_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-is_interfaces2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-is_interfaces_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-is_malformed_type_test/94: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-is_malformed_type_test/95: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-is_malformed_type_test/96: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-is_malformed_type_test/97: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-is_malformed_type_test/98: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-is_malformed_type_test/99: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-is_nan_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-is_not_class1_negative_test: Crash #  Error expression `IsNotClass1NegativeTest.testMain()` unhandled.
-is_not_class2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-is_not_class4_negative_test: Crash #  Error expression `IsNotClass4NegativeTest.testMain()` unhandled.
-isnot_malformed_type_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-is_object_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-is_operator_clash_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-is_operator_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-issue10204_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-issue10321_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-issue10561_test: Crash # (throw new ExpectException(message)): Unhandled node
-issue10581_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-issue10721_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-issue10747_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-issue10783_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-issue11724_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+invocation_mirror_invoke_on2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+invocation_mirror_invoke_on_test: RuntimeError # Please triage this failure.
+invocation_mirror_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+is_function_test: Crash # (staticMethod): handleStaticFunctionGet: function(staticMethod)
+is_malformed_type_test/94: Crash # Instance of 'TypeOperator': type casts not implemented.
+is_malformed_type_test/95: Crash # Instance of 'TypeOperator': type check unimplemented for Undefined.
+is_malformed_type_test/96: Crash # Instance of 'TypeOperator': type casts not implemented.
+is_malformed_type_test/97: Crash # Instance of 'TypeOperator': type check unimplemented for Undefined.
+is_malformed_type_test/98: Crash # Instance of 'TypeOperator': type casts not implemented.
+is_malformed_type_test/99: Crash # Instance of 'TypeOperator': type check unimplemented for Undefined.
+is_nan_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+is_not_class2_test: Crash #  function(IsNotClass2NegativeTest#testMain)
+is_object_test: RuntimeError # Please triage this failure.
+isnot_malformed_type_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+issue10581_test: Crash #  Unhandled node
+issue10721_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+issue10747_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+issue10783_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+issue11724_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
 issue11793_test: Crash # unsupported element kind: otherArray:field
 issue12023_test: Crash #  Unhandled node
-issue12284_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-issue12336_test: Crash # (throw new ExpectException(message)): Unhandled node
-issue13179_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-issue13474_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-issue1363_test: Crash # (try {contents=libCup.getContents();}on TypeError catch (e){hasThrown=true;}): "on T" catch block
-issue13673_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-issue14014_3_test: Crash # (throw 'Test failed'): Unhandled node
-issue15606_test/01: Crash # (Unresolved): Error expression `Unresolved` unhandled.
-issue_1751477_test: Crash # handleStaticGetterInvoke: foreign: function(loadLibrary)
-issue20476_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-issue21159_test: Crash # (try {foo();}on StackOverflowError catch (e){exceptionCaught=true;}): "on T" catch block
-issue4515170_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-issue7513_test: Crash # (throw new ExpectException(message)): Unhandled node
-issue7525_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-issue9687_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-issue9939_test: Crash # (throw e): Unhandled node
-issue9949_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-js_properties_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-label8_negative_test: Crash # (Label8NegativeTest.errorMethod()): Error expression `Label8NegativeTest.errorMethod()` unhandled.
-label_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-large_class_declaration_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+issue12284_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+issue12336_test: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+issue13474_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+issue13673_test: Crash # unsupported element kind: topLevel:field
+issue14014_3_test: Crash # Please triage this failure.
+issue20476_test: Crash # (try {try {return 1;}catch (e1){}finally {return 3;}}catch (e2){}finally {return 5;}): try/finally
+issue7525_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+issue9687_test: Crash # unsupported element kind: array:field
+issue9939_test: Crash # unsupported element kind: globalVar:field
+issue9949_test: Crash # Instance of 'TypeOperator': type check unimplemented for Expando.
+issue_1751477_test: Crash # (lib1.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+label_test: Crash # (switch (i){case 111:while(doAgain()){break L;}default:i-- ;}): Unhandled node
+large_class_declaration_test: Crash # Please triage this failure.
 large_implicit_getter_test: Crash # unsupported element kind: panels:field
-lazy_map_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-lazy_static2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-lazy_static3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-lazy_static4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-lazy_static5_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-lazy_static6_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-lazy_static_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-left_shift_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-library1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-library5_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-library_ambiguous_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-library_juxtaposition_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-library_negative_test: Crash # (LibraryNegativeTest.testMain(args)): handleStaticFunctionIncompatibleInvoke
-library_prefixes_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-library_private_in_constructor_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-library_same_name_used_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-licm2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-licm3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-licm_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_double_index_in_loop2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_double_index_in_loop_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_in_closure_test: Crash # (throw new ExpectException(message)): Unhandled node
-list_is_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_length_tracer_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_literal2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_literal3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_literal4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_literal_negative_test: Crash #  Error expression `ListLiteralNegativeTest.testMain()` unhandled.
-list_literal_syntax_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_literal_syntax_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_literal_syntax_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_literal_syntax_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_literal_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-list_tracer_in_map_test: Crash # (throw 'Test failed'): Unhandled node
-list_tracer_return_from_tearoff_closure_test: Crash # (throw 'Test failed'): Unhandled node
-liveness_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-load_indexed_constant_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-local_export_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-local_function2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-local_function3_test: Crash # (try {f.xyz(0);}on NoSuchMethodError catch (e){exception_caught=true;}): "on T" catch block
-local_function_non_equal_test: Crash # (throw new ExpectException(message)): Unhandled node
-local_function_test: Crash # (try {f(1,2);}on NoSuchMethodError catch (e){exception_caught=true;}): "on T" catch block
-logical_expression2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-logical_expression3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-logical_expression4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-logical_expression5_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-logical_expression_test: Crash # (throw new ExpectException(message)): Unhandled node
-loop_exchange2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-loop_exchange3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-loop_exchange4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-loop_exchange_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-loop_hoist_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-malbounded_type_cast2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-malbounded_type_cast_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-malbounded_type_literal_test: Crash # (throw new ExpectException(message)): Unhandled node
-malbounded_type_test2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-malbounded_type_test_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-malbounded_type_test_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-malbounded_type_test_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-malbounded_type_test_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-malformed2_test/00: Crash # (throw 'Test failed.'): Unhandled node
-malformed_inheritance_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+lazy_map_test: Crash # unsupported element kind: data:field
+lazy_static2_test: Crash # unsupported element kind: x:field
+lazy_static3_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+lazy_static4_test: Crash # unsupported element kind: v:field
+lazy_static5_test: Crash # unsupported element kind: x:field
+lazy_static6_test: Crash # unsupported element kind: x:field
+lazy_static_test: Crash # unsupported element kind: t2:field
+library_ambiguous_test/04: Crash # (main): handleStaticFunctionGet: function(main)
+licm2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+licm3_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+list_double_index_in_loop2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+list_double_index_in_loop_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+list_is_test: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+list_length_tracer_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+list_literal3_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+list_test: Crash # Instance of 'TypeOperator': type check unimplemented for List<A>.
+list_tracer_in_map_test: Crash # unsupported element kind: b:field
+list_tracer_return_from_tearoff_closure_test: Crash # (foo): handleStaticFunctionGet: function(foo)
+logical_expression_test: Crash # unsupported element kind: globalList:field
+malbounded_type_cast2_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+malbounded_type_cast_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+malbounded_type_test2_test: Crash # Instance of 'TypeOperator': type check unimplemented for A<T>.
+malbounded_type_test_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for Super<int>.
+malbounded_type_test_test/04: Crash # Instance of 'TypeOperator': type check unimplemented for Super<String>.
+malformed2_test/00: Crash # Instance of 'TypeOperator': type check unimplemented for List<Unresolved>.
+malformed_inheritance_test/02: Crash # Instance of 'TypeOperator': type check unimplemented for A<String>.
 malformed_inheritance_test/03: Crash # Please triage this failure.
-malformed_inheritance_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-malformed_inheritance_test/06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+malformed_inheritance_test/04: Crash # Instance of 'TypeOperator': type check unimplemented for A<String>.
+malformed_inheritance_test/06: Crash # Instance of 'TypeOperator': type check unimplemented for A<String>.
 malformed_inheritance_test/09: Crash # Please triage this failure.
 malformed_inheritance_test/10: Crash # Please triage this failure.
-malformed_test/06: Crash #  "on T" catch block
-malformed_test/none: Crash #  "on T" catch block
+malformed_test/06: Crash # Please triage this failure.
+malformed_test/none: Crash # Please triage this failure.
 malformed_type_test: Crash # unsupported element kind: x:field
-many_calls_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-many_generic_instanceof_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-many_named_arguments_test: Crash # (throw new ExpectException(message)): Unhandled node
-many_overridden_no_such_method_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-map_literal10_test: Crash # Please triage this failure.
-map_literal2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-map_literal3_test: Crash # Please triage this failure.
-map_literal4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-map_literal5_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-map_literal6_test: Crash # Please triage this failure.
-map_literal7_test: Crash # (throw new ExpectException(message)): Unhandled node
-map_literal8_test: Crash # (throw new ExpectException(message)): Unhandled node
-map_literal9_test: Crash # Please triage this failure.
-map_literal_negative_test: Crash # (MapLiteralNegativeTest.testMain()): Error expression `MapLiteralNegativeTest.testMain()` unhandled.
-map_literal_syntax_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-map_literal_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-map_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mega_load_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-megamorphic_no_such_method_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-method_binding_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-method_invocation_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-method_name_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-method_override3_test/00: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-method_override3_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-method_override3_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-method_override3_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-method_override4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-method_override5_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-method_override6_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-method_override7_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-method_override7_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-method_override8_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-method_override8_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-method_override8_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-method_override_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-methods_as_constants2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-methods_as_constants_test: Crash # Please triage this failure.
-minify_closure_variable_collision_test: Crash # (throw 'Test failed'): Unhandled node
-mint_arithmetic_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mint_compares_test: Crash # (throw new ExpectException(message)): Unhandled node
-mixin_black_listed_test/01: Crash # (throw new ExpectException(message)): Unhandled node
-mixin_black_listed_test/02: Crash # (throw new ExpectException(message)): Unhandled node
-mixin_black_listed_test/05: Crash # (throw new ExpectException(message)): Unhandled node
-mixin_black_listed_test/06: Crash # (throw new ExpectException(message)): Unhandled node
-mixin_black_listed_test/07: Crash # (throw new ExpectException(message)): Unhandled node
-mixin_black_listed_test/08: Crash # (new F2()): Error expression `new F2()` unhandled.
-mixin_black_listed_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-mixin_bound_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+many_generic_instanceof_test: Crash # Instance of 'TypeOperator': type check unimplemented for List<T>.
+many_overridden_no_such_method_test: RuntimeError # Please triage this failure.
+megamorphic_no_such_method_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+method_binding_test: Crash # (topLevel99): handleStaticFunctionGet: function(topLevel99)
+method_override4_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+method_override5_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+method_override_test: Crash # Instance of 'TypeOperator': type check unimplemented for RemoveFunctionType<String, String>.
+methods_as_constants_test: RuntimeError # Please triage this failure.
+minify_closure_variable_collision_test: Crash # unsupported element kind: array:field
+mint_arithmetic_test: Crash #  try/finally
+mint_compares_test: Crash # (lt1): handleStaticFunctionGet: function(lt1)
+mixin_bound_test: Crash # Please triage this failure.
 mixin_cyclic_test/01: Crash # Please triage this failure.
-mixin_extends_field_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_extends_is_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_extends_method_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_field_initializer_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_field_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_forwarding_constructor1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_forwarding_constructor2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_forwarding_constructor3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_generic_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_getter_regression_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+mixin_extends_field_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mixin_extends_method_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mixin_field_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mixin_forwarding_constructor1_test: Crash # Please triage this failure.
+mixin_forwarding_constructor3_test: Crash # Please triage this failure.
+mixin_generic_test: Crash # Instance of 'TypeOperator': type check unimplemented for S<Map<int, bool>>.
 mixin_illegal_constructor_test/13: MissingRuntimeError # Please triage this failure.
-mixin_illegal_constructor_test/14: Crash # (new C0.named()): Error expression `new C0.named()` unhandled.
 mixin_illegal_constructor_test/15: MissingRuntimeError # Please triage this failure.
-mixin_illegal_constructor_test/16: Crash # (new D0.named()): Error expression `new D0.named()` unhandled.
 mixin_illegal_cycles_test/02: Crash # Please triage this failure.
 mixin_illegal_cycles_test/03: Crash # Please triage this failure.
 mixin_illegal_cycles_test/04: Crash # Please triage this failure.
 mixin_illegal_cycles_test/06: Crash # Please triage this failure.
-mixin_illegal_static_access_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_illegal_super_use_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_illegal_super_use_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_illegal_super_use_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_illegal_super_use_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_illegal_super_use_test/05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_illegal_super_use_test/06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_illegal_super_use_test/07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_illegal_super_use_test/08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_illegal_super_use_test/09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_illegal_super_use_test/10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_illegal_super_use_test/11: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_illegal_super_use_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_illegal_syntax_test/13: Crash # (new T0()): Error expression `new T0()` unhandled.
-mixin_implements_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+mixin_illegal_static_access_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
 mixin_invalid_inheritance1_test/01: Crash # Please triage this failure.
 mixin_invalid_inheritance1_test/02: Crash # Please triage this failure.
 mixin_invalid_inheritance1_test/03: Crash # Please triage this failure.
-mixin_invalid_inheritance2_test/01: Crash # (new C<C>()): Error expression `new C<C>()` unhandled.
-mixin_invalid_inheritance2_test/02: Crash # (new C<C>()): Error expression `new C<C>()` unhandled.
-mixin_invalid_inheritance2_test/03: Crash # (new C<C>()): Error expression `new C<C>()` unhandled.
-mixin_issue10216_2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_issue10216_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_is_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_lib_extends_field_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_lib_extends_method_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_method_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_mixin2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_mixin3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_mixin4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_mixin5_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_mixin6_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_mixin7_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_mixin_bound2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_mixin_bound_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_mixin_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_naming_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_only_for_rti_test: Crash # (throw new ExpectException(message)): Unhandled node
-mixin_override_regression_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_prefix_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_regress_11398_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_regress_13688_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_super_constructor2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_super_constructor_default_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_super_constructor_multiple_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_super_constructor_named_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_super_constructor_named_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+mixin_issue10216_2_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+mixin_issue10216_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+mixin_lib_extends_field_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mixin_lib_extends_method_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mixin_method_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mixin_mixin4_test: Crash # Instance of 'TypeOperator': type check unimplemented for I<List<bool>>.
+mixin_mixin5_test: Crash # Instance of 'TypeOperator': type check unimplemented for K<int>.
+mixin_mixin6_test: Crash # Instance of 'TypeOperator': type check unimplemented for K<int>.
+mixin_mixin7_test: Crash # Instance of 'TypeOperator': type check unimplemented for K<int>.
+mixin_mixin_bound2_test: Crash # Instance of 'TypeOperator': type check unimplemented for K<int>.
+mixin_mixin_bound_test: Crash # Instance of 'TypeOperator': type check unimplemented for I<List<bool>>.
+mixin_only_for_rti_test: Crash # Instance of 'TypeOperator': type check unimplemented for T.
+mixin_super_constructor2_test: Crash # Please triage this failure.
+mixin_super_constructor_default_test: Crash # Please triage this failure.
+mixin_super_constructor_multiple_test: Crash # Please triage this failure.
+mixin_super_constructor_named_test/01: Crash # Please triage this failure.
+mixin_super_constructor_named_test/none: Crash # Please triage this failure.
 mixin_super_constructor_positionals_test/01: Crash # Please triage this failure.
-mixin_super_constructor_positionals_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_super_constructor_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_this_use_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_typedef_constructor_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_type_parameter1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_type_parameter2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_type_parameter3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_type_parameter4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_type_parameters_mixin_extends_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_type_parameters_mixin_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_type_parameters_simple_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_type_parameters_super_extends_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_type_parameters_super_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mixin_with_two_implicit_constructors_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-modulo_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mul_recipr_test: Crash # (throw new ExpectException(message)): Unhandled node
-multi_assign_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-multiline_strings_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-multi_pass2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-multi_pass_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+mixin_super_constructor_positionals_test/none: Crash # Please triage this failure.
+mixin_super_constructor_test: Crash # Please triage this failure.
+mixin_type_parameter1_test: Crash # Instance of 'TypeOperator': type check unimplemented for Mixin1<num>.
+mixin_type_parameter2_test: Crash # Instance of 'TypeOperator': type check unimplemented for Mixin1<num>.
+mixin_type_parameter3_test: Crash # Instance of 'TypeOperator': type check unimplemented for Mixin1<num>.
+mixin_type_parameter4_test: Crash # Instance of 'TypeOperator': type check unimplemented for R<bool, int>.
+mixin_type_parameters_mixin_extends_test: Crash # Instance of 'TypeOperator': type check unimplemented for M.
+mixin_type_parameters_mixin_test: Crash # Instance of 'TypeOperator': type check unimplemented for M.
+mixin_type_parameters_super_extends_test: Crash # Instance of 'TypeOperator': type check unimplemented for S.
+mixin_type_parameters_super_test: Crash # Instance of 'TypeOperator': type check unimplemented for S.
+mixin_typedef_constructor_test: Crash # Please triage this failure.
+mixin_with_two_implicit_constructors_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+modulo_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
 multiple_field_assignment_constructor_test: Crash # unsupported element kind: a:field
-named_argument_in_const_creation_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-named_argument_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-named_constructor_test/01: Crash # (new Class.named<int>()): Error expression `new Class.named<int>()` unhandled.
-named_constructor_test/03: Crash # (new prefix<int>.Class()): Error expression `new prefix<int>.Class()` unhandled.
-named_constructor_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-named_parameter_clash_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-named_parameters2_test: Crash # (try {test(10,25,b:26);}on NoSuchMethodError catch (e){foundError=true;}): "on T" catch block
-named_parameters3_test: Crash # (try {test(10,x:99);}on NoSuchMethodError catch (e){foundError=true;}): "on T" catch block
-named_parameters4_test: Crash # (try {test(10,x:99);}on NoSuchMethodError catch (e){foundError=true;}): "on T" catch block
-named_parameters_aggregated_test/02: Crash #  Error expression `NamedParametersAggregatedTests.f_missing_comma(10,25)` unhandled.
-named_parameters_aggregated_test/05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-named_parameters_named_count_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-named_parameters_passing_false_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-named_parameters_passing_falsy_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-named_parameters_passing_null_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-named_parameters_passing_zero_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-named_parameters_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-named_parameters_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-named_parameters_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-named_parameters_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-named_parameters_test/05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-named_parameters_test/06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-named_parameters_test/07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-named_parameters_test/08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-named_parameters_test/09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-named_parameters_test/10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-named_parameters_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-named_parameters_with_conversions_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-named_parameters_with_dollars_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-named_parameters_with_object_property_names_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-namer2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-namer_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-naming2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-naming3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-naming_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-native_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-nested_comments_test: Crash # (throw new ExpectException(message)): Unhandled node
-nested_if_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+named_parameter_clash_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+named_parameters_aggregated_test/05: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+named_parameters_passing_falsy_test: Crash # (TestClass.staticMethod): handleStaticFunctionGet: function(TestClass#staticMethod)
+named_parameters_with_dollars_test: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+namer2_test: Crash # Instance of 'TypeOperator': type check unimplemented for A.
+naming_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
 nested_switch_label_test: Crash #  Unhandled node
-new_expression1_negative_test: Crash # (NewExpression1NegativeTest): Error expression `NewExpression1NegativeTest` unhandled.
-new_expression2_negative_test: Crash # (NewExpression2NegativeTest): Error expression `NewExpression2NegativeTest` unhandled.
-new_expression3_negative_test: Crash # (NewExpression3NegativeTest): Error expression `NewExpression3NegativeTest` unhandled.
-new_prefix_test/01: Crash # (new prefix()): Error expression `new prefix()` unhandled.
-new_statement_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-non_const_constructor_without_body_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-non_const_super_negative_test: Crash # Please triage this failure.
-non_dominating_loop_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-no_such_constructor2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+no_such_constructor2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
 no_such_constructor_test/01: MissingRuntimeError # Please triage this failure.
-no_such_method2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-no_such_method3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-no_such_method_dispatcher_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-no_such_method_empty_selector_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-no_such_method_subtype_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-no_such_method_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+no_such_method_dispatcher_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+no_such_method_empty_selector_test: Crash # unsupported element kind: b:field
+no_such_method_test: RuntimeError # Please triage this failure.
+non_const_super_negative_test: Crash # Please triage this failure.
 not_enough_positional_arguments_test/00: MissingRuntimeError # Please triage this failure.
 not_enough_positional_arguments_test/03: Crash # Please triage this failure.
-not_enough_positional_arguments_test/06: Crash # (foo(b:1)): handleStaticFunctionIncompatibleInvoke
-not_enough_positional_arguments_test/06: MissingRuntimeError # Please triage this failure.
-not_enough_positional_arguments_test/07: Crash # Please triage this failure.
-null2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-null_access_error_test: Crash #  "on T" catch block
-null_inline_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-null_is2_test: Crash # (throw new ExpectException(message)): Unhandled node
-null_is_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-null_method_test: Crash # (throw new ExpectException(message)): Unhandled node
+null2_test: Crash # Instance of 'TypeOperator': type check unimplemented for dynamic.
+null_inline_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+null_is2_test: Crash # Instance of 'TypeOperator': type check unimplemented for T.
+null_is_test: Crash # Instance of 'TypeOperator': type check unimplemented for List.
 null_no_such_method_test: Crash # unsupported element kind: array:field
-null_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-null_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-null_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-null_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-null_to_string2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-null_to_string_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-number_constant_folding1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-number_identifier_test/05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-number_identifier_test/08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-number_identifier_test/09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-number_identifier_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-number_identity2_test: Crash # (throw new ExpectException(message)): Unhandled node
-number_identity_test: Crash # (throw new ExpectException(message)): Unhandled node
-numbers_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-number_syntax_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-on_catch_malformed_type_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-operator2_negative_test: Crash # (new Helper(10)): Error expression `new Helper(10)` unhandled.
-operator2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-operator3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-operator4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-operator5_test: Crash # (try {Expect.equals(42,a>=a);}on TypeError catch (e){}): "on T" catch block
-operator6_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-operator_equals_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-operator_index_evaluation_order_test: Crash # (throw new ExpectException(message)): Unhandled node
-operator_negate_and_method_negate_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-operator_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-optimized_constant_array_string_access_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-optimized_hoisting_checked_mode_assert_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-optimized_isempty_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-optimized_lists_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-optimized_setter_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-optimized_string_charat_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-optimized_string_charcodeat_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-optimize_redundant_array_load_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-optional_named_parameters_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-optional_named_parameters_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-optional_named_parameters_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-optional_named_parameters_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-optional_named_parameters_test/05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-optional_named_parameters_test/06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-optional_named_parameters_test/07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-optional_named_parameters_test/08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-optional_named_parameters_test/09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-optional_named_parameters_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-ordered_maps_test: Crash # Please triage this failure.
-osr_test: Crash # (throw "No progress made"): Unhandled node
-overridden_no_such_method_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-override_inheritance_no_such_method_test/03: Crash # cannot compile methods that need interceptor calling convention.
-override_inheritance_no_such_method_test/04: Crash # cannot compile methods that need interceptor calling convention.
-override_inheritance_no_such_method_test/08: Crash # cannot compile methods that need interceptor calling convention.
-override_inheritance_no_such_method_test/11: Crash # cannot compile methods that need interceptor calling convention.
-override_inheritance_no_such_method_test/13: Crash # cannot compile methods that need interceptor calling convention.
-override_method_with_field_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-override_method_with_field_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-param2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-parameter_initializer2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-parameter_initializer4_negative_test: Crash # Please triage this failure.
-parameter_initializer6_negative_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-parameter_initializer_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-parameter_name_conflict_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-parameter_types_specialization_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-param_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-parse_closures_in_initializers_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-parser_quirks_test: Crash # handleStaticFunctionGet: function(f)
-parse_types_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-partial_min_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-patch_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+null_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for dynamic.
+null_test/02: Crash # Instance of 'TypeOperator': type check unimplemented for dynamic.
+null_test/03: Crash # Instance of 'TypeOperator': type check unimplemented for dynamic.
+null_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for dynamic.
+number_identifier_test/05: Crash # Instance of 'TypeOperator': type casts not implemented.
+number_identifier_test/08: Crash # Instance of 'TypeOperator': type casts not implemented.
+number_identifier_test/09: Crash # Instance of 'TypeOperator': type casts not implemented.
+number_identifier_test/none: Crash # Instance of 'TypeOperator': type casts not implemented.
+on_catch_malformed_type_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+operator4_test: RuntimeError # Please triage this failure.
+operator_equals_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+optimize_redundant_array_load_test: Crash # unsupported element kind: A:field
+optimized_constant_array_string_access_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+optimized_string_charat_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+optimized_string_charcodeat_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+osr_test: Crash # (create): handleStaticFunctionGet: function(create)
+overridden_no_such_method_test: RuntimeError # Please triage this failure.
+parser_quirks_test: Crash # (f): handleStaticFunctionGet: function(f)
 phi_merge_test: Crash # (switch (value){case 42:break;case 43:break;}): Unhandled node
-positive_bit_operations_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-prefix101_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-prefix10_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-prefix11_negative_test: Crash # (new lib12.Library11(1)): Error expression `new lib12.Library11(1)` unhandled.
-prefix11_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-prefix12_negative_test: Crash # (lib12.top_level11): Error expression `lib12.top_level11` unhandled.
-prefix12_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-prefix14_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-prefix15_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-prefix16_test: Crash # (try {myFunc i=0;}on TypeError catch (error){got_type_error=true;}): "on T" catch block
-prefix1_negative_test: Crash # (library1): Error expression `library1` unhandled.
-prefix21_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-prefix24_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-prefix2_negative_test: Crash # (lib2.Library2): Error expression `lib2.Library2` unhandled.
-prefix3_negative_test: Crash # (lib2.foo=1): Error expression `lib2.foo=1` unhandled.
-prefix4_negative_test: Crash # (new lib11.Library11(1)): Error expression `new lib11.Library11(1)` unhandled.
-prefix5_negative_test: Crash # (lib11): Error expression `lib11` unhandled.
-prefix_new_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-prefix_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-private3_test: Crash # Please triage this failure.
-private4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-private_access_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-private_access_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-private_access_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-private_access_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-private_access_test/05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-private_access_test/06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-private_clash_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-private_mixin2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-private_selector_test: Crash # (throw new ExpectException(message)): Unhandled node
-private_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-propagated_argument_type_check_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-propagate_past_constant_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-property_field_override_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-pure_function2_test: Crash # (throw new ExpectException(message)): Unhandled node
-pure_function_test: Crash # (throw new ExpectException(message)): Unhandled node
-range_analysis2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-range_analysis3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-range_analysis_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-raw_string_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-recursive_calls_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-recursive_loop_phis_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-redirecting_factory_default_values_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-redirecting_factory_default_values_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-redirecting_factory_default_values_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-redirecting_factory_incompatible_signature_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-redirecting_factory_long_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-reexport_core_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-ref_before_declaration_test/00: Crash # (throw "ball"): Unhandled node
-ref_before_declaration_test/01: Crash # (throw "ball"): Unhandled node
-ref_before_declaration_test/02: Crash # (throw "ball"): Unhandled node
-ref_before_declaration_test/03: Crash # (throw "ball"): Unhandled node
-ref_before_declaration_test/04: Crash # (throw "ball"): Unhandled node
-ref_before_declaration_test/05: Crash # (throw "ball"): Unhandled node
-ref_before_declaration_test/06: Crash # (throw "ball"): Unhandled node
-ref_before_declaration_test/07: Crash # (throw "ball"): Unhandled node
-ref_before_declaration_test/none: Crash # (throw "ball"): Unhandled node
-refine_receiver_null_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-reg_exp2_test: Crash # (throw new ExpectException(message)): Unhandled node
-reg_exp3_test: Crash # (try {RegExp exp=new RegExp("[");i=100;}on FormatException catch (e){i=0;}): "on T" catch block
-reg_exp_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regress_10996_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regress_11010_test: Crash # (throw 'unexpected result'): Unhandled node
-regress_11800_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regress_12561_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regress_13494_test: Crash # (A.unknown=p(2)): Error expression `A.unknown=p(2)` unhandled.
-regress_14105_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regress_17382_test: Crash # (tl(m(0))): Error expression `tl(m(0))` unhandled.
+prefix14_test: Crash # (myClass.func2): handleStaticFunctionGet: function(myClass#func2)
+prefix16_test: Crash # Instance of 'TypeOperator': type check unimplemented for myFunc.
+prefix21_test: Crash # (badFunction): handleStaticFunctionGet: function(badFunction)
+private4_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+private_access_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+private_access_test/02: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+private_access_test/03: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+private_access_test/04: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+private_access_test/05: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+private_access_test/06: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+private_mixin2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+pure_function2_test: Crash # (foo): handleStaticFunctionGet: function(foo)
+range_analysis2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+range_analysis_test: Crash # (f): handleStaticFunctionGet: function(f)
+redirecting_factory_default_values_test/none: RuntimeError # Please triage this failure.
+redirecting_factory_incompatible_signature_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+redirecting_factory_long_test: Crash # Instance of 'TypeOperator': type check unimplemented for X<int>.
+ref_before_declaration_test/00: Crash # (switch (x){case 0:var x='Does fuzzy logic tickle?';}): Unhandled node
+ref_before_declaration_test/01: Crash # (switch (x){case 0:var x='Does fuzzy logic tickle?';}): Unhandled node
+ref_before_declaration_test/02: Crash # (switch (x){case 0:var x='Does fuzzy logic tickle?';}): Unhandled node
+ref_before_declaration_test/03: Crash # (switch (x){case 0:var x='Does fuzzy logic tickle?';}): Unhandled node
+ref_before_declaration_test/04: Crash # (switch (x){case 0:var x='Does fuzzy logic tickle?';}): Unhandled node
+ref_before_declaration_test/05: Crash # (switch (x){case 0:var x='Does fuzzy logic tickle?';}): Unhandled node
+ref_before_declaration_test/06: Crash # (switch (x){case 0:var x='Does fuzzy logic tickle?';}): Unhandled node
+ref_before_declaration_test/07: Crash # (switch (x){case 0:var x='Does fuzzy logic tickle?';}): Unhandled node
+ref_before_declaration_test/none: Crash # (switch (x){case 0:var x='Does fuzzy logic tickle?';}): Unhandled node
+refine_receiver_null_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+reg_exp_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+regress_11010_test: Crash # unsupported element kind: caller:field
+regress_12561_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+regress_14105_test: Crash # Instance of 'TypeOperator': type check unimplemented for A<int>.
 regress_18435_test: Crash # Please triage this failure.
-regress_18535_test: Crash # cannot compile methods that need interceptor calling convention.
-regress_19413_test/01: Crash # (foo.f()): Error expression `foo.f()` unhandled.
+regress_18535_test: Crash # Instance of 'TypeOperator': type check unimplemented for V.
 regress_21016_test: Crash # unsupported element kind: list:field
-regress_21793_test/01: Crash # (new A()(499)): Error expression `new A()(499)` unhandled.
-regress_21795_test: Crash # (throw "Expected foo in stacktrace!"): Unhandled node
-regress_21998_1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regress_21998_2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regress_21998_3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regress_21998_4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+regress_21795_test: Crash # (try {foo(t);}finally {if(t==0){try {}catch (err,st){}}}): try/finally
 regress_22438_test: Crash #  cannot handle async/sync*/async* functions
-regress_22443_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+regress_22443_test: Crash # (D.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
 regress_22445_test: Crash #  cannot handle async/sync*/async* functions
 regress_22579_test: Crash #  cannot handle async/sync*/async* functions
 regress_22700_test: Crash # Please triage this failure.
-regress_22719_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
 regress_22728_test: Crash #  cannot handle async/sync*/async* functions
-regress_22777_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-regress_22822_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regress_22858_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-regress_22936_test/01: Crash # (try {x=foo();}on NoSuchMethodError {}): "on T" catch block
-regress_22936_test/none: Crash # (try {foo();}on NoSuchMethodError {}): "on T" catch block
-regress_23046_test: Crash # Please triage this failure.
-regress_r24720_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-reify_typevar_static_test/00: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-reify_typevar_static_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-reify_typevar_static_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-reify_typevar_static_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-reify_typevar_static_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-reify_typevar_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-resolution_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-resolve_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-rethrow_test: Crash #  "on T" catch block
-return_in_loop_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-return_this_type_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-return_type_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-rewrite_assign_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-rewrite_compound_assign_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-rewrite_conditional_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-rewrite_for_update_order_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-rewrite_if_empty_then_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-rewrite_if_return_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-rewrite_if_swap_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-rewrite_implicit_this_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-rewrite_logical_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-rewrite_nested_if1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-rewrite_nested_if2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-rewrite_nested_if3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-rewrite_swap_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-rewrite_variable_initializer_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-rewrite_while_many_exits_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-rewrite_while_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-round_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-runtime_type_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-savannah_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-scoped_variables_try_catch_test: Crash # Please triage this failure.
-scope_variable_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-scope_variable_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-second_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-setter0_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-setter1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-setter2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-setter_no_getter_call_test/01: Crash # (topLevel(3)): Error expression `topLevel(3)` unhandled.
-setter_no_getter_call_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-setter_no_getter_test/01: Crash # (topLevel++ ): Error expression `topLevel++ ` unhandled.
-setter_override2_test/00: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-setter_override2_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-setter_override2_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-setter_override2_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-setter_override2_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-setter_override_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-setter_override_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-setter_override_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-side_effect_throw_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-skip_expression_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-smaller_4_Interface_Types_A11_t01_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-smaller_4_Interface_Types_A11_t02_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-smi_type_test: Crash # (throw new ExpectException(message)): Unhandled node
-stack_overflow_stacktrace_test: Crash #  "on T" catch block
-stack_overflow_test: Crash #  "on T" catch block
-stacktrace_rethrow_error_test/none: Crash # (throw "Expected: ${expected} actual: ${actual}"): Unhandled node
-stacktrace_rethrow_error_test/withtraceparameter: Crash # (throw "Expected: ${expected} actual: ${actual}"): Unhandled node
-stacktrace_rethrow_nonerror_test: Crash # (throw "Expected: ${expected} actual: ${actual}"): Unhandled node
-stacktrace_test: Crash #  "on T" catch block
-stack_trace_test: Crash # (throw new ExpectException(message)): Unhandled node
-state_mangling2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-state_mangling3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-state_mangling4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-state_mangling_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-statement_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-static_call_wrong_argument_count_negative_test: Crash # (Niesen.goodCall(1,2,3,4)): handleStaticFunctionIncompatibleInvoke
-static_call_wrong_argument_count_negative_test: Fail # Please triage this failure.
-static_closure_identical_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-static_const_field_test: Crash # Please triage this failure.
-static_field3_test/01: Crash # (Foo.x): Error expression `Foo.x` unhandled.
-static_field3_test/02: Crash # (Foo.m): Error expression `Foo.m` unhandled.
-static_field3_test/03: Crash # (Foo.m=1): Error expression `Foo.m=1` unhandled.
-static_field3_test/04: Crash # (Foo.x=1): Error expression `Foo.x=1` unhandled.
-static_field_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-static_field_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-static_field_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-static_field_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-static_field_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-static_final_field2_test/01: Crash # (A.x=2): Error expression `A.x=2` unhandled.
-static_implicit_closure_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-static_initializer_type_error_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-static_inline_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-static_postfix_operator_test: Crash # (throw new ExpectException(message)): Unhandled node
-strict_equal_test: Crash # (throw new ExpectException(message)): Unhandled node
-string_charcode_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_escapes_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_interpolate2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_interpolate_null_test: Crash # (try {s="Hello Mr. ${a.name}";}on NoSuchMethodError catch (e){return;}): "on T" catch block
-string_interpolate_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_interpolation1_negative_test: Crash #  Error expression `StringInterpolation1NegativeTest.testMain()` unhandled.
-string_interpolation2_negative_test: Crash #  Error expression `StringInterpolation2NegativeTest.testMain()` unhandled.
-string_interpolation4_negative_test: Crash #  Error expression `StringInterpolation4NegativeTest.testMain()` unhandled.
-string_interpolation5_negative_test: Crash #  Error expression `StringInterpolation5NegativeTest.testMain()` unhandled.
-string_interpolation6_negative_test: Crash #  Error expression `StringInterpolation6NegativeTest.testMain()` unhandled.
-string_interpolation7_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_interpolation8_test: Crash # (throw new ExpectException(message)): Unhandled node
-string_interpolation_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_interpolation_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_intrinsics_test: Crash # (throw new ExpectException(message)): Unhandled node
-string_join_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_optimizations_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_supertype_checked_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-string_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-substring_test/01: Crash #  "on T" catch block
-substring_test/none: Crash # (try {}on TypeError catch (e){}on ArgumentError catch (e){}): "on T" catch block
-super_abstract_method_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-super_all_named_constructor_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-super_assign_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-super_bound_closure_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-super_bound_closure_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-super_call3_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-super_call3_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-super_call3_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-super_call4_test: Crash # (throw new ExpectException(message)): Unhandled node
-super_call_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-super_closure_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-super_field_2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-super_field_access_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-super_field_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-super_first_constructor_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-super_getter_setter_test: Crash # cannot compile methods that need interceptor calling convention.
-super_implicit_closure_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-super_inferrer_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-super_operator_index2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-super_operator_index3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-super_operator_index4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-super_operator_index5_test: Crash # cannot compile methods that need interceptor calling convention.
-super_operator_index6_test: Crash # cannot compile methods that need interceptor calling convention.
-super_operator_index7_test: Crash # cannot compile methods that need interceptor calling convention.
-super_operator_index8_test: Crash # cannot compile methods that need interceptor calling convention.
-super_operator_index_test/01: Crash # cannot compile methods that need interceptor calling convention.
-super_operator_index_test/02: Crash # cannot compile methods that need interceptor calling convention.
-super_operator_index_test/03: Crash # (super[4]=42): Error expression `super[4]=42` unhandled.
-super_operator_index_test/04: Crash # (super[4]+=5): Error expression `super[4]+=5` unhandled.
-super_operator_index_test/05: Crash # (super[4]=42): Error expression `super[4]=42` unhandled.
-super_operator_index_test/06: Crash # (super[4]+=5): Error expression `super[4]+=5` unhandled.
-super_operator_index_test/07: Crash # (super[2]): Error expression `super[2]` unhandled.
-super_operator_index_test/none: Crash # cannot compile methods that need interceptor calling convention.
-super_operator_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-super_setter_interceptor_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-super_setter_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-super_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+regress_22777_test: Crash #  cannot handle async/sync*/async* functions
+regress_22822_test: Crash # (try {for(int i=0;i<10;i++ ){return ()=>i+b;}}finally {b=10;}): try/finally
+regress_22936_test/01: Crash # Please triage this failure.
+regress_22936_test/none: Crash # Please triage this failure.
+regress_r24720_test: Crash # Instance of 'TypeOperator': type check unimplemented for A<int>.
+reify_typevar_static_test/01: Crash # Please triage this failure.
+return_type_test: Crash # (returnString1): handleStaticFunctionGet: function(returnString1)
+side_effect_throw_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+skip_expression_test: Crash # Instance of 'TypeOperator': type check unimplemented for OneArg.
+smaller_4_Interface_Types_A11_t02_test: Crash # Instance of 'TypeOperator': type check unimplemented for G<C, C, C>.
+smi_type_test: Crash # Instance of 'TypeOperator': type check unimplemented for Comparable<double>.
+stack_trace_test: Crash #  try/finally
+statement_test: Crash #  try/finally
+static_closure_identical_test: Crash # (main): handleStaticFunctionGet: function(main)
+static_field_test/02: Crash # (m): handleStaticFunctionGet: function(StaticField1aRunNegativeTest#m)
+static_field_test/04: Crash # (m): handleStaticFunctionGet: function(StaticField2aRunNegativeTest#m)
+static_implicit_closure_test: Crash # (First.foo): handleStaticFunctionGet: function(First#foo)
+static_postfix_operator_test: Crash # (try {if(a++ ==0){inIt=true;}}finally {}): try/finally
+string_charcode_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+string_interpolation_test/01: Crash # (m): handleStaticFunctionGet: function(StringInterpolationTest#m)
+string_interpolation_test/none: Crash # (m): handleStaticFunctionGet: function(StringInterpolationTest#m)
+string_optimizations_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+super_all_named_constructor_test: Crash # Please triage this failure.
+super_bound_closure_test/01: RuntimeError # Please triage this failure.
+super_bound_closure_test/none: RuntimeError # Please triage this failure.
+super_call4_test: RuntimeError # Please triage this failure.
+super_getter_setter_test: RuntimeError # Please triage this failure.
+super_implicit_closure_test: RuntimeError # Please triage this failure.
+super_inferrer_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+super_operator_index2_test: RuntimeError # Please triage this failure.
+super_operator_index5_test: Crash # (super[0]=42): visitUnresolvedSuperIndexSet
+super_operator_index5_test: RuntimeError # Please triage this failure.
+super_operator_index6_test: Crash # (super[0]+=1): visitUnresolvedSuperGetterCompoundIndexSet
+super_operator_index6_test: RuntimeError # Please triage this failure.
+super_operator_index7_test: Crash # (super[0]=42): visitUnresolvedSuperIndexSet
+super_operator_index7_test: RuntimeError # Please triage this failure.
+super_operator_index8_test: Crash # (super[f()]=g()): visitUnresolvedSuperIndexSet
+super_operator_index8_test: RuntimeError # Please triage this failure.
+super_operator_index_test/01: Crash # (super[4]+=5): visitUnresolvedSuperGetterCompoundIndexSet
+super_operator_index_test/03: Crash # (super[4]=42): visitUnresolvedSuperIndexSet
+super_operator_index_test/04: Crash # (super[4]+=5): visitUnresolvedSuperSetterCompoundIndexSet
+super_operator_index_test/05: Crash # (super[4]=42): visitUnresolvedSuperIndexSet
+super_operator_index_test/06: Crash # (super[4]+=5): visitUnresolvedSuperGetterCompoundIndexSet
+super_operator_test: Crash # (testRegression6403): handleStaticFunctionGet: function(testRegression6403)
 switch6_test: Crash # (switch (a){case 0:{x=0;break;}case 1:x=1;break;}): Unhandled node
 switch8_test: Crash # (switch (new List(1)[0]){case const A():throw 'Test failed';}): Unhandled node
-switch_bad_case_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-switch_bad_case_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-switch_bad_case_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+switch_bad_case_test/02: Crash # (switch (n){case 1:return "I";case 4:return "IV";}): Unhandled node
+switch_bad_case_test/none: Crash # (switch (n){case 1:return "I";case 4:return "IV";}): Unhandled node
 switch_case_static_const_test: Crash # (switch (p){case S:break;case A.S:break;case 'abc':break;}): Unhandled node
 switch_case_test/none: Crash # (switch (new B()){}): Unhandled node
-switch_fallthru_test: Crash # (try {test(1);}on FallThroughError catch (e){fallthroughCaught=true;}): "on T" catch block
+switch_fallthru_test: Crash # (switch (n){case 0:result="zero";break;case 1:result="one";case 9:result="nine";}): Unhandled node
 switch_label2_test: Crash #  Unhandled node
-switch_label_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+switch_label_test: Crash #  Unhandled node
 switch_scope_test: Crash #  Unhandled node
 switch_test: Crash # (switch (input){case true:result=12;break;case false:result=22;}): Unhandled node
-switch_try_catch_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-sync_generator1_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-sync_generator1_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-sync_generator2_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-sync_generator2_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-sync_generator2_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-sync_generator2_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-sync_generator2_test/05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-sync_generator2_test/06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-sync_generator2_test/07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-sync_generator2_test/08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-sync_generator2_test/09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-sync_generator2_test/10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-sync_generator2_test/11: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-sync_generator2_test/20: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-sync_generator2_test/30: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-sync_generator2_test/40: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-sync_generator2_test/41: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-sync_generator2_test/50: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-sync_generator2_test/51: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-sync_generator2_test/52: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-sync_generator2_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-sync_generator3_test/test1: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-sync_generator3_test/test2: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+switch_try_catch_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+sync_generator1_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for Iterable.
+sync_generator1_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for Iterable.
+sync_generator2_test/01: Crash # (sync()sync*{yield sync;}): cannot handle async/sync*/async* functions
+sync_generator2_test/02: Crash # (sync()sync*{yield sync;}): cannot handle async/sync*/async* functions
+sync_generator2_test/03: Crash # (sync()sync*{yield sync;}): cannot handle async/sync*/async* functions
+sync_generator2_test/04: Crash # (sync()sync*{yield sync;}): cannot handle async/sync*/async* functions
+sync_generator2_test/05: Crash # (sync()sync*{yield sync;}): cannot handle async/sync*/async* functions
+sync_generator2_test/06: Crash # (sync()sync*{yield sync;}): cannot handle async/sync*/async* functions
+sync_generator2_test/07: Crash # (sync()sync*{yield sync;}): cannot handle async/sync*/async* functions
+sync_generator2_test/08: Crash # (sync()sync*{yield sync;}): cannot handle async/sync*/async* functions
+sync_generator2_test/09: Crash # (sync()sync*{yield sync;}): cannot handle async/sync*/async* functions
+sync_generator2_test/10: Crash # (sync()sync*{yield sync;}): cannot handle async/sync*/async* functions
+sync_generator2_test/11: Crash # (sync()sync*{yield sync;}): cannot handle async/sync*/async* functions
+sync_generator2_test/20: Crash # (sync()sync*{yield sync;}): cannot handle async/sync*/async* functions
+sync_generator2_test/30: Crash # (sync()sync*{yield sync;}): cannot handle async/sync*/async* functions
+sync_generator2_test/40: Crash # (sync()sync*{yield sync;}): cannot handle async/sync*/async* functions
+sync_generator2_test/41: Crash # (sync()sync*{yield sync;}): cannot handle async/sync*/async* functions
+sync_generator2_test/50: Crash # (test02()sync*{yield 12321;}): cannot handle async/sync*/async* functions
+sync_generator2_test/51: Crash # (sync()sync*{yield sync;}): cannot handle async/sync*/async* functions
+sync_generator2_test/52: Crash # (sync()sync*{yield sync;}): cannot handle async/sync*/async* functions
+sync_generator2_test/none: Crash # (sync()sync*{yield sync;}): cannot handle async/sync*/async* functions
+sync_generator3_test/test1: Crash #  cannot handle async/sync*/async* functions
+sync_generator3_test/test2: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+syncstar_yield_test/copyParameters: Crash #  cannot handle async/sync*/async* functions
+syncstar_yield_test/none: Crash #  cannot handle async/sync*/async* functions
 syncstar_yieldstar_test: Crash #  cannot handle async/sync*/async* functions
-syncstar_yield_test/copyParameters: Crash # (throw new ExpectException(message)): Unhandled node
-syncstar_yield_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-temp_mangling_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-ternary_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-test_negative_test: Crash # (TestNegativeTest): Error expression `TestNegativeTest` unhandled.
-third_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-throw1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-throw2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-throw3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-throw4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-throw5_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-throw6_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-throw8_test: Crash # (throw new ExpectException(message)): Unhandled node
-throw_expr_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-throwing_lazy_variable_test: Crash # (throw 'Test failed'): Unhandled node
-throw_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-top_level_func_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-top_level_getter_arrow_syntax_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-top_level_in_initializer_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-top_level_method_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-top_level_multiple_files_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-top_level_non_prefixed_library_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-top_level_prefixed_declaration_test: Crash # (throw new ExpectException(message)): Unhandled node
-top_level_var_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-transitive_private_library_access_test: Crash # (ClassID): Error expression `ClassID` unhandled.
-tree_shake_typed_selector_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-truncdiv_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-truncdiv_uint32_test: Crash # (throw 'Test failed'): Unhandled node
-try_catch2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-try_catch3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-try_catch4_test: Crash # (throw new ExpectException(message)): Unhandled node
-try_catch5_test: Crash # (throw new ExpectException(message)): Unhandled node
-try_catch_on_syntax_test/02: Crash # (test1()): Error expression `test1()` unhandled.
-try_catch_on_syntax_test/03: Crash # (test1()): Error expression `test1()` unhandled.
-try_catch_on_syntax_test/04: Crash # (test1()): Error expression `test1()` unhandled.
-try_catch_on_syntax_test/05: Crash # (test1()): Error expression `test1()` unhandled.
-try_catch_on_syntax_test/06: Crash # (test1()): Error expression `test1()` unhandled.
-try_catch_on_syntax_test/07: Crash # (throw "catch this!"): Unhandled node
-try_catch_on_syntax_test/10: Crash # (throw "catch this!"): Unhandled node
-try_catch_on_syntax_test/11: Crash # (throw "catch this!"): Unhandled node
-try_catch_on_syntax_test/none: Crash # (throw "catch this!"): Unhandled node
-try_catch_optimized1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-try_catch_optimized2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-try_catch_optimized3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-try_catch_optimized4_test: Crash # (try {String res=m.maythrow(i);failed=true;}on MyError catch (e){}): "on T" catch block
-try_catch_osr_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-try_catch_syntax_test/02: Crash # (testMissingTry()): Error expression `testMissingTry()` unhandled.
-try_catch_syntax_test/03: Crash # (testMissingTry()): Error expression `testMissingTry()` unhandled.
-try_catch_syntax_test/04: Crash # (testMissingTry()): Error expression `testMissingTry()` unhandled.
-try_catch_syntax_test/06: Crash # (testIllegalFinally()): Error expression `testIllegalFinally()` unhandled.
-try_catch_syntax_test/08: Crash # (try {}on MammaMia catch (e){}): "on T" catch block
-try_catch_test/01: Crash #  "on T" catch block
-try_catch_test/none: Crash # (throw "up"): Unhandled node
-type_argument_in_super_type_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_argument_substitution_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_check_const_function_typedef2_test/00: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_check_const_function_typedef2_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_check_const_function_typedef_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_checks_in_factory_method_test: Crash #  "on T" catch block
-type_check_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_conversion_ssa_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typedef_is_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_equality_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_message_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-typed_selector_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_error_test: Crash #  "on T" catch block
-type_guard_conversion_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_intersection_test: Crash # (throw new ExpectException(message)): Unhandled node
-type_literal_prefix_call_test/00: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_parameter_literal_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_parameter_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_parameter_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_parameter_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_parameter_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_parameter_test/05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_parameter_test/06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_parameter_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_closure_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_closure_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_closure_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_closure_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_closure_test/05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_closure_test/06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_closure_test/07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_closure_test/08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_closure_test/09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_closure_test/10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_closure_test/11: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_closure_test/12: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_closure_test/13: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_closure_test/14: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_closure_test/15: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_closure_test/16: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_closure_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_functions_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_functions_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_functions_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_functions_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_functions_test/05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_functions_test/06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_functions_test/07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_functions_test/08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_functions_test/09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_functions_test/10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_functions_test/11: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_functions_test/12: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_functions_test/13: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_functions_test/14: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_functions_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_more_specific_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_more_specific_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_more_specific_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_more_specific_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_more_specific_test/05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_more_specific_test/06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_more_specific_test/07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_more_specific_test/08: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_more_specific_test/09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_more_specific_test/10: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_more_specific_test/11: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_more_specific_test/12: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_more_specific_test/13: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_promotion_more_specific_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_propagation2_test: Crash # cannot compile methods that need interceptor calling convention.
-type_propagation3_test: Crash # (throw 'Test failed'): Unhandled node
-type_propagation_assert_assignable_test: Crash # (throw new ExpectException(message)): Unhandled node
-type_propagation_in_for_update_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_propagation_phi_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_propagation_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_variable_bounds2_test/00: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_variable_bounds2_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_variable_bounds2_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_variable_bounds2_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_variable_bounds2_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_variable_bounds2_test/05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_variable_bounds2_test/06: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_variable_bounds2_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_variable_bounds3_test/00: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_variable_bounds4_test/01: Crash #  "on T" catch block
-type_variable_bounds4_test/none: Crash #  "on T" catch block
-type_variable_closure2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_variable_closure_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_variable_conflict2_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_variable_conflict2_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_variable_conflict2_test/04: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_variable_conflict2_test/05: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_variable_conflict2_test/07: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_variable_conflict2_test/09: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_variable_field_initializer_closure_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_variable_field_initializer_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_variable_function_type_test: Crash # (throw new ExpectException(message)): Unhandled node
-type_variable_identifier_expression_test: Crash # (try {var buf=new B<A>().doFunc();print(buf);}on NoSuchMethodError catch (e){}): "on T" catch block
-type_variable_initializer_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_variable_nested_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-type_variable_scope2_test: Crash #  "on T" catch block
+temp_mangling_test: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+throw1_test: Crash #  try/finally
+throw2_test: Crash #  try/finally
+throw3_test: Crash #  try/finally
+throw4_test: Crash #  try/finally
+throw5_test: Crash #  try/finally
+throw6_test: Crash #  try/finally
+throw8_test: Crash #  try/finally
+throw_expr_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+throw_test: Crash #  try/finally
+throwing_lazy_variable_test: Crash # unsupported element kind: a:field
+top_level_in_initializer_test: Crash # unable to build cps definition of generative_constructor(Foo#second)
+truncdiv_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+truncdiv_uint32_test: Crash # unsupported element kind: a:field
+try_catch3_test: Crash #  try/finally
+try_catch4_test: Crash #  try/finally
+try_catch5_test: Crash # (try {try {a=8;return;}finally {b=8==a;entered=true;continue;}}finally {continue;}): try/finally
+try_catch_on_syntax_test/07: Crash # Instance of 'TypeOperator': type check unimplemented for UndefinedClass.
+try_catch_optimized1_test: RuntimeError # Please triage this failure.
+try_catch_optimized2_test: Crash # (try {bar();}finally {}): try/finally
+try_catch_optimized3_test: RuntimeError # Please triage this failure.
+try_catch_optimized4_test: Crash # unsupported element kind: a:field
+try_catch_osr_test: Crash # (try {if(x==null)throw 42;return 99;}finally {}): try/finally
+try_catch_syntax_test/08: Crash # Instance of 'TypeOperator': type check unimplemented for MammaMia.
+try_catch_test/01: Crash # Please triage this failure.
+try_catch_test/none: Crash # Please triage this failure.
+type_argument_in_super_type_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+type_argument_substitution_test: Crash # Instance of 'TypeOperator': type check unimplemented for X<A<String>>.
+type_check_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+type_conversion_ssa_test: Crash # unsupported element kind: array:field
+type_error_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+type_guard_conversion_test: Crash # Instance of 'TypeOperator': type check unimplemented for Comparable.
+type_literal_prefix_call_test/00: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+type_parameter_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for Set.
+type_parameter_test/02: Crash # Instance of 'TypeOperator': type check unimplemented for Set.
+type_parameter_test/03: Crash # Instance of 'TypeOperator': type check unimplemented for Set.
+type_parameter_test/04: Crash # Instance of 'TypeOperator': type check unimplemented for Set.
+type_parameter_test/05: Crash # Instance of 'TypeOperator': type check unimplemented for Set.
+type_parameter_test/06: Crash # Instance of 'TypeOperator': type check unimplemented for Set.
+type_parameter_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for Set.
+type_promotion_closure_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for List<B>.
+type_promotion_closure_test/02: Crash # Instance of 'TypeOperator': type check unimplemented for List<B>.
+type_promotion_closure_test/03: Crash # Instance of 'TypeOperator': type check unimplemented for List<B>.
+type_promotion_closure_test/04: Crash # Instance of 'TypeOperator': type check unimplemented for List<B>.
+type_promotion_closure_test/05: Crash # Instance of 'TypeOperator': type check unimplemented for List<B>.
+type_promotion_closure_test/06: Crash # Instance of 'TypeOperator': type check unimplemented for List<B>.
+type_promotion_closure_test/07: Crash # Instance of 'TypeOperator': type check unimplemented for List<B>.
+type_promotion_closure_test/08: Crash # Instance of 'TypeOperator': type check unimplemented for List<B>.
+type_promotion_closure_test/09: Crash # Instance of 'TypeOperator': type check unimplemented for List<B>.
+type_promotion_closure_test/10: Crash # Instance of 'TypeOperator': type check unimplemented for List<B>.
+type_promotion_closure_test/11: Crash # Instance of 'TypeOperator': type check unimplemented for List<B>.
+type_promotion_closure_test/12: Crash # Instance of 'TypeOperator': type check unimplemented for List<B>.
+type_promotion_closure_test/13: Crash # Instance of 'TypeOperator': type check unimplemented for List<B>.
+type_promotion_closure_test/14: Crash # Instance of 'TypeOperator': type check unimplemented for List<B>.
+type_promotion_closure_test/15: Crash # Instance of 'TypeOperator': type check unimplemented for List<B>.
+type_promotion_closure_test/16: Crash # Instance of 'TypeOperator': type check unimplemented for List<B>.
+type_promotion_closure_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for List<B>.
+type_promotion_functions_test/01: Crash # (func): handleStaticFunctionGet: function(func)
+type_promotion_functions_test/02: Crash # (func): handleStaticFunctionGet: function(func)
+type_promotion_functions_test/03: Crash # (func): handleStaticFunctionGet: function(func)
+type_promotion_functions_test/04: Crash # (func): handleStaticFunctionGet: function(func)
+type_promotion_functions_test/05: Crash # (func): handleStaticFunctionGet: function(func)
+type_promotion_functions_test/06: Crash # (func): handleStaticFunctionGet: function(func)
+type_promotion_functions_test/07: Crash # (func): handleStaticFunctionGet: function(func)
+type_promotion_functions_test/08: Crash # (func): handleStaticFunctionGet: function(func)
+type_promotion_functions_test/09: Crash # (func): handleStaticFunctionGet: function(func)
+type_promotion_functions_test/10: Crash # (func): handleStaticFunctionGet: function(func)
+type_promotion_functions_test/11: Crash # (func): handleStaticFunctionGet: function(func)
+type_promotion_functions_test/12: Crash # (func): handleStaticFunctionGet: function(func)
+type_promotion_functions_test/13: Crash # (func): handleStaticFunctionGet: function(func)
+type_promotion_functions_test/14: Crash # (func): handleStaticFunctionGet: function(func)
+type_promotion_functions_test/none: Crash # (func): handleStaticFunctionGet: function(func)
+type_promotion_more_specific_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for E.
+type_promotion_more_specific_test/02: Crash # Instance of 'TypeOperator': type check unimplemented for E.
+type_promotion_more_specific_test/03: Crash # Instance of 'TypeOperator': type check unimplemented for E.
+type_promotion_more_specific_test/04: Crash # Instance of 'TypeOperator': type check unimplemented for E.
+type_promotion_more_specific_test/05: Crash # Instance of 'TypeOperator': type check unimplemented for E.
+type_promotion_more_specific_test/06: Crash # Instance of 'TypeOperator': type check unimplemented for E.
+type_promotion_more_specific_test/07: Crash # Instance of 'TypeOperator': type check unimplemented for E.
+type_promotion_more_specific_test/08: Crash # Instance of 'TypeOperator': type check unimplemented for E.
+type_promotion_more_specific_test/09: Crash # Instance of 'TypeOperator': type check unimplemented for E.
+type_promotion_more_specific_test/10: Crash # Instance of 'TypeOperator': type check unimplemented for E.
+type_promotion_more_specific_test/11: Crash # Instance of 'TypeOperator': type check unimplemented for E.
+type_promotion_more_specific_test/12: Crash # Instance of 'TypeOperator': type check unimplemented for E.
+type_promotion_more_specific_test/13: Crash # Instance of 'TypeOperator': type check unimplemented for E.
+type_promotion_more_specific_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for E.
+type_propagation_in_for_update_test: Crash # (foo1): handleStaticFunctionGet: function(foo1)
+type_variable_bounds2_test/00: Crash # Instance of 'TypeOperator': type check unimplemented for I.
+type_variable_bounds2_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for I.
+type_variable_bounds2_test/02: Crash # Instance of 'TypeOperator': type check unimplemented for I.
+type_variable_bounds2_test/03: Crash # Instance of 'TypeOperator': type check unimplemented for I.
+type_variable_bounds2_test/04: Crash # Instance of 'TypeOperator': type check unimplemented for J.
+type_variable_bounds2_test/05: Crash # Instance of 'TypeOperator': type check unimplemented for K.
+type_variable_bounds2_test/06: Crash # Instance of 'TypeOperator': type check unimplemented for I.
+type_variable_bounds2_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for I.
+type_variable_bounds3_test/00: Crash # Instance of 'TypeOperator': type check unimplemented for A<X>.
+type_variable_closure2_test: Crash # Instance of 'TypeOperator': type check unimplemented for A<int>.
+type_variable_closure_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+type_variable_conflict2_test/03: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+type_variable_conflict2_test/04: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+type_variable_conflict2_test/05: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+type_variable_conflict2_test/07: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+type_variable_conflict2_test/09: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+type_variable_field_initializer_closure_test: Crash # Instance of 'TypeOperator': type check unimplemented for List<int>.
+type_variable_field_initializer_test: Crash # Instance of 'TypeOperator': type check unimplemented for List<int>.
+type_variable_function_type_test: Crash # Instance of 'TypeOperator': type check unimplemented for Func<S>.
+type_variable_initializer_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map<int, int>.
+type_variable_nested_test: Crash # Instance of 'TypeOperator': type check unimplemented for List<int>.
+type_variable_scope2_test: Crash # Instance of 'TypeOperator': type check unimplemented for Foo.
+type_variable_typedef_test: Crash # (foo): handleStaticFunctionGet: function(foo)
+typed_equality_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+typedef_is_test: Crash # Instance of 'TypeOperator': type check unimplemented for Func1.
 typevariable_substitution2_test/01: Crash # Please triage this failure.
-typevariable_substitution2_test/02: Crash #  "on T" catch block
+typevariable_substitution2_test/02: Crash # Please triage this failure.
 typevariable_substitution2_test/none: Crash # Please triage this failure.
-type_variable_typedef_test: Crash # (throw new ExpectException(message)): Unhandled node
-unary2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-unary_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-unicode_bom_middle_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-unicode_hash_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-unnamed_closure_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-unqual_name_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-unresolved_default_constructor_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-unresolved_in_factory_negative_test: Crash # (foo()): Error expression `foo()` unhandled.
+unresolved_default_constructor_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
 unresolved_top_level_method_negative_test: Crash # unsupported element kind: a:field
 unresolved_top_level_var_negative_test: Crash # unsupported element kind: a:field
-value_range2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-value_range3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-value_range_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-variable_declaration_metadata_test/06: Crash # (new C()): Error expression `new C()` unhandled.
-variable_declaration_metadata_test/08: Crash # (new C()): Error expression `new C()` unhandled.
-var_init_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-void_type_test: Crash # (try {var x=func();}on TypeError catch (error){got_type_error=true;}): "on T" catch block
-while_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+value_range2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+value_range3_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+value_range_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+void_type_test: Crash # (f): handleStaticFunctionGet: function(f)
diff --git a/tests/lib/async/deferred/deferred_in_isolate_lib.dart b/tests/lib/async/deferred/deferred_in_isolate_lib.dart
deleted file mode 100644
index 64b38db..0000000
--- a/tests/lib/async/deferred/deferred_in_isolate_lib.dart
+++ /dev/null
@@ -1 +0,0 @@
-String f() => "hi";
diff --git a/tests/lib/async/deferred/deferred_in_isolate_test.dart b/tests/lib/async/deferred/deferred_in_isolate_test.dart
deleted file mode 100644
index 08cd0da..0000000
--- a/tests/lib/async/deferred/deferred_in_isolate_test.dart
+++ /dev/null
@@ -1,21 +0,0 @@
-import 'dart:isolate';
-import 'dart:async';
-import 'package:unittest/unittest.dart';
-
-import 'deferred_in_isolate_lib.dart' deferred as lib;
-
-loadDeferred(port) {
-  lib.loadLibrary().then((_) {
-    port.send(lib.f());
-  });
-}
-
-main() {
-  test("Deferred loading in isolate", () {
-    ReceivePort port = new ReceivePort();
-    port.first.then(expectAsync((msg) {
-       expect(msg, equals("hi"));
-    }));
-    Isolate.spawn(loadDeferred, port.sendPort);
-  });
-}
diff --git a/tests/lib/async/deferred/deferred_library.dart b/tests/lib/async/deferred/deferred_library.dart
deleted file mode 100644
index 186a11a..0000000
--- a/tests/lib/async/deferred/deferred_library.dart
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library deferred_api_library;
-
-foo(x) {
-  print('foo($x)');
-  return 42;
-}
diff --git a/tests/lib/async/future_constructor_test.dart b/tests/lib/async/future_constructor_test.dart
index 64d946c..55193d9 100644
--- a/tests/lib/async/future_constructor_test.dart
+++ b/tests/lib/async/future_constructor_test.dart
@@ -6,7 +6,6 @@
 
 import "package:expect/expect.dart";
 import 'dart:async';
-import 'dart:isolate';
 
 main() {
   compare(func) {
diff --git a/tests/lib/async/stream_controller_async_test.dart b/tests/lib/async/stream_controller_async_test.dart
index 8d61ef9..3fed8a8 100644
--- a/tests/lib/async/stream_controller_async_test.dart
+++ b/tests/lib/async/stream_controller_async_test.dart
@@ -6,7 +6,6 @@
 library stream_controller_async_test;
 
 import 'dart:async';
-import 'dart:isolate';
 import "package:expect/expect.dart";
 import 'package:unittest/unittest.dart';
 import 'event_helper.dart';
diff --git a/tests/lib/async/stream_first_where_test.dart b/tests/lib/async/stream_first_where_test.dart
index 2137a7a..6a35d26 100644
--- a/tests/lib/async/stream_first_where_test.dart
+++ b/tests/lib/async/stream_first_where_test.dart
@@ -6,7 +6,6 @@
 
 import "package:expect/expect.dart";
 import 'dart:async';
-import 'dart:isolate';
 import 'package:unittest/unittest.dart';
 import 'event_helper.dart';
 import 'stream_state_helper.dart';
diff --git a/tests/lib/async/stream_last_where_test.dart b/tests/lib/async/stream_last_where_test.dart
index 790ae62..f001502 100644
--- a/tests/lib/async/stream_last_where_test.dart
+++ b/tests/lib/async/stream_last_where_test.dart
@@ -6,7 +6,6 @@
 
 import "package:expect/expect.dart";
 import 'dart:async';
-import 'dart:isolate';
 import 'package:unittest/unittest.dart';
 import 'event_helper.dart';
 import 'stream_state_helper.dart';
diff --git a/tests/lib/async/stream_single_test.dart b/tests/lib/async/stream_single_test.dart
index 8b3174e..172580b 100644
--- a/tests/lib/async/stream_single_test.dart
+++ b/tests/lib/async/stream_single_test.dart
@@ -7,7 +7,6 @@
 
 import "package:expect/expect.dart";
 import 'dart:async';
-import 'dart:isolate';
 import 'package:unittest/unittest.dart';
 import 'event_helper.dart';
 
diff --git a/tests/lib/async/stream_single_to_multi_subscriber_test.dart b/tests/lib/async/stream_single_to_multi_subscriber_test.dart
index 766f1bd..2063881 100644
--- a/tests/lib/async/stream_single_to_multi_subscriber_test.dart
+++ b/tests/lib/async/stream_single_to_multi_subscriber_test.dart
@@ -7,7 +7,6 @@
 
 import "package:expect/expect.dart";
 import 'dart:async';
-import 'dart:isolate';
 import 'package:unittest/unittest.dart';
 import 'event_helper.dart';
 
diff --git a/tests/lib/async/timer_cancel_test.dart b/tests/lib/async/timer_cancel_test.dart
index 4d17fc4..d539cb7 100644
--- a/tests/lib/async/timer_cancel_test.dart
+++ b/tests/lib/async/timer_cancel_test.dart
@@ -5,7 +5,6 @@
 library timer_cancel_test;
 
 import 'dart:async';
-import 'dart:isolate';
 import 'package:unittest/unittest.dart';
 
 main() {
diff --git a/tests/lib/convert/json_pretty_test.dart b/tests/lib/convert/json_pretty_test.dart
index 0679ff4..a0c3bc6 100644
--- a/tests/lib/convert/json_pretty_test.dart
+++ b/tests/lib/convert/json_pretty_test.dart
@@ -6,12 +6,12 @@
 
 import 'dart:convert';
 
-import 'package:matcher/matcher.dart';
+import "package:expect/expect.dart";
 
 void _testIndentWithNullChar() {
   var encoder = const JsonEncoder.withIndent('\x00');
   var encoded = encoder.convert([[],[[]]]);
-  expect(encoded, "[\n\x00[],\n\x00[\n\x00\x00[]\n\x00]\n]");
+  Expect.equals("[\n\x00[],\n\x00[\n\x00\x00[]\n\x00]\n]", encoded);
 }
 
 void main() {
@@ -91,7 +91,7 @@
   var encoder = const JsonEncoder.withIndent('  ');
   var prettyOutput = encoder.convert(object);
 
-  expect(prettyOutput, expected);
+  Expect.equals(expected, prettyOutput);
 
   encoder = const JsonEncoder.withIndent('');
 
@@ -101,14 +101,14 @@
       .map((line) => line.trimLeft())
       .join('\n');
 
-  expect(flatOutput, flatExpected);
+  Expect.equals(flatExpected, flatOutput);
 
   var compactOutput = JSON.encode(object);
 
   encoder = const JsonEncoder.withIndent(null);
-  expect(encoder.convert(object), compactOutput);
+  Expect.equals(compactOutput, encoder.convert(object));
 
   var prettyDecoded = JSON.decode(prettyOutput);
 
-  expect(JSON.encode(prettyDecoded), compactOutput);
+  Expect.equals(compactOutput, JSON.encode(prettyDecoded));
 }
diff --git a/tests/lib/developer/inspect_test.dart b/tests/lib/developer/inspect_test.dart
new file mode 100644
index 0000000..9f06215
--- /dev/null
+++ b/tests/lib/developer/inspect_test.dart
@@ -0,0 +1,17 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:developer';
+import 'package:expect/expect.dart';
+
+class Point {
+  int x, y;
+  Point(this.x, this.y);
+}
+
+void main() {
+  var p_in = new Point(3, 4);
+  var p_out = inspect(p_in);
+  Expect.isTrue(identical(p_in, p_out));
+}
diff --git a/tests/lib/lib.status b/tests/lib/lib.status
index 750a87f..32c9bd9 100644
--- a/tests/lib/lib.status
+++ b/tests/lib/lib.status
@@ -138,7 +138,6 @@
 async/timer_cancel_test: RuntimeError,OK # Needs Timer to run.
 async/timer_cancel1_test: RuntimeError,OK # Needs Timer to run.
 async/timer_cancel2_test: RuntimeError,OK # Needs Timer to run.
-async/timer_isolate_test: Fail, OK # Needs Timer to run.
 async/timer_repeat_test: RuntimeError,OK # Needs Timer to run.
 async/timer_test: RuntimeError,OK # Needs Timer to run.
 async/stream_controller_async_test: RuntimeError # Timer interface not supported; Issue 7728.
@@ -193,13 +192,6 @@
 [ $runtime == vm ]
 js/*: Skip
 
-[ $compiler == dart2dart ]
-mirrors/*: Skip # Issue 11511
-async/schedule_microtask6_test: Fail             # Issue 10957 - may be related to issue 10910
-
-[ $compiler == dart2dart && $minified ]
-convert/json_lib_test: Fail # Issue 10961
-
 [ $compiler == dart2js && $minified ]
 mirrors/mirrors_used_get_name_test: RuntimeError
 mirrors/mirrors_used_get_name2_test: RuntimeError
@@ -251,7 +243,6 @@
 async/timer_test: Fail, Pass # Issue 15487
 async/multiple_timer_test: Fail, Pass # Issue 15487
 async/stream_periodic3_test: Fail, Pass # Issue 15487
-async/timer_isolate_test: Fail, Pass # Issue 15487. Issue 13921: spawnFunction is not allowed on Dartium's DOM thread.
 async/timer_isActive_test: Fail, Pass # Issue 22352
 mirrors/immutable_collections_test: SkipSlow # Dartium debug uses -O0, so this will just timeout and waste bot cycles.
 mirrors/mirrors_reader_test: SkipSlow # Dartium debug uses -O0, so this will just timeout and waste bot cycles.
@@ -276,14 +267,6 @@
 [ $compiler == dart2js && $runtime == safarimobilesim ]
 mirrors/mirrors_reader_test: SkipSlow # Times out. Issue 20806.
 
-[ $compiler == dart2dart ]
-# Deferred loading is not supported by dart2dart.
-async/deferred/deferred_in_isolate_test: Skip # Issue 17523
-
-[ $compiler == none && ($runtime == drt || $runtime == dartium || $runtime == ContentShellOnAndroid) ]
-# Dart vm does not support spawn from a dom-enabled isolate.
-async/deferred/deferred_in_isolate_test: RuntimeError # Issue 16209
-
 [ $compiler == dart2js && $runtime == jsshell ]
 async/schedule_microtask_test: Fail  # Preamble file does not correctly implement scheduleImmediate.
 
@@ -342,515 +325,367 @@
 convert/streamed_conversion_json_utf8_decode_test: Skip  # Timeout.
 
 [ $compiler == dart2js && $cps_ir ]
-async/catch_errors11_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/catch_errors12_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/catch_errors13_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/catch_errors14_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/catch_errors15_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/catch_errors16_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/catch_errors17_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/catch_errors18_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/catch_errors19_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/catch_errors20_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/catch_errors21_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/catch_errors22_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/catch_errors23_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/catch_errors24_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/catch_errors25_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/catch_errors26_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/catch_errors27_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/catch_errors28_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/catch_errors2_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/catch_errors3_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/catch_errors4_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/catch_errors5_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/catch_errors6_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/catch_errors7_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/catch_errors8_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/catch_errors_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/deferred/deferred_in_isolate_test: Crash # cannot compile methods that need interceptor calling convention.
-async/first_regression_test: Crash # cannot compile methods that need interceptor calling convention.
-async/future_constructor_test: Crash # (throw new ExpectException(message)): Unhandled node
-async/future_delayed_error_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/future_microtask_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/futures_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/future_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/future_timeout_test: Crash # cannot compile methods that need interceptor calling convention.
-async/future_value_chain2_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/future_value_chain3_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/future_value_chain4_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/future_value_chain_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/intercept_print1_test: Crash # (throw new ExpectException(message)): Unhandled node
-async/intercept_schedule_microtask1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-async/intercept_schedule_microtask2_test: Crash # (throw new ExpectException(message)): Unhandled node
-async/intercept_schedule_microtask3_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/intercept_schedule_microtask4_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/intercept_schedule_microtask5_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/intercept_schedule_microtask6_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/multiple_timer_test: Crash # cannot compile methods that need interceptor calling convention.
-async/print_test/01: Crash # cannot compile methods that need interceptor calling convention.
-async/print_test/none: Crash # cannot compile methods that need interceptor calling convention.
-async/run_zoned1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-async/run_zoned4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-async/run_zoned5_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/run_zoned6_test/01: Crash # (rethrow;): Unhandled node
-async/run_zoned6_test/none: Crash # (rethrow;): Unhandled node
-async/run_zoned7_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/run_zoned8_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/run_zoned9_test/01: Crash # (rethrow;): Unhandled node
-async/run_zoned9_test/none: Crash # (rethrow;): Unhandled node
-async/schedule_microtask2_test: Crash # cannot compile methods that need interceptor calling convention.
-async/schedule_microtask3_test: Crash # cannot compile methods that need interceptor calling convention.
-async/schedule_microtask5_test: Crash # cannot compile methods that need interceptor calling convention.
-async/schedule_microtask_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/slow_consumer2_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/slow_consumer3_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/slow_consumer_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/stack_trace01_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/stack_trace02_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/stack_trace03_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/stack_trace04_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/stack_trace05_test: Crash # (throw "should never be reached"): Unhandled node
-async/stack_trace06_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/stack_trace07_test: Crash # (throw "bad things happen"): Unhandled node
-async/stack_trace08_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/stack_trace09_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/stack_trace10_test: Crash # (throw "should never be reached"): Unhandled node
-async/stack_trace11_test: Crash # (throw "Unreachable"): Unhandled node
-async/stack_trace12_test: Crash # (throw "Unreachable"): Unhandled node
-async/stack_trace13_test: Crash # (throw "Unreachable"): Unhandled node
-async/stack_trace14_test: Crash # (throw "Unreachable"): Unhandled node
-async/stack_trace15_test: Crash # (throw "Unreachable"): Unhandled node
-async/stack_trace16_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/stack_trace17_test: Crash # (throw "Unreachable"): Unhandled node
-async/stack_trace18_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/stack_trace19_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/stack_trace20_test: Crash # (throw "should never be reached"): Unhandled node
-async/stack_trace21_test: Crash #  Unhandled node
-async/stack_trace22_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/stack_trace23_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-async/stack_trace24_test: Crash # (throw "should never be reached"): Unhandled node
-async/stack_trace25_test: Crash # (throw "unreachable"): Unhandled node
-async/stream_controller_async_test: Crash # cannot compile methods that need interceptor calling convention.
-async/stream_controller_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/stream_event_transformed_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/stream_first_where_test: Crash # cannot compile methods that need interceptor calling convention.
-async/stream_from_iterable_test: Crash # cannot compile methods that need interceptor calling convention.
-async/stream_iterator_test: Crash # cannot compile methods that need interceptor calling convention.
-async/stream_join_test: Crash # cannot compile methods that need interceptor calling convention.
-async/stream_last_where_test: Crash # cannot compile methods that need interceptor calling convention.
-async/stream_listen_zone_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/stream_periodic2_test: Crash # cannot compile methods that need interceptor calling convention.
-async/stream_periodic3_test: Crash # cannot compile methods that need interceptor calling convention.
-async/stream_periodic4_test: Crash # cannot compile methods that need interceptor calling convention.
-async/stream_periodic5_test: Crash # cannot compile methods that need interceptor calling convention.
-async/stream_periodic_test: Crash # cannot compile methods that need interceptor calling convention.
-async/stream_single_test: Crash # cannot compile methods that need interceptor calling convention.
-async/stream_single_to_multi_subscriber_test: Crash # cannot compile methods that need interceptor calling convention.
-async/stream_state_nonzero_timer_test: Crash # cannot compile methods that need interceptor calling convention.
-async/stream_state_test: Crash # cannot compile methods that need interceptor calling convention.
-async/stream_subscription_as_future_test: Crash # cannot compile methods that need interceptor calling convention.
-async/stream_subscription_cancel_test: Crash # cannot compile methods that need interceptor calling convention.
+async/catch_errors2_test: Crash # (asyncEnd): handleStaticFunctionGet: function(asyncEnd)
+async/catch_errors3_test: Crash # (asyncEnd): handleStaticFunctionGet: function(asyncEnd)
+async/catch_errors_test: Crash # (asyncEnd): handleStaticFunctionGet: function(asyncEnd)
+async/deferred/deferred_in_isolate_test: Crash # (loadDeferred): handleStaticFunctionGet: function(loadDeferred)
+async/first_regression_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+async/future_timeout_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+async/future_value_chain4_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+async/intercept_print1_test: Crash # unsupported element kind: events:field
+async/intercept_schedule_microtask2_test: Crash # (body): handleStaticFunctionGet: function(body)
+async/intercept_schedule_microtask3_test: Crash # (body): handleStaticFunctionGet: function(body)
+async/intercept_schedule_microtask4_test: Crash # (body): handleStaticFunctionGet: function(body)
+async/intercept_schedule_microtask5_test: Crash # (handler): handleStaticFunctionGet: function(handler)
+async/intercept_schedule_microtask6_test: Crash # (body): handleStaticFunctionGet: function(body)
+async/multiple_timer_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+async/print_test/01: Crash # (interceptedPrint): handleStaticFunctionGet: function(interceptedPrint)
+async/print_test/none: Crash # (interceptedPrint): handleStaticFunctionGet: function(interceptedPrint)
+async/schedule_microtask2_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+async/schedule_microtask3_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+async/schedule_microtask5_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+async/schedule_microtask_test: Crash # Please triage this failure.
+async/stack_trace09_test: Crash # (asyncEnd): handleStaticFunctionGet: function(asyncEnd)
+async/stream_controller_async_test: Crash # unsupported element kind: _defaultEnvironment:field
+async/stream_controller_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+async/stream_event_transformed_test: Crash # (asyncEnd): handleStaticFunctionGet: function(asyncEnd)
+async/stream_first_where_test: Crash # unsupported element kind: _defaultEnvironment:field
+async/stream_from_iterable_test: Crash # unsupported element kind: _defaultEnvironment:field
+async/stream_iterator_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+async/stream_join_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+async/stream_last_where_test: Crash # unsupported element kind: _defaultEnvironment:field
+async/stream_listen_zone_test: Crash #  Unhandled node
+async/stream_periodic2_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+async/stream_periodic3_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+async/stream_periodic4_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+async/stream_periodic5_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+async/stream_periodic_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+async/stream_single_test: Crash # unsupported element kind: _defaultEnvironment:field
+async/stream_single_to_multi_subscriber_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+async/stream_state_nonzero_timer_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+async/stream_state_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+async/stream_subscription_as_future_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+async/stream_subscription_cancel_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
 async/stream_timeout_test: Crash # Please triage this failure.
-async/stream_transformation_broadcast_test: Crash # cannot compile methods that need interceptor calling convention.
-async/stream_transformer_from_handlers_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/stream_transformer_test: Crash # (throw new ExpectException(message)): Unhandled node
-async/stream_transform_test: Crash # cannot compile methods that need interceptor calling convention.
-async/stream_zones_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/timer_cancel1_test: Crash # cannot compile methods that need interceptor calling convention.
-async/timer_cancel2_test: Crash # cannot compile methods that need interceptor calling convention.
-async/timer_cancel_test: Crash # cannot compile methods that need interceptor calling convention.
-async/timer_isActive_test: Crash # cannot compile methods that need interceptor calling convention.
-async/timer_isolate_test: Crash # cannot compile methods that need interceptor calling convention.
-async/timer_not_available_test: Crash # (try {new Timer(ms*5,(){});}on UnsupportedError catch (e){failed=true;}): "on T" catch block
+async/stream_transform_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+async/stream_transformation_broadcast_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+async/stream_transformer_from_handlers_test: Crash # (asyncEnd): handleStaticFunctionGet: function(asyncEnd)
+async/stream_transformer_test: Crash # (_defaultData): handleStaticFunctionGet: function(_defaultData)
+async/timer_cancel1_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+async/timer_cancel2_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+async/timer_cancel_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+async/timer_isActive_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+async/timer_isolate_test: Crash # (createTimer): handleStaticFunctionGet: function(createTimer)
 async/timer_regress22626_test: Crash # unsupported element kind: rng:field
-async/timer_repeat_test: Crash # cannot compile methods that need interceptor calling convention.
-async/timer_test: Crash # cannot compile methods that need interceptor calling convention.
-async/zone_bind_callback_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-async/zone_bind_callback_unary_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-async/zone_bind_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/zone_create_periodic_timer_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/zone_create_timer2_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/zone_create_timer_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/zone_debug_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/zone_empty_description2_test: Crash # (throw new ExpectException(message)): Unhandled node
-async/zone_empty_description_test: Crash # (throw new ExpectException(message)): Unhandled node
-async/zone_error_callback_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/zone_fork_test: Crash # (throw new ExpectException(message)): Unhandled node
-async/zone_future_schedule_microtask_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/zone_register_callback_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-async/zone_register_callback_unary_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-async/zone_root_bind_test: Crash # (throw new ExpectException(message)): Unhandled node
-async/zone_run_guarded_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/zone_run_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/zone_run_unary_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-async/zone_value_test: Crash # (throw new ExpectException(message)): Unhandled node
-collection/hash_map_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-collection/hash_set_test: Crash # (throw new ExpectException(message)): Unhandled node
-collection/linked_list_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-convert/ascii_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-convert/chunked_conversion1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-convert/chunked_conversion2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-convert/chunked_conversion_json_decode1_test: Crash # (throw new ExpectException(message)): Unhandled node
-convert/chunked_conversion_json_encode1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-convert/chunked_conversion_utf82_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-convert/chunked_conversion_utf83_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-convert/chunked_conversion_utf84_test: Crash # (throw new ExpectException(message)): Unhandled node
-convert/chunked_conversion_utf85_test: Crash # (throw new ExpectException(message)): Unhandled node
-convert/chunked_conversion_utf86_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-convert/chunked_conversion_utf87_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-convert/chunked_conversion_utf88_test: Crash # (throw new ExpectException(message)): Unhandled node
-convert/chunked_conversion_utf89_test: Crash # (throw new ExpectException(message)): Unhandled node
-convert/chunked_conversion_utf8_test: Crash # (throw new ExpectException(message)): Unhandled node
-convert/codec1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-convert/codec2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-convert/encoding_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-convert/html_escape_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-convert/json_chunk_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-convert/json_lib_test: Crash # cannot compile methods that need interceptor calling convention.
-convert/json_pretty_test: Crash # Please triage this failure.
-convert/json_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-convert/json_toEncodable_reviver_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-convert/json_utf8_chunk_test: Crash #  "on T" catch block
-convert/json_util_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-convert/latin1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-convert/line_splitter_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-convert/streamed_conversion_json_decode1_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-convert/streamed_conversion_json_encode1_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-convert/streamed_conversion_json_utf8_decode_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-convert/streamed_conversion_json_utf8_encode_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-convert/streamed_conversion_utf8_decode_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-convert/streamed_conversion_utf8_encode_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-convert/utf82_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-convert/utf83_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-convert/utf84_test: Crash # (throw new ExpectException(message)): Unhandled node
-convert/utf85_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-convert/utf8_encode_test: Crash # (throw new ExpectException(message)): Unhandled node
-convert/utf8_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-js/datetime_roundtrip_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-js/null_test: Crash # cannot compile methods that need interceptor calling convention.
-math/coin_test: Crash # (throw new ExpectException(message)): Unhandled node
-math/double_pow_test: Crash # (throw new ExpectException(message)): Unhandled node
-math/low_test: Crash # (throw new ExpectException(message)): Unhandled node
-math/math2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-math/math_parse_double_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-math/math_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-math/min_max_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-math/pi_test: Crash # (throw new ExpectException(message)): Unhandled node
-math/point_test: Crash # cannot compile methods that need interceptor calling convention.
-math/random_big_test: Crash # (throw new ExpectException(message)): Unhandled node
-math/random_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+async/timer_repeat_test: Crash # (timeoutHandler): handleStaticFunctionGet: function(timeoutHandler)
+async/timer_test: Crash # (timeoutHandler): handleStaticFunctionGet: function(timeoutHandler)
+async/zone_debug_test: Crash # unsupported element kind: events:field
+async/zone_error_callback_test: Crash # unsupported element kind: replaceZoneSpec:field
+collection/linked_list_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+convert/ascii_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+convert/chunked_conversion2_test: RuntimeError # Please triage this failure.
+convert/chunked_conversion_json_decode1_test: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+convert/chunked_conversion_json_encode1_test: Crash # unsupported element kind: TESTS:field
+convert/chunked_conversion_utf82_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+convert/chunked_conversion_utf84_test: Crash # unsupported element kind: UNICODE_TESTS:field
+convert/chunked_conversion_utf85_test: Crash # unsupported element kind: UNICODE_TESTS:field
+convert/chunked_conversion_utf86_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+convert/chunked_conversion_utf87_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+convert/chunked_conversion_utf8_test: Crash # unsupported element kind: UNICODE_TESTS:field
+convert/codec2_test: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+convert/encoding_test: Crash # unsupported element kind: UNICODE_TESTS:field
+convert/json_chunk_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+convert/json_lib_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+convert/json_test: Crash # (badFormat): handleStaticFunctionGet: function(badFormat)
+convert/json_toEncodable_reviver_test: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+convert/json_utf8_chunk_test: Crash # unsupported element kind: UNICODE_TESTS:field
+convert/json_util_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+convert/latin1_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+convert/line_splitter_test: Crash # Please triage this failure.
+convert/streamed_conversion_json_decode1_test: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+convert/streamed_conversion_json_encode1_test: Crash # unsupported element kind: TESTS:field
+convert/streamed_conversion_json_utf8_decode_test: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+convert/streamed_conversion_json_utf8_encode_test: Crash # unsupported element kind: JSON_UTF8:field
+convert/streamed_conversion_utf8_decode_test: Crash # unsupported element kind: UNICODE_TESTS:field
+convert/streamed_conversion_utf8_encode_test: Crash # unsupported element kind: UNICODE_TESTS:field
+convert/utf82_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+convert/utf8_encode_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+convert/utf8_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+js/null_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+math/double_pow_test: Crash # unsupported element kind: samples:field
+math/math_parse_double_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+math/min_max_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+math/point_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+math/random_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
 math/rectangle_test: Crash # Please triage this failure.
-mirrors/abstract_class_test/00: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/abstract_class_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/abstract_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/accessor_cache_overflow_test: Crash # cannot compile methods that need interceptor calling convention.
-mirrors/basic_types_in_dart_core_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/circular_factory_redirection_test/01: Crash # (new A.circular()): Error expression `new A.circular()` unhandled.
-mirrors/circular_factory_redirection_test/02: Crash # (new A.circular2()): Error expression `new A.circular2()` unhandled.
-mirrors/circular_factory_redirection_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/class_declarations_test/01: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/class_declarations_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/class_mirror_location_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/class_mirror_type_variables_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/closures_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/closurization_equivalence_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/constructor_kinds_test/01: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/constructor_kinds_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/constructor_private_name_test: Crash # cannot compile methods that need interceptor calling convention.
-mirrors/constructors_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/dart2js_mirrors_test: Crash # (throw new StateError('FAILED: ${name}.\n${e}\n${trace}')): Unhandled node
-mirrors/declarations_type_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/deferred_mirrors_metadata_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-mirrors/deferred_mirrors_metatarget_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-mirrors/deferred_mirrors_update_test: Crash # handleStaticGetterInvoke: foreign: function(loadLibrary)
-mirrors/deferred_type_test: Crash # handleStaticFunctionGet: function(bad)
-mirrors/delegate_call_through_getter_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/delegate_function_invocation_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/delegate_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/enum_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/equality_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/fake_function_with_call_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/fake_function_without_call_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/field_type_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/function_type_mirror_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/generic_bounded_by_type_parameter_test/01: Crash # (try {}on TypeError catch (e){Expect.isTrue(inCheckedMode());}): "on T" catch block
-mirrors/generic_bounded_by_type_parameter_test/02: Crash #  "on T" catch block
-mirrors/generic_bounded_by_type_parameter_test/none: Crash # (try {}on TypeError catch (e){Expect.isTrue(inCheckedMode());}): "on T" catch block
-mirrors/generic_bounded_test/01: Crash # (try {}on TypeError catch (e){Expect.isTrue(inCheckedMode());}): "on T" catch block
-mirrors/generic_bounded_test/02: Crash #  "on T" catch block
-mirrors/generic_bounded_test/none: Crash # (try {}on TypeError catch (e){Expect.isTrue(inCheckedMode());}): "on T" catch block
-mirrors/generic_class_declaration_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/generic_f_bounded_mixin_application_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/generic_f_bounded_test/01: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/generic_f_bounded_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/generic_function_typedef_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/generic_interface_test/01: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/generic_interface_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/generic_list_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/generic_local_function_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/generic_mixin_applications_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/generic_mixin_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/generics_double_substitution_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/generics_double_substitution_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/generics_dynamic_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/generics_special_types_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/generics_substitution_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/generics_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/generics_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/generic_superclass_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/generic_superclass_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/generic_type_mirror_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/get_field_cache_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/get_field_static_test/00: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/get_field_static_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/get_field_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/get_symbol_name_no_such_method_test: Crash # (throw 'Expected: "${expected}", but got "${actual}"'): Unhandled node
-mirrors/globalized_closures2_test/00: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/globalized_closures2_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/globalized_closures_test/00: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/globalized_closures_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/hierarchy_invariants_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/hot_get_field_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/hot_set_field_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/immutable_collections_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/inference_and_no_such_method_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/inherited_metadata_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/inherit_field_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/initializing_formals_test/01: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/initializing_formals_test/03: Crash # cannot compile methods that need interceptor calling convention.
-mirrors/initializing_formals_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/instance_members_easier_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/instance_members_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/instance_members_unimplemented_interface_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/instance_members_with_override_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/instantiate_abstract_class_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/intercepted_cache_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/intercepted_class_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/intercepted_object_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/intercepted_superclass_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/invocation_cache_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/invocation_fuzz_test/emptyarray: Crash # unsupported element kind: queue:field
-mirrors/invocation_fuzz_test/false: Crash # unsupported element kind: queue:field
-mirrors/invocation_fuzz_test/none: Crash # unsupported element kind: queue:field
-mirrors/invocation_fuzz_test/smi: Crash # unsupported element kind: queue:field
-mirrors/invocation_fuzz_test/string: Crash # unsupported element kind: queue:field
-mirrors/invoke_call_on_closure_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/invoke_call_through_getter_previously_accessed_test/named: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/invoke_call_through_getter_previously_accessed_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/invoke_call_through_getter_test/named: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/invoke_call_through_getter_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/invoke_call_through_implicit_getter_previously_accessed_test/named: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/invoke_call_through_implicit_getter_previously_accessed_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/invoke_call_through_implicit_getter_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/invoke_closurization2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/invoke_closurization_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/invoke_import_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/invoke_named_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/invoke_named_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/invoke_natives_malicious_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/invoke_private_test: Crash # cannot compile methods that need interceptor calling convention.
-mirrors/invoke_private_wrong_library_test: Crash #  Unhandled node
-mirrors/invoke_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/invoke_throws_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/is_odd_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/lazy_static_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/libraries_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/library_declarations_test/01: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/library_declarations_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/library_enumeration_deferred_loading_test: Crash # handleStaticGetterInvoke: foreign: function(loadLibrary)
-mirrors/library_exports_hidden_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/library_exports_shown_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/library_import_deferred_loading_test: Crash # handleStaticGetterInvoke: foreign: function(loadLibrary)
-mirrors/library_imports_bad_metadata_test/01: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/library_imports_bad_metadata_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/library_imports_deferred_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/library_imports_hidden_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/library_imports_metadata_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/library_imports_prefixed_show_hide_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/library_imports_prefixed_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/library_imports_shown_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/library_uri_package_test: Crash # cannot compile methods that need interceptor calling convention.
-mirrors/list_constructor_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/list_constructor_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/load_library_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/local_function_is_static_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/local_isolate_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/metadata_allowed_values_test/01: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_allowed_values_test/02: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_allowed_values_test/03: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_allowed_values_test/04: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_allowed_values_test/05: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_allowed_values_test/06: Crash # (I): Error expression `I` unhandled.
-mirrors/metadata_allowed_values_test/07: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_allowed_values_test/08: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_allowed_values_test/09: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_allowed_values_test/10: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_allowed_values_test/11: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_allowed_values_test/13: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_allowed_values_test/14: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_allowed_values_test/15: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_allowed_values_test/16: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_allowed_values_test/23: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_allowed_values_test/24: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_allowed_values_test/25: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_allowed_values_test/26: Crash # (JJ): Error expression `JJ` unhandled.
-mirrors/metadata_allowed_values_test/27: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_allowed_values_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_constructed_constant_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_constructor_arguments_test/01: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_constructor_arguments_test/02: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_constructor_arguments_test/03: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_constructor_arguments_test/04: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_constructor_arguments_test/05: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_constructor_arguments_test/06: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_constructor_arguments_test/07: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_constructor_arguments_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_nested_constructor_call_test/01: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_nested_constructor_call_test/02: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_nested_constructor_call_test/03: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_nested_constructor_call_test/04: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_nested_constructor_call_test/05: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_nested_constructor_call_test/06: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_nested_constructor_call_test/07: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_nested_constructor_call_test/08: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_nested_constructor_call_test/09: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/metadata_nested_constructor_call_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/method_mirror_location_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/method_mirror_name_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/method_mirror_properties_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/method_mirror_returntype_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/method_mirror_source_line_ending_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/method_mirror_source_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+mirrors/abstract_class_test/00: Crash # (baz): handleStaticFunctionGet: function(baz)
+mirrors/abstract_class_test/none: Crash # (baz): handleStaticFunctionGet: function(baz)
+mirrors/abstract_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+mirrors/accessor_cache_overflow_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/basic_types_in_dart_core_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/circular_factory_redirection_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/circular_factory_redirection_test/02: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/circular_factory_redirection_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/class_declarations_test/01: Crash # (stringify): handleStaticFunctionGet: function(stringify)
+mirrors/class_declarations_test/none: Crash # (stringify): handleStaticFunctionGet: function(stringify)
+mirrors/class_mirror_location_test: Crash # (main): handleStaticFunctionGet: function(main)
+mirrors/class_mirror_type_variables_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/closures_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+mirrors/closurization_equivalence_test: Crash # (topLevelMethod): handleStaticFunctionGet: function(topLevelMethod)
+mirrors/constructor_kinds_test/01: Crash # (=Class.factoryConstructor;): Unhandled node
+mirrors/constructor_kinds_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/constructor_private_name_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/constructors_test: Crash # (compareSymbols): handleStaticFunctionGet: function(compareSymbols)
+mirrors/dart2js_mirrors_test: Crash # Instance of 'TypeOperator': type check unimplemented for Class.
+mirrors/declarations_type_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map<Symbol, DeclarationMirror>.
+mirrors/deferred_mirrors_metadata_test: Crash # (lib1.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+mirrors/deferred_mirrors_metatarget_test: Crash # (lib.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+mirrors/deferred_mirrors_update_test: Crash # (l.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+mirrors/deferred_type_test: Crash # (bad): handleStaticFunctionGet: function(bad)
+mirrors/delegate_call_through_getter_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/delegate_function_invocation_test: Crash # (topLevelFunction): handleStaticFunctionGet: function(topLevelFunction)
+mirrors/delegate_test: RuntimeError # Please triage this failure.
+mirrors/enum_test: Crash # (stringify): handleStaticFunctionGet: function(stringify)
+mirrors/equality_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+mirrors/fake_function_with_call_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/fake_function_without_call_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/field_type_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/function_type_mirror_test: Crash # (bar): handleStaticFunctionGet: function(bar)
+mirrors/generic_bounded_by_type_parameter_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/generic_bounded_by_type_parameter_test/02: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/generic_bounded_by_type_parameter_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/generic_bounded_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/generic_bounded_test/02: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/generic_bounded_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/generic_class_declaration_test: Crash # (stringify): handleStaticFunctionGet: function(stringify)
+mirrors/generic_f_bounded_mixin_application_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/generic_f_bounded_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/generic_f_bounded_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/generic_function_typedef_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+mirrors/generic_interface_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/generic_interface_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/generic_list_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/generic_local_function_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/generic_mixin_applications_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/generic_mixin_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/generic_superclass_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/generic_superclass_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/generic_type_mirror_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/generics_double_substitution_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/generics_double_substitution_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/generics_dynamic_test: Crash # Please triage this failure.
+mirrors/generics_special_types_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/generics_substitution_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+mirrors/generics_test/01: Crash # Please triage this failure.
+mirrors/generics_test/none: Crash # Please triage this failure.
+mirrors/globalized_closures2_test/00: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/globalized_closures2_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/globalized_closures_test/00: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/globalized_closures_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/hierarchy_invariants_test: Crash # (checkLibrary): handleStaticFunctionGet: function(checkLibrary)
+mirrors/hot_get_field_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/hot_set_field_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/immutable_collections_test: Crash # (checkLibrary): handleStaticFunctionGet: function(checkLibrary)
+mirrors/inference_and_no_such_method_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/inherit_field_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+mirrors/inherited_metadata_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+mirrors/initializing_formals_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/initializing_formals_test/03: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/initializing_formals_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/instance_members_easier_test: Crash # (=Superclass.inheritedNormalFactory;): Unhandled node
+mirrors/instance_members_test: Crash # (=Superclass.inheritedNormalFactory;): Unhandled node
+mirrors/instance_members_unimplemented_interface_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/instance_members_with_override_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/instantiate_abstract_class_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/intercepted_cache_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/intercepted_class_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+mirrors/intercepted_object_test: Crash # Instance of 'TypeOperator': type check unimplemented for List.
+mirrors/intercepted_superclass_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/invocation_fuzz_test/emptyarray: Crash # (checkLibrary): handleStaticFunctionGet: function(checkLibrary)
+mirrors/invocation_fuzz_test/false: Crash # (checkLibrary): handleStaticFunctionGet: function(checkLibrary)
+mirrors/invocation_fuzz_test/none: Crash # (checkLibrary): handleStaticFunctionGet: function(checkLibrary)
+mirrors/invocation_fuzz_test/smi: Crash # (checkLibrary): handleStaticFunctionGet: function(checkLibrary)
+mirrors/invocation_fuzz_test/string: Crash # (checkLibrary): handleStaticFunctionGet: function(checkLibrary)
+mirrors/invoke_call_on_closure_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/invoke_call_through_getter_previously_accessed_test/named: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/invoke_call_through_getter_previously_accessed_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/invoke_call_through_getter_test/named: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/invoke_call_through_getter_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/invoke_call_through_implicit_getter_previously_accessed_test/named: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/invoke_call_through_implicit_getter_previously_accessed_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/invoke_call_through_implicit_getter_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/invoke_closurization2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/invoke_closurization_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/invoke_import_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/invoke_named_test/01: Crash # (a): handleStaticFunctionGet: function(a)
+mirrors/invoke_named_test/none: Crash # (a): handleStaticFunctionGet: function(a)
+mirrors/invoke_natives_malicious_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/invoke_private_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/invoke_private_wrong_library_test: Crash # (asyncSuccess): handleStaticFunctionGet: function(asyncSuccess)
+mirrors/invoke_test: Crash # (isNoSuchMethodError): handleStaticFunctionGet: function(isNoSuchMethodError)
+mirrors/invoke_throws_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/is_odd_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/lazy_static_test: Crash # unsupported element kind: hello:field
+mirrors/libraries_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/library_declarations_test/01: Crash # (stringify): handleStaticFunctionGet: function(stringify)
+mirrors/library_declarations_test/none: Crash # (stringify): handleStaticFunctionGet: function(stringify)
+mirrors/library_enumeration_deferred_loading_test: Crash # (other.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+mirrors/library_exports_hidden_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+mirrors/library_exports_shown_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+mirrors/library_import_deferred_loading_test: Crash # (other.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+mirrors/library_imports_bad_metadata_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/library_imports_bad_metadata_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/library_imports_deferred_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+mirrors/library_imports_hidden_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+mirrors/library_imports_metadata_test: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/library_imports_prefixed_show_hide_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+mirrors/library_imports_prefixed_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+mirrors/library_imports_shown_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+mirrors/library_uri_package_test: Crash # (_defaultErrorFormatter): handleStaticFunctionGet: function(_defaultErrorFormatter)
+mirrors/list_constructor_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/list_constructor_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/load_library_test: Crash # (asyncSuccess): handleStaticFunctionGet: function(asyncSuccess)
+mirrors/local_function_is_static_test: Crash # (topLevel): handleStaticFunctionGet: function(topLevel)
+mirrors/local_isolate_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/metadata_allowed_values_test/01: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_allowed_values_test/02: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_allowed_values_test/03: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_allowed_values_test/04: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_allowed_values_test/05: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_allowed_values_test/06: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_allowed_values_test/07: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_allowed_values_test/08: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_allowed_values_test/09: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_allowed_values_test/10: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_allowed_values_test/11: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_allowed_values_test/13: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_allowed_values_test/14: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_allowed_values_test/15: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_allowed_values_test/16: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_allowed_values_test/23: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_allowed_values_test/24: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_allowed_values_test/25: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_allowed_values_test/26: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_allowed_values_test/27: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_allowed_values_test/none: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_constructed_constant_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/metadata_constructor_arguments_test/01: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_constructor_arguments_test/02: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_constructor_arguments_test/03: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_constructor_arguments_test/04: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_constructor_arguments_test/05: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_constructor_arguments_test/06: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_constructor_arguments_test/07: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_constructor_arguments_test/none: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_nested_constructor_call_test/01: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_nested_constructor_call_test/02: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_nested_constructor_call_test/03: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_nested_constructor_call_test/04: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_nested_constructor_call_test/05: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_nested_constructor_call_test/06: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_nested_constructor_call_test/07: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_nested_constructor_call_test/08: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_nested_constructor_call_test/09: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/metadata_nested_constructor_call_test/none: Crash # (reflect): handleStaticFunctionGet: origin function(reflect)
+mirrors/method_mirror_location_test: Crash # (topLevelInMainFile): handleStaticFunctionGet: function(topLevelInMainFile)
+mirrors/method_mirror_name_test: Crash # (doNothing42): handleStaticFunctionGet: function(doNothing42)
+mirrors/method_mirror_properties_test: Crash # (doNothing42): handleStaticFunctionGet: function(doNothing42)
+mirrors/method_mirror_returntype_test: Crash # (intFunc): handleStaticFunctionGet: function(intFunc)
+mirrors/method_mirror_source_line_ending_test: Crash # (oneLineLF): handleStaticFunctionGet: function(oneLineLF)
+mirrors/method_mirror_source_test: Crash # Instance of 'TypeOperator': type casts not implemented.
 mirrors/mirror_in_static_init_test/01: Crash # unsupported element kind: staticField:field
 mirrors/mirror_in_static_init_test/none: Crash # unsupported element kind: staticField:field
-mirrors/mirrors_nsm_test/dart2js: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/mirrors_nsm_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/mirrors_reader_test: Crash # (throw 'Unexpected errors occurred reading mirrors.'): Unhandled node
-mirrors/mirrors_resolve_fields_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/mirrors_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/mirrors_used_get_name2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/mirrors_used_get_name_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/mirrors_used_inheritance_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/mirrors_used_typedef_declaration_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/mirrors_used_typedef_declaration_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/mixin_application_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/mixin_members_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/mixin_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/model_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/native_class_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/new_instance_optional_arguments_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/new_instance_with_type_arguments_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/no_metadata_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/null2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/null_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/operator_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/optional_parameters_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/parameter_annotation_mirror_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/parameter_is_const_test/01: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/parameter_is_const_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/parameter_metadata_test: Crash # (throw 'Null metadata on ${mirror}'): Unhandled node
-mirrors/parameter_of_mixin_app_constructor_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/parameter_test/01: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/parameter_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/private_symbol_mangling_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/private_symbol_test: Crash # cannot compile methods that need interceptor calling convention.
-mirrors/private_types_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/proxy_type_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/raw_type_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/raw_type_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/redirecting_factory_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/redirecting_factory_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/redirecting_factory_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/reflect_class_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/reflect_class_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/reflect_class_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/reflected_type_classes_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/reflected_type_classes_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/reflected_type_classes_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/reflected_type_classes_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/reflected_type_function_type_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/reflected_type_special_types_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/reflected_type_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/reflected_type_test/02: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/reflected_type_test/03: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/reflected_type_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/reflected_type_typedefs_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/reflected_type_typevars_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/reflectively_instantiate_uninstantiated_class_test: Crash #  "on T" catch block
-mirrors/reflect_model_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/reflect_two_classes_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/regress_14304_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/regress_19731_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/relation_assignable_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/relation_subclass_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/relation_subtype_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/removed_api_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/repeated_private_anon_mixin_app_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/return_type_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/runtime_type_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/set_field_with_final_inheritance_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/set_field_with_final_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/spawn_function_root_library_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/static_members_easier_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/static_members_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/static_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/superclass2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/superclass_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/symbol_validation_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/symbol_validation_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/synthetic_accessor_properties_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/top_level_accessors_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/to_string_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/type_argument_is_type_variable_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/typearguments_mirror_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/typedef_deferred_library_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-mirrors/typedef_in_signature_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/typedef_library_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/typedef_metadata_test: Crash # (throw 'Null metadata on ${mirror}'): Unhandled node
-mirrors/typedef_reflected_type_test/01: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/typedef_reflected_type_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/typedef_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/type_mirror_for_type_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/type_variable_is_static_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/type_variable_owner_test/01: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/type_variable_owner_test/none: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/unmangled_type_test: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/unnamed_library_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-mirrors/variable_is_const_test/01: Crash # (throw new ExpectException(message)): Unhandled node
-mirrors/variable_is_const_test/none: Crash # (throw new ExpectException(message)): Unhandled node
-profiler/metrics_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-profiler/user_tags_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/byte_data_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/constructor_checks_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/endianness_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/float32x4_clamp_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/float32x4_cross_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/float32x4_list_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/float32x4_shuffle_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/float32x4_sign_mask_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/float32x4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/float32x4_transpose_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/float32x4_two_arg_shuffle_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/float32x4_unbox_phi_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/float32x4_unbox_regress_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/float64x2_functional_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/int32x4_arithmetic_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/int32x4_bigint_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/int32x4_list_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/int32x4_shuffle_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/int32x4_sign_mask_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/int32x4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/int64_list_load_store_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/setRange_1_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/setRange_2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/setRange_3_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/setRange_4_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/setRange_5_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/simd_store_to_load_forward_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/typed_data_hierarchy_int64_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/typed_data_hierarchy_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/typed_data_list_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/typed_data_load2_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/typed_data_sublist_type_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-typed_data/typed_list_iterable_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+mirrors/mirrors_nsm_test/dart2js: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/mirrors_nsm_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/mirrors_reader_test: Crash # Instance of 'TypeOperator': type check unimplemented for Iterable.
+mirrors/mirrors_resolve_fields_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/mirrors_test: Crash # Instance of 'TypeOperator': type check unimplemented for Class.
+mirrors/mirrors_used_inheritance_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/mixin_application_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+mirrors/mixin_members_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+mirrors/mixin_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/model_test: Crash # (isNoSuchMethodError): handleStaticFunctionGet: function(isNoSuchMethodError)
+mirrors/native_class_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+mirrors/new_instance_with_type_arguments_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/no_metadata_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+mirrors/null2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/null_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/operator_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+mirrors/parameter_is_const_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/parameter_is_const_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/parameter_of_mixin_app_constructor_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+mirrors/parameter_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+mirrors/parameter_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+mirrors/private_symbol_mangling_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/private_symbol_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/private_types_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+mirrors/proxy_type_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/raw_type_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/raw_type_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/redirecting_factory_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for Class<String, int>.
+mirrors/redirecting_factory_test/02: Crash # Instance of 'TypeOperator': type check unimplemented for Class<String, int>.
+mirrors/redirecting_factory_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for Class<String, int>.
+mirrors/reflect_class_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/reflect_class_test/02: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/reflect_class_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/reflect_model_test: Crash # (isNoSuchMethodError): handleStaticFunctionGet: function(isNoSuchMethodError)
+mirrors/reflected_type_classes_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/reflected_type_classes_test/02: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/reflected_type_classes_test/03: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/reflected_type_classes_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/reflected_type_function_type_test: Crash # (somePredicate): handleStaticFunctionGet: function(somePredicate)
+mirrors/reflected_type_special_types_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/reflected_type_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/reflected_type_test/02: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/reflected_type_test/03: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/reflected_type_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/reflected_type_typedefs_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/reflected_type_typevars_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/regress_14304_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/regress_19731_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/relation_assignable_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+mirrors/relation_subclass_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+mirrors/relation_subtype_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+mirrors/removed_api_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/repeated_private_anon_mixin_app_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/return_type_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+mirrors/set_field_with_final_inheritance_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/set_field_with_final_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/spawn_function_root_library_test: Crash # (child): handleStaticFunctionGet: function(child)
+mirrors/static_members_easier_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+mirrors/static_members_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+mirrors/static_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+mirrors/superclass2_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/superclass_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/symbol_validation_test/01: Crash # (validSymbol): handleStaticFunctionGet: function(validSymbol)
+mirrors/symbol_validation_test/none: Crash # (validSymbol): handleStaticFunctionGet: function(validSymbol)
+mirrors/synthetic_accessor_properties_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+mirrors/to_string_test: Crash # (main): handleStaticFunctionGet: function(main)
+mirrors/top_level_accessors_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/type_argument_is_type_variable_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/type_mirror_for_type_test: Crash # Instance of 'TypeOperator': type check unimplemented for C<Type>.
+mirrors/type_variable_is_static_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/type_variable_owner_test/01: Crash # Instance of 'TypeOperator': type casts not implemented.
+mirrors/type_variable_owner_test/none: Crash # Instance of 'TypeOperator': type casts not implemented.
+mirrors/typearguments_mirror_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+mirrors/typedef_deferred_library_test: Crash # (def.loadLibrary()): handleStaticGetterInvoke: foreign: function(loadLibrary)
+mirrors/typedef_reflected_type_test/01: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+mirrors/typedef_reflected_type_test/none: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+mirrors/unnamed_library_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+mirrors/variable_is_const_test/01: Crash # Instance of 'TypeOperator': type casts not implemented.
+mirrors/variable_is_const_test/none: Crash # Instance of 'TypeOperator': type casts not implemented.
+profiler/metrics_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+profiler/user_tags_test: Crash # (testExhaust): handleStaticFunctionGet: function(testExhaust)
+typed_data/constructor_checks_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+typed_data/float32x4_list_test: Crash # Instance of 'TypeOperator': type check unimplemented for List<Float32x4>.
+typed_data/float32x4_shuffle_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+typed_data/float32x4_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+typed_data/int32x4_list_test: Crash # Instance of 'TypeOperator': type check unimplemented for List<Int32x4>.
+typed_data/int32x4_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+typed_data/setRange_1_test: Crash # (makeInt16List): handleStaticFunctionGet: function(makeInt16List)
+typed_data/setRange_2_test: Crash # (makeInt16List): handleStaticFunctionGet: function(makeInt16List)
+typed_data/typed_data_hierarchy_int64_test: Crash # Instance of 'TypeOperator': type check unimplemented for List<int>.
+typed_data/typed_data_hierarchy_test: Crash # Instance of 'TypeOperator': type check unimplemented for List<double>.
+typed_data/typed_data_list_test: Crash # Instance of 'TypeOperator': type check unimplemented for Map.
+typed_data/typed_data_sublist_type_test: Crash # Instance of 'TypeOperator': type check unimplemented for T.
+typed_data/typed_list_iterable_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
diff --git a/tests/lib/mirrors/invocation_fuzz_test.dart b/tests/lib/mirrors/invocation_fuzz_test.dart
index 4afd372..7a43d3cbb 100644
--- a/tests/lib/mirrors/invocation_fuzz_test.dart
+++ b/tests/lib/mirrors/invocation_fuzz_test.dart
@@ -26,6 +26,9 @@
   // Don't kill random other processes.
   'dart.io.Process.killPid',
 
+  // Don't break into the debugger.
+  'dart.developer.debugger',
+
   // Don't run blocking io calls.
   new RegExp(r".*Sync$"),
 
diff --git a/tests/standalone/io/http_100_continue.dart b/tests/standalone/io/http_100_continue.dart
new file mode 100644
index 0000000..96411ec
--- /dev/null
+++ b/tests/standalone/io/http_100_continue.dart
@@ -0,0 +1,73 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import "dart:async";
+import 'dart:convert';
+import "dart:io";
+
+import "package:expect/expect.dart";
+
+void test(responseBytes, bodyLength) async {
+  fullRequest(bytes) {
+    var len = bytes.length;
+    return len > 4 &&
+           bytes[len - 4] == 13 &&
+           bytes[len - 3] == 10 &&
+           bytes[len - 2] == 13 &&
+           bytes[len - 1] == 10;
+  }
+
+  handleSocket(socket) async {
+    var bytes = [];
+    await for (var data in socket) {
+        bytes.addAll(data);
+        if (fullRequest(bytes)) {
+          socket.add(responseBytes);
+          socket.close();
+        }
+    }
+  }
+
+  var server = await ServerSocket.bind('127.0.0.1', 0);
+  server.listen(handleSocket);
+
+  var client = new HttpClient();
+  var request =
+      await client.getUrl(Uri.parse('http://127.0.0.1:${server.port}/'));
+  var response = await request.close();
+  Expect.equals(response.statusCode, 200);
+  Expect.equals(bodyLength,
+                (await response.fold([], (p, e) => p..addAll(e))).length);
+  server.close();
+}
+
+main() {
+  var r1 = '''
+HTTP/1.1 100 Continue\r
+\r
+HTTP/1.1 200 OK\r
+\r
+''';
+
+  var r2 = '''
+HTTP/1.1 100 Continue\r
+My-Header-1: hello\r
+My-Header-2: world\r
+\r
+HTTP/1.1 200 OK\r
+\r
+''';
+
+  var r3 = '''
+HTTP/1.1 100 Continue\r
+\r
+HTTP/1.1 200 OK\r
+Content-Length: 2\r
+\r
+AB''';
+
+  test(ASCII.encode(r1), 0);
+  test(ASCII.encode(r2), 0);
+  test(ASCII.encode(r3), 2);
+}
diff --git a/tests/standalone/io/web_socket_pipe_test.dart b/tests/standalone/io/web_socket_pipe_test.dart
index b487b74..5439e8a 100644
--- a/tests/standalone/io/web_socket_pipe_test.dart
+++ b/tests/standalone/io/web_socket_pipe_test.dart
@@ -40,7 +40,6 @@
         }
       }
 
-      next();
       client.listen(
           (data) {
             count++;
@@ -52,6 +51,8 @@
             next();
           },
           onDone: () => print("Client received close"));
+
+      next();
     });
   });
 }
diff --git a/tests/standalone/io/web_socket_test.dart b/tests/standalone/io/web_socket_test.dart
index 97059042..f3213e6 100644
--- a/tests/standalone/io/web_socket_test.dart
+++ b/tests/standalone/io/web_socket_test.dart
@@ -173,6 +173,36 @@
   }
 
 
+  void testCloseNoListen() {
+    createServer().then((server) {
+      server.transform(new WebSocketTransformer()).listen((webSocket) {
+        server.close();
+        webSocket.close();
+      });
+
+      createClient(server.port).then((webSocket) {
+        webSocket.close();
+      });
+    });
+  }
+
+
+  void testListenAfterClose() {
+    createServer().then((server) {
+      server.transform(new WebSocketTransformer()).listen((webSocket) {
+        server.close();
+        webSocket.close();
+        Expect.throws(() => webSocket.drain());
+      });
+
+      createClient(server.port).then((webSocket) {
+        webSocket.close();
+        Expect.throws(() => webSocket.drain());
+      });
+    });
+  }
+
+
   void testDoubleCloseClient() {
     createServer().then((server) {
       server.transform(new WebSocketTransformer()).listen((webSocket) {
@@ -208,10 +238,10 @@
       server.listen((request) {
         WebSocketTransformer.upgrade(request)
             .then((webSocket) {
-              webSocket.close();
               webSocket.listen(
                   (_) { Expect.fail("Unexpected message"); },
                   onDone: server.close);
+              webSocket.close();
             });
       });
 
@@ -239,10 +269,10 @@
       });
 
       createClient(server.port).then((webSocket) {
-          webSocket.close();
           webSocket.listen(
               (_) { Expect.fail("Unexpected message"); },
               onDone: webSocket.close);
+          webSocket.close();
         });
     });
   }
@@ -512,6 +542,8 @@
     testMessageLength(127);
     testMessageLength(65535);
     testMessageLength(65536);
+    testCloseNoListen();
+    testListenAfterClose();
     testDoubleCloseClient();
     testDoubleCloseServer();
     testImmediateCloseServer();
diff --git a/tests/standalone/standalone.status b/tests/standalone/standalone.status
index b2e91a8..5518c1d 100644
--- a/tests/standalone/standalone.status
+++ b/tests/standalone/standalone.status
@@ -107,10 +107,6 @@
 [ $compiler == dart2js && $browser ]
 *: Skip
 
-[ $compiler == dart2dart ]
-# Skip until we stabilize language tests.
-*: Skip
-
 [ $arch == simarm || $arch == simarmv5te || $arch == simmips]
 out_of_memory_test: Skip # passes on Mac, crashes on Linux
 oom_error_stacktrace_test: Skip # Fails on Linux
@@ -169,217 +165,107 @@
 io/http_client_stays_alive_test: Skip  # Timeout.
 
 [ $compiler == dart2js && $cps_ir ]
-array_bounds_check_generalization_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-assert_test: Crash #  "on T" catch block
-byte_array_view_optimized_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-constant_left_shift_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-coverage_test: Crash # unsupported element kind: context:field
-deoptimization_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_temp_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-double_to_int_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-int_list_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/addlatexhash_test: Crash # (try {test(tempDir.path);}finally {tempDir.delete(recursive:true);}): not exactly one catch block
-io/async_catch_errors_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/code_collection_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/create_recursive_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/dart_std_io_pipe_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/delete_symlink_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
+array_bounds_check_generalization_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+constant_left_shift_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+coverage_test: Crash # (onCoverageOutput): handleStaticFunctionGet: function(onCoverageOutput)
+io/addlatexhash_test: Crash # (testSameHash): handleStaticFunctionGet: function(testSameHash)
+io/async_catch_errors_test: Crash # unsupported element kind: events:field
+io/create_recursive_test: Crash # unsupported element kind: context:field
 io/dependency_graph_test: Crash # unsupported element kind: UnableToRun:field
-io/directory_chdir_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/directory_create_race_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/directory_error_test: Crash #  Unhandled node
-io/directory_fuzz_test: Crash # Please triage this failure.
-io/directory_invalid_arguments_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/directory_list_nonexistent_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
+io/directory_chdir_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/directory_error_test: Crash # (testCreateInNonExistent): handleStaticFunctionGet: function(testCreateInNonExistent)
+io/directory_fuzz_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/directory_invalid_arguments_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/directory_list_nonexistent_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
 io/directory_list_pause_test: Crash # Please triage this failure.
-io/directory_non_ascii_sync_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/directory_non_ascii_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/directory_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/directory_uri_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/echo_server_stream_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/file_absolute_path_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/file_constructor_test: Crash #  "on T" catch block
-io/file_copy_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/file_error_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/file_fuzz_test: Crash # Please triage this failure.
-io/file_input_stream_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/file_invalid_arguments_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/file_lock_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/file_non_ascii_sync_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/file_non_ascii_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/file_output_stream_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/file_read_encoded_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/file_read_special_device_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/file_stat_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/file_stream_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/file_system_async_links_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/file_system_delete_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/file_system_exists_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/file_system_links_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/file_system_uri_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+io/directory_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/directory_uri_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/echo_server_stream_test: Crash # (startEchoServer): handleStaticFunctionGet: function(startEchoServer)
+io/file_copy_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/file_error_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/file_invalid_arguments_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/file_lock_test: Crash # unsupported element kind: context:field
+io/file_read_encoded_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/file_stat_test: Crash # unsupported element kind: context:field
+io/file_system_delete_test: Crash # (Expect.isFalse): handleStaticFunctionGet: function(Expect#isFalse)
+io/file_system_exists_test: Crash # (Expect.isTrue): handleStaticFunctionGet: function(Expect#isTrue)
+io/file_system_links_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
 io/file_system_watcher_test: Crash # unsupported element kind: context:field
-io/file_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
+io/file_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
 io/file_typed_data_test: Crash # Please triage this failure.
-io/file_uri_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/file_windows_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/file_write_as_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/http_10_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/http_advanced_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/http_auth_digest_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/http_auth_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/http_basic_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+io/file_uri_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/http_advanced_test: Crash # (startIsolatedHttpServer): handleStaticFunctionGet: function(startIsolatedHttpServer)
+io/http_basic_test: Crash # (startTestServer): handleStaticFunctionGet: function(startTestServer)
 io/http_bind_test: Crash #  cannot handle async/sync*/async* functions
-io/http_client_connect_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/http_client_exception_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/http_client_request_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/http_close_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/http_compression_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/http_connection_header_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/http_connection_info_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/http_content_length_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/http_cookie_date_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/http_cookie_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/http_cross_process_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/http_date_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/http_detach_socket_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/http_head_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/http_headers_state_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/http_headers_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/http_ipv6_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/http_keep_alive_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/http_no_reason_phrase_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/http_outgoing_size_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/http_parser_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/http_proxy_configuration_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+io/http_client_exception_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/http_content_length_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/http_cookie_date_test: Crash # Please triage this failure.
+io/http_date_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/http_detach_socket_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/http_headers_state_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/http_headers_test: Crash # Instance of 'TypeOperator': type check unimplemented for Iterable.
+io/http_parser_test: Crash #  Unhandled node
 io/http_proxy_test: Crash # Please triage this failure.
-io/http_read_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/http_redirect_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/http_request_pipeling_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/http_requested_uri_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/http_response_deadline_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/http_server_early_client_close_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/http_server_response_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/http_server_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/http_session_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/https_bad_certificate_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/https_client_certificate_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/https_client_exception_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/https_server_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/https_unauthorized_test: Crash # (throw e): Unhandled node
-io/internet_address_invalid_arguments_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/internet_address_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/io_sink_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+io/http_read_test: Crash # (startIsolatedHttpServer): handleStaticFunctionGet: function(startIsolatedHttpServer)
+io/http_server_early_client_close_test: Crash # Instance of 'TypeOperator': type check unimplemented for List<int>.
+io/http_server_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/https_bad_certificate_test: Crash #  cannot handle async/sync*/async* functions
+io/https_server_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/internet_address_invalid_arguments_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/internet_address_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
 io/issue_22636_test: Crash #  cannot handle async/sync*/async* functions
 io/issue_22637_test: Crash #  cannot handle async/sync*/async* functions
-io/link_async_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/link_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/link_uri_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/network_interface_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/observatory_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/parent_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/pipe_server_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/platform_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/print_sync_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/process_check_arguments_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/process_detached_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/process_environment_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/process_exit_negative_test: Crash # (a): Error expression `a` unhandled.
-io/process_exit_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/process_invalid_arguments_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/process_kill_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/process_non_ascii_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/process_path_environment_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/process_path_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/process_pid_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/process_run_output_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/process_run_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/process_segfault_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/process_set_exit_code_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/process_start_exception_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/process_stderr_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/process_stdin_transform_unsubscribe_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/process_stdout_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/process_sync_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/process_working_directory_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/raw_datagram_read_all_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
+io/link_async_test: Crash # (testCreateLoopingLink): handleStaticFunctionGet: function(testCreateLoopingLink)
+io/link_test: Crash # unsupported element kind: context:field
+io/link_uri_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/observatory_test: Crash # (asyncSuccess): handleStaticFunctionGet: function(asyncSuccess)
+io/parent_test: Crash # (testObjects): handleStaticFunctionGet: function(testObjects)
+io/pipe_server_test: Crash # (startPipeServer): handleStaticFunctionGet: function(startPipeServer)
+io/platform_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/process_invalid_arguments_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/process_run_test: Crash # Instance of 'TypeOperator': type check unimplemented for List<int>.
 io/raw_datagram_socket_test: Crash #  Unhandled node
-io/raw_secure_server_closing_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/raw_secure_server_socket_argument_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/raw_secure_server_socket_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
+io/raw_secure_server_closing_test: Crash # Please triage this failure.
+io/raw_secure_server_socket_argument_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/raw_secure_server_socket_test: Crash # Please triage this failure.
 io/raw_secure_socket_pause_test: Crash #  Unhandled node
 io/raw_secure_socket_test: Crash #  Unhandled node
-io/raw_server_socket_cancel_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/raw_socket_cross_process_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/raw_socket_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
+io/raw_server_socket_cancel_test: Crash #  Unhandled node
+io/raw_socket_cross_process_test: Crash #  Unhandled node
+io/raw_socket_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
 io/raw_socket_typed_data_test: Crash # Please triage this failure.
-io/raw_socket_write_destroy_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/read_into_const_list_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/regress_10026_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
 io/regress_21160_test: Crash #  Unhandled node
-io/regress_21987_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/regress_7679_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/regress_8828_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/regress_9194_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/resolve_symbolic_links_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/secure_bad_certificate_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/secure_builtin_roots_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/secure_client_raw_server_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/secure_client_server_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/secure_multiple_client_server_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/secure_server_client_certificate_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/secure_server_client_no_certificate_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/secure_server_closing_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/secure_server_socket_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/secure_session_resume_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/secure_socket_alpn_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/secure_socket_argument_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/secure_socket_bad_data_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/secure_socket_renegotiate_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/secure_socket_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/secure_unauthorized_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/signals_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
+io/resolve_symbolic_links_test: Crash # (asyncSuccess): handleStaticFunctionGet: function(asyncSuccess)
+io/secure_client_raw_server_test: Crash # (testClient): handleStaticFunctionGet: function(testClient)
+io/secure_client_server_test: Crash # (testClient): handleStaticFunctionGet: function(testClient)
+io/secure_multiple_client_server_test: Crash # (testClient): handleStaticFunctionGet: function(testClient)
+io/secure_server_closing_test: Crash # Please triage this failure.
+io/secure_server_socket_test: Crash # Please triage this failure.
+io/secure_socket_alpn_test: Crash # Instance of 'TypeOperator': type casts not implemented.
+io/secure_socket_argument_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/secure_socket_bad_data_test: Crash # (runClient): handleStaticFunctionGet: function(runClient)
 io/skipping_dart2js_compilations_test: Crash # unsupported element kind: currentWorkingDirectory:field
-io/sleep_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/snapshot_fail_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/socket_bind_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/socket_close_test: Crash #  Unhandled node
-io/socket_cross_process_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/socket_exception_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/socket_info_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/socket_invalid_arguments_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/socket_ipv6_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/socket_many_connections_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/socket_port_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/socket_source_address_test: Crash #  cannot handle async/sync*/async* functions
-io/socket_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/socket_upgrade_to_secure_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/status_file_parser_test: Crash # (throw new Exception('Cannot find test status file ${path}')): Unhandled node
-io/stdio_nonblocking_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/stdout_bad_argument_test: Crash # handleStaticFunctionGet: function(print)
-io/stdout_close_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/stdout_stderr_non_blocking_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/stdout_stderr_terminal_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/stdout_stderr_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/stream_pipe_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/test_extension_fail_test: Crash # (throw new StateError("bad exit code")): Unhandled node
-io/test_extension_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+io/sleep_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/socket_bind_test: Crash # (asyncEnd): handleStaticFunctionGet: function(asyncEnd)
+io/socket_close_test: Crash # (asyncEnd): handleStaticFunctionGet: function(asyncEnd)
+io/socket_exception_test: Crash # Please triage this failure.
+io/socket_many_connections_test: Crash # (startTestServer): handleStaticFunctionGet: function(startTestServer)
+io/socket_source_address_test: Crash # (RawSocket.connect): handleStaticFunctionGet: origin function(RawSocket#connect)
+io/socket_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/socket_upgrade_to_secure_test: Crash # Please triage this failure.
+io/status_file_parser_test: Crash # unsupported element kind: IssueNumberPattern:field
+io/stdout_bad_argument_test: Crash # (print): handleStaticFunctionGet: function(print)
+io/stdout_stderr_terminal_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/test_extension_fail_test: Crash # unsupported element kind: context:field
+io/test_extension_test: Crash # unsupported element kind: context:field
 io/test_runner_test: Crash #  Unhandled node
-io/uri_platform_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/web_socket_error_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/web_socket_ping_test: Crash # (throw new StateError('Hash update method called after digest was retrieved')): Unhandled node
-io/web_socket_pipe_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/web_socket_protocol_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/web_socket_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/web_socket_typed_data_test: Crash # (throw new ExpectException(message)): Unhandled node
-io/windows_environment_test: Crash # (throw "Exit code not 0"): Unhandled node
-io/windows_file_system_async_links_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-io/windows_file_system_links_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-io/zlib_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-medium_integer_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-oom_error_stacktrace_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
-out_of_memory_test: Crash #  "on T" catch block
-priority_queue_stress_test: Crash # cannot compile methods that need interceptor calling convention.
-slowpath_safepoints_test: Crash # handleStaticFunctionGet: function(noop)
-status_expression_test: Crash # (throw new ExpectException(message)): Unhandled node
-typed_array_test: Crash # Instance of 'TypeOperator': unimplemented in CodeGenerator
+io/uri_platform_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/web_socket_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/windows_environment_test: Crash # unsupported element kind: context:field
+io/windows_file_system_links_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+io/zlib_test: Crash # Instance of 'TypeOperator': type check unimplemented for _Nullary.
+priority_queue_stress_test: RuntimeError # Please triage this failure.
+slowpath_safepoints_test: Crash # (noop): handleStaticFunctionGet: function(noop)
+status_expression_test: Crash # unsupported element kind: regexp:field
+typed_array_test: Crash # (float64_sender): handleStaticFunctionGet: function(float64_sender)
 verified_mem_test: Crash # unsupported element kind: a:field
diff --git a/tests/utils/utils.status b/tests/utils/utils.status
index 25aefd7..ba281b8 100644
--- a/tests/utils/utils.status
+++ b/tests/utils/utils.status
@@ -28,11 +28,7 @@
 recursive_import_test: Pass, RuntimeError # Issue 17662
 source_mirrors_test: Pass, RuntimeError # Issue 17662
 
-[ $compiler == dart2dart && $builder_tag != new_backend ]
-source_mirrors_test: Slow, Pass
-dummy_compiler_test: Slow, Pass
-
 [ $compiler == dart2js && $cps_ir ]
-dummy_compiler_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-recursive_import_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
-source_mirrors_test: Crash # (throw _buildException('asyncEnd() was called before asyncStart().')): Unhandled node
+dummy_compiler_test: Crash # (provider): handleStaticFunctionGet: function(provider)
+recursive_import_test: Crash # (asyncSuccess): handleStaticFunctionGet: function(asyncSuccess)
+source_mirrors_test: Crash # (provider): handleStaticFunctionGet: function(provider)
diff --git a/tools/FAKE_COMMITS b/tools/FAKE_COMMITS
index 9645a59..ef8c59f 100644
--- a/tools/FAKE_COMMITS
+++ b/tools/FAKE_COMMITS
@@ -10,3 +10,4 @@
 CIT outage
 Testing update steps
 Testing bots after GOLO <> gcs failures
+Trigger bots after github outage
diff --git a/tools/VERSION b/tools/VERSION
index 7a0a147..72681a8 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 1
 MINOR 11
 PATCH 0
-PRERELEASE 0
-PRERELEASE_PATCH 1
+PRERELEASE 1
+PRERELEASE_PATCH 0
diff --git a/tools/bots/bot.py b/tools/bots/bot.py
index 550cb47..0015f47 100644
--- a/tools/bots/bot.py
+++ b/tools/bots/bot.py
@@ -25,7 +25,7 @@
   """
   Encapsulation of build information.
 
-  - compiler: None, 'dart2dart' or 'dart2js'
+  - compiler: None or 'dart2js'
   - runtime: 'd8', 'ie', 'ff', 'safari', 'chrome', 'opera', or None.
   - mode: 'debug' or 'release'.
   - system: 'linux', 'mac', or 'win7'.
diff --git a/tools/bots/dart_sdk.py b/tools/bots/dart_sdk.py
new file mode 100644
index 0000000..b2a3b06
--- /dev/null
+++ b/tools/bots/dart_sdk.py
@@ -0,0 +1,177 @@
+#!/usr/bin/env python
+#
+# Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+import os.path
+import shutil
+import sys
+
+import bot
+import bot_utils
+
+utils = bot_utils.GetUtils()
+
+BUILD_OS = utils.GuessOS()
+
+(bot_name, _) = bot.GetBotName()
+CHANNEL = bot_utils.GetChannelFromName(bot_name)
+
+def BuildSDK():
+  with bot.BuildStep('Build SDK'):
+    Run([sys.executable, './tools/build.py', '--mode=release',
+         '--arch=ia32,x64', 'create_sdk'])
+
+def BuildAPIDocs():
+  with bot.BuildStep('Build API docs'):
+    Run([sys.executable, './tools/build.py', '--mode=release',
+         '--arch=ia32', 'api_docs'])
+    Run([sys.executable, './tools/build.py', '--mode=release',
+         '--arch=ia32', 'dartdocgen'])
+
+def CreateUploadSDKZips():
+  with bot.BuildStep('Create and upload sdk zips'):
+    sdk32_path = os.path.join(bot_utils.DART_DIR,
+                              utils.GetBuildRoot(BUILD_OS, 'release', 'ia32'),
+                              'dart-sdk')
+    sdk64_path = os.path.join(bot_utils.DART_DIR,
+                              utils.GetBuildRoot(BUILD_OS, 'release', 'x64'),
+                              'dart-sdk')
+
+    sdk32_zip = os.path.join(bot_utils.DART_DIR,
+                             utils.GetBuildRoot(BUILD_OS, 'release', 'ia32'),
+                             'dartsdk-%s-32.zip' % BUILD_OS)
+    sdk64_zip = os.path.join(bot_utils.DART_DIR,
+                             utils.GetBuildRoot(BUILD_OS, 'release', 'x64'),
+                             'dartsdk-%s-64.zip' % BUILD_OS)
+    FileDelete(sdk32_zip)
+    FileDelete(sdk64_zip)
+    CreateZip(sdk32_path, sdk32_zip)
+    CreateZip(sdk64_path, sdk64_zip)
+    DartArchiveUploadSDKs(BUILD_OS, sdk32_zip, sdk64_zip)
+
+def DartArchiveUploadSDKs(system, sdk32_zip, sdk64_zip):
+  namer = bot_utils.GCSNamer(CHANNEL, bot_utils.ReleaseType.RAW)
+  revision = utils.GetSVNRevision()
+  for revision in [revision, 'latest']:
+    path32 = namer.sdk_zipfilepath(revision, system, 'ia32', 'release')
+    path64 = namer.sdk_zipfilepath(revision, system, 'x64', 'release')
+    DartArchiveFile(sdk32_zip, path32, checksum_files=True)
+    DartArchiveFile(sdk64_zip, path64, checksum_files=True)
+
+def CreateUploadSDK():
+  BuildSDK()
+  CreateUploadSDKZips()
+
+def CreateUploadAPIDocs():
+  api_path = os.path.join(bot_utils.DART_DIR,
+                          utils.GetBuildRoot(BUILD_OS, 'release', 'ia32'),
+                          'api_docs')
+  api_zip = os.path.join(bot_utils.DART_DIR,
+                         utils.GetBuildRoot(BUILD_OS, 'release', 'ia32'),
+                         'dart-api-docs.zip')
+  shutil.rmtree(api_path, ignore_errors=True)
+  FileDelete(api_zip)
+  BuildAPIDocs()
+  UploadApiDocs(api_path)
+  CreateZip(api_path, api_zip)
+  DartArchiveUploadAPIDocs(api_zip)
+
+def DartArchiveUploadAPIDocs(api_zip):
+  namer = bot_utils.GCSNamer(CHANNEL, bot_utils.ReleaseType.RAW)
+  revision = utils.GetSVNRevision()
+  for revision in [revision, 'latest']:
+    destination = (namer.apidocs_directory(revision) + '/' +
+        namer.apidocs_zipfilename())
+    DartArchiveFile(api_zip, destination, checksum_files=False)
+
+def UploadApiDocs(dir_name):
+  apidocs_namer = bot_utils.GCSNamerApiDocs(CHANNEL)
+  revision = utils.GetSVNRevision()
+  apidocs_destination_gcsdir = apidocs_namer.docs_dirpath(revision)
+  apidocs_destination_latestfile = apidocs_namer.docs_latestpath(revision)
+
+  # Return early if the documents have already been uploaded.
+  # (This can happen if a build was forced, or a commit had no changes in the
+  # dart repository (e.g. DEPS file update).)
+  if GsutilExists(apidocs_destination_gcsdir):
+    print ("Not uploading api docs, since %s is already present."
+           % apidocs_destination_gcsdir)
+    return
+
+  # Upload everything inside the built apidocs directory.
+  gsutil = bot_utils.GSUtil()
+  gsutil.upload(dir_name, apidocs_destination_gcsdir, recursive=True,
+                public=True)
+
+  # Update latest.txt to contain the newest revision.
+  with utils.TempDir('latest_file') as temp_dir:
+    latest_file = os.path.join(temp_dir, 'latest.txt')
+    with open(latest_file, 'w') as f:
+      f.write('%s' % revision)
+    DartArchiveFile(latest_file, apidocs_destination_latestfile)
+
+def GsutilExists(gsu_path):
+  # This is a little hackish, but it is basically a one off doing very
+  # specialized check that we don't use elsewhere.
+  gsutilTool = os.path.join(bot_utils.DART_DIR,
+                            'third_party', 'gsutil', 'gsutil')
+  (_, stderr, returncode) = bot_utils.run(
+      [gsutilTool, 'ls', gsu_path],
+      throw_on_error=False)
+  # If the returncode is nonzero and we can find a specific error message,
+  # we know there are no objects with a prefix of [gsu_path].
+  missing = (returncode and 'CommandException: No such object' in stderr)
+  # Either the returncode has to be zero or the object must be missing,
+  # otherwise throw an exception.
+  if not missing and returncode:
+    raise Exception("Failed to determine whether %s exists" % gsu_path)
+  return not missing
+
+
+def CreateZip(directory, target_file):
+  if 'win' in BUILD_OS:
+    CreateZipWindows(directory, target_file)
+  else:
+    CreateZipPosix(directory, target_file)
+
+def CreateZipPosix(directory, target_file):
+  with utils.ChangedWorkingDirectory(os.path.dirname(directory)):
+    command = ['zip', '-yrq9', target_file, os.path.basename(directory)]
+    Run(command)
+
+def CreateZipWindows(directory, target_file):
+  with utils.ChangedWorkingDirectory(os.path.dirname(directory)):
+    zip_win = os.path.join(bot_utils.DART_DIR, 'third_party', '7zip', '7za')
+    command = [zip_win, 'a', '-tzip', target_file, os.path.basename(directory)]
+    Run(command)
+
+def FileDelete(f):
+  if os.path.exists(f):
+    os.remove(f)
+
+def DartArchiveFile(local_path, remote_path, checksum_files=False):
+  gsutil = bot_utils.GSUtil()
+  gsutil.upload(local_path, remote_path, public=True)
+  if checksum_files:
+    # 'local_path' may have a different filename than 'remote_path'. So we need
+    # to make sure the *.md5sum file contains the correct name.
+    assert '/' in remote_path and not remote_path.endswith('/')
+
+    mangled_filename = remote_path[remote_path.rfind('/') + 1:]
+    local_md5sum = bot_utils.CreateMD5ChecksumFile(local_path,
+                                                   mangled_filename)
+    gsutil.upload(local_md5sum, remote_path + '.md5sum', public=True)
+    local_sha256 = bot_utils.CreateSha256ChecksumFile(local_path,
+                                                      mangled_filename)
+    gsutil.upload(local_sha256, remote_path + '.sha256sum', public=True)
+
+def Run(command):
+  print "Running %s" % ' '.join(command)
+  return bot.RunProcess(command)
+
+if __name__ == '__main__':
+  CreateUploadSDK()
+  if BUILD_OS == 'linux':
+    CreateUploadAPIDocs()
diff --git a/tools/bots/functional_testing.py b/tools/bots/functional_testing.py
deleted file mode 100644
index 9b06ba5..0000000
--- a/tools/bots/functional_testing.py
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/usr/bin/python
-
-# Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file
-# for details. All rights reserved. Use of this source code is governed by a
-# BSD-style license that can be found in the LICENSE file.
-
-"""
-Buildbot steps for functional testing master and slaves
-"""
-
-import os
-import os.path
-import re
-import shutil
-import subprocess
-import sys
-
-import bot
-import bot_utils
-
-utils = bot_utils.GetUtils()
-
-FT_BUILDER = r'ft-slave-(linux|mac)'
-FT_MASTER = r'ft-master'
-
-HOST_OS = utils.GuessOS()
-
-def IsWindows():
-  return HOST_OS == 'win32'
-
-def SrcConfig(name, is_buildbot):
-  """Returns info for the current buildbot based on the name of the builder.
-
-  - mode: always "release"
-  - system: always "linux" or "mac"
-  """
-  pattern = re.match(FT_BUILDER, name)
-  master_pattern = re.match(FT_MASTER, name)
-  if not pattern and not master_pattern:
-    return None
-  if master_pattern:
-    tag = 'master'
-    system = 'linux'
-  else:
-    tag = 'slave'
-    system = pattern.group(1)
-  return bot.BuildInfo('none', 'none', 'release', system,
-                       builder_tag=tag)
-
-def Run(args):
-  print "Running: %s" % ' '.join(args)
-  sys.stdout.flush()
-  bot.RunProcess(args)
-
-def FTSlave(config):
-
-  # Run SWTBot tests
-  if len(sys.argv) > 0:
-    scriptdir = os.path.dirname(sys.argv[0])
-    builddir = os.path.join(scriptdir, '..', '..', 'editor', 'build')
-    testScript = os.path.join(builddir, 'testswteditor.py')
-    cmd = [sys.executable, testScript]
-    try:
-      subprocess.call(cmd, shell=IsWindows())
-    except:
-      pass
-
-  # Prepare to run EggPlant tests
-  with bot.BuildStep('Fetching editor'):
-    revision = int(os.environ['BUILDBOT_GOT_REVISION'])
-    bot_name, _ = bot.GetBotName()
-    print bot_name
-    channel = bot_utils.GetChannelFromName(bot_name)
-    namer = bot_utils.GCSNamer(channel=channel)
-    system = config.system
-    if system == 'mac':
-      system = 'macos'
-    editor_path = namer.editor_zipfilepath(revision, system, 'x64')
-    gsutils = bot_utils.GSUtil()
-    editor_location='/home/chrome-bot/Desktop'
-    if system == 'macos':
-      editor_location='/Users/chrome-bot/Desktop'
-    local_path = os.path.join(editor_location, 'editor.zip')
-    if os.path.exists(local_path):
-      os.remove(local_path)
-    local_extracted = os.path.join(editor_location, 'dart')
-    shutil.rmtree(local_extracted, ignore_errors=True)
-    gsutils.execute(['cp', editor_path, local_path])
-    Run(['unzip', local_path, '-d', editor_location])
-
-def FTMaster(config):
-  run = int(os.environ['BUILDBOT_ANNOTATED_STEPS_RUN'])
-  with bot.BuildStep('Master run %s' % run):
-    if run == 1:
-      print 'Not doing anything on master before the triggers'
-      return
-    else:
-      builddir = os.path.join(bot_utils.DART_DIR,
-                              utils.GetBuildDir(HOST_OS),
-                              'functional_testing')
-      shutil.rmtree(builddir, ignore_errors=True)
-      os.makedirs(builddir)
-      script_locations = os.path.join(bot_utils.DART_DIR, 'editor', 'ft')
-      Run(['/home/chrome-bot/func-test/bot-run', builddir, script_locations])
-      #TODO Copy builddir to shared storage somewhere.
-
-def FTSteps(config):
-  if config.builder_tag == 'master':
-    FTMaster(config)
-  else:
-    FTSlave(config)
-
-if __name__ == '__main__':
-  bot.RunBot(SrcConfig, FTSteps, build_step=None)
diff --git a/tools/compiler_scripts/dart_analyzer.sh b/tools/compiler_scripts/dart_analyzer.sh
deleted file mode 100644
index c07f5bc..0000000
--- a/tools/compiler_scripts/dart_analyzer.sh
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/bin/bash --posix
-# Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-# for details. All rights reserved. Use of this source code is governed by a
-# BSD-style license that can be found in the LICENSE file.
-
-set -e
-
-# Setting SCRIPT_DIR this way is ugly, but is needed to handle the case where
-# dart-sdk/bin has been symlinked to. On MacOS, readlink doesn't work
-# with this case.
-SCRIPT_DIR="$(cd "${0%/*}" ; pwd -P)"
-DART_ANALYZER_HOME="$(cd "${SCRIPT_DIR%/*}" ; pwd -P)"
-
-FOUND_BATCH=0
-FOUND_SDK=0
-for ARG in "$@"
-do
-  case $ARG in
-    -batch|--batch)
-      FOUND_BATCH=1
-      ;;
-    --dart-sdk)
-      FOUND_SDK=1
-      ;;
-    *)
-      ;;
-  esac
-done
-
-DART_SDK=""
-if [ $FOUND_SDK = 0 ] ; then
-  if [ -f $DART_ANALYZER_HOME/lib/core/core.dart ] ; then
-    DART_SDK="--dart-sdk $DART_ANALYZER_HOME"
-  else
-    DART_SDK_HOME=$(dirname $DART_ANALYZER_HOME)/dart-sdk
-    if [ -d $DART_SDK_HOME ] ; then
-      DART_SDK="--dart-sdk $DART_SDK_HOME"
-    else
-      DART_SDK_HOME=$(dirname $DART_SDK_HOME)/dart-sdk
-      if [ -d $DART_SDK_HOME ] ; then
-        DART_SDK="--dart-sdk $DART_SDK_HOME"
-      else
-        echo "Couldn't find Dart SDK. Specify with --dart-sdk cmdline argument"
-      fi
-    fi
-  fi
-fi
-
-if [ -f $DART_SDK_HOME/util/analyzer/dart_analyzer.jar ] ; then
-  DART_ANALYZER_LIBS=$DART_SDK_HOME/util/analyzer
-elif [ -f $DART_ANALYZER_HOME/util/analyzer/dart_analyzer.jar ] ; then
-  DART_ANALYZER_LIBS=$DART_ANALYZER_HOME/util/analyzer
-else
-  echo "Configuration problem. Couldn't find dart_analyzer.jar."
-  exit 1
-fi
-
-if [ -x /usr/libexec/java_home ]; then
-  export JAVA_HOME=$(/usr/libexec/java_home -v '1.6+')
-fi
-
-EXTRA_JVMARGS="-Xss2M "
-OS=`uname | tr "[A-Z]" "[a-z]"`
-if [ "$OS" == "darwin" ] ; then
-  # Bump up the heap on Mac VMs, some of which default to 128M or less.
-  # Users can specify DART_JVMARGS in the environment to override this
-  # setting.
-  EXTRA_JVMARGS+=" -Xmx256M -client "
-else
-  # On other architectures
-  # -batch invocations will do better with a server vm
-  # invocations for analyzing a single file do better with a client vm
-  if [ $FOUND_BATCH = 0 ] ; then
-    EXTRA_JVMARGS+=" -client "
-  fi
-fi
-
-exec java $EXTRA_JVMARGS $DART_JVMARGS -ea -classpath "@CLASSPATH@" \
-  com.google.dart.compiler.DartCompiler ${DART_SDK} $@
diff --git a/tools/compiler_scripts/generate_my_projects.py b/tools/compiler_scripts/generate_my_projects.py
deleted file mode 100644
index cc41bf3..0000000
--- a/tools/compiler_scripts/generate_my_projects.py
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-# for 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 os
-import sys
-
-
-def Main():
-  def normjoin(*args):
-    return os.path.normpath(os.path.join(*args))
-
-  dart_dir = normjoin(__file__, '..', '..', '..')
-  compiler_scripts = normjoin(dart_dir, 'tools', 'compiler_scripts')
-  editor = normjoin(dart_dir, 'editor')
-
-  locations = {
-    'compiler_scripts': compiler_scripts,
-    'editor': editor,
-  }
-
-  generate_source_list_calls = [
-    # The paths are relative to dart/editor/
-    {
-        "name" : "plugin_engine_java",
-        "output" : "%(editor)s/plugin_engine_sources" % locations,
-        "path" : "tools/plugins/com.google.dart.engine",
-    },
-    {
-        "name" : "plugin_command_analyze_java",
-        "output" : "%(editor)s/plugin_command_analyze_sources" % locations,
-        "path" : "tools/plugins/com.google.dart.command.analyze",
-    },
-  ]
-
-  for call_options in generate_source_list_calls:
-    command = (("python %(compiler_scripts)s/generate_source_list.py "
-                % locations) +
-               ("%(name)s %(output)s %(path)s" % call_options))
-    exit_code = os.system(command)
-    if exit_code:
-      return exit_code
-
-  if '--no-gyp' in sys.argv:
-    print '--no-gyp is deprecated.'
-
-  return 0
-
-
-if __name__ == '__main__':
-  sys.exit(Main())
diff --git a/tools/compiler_scripts/generate_source_list.py b/tools/compiler_scripts/generate_source_list.py
deleted file mode 100644
index 2966d40..0000000
--- a/tools/compiler_scripts/generate_source_list.py
+++ /dev/null
@@ -1,129 +0,0 @@
-#!/usr/bin/env python
-# 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.
-
-from __future__ import with_statement
-import StringIO
-import os
-import sys
-
-class GenerateError(Exception):
-
-  def __init__(self, value):
-    self.value = value
-
-  def __str__(self):
-    return repr(self.value)
-
-
-class Generator:
-
-  def __init__(self, base_directory, name, output, path, *excludes):
-    self.base_directory = base_directory
-    self.name = name
-    self.output = output
-    self.path = path
-    self.excludes = set()
-    for x in excludes:
-      self.excludes.add(x)
-    self.sources = []
-    self.resources = []
-
-  def _list_files(self):
-    start_directory = os.path.join(self.base_directory, self.path)
-    for fullpath, dirs, filenames in os.walk(start_directory):
-      path = fullpath[len(start_directory) + 1:]
-      remove_me = [d for d in dirs if d.startswith('.') or
-          d == 'CVS' or
-          (d in self.excludes)]
-      for d in remove_me:
-        dirs.remove(d)
-      for filename in filenames:
-        if (filename.endswith('.java')):
-          self.sources.append(os.path.join(path, filename))
-        elif (filename.endswith('~')):
-          pass
-        elif (filename.endswith('.pyc')):
-          pass
-        else:
-          self.resources.append(os.path.join(path, filename))
-    self.sources.sort()
-    self.resources.sort()
-
-  def _print_gypi_files(self, out, name, files):
-    out.write("    '%s': [\n" % name)
-    for filename in files:
-      out.write('''      r'%s/%s',%s''' % (self.path, filename,'\n'))
-    out.write("    ],\n")
-
-  def _print_txt_files(self, out, files):
-    for filename in files:
-      out.write('%s\n' % os.path.join(self.path, filename))
-
-  def _print_ant_files(self, out, name, files):
-    out.write("  <filelist id='%s' dir='%s'>\n" % (name, self.path))
-    for filename in files:
-      out.write("    <file name='%s'/>\n" % filename)
-    out.write("  </filelist>\n")
-    out.write("  <pathconvert pathsep=',' property='%s' refid='%s'>\n"
-              % (name, name))
-    out.write("    <map from='${basedir}/%s/' to=''/>\n" % self.path)
-    out.write("  </pathconvert>\n")
-
-  def _make_output(self, file_name):
-    if os.path.exists(file_name):
-      return StringIO.StringIO()
-    else:
-      return file(file_name, 'w')
-
-  def _close(self, file_name, output):
-    if not isinstance(output, StringIO.StringIO):
-      output.close()
-      return
-    new_text = output.getvalue()
-    output.close()
-    with open(file_name, 'r') as f:
-      old_text = f.read()
-    if old_text == new_text:
-      return
-    sys.stderr.write('Updating %s\n' % file_name)
-    with open(file_name, 'w') as f:
-      f.write(new_text)
-
-  def generate(self):
-    self._list_files()
-
-    file_name = self.output + '.gypi'
-    gypi = self._make_output(file_name)
-    gypi.write("{\n  'variables': {\n")
-    self._print_gypi_files(gypi, self.name + '_sources', self.sources)
-    self._print_gypi_files(gypi, self.name + '_resources', self.resources)
-    gypi.write("  },\n}\n")
-    self._close(file_name, gypi)
-
-    file_name = self.output + '.xml'
-    ant = self._make_output(file_name)
-    ant.write("<project>\n")
-    self._print_ant_files(ant, self.name + '_sources', self.sources)
-    self._print_ant_files(ant, self.name + '_resources', self.resources)
-    ant.write("</project>\n")
-    self._close(file_name, ant)
-
-    file_name = self.output + '.txt'
-    txt = self._make_output(file_name)
-    self._print_txt_files(txt, self.sources)
-    self._close(file_name, txt)
-
-
-def Main(script_name = None, name = None, output = None, path = None,
-         *rest):
-  if not path:
-    raise GenerateError("usage: %s NAME OUTPUT PATH EXCLUDE_DIR_NAME ..."
-                        % script_name)
-  base_directory = os.path.dirname(output)
-  Generator(base_directory, name, output, path, *rest).generate()
-
-
-if __name__ == '__main__':
-  sys.exit(Main(*sys.argv))
diff --git a/tools/create_editor.py b/tools/create_editor.py
deleted file mode 100644
index 74fa133..0000000
--- a/tools/create_editor.py
+++ /dev/null
@@ -1,223 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-# for details. All rights reserved. Use of this source code is governed by a
-# BSD-style license that can be found in the LICENSE file.
-#
-# A script which will be invoked from gyp to create a build of the editor.
-#
-# Usage: ./tools/create_editor.py
-#            [--mode <mode>] [--arch <arch>] [--out <output>] [--build <build>]
-#
-# DO NOT CALL THIS SCRIPT DIRECTLY, instead invoke:
-# ./tools/build.py -mrelease editor
-
-import glob
-import optparse
-import os
-import shutil
-import subprocess
-import sys
-import utils
-import zipfile
-
-from os.path import join
-
-OUTPUT = None
-BUILD = None
-
-OS_CONFIG = {
-  'win32': 'win32, win32',
-  'linux': 'linux, gtk',
-  'macos': 'macosx, cocoa'
-}
-
-ARCH_CONFIG = {
-  'ia32': 'x86',
-  'x64': 'x86_64'
-}
-
-def AntPath():
-  parent = join('third_party', 'apache_ant', '1.8.4', 'bin')
-  if utils.IsWindows():
-    return join(parent, 'ant.bat')
-  else:
-    return join(parent, 'ant')
-
-
-def ProcessEditorArchive(arch, archive, outDir):
-  tempDir = join(GetEditorTemp(), 'editor.out')
-  try:
-    os.makedirs(tempDir)
-  except OSError:
-    # Directory already exists.
-    pass
-
-  if utils.IsWindows():
-    f = zipfile.ZipFile(archive)
-    f.extractall(tempDir)
-    f.close()
-  else:
-    subprocess.call(['unzip', '-q', archive, '-d', tempDir])
-
-  if arch == 'x64':
-    if utils.GuessOS() == 'macos':
-      inifile = join(tempDir, 'dart', 'DartEditor.app', 'Contents', 'MacOS',
-                     'DartEditor.ini')
-    else:
-      inifile = join(tempDir, 'dart', 'DartEditor.ini')
-    Modify64BitDartEditorIni(inifile)
-
-  for src in glob.glob(join(tempDir, 'dart', '*')):
-    shutil.move(src, outDir)
-
-  shutil.rmtree(tempDir)
-  os.unlink(archive)
-
-
-def Modify64BitDartEditorIni(iniFilePath):
-  f = open(iniFilePath, 'r')
-  lines = f.readlines()
-  f.close()
-  lines[lines.index('-Xms40m\n')] = '-Xms256m\n'
-  lines[lines.index('-Xmx1024m\n')] = '-Xmx2000m\n'
-  # Add -d64 to give better error messages to user in 64 bit mode.
-  lines[lines.index('-vmargs\n')] = '-vmargs\n-d64\n'
-  f = open(iniFilePath, 'w')
-  f.writelines(lines)
-  f.close()
-
-
-def GetEditorTemp():
-  return join(BUILD, 'editor.build.temp')
-
-
-def GetDownloadCache():
-  return GetEclipseBuildRoot()
-
-
-def GetEclipseBuildRoot():
-  return join(BUILD, 'editor.build.cache')
-
-
-def GetSdkPath():
-  return join(os.path.dirname(OUTPUT), 'dart-sdk')
-
-
-def GetOutputParent():
-  return os.path.dirname(os.path.dirname(OUTPUT))
-
-
-def BuildOptions():
-  options = optparse.OptionParser(usage='usage: %prog [options] <output>')
-  options.add_option("-m", "--mode", metavar='[debug,release]')
-  options.add_option("-a", "--arch", metavar='[ia32,x64]')
-  options.add_option("-o", "--out")
-  options.add_option("-b", "--build")
-  return options
-
-
-def Main():
-  global OUTPUT
-  global BUILD
-
-  parser = BuildOptions()
-  (options, args) = parser.parse_args()
-
-  if args:
-    parser.print_help()
-    return 1
-
-  osName = utils.GuessOS()
-  mode = 'debug'
-  arch = utils.GuessArchitecture()
-
-  if not options.build:
-    print >> sys.stderr, 'Error: no --build option specified'
-    exit(1)
-  else:
-    BUILD = options.build
-
-  if not options.out:
-    print >> sys.stderr, 'Error: no --out option specified'
-    exit(1)
-  else:
-    # TODO(devoncarew): Currently we scrape the output path to determine the
-    # mode and arch. This is fragile and should moved into one location
-    # (utils.py?) or made more explicit.
-    OUTPUT = options.out
-    mode = ('release', 'debug')['Debug' in OUTPUT]
-    arch = ('ia32', 'x64')['X64' in OUTPUT]
-
-  # Use explicit mode and arch information.
-  if options.mode:
-    mode = options.mode
-  if options.arch:
-    arch = options.arch
-
-  OUTPUT = os.path.abspath(OUTPUT)
-  BUILD = os.path.abspath(BUILD)
-
-  print "\nBuilding the editor"
-  print "  config : %s, %s, %s" % (osName, arch, mode)
-  print "  output : %s" % OUTPUT
-
-  # Clean the editor output directory.
-  print '\ncleaning %s' % OUTPUT
-  shutil.rmtree(OUTPUT, True)
-
-  # These are the valid eclipse build configurations that we can produce.
-  # We synthesize these up from the OS_CONFIG and ARCH_CONFIG information.
-  # macosx, cocoa, x86 & macosx, cocoa, x86_64
-  # win32, win32, x86 & win32, win32, x86_64
-  # linux, gtk, x86 & linux, gtk, x86_64
-
-  buildConfig = OS_CONFIG[osName] + ', ' + ARCH_CONFIG[arch]
-
-  print "\ninvoking build_rcp.xml with buildConfig = [%s]\n" % buildConfig
-
-  sys.stdout.flush()
-  sys.stderr.flush()
-
-  buildScript = join('editor', 'tools', 'features',
-                     'com.google.dart.tools.deploy.feature_releng',
-                     'build_rcp.xml')
-  build_cmd = [AntPath(),
-      '-lib',
-      join('third_party', 'bzip2', 'bzip2.jar'),
-      '-Dbuild.out=' + OUTPUT,
-      '-Dbuild.configs=' + buildConfig,
-      '-Dbuild.root=' + GetEclipseBuildRoot(),
-      '-Dbuild.downloads=' + GetDownloadCache(),
-      '-Dbuild.source=' + os.path.abspath('editor'),
-      '-Dbuild.dart.sdk=' + GetSdkPath(),
-      '-Dbuild.no.properties=true',
-      '-Dbuild.channel=' + utils.GetChannel(),
-      '-Dbuild.revision=' + utils.GetSVNRevision(),
-      '-Dbuild.version.qualifier=' + utils.GetEclipseVersionQualifier(),
-      '-Ddart.version.full=' + utils.GetVersion(),
-      '-buildfile',
-      buildScript]
-  print build_cmd
-  buildRcpStatus = subprocess.call(build_cmd, shell=utils.IsWindows())
-
-  if buildRcpStatus != 0:
-    sys.exit(buildRcpStatus)
-
-  # build_rcp.xml will put the built editor archive in the OUTPUT directory
-  # (dart-editor-macosx.cocoa.x86.zip). It contains the editor application in a
-  # dart/ subdirectory. We unzip the contents of the archive into OUTPUT. It
-  # will use the ../dart-sdk directory as its SDK.
-  archives = glob.glob(join(OUTPUT, 'd*.zip'))
-
-  if archives:
-    ProcessEditorArchive(arch, archives[0], OUTPUT)
-
-  if os.path.exists(GetEditorTemp()):
-    shutil.rmtree(GetEditorTemp())
-
-  print('\nEditor build successful')
-
-
-if __name__ == '__main__':
-  sys.exit(Main())
diff --git a/tools/create_sdk.py b/tools/create_sdk.py
index 1424c4d..c9dec1b 100755
--- a/tools/create_sdk.py
+++ b/tools/create_sdk.py
@@ -205,12 +205,12 @@
   for library in [join('_blink', 'dartium'),
                   join('_chrome', 'dart2js'), join('_chrome', 'dartium'),
                   join('_internal', 'compiler'),
-                  'async', 'collection', 'convert', 'core',
+                  'async', 'collection', 'convert', 'core', 'developer',
                   'internal', 'io', 'isolate',
                   join('html', 'dart2js'), join('html', 'dartium'),
                   join('html', 'html_common'),
                   join('indexed_db', 'dart2js'), join('indexed_db', 'dartium'),
-                  'js', 'math', 'mirrors', 'typed_data', 'profiler',
+                  'js', 'math', 'mirrors', 'profiler', 'typed_data',
                   join('svg', 'dart2js'), join('svg', 'dartium'),
                   join('web_audio', 'dart2js'), join('web_audio', 'dartium'),
                   join('web_gl', 'dart2js'), join('web_gl', 'dartium'),
diff --git a/tools/create_windows_installer.py b/tools/create_windows_installer.py
deleted file mode 100644
index 64fe994..0000000
--- a/tools/create_windows_installer.py
+++ /dev/null
@@ -1,391 +0,0 @@
-#!/usr/bin/env python
-#
-# 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.
-
-# A script to generate a windows installer for the editor bundle.
-# As input the script takes a zip file, a version and the location
-# to store the resulting msi file in.
-#
-# Usage: ./tools/create_windows_installer.py --version <version>
-#            --zip_file_location <zip_file> --msi_location <output>
-#            [--wix_bin <wix_bin_location>]
-#            [--print_wxs]
-#
-# This script assumes that wix is either in path or passed in as --wix_bin.
-# You can get wix from http://wixtoolset.org/.
-
-import optparse
-import os
-import subprocess
-import sys
-import utils
-import zipfile
-
-# This should _never_ change, please don't change this value.
-UPGRADE_CODE = '7bacdc33-2e76-4f36-a206-ea58220c0b44'
-
-# The content of the xml
-xml_content = []
-
-# The components we want to add to our feature.
-feature_components = []
-
-# Indentation level, each level is indented 2 spaces
-current_indentation = 0
-
-def GetOptions():
-  options = optparse.OptionParser(usage='usage: %prog [options]')
-  options.add_option("--zip_file_location",
-      help='Where the zip file including the editor is located.')
-  options.add_option("--input_directory",
-      help='Directory where all the files needed is located.')
-  options.add_option("--msi_location",
-      help='Where to store the resulting msi.')
-  options.add_option("--version",
-      help='The version specified as Major.Minor.Build.Patch.')
-  options.add_option("--wix_bin",
-      help='The location of the wix binary files.')
-  options.add_option("--print_wxs", action="store_true", dest="print_wxs",
-                    default=False,
-                    help="Prints the generated wxs to stdout.")
-  (options, args) = options.parse_args()
-  if len(args) > 0:
-    raise Exception("This script takes no arguments, only options")
-  ValidateOptions(options)
-  return options
-
-def ValidateOptions(options):
-  if not options.version:
-    raise Exception('You must supply a version')
-  if options.zip_file_location and options.input_directory:
-    raise Exception('Please pass either zip_file_location or input_directory')
-  if not options.zip_file_location and not options.input_directory:
-    raise Exception('Please pass either zip_file_location or input_directory')
-  if (options.zip_file_location and
-      not os.path.isfile(options.zip_file_location)):
-    raise Exception('Passed in zip file not found')
-  if (options.input_directory and
-      not os.path.isdir(options.input_directory)):
-    raise Exception('Passed in directory not found')
-
-def GetInputDirectory(options, temp_dir):
-  if options.zip_file_location:
-    ExtractZipFile(options.zip_file_location, temp_dir)
-    return os.path.join(temp_dir, 'dart')
-  return options.input_directory
-
-# We combine the build and patch into a single entry since
-# the windows installer does _not_ consider a change in Patch
-# to require a new install.
-# In addition to that, the limits on the size are:
-# Major: 256
-# Minor: 256
-# Patch: 65536
-# To circumvent this we create the version like this:
-#   Major.Minor.X
-# from "major.minor.patch-prerelease.prerelease_patch"
-# where X is "patch<<10 + prerelease<<5 + prerelease_patch"
-# Example version 1.2.4-dev.2.3 will go to 1.2.4163
-def GetMicrosoftProductVersion(version):
-  version_parts = version.split('.')
-  if len(version_parts) is not 5:
-    raise Exception(
-      "Version string (%s) does not follow specification" % version)
-  (major, minor, patch, prerelease, prerelease_patch) = map(int, version_parts)
-
-  if major > 255 or minor > 255:
-    raise Exception('Major/Minor can not be above 256')
-  if patch > 63:
-    raise Exception('Patch can not be above 63')
-  if prerelease > 31:
-    raise Exception('Prerelease can not be above 31')
-  if prerelease_patch > 31:
-    raise Exception('PrereleasePatch can not be above 31')
-
-  combined = (patch << 10) + (prerelease << 5) + prerelease_patch
-  return '%s.%s.%s' % (major, minor, combined)
-
-# Append using the current indentation level
-def Append(data, new_line=True):
-  str = (('  ' * current_indentation) +
-         data +
-         ('\n' if new_line else ''))
-  xml_content.append(str)
-
-# Append without any indentation at the current position
-def AppendRaw(data, new_line=True):
-  xml_content.append(data + ('\n' if new_line else ''))
-
-def AppendComment(comment):
-  Append('<!--%s-->' % comment)
-
-def AppendBlankLine():
-  Append('')
-
-def GetContent():
-  return ''.join(xml_content)
-
-def XmlHeader():
-  Append('<?xml version="1.0" encoding="UTF-8"?>')
-
-def TagIndent(str, indentation_string):
-  return ' ' * len(indentation_string) + str
-
-def IncreaseIndentation():
-  global current_indentation
-  current_indentation += 1
-
-def DecreaseIndentation():
-  global current_indentation
-  current_indentation -= 1
-
-class WixAndProduct(object):
-  def __init__(self, version):
-    self.version = version
-    self.product_name = 'Dart Editor'
-    self.manufacturer = 'Google Inc.'
-    self.upgrade_code = UPGRADE_CODE
-
-  def __enter__(self):
-    self.start_wix()
-    self.start_product()
-
-  def __exit__(self, *_):
-    self.close_product()
-    self.close_wix()
-
-  def get_product_id(self):
-    # This needs to change on every install to guarantee that
-    # we get a full uninstall + reinstall
-    # We let wix choose. If we need to do patch releases later on
-    # we need to retain the value over several installs.
-    return '*'
-
-  def start_product(self):
-    product = '<Product '
-    Append(product, new_line=False)
-    AppendRaw('Id="%s"' % self.get_product_id())
-    Append(TagIndent('Version="%s"' % self.version, product))
-    Append(TagIndent('Name="%s"' % self.product_name, product))
-    Append(TagIndent('UpgradeCode="%s"' % self.upgrade_code,
-                     product))
-    Append(TagIndent('Language="1033"', product))
-    Append(TagIndent('Manufacturer="%s"' % self.manufacturer,
-                     product),
-           new_line=False)
-    AppendRaw('>')
-    IncreaseIndentation()
-
-  def close_product(self):
-    DecreaseIndentation()
-    Append('</Product>')
-
-  def start_wix(self):
-    Append('<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">')
-    IncreaseIndentation()
-
-  def close_wix(self):
-    DecreaseIndentation()
-    Append('</Wix>')
-
-class Directory(object):
-  def __init__(self, id, name=None):
-    self.id = id
-    self.name = name
-
-  def __enter__(self):
-    directory = '<Directory '
-    Append(directory, new_line=False)
-    AppendRaw('Id="%s"' % self.id, new_line=self.name is not None)
-    if self.name:
-      Append(TagIndent('Name="%s"' % self.name, directory), new_line=False)
-    AppendRaw('>')
-    IncreaseIndentation()
-
-  def __exit__(self, *_):
-    DecreaseIndentation()
-    Append('</Directory>')
-
-class Component(object):
-  def __init__(self, id):
-    self.id = 'CMP_%s' % id
-
-  def __enter__(self):
-    component = '<Component '
-    Append(component, new_line=False)
-    AppendRaw('Id="%s"' % self.id)
-    Append(TagIndent('Guid="*">', component))
-    IncreaseIndentation()
-
-  def __exit__(self, *_):
-    DecreaseIndentation()
-    Append('</Component>')
-    feature_components.append(self.id)
-
-class Feature(object):
-  def __enter__(self):
-    feature = '<Feature '
-    Append(feature, new_line=False)
-    AppendRaw('Id="MainFeature"')
-    Append(TagIndent('Title="Dart Editor"', feature))
-    # Install by default
-    Append(TagIndent('Level="1">', feature))
-    IncreaseIndentation()
-
-  def __exit__(self, *_):
-    DecreaseIndentation()
-    Append('</Feature>')
-
-def Package():
-  package = '<Package '
-  Append(package, new_line=False)
-  AppendRaw('InstallerVersion="301"')
-  Append(TagIndent('Compressed="yes" />', package))
-
-def MediaTemplate():
-  Append('<MediaTemplate EmbedCab="yes" />')
-
-def File(name, id):
-  file = '<File '
-  Append(file, new_line=False)
-  AppendRaw('Id="FILE_%s"' % id)
-  Append(TagIndent('Source="%s"' % name, file))
-  Append(TagIndent('KeyPath="yes" />', file))
-
-def Shortcut(id, name, ref):
-  shortcut = '<Shortcut '
-  Append(shortcut, new_line=False)
-  AppendRaw('Id="%s"' % id)
-  Append(TagIndent('Name="%s"' % name, shortcut))
-  Append(TagIndent('Target="%s" />' % ref, shortcut))
-
-def RemoveFolder(id):
-  remove = '<RemoveFolder '
-  Append(remove, new_line=False)
-  AppendRaw('Id="%s"' % id)
-  Append(TagIndent('On="uninstall" />', remove))
-
-def RegistryEntry(location):
-  registry = '<RegistryValue '
-  Append(registry, new_line=False)
-  AppendRaw('Root="HKCU"')
-  Append(TagIndent('Key="Software\\Microsoft\\%s"' % location, registry))
-  Append(TagIndent('Name="installed"', registry))
-  Append(TagIndent('Type="integer"', registry))
-  Append(TagIndent('Value="1"', registry))
-  Append(TagIndent('KeyPath="yes" />', registry))
-
-
-def MajorUpgrade():
-  upgrade = '<MajorUpgrade '
-  Append(upgrade, new_line=False)
-  down_message = 'You already have a never version installed.'
-  AppendRaw('DowngradeErrorMessage="%s" />' % down_message)
-
-
-# This is a very simplistic id generation.
-# Unfortunately there is no easy way to generate good names,
-# since there is a 72 character limit, and we have way longer
-# paths. We don't really have an issue with files and ids across
-# releases since we do full installs.
-counter = 0
-def FileToId(name):
-  global counter
-  counter += 1
-  return '%s' % counter
-
-def ListFiles(path):
-  for entry in os.listdir(path):
-    full_path = os.path.join(path, entry)
-    id = FileToId(full_path)
-    if os.path.isdir(full_path):
-      with Directory('DIR_%s' % id, entry):
-        ListFiles(full_path)
-    elif os.path.isfile(full_path):
-      # We assume 1 file per component, a File is always a KeyPath.
-      # A KeyPath on a file makes sure that we can always repair and
-      # remove that file in a consistent manner. A component
-      # can only have one child with a KeyPath.
-      with Component(id):
-        File(full_path, id)
-
-def ComponentRefs():
-  for component in feature_components:
-    Append('<ComponentRef Id="%s" />' % component)
-
-def ExtractZipFile(zip, temp_dir):
-  print 'Extracting files'
-  f = zipfile.ZipFile(zip)
-  f.extractall(temp_dir)
-  f.close()
-
-def GenerateInstaller(wxs_content, options, temp_dir):
-  wxs_file = os.path.join(temp_dir, 'installer.wxs')
-  wixobj_file = os.path.join(temp_dir, 'installer.wixobj')
-  print 'Saving wxs output to: %s' % wxs_file
-  with open(wxs_file, 'w') as f:
-    f.write(wxs_content)
-
-  candle_bin = 'candle.exe'
-  light_bin = 'light.exe'
-  if options.wix_bin:
-    candle_bin = os.path.join(options.wix_bin, 'candle.exe')
-    light_bin = os.path.join(options.wix_bin, 'light.exe')
-  print 'Calling candle on %s' % wxs_file
-  subprocess.check_call('%s %s -o %s' % (candle_bin, wxs_file,
-                                         wixobj_file))
-  print 'Calling light on %s' % wixobj_file
-  subprocess.check_call('%s %s -o %s' % (light_bin, wixobj_file,
-                                         options.msi_location))
-  print 'Created msi file to %s' % options.msi_location
-
-
-def Main(argv):
-  if sys.platform != 'win32':
-    raise Exception("This script can only be run on windows")
-  options = GetOptions()
-  version = GetMicrosoftProductVersion(options.version)
-  with utils.TempDir('installer') as temp_dir:
-    input_location = GetInputDirectory(options, temp_dir)
-    print "Generating wix XML"
-    XmlHeader()
-    with WixAndProduct(version):
-      AppendBlankLine()
-      Package()
-      MediaTemplate()
-      AppendComment('We always do a major upgrade, at least for now')
-      MajorUpgrade()
-
-      AppendComment('Directory structure')
-      with Directory('TARGETDIR', 'SourceDir'):
-        with Directory('ProgramFilesFolder'):
-          with Directory('RootInstallDir', 'Dart Editor'):
-            AppendComment("Add all files and directories")
-            print 'Installing files and directories in xml'
-            ListFiles(input_location)
-        AppendBlankLine()
-        AppendComment("Create shortcuts")
-        with Directory('ProgramMenuFolder'):
-          with Directory('ShortcutFolder', 'Dart Editor'):
-            with Component('shortcut'):
-              # When generating a shortcut we need an entry with
-              # a KeyPath (RegistryEntry) below - to be able to remove
-              # the shortcut again. The RemoveFolder tag is needed
-              # to clean up everything
-              Shortcut('editor_shortcut', 'Dart Editor',
-                       '[RootInstallDir]DartEditor.exe')
-              RemoveFolder('RemoveShortcuts')
-              RegistryEntry('DartEditor')
-      with Feature():
-        # We have only one feature, and it consists of all the
-        # files=components we have listed above"
-        ComponentRefs()
-    xml = GetContent()
-    if options.print_wxs:
-      print xml
-    GenerateInstaller(xml, options, temp_dir)
-
-if __name__ == '__main__':
-  sys.exit(Main(sys.argv))
diff --git a/tools/dart2js/angular2_testing_deps/CURRENT_ANGULAR_DEPS b/tools/dart2js/angular2_testing_deps/CURRENT_ANGULAR_DEPS
index 561545a..5cdd92f 100644
--- a/tools/dart2js/angular2_testing_deps/CURRENT_ANGULAR_DEPS
+++ b/tools/dart2js/angular2_testing_deps/CURRENT_ANGULAR_DEPS
@@ -1 +1 @@
-dd3e6271c259d1fb3e150a4a43bf2f3dac1413e8
+e30ad2ec2c7cf75c3bfc8823a305c967a1a507a4
diff --git a/tools/dom/docs/docs.status b/tools/dom/docs/docs.status
index 7cd95de..c40bfc0 100644
--- a/tools/dom/docs/docs.status
+++ b/tools/dom/docs/docs.status
@@ -3,5 +3,5 @@
 # BSD-style license that can be found in the LICENSE file.
 
 # docs.dart is a tool that only runs on the VM
-[ $compiler == dart2js || $compiler == dart2dart || $runtime == drt || $runtime == dartium ]
+[ $compiler == dart2js || $runtime == drt || $runtime == dartium ]
 *: Skip
diff --git a/tools/gyp/configurations_android.gypi b/tools/gyp/configurations_android.gypi
index c60d776..80ff1c6 100644
--- a/tools/gyp/configurations_android.gypi
+++ b/tools/gyp/configurations_android.gypi
@@ -57,7 +57,7 @@
               '-fno-omit-frame-pointer',
             ],
             'defines': [
-              'PROFILE_NATIVE_CODE'
+              'NATIVE_CODE_HAS_FRAME_POINTERS'
             ],
           }],
         ],
@@ -82,7 +82,7 @@
               '-fno-omit-frame-pointer',
             ],
             'defines': [
-              'PROFILE_NATIVE_CODE'
+              'NATIVE_CODE_HAS_FRAME_POINTERS'
             ],
           }],
         ],
diff --git a/tools/gyp/configurations_make.gypi b/tools/gyp/configurations_make.gypi
index 1556f16..15eee37 100644
--- a/tools/gyp/configurations_make.gypi
+++ b/tools/gyp/configurations_make.gypi
@@ -200,7 +200,7 @@
               '-fno-omit-frame-pointer',
             ],
             'defines': [
-              'PROFILE_NATIVE_CODE'
+              'NATIVE_CODE_HAS_FRAME_POINTERS'
             ],
           }],
         ],
@@ -217,7 +217,7 @@
               '-fno-omit-frame-pointer',
             ],
             'defines': [
-              'PROFILE_NATIVE_CODE'
+              'NATIVE_CODE_HAS_FRAME_POINTERS'
             ],
           }],
         ],
diff --git a/tools/gyp/configurations_msvs.gypi b/tools/gyp/configurations_msvs.gypi
index 46604eb..3c859ce 100644
--- a/tools/gyp/configurations_msvs.gypi
+++ b/tools/gyp/configurations_msvs.gypi
@@ -63,7 +63,7 @@
               },
             },
             'defines': [
-              'PROFILE_NATIVE_CODE'
+              'NATIVE_CODE_HAS_FRAME_POINTERS'
             ],
           }],
         ],
@@ -107,7 +107,7 @@
               },
             },
             'defines': [
-              'PROFILE_NATIVE_CODE'
+              'NATIVE_CODE_HAS_FRAME_POINTERS'
             ],
           }],
         ],
diff --git a/tools/gyp/configurations_xcode.gypi b/tools/gyp/configurations_xcode.gypi
index 6bd0452..3f22df5 100644
--- a/tools/gyp/configurations_xcode.gypi
+++ b/tools/gyp/configurations_xcode.gypi
@@ -63,7 +63,7 @@
               ],
             },
             'defines': [
-              'PROFILE_NATIVE_CODE',
+              'NATIVE_CODE_HAS_FRAME_POINTERS',
             ],
           }],
         ],
diff --git a/tools/mac_build_editor_bundle.sh b/tools/mac_build_editor_bundle.sh
deleted file mode 100755
index 14b8054..0000000
--- a/tools/mac_build_editor_bundle.sh
+++ /dev/null
@@ -1,121 +0,0 @@
-#!/bin/bash
-# Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-# for details. All rights reserved. Use of this source code is governed by
-# BSD-style license that can be found in the LICENSE file.
-
-# Fail if a command failed
-set -e
-
-if [ $# -ne 5 ]; then
-  echo "Usage $0 <app-folder> <editor-build-directory> <dart-sdk> " \
-       "<Chromium.app> <icon.icns>"
-  exit 1
-fi
-
-OUTPUT_APP_FOLDER=$1
-INPUT_EDITOR_BUILD_DIRECTORY=$2
-INPUT_DART_SDK_DIRECTORY=$3
-INPUT_CHROMIUM_APP_DIRECTORY=$4
-INPUT_ICON_PATH=$5
-
-# Input validations
-if [ "${OUTPUT_APP_FOLDER##*.}" != "app" ]; then
-  echo "Application folder has to end in '.app' " \
-       "(but was $APP_FOLDER_NAME)."
-  exit 1
-fi
-if [ "${INPUT_ICON_PATH##*.}" != "icns" ]; then
-  echo "Application icon has to end in '.icns'."
-  exit 1
-fi
-
-function ensure_exists {
-  if [ ! -e "$1" ]; then
-    echo "Directory or file does not exist: $1."
-    exit 1
-  fi
-}
-ensure_exists "$INPUT_EDITOR_BUILD_DIRECTORY"
-ensure_exists "$INPUT_DART_SDK_DIRECTORY"
-
-# Remove old directory if present
-if [ -e "$OUTPUT_APP_FOLDER" ]; then
-  rm -r "$OUTPUT_APP_FOLDER"
-fi
-
-# Make directory structure and copy necessary files
-mkdir -p "$OUTPUT_APP_FOLDER/Contents/MacOS"
-LAUNCHER_SUBPATH="DartEditor.app/Contents/MacOS/DartEditor"
-cp "$INPUT_EDITOR_BUILD_DIRECTORY/$LAUNCHER_SUBPATH" \
-   "$OUTPUT_APP_FOLDER/Contents/MacOS/"
-cp "$INPUT_EDITOR_BUILD_DIRECTORY/$LAUNCHER_SUBPATH.ini" \
-   "$OUTPUT_APP_FOLDER/Contents/MacOS/"
-mkdir -p "$OUTPUT_APP_FOLDER/Contents/Resources"
-cp "$INPUT_ICON_PATH" "$OUTPUT_APP_FOLDER/Contents/Resources/dart.icns"
-cp -R "$INPUT_DART_SDK_DIRECTORY" \
-      "$OUTPUT_APP_FOLDER/Contents/Resources/dart-sdk"
-cp -R "$INPUT_CHROMIUM_APP_DIRECTORY" \
-   "$OUTPUT_APP_FOLDER/Contents/Resources/Chromium.app"
-for dirname in $(echo configuration plugins features samples); do
-  cp -R "$INPUT_EDITOR_BUILD_DIRECTORY/$dirname" \
-        "$OUTPUT_APP_FOLDER/Contents/Resources/"
-done
-
-EQUINOX_LAUNCHER_JARFILE=$(cd "$OUTPUT_APP_FOLDER"; \
-  ls Contents/Resources/plugins/org.eclipse.equinox.launcher_*.jar);
-
-EQUINOX_LAUNCHER_LIBRARY=$(cd "$OUTPUT_APP_FOLDER"; ls \
-  Contents/Resources/plugins/org.eclipse.equinox.launcher.cocoa.*/eclipse_*.so);
-
-cat > "$OUTPUT_APP_FOLDER/Contents/Info.plist" << EOF
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
-          "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-  <dict>
-    <key>NSHighResolutionCapable</key>
-      <true/>
-    <key>CFBundleExecutable</key>
-      <string>DartEditor</string>
-    <key>CFBundleGetInfoString</key>
-      <string>Eclipse 3.7 for Mac OS X, Copyright IBM Corp. and others 2002,
-              2011. All rights reserved.</string>
-    <key>CFBundleIconFile</key>
-      <string>dart.icns</string>
-    <key>CFBundleIdentifier</key>
-      <string>org.eclipse.eclipse</string>
-    <key>CFBundleInfoDictionaryVersion</key>
-      <string>6.0</string>
-    <key>CFBundleName</key>
-      <string>DartEditor</string>
-    <key>CFBundlePackageType</key>
-      <string>APPL</string>
-    <key>CFBundleShortVersionString</key>
-      <string>3.7</string>
-    <key>CFBundleSignature</key>
-      <string>????</string>
-    <key>CFBundleVersion</key>
-      <string>3.7</string>
-    <key>CFBundleDevelopmentRegion</key>
-      <string>English</string>
-    <key>CFBundleLocalizations</key>
-      <array>
-        <string>en</string>
-        <key>WorkingDirectory</key>
-        <string>\$APP_PACKAGE/Contents/Resources</string>
-      </array>
-    <key>Eclipse</key>
-      <array>
-        <string>-startup</string>
-        <string>\$APP_PACKAGE/$EQUINOX_LAUNCHER_JARFILE</string>
-        <string>--launcher.library</string>
-        <string>\$APP_PACKAGE/$EQUINOX_LAUNCHER_LIBRARY</string>
-        <string>-keyring</string><string>~/.eclipse_keyring</string>
-        <string>-showlocation</string>
-        <key>WorkingDirectory</key>
-        <string>\$APP_PACKAGE/Contents/Resources</string>
-      </array>
-  </dict>
-</plist>
-EOF
-
diff --git a/tools/mac_build_editor_dmg.sh b/tools/mac_build_editor_dmg.sh
deleted file mode 100755
index 15b70e1..0000000
--- a/tools/mac_build_editor_dmg.sh
+++ /dev/null
@@ -1,131 +0,0 @@
-#!/bin/bash
-# Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-# for details. All rights reserved. Use of this source code is governed by
-# BSD-style license that can be found in the LICENSE file.
-
-# This is partly based on
-# https://bitbucket.org/rmacnak/nsvm/src/
-#   b2de52432a2baff9c4ada099430fb16a771d34ef/vm/onebuild/installer-Darwin.gmk
-
-# Fail if a command failed
-set -e
-set -o errexit
-set -o nounset
-
-if [ $# -ne 4 ]; then
-  echo "Usage $0 <output.dmg> <raw-editor-bundle> <folder-icon> <volume-name>"
-  exit 1
-fi
-
-OUTPUT_DMG_FILE=$1
-INPUT_FOLDER_PATH=$2
-FOLDER_ICON=$3
-INPUT_VOLUME_NAME=$4
-
-FOLDER_NAME="Dart"
-VOLUME_MOUNTPOINT="/Volumes/$INPUT_VOLUME_NAME"
-SPARSEIMAGE="$OUTPUT_DMG_FILE.sparseimage"
-
-# Input validations
-if [ ! -d "$INPUT_FOLDER_PATH" ]; then
-  echo "Editor bundle folder does not exist ($INPUT_FOLDER_PATH)"
-  exit 1
-fi
-
-# If an old image is still mounted, umount it
-if [ -e "$VOLUME_MOUNTPOINT" ]; then
-  hdiutil eject "$VOLUME_MOUNTPOINT"
-fi
-
-# Remove old output files
-if [ -f "$SPARSEIMAGE" ]; then
-  rm "$SPARSEIMAGE"
-fi
-if [ -f "$OUTPUT_DMG_FILE" ]; then
-  rm "$OUTPUT_DMG_FILE"
-fi
-
-# This function will set (or replace) the icon of a folder.
-# Finder displays a default folder icon. Since the installer
-# will consist of a folder and a link to "/Applications", we want
-# the folder to have a nice icon.
-# In order to make Finder display a custom icon, we need to
-#  - Have a "FOLDER/Icon\r" file which contains the icon resource
-#    (i.e. the metadata of this file will contain an icon)
-#  - Have the 'custom icon' attribute set on "FOLDER"
-# Additionally we mark the "FOLDER/Icon\r" file as invisible, so it
-# is not shown in Finder (although it's visible on the commandline).
-replace_folder_icon() {
-  FOLDER="$1"
-  ICON="$2"
-  TEMP_ICON_RESOURCE='/tmp/icns.rsrc'
-  ICON_RESOURCE="$FOLDER"/$'Icon\r'
-
-  # Add finder icon to the image file
-  sips -i "$ICON" > /dev/null
-
-  # Extract the finder icon resource
-  DeRez -only icns "$ICON" > "$TEMP_ICON_RESOURCE"
-
-  # Create the icon resource
-  rm -f "$ICON_RESOURCE"
-  Rez -append "$TEMP_ICON_RESOURCE" -o "$ICON_RESOURCE"
-  rm "$TEMP_ICON_RESOURCE"
-
-  # Set the 'custom icon' attribute on $FOLDER
-  SetFile -a C "$FOLDER"
-
-  # Make the $ICON_RESOURCE invisible for finder
-  SetFile -a V "$ICON_RESOURCE"
-}
-
-
-# Create a new image and attach it
-hdiutil create -size 400m -type SPARSE -volname "$INPUT_VOLUME_NAME" -fs \
-  'Journaled HFS+' "$SPARSEIMAGE"
-hdiutil attach "$SPARSEIMAGE"
-
-# Add link to /Applications (so the user can drag-and-drop into it)
-ln -s /Applications "$VOLUME_MOUNTPOINT/"
-# Copy our application
-ditto "$INPUT_FOLDER_PATH" "$VOLUME_MOUNTPOINT/$FOLDER_NAME"
-# Set custom icon on this folder
-replace_folder_icon "$VOLUME_MOUNTPOINT/$FOLDER_NAME" "$FOLDER_ICON"
-# Make sure that the dmg gets opened when mounting the image
-bless --folder "$VOLUME_MOUNTPOINT" --openfolder "$VOLUME_MOUNTPOINT"
-
-# Use an applescript to setup the layout of the folder.
-osascript << EOF
-tell application "Finder"
-  tell disk "$INPUT_VOLUME_NAME"
-    open
-    tell container window
-      set current view to icon view
-      set toolbar visible to false
-      set statusbar visible to false
-      set position to {100, 100}
-      set bounds to {100, 100, 512, 256}
-    end tell
-    tell icon view options of container window
-      set arrangement to not arranged
-      set icon size to 128
-    end tell
-    set position of item "$FOLDER_NAME" to {64, 64}
-    set position of item "Applications" to {320, 64}
-    eject
-  end tell
-end tell
-EOF
-
-# Wait until the script above has umounted the image
-while [ -e "$VOLUME_MOUNTPOINT" ]; do
-  echo "Waiting for Finder to eject $VOLUME_MOUNTPOINT"
-  sleep 2
-done
-
-# Compress the sparse image
-hdiutil convert "$SPARSEIMAGE" -format UDBZ -o "$OUTPUT_DMG_FILE"
-
-# Remove sparse image
-rm "$SPARSEIMAGE"
-
diff --git a/tools/promote.py b/tools/promote.py
new file mode 100644
index 0000000..5d3a3c4
--- /dev/null
+++ b/tools/promote.py
@@ -0,0 +1,183 @@
+#!/usr/bin/env python
+#
+# Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+# for 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 Editor promote tools.
+
+import imp
+import optparse
+import os
+import subprocess
+import sys
+import time
+import urllib
+import bots.bot_utils as bot_utils
+
+from os.path import join
+
+DART_PATH = os.path.abspath(os.path.join(__file__, '..', '..'))
+DRY_RUN = False
+
+def BuildOptions():
+  usage = """usage: %prog promote [options]
+  where:
+    promote - Will promote builds from raw/signed locations to release
+              locations.
+
+    Example: Promote revision r29962 on dev channel:
+        python editor/build/promote.py promote --channel=dev --revision=29962
+  """
+
+  result = optparse.OptionParser(usage=usage)
+
+  group = optparse.OptionGroup(
+      result, 'Promote', 'options used to promote code')
+  group.add_option(
+      '--revision', help='The svn revision to promote', action='store')
+  group.add_option(
+      '--channel', type='string', help='Channel to promote.', default=None)
+  group.add_option("--dry", help='Dry run', default=False, action="store_true")
+  result.add_option_group(group)
+
+  return result
+
+
+def main():
+  parser = BuildOptions()
+  (options, args) = parser.parse_args()
+
+  def die(msg):
+    print msg
+    parser.print_help()
+    sys.exit(1)
+
+  if not args:
+    die('At least one command must be specified')
+
+  if args[0] == 'promote':
+    command = 'promote'
+    if options.revision is None:
+      die('You must specify a --revision to specify which revision to promote')
+
+    # Make sure revision is a valid integer
+    try:
+      _ = int(options.revision)
+    except:
+      die('You must supply a valid integer argument to --revision to promote')
+
+    # Make sure options.channel is a valid
+    if not options.channel:
+      die('Specify --channel=be/dev/stable')
+    if options.channel not in bot_utils.Channel.ALL_CHANNELS:
+      die('You must supply a valid channel to --channel to promote')
+  else:
+    die('Invalid command specified: {0}.  See help below'.format(args[0]))
+
+  if options.dry:
+    global DRY_RUN
+    DRY_RUN = True
+  if command == 'promote':
+    _PromoteDartArchiveBuild(options.channel, options.revision)
+
+
+def UpdateDocs():
+  try:
+    print 'Updating docs'
+    url = "http://api.dartlang.org/docs/releases/latest/?force_reload=true"
+    f = urllib.urlopen(url)
+    f.read()
+    print 'Successfully updated api docs'
+  except Exception as e:
+    print 'Could not update api docs, please manually update them'
+    print 'Failed with: %s' % e
+
+
+def _PromoteDartArchiveBuild(channel, revision):
+  # These namer objects will be used to create GCS object URIs. For the
+  # structure we use, please see tools/bots/bot_utils.py:GCSNamer
+  raw_namer = bot_utils.GCSNamer(channel, bot_utils.ReleaseType.RAW)
+  signed_namer = bot_utils.GCSNamer(channel, bot_utils.ReleaseType.SIGNED)
+  release_namer = bot_utils.GCSNamer(channel, bot_utils.ReleaseType.RELEASE)
+
+  def promote(to_revision):
+    def safety_check_on_gs_path(gs_path, revision, channel):
+      if not ((revision == 'latest' or int(revision) > 0)
+              and len(channel) > 0
+              and ('%s' % revision) in gs_path
+              and channel in gs_path):
+        raise Exception(
+            "InternalError: Sanity check failed on GS URI: %s" % gs_path)
+
+    # Google cloud storage has read-after-write, read-after-update,
+    # and read-after-delete consistency, but not list after delete consistency.
+    # Because gsutil uses list to figure out if it should do the unix styly
+    # copy to or copy into, this means that if the directory is reported as
+    # still being there (after it has been deleted) gsutil will copy
+    # into the directory instead of to the directory.
+    def wait_for_delete_to_be_consistent_with_list(gs_path):
+      while True:
+        if DRY_RUN:
+          break
+        (_, _, exit_code) = Gsutil(['ls', gs_path], throw_on_error=False)
+        # gsutil will exit 1 if the "directory" does not exist
+        if exit_code != 0:
+          break
+        time.sleep(1)
+
+    def remove_gs_directory(gs_path):
+      safety_check_on_gs_path(gs_path, to_revision, channel)
+      Gsutil(['-m', 'rm', '-R', '-f', gs_path])
+      wait_for_delete_to_be_consistent_with_list(gs_path)
+
+    # Copy sdk directory.
+    from_loc = raw_namer.sdk_directory(revision)
+    to_loc = release_namer.sdk_directory(to_revision)
+    remove_gs_directory(to_loc)
+    Gsutil(['-m', 'cp', '-a', 'public-read', '-R', from_loc, to_loc])
+
+    # Copy eclipse update directory.
+    from_loc = raw_namer.editor_eclipse_update_directory(revision)
+    to_loc = release_namer.editor_eclipse_update_directory(to_revision)
+    remove_gs_directory(to_loc)
+    Gsutil(['-m', 'cp', '-a', 'public-read', '-R', from_loc, to_loc])
+
+    # Copy api-docs zipfile.
+    from_loc = raw_namer.apidocs_zipfilepath(revision)
+    to_loc = release_namer.apidocs_zipfilepath(to_revision)
+    Gsutil(['-m', 'cp', '-a', 'public-read', from_loc, to_loc])
+
+    # Copy dartium directory.
+    from_loc = raw_namer.dartium_directory(revision)
+    to_loc = release_namer.dartium_directory(to_revision)
+    remove_gs_directory(to_loc)
+    Gsutil(['-m', 'cp', '-a', 'public-read', '-R', from_loc, to_loc])
+
+    # Copy wheezy linux deb and src packages.
+    from_loc = raw_namer.linux_packages_directory(revision, 'debian_wheezy')
+    to_loc = release_namer.linux_packages_directory(to_revision,
+                                                    'debian_wheezy')
+    remove_gs_directory(to_loc)
+    Gsutil(['-m', 'cp', '-a', 'public-read', '-R', from_loc, to_loc])
+
+    # Copy VERSION file.
+    from_loc = raw_namer.version_filepath(revision)
+    to_loc = release_namer.version_filepath(to_revision)
+    Gsutil(['cp', '-a', 'public-read', from_loc, to_loc])
+
+
+  promote(revision)
+  promote('latest')
+
+def Gsutil(cmd, throw_on_error=True):
+  gsutilTool = join(DART_PATH, 'third_party', 'gsutil', 'gsutil')
+  command = [sys.executable, gsutilTool] + cmd
+  if DRY_RUN:
+    print "DRY runnning: %s" % command
+    return
+  return bot_utils.run(command, throw_on_error=throw_on_error)
+
+
+if __name__ == '__main__':
+  sys.exit(main())
diff --git a/tools/status_clean.dart b/tools/status_clean.dart
index fb97590..f406258 100644
--- a/tools/status_clean.dart
+++ b/tools/status_clean.dart
@@ -41,7 +41,6 @@
      "tests/benchmark_smoke/benchmark_smoke.status"],
     ["co19", "tests/co19/src", "tests/co19/co19-analyzer2.status"],
     ["co19", "tests/co19/src", "tests/co19/co19-analyzer.status"],
-    ["co19", "tests/co19/src", "tests/co19/co19-dart2dart.status"],
     ["co19", "tests/co19/src", "tests/co19/co19-dart2js.status"],
     ["co19", "tests/co19/src", "tests/co19/co19-co19.status"],
     ["co19", "tests/co19/src", "tests/co19/co19-dartium.status"],
diff --git a/tools/testing/dart/co19_test.dart b/tools/testing/dart/co19_test.dart
index ad05dca..7c7b27e 100644
--- a/tools/testing/dart/co19_test.dart
+++ b/tools/testing/dart/co19_test.dart
@@ -30,8 +30,6 @@
     const <String>['-mrelease,debug', '-rvm', '-cnone', '--checked'],
     const <String>['-mrelease', '-rnone', '-cdartanalyzer'],
     const <String>['-mrelease', '-rnone', '-cdart2analyzer'],
-    const <String>['-mrelease', '-rvm', '-cdart2dart', '--use-sdk'],
-    const <String>['-mrelease', '-rvm', '-cdart2dart', '--use-sdk', '--minified'],
     const <String>['-mrelease', '-rd8', '-cdart2js', '--use-sdk'],
     const <String>['-mrelease', '-rd8,jsshell', '-cdart2js', '--use-sdk',
                    '--minified'],
diff --git a/tools/testing/dart/co19_test_config.dart b/tools/testing/dart/co19_test_config.dart
index e8d6492..813038d 100644
--- a/tools/testing/dart/co19_test_config.dart
+++ b/tools/testing/dart/co19_test_config.dart
@@ -18,7 +18,6 @@
                "tests/co19/co19-analyzer.status",
                "tests/co19/co19-analyzer2.status",
                "tests/co19/co19-runtime.status",
-               "tests/co19/co19-dart2dart.status",
                "tests/co19/co19-dart2js.status",
                "tests/co19/co19-dartium.status"]);
 
diff --git a/tools/testing/dart/compiler_configuration.dart b/tools/testing/dart/compiler_configuration.dart
index 3681bae..e2b0d18 100644
--- a/tools/testing/dart/compiler_configuration.dart
+++ b/tools/testing/dart/compiler_configuration.dart
@@ -77,10 +77,6 @@
             isHostChecked: isHostChecked, useCps: useCps, useSdk: useSdk,
             isCsp: isCsp, extraDart2jsOptions:
                 TestUtils.getExtraOptions(configuration, 'dart2js_options'));
-      case 'dart2dart':
-        return new Dart2dartCompilerConfiguration(
-            isDebug: isDebug, isChecked: isChecked,
-            isHostChecked: isHostChecked, useSdk: useSdk);
       case 'none':
         return new NoneCompilerConfiguration(
             isDebug: isDebug, isChecked: isChecked,
@@ -166,8 +162,7 @@
   }
 }
 
-/// Common configuration for dart2js-based tools, such as, dart2js and
-/// dart2dart.
+/// Common configuration for dart2js-based tools, such as, dart2js
 class Dart2xCompilerConfiguration extends CompilerConfiguration {
   final String moniker;
   static Map<String, List<Uri>> _bootstrapDependenciesCache =
@@ -290,54 +285,6 @@
   }
 }
 
-/// Configuration for dart2dart compiler.
-class Dart2dartCompilerConfiguration extends Dart2xCompilerConfiguration {
-  Dart2dartCompilerConfiguration({
-      bool isDebug,
-      bool isChecked,
-      bool isHostChecked,
-      bool useSdk})
-      : super(
-          'dart2dart',
-          isDebug: isDebug, isChecked: isChecked,
-          isHostChecked: isHostChecked, useSdk: useSdk);
-
-  CommandArtifact computeCompilationArtifact(
-      String buildDir,
-      String tempDir,
-      CommandBuilder commandBuilder,
-      List arguments,
-      Map<String, String> environmentOverrides) {
-    String outputFileName = '$tempDir/out.dart';
-    arguments = new List.from(arguments)..add('--output-type=dart');
-    return new CommandArtifact(
-        <Command>[
-            this.computeCompilationCommand(
-                outputFileName,
-                buildDir,
-                CommandBuilder.instance,
-                arguments,
-                environmentOverrides)],
-        outputFileName,
-        'application/dart');
-  }
-
-  List<String> computeRuntimeArguments(
-      RuntimeConfiguration runtimeConfiguration,
-      String buildDir,
-      TestInformation info,
-      List<String> vmOptions,
-      List<String> sharedOptions,
-      List<String> originalArguments,
-      CommandArtifact artifact) {
-    // TODO(antonm): support checked.
-    return <String>[]
-        ..addAll(vmOptions)
-        ..add('--ignore-unrecognized-flags')
-        ..add(artifact.filename);
-  }
-}
-
 /// Common configuration for analyzer-based tools, such as, dartanalyzer.
 class AnalyzerCompilerConfiguration extends CompilerConfiguration {
   final String moniker;
diff --git a/tools/testing/dart/status_reporter.dart b/tools/testing/dart/status_reporter.dart
index 7536e13..0e744d0 100644
--- a/tools/testing/dart/status_reporter.dart
+++ b/tools/testing/dart/status_reporter.dart
@@ -19,12 +19,6 @@
       'compiler' : 'none'
     },
     {
-      'runtimes' : ['vm'],
-      'modes' : ['release'],
-      'archs' : ['ia32', 'x64'],
-      'compiler' : 'dart2dart'
-    },
-    {
       'runtimes' : ['d8', 'jsshell', 'chrome', 'ff'],
       'modes' : ['release'],
       'archs' : ['ia32'],
diff --git a/tools/testing/dart/test_options.dart b/tools/testing/dart/test_options.dart
index 9bd9aaa..a33224a 100644
--- a/tools/testing/dart/test_options.dart
+++ b/tools/testing/dart/test_options.dart
@@ -60,9 +60,6 @@
    none: Do not compile the Dart code (run native Dart code on the VM).
          (only valid with the following runtimes: vm, drt)
 
-   dart2dart: Compile Dart code to Dart code
-              (only valid with the following runtimes: vm, drt)
-
    dart2js: Compile dart code to JavaScript by running dart2js.
          (only valid with the following runtimes: d8, drt, chrome,
          safari, ie9, ie10, ie11, firefox, opera, chromeOnAndroid,
@@ -72,7 +69,7 @@
    dart2analyzer: Perform static analysis on Dart code by running the analyzer on Dart.
           (only valid with the following runtimes: none)''',
               ['-c', '--compiler'],
-              ['none', 'dart2dart', 'dart2js', 'dartanalyzer', 'dart2analyzer'],
+              ['none', 'dart2js', 'dartanalyzer', 'dart2analyzer'],
               'none'),
           // TODO(antonm): fix the option drt.
           new _TestOptionSpecification(
@@ -651,7 +648,6 @@
         validRuntimes = const ['none'];
         break;
       case 'none':
-      case 'dart2dart':
         validRuntimes = const ['vm', 'drt', 'dartium',
                                'ContentShellOnAndroid', 'DartiumOnAndroid'];
         break;
diff --git a/tools/testing/dart/test_runner.dart b/tools/testing/dart/test_runner.dart
index 2fb96b4..97ad17a 100644
--- a/tools/testing/dart/test_runner.dart
+++ b/tools/testing/dart/test_runner.dart
@@ -1564,7 +1564,7 @@
     if (hasCrashed) return Expectation.CRASH;
     if (hasTimedOut) return Expectation.TIMEOUT;
 
-    // Handle dart2js/dart2dart specific crash detection
+    // Handle dart2js specific crash detection
     if (exitCode == DART2JS_EXITCODE_CRASH ||
         exitCode == VmCommandOutputImpl.DART_VM_EXITCODE_COMPILE_TIME_ERROR ||
         exitCode == VmCommandOutputImpl.DART_VM_EXITCODE_UNCAUGHT_EXCEPTION) {
diff --git a/tools/testing/dart/test_suite.dart b/tools/testing/dart/test_suite.dart
index 07a56d1..e6c6778 100644
--- a/tools/testing/dart/test_suite.dart
+++ b/tools/testing/dart/test_suite.dart
@@ -1328,7 +1328,7 @@
         contentShellOptions.add('--no-timeout');
         contentShellOptions.add('--dump-render-tree');
 
-        if (compiler == 'none' || compiler == 'dart2dart') {
+        if (compiler == 'none') {
           dartFlags.add('--ignore-unrecognized-flags');
           if (configuration["checked"]) {
             dartFlags.add('--enable_asserts');
@@ -1455,7 +1455,7 @@
   /** Helper to create a compilation command for a single input file. */
   Command _compileCommand(String inputFile, String outputFile,
       String compiler, String dir, optionsFromFile) {
-    assert (['dart2js', 'dart2dart'].contains(compiler));
+    assert(compiler == 'dart2js');
     List<String> args;
     if (compilerPath.endsWith('.dart')) {
       // Run the compiler script via the Dart VM.
@@ -1495,7 +1495,6 @@
   String get scriptType {
     switch (configuration['compiler']) {
       case 'none':
-      case 'dart2dart':
         return 'application/dart';
       case 'dart2js':
       case 'dartanalyzer':
@@ -1592,7 +1591,7 @@
    *
    *     // VMOptions=--flag1 --flag2
    *
-   *   - Flags can be passed to dart2js, dart2dart or vm by adding a comment
+   *   - Flags can be passed to dart2js or vm by adding a comment
    *   to the test file:
    *
    *     // SharedOptions=--flag1 --flag2
@@ -1744,18 +1743,14 @@
   }
 
   List<List<String>> getVmOptions(Map optionsFromFile) {
-    var COMPILERS = const ['none', 'dart2dart'];
+    var COMPILERS = const ['none'];
     var RUNTIMES = const ['none', 'vm', 'drt', 'dartium',
                           'ContentShellOnAndroid', 'DartiumOnAndroid'];
     var needsVmOptions = COMPILERS.contains(configuration['compiler']) &&
                          RUNTIMES.contains(configuration['runtime']);
     if (!needsVmOptions) return [[]];
     final vmOptions = optionsFromFile['vmOptions'];
-    if (configuration['compiler'] != 'dart2dart') return vmOptions;
-    // Temporary workaround for race in test suite: tests with different
-    // vm options are still compiled into the same output file which
-    // may lead to reads from empty files.
-    return [vmOptions[0]];
+    return vmOptions;
   }
 
   /**
@@ -2203,7 +2198,7 @@
       args.add("--enable_type_checks");
     }
     String compiler = configuration["compiler"];
-    if (compiler == "dart2js" || compiler == "dart2dart") {
+    if (compiler == "dart2js") {
       args = [];
       if (configuration["checked"]) {
         args.add('--enable-checked-mode');
@@ -2214,7 +2209,7 @@
         args.add("--categories=all");
       }
     }
-    if ((compiler == "dart2js" || compiler == "dart2dart") &&
+    if ((compiler == "dart2js") &&
         configuration["minified"]) {
       args.add("--minify");
     }